X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=doc%2Fhtml%2Fman%2Fpanel.3x.html;h=e5426a7adf62c6877dad247a82372aaf54f4cd98;hp=ab84cd471c376fad66624d37c882e9f3f1275746;hb=HEAD;hpb=7fa7badf32c514211478cf9f79c70f20d435c2f2 diff --git a/doc/html/man/panel.3x.html b/doc/html/man/panel.3x.html index ab84cd47..e585b33c 100644 --- a/doc/html/man/panel.3x.html +++ b/doc/html/man/panel.3x.html @@ -1,6 +1,7 @@ - - -panel 3x - - + +panel 3x 2024-03-16 ncurses 6.4 Library calls + + -

panel 3x

+

panel 3x 2024-03-16 ncurses 6.4 Library calls

-panel(3x)                                                            panel(3x)
+panel(3x)                        Library calls                       panel(3x)
 
 
 
 
 

NAME

-       panel - panel stack extension for curses
+       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);
+       PANEL *new_panel(WINDOW *win);
+
+       int bottom_panel(PANEL *pan);
+       int top_panel(PANEL *pan);
+       int show_panel(PANEL *pan);
+       void update_panels(void);
+       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);
+
+       /* ncurses extensions */
+       PANEL *ground_panel(SCREEN *sp);
+       PANEL *ceiling_panel(SCREEN *sp);
 
 
 

DESCRIPTION

-       Panels  are  curses(3x) windows with the added feature of depth.  Panel
-       functions allow the use of stacked windows and ensure the  proper  por-
-       tions  of  each  window and the curses stdscr window are hidden or dis-
-       played 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.
+       Panels  are curses(3x) windows with the added property of depth.  Panel
+       functions allow the use of stacked windows and ensure that  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.
+       A window is associated with each panel.  The panel routines enable  you
+       to  create,  move,  hide, and show panels.  You can relocate a panel to
+       any desired position in the stack.
 
-       Panel routines are a functional layer added to  curses(3x),  make  only
-       high-level curses calls, and work anywhere terminfo curses does.
+       Panel routines are a functional layer added to curses, make only  high-
+       level curses calls, and work anywhere 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.
-
-       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  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.
-
-       panel_hidden(pan)
-              returns  TRUE if the panel is in the panel stack, FALSE if it is
-              not.  If the panel is a null pointer, return ERR.
-
-       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 (useful, for
-              example if you want to resize a panel; if you're using  ncurses,
-              you  can  call  replace_panel on the output of wresize(3x)).  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)
-              returns the user pointer for a given panel.
-
-       panel_window(pan)
-              returns a pointer to the window of the given panel.
-
-
-

DIAGNOSTICS

+
+

bottom_panel

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

ceiling_panel

+       ceiling_panel(sp) acts like panel_below(NULL) for the given SCREEN sp.
+
+
+

del_panel

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

ground_panel

+       ground_panel(sp) acts like panel_above(NULL) for the given SCREEN sp.
+
+
+

hide_panel

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

move_panel

+       move_panel(pan, starty, startx) moves the given panel pan's  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(3x), to move a panel window.
+
+
+

new_panel

+       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.
+
+
+

panel_above

+       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

+       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.
+
+
+

panel_hidden

+       panel_hidden(pan) returns FALSE if the panel pan is in the panel stack,
+       and TRUE if it is not.  If the panel is a null pointer, it returns ERR.
+
+
+

panel_userptr

+       panel_userptr(pan) returns the user pointer for a given panel pan.
+
+
+

panel_window

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

replace_panel

+       replace_panel(pan,  window)  replaces  the  current window of panel pan
+       with window This is useful if, for example, you want to resize a panel.
+       In ncurses, you can call replace_panel to resize a panel using a window
+       resized with wresize(3x).  It does not change the position of the panel
+       in the stack.
+
+
+

set_panel_userptr

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

show_panel

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

top_panel

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

update_panels

+       update_panels()  refreshes  the virtual screen to reflect the relations
+       between the panels in the stack, but  does  not  call  doupdate(3x)  to
+       refresh the physical screen.  Use this function and not wrefresh(3x) or
+       wnoutrefresh(3x).
+
+       update_panels may be called more than once before a call  to  doupdate,
+       but  doupdate  is  the  function  responsible for updating the physical
+       screen.
+
+
+

RETURN VALUE

        Each routine that returns a pointer returns NULL if  an  error  occurs.
-       Each  routine  that returns an int value returns OK if it executes suc-
-       cessfully and ERR if not.
+       Each  routine  that  returns  an  int  value  returns OK if it executes
+       successfully and ERR if not.
+
+       Except as noted, the pan and window parameters must  be  non-null.   If
+       either is null, an error is returned.
+
+       The  move_panel  function uses mvwin(3x), and returns an error if mvwin
+       returns an error.
+
 
+

NOTES

+       The header file panel.h itself includes the header file curses.h.
 
-

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 programming  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  implemen-
-       tation,  and work equally well with displayed or hidden panels.  In the
-       native System V implementation, show_panel is  intended  for  making  a
+

PORTABILITY

+       Reasonable care has been taken to ensure compatibility with the  native
+       panel  facility  introduced  in System V; inspection of the SVr4 manual
+       pages suggests the programming interface never changed.  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 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 compati-
-       bility with native panel libraries.
+       stack.   You  are  cautioned  to  use  the  correct  function to ensure
+       compatibility with System V panel libraries.
 
 
-

NOTE

-       In your library list, libpanel.a should be  before  libncurses.a;  that
-       is, you should say "-lpanel -lncurses", not the other way around (which
-       would give a link-error with static libraries).
+

HISTORY

+       A panel facility was documented in SVr4.2's  Character  User  Interface
+       Programming document.
 
+       It is not part of X/Open Curses.
 
-

FILES

-       panel.h interface for the panels library
+       A few implementations exist:
 
-       libpanel.a the panels library itself
+       o   Systems  based  on  SVr4 source code, such as Solaris, provide this
+           library.
 
+       o   ncurses (since version 0.6 in 1993) and PDCurses (since version 2.2
+           in  1995) provide a panel library whose common ancestor is a public
+           domain implementation by Warren Tucker published  in  u386mon  2.20
+           (1990).
 
-

SEE ALSO

-       curses(3x), curs_variables(3x),
+           According  to Tucker, the System V panel library was first released
+           in SVr3.2 (1988), and his implementation  helped  with  a  port  to
+           SVr3.1 (1987).
+
+           Several  developers have improved each of these; they are no longer
+           the same as Tucker's implementation.
 
-       This describes ncurses version 6.0 (patch 20171014).
+       o   NetBSD 8 (2018) has a panel library  begun  by  Valery  Ushakov  in
+           2015, based on the System V documentation.
 
 
-

AUTHOR

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

AUTHORS

+       Warren   Tucker   <wht@n4hgf.mt-park.ga.us>   originally   wrote   this
+       implementation, primarily to  assist  in  porting  u386mon  to  systems
+       without a native panel library.
 
+       Zeyd ben-Halim repackaged it for ncurses.
 
+       Juergen Pfeifer and Thomas E. Dickey revised and improved the library.
 
-                                                                     panel(3x)
+
+

SEE ALSO

+       curses(3x), curs_variables(3x)
+
+
+
+ncurses 6.4                       2024-03-16                         panel(3x)