aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man3/curs_window.3
blob: 77d834db10e5663599bd826de4249afed83d0f1d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
.\" $FreeBSD$
.TH curs_window 3 ""
.SH 名称
\fBnewwin\fR, \fBdelwin\fR, \fBmvwin\fR,
\fBsubwin\fR, \fBderwin\fR, \fBmvderwin\fR, \fBdupwin\fR,
\fBwsyncup\fR, \fBsyncok\fR, \fBwcursyncup\fR, 
\fBwsyncdown\fR - create \fBncurses\fR windows
.SH 書式
\fB#include <ncurses.h>\fR

\fBWINDOW *newwin(int nlines, int ncols, int begin_y,\fR
      \fBintbegin_x);\fR

\fBint delwin(WINDOW *win);\fR
.br
\fBint mvwin(WINDOW *win, int y, int x);\fR
.br
\fBWINDOW *subwin(WINDOW *orig, int nlines, int ncols,
      int begin_y, int begin_x);\fR
\fBWINDOW *derwin(WINDOW *orig, int nlines, int ncols,
      int begin_y, int begin_x);\fR
\fBint mvderwin(WINDOW *win, int par_y, int par_x);\fR
.br
\fBWINDOW *dupwin(WINDOW *win);\fR
.br
\fBvoid wsyncup(WINDOW *win);\fR
.br
\fBint syncok(WINDOW *win, bool bf);\fR
.br
\fBvoid wcursyncup(WINDOW *win);\fR
.br
\fBvoid wsyncdown(WINDOW *win);\fR
.br
.SH 解説
\fBnewwin\fR
ルーチンは、指定数の行と列のある新しいウィンドウを指すポインタを
作成して返します。ウィンドウの左上コーナーが行
\fIbegin\fR_\fIy\fR
、列
\fIbegin\fR_\fIx\fR
です。
\fInlines\fR
または
\fIncols\fR
のどちらかがゼロの場合、デフォルトで
\fBLINES -\fR
\fIbegin\fR_\fIy\fR
および
\fBCOLS -\fR
\fIbegin\fR_\fIx\fR
になります。新しいフルスクリーンウィンドウは
\fBnewwin(0,0,0,0)\fR
を呼び出すことで作成されます。

\fBdelwin\fR
ルーチンは、名前付きウィンドウを削除し、それに対応するすべてのメモリ
を解放します
(
実際にはウィンドウの画面イメージを消去しません
)
。
サブウィンドウを削除してから、メインウィンドウを削除します。

\fBmvwin\fR
ルーチンは、左上コーナーが位置
(\fIx\fR, \fIy\fR)
にあるようにウィンドウを
移動します。移動によってウィンドウが画面からはみ出てしまう場合は、それは
エラーとなりウィンドウは移動されません。サブウィンドウを
移動することもできますが、これは避けてください。

\fBsubwin\fR
ルーチンは、指定数の行
\fInlines\fR
と列
\fIncols\fR
のある新しいウィンドウを
指すポインタを作成して返します。ウィンドウは画面上の位置
(\fIbegin\fR_\fIy\fR, \fIbegin\fR_\fIx\fR)
にあります
(
この位置は画面に相対的であって、ウィンドウの
\fIorig\fR
に相対的にではありません
)
。ウィンドウはウィンドウ
\fIorig\fR
の中央に作成されるので、
1
つのウィンドウについて行われた変更は両方のウィンドウに
影響を及ぼします。サブウィンドウはウィンドウ
\fIorig\fR
とメモリを共有します。
このルーチンを使用するときは、サブウィンドウで
\fBwrefresh\fR
を呼び出す前に、
\fIorig\fR
上に
\fBtouchwin\fR
または
\fBtouchline\fR
を呼び出す必要があります。

\fBderwin\fR
ルーチンは
\fBsubwin\fR
と同じですが、
\fIbegin\fR_\fIy\fR
と
\fIbegin\fR_\fIx\fR
が、画面ではなくウィンドウ
\fIorig\fR
の原点に相対的であり点は異なります。サブウィンドウと
導出されたウィンドウの間に違いはありません。

\fBmvderwin\fR
ルーチンは、親ウィンドウの内部の導出されたウィンドウ
(
またはサブウィンドウ
)
を移動します。ウィンドウの画面に相対的なパラメータは
変更されません。このルーチンを使用して、画面上の同じ物理的位置に親
ウィンドウのさまざまな部分を表示できます。

\fBdupwin\fR
ルーチンは、ウィンドウ
\fIwin\fR
の正確な複製を作成します。

\fBncurses\fR
の各ウィンドウは、キャラクタイメージ構造とステータス構造という
2
つのデータ構造を保持します。キャラクタイメージ構造は、
ウィンドウ階層内のすべてのウィンドウの間で共有されます
(
\fIすなわち\fR、すべてのサブウィンドウのあるウィンドウです
)
。ウィンドウ内の個別の行変更に関する
情報が入っているステータス構造はお互いのウィンドウに対してプライベート
です。ルーチン
\fBwrefresh\fR
は、画面更新を実行するときにステータスデータ構造を
使用します。ステータス構造は共有ではないので、階層内の
1
つのウィンドウに
対して行われた変更は画面上に適切に反映されない可能性があります。

ルーチン
\fBwsyncup\fR
は、ウィンドウのステータス構造内の変化が、その先祖の
ステータス構造内に反映されるようにします。
\fBsyncok\fR
が
2
番めの引数
\fBTRUE\fR
を
指定して呼び出された場合、ウィンドウ内に変更があるたびに、
\fBwsyncup\fR
が自動的に呼び出されます。

ルーチン
\fBwcursyncup\fR
は、ウィンドウのすべての先祖の現在のカーソル位置を
更新して、ウィンドウの現在のカーソル位置を反映するようにします。

ルーチン
\fBwsyncdown\fR
は、ウィンドウのステータス構造を更新して、先祖の
ステータス構造の変化を反映するようにします。アプリケーションがこのルーチン
を呼び出すことはほとんどありません。
\fBwrefresh\fR
によって自動的に呼び出されるからです。
.SH 戻り値
ルーチンが、処理失敗すると整数
\fBERR\fR
を返してきます。処理が正常に完了した場合は、
\fBERR\fR
以外の整数値を返します。

\fBdelwin\fR
は処理失敗すると整数
\fBERR\fR
を返し、処理が正常に完了すると
\fBOK\fR
を返します。

ポインタを返すルーチンはエラーがあると
\fBNULL\fR
を返します。
.SH 注釈
ウィンドウに多数の小さい変更が行われる場合、
\fBwsyncup\fR
オプションによって性能が低下する可能性があります。

\fBsyncok\fR
はマクロである可能性があることに注意してください。
.SH バグ
サブウィンドウ関数
(\fIsubwin\fR
、
\fIderwin\fR
など
)
は、脆く、実現が不完全であり、良く
試験されていません。特に、スクロールとの相互作用においてです。
.SH 関連項目
\fBncurses\fR(3), \fBcurs_refresh\fR(3), \fBcurs_touch\fR(3)
.\"#
.\"# The following sets edit modes for GNU EMACS
.\"# Local Variables:
.\"# mode:nroff
.\"# fill-column:79
.\"# End: