panel(3x) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

panel(3x)

panel(3x)                        Library calls                       panel(3x)

NAME
       panel - manage overlapping curses windows

SYNOPSIS
       #include <panel.h>

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

       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, make only high-
       level curses calls, and work anywhere curses does.

FUNCTIONS
   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  deallo‐
       cates 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  re‐
       moved 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 re‐
       fresh 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.

       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 ERR  if  mvwin  re‐
       turns ERR.


ATTRIBUTES
       See attributes(7) for descriptions of the following attributes:

       box; cbp-1 | cbp-1 l | l .  ATTRIBUTE TYPE ATTRIBUTE VALUE = Availabil‐
       ity   library/ncurses = Stability Uncommitted

NOTES
       The header file panel.h itself includes the header file curses.h.

       Source  code  for open source software components in Oracle Solaris can
       be found at https://www.oracle.com/downloads/opensource/solaris-source-
       code-downloads.html.

       This software was built from source available at:
       https://github.com/oracle/solaris-userland

       The original community source was downloaded from:
       https://invisible-mirror.net/archives/ncurses/cur‐
       rent/ncurses-6.5-20250614.tgz

       Further information about this software can be found on the open source
       community website at https://invisible-island.net/ncurses/.

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  di‐
       rectly 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
       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 Sys‐
       tem V panel libraries.

HISTORY
       A panel facility was documented in SVr4.2's  Character  User  Interface
       Programming document.

       It is not part of X/Open Curses.

       A few implementations exist:

       •   Systems  based  on  SVr4 source code, such as Solaris, provide this
           library.

       •   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).

           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.

       •   NetBSD  8  (2018)  has  a  panel library begun by Valery Ushakov in
           2015, based on the System V documentation.

AUTHORS
       Warren Tucker <wht@n4hgf.mt-park.ga.us> originally wrote this implemen‐
       tation, primarily to assist in porting u386mon to systems without a na‐
       tive panel library.

       Zeyd ben-Halim repackaged it for ncurses.

       Juergen Pfeifer and Thomas E. Dickey revised and improved the library.

SEE ALSO
       curses(3X), curs_variables(3X)


ncurses 6.5                       2024-12-28                         panel(3x)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3