MirOS Manual: bottom_panel(3), del_panel(3), hide_panel(3), move_panel(3), new_panel(3), panel(3), panel_above(3), panel_below(3), panel_hidden(3), panel_userptr(3), panel_window(3), replace_panel(3), set_panel_userptr(3), show_panel(3), top_panel(3), update_panels(3)


panel(3)            UNIX Programmer's Manual             panel(3)

NAME

     panel - panel stack extension for curses

SYNOPSIS

     #include <panel.h>

     cc [flags] sourcefiles -lpanel -lncurses

     PANEL *new_panel(WINDOW *win)
     int bottom_panel(PANEL *pan)
     int top_panel(PANEL *pan)
     int show_panel(PANEL *pan)
     void update_panels();
     int hide_panel(PANEL *pan)
     WINDOW *panel_window(const PANEL *pan)
     int replace_panel(PANEL *pan, WINDOW *window)
     int move_panel(PANEL *pan, int starty, int startx)
     int panel_hidden(const PANEL *pan)
     PANEL *panel_above(const PANEL *pan)
     PANEL *panel_below(const PANEL *pan)
     int set_panel_userptr(PANEL *pan, const void *ptr)
     const void *panel_userptr(const PANEL *pan)
     int del_panel(PANEL *pan)

DESCRIPTION

     Panels are curses(3) windows with the added feature of
     depth.  Panel functions allow the use of stacked windows and
     ensure the proper portions of each window and the curses
     stdscr window are hidden or displayed when panels are added,
     moved, modified or removed. The set of currently visible
     panels is the stack of panels.  The stdscr window is beneath
     all panels, and is not considered part of the stack.

     A window is associated with every panel. The panel routines
     enable you to create, move, hide, and show panels, as well
     as position a panel at any desired location in the stack.

     Panel routines are a functional layer added to curses(3),
     make only high-level curses calls, and work anywhere ter-
     minfo curses does.

FUNCTIONS

     new_panel(win)
          allocates  a  PANEL structure, associates it with win,
          places the panel on the top of the stack  (causes  it
          to  be  displayed above any other panel) and returns a
          pointer to the new panel.

     void update_panels()
          refreshes the virtual screen to reflect the relations
          between the panels in the stack, but does not call
          doupdate() to refresh the physical screen.  Use this

MirOS BSD #10-current   Printed 2.4.2014                        1

panel(3)            UNIX Programmer's Manual             panel(3)

          function and not wrefresh or wnoutrefresh.
          update_panels() may be called more than once before a
          call to doupdate(), but doupdate() is the function
          responsible for updating the physical screen.

     del_panel(pan)
          removes the given panel from the  stack and deallocates
          the PANEL structure (but not its associated window).

     hide_panel(pan)
          removes the given panel from the panel stack and thus
          hides it from view. The PANEL structure is not lost,
          merely removed from the stack.

     show_panel(pan)
          makes a hidden panel visible by placing it on top of
          the panels in the panel stack. See COMPATIBILITY below.

     top_panel(pan)
          puts the given visible panel on top of all panels in
          the stack.  See COMPATIBILITY below.

     bottom_panel(pan)
          puts panel at the bottom of all panels.

     move_panel(pan,starty,startx)
          moves the given panel window so that its upper-left
          corner is at starty, startx.  It does not change the
          position of the panel in the stack.  Be sure to use
          this function, not mvwin(), to move a panel window.

     replace_panel(pan,window)
          replaces the current window of panel with window (use-
          ful, for example if you want to resize a panel; if
          you're using ncurses, you can call replace_panel on the
          output of wresize(3)). It does not change the position
          of the panel in the stack.

     panel_above(pan)
          returns a pointer to the panel above pan.  If the panel
          argument is (PANEL *)0, it returns a pointer to the
          bottom panel in the stack.

     panel_below(pan)
          returns a pointer to the panel just below pan.  If the
          panel argument is (PANEL *)0, it returns a pointer to
          the top panel in the stack.

     set_panel_userptr(pan,ptr)
          sets the panel's user pointer.

     panel_userptr(pan)

MirOS BSD #10-current   Printed 2.4.2014                        2

panel(3)            UNIX Programmer's Manual             panel(3)

          returns the user pointer for a given panel.

     panel_window(pan)
          returns a pointer to the window of the given panel.

DIAGNOSTICS

     Each routine that returns a pointer returns NULL if an error
     occurs. Each routine that returns an int value returns OK if
     it executes successfully and ERR if not.

COMPATIBILITY

     Reasonable care has been taken to  ensure  compatibility
     with  the  native  panel facility introduced in SVr3.2
     (inspection of the SVr4 manual pages suggests the program-
     ming interface is unchanged). The PANEL data structures are
     merely  similar. The  programmer is cautioned not to
     directly use PANEL fields.

     The functions show_panel() and top_panel() are identical in
     this implementation, and work equally well with displayed or
     hidden panels.  In the native System V implementation,
     show_panel() is intended for making a hidden panel visible
     (at the top of the stack) and top_panel() is intended for
     making an already-visible panel move to the top of the
     stack. You are cautioned to use the correct function to
     ensure compatibility with native panel libraries.

NOTE

     In your library list, libpanel.a should be before
     libncurses.a; that is, you want to say `-lpanel -lncurses',
     not the other way around (which would give you a link error
     using GNU ld(1) and some other linkers).

FILES

     panel.h interface for the panels library

     libpanel.a the panels library itself

SEE ALSO

     curses(3)

AUTHOR

     Originally written by Warren Tucker <wht@n4hgf.mt-
     park.ga.us>, primarily to assist in porting u386mon to sys-
     tems without a native panels library.  Repackaged for
     ncurses by Zeyd ben-Halim.

MirOS BSD #10-current   Printed 2.4.2014                        3

Generated on 2014-04-02 20:57:59 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.