*nix Documentation Project
·  Home
 +   man pages
·  Linux HOWTOs
·  FreeBSD Tips
·  *niX Forums

  man pages->OpenBSD man pages -> panel (3)              



NAME    [Toc]    [Back]

       panel - panel stack extension for curses

SYNOPSIS    [Toc]    [Back]

       #include <panel.h>

       cc [flags] sourcefiles -lpanel -lcurses

       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)

DESCRIPTION    [Toc]    [Back]

       Panels  are  curses(3)  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 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

       Panel  routines are a functional layer added to curses(3),
       make only high-level curses calls, and work anywhere  terminfo
 curses does.

FUNCTIONS    [Toc]    [Back]

              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.

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

              removes the given panel from the  stack and deallocates
 the PANEL structure (but not  its  associated

              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.

              makes  a  hidden panel visible by placing it on top
              of the panels in the panel stack. See COMPATIBILITY

              puts  the  given visible panel on top of all panels
              in the stack.  See COMPATIBILITY below.

              puts panel at the bottom of all panels.

              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

              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(3)).  It does not change
              the position of the panel in the stack.

              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.

              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.

              sets the panel's user pointer.
              returns the user pointer for a given panel.

              returns a pointer to the window of the given panel.

DIAGNOSTICS    [Toc]    [Back]

       Each  routine  that  returns  a pointer returns NULL if an
       error occurs. Each  routine  that  returns  an  int  value
       returns OK if it executes successfully and ERR if not.

COMPATIBILITY    [Toc]    [Back]

       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  implementation,  and work equally well with displayed
 or hidden panels.  In the native 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  native  panel

NOTE    [Toc]    [Back]

       In  your  library  list,  libpanel.a  should   be   before
       libcurses.a;  that is, you want to say `-lpanel -lcurses',
       not the other way around (which  would  give  you  a  link
       error using GNU ld(1) and some other linkers).

FILES    [Toc]    [Back]

       panel.h interface for the panels library

       libpanel.a the panels library itself

SEE ALSO    [Toc]    [Back]


AUTHOR    [Toc]    [Back]

       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.
[ Back ]
 Similar pages
Name OS Title
monpanel IRIX monitor control panel for Presenter Flat Panel Displays
menu FreeBSD curses extension for programming menus
menu OpenBSD curses extension for programming menus
form FreeBSD curses extension for programming forms
form OpenBSD curses extension for programming forms
schemebr IRIX customization panel for specifying color schemes
runpanel IRIX run a system administration status panel
synthpanel IRIX 16 channel MIDI control panel
glxqueryextension IRIX indicate whether the GLX extension is supported
hyperpipe IRIX hyperpipe extension
Copyright © 2004-2005 DeniX Solutions SRL
newsletter delivery service