X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Fbase%2Flib_slk.c;h=2f1a92118382e9811f094d2e3f04cdef8b294f05;hp=fd5c53e07fc4536f6dd8cf50bb06bbf7791a0a10;hb=26522e4669dbf45cba32138b5d81c6c292e88e60;hpb=11ca5f62994c7a14c4e500510bd242e1e721f8be diff --git a/ncurses/base/lib_slk.c b/ncurses/base/lib_slk.c index fd5c53e0..2f1a9211 100644 --- a/ncurses/base/lib_slk.c +++ b/ncurses/base/lib_slk.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2005,2008 Free Software Foundation, Inc. * + * Copyright (c) 1998-2008,2009 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -45,34 +45,11 @@ #include #include /* num_labels, label_*, plab_norm */ -MODULE_ID("$Id: lib_slk.c,v 1.34 2008/08/16 19:20:04 tom Exp $") +#ifndef CUR +#define CUR SP_TERMTYPE +#endif -/* - * We'd like to move these into the screen context structure, but cannot, - * because slk_init() is called before initscr()/newterm(). - */ -NCURSES_EXPORT_VAR(int) -_nc_slk_format = 0; /* one more than format specified in slk_init() */ - -/* - * Paint the info line for the PC style SLK emulation. - */ -static void -slk_paint_info(WINDOW *win) -{ - SCREEN *sp = _nc_screen_of(win); - - if (win && sp && (sp->slk_format == 4)) { - int i; - - mvwhline(win, 0, 0, 0, getmaxx(win)); - wmove(win, 0, 0); - - for (i = 0; i < sp->_slk->maxlab; i++) { - mvwprintw(win, 0, sp->_slk->ent[i].ent_x, "F%d", i + 1); - } - } -} +MODULE_ID("$Id: lib_slk.c,v 1.38 2009/05/10 00:48:29 tom Exp $") /* * Free any memory related to soft labels, return an error. @@ -95,6 +72,9 @@ slk_failed(void) NCURSES_EXPORT(int) _nc_slk_initialize(WINDOW *stwin, int cols) { +#if NCURSES_SP_FUNCS + SCREEN *sp = CURRENT_SCREEN; +#endif int i, x; int res = OK; unsigned max_length; @@ -160,7 +140,6 @@ _nc_slk_initialize(WINDOW *stwin, int cols) x += max_length; x += (i == 3 || i == 7) ? gap : 1; } - slk_paint_info(stwin); } else { if (_nc_globals.slk_format == 2) { /* 4-4 */ int gap = cols - (SP->_slk->maxlab * max_length) - 6; @@ -206,16 +185,22 @@ _nc_slk_initialize(WINDOW *stwin, int cols) * Restore the soft labels on the screen. */ NCURSES_EXPORT(int) -slk_restore(void) +NCURSES_SP_NAME(slk_restore) (NCURSES_SP_DCL0) { T((T_CALLED("slk_restore()"))); - if (SP->_slk == NULL) + if (SP_PARM->_slk == NULL) return (ERR); - SP->_slk->hidden = FALSE; - SP->_slk->dirty = TRUE; - /* we have to repaint info line eventually */ - slk_paint_info(SP->_slk->win); + SP_PARM->_slk->hidden = FALSE; + SP_PARM->_slk->dirty = TRUE; returnCode(slk_refresh()); } + +#if NCURSES_SP_FUNCS +NCURSES_EXPORT(int) +slk_restore(void) +{ + return NCURSES_SP_NAME(slk_restore) (CURRENT_SCREEN); +} +#endif