//------------------------------------------------------------------------------ int replace_panel( PANEL* pan, WINDOW* win ) { __QCS_FCONTEXT( "replace_panel" ); int maxy, maxx; if( !pan ) { return ERR; } if( _panel_is_linked( pan ) ) { _override( pan, 0 ); } pan->win = win; getbegyx( win, pan->wstarty, pan->wstartx ); getmaxyx( win, maxy, maxx ); pan->wendy = pan->wstarty + maxy; pan->wendx = pan->wstartx + maxx; if( _panel_is_linked( pan ) ) { _calculate_obscure(); } return 0; }
int move_panel(PANEL *pan, int starty, int startx) { WINDOW *win; int maxy, maxx; if (!pan) return ERR; if (_panel_is_linked(pan)) _override(pan, 0); win = pan->win; if (mvwin(win, starty, startx) == ERR) return ERR; getbegyx(win, pan->wstarty, pan->wstartx); getmaxyx(win, maxy, maxx); pan->wendy = pan->wstarty + maxy; pan->wendx = pan->wstartx + maxx; if (_panel_is_linked(pan)) _calculate_obscure(); return OK; }
int panel_hidden(const PANEL *pan) { if (!pan) return ERR; return _panel_is_linked(pan) ? ERR : OK; }
// link panel into stack at bottom //------------------------------------------------------------------------------ static void _panel_link_bottom( PANEL* pan ) { __QCS_FCONTEXT( "_panel_link_bottom" ); #ifdef PANEL_DEBUG dStack( "<lb%d>", 1, pan ); if( _panel_is_linked( pan ) ) { return; } #endif pan->above = (PANEL*)0; pan->below = (PANEL*)0; if( _bottom_panel ) { _bottom_panel->below = pan; pan->above = _bottom_panel; } _bottom_panel = pan; if( !_top_panel ) { _top_panel = pan; } _calculate_obscure(); dStack( "<lb%d>", 9, pan ); }
//------------------------------------------------------------------------------ int panel_hidden( const PANEL* pan ) { __QCS_FCONTEXT( "panel_hidden" ); if( !pan ) { return ERR; } return _panel_is_linked( pan ) ? ERR : 0; }
int replace_panel(PANEL *pan, WINDOW *win) { int maxy, maxx; if (!pan) return ERR; if (_panel_is_linked(pan)) _override(pan, 0); pan->win = win; getbegyx(win, pan->wstarty, pan->wstartx); getmaxyx(win, maxy, maxx); pan->wendy = pan->wstarty + maxy; pan->wendx = pan->wstartx + maxx; if (_panel_is_linked(pan)) _calculate_obscure(); return OK; }
int del_panel(PANEL *pan) { if (pan) { if (_panel_is_linked(pan)) hide_panel(pan); free((char *)pan); return OK; } return ERR; }
//------------------------------------------------------------------------------ static void _panel_unlink( PANEL* pan ) { __QCS_FCONTEXT( "_panel_unlink" ); PANEL* prev; PANEL* next; #ifdef PANEL_DEBUG dStack( "<u%d>", 1, pan ); if( !_panel_is_linked( pan ) ) { return; } #endif _override( pan, 0 ); _free_obscure( pan ); prev = pan->below; next = pan->above; // if non-zero, we will not update the list head if( prev ) { prev->above = next; if( next ) { next->below = prev; } } else if( next ) { next->below = prev; } if( pan == _bottom_panel ) { _bottom_panel = next; } if( pan == _top_panel ) { _top_panel = prev; } _calculate_obscure(); pan->above = (PANEL*)0; pan->below = (PANEL*)0; dStack( "<u%d>", 9, pan ); }
//------------------------------------------------------------------------------ int move_panel( PANEL* pan, int starty, int startx ) { __QCS_FCONTEXT( "move_panel" ); WINDOW* win; int maxy, maxx; if( !pan ) { return ERR; } if( _panel_is_linked( pan ) ) { _override( pan, 0 ); } win = pan->win; if( mvwin( win, starty, startx ) == ERR ) { return ERR; } getbegyx( win, pan->wstarty, pan->wstartx ); getmaxyx( win, maxy, maxx ); pan->wendy = pan->wstarty + maxy; pan->wendx = pan->wstartx + maxx; if( _panel_is_linked( pan ) ) { _calculate_obscure(); } return 0; }
int bottom_panel(PANEL *pan) { if (!pan) return ERR; if (pan == _bottom_panel) return OK; if (_panel_is_linked(pan)) hide_panel(pan); _panel_link_bottom(pan); return OK; }
int show_panel(PANEL *pan) { if (!pan) return ERR; if (pan == _top_panel) return OK; if (_panel_is_linked(pan)) hide_panel(pan); _panel_link_top(pan); return OK; }
int hide_panel(PANEL *pan) { if (!pan) return ERR; if (!_panel_is_linked(pan)) { pan->above = (PANEL *)0; pan->below = (PANEL *)0; return ERR; } _panel_unlink(pan); return OK; }
//------------------------------------------------------------------------------ int del_panel( PANEL* pan ) { __QCS_FCONTEXT( "del_panel" ); if( pan ) { if( _panel_is_linked( pan ) ) { hide_panel( pan ); } free( (char*)pan ); return 0; } return ERR; }
//------------------------------------------------------------------------------ int hide_panel( PANEL* pan ) { __QCS_FCONTEXT( "hide_panel" ); if( !pan ) { return ERR; } if( !_panel_is_linked( pan ) ) { pan->above = (PANEL*)0; pan->below = (PANEL*)0; return ERR; } _panel_unlink( pan ); return 0; }
//------------------------------------------------------------------------------ int show_panel( PANEL* pan ) { if( !pan ) { return ERR; } if( pan == _top_panel ) { return 0; } if( _panel_is_linked( pan ) ) { hide_panel( pan ); } _panel_link_top( pan ); return 0; }
//------------------------------------------------------------------------------ int bottom_panel( PANEL* pan ) { __QCS_FCONTEXT( "bottom_panel" ); if( !pan ) { return ERR; } if( pan == _bottom_panel ) { return 0; } if( _panel_is_linked( pan ) ) { hide_panel( pan ); } _panel_link_bottom( pan ); return 0; }
static void _panel_link_top(PANEL *pan) { #ifdef PANEL_DEBUG dStack("<lt%d>", 1, pan); if (_panel_is_linked(pan)) return; #endif pan->above = (PANEL *)0; pan->below = (PANEL *)0; if (_top_panel) { _top_panel->above = pan; pan->below = _top_panel; } _top_panel = pan; if (!_bottom_panel) _bottom_panel = pan; _calculate_obscure(); dStack("<lt%d>", 9, pan); }