MirBSD manpage: curs_window(3), delwin(3), derwin(3), dupwin(3), mvderwin(3), mvwin(3), newwin(3), subwin(3), syncok(3), wcursyncup(3), wsyncdown(3), wsyncup(3)

curs_window(3)      UNIX Programmer's Manual       curs_window(3)


     newwin, delwin, mvwin, subwin, derwin, mvderwin, dupwin,
     wsyncup, syncok, wcursyncup, wsyncdown - create curses


     #include <curses.h>

     WINDOW *newwin(int nlines, int ncols, int begin_y,
           int begin_x);
     int delwin(WINDOW *win);
     int mvwin(WINDOW *win, int y, int x);
     WINDOW *subwin(WINDOW *orig, int nlines, int ncols,
           int begin_y, int begin_x);
     WINDOW *derwin(WINDOW *orig, int nlines, int ncols,
           int begin_y, int begin_x);
     int mvderwin(WINDOW *win, int par_y, int par_x);
     WINDOW *dupwin(WINDOW *win);
     void wsyncup(WINDOW *win);
     int syncok(WINDOW *win, bool bf);
     void wcursyncup(WINDOW *win);
     void wsyncdown(WINDOW *win);


     Calling newwin creates and returns a pointer to a new window
     with the given number of lines and columns.  The upper left-
     hand corner  of  the  window  is  at  line  begin_y,  column
     begin_x.  If either nlines or ncols is zero, they default to
     LINES - begin_y and COLS - begin_x.  A new full-screen  win-
     dow is created by calling newwin(0,0,0,0).

     Calling delwin deletes the named window, freeing all  memory
     associated  with it (it does not actually erase the window's
     screen image).  Subwindows must be deleted before  the  main
     window can be deleted.

     Calling mvwin moves the window so that the  upper  left-hand
     corner  is  at position (x, y).  If the move would cause the
     window to be off the screen, it is an error and  the  window
     is  not  moved.  Moving subwindows is allowed, but should be

     Calling subwin creates and returns a pointer to a new window
     with  the given number of lines, nlines, and columns, ncols.
     The window is at position (begin_y, begin_x) on the  screen.
     (This  position  is  relative  to the screen, and not to the
     window orig.)  The window is made in the middle of the  win-
     dow  orig,  so  that  changes made to one window will affect
     both windows.  The subwindow shares memory with  the  window
     orig.   When  using  this  routine,  it is necessary to call
     touchwin or touchline on orig before calling wrefresh on the

MirBSD #10-current     Printed 2022-12-23                       1

curs_window(3)      UNIX Programmer's Manual       curs_window(3)

     Calling derwin is the same as calling  subwin,  except  that
     begin_y and begin_x are relative to the origin of the window
     orig rather than the screen.  There is no difference between
     the subwindows and the derived windows.

     Calling mvderwin moves a derived window (or  subwindow)  in-
     side  its  parent window.  The screen-relative parameters of
     the window are not changed.  This routine is used to display
     different  parts  of  the parent window at the same physical
     position on the screen.

     Calling dupwin creates an exact duplicate of the window win.

     Calling wsyncup touches all locations in  ancestors  of  win
     that  are  changed  in win.  If syncok is called with second
     argument TRUE then wsyncup is called automatically  whenever
     there is a change in the window.

     The wsyncdown routine touches each location in win that  has
     been  touched  in any of its ancestor windows.  This routine
     is called by wrefresh, so it should almost never  be  neces-
     sary to call it manually.

     The routine wcursyncup updates the current  cursor  position
     of  all  the  ancestors of the window to reflect the current
     cursor position of the window.


     Routines that return an integer return the integer ERR  upon
     failure  and OK (SVr4 only specifies "an integer value other
     than ERR") upon successful completion.

     Routines that return pointers return NULL on error.

     X/Open defines no error conditions. In this implementation

               returns an error if the window pointer is null, or
               if the window is the parent of another window.

               This implementation also maintains a list of  win-
               dows, and checks that the pointer passed to delwin
               is one that it created, returning an error  if  it
               was not..

               returns an error if the window pointer is null, or
               if  some  part  of the window would be placed off-

               returns an error if the window pointer is null, or

MirBSD #10-current     Printed 2022-12-23                       2

curs_window(3)      UNIX Programmer's Manual       curs_window(3)

               if  the window is really a pad, or if some part of
               the window would be placed off-screen.

               returns an error if the window pointer is null.


     If many small changes are made to the  window,  the  wsyncup
     option could degrade performance.

     Note that syncok may be a macro.


     The subwindow functions (subwin, derwin, mvderwin,  wsyncup,
     wsyncdown,  wcursyncup,  syncok) are flaky, incompletely im-
     plemented, and not well tested.

     The System V curses documentation is very unclear about what
     wsyncup  and  wsyncdown actually do.  It seems to imply that
     they are only supposed to touch exactly those lines that are
     affected  by  ancestor  changes.  The language here, and the
     behavior of the curses implementation, is patterned  on  the
     XPG4  curses  standard.   The weaker XPG4 spec may result in
     slower updates.


     The XSI Curses standard, Issue 4 describes these functions.


     curses(3), curs_refresh(3), curs_touch(3)

MirBSD #10-current     Printed 2022-12-23                       3

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report — diffs preferred.

Kontakt / Impressum & Datenschutzerklärung