]> ncurses.scripts.mit.edu Git - ncurses.git/blobdiff - doc/html/man/curs_pad.3x.html
ncurses 6.5 - patch 20240511
[ncurses.git] / doc / html / man / curs_pad.3x.html
index 77fc8cd00ae6a2eec44532cbcdd4d3440e0b5e91..ae27590967bcb2772af8a30888e912bd344c705e 100644 (file)
@@ -1,6 +1,6 @@
 <!--
   ****************************************************************************
-  * Copyright 2018-2022,2023 Thomas E. Dickey                                *
+  * Copyright 2018-2023,2024 Thomas E. Dickey                                *
   * Copyright 1998-2015,2017 Free Software Foundation, Inc.                  *
   *                                                                          *
   * Permission is hereby granted, free of charge, to any person obtaining a  *
   * sale, use or other dealings in this Software without prior written       *
   * authorization.                                                           *
   ****************************************************************************
-  * @Id: curs_pad.3x,v 1.49 2023/11/25 14:08:35 tom Exp @
+  * @Id: curs_pad.3x,v 1.61 2024/04/27 17:55:43 tom Exp @
 -->
 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
 <HTML>
 <HEAD>
 <meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
 <meta name="generator" content="Manpage converted by man2html - see https://invisible-island.net/scripts/readme.html#others_scripts">
-<TITLE>curs_pad 3x 2023-11-25 ncurses 6.4 Library calls</TITLE>
+<TITLE>curs_pad 3x 2024-04-27 ncurses 6.5 Library calls</TITLE>
 <link rel="author" href="mailto:bug-ncurses@gnu.org">
 
 </HEAD>
 <BODY>
-<H1 class="no-header">curs_pad 3x 2023-11-25 ncurses 6.4 Library calls</H1>
+<H1 class="no-header">curs_pad 3x 2024-04-27 ncurses 6.5 Library calls</H1>
 <PRE>
 <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>                     Library calls                    <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
 
        <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
 
        <STRONG>WINDOW</STRONG> <STRONG>*newpad(int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>);</STRONG>
-       <STRONG>WINDOW</STRONG> <STRONG>*subpad(WINDOW</STRONG> <STRONG>*</STRONG><EM>orig</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>,</STRONG>
+       <STRONG>WINDOW</STRONG> <STRONG>*subpad(WINDOW</STRONG> <STRONG>*</STRONG><EM>parent</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>nlines</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>ncols</EM><STRONG>,</STRONG>
              <STRONG>int</STRONG> <EM>begin</EM><STRONG>_</STRONG><EM>y</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>begin</EM><STRONG>_</STRONG><EM>x</EM><STRONG>);</STRONG>
+
        <STRONG>int</STRONG> <STRONG>prefresh(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pmincol</EM><STRONG>,</STRONG>
              <STRONG>int</STRONG> <EM>sminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smincol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxcol</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>pnoutrefresh(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>pmincol</EM><STRONG>,</STRONG>
              <STRONG>int</STRONG> <EM>sminrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smincol</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxrow</EM><STRONG>,</STRONG> <STRONG>int</STRONG> <EM>smaxcol</EM><STRONG>);</STRONG>
+
        <STRONG>int</STRONG> <STRONG>pechochar(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>chtype</STRONG> <EM>ch</EM><STRONG>);</STRONG>
        <STRONG>int</STRONG> <STRONG>pecho_wchar(WINDOW</STRONG> <STRONG>*</STRONG><EM>pad</EM><STRONG>,</STRONG> <STRONG>const</STRONG> <STRONG>cchar_t</STRONG> <STRONG>*</STRONG><EM>wch</EM><STRONG>);</STRONG>
 
 
 </PRE><H2><a name="h2-DESCRIPTION">DESCRIPTION</a></H2><PRE>
+       A <EM>curses</EM> <EM>pad</EM> 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
+       automatically refreshed by scrolling or input-echoing operations.
 
-</PRE><H3><a name="h3-newpad">newpad</a></H3><PRE>
-       The <STRONG>newpad</STRONG> routine creates and returns a pointer  to  a  new  pad  data
-       structure  with  the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
-       A 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,  and  only  a
-       part  of  the  window  will  be  on  the screen at one time.  Automatic
-       refreshes of pads (e.g., from scrolling or echoing  of  input)  do  not
-       occur.
+       Pads  cannot  be  refreshed  with   <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>;   use   <STRONG>prefresh</STRONG>   or
+       <STRONG>pnoutrefresh</STRONG> instead.
 
-       It  is not valid to call <STRONG>wrefresh</STRONG> with a <EM>pad</EM> argument; call <STRONG>prefresh</STRONG> or
-       <STRONG>pnoutrefresh</STRONG> instead.  They require additional  parameters  to  specify
-       the  part  of the pad to be displayed and the location on the screen to
-       be used for the display.
+
+</PRE><H3><a name="h3-newpad">newpad</a></H3><PRE>
+       <STRONG>newpad</STRONG>  creates  and returns a pointer to a new pad data structure with
+       the given number of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
 
 
 </PRE><H3><a name="h3-subpad">subpad</a></H3><PRE>
-       The <STRONG>subpad</STRONG> routine creates and returns a pointer to a subwindow  within
-       a  pad  with  the  given  number  of lines, <EM>nlines</EM>, and columns, <EM>ncols</EM>.
-       Unlike <STRONG>subwin</STRONG>, which uses screen coordinates, the window is at position
-       (<EM>begin</EM>_<EM>x</EM><STRONG>,</STRONG> <EM>begin</EM>_<EM>y</EM>) on the pad.  The window is made in the middle of the
-       window <EM>orig</EM>, so that changes made to one window  affect  both  windows.
-       During  the  use  of  this  routine, it will often be necessary to call
-       <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before calling <STRONG>prefresh</STRONG>.
+       <STRONG>subpad</STRONG> creates and returns a pointer to a subwindow within a  pad  with
+       the  given  number  of  lines,  <EM>nlines</EM>,  and  columns,  <EM>ncols</EM>.   Unlike
+       <STRONG><A HREF="subwin.3x.html">subwin(3x)</A></STRONG>, which uses screen coordinates, the new  pad  is  placed  at
+       position (<EM>begin</EM><STRONG>_</STRONG><EM>y</EM>, <EM>begin</EM><STRONG>_</STRONG><EM>x</EM>) relative to its parent.  Thus, changes made
+       to one pad can affect both.  When operating on a subpad,  it  is  often
+       necessary  to  call  <STRONG><A HREF="curs_touch.3x.html">touchwin(3x)</A></STRONG>  or  <STRONG><A HREF="curs_touch.3x.html">touchline(3x)</A></STRONG>  on  <EM>parent</EM> before
+       calling <STRONG>prefresh</STRONG>.
 
 
-</PRE><H3><a name="h3-prefresh_-pnoutrefresh">prefresh, pnoutrefresh</a></H3><PRE>
-       The <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> routines are analogous  to  <STRONG>wrefresh</STRONG>  and
-       <STRONG>wnoutrefresh</STRONG>  except  that they relate to pads instead of windows.  The
-       additional parameters are needed to indicate what part of the  pad  and
-       screen are involved.
+</PRE><H3><a name="h3-prefresh_pnoutrefresh">prefresh, pnoutrefresh</a></H3><PRE>
+       <STRONG>prefresh</STRONG>  and  <STRONG>pnoutrefresh</STRONG>   are   analogous   to   <STRONG><A HREF="curs_refresh.3x.html">wrefresh(3x)</A></STRONG>   and
+       <STRONG><A HREF="curs_refresh.3x.html">wnoutrefresh(3x)</A></STRONG>  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.
 
-       <STRONG>o</STRONG>   The  <EM>pminrow</EM>  and  <EM>pmincol</EM>  parameters  specify the upper left-hand
-           corner of the rectangle to be displayed in the pad.
+       <STRONG>o</STRONG>   <EM>pminrow</EM>  and  <EM>pmincol</EM>  specify  the  upper  left-hand  corner  of a
+           rectangular view of the pad.
 
-       <STRONG>o</STRONG>   The <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> parameters  specify  the
-           edges of the rectangle to be displayed on the screen.
+       <STRONG>o</STRONG>   <EM>sminrow</EM>, <EM>smincol</EM>, <EM>smaxrow</EM>, and <EM>smaxcol</EM> 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.  Negative values of <EM>pminrow</EM>,  <EM>pmincol</EM>,  <EM>sminrow</EM>,
-       or <EM>smincol</EM> are treated as if they were zero.
+       respective structures.  <EM>curses</EM> treats negative values of any  of  these
+       parameters as zero.
 
 
 </PRE><H3><a name="h3-pechochar">pechochar</a></H3><PRE>
-       The  <STRONG>pechochar</STRONG>  routine  is  functionally equivalent to a call to <STRONG>addch</STRONG>
-       followed by a call to <STRONG><A HREF="curs_refresh.3x.html">refresh(3x)</A></STRONG>, a call to <STRONG>waddch</STRONG> followed by a  call
-       to  <STRONG>wrefresh</STRONG>,  or a call to <STRONG>waddch</STRONG> followed by a call to <STRONG>prefresh</STRONG>.  The
-       knowledge that only a single character is being output  is  taken  into
-       consideration   and,   for   non-control   characters,  a  considerable
-       performance gain might be seen by using these routines instead of their
-       equivalents.  In the case of <STRONG>pechochar</STRONG>, the last location of the pad on
-       the screen is reused for the arguments to <STRONG>prefresh</STRONG>.
+       <STRONG>pechochar</STRONG>  is functionally equivalent to calling <STRONG><A HREF="curs_addch.3x.html">waddch(3x)</A></STRONG> followed by
+       <STRONG>prefresh</STRONG>.  It suggests to the  <EM>curses</EM>  optimizer  that  only  a  single
+       character  is  being  output; a considerable performance benefit may be
+       thus enjoyed.  The location of the character <EM>ch</EM> written to the  pad  is
+       used to populate the arguments to <STRONG>prefresh</STRONG>.
 
 
 </PRE><H3><a name="h3-pecho_wchar">pecho_wchar</a></H3><PRE>
-       The <STRONG>pecho_wchar</STRONG>  function  is  the  analogous  wide-character  form  of
-       <STRONG>pechochar</STRONG>.  It outputs one character to a pad and immediately refreshes
-       the pad.  It does this by a call to <STRONG>wadd_wch</STRONG>  followed  by  a  call  to
-       <STRONG>prefresh</STRONG>.
+       <STRONG>pecho_wchar</STRONG> is functionally equivalent to calling <STRONG><A HREF="curs_add_wch.3x.html">wadd_wch(3x)</A></STRONG> followed
+       by <STRONG>prefresh</STRONG>.  It suggests to the <EM>curses</EM> optimizer that  only  a  single
+       wide  character is being output; a considerable performance benefit may
+       be thus enjoyed.  The location of the character <EM>wch</EM> written to the  pad
+       is used to populate the arguments to <STRONG>prefresh</STRONG>.
 
 
 </PRE><H2><a name="h2-RETURN-VALUE">RETURN VALUE</a></H2><PRE>
-       Routines  that  return  an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
-       only specifies "an integer  value  other  than  <STRONG>ERR</STRONG>")  upon  successful
+       Functions  that  return an integer return <STRONG>ERR</STRONG> upon failure and <STRONG>OK</STRONG> (SVr4
+       specifies only "an integer  value  other  than  <STRONG>ERR</STRONG>")  upon  successful
        completion.
 
-       Routines  that  return  pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
+       Functions  that  return pointers return <STRONG>NULL</STRONG> on error, and set <STRONG>errno</STRONG> to
        <STRONG>ENOMEM</STRONG>.
 
-       X/Open does not define any error conditions.  In this implementation
+       X/Open  Curses  does  not  specify  any  error  conditions.   In   this
+       implementation
 
           <STRONG>prefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>
                return an error 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
+               is not really a pad or if the  area  to  refresh  extends  off-
+               screen  or  if  the  minimum  coordinates  are greater than the
                maximum.
 
           <STRONG>pechochar</STRONG>
-               returns  an  error  if  the window is not really a pad, and the
+               returns an error if the window is not really  a  pad,  and  the
                associated call to <STRONG>wechochar</STRONG> returns an error.
 
           <STRONG>pecho_wchar</STRONG>
-               returns an error if the window is not really  a  pad,  and  the
+               returns  an  error  if  the window is not really a pad, and the
                associated call to <STRONG>wecho_wchar</STRONG> returns an error.
 
 
 </PRE><H2><a name="h2-NOTES">NOTES</a></H2><PRE>
-       Note that <STRONG>pechochar</STRONG> may be a macro.
+       <STRONG>pechochar</STRONG> may be a macro.
 
 
 </PRE><H2><a name="h2-PORTABILITY">PORTABILITY</a></H2><PRE>
        BSD <EM>curses</EM> has no <EM>pad</EM> feature.
 
-       SVr2   <EM>curses</EM>   (1986)  provided  the  <STRONG>newpad</STRONG>  and  related  functions,
-       documenting them in a single line  each.   SVr3  (1987)  provided  more
+       SVr2  <EM>curses</EM>  (1986)  provided  the  <STRONG>newpad</STRONG>  and   related   functions,
+       documenting  them  in  a  single  line each.  SVr3 (1987) provided more
        extensive documentation.
 
-       The  documentation  does not explain the term <EM>pad</EM>.  However, the Apollo
+       The documentation does not explain the term <EM>pad</EM>.  However,  the  Apollo
        <EM>Aegis</EM> workstation operating system supported a graphical <EM>pad</EM> feature:
 
-       <STRONG>o</STRONG>   These graphical pads could  be  much  larger  than  the  computer's
+       <STRONG>o</STRONG>   These  graphical  pads  could  be  much  larger than the computer's
            display.
 
-       <STRONG>o</STRONG>   The  read-only  output  from  a  command  could be scrolled back to
+       <STRONG>o</STRONG>   The read-only output from a  command  could  be  scrolled  back  to
            inspect, and select text from the pad.
 
        The two uses may be related.
 
-       The XSI Curses standard, Issue 4  describes  these  functions,  without
-       significant  change from the SVr3 documentation.  It describes no error
-       conditions.  The behavior of <STRONG>subpad</STRONG> if the parent window is not  a  pad
-       is undocumented, and is not checked by the vendor Unix implementations:
+       X/Open  Curses,  Issue 4 describes these functions, without significant
+       change from the SVr3 documentation.  It describes no error  conditions.
+       The  behavior  of  <STRONG>subpad</STRONG>  if  the  parent  window  is  not  a  pad  is
+       undocumented, and is not checked by the vendor Unix implementations:
 
-       <STRONG>o</STRONG>   SVr4  <EM>curses</EM>  sets  a  flag in the <STRONG>WINDOW</STRONG> structure in <STRONG>newpad</STRONG> which
+       <STRONG>o</STRONG>   SVr4 <EM>curses</EM> sets a flag in the <EM>WINDOW</EM>  structure  in  <STRONG>newpad</STRONG>  which
            tells if the window is a <EM>pad</EM>.
 
-           However, it uses this information only in <STRONG>waddch</STRONG> (to decide  if  it
-           should  call  <STRONG>wrefresh</STRONG>)  and  <STRONG>wscrl</STRONG> (to avoid scrolling a pad), and
-           does not check in <STRONG>wrefresh</STRONG> to ensure  that  the  pad  is  refreshed
+           However,  it  uses this information only in <STRONG>waddch</STRONG> (to decide if it
+           should call <STRONG>wrefresh</STRONG>) and <STRONG>wscrl</STRONG> (to avoid  scrolling  a  pad),  and
+           does  not  check  in  <STRONG>wrefresh</STRONG>  to ensure that the pad is refreshed
            properly.
 
-       <STRONG>o</STRONG>   Solaris  X/Open Curses checks if a window is a pad in <STRONG>wnoutrefresh</STRONG>,
+       <STRONG>o</STRONG>   Solaris <EM>xcurses</EM> checks whether a window is a pad  in  <STRONG>wnoutrefresh</STRONG>,
            returning <STRONG>ERR</STRONG> in that case.
 
-           However, it only sets the flag for subwindows if the parent  window
-           is  a  pad.   Its  <STRONG>newpad</STRONG>  function  does not set this information.
+           However,  it only sets the flag for subwindows if the parent window
+           is a pad.  Its <STRONG>newpad</STRONG>  function  does  not  set  this  information.
            Consequently, the check will never fail.
 
-           It makes no comparable check in <STRONG>pnoutrefresh</STRONG>, though  interestingly
-           enough,  a  comment  in  the  source code states that the lack of a
+           It  makes no comparable check in <STRONG>pnoutrefresh</STRONG>, though interestingly
+           enough, a comment in the source code states  that  the  lack  of  a
            check was an MKS extension.
 
-       <STRONG>o</STRONG>   NetBSD 7 <EM>curses</EM> sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG>  and
-           <STRONG>subpad</STRONG>,   using   this   to   help  with  the  distinction  between
+       <STRONG>o</STRONG>   NetBSD  7 <EM>curses</EM> sets a flag in the <EM>WINDOW</EM> structure for <STRONG>newpad</STRONG> and
+           <STRONG>subpad</STRONG>,  using  this  to  help   with   the   distinction   between
            <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG>.
 
-           It does not check for the case where a subwindow is  created  in  a
+           It  does  not  check for the case where a subwindow is created in a
            pad using <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG>.
 
-           The  <STRONG>dupwin</STRONG>  function  returns  a regular window when duplicating a
-           pad.  Likewise, <STRONG>getwin</STRONG> always returns a window, even if  the  saved
+           The <STRONG>dupwin</STRONG> function returns a regular  window  when  duplicating  a
+           pad.   Likewise,  <STRONG>getwin</STRONG> always returns a window, even if the saved
            data was from a pad.
 
        This implementation
 
-       <STRONG>o</STRONG>   sets a flag in the <STRONG>WINDOW</STRONG> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
+       <STRONG>o</STRONG>   sets a flag in the <EM>WINDOW</EM> structure for <STRONG>newpad</STRONG> and <STRONG>subpad</STRONG>,
 
-       <STRONG>o</STRONG>   allows  a  <STRONG>subwin</STRONG>  or <STRONG>derwin</STRONG> call to succeed having a pad parent by
+       <STRONG>o</STRONG>   allows a <STRONG>subwin</STRONG> or <STRONG>derwin</STRONG> call to succeed having a  pad  parent  by
            forcing the subwindow to be a pad,
 
-       <STRONG>o</STRONG>   checks in both <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> to  ensure  that  pads
+       <STRONG>o</STRONG>   checks  in  both  <STRONG>wnoutrefresh</STRONG> and <STRONG>pnoutrefresh</STRONG> to ensure that pads
            and windows are handled distinctly, and
 
-       <STRONG>o</STRONG>   ensures   that   <STRONG>dupwin</STRONG>   and  <STRONG>getwin</STRONG>  treat  pads  versus  windows
+       <STRONG>o</STRONG>   ensures  that  <STRONG>dupwin</STRONG>  and  <STRONG>getwin</STRONG>  treat   pads   versus   windows
            consistently.
 
 
 
 
 
-ncurses 6.4                       2023-11-25                      <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
+ncurses 6.5                       2024-04-27                      <STRONG><A HREF="curs_pad.3x.html">curs_pad(3x)</A></STRONG>
 </PRE>
 <div class="nav">
 <ul>
@@ -241,7 +240,7 @@ ncurses 6.4                       2023-11-25                      <STRONG><A HRE
 <ul>
 <li><a href="#h3-newpad">newpad</a></li>
 <li><a href="#h3-subpad">subpad</a></li>
-<li><a href="#h3-prefresh_-pnoutrefresh">prefresh, pnoutrefresh</a></li>
+<li><a href="#h3-prefresh_pnoutrefresh">prefresh, pnoutrefresh</a></li>
 <li><a href="#h3-pechochar">pechochar</a></li>
 <li><a href="#h3-pecho_wchar">pecho_wchar</a></li>
 </ul>