]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - man/panel.3x
ncurses 6.4 - patch 20231125
[ncurses.git] / man / panel.3x
index 57a577461bd5b6659d8d5d4c565c9ffb623c54c6..497006ff473760b034d2202b5688f7a90c6b23ec 100644 (file)
@@ -27,8 +27,8 @@
 .\" authorization.                                                           *
 .\"***************************************************************************
 .\"
-.\" $Id: panel.3x,v 1.57 2023/10/14 19:20:40 tom Exp $
-.TH panel 3X 2023-10-14 "ncurses 6.4" "Library calls"
+.\" $Id: panel.3x,v 1.59 2023/11/25 14:08:47 tom Exp $
+.TH panel 3X 2023-11-25 "ncurses 6.4" "Library calls"
 .ie \n(.g \{\
 .ds `` \(lq
 .ds '' \(rq
@@ -46,7 +46,7 @@
 ..
 .SH NAME
 panel \-
-panel stack extension for curses
+panel stack extension for \fI\%curses\fP
 .SH SYNOPSIS
 .nf
 \fB#include <panel.h>
@@ -77,187 +77,214 @@ panel stack extension for curses
 \fBPANEL *ceiling_panel(SCREEN *\fIsp\fP);
 .fi
 .SH DESCRIPTION
-Panels are \fBcurses\fP(3X) windows with the added feature of
+Panels are \fBcurses\fP(3X) windows with the added property of
 depth.
-Panel functions allow the use of stacked windows and ensure
-the proper portions of each window and the curses \fBstdscr\fP window are
-hidden or displayed when panels are added, moved, modified or removed.
+Panel functions allow the use of stacked windows and ensure that the
+proper portions of each window and the \fI\%curses\fP \fB\%stdscr\fP
+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
-\fBstdscr\fP window is beneath all panels, and is not considered part
-of the stack.
-.P
-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.
-.P
-Panel routines are a functional layer added to \fBcurses\fP(3X), make only
-high-level curses calls, and work anywhere terminfo curses does.
+\fB\%stdscr\fP window is beneath all panels,
+and is not considered part of the stack.
+.PP
+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.
+.PP
+Panel routines are a functional layer added to \fI\%curses\fP,
+make only high-level \fI\%curses\fP calls,
+and work anywhere \fI\%curses\fP does.
 .SH FUNCTIONS
 .\" ---------
 .SS bottom_panel
-\fBbottom_panel(\fIpan\fB)\fR
+\fB\%bottom_panel(\fIpan\fB)\fR
 puts panel \fIpan\fP at the bottom of all panels.
 .\" ---------
 .SS ceiling_panel
-\fBceiling_panel(\fIsp\fB)\fR
-acts like \fBpanel_below(NULL)\fP, for the given \fBSCREEN\fP \fIsp\fP.
+\fB\%ceiling_panel(\fIsp\fB)\fR
+acts like \fB\%panel_below(NULL)\fP
+for the given \fI\%SCREEN\fP \fIsp\fP.
 .\" ---------
 .SS del_panel
-\fBdel_panel(\fIpan\fB)\fR
-removes the given panel \fIpan\fP from the  stack and deallocates the
-\fBPANEL\fP structure (but not its associated window).
+\fB\%del_panel(\fIpan\fB)\fR
+removes the given panel \fIpan\fP from the stack and deallocates the
+\fI\%PANEL\fP structure (but not its associated window).
 .\" ---------
 .SS ground_panel
-\fBground_panel(\fIsp\fB)\fR
-acts like \fBpanel_above(NULL)\fP, for the given \fBSCREEN\fP \fIsp\fP.
+\fB\%ground_panel(\fIsp\fB)\fR
+acts like \fB\%panel_above(NULL)\fP
+for the given \fI\%SCREEN\fP \fIsp\fP.
 .\" ---------
 .SS hide_panel
-\fBhide_panel(\fIpan\fB)\fR
+\fB\%hide_panel(\fIpan\fB)\fR
 removes the given panel \fIpan\fP from the panel stack
 and thus hides it from view.
-The \fBPANEL\fP structure is not lost, merely removed from the stack.
+The \fI\%PANEL\fP structure is not lost,
+merely removed from the stack.
 .\" ---------
 .SS move_panel
-\fBmove_panel(\fIpan\fB,\fIstarty\fB,\fIstartx\fB)\fR
-moves the given panel \fIpan\fP's window so that its upper-left corner is at
-\fIstarty\fP, \fIstartx\fP.
+\fB\%move_panel(\fIpan\fB, \fIstarty\fB, \fIstartx\fB)\fR
+moves the given panel \fIpan\fP's window so that its upper-left corner
+is at
+\fIstarty\fP,
+\fIstartx\fP.
 It does not change the position of the panel in the stack.
-Be sure to use this function, not \fBmvwin\fP(3X), to move a panel window.
+Be sure to use this function,
+not \fB\%mvwin\fP(3X),
+to move a panel window.
 .\" ---------
 .SS new_panel
-\fBnew_panel(\fIwin\fB)\fR allocates a \fBPANEL\fR structure,
-associates it with \fIwin\fP, 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.
+\fB\%new_panel(\fIwin\fB)\fR allocates a \fI\%PANEL\fR structure,
+associates it with \fIwin\fP,
+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.
 .\" ---------
 .SS panel_above
-\fBpanel_above(\fIpan\fB)\fR
+\fB\%panel_above(\fIpan\fB)\fR
 returns a pointer to the panel above \fIpan\fP.
 If the panel argument is
-\fB(PANEL *)0\fP, it returns a pointer to the bottom panel in the stack.
+\*(``\fB(PANEL *)0\fP\*('',
+it returns a pointer to the bottom panel in the stack.
 .\" ---------
 .SS panel_below
-\fBpanel_below(\fIpan\fB)\fR
+\fB\%panel_below(\fIpan\fB)\fR
 returns a pointer to the panel just below \fIpan\fP.
-If the panel argument
-is \fB(PANEL *)0\fP, it returns a pointer to the top panel in the stack.
+If the panel argument is
+\*(``\fB(PANEL *)0\fP\*('',
+it returns a pointer to the top panel in the stack.
 .\" ---------
 .SS panel_hidden
-\fBpanel_hidden(\fIpan\fB)\fR
+\fB\%panel_hidden(\fIpan\fB)\fR
 returns \fBFALSE\fP if the panel \fIpan\fP is in the panel stack,
-\fBTRUE\fP if it is not.
-If the panel is a null pointer, return \fBERR\fP.
+and \fBTRUE\fP if it is not.
+If the panel is a null pointer,
+it returns \fBERR\fP.
 .\" ---------
 .SS panel_userptr
-\fBpanel_userptr(\fIpan\fB)\fR
+\fB\%panel_userptr(\fIpan\fB)\fR
 returns the user pointer for a given panel \fIpan\fP.
 .\" ---------
 .SS panel_window
-\fBpanel_window(\fIpan\fB)\fR
+\fB\%panel_window(\fIpan\fB)\fR
 returns a pointer to the window of the given panel \fIpan\fP.
 .\" ---------
 .SS replace_panel
-\fBreplace_panel(\fIpan\fB,\fIwindow\fB)\fR
+\fB\%replace_panel(\fIpan\fB, \fIwindow\fB)\fR
 replaces the current window of panel \fIpan\fP with \fIwindow\fP
-This is useful, for example if you want to resize a panel.
-In \fBncurses\fP, you can call \fBreplace_panel\fP
-to resize a panel using a window resized with \fBwresize\fP(3X).
+This is useful if,
+for example,
+you want to resize a panel.
+In \fI\%ncurses\fP,
+you can call \fB\%replace_panel\fP
+to resize a panel using a window resized with \fB\%wresize\fP(3X).
 It does not change the position of the panel in the stack.
 .\" ---------
 .SS set_panel_userptr
-\fBset_panel_userptr(\fIpan\fB,\fIptr\fB)\fR
+\fB\%set_panel_userptr(\fIpan\fB, \fIptr\fB)\fR
 sets the panel's user pointer.
 .\" ---------
 .SS show_panel
-\fBshow_panel(\fIpan\fB)\fR
+\fB\%show_panel(\fIpan\fB)\fR
 makes a hidden panel visible by placing it on top of the panels in the
 panel stack.
-See \fBCOMPATIBILITY\fP below.
+See \*(``PORTABILITY\*('' below.
 .\" ---------
 .SS top_panel
-\fBtop_panel(\fIpan\fB)\fR
-puts the given visible panel \fIpan\fP on top of all panels in the stack.
-See \fBCOMPATIBILITY\fP below.
+\fB\%top_panel(\fIpan\fB)\fR
+puts the given visible panel \fIpan\fP on top of all panels in the
+stack.
+See \*(``PORTABILITY\*('' below.
 .\" ---------
 .SS update_panels
-\fBupdate_panels()\fR
-refreshes the \fIvirtual screen\fP to reflect the relations between the
-panels in the stack, but does not call \fBdoupdate\fP(3X) to refresh the
-\fIphysical screen\fP.
-Use this function and not \fBwrefresh\fP(3X) or \fBwnoutrefresh\fP(3X).
+\fB\%update_panels()\fR
+refreshes the virtual screen to reflect the relations between the panels
+in the stack,
+but does not call \fB\%doupdate\fP(3X) to refresh the physical screen.
+Use this function and not \fB\%wrefresh\fP(3X) or
+\fB\%wnoutrefresh\fP(3X).
 .PP
-\fBupdate_panels\fP may be called more than once before a call to
-\fBdoupdate\fP, but \fBdoupdate\fP is the function responsible for updating
-the \fIphysical screen\fP.
-.SH DIAGNOSTICS
+\fB\%update_panels\fP may be called more than once before a call to
+\fB\%doupdate\fP,
+but \fB\%doupdate\fP is the function responsible for updating
+the physical screen.
+.SH "RETURN VALUE"
 Each routine that returns a pointer returns \fBNULL\fP if an error
 occurs.
 Each routine that returns an int value returns \fBOK\fP if it
 executes successfully and \fBERR\fP if not.
 .PP
-Except as noted, the \fIpan\fP and \fIwindow\fP parameters must be non-null.
-If those are null, an error is returned.
+Except as noted,
+the \fIpan\fP and \fIwindow\fP parameters must be non-null.
+If either is null,
+an error is returned.
 .PP
-The \fBmove_panel\fP function uses \fBmvwin\fP(3X),
-and will return an error if \fBmvwin\fP returns an error.
-.SH COMPATIBILITY
-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 is unchanged).
-The \fBPANEL\fP data structures are merely  similar.
-The  programmer
-is cautioned not to directly use \fBPANEL\fP fields.
-.P
-The functions \fBshow_panel\fP and \fBtop_panel\fP are identical
-in this implementation, and work equally well with displayed or hidden
-panels.
-In the native System V implementation, \fBshow_panel\fP is
-intended for making a hidden panel visible (at the top of the stack)
-and \fBtop_panel\fP is intended for making an already-visible panel
+The \fB\%move_panel\fP function uses \fBmvwin\fP(3X),
+and returns an error if \fB\%mvwin\fP returns an error.
+.SH NOTES
+The header file \fI\%panel.h\fP itself includes the header file
+\fI\%curses.h\fP.
+.SH 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 \fI\%PANEL\fP data structures are merely similar.
+The programmer is cautioned not to directly use \fI\%PANEL\fP fields.
+.PP
+The functions \fB\%show_panel\fP and \fB\%top_panel\fP are identical
+in this implementation,
+and work equally well with displayed or hidden panels.
+In the System\ V implementation,
+\fB\%show_panel\fP is intended for making a hidden panel visible
+(at the top of the stack)
+and \fB\%top_panel\fP 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.
-.SH 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).
-.SH PORTABILITY
-The panel facility was documented in SVr4.2 in
-\fICharacter User Interface Programming (UNIX SVR4.2)\fP.
+function to ensure compatibility with System\ V panel libraries.
+.SH HISTORY
+A panel facility was documented in SVr4.2's
+\fICharacter User Interface Programming\fP document.
 .PP
 It is not part of X/Open Curses.
 .PP
 A few implementations exist:
 .bP
 Systems based on SVr4 source code,
-e.g., Solaris, provide this library.
+such as Solaris,
+provide this library.
 .bP
-\fBncurses\fP (since version 0.6 in 1993)
-and \fBPDCurses\fP (since version 2.2 in 1995)
+\fIncurses\fP (since version 0.6 in 1993)
+and \fIPDCurses\fP (since version 2.2 in 1995)
 provide a panel library whose common ancestor
-was a public domain implementation by Warren Tucker
+is a public domain implementation by Warren Tucker
 published in \fIu386mon\fP 2.20 (1990).
 .IP
-According to Tucker, the System\ V panel library
-was first released in SVr3.2 (1988),
+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).
 .IP
 Several developers have improved each of these;
 they are no longer the same as Tucker's implementation.
 .bP
 NetBSD 8 (2018)
-has a panel library begun by Valery Ushakov in 2015.
-This is based on the AT&T documentation.
-.SH AUTHOR
-Originally written by Warren Tucker <wht@n4hgf.mt-park.ga.us>,
-primarily to assist in porting \fIu386mon\fP to systems without a native
-panels library.
+has a panel library begun by Valery Ushakov in 2015,
+based on the System\ V documentation.
+.SH AUTHORS
+Warren Tucker <wht@n4hgf.mt\-park.ga.us> originally wrote this
+implementation,
+primarily to assist in porting \fI\%u386mon\fP to systems without a
+native panel library.
 .PP
-Repackaged for ncurses by Zeyd ben-Halim.
+Zeyd ben-Halim repackaged it for \fI\%ncurses\fP.
 .PP
-Juergen Pfeifer and Thomas E. Dickey revised/improved the library.
+Juergen Pfeifer and Thomas E. Dickey revised and improved the library.
 .SH SEE ALSO
 \fB\%curses\fP(3X),
 \fB\%curs_variables\fP(3X)