| Main index | Section 3 | Options |
#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);
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.
update_panels may be called more than once before a call to doupdate, but doupdate is the function responsible for updating the physical screen.
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.
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 compatibility with System V panel libraries.
It is not part of X/Open Curses.
A few implementations exist:
| &#187; | Systems based on SVr4 source code, such as Solaris, provide this library. |
| &#187; | 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. | |
| &#187; | NetBSD 8 (2018) has a panel library begun by Valery Ushakov in 2015, based on the System V documentation. |
Zeyd ben-Halim repackaged it for ncurses.
Juergen Pfeifer and Thomas E. Dickey revised and improved the library.
| 2024-03-16 | panel (3X) | ncurses 6.5 |
| Main index | Section 3 | Options |
Please direct any comments about this manual page service to Ben Bullock. Privacy policy.
| “ | The most horrifying thing about Unix is that, no matter how many times you hit yourself over the head with it, you never quite manage to lose consciousness. It just goes on and on. | ” |
| — Patrick Sobalvarro | ||