


panel(3X)                                               panel(3X)


NNAAMMEE
       panel - panel stack extension for curses

SSYYNNOOPPSSIISS
       ##iinncclluuddee <<ppaanneell..hh>>

       cccc [[ffllaaggss]] ssoouurrcceeffiilleess --llppaanneell --llnnccuurrsseess

       PPAANNEELL **nneeww__ppaanneell((WWIINNDDOOWW **wwiinn))
       iinntt bboottttoomm__ppaanneell((PPAANNEELL **ppaann))
       iinntt ttoopp__ppaanneell((PPAANNEELL **ppaann))
       iinntt sshhooww__ppaanneell((PPAANNEELL **ppaann))
       vvooiidd uuppddaattee__ppaanneellss(());;
       iinntt hhiiddee__ppaanneell((PPAANNEELL **ppaann))
       WWIINNDDOOWW **ppaanneell__wwiinnddooww((PPAANNEELL **ppaann))
       iinntt rreeppllaaccee__ppaanneell((PPAANNEELL **ppaann,, WWIINNDDOOWW **wwiinnddooww))
       iinntt mmoovvee__ppaanneell((PPAANNEELL **ppaann,, iinntt ssttaarrttyy,, iinntt ssttaarrttxx))
       iinntt ppaanneell__hhiiddddeenn((PPAANNEELL **ppaann))
       PPAANNEELL **ppaanneell__aabboovvee((PPAANNEELL **ppaann))
       PPAANNEELL **ppaanneell__bbeellooww((PPAANNEELL **ppaann))
       iinntt sseett__ppaanneell__uusseerrppttrr((PPAANNEELL **ppaann,, cchhaarr **ppttrr))
       cchhaarr **ppaanneell__uusseerrppttrr((PPAANNEELL **ppaann))
       iinntt ddeell__ppaanneell((PPAANNEELL **ppaann))

DDEESSCCRRIIPPTTIIOONN
       Panels  are  curses(3X)  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 cur-
       rently visible panels is the stack of panels.  The  ssttddssccrr
       window  is  beneath all panels, and is not considered part
       of the stack.

       A window is associated with every panel.  The  panel  rou-
       tines  enable you to create, move, hides, 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(3X),
       make only high-level curses calls, and work anywhere  ter-
       minfo curses does.

FFUUNNCCTTIIOONNSS
       nneeww__ppaanneell((wwiinn))
              allocates   a  PPAANNEELL structure, assovciates it with
              wwiinn, 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.

       vvooiidd uuppddaattee__ppaanneellss(())
              refreshes the virtual screen to reflect  the  rela-
              tions between the panels in the stack, but does not
              call doupdate() to  refresh  the  physical  screen.



                                                                1





panel(3X)                                               panel(3X)


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

       ddeell__ppaanneell((ppaann))
              removes the given panel from the  stack and deallo-
              cates the PPAANNEELL structure (but not  its  associated
              window).

       hhiiddee__ppaanneell((ppaann))
              removes  the  given  panel from the panel stack and
              thus hides it from view. The PPAANNEELL structure is not
              lost, merely removed from the stack.

       sshhooww__ppaanneell((ppaann))
              makes  a  hidden panel visible by placing it on top
              of the panels in the panel stack. See COMPATIBILITY
              below.

       ttoopp__ppaanneell((ppaann))
              puts  the  given visible panel on top of all panels
              in the stack.  See COMPATIBILITY below.

       bboottttoomm__ppaanneell((ppaann))
              puts panel at the bottom of all panels.

       mmoovvee__ppaanneell((ppaann,,ssttaarrttyy,,ssttaarrttxx))
              moves the given panel window so that its upper-left
              corner  is  at  ssttaarrttyy, ssttaarrttxx.  It does not change
              the position of the panel in the stack.  Be sure to
              use  this  function,  not  mmvvwwiinn(()), to move a panel
              window.

       rreeppllaaccee__ppaanneell((ppaann,,wwiinnddooww))
              replaces the current window of  panel  with  wwiinnddooww
              (useful,  for  example  if  you  want  to  resize a
              panel).  It does not change  the  position  of  the
              panel in the stack.

       ppaanneell__aabboovvee((ppaann))
              returns  a  pointer to the panel above pan.  If the
              panel argument is ((PPAANNEELL **))00, it returns a  pointer
              to the bottom panel in the stack.

       ppaanneell__bbeellooww((ppaann))
              returns  a pointer to the panel just below pan.  If
              the panel argument is  ((PPAANNEELL  **))00,  it  returns  a
              pointer to the top panel in the stack.

       sseett__ppaanneell__uusseerrppttrr((ppaann,,ppttrr))
              sets the panel's user pointer.





                                                                2





panel(3X)                                               panel(3X)


       ppaanneell__uusseerrppttrr((ppaann))
              returns the user pointer for a given panel.

       ppaanneell__wwiinnddooww((ppaann))
              returns a pointer to the window of the given panel.

DDIIAAGGNNOOSSTTIICCSS
       Each routine that returns a pointer  returns  NNUULLLL  if  an
       error  occurs.  Each  routine  that  returns  an int value
       returns OOKK if it executes successfully and EERRRR if not.

CCOOMMPPAATTIIBBIILLIITTYY
       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 PPAANNEELL data structures
       are merely  similar. The  programmer is cautioned  not  to
       directly use PPAANNEELL fields.

       The  functions  sshhooww__ppaanneell(()) and ttoopp__ppaanneell(()) are identical
       in this implementation, and work equally  well  with  dis-
       played or hidden panels.  In the native System V implemen-
       tation, sshhooww__ppaanneell(()) is intended for making a hidden panel
       visible  (at  the  top  of  the  stack) and ttoopp__ppaanneell(()) 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.

FFIILLEESS
       panel.h interface for the panels library

       libpanel.a the panels library itself

SSEEEE AALLSSOO
       curses(3X)

AAUUTTHHOORR
       Originally   written   by   Warren  Tucker  <wht@n4hgf.mt-
       park.ga.us>, primarily to assist  in  porting  u386mon  to
       systems  without  a native panels library.  Repackaged for
       ncurses by Zeyd ben-Halim.















                                                                3


