missing ncurses sources
[tomato.git] / release / src / router / libncurses / doc / html / man / curs_window.3x.html
blobd3d4ef4ae6e1bfa65142f3e796cb7794b1d38973
1 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
2 <!--
3 ****************************************************************************
4 * Copyright (c) 1998-2006,2010 Free Software Foundation, Inc. *
5 * *
6 * Permission is hereby granted, free of charge, to any person obtaining a *
7 * copy of this software and associated documentation files (the *
8 * "Software"), to deal in the Software without restriction, including *
9 * without limitation the rights to use, copy, modify, merge, publish, *
10 * distribute, distribute with modifications, sublicense, and/or sell *
11 * copies of the Software, and to permit persons to whom the Software is *
12 * furnished to do so, subject to the following conditions: *
13 * *
14 * The above copyright notice and this permission notice shall be included *
15 * in all copies or substantial portions of the Software. *
16 * *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS *
18 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF *
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. *
20 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, *
21 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR *
22 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR *
23 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. *
24 * *
25 * Except as contained in this notice, the name(s) of the above copyright *
26 * holders shall not be used in advertising or otherwise to promote the *
27 * sale, use or other dealings in this Software without prior written *
28 * authorization. *
29 ****************************************************************************
30 * @Id: curs_window.3x,v 1.17 2010/12/04 18:38:55 tom Exp @
31 -->
32 <HTML>
33 <HEAD>
34 <TITLE>curs_window 3x</TITLE>
35 <link rev=made href="mailto:bug-ncurses@gnu.org">
36 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
37 </HEAD>
38 <BODY>
39 <H1>curs_window 3x</H1>
40 <HR>
41 <PRE>
42 <!-- Manpage converted by man2html 3.0.1 -->
43 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG> <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
48 </PRE>
49 <H2>NAME</H2><PRE>
50 <STRONG>newwin</STRONG>, <STRONG>delwin</STRONG>, <STRONG>mvwin</STRONG>, <STRONG>subwin</STRONG>, <STRONG>derwin</STRONG>, <STRONG>mvderwin</STRONG>, <STRONG>dupwin</STRONG>,
51 <STRONG>wsyncup</STRONG>, <STRONG>syncok</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>wsyncdown</STRONG> - create <STRONG>curses</STRONG>
52 windows
55 </PRE>
56 <H2>SYNOPSIS</H2><PRE>
57 <STRONG>#include</STRONG> <STRONG>&lt;curses.h&gt;</STRONG>
59 <STRONG>WINDOW</STRONG> <STRONG>*newwin(int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG> <STRONG>int</STRONG> <STRONG>begin_y,</STRONG>
60 <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
61 <STRONG>int</STRONG> <STRONG>delwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
62 <STRONG>int</STRONG> <STRONG>mvwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>y,</STRONG> <STRONG>int</STRONG> <STRONG>x);</STRONG>
63 <STRONG>WINDOW</STRONG> <STRONG>*subwin(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
64 <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
65 <STRONG>WINDOW</STRONG> <STRONG>*derwin(WINDOW</STRONG> <STRONG>*orig,</STRONG> <STRONG>int</STRONG> <STRONG>nlines,</STRONG> <STRONG>int</STRONG> <STRONG>ncols,</STRONG>
66 <STRONG>int</STRONG> <STRONG>begin_y,</STRONG> <STRONG>int</STRONG> <STRONG>begin_x);</STRONG>
67 <STRONG>int</STRONG> <STRONG>mvderwin(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>int</STRONG> <STRONG>par_y,</STRONG> <STRONG>int</STRONG> <STRONG>par_x);</STRONG>
68 <STRONG>WINDOW</STRONG> <STRONG>*dupwin(WINDOW</STRONG> <STRONG>*win);</STRONG>
69 <STRONG>void</STRONG> <STRONG>wsyncup(WINDOW</STRONG> <STRONG>*win);</STRONG>
70 <STRONG>int</STRONG> <STRONG>syncok(WINDOW</STRONG> <STRONG>*win,</STRONG> <STRONG>bool</STRONG> <STRONG>bf);</STRONG>
71 <STRONG>void</STRONG> <STRONG>wcursyncup(WINDOW</STRONG> <STRONG>*win);</STRONG>
72 <STRONG>void</STRONG> <STRONG>wsyncdown(WINDOW</STRONG> <STRONG>*win);</STRONG>
75 </PRE>
76 <H2>DESCRIPTION</H2><PRE>
77 Calling <STRONG>newwin</STRONG> creates and returns a pointer to a new win-
78 dow with the given number of lines and columns. The upper
79 left-hand corner of the window is at line <EM>begin</EM>_<EM>y</EM>, column
80 <EM>begin</EM>_<EM>x</EM>. If either <EM>nlines</EM> or <EM>ncols</EM> is zero, they default
81 to <STRONG>LINES</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>y</EM> and <STRONG>COLS</STRONG> <STRONG>-</STRONG> <EM>begin</EM>_<EM>x</EM>. A new full-screen
82 window is created by calling <STRONG>newwin(0,0,0,0)</STRONG>.
84 Calling <STRONG>delwin</STRONG> deletes the named window, freeing all memo-
85 ry associated with it (it does not actually erase the win-
86 dow's screen image). Subwindows must be deleted before
87 the main window can be deleted.
89 Calling <STRONG>mvwin</STRONG> moves the window so that the upper left-hand
90 corner is at position (<EM>x</EM>, <EM>y</EM>). If the move would cause the
91 window to be off the screen, it is an error and the window
92 is not moved. Moving subwindows is allowed, but should be
93 avoided.
95 Calling <STRONG>subwin</STRONG> creates and returns a pointer to a new win-
96 dow with the given number of lines, <EM>nlines</EM>, and columns,
97 <EM>ncols</EM>. The window is at position (<EM>begin</EM>_<EM>y</EM>, <EM>begin</EM>_<EM>x</EM>) on
98 the screen. (This position is relative to the screen, and
99 not to the window <EM>orig</EM>.) The window is made in the middle
100 of the window <EM>orig</EM>, so that changes made to one window
101 will affect both windows. The subwindow shares memory
102 with the window <EM>orig</EM>. When using this routine, it is nec-
103 essary to call <STRONG>touchwin</STRONG> or <STRONG>touchline</STRONG> on <EM>orig</EM> before call-
104 ing <STRONG>wrefresh</STRONG> on the subwindow.
106 Calling <STRONG>derwin</STRONG> is the same as calling <STRONG>subwin,</STRONG> except that
107 <EM>begin</EM>_<EM>y</EM> and <EM>begin</EM>_<EM>x</EM> are relative to the origin of the win-
108 dow <EM>orig</EM> rather than the screen. There is no difference
109 between the subwindows and the derived windows.
111 Calling <STRONG>mvderwin</STRONG> moves a derived window (or subwindow) in-
112 side its parent window. The screen-relative parameters of
113 the window are not changed. This routine is used to dis-
114 play different parts of the parent window at the same
115 physical position on the screen.
117 Calling <STRONG>dupwin</STRONG> creates an exact duplicate of the window
118 <EM>win</EM>.
120 Calling <STRONG>wsyncup</STRONG> touches all locations in ancestors of <EM>win</EM>
121 that are changed in <EM>win</EM>. If <STRONG>syncok</STRONG> is called with second
122 argument <STRONG>TRUE</STRONG> then <STRONG>wsyncup</STRONG> is called automatically whenev-
123 er there is a change in the window.
125 The <STRONG>wsyncdown</STRONG> routine touches each location in <EM>win</EM> that
126 has been touched in any of its ancestor windows. This
127 routine is called by <STRONG>wrefresh</STRONG>, so it should almost never
128 be necessary to call it manually.
130 The routine <STRONG>wcursyncup</STRONG> updates the current cursor position
131 of all the ancestors of the window to reflect the current
132 cursor position of the window.
135 </PRE>
136 <H2>RETURN VALUE</H2><PRE>
137 Routines that return an integer return the integer <STRONG>ERR</STRONG> up-
138 on failure and <STRONG>OK</STRONG> (SVr4 only specifies "an integer value
139 other than <STRONG>ERR</STRONG>") upon successful completion.
141 Routines that return pointers return <STRONG>NULL</STRONG> on error.
143 X/Open defines no error conditions. In this implementa-
144 tion
146 <STRONG>delwin</STRONG>
147 returns an error if the window pointer is
148 null, or if the window is the parent of anoth-
149 er window.
151 This implementation also maintains a list of
152 windows, and checks that the pointer passed to
153 <STRONG>delwin</STRONG> is one that it created, returning an
154 error if it was not..
156 <STRONG>mvderwin</STRONG>
157 returns an error if the window pointer is
158 null, or if some part of the window would be
159 placed off-screen.
161 <STRONG>mvwin</STRONG>
162 returns an error if the window pointer is
163 null, or if the window is really a pad, or if
164 some part of the window would be placed off-
165 screen.
167 <STRONG>syncok</STRONG>
168 returns an error if the window pointer is
169 null.
172 </PRE>
173 <H2>NOTES</H2><PRE>
174 If many small changes are made to the window, the <STRONG>wsyncup</STRONG>
175 option could degrade performance.
177 Note that <STRONG>syncok</STRONG> may be a macro.
180 </PRE>
181 <H2>BUGS</H2><PRE>
182 The subwindow functions (<EM>subwin</EM>, <EM>derwin</EM>, <EM>mvderwin</EM>, <STRONG>wsyn-</STRONG>
183 <STRONG>cup</STRONG>, <STRONG>wsyncdown</STRONG>, <STRONG>wcursyncup</STRONG>, <STRONG>syncok</STRONG>) are flaky, incomplete-
184 ly implemented, and not well tested.
186 The System V curses documentation is very unclear about
187 what <STRONG>wsyncup</STRONG> and <STRONG>wsyncdown</STRONG> actually do. It seems to imply
188 that they are only supposed to touch exactly those lines
189 that are affected by ancestor changes. The language here,
190 and the behavior of the <STRONG>curses</STRONG> implementation, is pat-
191 terned on the XPG4 curses standard. The weaker XPG4 spec
192 may result in slower updates.
195 </PRE>
196 <H2>PORTABILITY</H2><PRE>
197 The XSI Curses standard, Issue 4 describes these func-
198 tions.
201 </PRE>
202 <H2>SEE ALSO</H2><PRE>
203 <STRONG><A HREF="ncurses.3x.html">curses(3x)</A></STRONG>, <STRONG><A HREF="curs_refresh.3x.html">curs_refresh(3x)</A></STRONG>, <STRONG><A HREF="curs_touch.3x.html">curs_touch(3x)</A></STRONG>, <STRONG>curs_vari-</STRONG>
204 <STRONG><A HREF="curs_variables.3x.html">ables(3x)</A></STRONG>
208 <STRONG><A HREF="curs_window.3x.html">curs_window(3x)</A></STRONG>
209 </PRE>
210 <HR>
211 <ADDRESS>
212 Man(1) output converted with
213 <a href="http://www.oac.uci.edu/indiv/ehood/man2html.html">man2html</a>
214 </ADDRESS>
215 </BODY>
216 </HTML>