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

개요

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

newpad(3x)

curs_pad(3x)                     Library calls                    curs_pad(3x)

NAME
       newpad, subpad, prefresh, pnoutrefresh, pechochar, pecho_wchar - create
       and display curses pads

SYNOPSIS
       #include <ncursesw/curses.h>

       WINDOW *newpad(int nlines, int ncols);
       WINDOW *subpad(WINDOW *parent, int nlines, int ncols,
             int begin_y, int begin_x);

       int prefresh(WINDOW *pad, int pminrow, int pmincol,
             int sminrow, int smincol, int smaxrow, int smaxcol);
       int pnoutrefresh(WINDOW *pad, int pminrow, int pmincol,
             int sminrow, int smincol, int smaxrow, int smaxcol);

       int pechochar(WINDOW *pad, chtype ch);
       int pecho_wchar(WINDOW *pad, const cchar_t *wch);

DESCRIPTION
       A  curses pad is like a window, except that it is not restricted by the
       screen size, and is not necessarily associated with a  particular  part
       of  the  screen.   Pads can be used when a large window is needed, only
       part of which is to be visible on the screen.  Pads are  not  automati‐
       cally refreshed by scrolling or input-echoing operations.

       Pads   cannot   be   refreshed   with  wrefresh(3X);  use  prefresh  or
       pnoutrefresh instead.

   newpad
       newpad creates and returns a pointer to a new pad data  structure  with
       the given number of lines, nlines, and columns, ncols.

   subpad
       subpad  creates  and returns a pointer to a subwindow within a pad with
       the  given  number  of  lines,  nlines,  and  columns,  ncols.   Unlike
       subwin(3X), which uses screen coordinates, the new pad is placed at po‐
       sition  (begin_y,  begin_x) relative to its parent.  Thus, changes made
       to one pad can affect both.  When operating on a subpad,  it  is  often
       necessary  to call touchwin(3X) or touchline(3X) on parent before call‐
       ing prefresh.

   prefresh, pnoutrefresh
       prefresh  and  pnoutrefresh   are   analogous   to   wrefresh(3X)   and
       wnoutrefresh(3X)  except that they operate on pads rather than windows.
       They require additional parameters are needed to indicate what portions
       of the pad and screen are involved.

       •   pminrow and pmincol specify the upper left-hand corner of a rectan‐
           gular view of the pad.

       •   sminrow, smincol, smaxrow, and smaxcol specify the vertices of  the
           rectangle to be displayed on the screen.

       The lower right-hand corner of the rectangle to be displayed in the pad
       is calculated from the screen coordinates, since the rectangles must be
       the same size.  Both rectangles must be entirely contained within their
       respective  structures.   curses treats negative values of any of these
       parameters as zero.

   pechochar
       pechochar is functionally equivalent to calling waddch(3X) followed  by
       prefresh.  It suggests to the curses optimizer that only a single char‐
       acter  is  being output; a considerable performance benefit may be thus
       enjoyed.  The location of the character ch written to the pad  is  used
       to populate the arguments to prefresh.

   pecho_wchar
       pecho_wchar is functionally equivalent to calling wadd_wch(3X) followed
       by  prefresh.   It  suggests to the curses optimizer that only a single
       wide character is being output; a considerable performance benefit  may
       be  thus enjoyed.  The location of the character wch written to the pad
       is used to populate the arguments to prefresh.

RETURN VALUE
       Functions that return an integer return ERR upon failure  and  OK  upon
       successful completion.

       Functions  that  return pointers return NULL on error, and set errno to
       ENOMEM.

       In this implementation

          prefresh and pnoutrefresh
               return ERR if the window pointer is null, or if the  window  is
               not  really  a pad or if the area to refresh extends off-screen
               or if the minimum coordinates are greater than the maximum.

          pechochar
               returns ERR if the window is not really a pad, and the  associ‐
               ated call to wechochar returns ERR.

          pecho_wchar
               returns  ERR if the window is not really a pad, and the associ‐
               ated call to wecho_wchar returns 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
       pechochar may be implemented as a macro.

       curses documentation is traditionally averse  to  motivating  the  term
       “pad”.  The Apollo Aegis workstation operating system (circa 1981) sup‐
       ported a graphical pad feature.

       •   These  graphical pads could be much larger than the computer's dis‐
           play.

       •   The read-only output from a command could be scrolled back  to  in‐
           spect and select text from the pad.

       The two uses may be related.

       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
       X/Open Curses Issue 4 describes these functions.  It specifies no error
       conditions for them.

       SVr4 describes a successful return value  only  as  “an  integer  value
       other than ERR”.

       The  behavior  of  subpad  if the parent window is not a pad is undocu‐
       mented, and is not checked by the vendor Unix implementations.

       •   SVr4 curses's newpad sets a flag in the WINDOW structure indicating
           that the window is a pad.

           However, it uses this information only in waddch (to decide  if  it
           should  call  wrefresh)  and  wscrl (to avoid scrolling a pad); its
           wrefresh does not check it to ensure that a  pad  is  properly  up‐
           dated.

       •   Solaris   xcurses   checks  whether  a  window  is  a  pad  in  its
           wnoutrefresh, returning ERR in that case.

           However, it sets the flag on subwindows only if the  parent  window
           is a pad.  Its newpad does not set this information.  Consequently,
           the check never fails.

           It makes no comparable check in pnoutrefresh — though interestingly
           enough,  a  comment  in  the  source code states that the lack of a
           check was an MKS extension.

       •   NetBSD 7 curses sets a flag in the WINDOW structure for newpad  and
           subpad,  aiding  itself  to  distinguish  between  wnoutrefresh and
           pnoutrefresh.

           It does not check for the case where a subwindow is  created  in  a
           pad using subwin or derwin.

           Its  dupwin returns a regular window when duplicating a pad.  Like‐
           wise, its getwin always returns a window, even if  the  saved  data
           was from a pad.

       ncurses:

       •   sets a flag in the WINDOW structure for newpad and subpad,

       •   allows  a  subwin  or derwin call to succeed having a pad parent by
           forcing the subwindow to be a pad,

       •   checks in both wnoutrefresh and pnoutrefresh to  ensure  that  pads
           and windows are handled distinctly, and

       •   ensures  that  dupwin  and getwin treat pads versus windows consis‐
           tently.

HISTORY
       SVr2 (1984) introduced newpad, prefresh, and pnoutrefresh,  documenting
       them in a single line each.

       SVr3  (1987)  added  subpad  and pechochar, and provided more extensive
       documentation.

       The System V Interface Definition, Version 4 (1995), specified a  func‐
       tion  named  pechowchar.   This was a later addition to SVr4.x, not ap‐
       pearing in the first SVr4  (1989).   It  differs  from  X/Open's  later
       pecho_wchar  in  that  its  wstr  parameter  was  a chtype instead of a
       wchar_t, and was not const-qualified.

SEE ALSO
       curses(3X), curs_addch(3X), curs_refresh(3X), curs_touch(3X)


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