5 <BODY BGCOLOR="#99ccbb" TEXT="#000000" LINK="#4060b0" VLINK="#000080" ALINK="#ff4040">
9 <I>------------------------------------------------------------------------------</I>
11 <I>-- <A HREF="http://www.gnat.com">GNAT</A> ncurses Binding --</I>
13 <I>-- Terminal_Interface.Curses --</I>
17 <I>------------------------------------------------------------------------------</I>
18 <I>-- Copyright (c) 1998 Free Software Foundation, Inc. --</I>
20 <I>-- Permission is hereby granted, free of charge, to any person obtaining a --</I>
21 <I>-- copy of this software and associated documentation files (the --</I>
22 <I>-- "Software"), to deal in the Software without restriction, including --</I>
23 <I>-- without limitation the rights to use, copy, modify, merge, publish, --</I>
24 <I>-- distribute, distribute with modifications, sublicense, and/or sell --</I>
25 <I>-- copies of the Software, and to permit persons to whom the Software is --</I>
26 <I>-- furnished to do so, subject to the following conditions: --</I>
28 <I>-- The above copyright notice and this permission notice shall be included --</I>
29 <I>-- in all copies or substantial portions of the Software. --</I>
31 <I>-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --</I>
32 <I>-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --</I>
33 <I>-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --</I>
34 <I>-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --</I>
35 <I>-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --</I>
36 <I>-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --</I>
37 <I>-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --</I>
39 <I>-- Except as contained in this notice, the name(s) of the above copyright --</I>
40 <I>-- holders shall not be used in advertising or otherwise to promote the --</I>
41 <I>-- sale, use or other dealings in this Software without prior written --</I>
42 <I>-- authorization. --</I>
43 <I>------------------------------------------------------------------------------</I>
44 <I>-- <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">Jürgen Pfeifer</A>, Email: <A HREF="mailto:Juergen.Pfeifer@T-Online.de">Juergen.Pfeifer@T-Online.de</A> --</I>
45 <I>-- Version Control:</I>
46 <I>-- @Revision: 1.9 @</I>
47 <I>------------------------------------------------------------------------------</I>
48 <I>-- curses binding.</I>
49 <I>-- This module is generated. Please don't change it manually!</I>
50 <I>-- Run the generator instead.</I>
53 <B>with</B> Interfaces.C; <I>-- We need this for some assertions.</I>
55 <B>package</B> Terminal_Interface.Curses <B>is</B>
57 <B>pragma</B> Linker_Options ("-lncurses");
59 type Window <B>is</B> <B>private</B>;
60 Null_Window : <B>constant</B> Window;
62 type Line_Position <B>is</B> <B>new</B> Natural; <I>-- line coordinate</I>
63 type Column_Position <B>is</B> <B>new</B> Natural; <I>-- column coordinate</I>
65 <B>subtype</B> Line_Count <B>is</B> Line_Position <B>range</B> 1 .. Line_Position'Last;
66 <I>-- Type to count lines. We do not allow null windows, so must be positive</I>
67 <B>subtype</B> Column_Count <B>is</B> Column_Position <B>range</B> 1 .. Column_Position'Last;
68 <I>-- Type to count columns. We do not allow null windows, so must be positive</I>
70 type Key_Code <B>is</B> <B>new</B> Natural;
71 <I>-- That is anything including real characters, special keys and logical</I>
72 <I>-- request codes.</I>
74 <B>subtype</B> Real_Key_Code <B>is</B> Key_Code <B>range</B> 0 .. 8#777#;
75 <I>-- This are the codes that potentially represent a real keystroke.</I>
76 <I>-- Not all codes may be possible on a specific terminal. To check the</I>
77 <I>-- availability of a special key, the Has_Key function is provided.</I>
79 <B>subtype</B> Special_Key_Code <B>is</B> Real_Key_Code
80 <B>range</B> 8#400# .. Real_Key_Code'Last;
81 <I>-- Type for a function- or special key number</I>
83 <B>subtype</B> Normal_Key_Code <B>is</B> Real_Key_Code <B>range</B>
84 Character'Pos (Character'First) .. Character'Pos (Character'Last);
85 <I>-- This are the codes for regular (incl. non-graphical) characters.</I>
87 <I>-- Constants for function- and special keys</I>
89 Key_None : <B>constant</B> Special_Key_Code := 8#400#;
90 Key_Code_Yes : <B>constant</B> Special_Key_Code := 8#400#;
91 Key_Min : <B>constant</B> Special_Key_Code := 8#401#;
92 Key_Break : <B>constant</B> Special_Key_Code := 8#401#;
93 Key_Cursor_Down : <B>constant</B> Special_Key_Code := 8#402#;
94 Key_Cursor_Up : <B>constant</B> Special_Key_Code := 8#403#;
95 Key_Cursor_Left : <B>constant</B> Special_Key_Code := 8#404#;
96 Key_Cursor_Right : <B>constant</B> Special_Key_Code := 8#405#;
97 Key_Home : <B>constant</B> Special_Key_Code := 8#406#;
98 Key_Backspace : <B>constant</B> Special_Key_Code := 8#407#;
99 Key_F0 : <B>constant</B> Special_Key_Code := 8#410#;
100 Key_F1 : <B>constant</B> Special_Key_Code := 8#411#;
101 Key_F2 : <B>constant</B> Special_Key_Code := 8#412#;
102 Key_F3 : <B>constant</B> Special_Key_Code := 8#413#;
103 Key_F4 : <B>constant</B> Special_Key_Code := 8#414#;
104 Key_F5 : <B>constant</B> Special_Key_Code := 8#415#;
105 Key_F6 : <B>constant</B> Special_Key_Code := 8#416#;
106 Key_F7 : <B>constant</B> Special_Key_Code := 8#417#;
107 Key_F8 : <B>constant</B> Special_Key_Code := 8#420#;
108 Key_F9 : <B>constant</B> Special_Key_Code := 8#421#;
109 Key_F10 : <B>constant</B> Special_Key_Code := 8#422#;
110 Key_F11 : <B>constant</B> Special_Key_Code := 8#423#;
111 Key_F12 : <B>constant</B> Special_Key_Code := 8#424#;
112 Key_F13 : <B>constant</B> Special_Key_Code := 8#425#;
113 Key_F14 : <B>constant</B> Special_Key_Code := 8#426#;
114 Key_F15 : <B>constant</B> Special_Key_Code := 8#427#;
115 Key_F16 : <B>constant</B> Special_Key_Code := 8#430#;
116 Key_F17 : <B>constant</B> Special_Key_Code := 8#431#;
117 Key_F18 : <B>constant</B> Special_Key_Code := 8#432#;
118 Key_F19 : <B>constant</B> Special_Key_Code := 8#433#;
119 Key_F20 : <B>constant</B> Special_Key_Code := 8#434#;
120 Key_F21 : <B>constant</B> Special_Key_Code := 8#435#;
121 Key_F22 : <B>constant</B> Special_Key_Code := 8#436#;
122 Key_F23 : <B>constant</B> Special_Key_Code := 8#437#;
123 Key_F24 : <B>constant</B> Special_Key_Code := 8#440#;
124 Key_Delete_Line : <B>constant</B> Special_Key_Code := 8#510#;
125 Key_Insert_Line : <B>constant</B> Special_Key_Code := 8#511#;
126 Key_Delete_Char : <B>constant</B> Special_Key_Code := 8#512#;
127 Key_Insert_Char : <B>constant</B> Special_Key_Code := 8#513#;
128 Key_Exit_Insert_Mode : <B>constant</B> Special_Key_Code := 8#514#;
129 Key_Clear_Screen : <B>constant</B> Special_Key_Code := 8#515#;
130 Key_Clear_End_Of_Screen : <B>constant</B> Special_Key_Code := 8#516#;
131 Key_Clear_End_Of_Line : <B>constant</B> Special_Key_Code := 8#517#;
132 Key_Scroll_1_Forward : <B>constant</B> Special_Key_Code := 8#520#;
133 Key_Scroll_1_Backward : <B>constant</B> Special_Key_Code := 8#521#;
134 Key_Next_Page : <B>constant</B> Special_Key_Code := 8#522#;
135 Key_Previous_Page : <B>constant</B> Special_Key_Code := 8#523#;
136 Key_Set_Tab : <B>constant</B> Special_Key_Code := 8#524#;
137 Key_Clear_Tab : <B>constant</B> Special_Key_Code := 8#525#;
138 Key_Clear_All_Tabs : <B>constant</B> Special_Key_Code := 8#526#;
139 Key_Enter_Or_Send : <B>constant</B> Special_Key_Code := 8#527#;
140 Key_Soft_Reset : <B>constant</B> Special_Key_Code := 8#530#;
141 Key_Reset : <B>constant</B> Special_Key_Code := 8#531#;
142 Key_Print : <B>constant</B> Special_Key_Code := 8#532#;
143 Key_Bottom : <B>constant</B> Special_Key_Code := 8#533#;
144 Key_Upper_Left_Of_Keypad : <B>constant</B> Special_Key_Code := 8#534#;
145 Key_Upper_Right_Of_Keypad : <B>constant</B> Special_Key_Code := 8#535#;
146 Key_Center_Of_Keypad : <B>constant</B> Special_Key_Code := 8#536#;
147 Key_Lower_Left_Of_Keypad : <B>constant</B> Special_Key_Code := 8#537#;
148 Key_Lower_Right_Of_Keypad : <B>constant</B> Special_Key_Code := 8#540#;
149 Key_Back_Tab : <B>constant</B> Special_Key_Code := 8#541#;
150 Key_Beginning : <B>constant</B> Special_Key_Code := 8#542#;
151 Key_Cancel : <B>constant</B> Special_Key_Code := 8#543#;
152 Key_Close : <B>constant</B> Special_Key_Code := 8#544#;
153 Key_Command : <B>constant</B> Special_Key_Code := 8#545#;
154 Key_Copy : <B>constant</B> Special_Key_Code := 8#546#;
155 Key_Create : <B>constant</B> Special_Key_Code := 8#547#;
156 Key_End : <B>constant</B> Special_Key_Code := 8#550#;
157 Key_Exit : <B>constant</B> Special_Key_Code := 8#551#;
158 Key_Find : <B>constant</B> Special_Key_Code := 8#552#;
159 Key_Help : <B>constant</B> Special_Key_Code := 8#553#;
160 Key_Mark : <B>constant</B> Special_Key_Code := 8#554#;
161 Key_Message : <B>constant</B> Special_Key_Code := 8#555#;
162 Key_Move : <B>constant</B> Special_Key_Code := 8#556#;
163 Key_Next : <B>constant</B> Special_Key_Code := 8#557#;
164 Key_Open : <B>constant</B> Special_Key_Code := 8#560#;
165 Key_Options : <B>constant</B> Special_Key_Code := 8#561#;
166 Key_Previous : <B>constant</B> Special_Key_Code := 8#562#;
167 Key_Redo : <B>constant</B> Special_Key_Code := 8#563#;
168 Key_Reference : <B>constant</B> Special_Key_Code := 8#564#;
169 Key_Refresh : <B>constant</B> Special_Key_Code := 8#565#;
170 Key_Replace : <B>constant</B> Special_Key_Code := 8#566#;
171 Key_Restart : <B>constant</B> Special_Key_Code := 8#567#;
172 Key_Resume : <B>constant</B> Special_Key_Code := 8#570#;
173 Key_Save : <B>constant</B> Special_Key_Code := 8#571#;
174 Key_Shift_Begin : <B>constant</B> Special_Key_Code := 8#572#;
175 Key_Shift_Cancel : <B>constant</B> Special_Key_Code := 8#573#;
176 Key_Shift_Command : <B>constant</B> Special_Key_Code := 8#574#;
177 Key_Shift_Copy : <B>constant</B> Special_Key_Code := 8#575#;
178 Key_Shift_Create : <B>constant</B> Special_Key_Code := 8#576#;
179 Key_Shift_Delete_Char : <B>constant</B> Special_Key_Code := 8#577#;
180 Key_Shift_Delete_Line : <B>constant</B> Special_Key_Code := 8#600#;
181 Key_Select : <B>constant</B> Special_Key_Code := 8#601#;
182 Key_Shift_End : <B>constant</B> Special_Key_Code := 8#602#;
183 Key_Shift_Clear_End_Of_Line : <B>constant</B> Special_Key_Code := 8#603#;
184 Key_Shift_Exit : <B>constant</B> Special_Key_Code := 8#604#;
185 Key_Shift_Find : <B>constant</B> Special_Key_Code := 8#605#;
186 Key_Shift_Help : <B>constant</B> Special_Key_Code := 8#606#;
187 Key_Shift_Home : <B>constant</B> Special_Key_Code := 8#607#;
188 Key_Shift_Insert_Char : <B>constant</B> Special_Key_Code := 8#610#;
189 Key_Shift_Cursor_Left : <B>constant</B> Special_Key_Code := 8#611#;
190 Key_Shift_Message : <B>constant</B> Special_Key_Code := 8#612#;
191 Key_Shift_Move : <B>constant</B> Special_Key_Code := 8#613#;
192 Key_Shift_Next_Page : <B>constant</B> Special_Key_Code := 8#614#;
193 Key_Shift_Options : <B>constant</B> Special_Key_Code := 8#615#;
194 Key_Shift_Previous_Page : <B>constant</B> Special_Key_Code := 8#616#;
195 Key_Shift_Print : <B>constant</B> Special_Key_Code := 8#617#;
196 Key_Shift_Redo : <B>constant</B> Special_Key_Code := 8#620#;
197 Key_Shift_Replace : <B>constant</B> Special_Key_Code := 8#621#;
198 Key_Shift_Cursor_Right : <B>constant</B> Special_Key_Code := 8#622#;
199 Key_Shift_Resume : <B>constant</B> Special_Key_Code := 8#623#;
200 Key_Shift_Save : <B>constant</B> Special_Key_Code := 8#624#;
201 Key_Shift_Suspend : <B>constant</B> Special_Key_Code := 8#625#;
202 Key_Shift_Undo : <B>constant</B> Special_Key_Code := 8#626#;
203 Key_Suspend : <B>constant</B> Special_Key_Code := 8#627#;
204 Key_Undo : <B>constant</B> Special_Key_Code := 8#630#;
205 Key_Mouse : <B>constant</B> Special_Key_Code := 8#631#;
206 Key_Resize : <B>constant</B> Special_Key_Code := 8#632#;
208 Key_Max : <B>constant</B> Special_Key_Code
209 := Special_Key_Code'Last;
211 <B>subtype</B> User_Key_Code <B>is</B> Key_Code
212 <B>range</B> (Key_Max + 129) .. Key_Code'Last;
213 <I>-- This is reserved for user defined key codes. The range between Key_Max</I>
214 <I>-- and the first user code is reserved for subsystems like menu and forms.</I>
216 <I>-- For those who like to use the original key names we produce them were</I>
217 <I>-- they differ from the original. Please note that they may differ in</I>
218 <I>-- lower/upper case.</I>
219 KEY_DOWN : Special_Key_Code <B>renames</B> Key_Cursor_Down;
220 KEY_UP : Special_Key_Code <B>renames</B> Key_Cursor_Up;
221 KEY_LEFT : Special_Key_Code <B>renames</B> Key_Cursor_Left;
222 KEY_RIGHT : Special_Key_Code <B>renames</B> Key_Cursor_Right;
223 KEY_DL : Special_Key_Code <B>renames</B> Key_Delete_Line;
224 KEY_IL : Special_Key_Code <B>renames</B> Key_Insert_Line;
225 KEY_DC : Special_Key_Code <B>renames</B> Key_Delete_Char;
226 KEY_IC : Special_Key_Code <B>renames</B> Key_Insert_Char;
227 KEY_EIC : Special_Key_Code <B>renames</B> Key_Exit_Insert_Mode;
228 KEY_CLEAR : Special_Key_Code <B>renames</B> Key_Clear_Screen;
229 KEY_EOS : Special_Key_Code <B>renames</B> Key_Clear_End_Of_Screen;
230 KEY_EOL : Special_Key_Code <B>renames</B> Key_Clear_End_Of_Line;
231 KEY_SF : Special_Key_Code <B>renames</B> Key_Scroll_1_Forward;
232 KEY_SR : Special_Key_Code <B>renames</B> Key_Scroll_1_Backward;
233 KEY_NPAGE : Special_Key_Code <B>renames</B> Key_Next_Page;
234 KEY_PPAGE : Special_Key_Code <B>renames</B> Key_Previous_Page;
235 KEY_STAB : Special_Key_Code <B>renames</B> Key_Set_Tab;
236 KEY_CTAB : Special_Key_Code <B>renames</B> Key_Clear_Tab;
237 KEY_CATAB : Special_Key_Code <B>renames</B> Key_Clear_All_Tabs;
238 KEY_ENTER : Special_Key_Code <B>renames</B> Key_Enter_Or_Send;
239 KEY_SRESET : Special_Key_Code <B>renames</B> Key_Soft_Reset;
240 KEY_LL : Special_Key_Code <B>renames</B> Key_Bottom;
241 KEY_A1 : Special_Key_Code <B>renames</B> Key_Upper_Left_Of_Keypad;
242 KEY_A3 : Special_Key_Code <B>renames</B> Key_Upper_Right_Of_Keypad;
243 KEY_B2 : Special_Key_Code <B>renames</B> Key_Center_Of_Keypad;
244 KEY_C1 : Special_Key_Code <B>renames</B> Key_Lower_Left_Of_Keypad;
245 KEY_C3 : Special_Key_Code <B>renames</B> Key_Lower_Right_Of_Keypad;
246 KEY_BTAB : Special_Key_Code <B>renames</B> Key_Back_Tab;
247 KEY_BEG : Special_Key_Code <B>renames</B> Key_Beginning;
248 KEY_SBEG : Special_Key_Code <B>renames</B> Key_Shift_Begin;
249 KEY_SCANCEL : Special_Key_Code <B>renames</B> Key_Shift_Cancel;
250 KEY_SCOMMAND : Special_Key_Code <B>renames</B> Key_Shift_Command;
251 KEY_SCOPY : Special_Key_Code <B>renames</B> Key_Shift_Copy;
252 KEY_SCREATE : Special_Key_Code <B>renames</B> Key_Shift_Create;
253 KEY_SDC : Special_Key_Code <B>renames</B> Key_Shift_Delete_Char;
254 KEY_SDL : Special_Key_Code <B>renames</B> Key_Shift_Delete_Line;
255 KEY_SEND : Special_Key_Code <B>renames</B> Key_Shift_End;
256 KEY_SEOL : Special_Key_Code <B>renames</B> Key_Shift_Clear_End_Of_Line;
257 KEY_SEXIT : Special_Key_Code <B>renames</B> Key_Shift_Exit;
258 KEY_SFIND : Special_Key_Code <B>renames</B> Key_Shift_Find;
259 KEY_SHELP : Special_Key_Code <B>renames</B> Key_Shift_Help;
260 KEY_SHOME : Special_Key_Code <B>renames</B> Key_Shift_Home;
261 KEY_SIC : Special_Key_Code <B>renames</B> Key_Shift_Insert_Char;
262 KEY_SLEFT : Special_Key_Code <B>renames</B> Key_Shift_Cursor_Left;
263 KEY_SMESSAGE : Special_Key_Code <B>renames</B> Key_Shift_Message;
264 KEY_SMOVE : Special_Key_Code <B>renames</B> Key_Shift_Move;
265 KEY_SNEXT : Special_Key_Code <B>renames</B> Key_Shift_Next_Page;
266 KEY_SOPTIONS : Special_Key_Code <B>renames</B> Key_Shift_Options;
267 KEY_SPREVIOUS : Special_Key_Code <B>renames</B> Key_Shift_Previous_Page;
268 KEY_SPRINT : Special_Key_Code <B>renames</B> Key_Shift_Print;
269 KEY_SREDO : Special_Key_Code <B>renames</B> Key_Shift_Redo;
270 KEY_SREPLACE : Special_Key_Code <B>renames</B> Key_Shift_Replace;
271 KEY_SRIGHT : Special_Key_Code <B>renames</B> Key_Shift_Cursor_Right;
272 KEY_SRSUME : Special_Key_Code <B>renames</B> Key_Shift_Resume;
273 KEY_SSAVE : Special_Key_Code <B>renames</B> Key_Shift_Save;
274 KEY_SSUSPEND : Special_Key_Code <B>renames</B> Key_Shift_Suspend;
275 KEY_SUNDO : Special_Key_Code <B>renames</B> Key_Shift_Undo;
278 <I>------------------------------------------------------------------------------</I>
280 type Color_Number <B>is</B> <B>range</B> 0 .. Integer (Interfaces.C.short'Last);
281 <B>for</B> Color_Number'Size <B>use</B> Interfaces.C.short'Size;
282 <I>-- (n)curses uses a short for the color index</I>
283 <I>-- The model is, that a Color_Number is an index into an array of</I>
284 <I>-- (potentially) definable colors. Some of those indices are</I>
285 <I>-- predefined (see below), although they may not really exist.</I>
287 Black : <B>constant</B> Color_Number := 0;
288 Red : <B>constant</B> Color_Number := 1;
289 Green : <B>constant</B> Color_Number := 2;
290 Yellow : <B>constant</B> Color_Number := 3;
291 Blue : <B>constant</B> Color_Number := 4;
292 Magenta : <B>constant</B> Color_Number := 5;
293 Cyan : <B>constant</B> Color_Number := 6;
294 White : <B>constant</B> Color_Number := 7;
296 type RGB_Value <B>is</B> <B>range</B> 0 .. Integer (Interfaces.C.Short'Last);
297 <B>for</B> RGB_Value'Size <B>use</B> Interfaces.C.short'Size;
298 <I>-- Some system may allow to redefine a color by setting RGB values.</I>
300 type Color_Pair <B>is</B> <B>range</B> 0 .. 255;
301 <B>for</B> Color_Pair'Size <B>use</B> 8;
302 <B>subtype</B> Redefinable_Color_Pair <B>is</B> Color_Pair <B>range</B> 1 .. 255;
303 <I>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</I>
304 <I>-- is fixed (Black & White). A color pair is simply a combination of</I>
305 <I>-- two colors described by Color_Numbers, one for the foreground and</I>
306 <I>-- the other for the background</I>
308 type Character_Attribute_Set <B>is</B>
311 Under_Line : Boolean;
312 Reverse_Video : Boolean;
314 Dim_Character : Boolean;
315 Bold_Character : Boolean;
316 Alternate_Character_Set : Boolean;
317 Invisible_Character : Boolean;
318 Protected_Character : Boolean;
319 Horizontal : Boolean;
326 <B>end</B> <B>record</B>;
327 <B>pragma</B> Pack (Character_Attribute_Set);
328 <B>pragma</B> Convention (C, Character_Attribute_Set);
330 <B>for</B> Character_Attribute_Set <B>use</B>
332 Stand_Out <B>at</B> 0 <B>range</B> 0 .. 0;
333 Under_Line <B>at</B> 0 <B>range</B> 1 .. 1;
334 Reverse_Video <B>at</B> 0 <B>range</B> 2 .. 2;
335 Blink <B>at</B> 0 <B>range</B> 3 .. 3;
336 Dim_Character <B>at</B> 0 <B>range</B> 4 .. 4;
337 Bold_Character <B>at</B> 0 <B>range</B> 5 .. 5;
338 Alternate_Character_Set <B>at</B> 0 <B>range</B> 6 .. 6;
339 Invisible_Character <B>at</B> 0 <B>range</B> 7 .. 7;
340 Protected_Character <B>at</B> 0 <B>range</B> 8 .. 8;
341 Horizontal <B>at</B> 0 <B>range</B> 9 .. 9;
342 Left <B>at</B> 0 <B>range</B> 10 .. 10;
343 Low <B>at</B> 0 <B>range</B> 11 .. 11;
344 Right <B>at</B> 0 <B>range</B> 12 .. 12;
345 Top <B>at</B> 0 <B>range</B> 13 .. 13;
346 Vertical <B>at</B> 0 <B>range</B> 14 .. 14;
347 Reserved <B>at</B> 0 <B>range</B> 15 .. 15;
348 <B>end</B> <B>record</B>;
349 <B>for</B> Character_Attribute_Set'Size <B>use</B> Interfaces.C.int'Size / 2;
350 <I>-- Please note: this rep. clause is generated and may be</I>
351 <I>-- different on your system.</I>
352 <I>-- (n)curses uses half of an integer for attributes.</I>
354 Normal_Video : <B>constant</B> Character_Attribute_Set := (<B>others</B> => False);
356 type Attributed_Character <B>is</B>
358 Attr : Character_Attribute_Set := Normal_Video;
359 Color : Color_Pair := 0;
360 Ch : Character := ' ';
361 <B>end</B> <B>record</B>;
362 <B>pragma</B> Convention (C, Attributed_Character);
363 <I>-- This is the counterpart for the chtype in C.</I>
365 <B>for</B> Attributed_Character <B>use</B>
367 Ch <B>at</B> 0 <B>range</B> 0 .. 7;
368 Color <B>at</B> 0 <B>range</B> 8 .. 15;
369 Attr <B>at</B> 0 <B>range</B> 16 .. 31;
370 <B>end</B> <B>record</B>;
371 <B>for</B> Attributed_Character'Size <B>use</B> Interfaces.C.int'Size;
372 <I>-- Please note: this rep. clause is generated and may be</I>
373 <I>-- different on your system.</I>
375 Default_Character : <B>constant</B> Attributed_Character
376 := (Ch => Character'First,
377 Color => Color_Pair'First,
378 Attr => Normal_Video);
380 type Attributed_String <B>is</B> <B>array</B> (Positive <B>range</B> <>) <B>of</B> Attributed_Character;
381 <B>pragma</B> Pack (Attributed_String);
382 <I>-- In this binding we allow strings of attributed characters.</I>
384 <I>------------------</I>
385 <I>-- Exceptions --</I>
386 <I>------------------</I>
387 Curses_Exception : <B>exception</B>;
389 <I>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</I>
390 <I>-- subpackets for Menu and Forms handling.</I>
392 Eti_System_Error : <B>exception</B>;
393 Eti_Bad_Argument : <B>exception</B>;
394 Eti_Posted : <B>exception</B>;
395 Eti_Connected : <B>exception</B>;
396 Eti_Bad_State : <B>exception</B>;
397 Eti_No_Room : <B>exception</B>;
398 Eti_Not_Posted : <B>exception</B>;
399 Eti_Unknown_Command : <B>exception</B>;
400 Eti_No_Match : <B>exception</B>;
401 Eti_Not_Selectable : <B>exception</B>;
402 Eti_Not_Connected : <B>exception</B>;
403 Eti_Request_Denied : <B>exception</B>;
404 Eti_Invalid_Field : <B>exception</B>;
405 Eti_Current : <B>exception</B>;
407 <I>--------------------------------------------------------------------------</I>
408 <I>-- External C variables</I>
409 <I>-- Conceptually even in C this are kind of constants, but they are</I>
410 <I>-- initialized and sometimes changed by the library routines at runtime</I>
411 <I>-- depending on the type of terminal. I believe the best way to model</I>
412 <I>-- this is to use functions.</I>
413 <I>--------------------------------------------------------------------------</I>
415 <B>function</B> Lines <B>return</B> Line_Count;
416 <B>pragma</B> Inline (Lines);
418 <B>function</B> Columns <B>return</B> Column_Count;
419 <B>pragma</B> Inline (Columns);
421 <B>function</B> Tab_Size <B>return</B> Natural;
422 <B>pragma</B> Inline (Tab_Size);
424 <B>function</B> Number_Of_Colors <B>return</B> Natural;
425 <B>pragma</B> Inline (Number_Of_Colors);
427 <B>function</B> Number_Of_Color_Pairs <B>return</B> Natural;
428 <B>pragma</B> Inline (Number_Of_Color_Pairs);
430 ACS_Map : <B>array</B> (Character'Val (0) .. Character'Val (127)) <B>of</B>
431 Attributed_Character;
432 <B>pragma</B> Import (C, ACS_Map, "acs_map");
435 <I>-- Constants for several symbols from the Alternate Character Set</I>
436 <I>-- You must use this constants as indices into the ACS_Map array</I>
437 <I>-- to get the corresponding attributed character at runtime.</I>
439 ACS_Upper_Left_Corner : <B>constant</B> Character := 'l';
440 ACS_Lower_Left_Corner : <B>constant</B> Character := 'm';
441 ACS_Upper_Right_Corner : <B>constant</B> Character := 'k';
442 ACS_Lower_Right_Corner : <B>constant</B> Character := 'j';
443 ACS_Left_Tee : <B>constant</B> Character := 't';
444 ACS_Right_Tee : <B>constant</B> Character := 'u';
445 ACS_Bottom_Tee : <B>constant</B> Character := 'v';
446 ACS_Top_Tee : <B>constant</B> Character := 'w';
447 ACS_Horizontal_Line : <B>constant</B> Character := 'q';
448 ACS_Vertical_Line : <B>constant</B> Character := 'x';
449 ACS_Plus_Symbol : <B>constant</B> Character := 'n';
450 ACS_Scan_Line_1 : <B>constant</B> Character := 'o';
451 ACS_Scan_Line_9 : <B>constant</B> Character := 's';
452 ACS_Diamond : <B>constant</B> Character := Character'Val (96);
453 ACS_Checker_Board : <B>constant</B> Character := 'a';
454 ACS_Degree : <B>constant</B> Character := 'f';
455 ACS_Plus_Minus : <B>constant</B> Character := 'g';
456 ACS_Bullet : <B>constant</B> Character := '~';
457 ACS_Left_Arrow : <B>constant</B> Character := ',';
458 ACS_Right_Arrow : <B>constant</B> Character := '+';
459 ACS_Down_Arrow : <B>constant</B> Character := '.';
460 ACS_Up_Arrow : <B>constant</B> Character := '-';
461 ACS_Board_Of_Squares : <B>constant</B> Character := 'h';
462 ACS_Lantern : <B>constant</B> Character := 'i';
463 ACS_Solid_Block : <B>constant</B> Character := '0';
464 ACS_Scan_Line_3 : <B>constant</B> Character := 'p';
465 ACS_Scan_Line_7 : <B>constant</B> Character := 'r';
466 ACS_Less_Or_Equal : <B>constant</B> Character := 'y';
467 ACS_Greater_Or_Equal : <B>constant</B> Character := 'z';
468 ACS_PI : <B>constant</B> Character := '{';
469 ACS_Not_Equal : <B>constant</B> Character := '|';
470 ACS_Sterling : <B>constant</B> Character := '}';
473 <I>-- |=====================================================================</I>
474 <I>-- | Man page <A HREF="curs_initscr.3x.html">curs_initscr.3x</A></I>
475 <I>-- |=====================================================================</I>
476 <I>-- | Not implemented: newterm, set_term, delscreen</I>
478 <I>-- <A NAME="AFU_1">|</I>
479 <B>function</B> Standard_Window <B>return</B> Window;
480 <I>-- AKA: <A HREF="curs_initscr.3x.html">stdscr</A></I>
481 <B>pragma</B> Inline (Standard_Window);
483 <I>-- <A NAME="AFU_2">|</I>
484 <B>procedure</B> Init_Screen;
486 <I>-- <A NAME="AFU_3">|</I>
487 <B>procedure</B> Init_Windows <B>renames</B> Init_Screen;
488 <I>-- AKA: <A HREF="curs_initscr.3x.html">initscr()</A></I>
490 <I>-- <A NAME="AFU_4">|</I>
491 <B>procedure</B> End_Windows;
492 <I>-- AKA: <A HREF="curs_initscr.3x.html">endwin()</A></I>
493 <B>procedure</B> End_Screen <B>renames</B> End_Windows;
495 <I>-- <A NAME="AFU_5">|</I>
496 <B>function</B> Is_End_Window <B>return</B> Boolean;
497 <I>-- AKA: <A HREF="curs_initscr.3x.html">isendwin()</A></I>
499 <I>-- |=====================================================================</I>
500 <I>-- | Man page <A HREF="curs_move.3x.html">curs_move.3x</A></I>
501 <I>-- |=====================================================================</I>
503 <I>-- <A NAME="AFU_6">|</I>
504 <B>procedure</B> Move_Cursor (Win : <B>in</B> Window := Standard_Window;
505 Line : <B>in</B> Line_Position;
506 Column : <B>in</B> Column_Position);
507 <I>-- AKA: <A HREF="curs_move.3x.html">wmove()</A></I>
509 <I>-- |=====================================================================</I>
510 <I>-- | Man page <A HREF="curs_addch.3x.html">curs_addch.3x</A></I>
511 <I>-- |=====================================================================</I>
513 <I>-- <A NAME="AFU_7">|</I>
514 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
515 Ch : <B>in</B> Attributed_Character);
516 <I>-- AKA: <A HREF="curs_addch.3x.html">waddch()</A></I>
518 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
519 Ch : <B>in</B> Character);
520 <I>-- Add a single character at the current logical cursor position to</I>
521 <I>-- the window. Use the current windows attributes.</I>
523 <I>-- <A NAME="AFU_8">|</I>
525 (Win : <B>in</B> Window := Standard_Window;
526 Line : <B>in</B> Line_Position;
527 Column : <B>in</B> Column_Position;
528 Ch : <B>in</B> Attributed_Character);
529 <I>-- AKA: <A HREF="curs_addch.3x.html">mvwaddch()</A></I>
532 (Win : <B>in</B> Window := Standard_Window;
533 Line : <B>in</B> Line_Position;
534 Column : <B>in</B> Column_Position;
535 Ch : <B>in</B> Character);
536 <I>-- Move to the position and add a single character into the window</I>
538 <I>-- <A NAME="AFU_9">|</I>
539 <B>procedure</B> Add_With_Immediate_Echo
540 (Win : <B>in</B> Window := Standard_Window;
541 Ch : <B>in</B> Attributed_Character);
542 <I>-- AKA: <A HREF="curs_addch.3x.html">wechochar()</A></I>
544 <B>procedure</B> Add_With_Immediate_Echo
545 (Win : <B>in</B> Window := Standard_Window;
546 Ch : <B>in</B> Character);
547 <I>-- Add a character and do an immediate resfresh of the screen.</I>
549 <I>-- |=====================================================================</I>
550 <I>-- | Man page <A HREF="curs_window.3x.html">curs_window.3x</A></I>
551 <I>-- |=====================================================================</I>
553 <I>-- <A NAME="AFU_10">|</I>
554 <B>function</B> Create
555 (Number_Of_Lines : Line_Count;
556 Number_Of_Columns : Column_Count;
557 First_Line_Position : Line_Position;
558 First_Column_Position : Column_Position) <B>return</B> Window;
559 <I>-- AKA: <A HREF="curs_window.3x.html">newwin()</A></I>
561 <B>function</B> New_Window
562 (Number_Of_Lines : Line_Count;
563 Number_Of_Columns : Column_Count;
564 First_Line_Position : Line_Position;
565 First_Column_Position : Column_Position) <B>return</B> Window
566 <B>renames</B> Create;
568 <I>-- <A NAME="AFU_11">|</I>
569 <B>procedure</B> Delete (Win : <B>in</B> <B>out</B> Window);
570 <I>-- AKA: <A HREF="curs_window.3x.html">delwin()</A></I>
571 <I>-- Reset Win to Null_Window</I>
573 <I>-- <A NAME="AFU_12">|</I>
574 <B>function</B> Sub_Window
575 (Win : Window := Standard_Window;
576 Number_Of_Lines : Line_Count;
577 Number_Of_Columns : Column_Count;
578 First_Line_Position : Line_Position;
579 First_Column_Position : Column_Position) <B>return</B> Window;
580 <I>-- AKA: <A HREF="curs_window.3x.html">subwin()</A></I>
582 <I>-- <A NAME="AFU_13">|</I>
583 <B>function</B> Derived_Window
584 (Win : Window := Standard_Window;
585 Number_Of_Lines : Line_Count;
586 Number_Of_Columns : Column_Count;
587 First_Line_Position : Line_Position;
588 First_Column_Position : Column_Position) <B>return</B> Window;
589 <I>-- AKA: <A HREF="curs_window.3x.html">derwin()</A></I>
591 <I>-- <A NAME="AFU_14">|</I>
592 <B>function</B> Duplicate (Win : Window) <B>return</B> Window;
593 <I>-- AKA: <A HREF="curs_window.3x.html">dupwin()</A></I>
595 <I>-- <A NAME="AFU_15">|</I>
596 <B>procedure</B> Move_Window (Win : <B>in</B> Window;
597 Line : <B>in</B> Line_Position;
598 Column : <B>in</B> Column_Position);
599 <I>-- AKA: <A HREF="curs_window.3x.html">mvwin()</A></I>
601 <I>-- <A NAME="AFU_16">|</I>
602 <B>procedure</B> Move_Derived_Window (Win : <B>in</B> Window;
603 Line : <B>in</B> Line_Position;
604 Column : <B>in</B> Column_Position);
605 <I>-- AKA: <A HREF="curs_window.3x.html">mvderwin()</A></I>
607 <I>-- <A NAME="AFU_17">|</I>
608 <B>procedure</B> Synchronize_Upwards (Win : <B>in</B> Window);
609 <I>-- AKA: <A HREF="curs_window.3x.html">wsyncup()</A></I>
610 <B>pragma</B> Import (C, Synchronize_Upwards, "wsyncup");
612 <I>-- <A NAME="AFU_18">|</I>
613 <B>procedure</B> Synchronize_Downwards (Win : <B>in</B> Window);
614 <I>-- AKA: <A HREF="curs_window.3x.html">wsyncdown()</A></I>
615 <B>pragma</B> Import (C, Synchronize_Downwards, "wsyncdown");
617 <I>-- <A NAME="AFU_19">|</I>
618 <B>procedure</B> Set_Synch_Mode (Win : <B>in</B> Window := Standard_Window;
619 Mode : <B>in</B> Boolean := False);
620 <I>-- AKA: <A HREF="curs_window.3x.html">syncok()</A></I>
622 <I>-- |=====================================================================</I>
623 <I>-- | Man page <A HREF="curs_addstr.3x.html">curs_addstr.3x</A></I>
624 <I>-- |=====================================================================</I>
626 <I>-- <A NAME="AFU_20">|</I>
627 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
628 Str : <B>in</B> String;
629 Len : <B>in</B> Integer := -1);
630 <I>-- AKA: <A HREF="curs_addstr.3x.html">waddnstr()</A></I>
631 <I>-- AKA: waddstr()</I>
633 <I>-- <A NAME="AFU_21">|</I>
634 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
635 Line : <B>in</B> Line_Position;
636 Column : <B>in</B> Column_Position;
637 Str : <B>in</B> String;
638 Len : <B>in</B> Integer := -1);
639 <I>-- AKA: <A HREF="curs_addstr.3x.html">mvwaddnstr()</A></I>
640 <I>-- AKA: mvwaddstr()</I>
642 <I>-- |=====================================================================</I>
643 <I>-- | Man page <A HREF="curs_addchstr.3x.html">curs_addchstr.3x</A></I>
644 <I>-- |=====================================================================</I>
646 <I>-- <A NAME="AFU_22">|</I>
647 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
648 Str : <B>in</B> Attributed_String;
649 Len : <B>in</B> Integer := -1);
650 <I>-- AKA: <A HREF="curs_addchstr.3x.html">waddchnstr()</A></I>
651 <I>-- AKA: waddchstr()</I>
653 <I>-- <A NAME="AFU_23">|</I>
654 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
655 Line : <B>in</B> Line_Position;
656 Column : <B>in</B> Column_Position;
657 Str : <B>in</B> Attributed_String;
658 Len : <B>in</B> Integer := -1);
659 <I>-- AKA: <A HREF="curs_addchstr.3x.html">mvwaddchnstr()</A></I>
660 <I>-- AKA: mvwaddchstr()</I>
662 <I>-- |=====================================================================</I>
663 <I>-- | Man page <A HREF="curs_border.3x.html">curs_border.3x</A></I>
664 <I>-- |=====================================================================</I>
666 <I>-- <A NAME="AFU_24">|</I>
667 <B>procedure</B> Border
668 (Win : <B>in</B> Window := Standard_Window;
669 Left_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
670 Right_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
671 Top_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
672 Bottom_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
673 Upper_Left_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character;
674 Upper_Right_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character;
675 Lower_Left_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character;
676 Lower_Right_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character
678 <I>-- AKA: <A HREF="curs_border.3x.html">wborder()</A></I>
680 <I>-- <A NAME="AFU_25">|</I>
682 (Win : <B>in</B> Window := Standard_Window;
683 Vertical_Symbol : <B>in</B> Attributed_Character := Default_Character;
684 Horizontal_Symbol : <B>in</B> Attributed_Character := Default_Character);
685 <I>-- AKA: <A HREF="curs_border.3x.html">box()</A></I>
687 <I>-- <A NAME="AFU_26">|</I>
688 <B>procedure</B> Horizontal_Line
689 (Win : <B>in</B> Window := Standard_Window;
690 Line_Size : <B>in</B> Natural;
691 Line_Symbol : <B>in</B> Attributed_Character := Default_Character);
692 <I>-- AKA: <A HREF="curs_border.3x.html">whline()</A></I>
694 <I>-- <A NAME="AFU_27">|</I>
695 <B>procedure</B> Vertical_Line
696 (Win : <B>in</B> Window := Standard_Window;
697 Line_Size : <B>in</B> Natural;
698 Line_Symbol : <B>in</B> Attributed_Character := Default_Character);
699 <I>-- AKA: <A HREF="curs_border.3x.html">wvline()</A></I>
701 <I>-- |=====================================================================</I>
702 <I>-- | Man page <A HREF="curs_getch.3x.html">curs_getch.3x</A></I>
703 <I>-- |=====================================================================</I>
705 <I>-- <A NAME="AFU_28">|</I>
706 <B>function</B> Get_Keystroke (Win : Window := Standard_Window)
707 <B>return</B> Real_Key_Code;
708 <I>-- AKA: <A HREF="curs_getch.3x.html">wgetch()</A></I>
709 <I>-- Get a character from the keyboard and echo it - if enabled - to the</I>
711 <I>-- If for any reason (i.e. a timeout) we couldn't get a character the</I>
712 <I>-- returned keycode is Key_None.</I>
714 <I>-- <A NAME="AFU_29">|</I>
715 <B>procedure</B> Undo_Keystroke (Key : <B>in</B> Real_Key_Code);
716 <I>-- AKA: <A HREF="curs_getch.3x.html">ungetch()</A></I>
718 <I>-- <A NAME="AFU_30">|</I>
719 <B>function</B> Has_Key (Key : Special_Key_Code) <B>return</B> Boolean;
720 <I>-- AKA: <A HREF="curs_getch.3x.html">has_key()</A></I>
722 <I>-- | Some helper functions</I>
724 <B>function</B> Is_Function_Key (Key : Special_Key_Code) <B>return</B> Boolean;
725 <I>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</I>
727 <B>subtype</B> Function_Key_Number <B>is</B> Integer <B>range</B> 0 .. 63;
728 <I>-- (n)curses allows for 64 function keys.</I>
730 <B>function</B> Function_Key (Key : Real_Key_Code) <B>return</B> Function_Key_Number;
731 <I>-- Return the number of the function key. If the code is not a</I>
732 <I>-- function key, a CONSTRAINT_ERROR will be raised.</I>
734 <B>function</B> Function_Key_Code (Key : Function_Key_Number) <B>return</B> Real_Key_Code;
735 <I>-- Return the key code for a given functionkey number.</I>
737 <I>-- |=====================================================================</I>
738 <I>-- | Man page <A HREF="curs_attr.3x.html">curs_attr.3x</A></I>
739 <I>-- |=====================================================================</I>
741 <I>-- <A NAME="AFU_31">|</I>
742 <B>procedure</B> Switch_Character_Attribute
743 (Win : <B>in</B> Window := Standard_Window;
744 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
745 On : <B>in</B> Boolean := True); <I>-- if False we switch Off.</I>
746 <I>-- AKA: <A HREF="curs_attr.3x.html">wattron()</A></I>
747 <I>-- AKA: wattroff()</I>
749 <I>-- <A NAME="AFU_32">|</I>
750 <B>procedure</B> Set_Character_Attributes
751 (Win : <B>in</B> Window := Standard_Window;
752 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
753 Color : <B>in</B> Color_Pair := Color_Pair'First);
754 <I>-- AKA: <A HREF="curs_attr.3x.html">wattrset()</A></I>
756 <I>-- <A NAME="AFU_33">|</I>
757 <B>function</B> Get_Character_Attribute
758 (Win : <B>in</B> Window := Standard_Window) <B>return</B> Character_Attribute_Set;
759 <I>-- AKA: <A HREF="curs_attr.3x.html">wattr_get()</A></I>
761 <I>-- <A NAME="AFU_34">|</I>
762 <B>function</B> Get_Character_Attribute
763 (Win : <B>in</B> Window := Standard_Window) <B>return</B> Color_Pair;
764 <I>-- AKA: <A HREF="curs_attr.3x.html">wattr_get()</A></I>
766 <I>-- <A NAME="AFU_35">|</I>
767 <B>procedure</B> Change_Attributes
768 (Win : <B>in</B> Window := Standard_Window;
769 Count : <B>in</B> Integer := -1;
770 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
771 Color : <B>in</B> Color_Pair := Color_Pair'First);
772 <I>-- AKA: <A HREF="curs_attr.3x.html">wchgat()</A></I>
774 <I>-- <A NAME="AFU_36">|</I>
775 <B>procedure</B> Change_Attributes
776 (Win : <B>in</B> Window := Standard_Window;
777 Line : <B>in</B> Line_Position := Line_Position'First;
778 Column : <B>in</B> Column_Position := Column_Position'First;
779 Count : <B>in</B> Integer := -1;
780 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
781 Color : <B>in</B> Color_Pair := Color_Pair'First);
782 <I>-- AKA: <A HREF="curs_attr.3x.html">mvwchgat()</A></I>
784 <I>-- |=====================================================================</I>
785 <I>-- | Man page <A HREF="curs_beep.3x.html">curs_beep.3x</A></I>
786 <I>-- |=====================================================================</I>
788 <I>-- <A NAME="AFU_37">|</I>
789 <B>procedure</B> Beep;
790 <I>-- AKA: <A HREF="curs_beep.3x.html">beep()</A></I>
792 <I>-- <A NAME="AFU_38">|</I>
793 <B>procedure</B> Flash_Screen;
794 <I>-- AKA: <A HREF="curs_beep.3x.html">flash()</A></I>
796 <I>-- |=====================================================================</I>
797 <I>-- | Man page <A HREF="curs_inopts.3x.html">curs_inopts.3x</A></I>
798 <I>-- |=====================================================================</I>
800 <I>-- | Not implemented : typeahead</I>
802 <I>-- <A NAME="AFU_39">|</I>
803 <B>procedure</B> Set_Cbreak_Mode (SwitchOn : <B>in</B> Boolean := True);
804 <I>-- AKA: <A HREF="curs_inopts.3x.html">cbreak()</A></I>
805 <I>-- AKA: nocbreak()</I>
807 <I>-- <A NAME="AFU_40">|</I>
808 <B>procedure</B> Set_Raw_Mode (SwitchOn : <B>in</B> Boolean := True);
809 <I>-- AKA: <A HREF="curs_inopts.3x.html">raw()</A></I>
810 <I>-- AKA: noraw()</I>
812 <I>-- <A NAME="AFU_41">|</I>
813 <B>procedure</B> Set_Echo_Mode (SwitchOn : <B>in</B> Boolean := True);
814 <I>-- AKA: <A HREF="curs_inopts.3x.html">echo()</A></I>
815 <I>-- AKA: noecho()</I>
817 <I>-- <A NAME="AFU_42">|</I>
818 <B>procedure</B> Set_Meta_Mode (Win : <B>in</B> Window := Standard_Window;
819 SwitchOn : <B>in</B> Boolean := True);
820 <I>-- AKA: <A HREF="curs_inopts.3x.html">meta()</A></I>
822 <I>-- <A NAME="AFU_43">|</I>
823 <B>procedure</B> Set_KeyPad_Mode (Win : <B>in</B> Window := Standard_Window;
824 SwitchOn : <B>in</B> Boolean := True);
825 <I>-- AKA: <A HREF="curs_inopts.3x.html">keypad()</A></I>
827 type Half_Delay_Amount <B>is</B> <B>range</B> 1 .. 255;
829 <I>-- <A NAME="AFU_44">|</I>
830 <B>procedure</B> Half_Delay (Amount : <B>in</B> Half_Delay_Amount);
831 <I>-- AKA: <A HREF="curs_inopts.3x.html">halfdelay()</A></I>
833 <I>-- <A NAME="AFU_45">|</I>
834 <B>procedure</B> Set_Flush_On_Interrupt_Mode
835 (Win : <B>in</B> Window := Standard_Window;
836 Mode : <B>in</B> Boolean := True);
837 <I>-- AKA: <A HREF="curs_inopts.3x.html">intrflush()</A></I>
839 <I>-- <A NAME="AFU_46">|</I>
840 <B>procedure</B> Set_Queue_Interrupt_Mode
841 (Win : <B>in</B> Window := Standard_Window;
842 Flush : <B>in</B> Boolean := True);
843 <I>-- AKA: <A HREF="curs_inopts.3x.html">qiflush()</A></I>
844 <I>-- AKA: noqiflush()</I>
846 <I>-- <A NAME="AFU_47">|</I>
847 <B>procedure</B> Set_NoDelay_Mode
848 (Win : <B>in</B> Window := Standard_Window;
849 Mode : <B>in</B> Boolean := False);
850 <I>-- AKA: <A HREF="curs_inopts.3x.html">nodelay()</A></I>
852 type Timeout_Mode <B>is</B> (Blocking, Non_Blocking, Delayed);
854 <I>-- <A NAME="AFU_48">|</I>
855 <B>procedure</B> Set_Timeout_Mode (Win : <B>in</B> Window := Standard_Window;
856 Mode : <B>in</B> Timeout_Mode;
857 Amount : <B>in</B> Natural); <I>-- in Miliseconds</I>
858 <I>-- AKA: <A HREF="curs_inopts.3x.html">wtimeout()</A></I>
859 <I>-- Instead of overloading the semantic of the sign of amount, we</I>
860 <I>-- introduce the Timeout_Mode parameter. This should improve</I>
861 <I>-- readability. For Blocking and Non_Blocking, the Amount is not</I>
864 <I>-- <A NAME="AFU_49">|</I>
865 <B>procedure</B> Set_Escape_Timer_Mode
866 (Win : <B>in</B> Window := Standard_Window;
867 Timer_Off : <B>in</B> Boolean := False);
868 <I>-- AKA: <A HREF="curs_inopts.3x.html">notimeout()</A></I>
870 <I>-- |=====================================================================</I>
871 <I>-- | Man page <A HREF="curs_outopts.3x.html">curs_outopts.3x</A></I>
872 <I>-- |=====================================================================</I>
874 <I>-- <A NAME="AFU_50">|</I>
875 <B>procedure</B> Set_NL_Mode (SwitchOn : <B>in</B> Boolean := True);
876 <I>-- AKA: <A HREF="curs_outopts.3x.html">nl()</A></I>
877 <I>-- AKA: nonl()</I>
879 <I>-- <A NAME="AFU_51">|</I>
880 <B>procedure</B> Clear_On_Next_Update
881 (Win : <B>in</B> Window := Standard_Window;
882 Do_Clear : <B>in</B> Boolean := True);
883 <I>-- AKA: <A HREF="curs_outopts.3x.html">clearok()</A></I>
885 <I>-- <A NAME="AFU_52">|</I>
886 <B>procedure</B> Use_Insert_Delete_Line
887 (Win : <B>in</B> Window := Standard_Window;
888 Do_Idl : <B>in</B> Boolean := True);
889 <I>-- AKA: <A HREF="curs_outopts.3x.html">idlok()</A></I>
891 <I>-- <A NAME="AFU_53">|</I>
892 <B>procedure</B> Use_Insert_Delete_Character
893 (Win : <B>in</B> Window := Standard_Window;
894 Do_Idc : <B>in</B> Boolean := True);
895 <I>-- AKA: <A HREF="curs_outopts.3x.html">idcok()</A></I>
897 <I>-- <A NAME="AFU_54">|</I>
898 <B>procedure</B> Leave_Cursor_After_Update
899 (Win : <B>in</B> Window := Standard_Window;
900 Do_Leave : <B>in</B> Boolean := True);
901 <I>-- AKA: <A HREF="curs_outopts.3x.html">leaveok()</A></I>
903 <I>-- <A NAME="AFU_55">|</I>
904 <B>procedure</B> Immediate_Update_Mode
905 (Win : <B>in</B> Window := Standard_Window;
906 Mode : <B>in</B> Boolean := False);
907 <I>-- AKA: <A HREF="curs_outopts.3x.html">immedok()</A></I>
909 <I>-- <A NAME="AFU_56">|</I>
910 <B>procedure</B> Allow_Scrolling
911 (Win : <B>in</B> Window := Standard_Window;
912 Mode : <B>in</B> Boolean := False);
913 <I>-- AKA: <A HREF="curs_outopts.3x.html">scrollok()</A></I>
915 <B>function</B> Scrolling_Allowed (Win : Window := Standard_Window) <B>return</B> Boolean;
916 <I>-- There is no such function in the C interface.</I>
918 <I>-- <A NAME="AFU_57">|</I>
919 <B>procedure</B> Set_Scroll_Region
920 (Win : <B>in</B> Window := Standard_Window;
921 Top_Line : <B>in</B> Line_Position;
922 Bottom_Line : <B>in</B> Line_Position);
923 <I>-- AKA: <A HREF="curs_outopts.3x.html">wsetscrreg()</A></I>
925 <I>-- |=====================================================================</I>
926 <I>-- | Man page <A HREF="curs_refresh.3x.html">curs_refresh.3x</A></I>
927 <I>-- |=====================================================================</I>
929 <I>-- <A NAME="AFU_58">|</I>
930 <B>procedure</B> Update_Screen;
931 <I>-- AKA: <A HREF="curs_refresh.3x.html">doupdate()</A></I>
933 <I>-- <A NAME="AFU_59">|</I>
934 <B>procedure</B> Refresh (Win : <B>in</B> Window := Standard_Window);
935 <I>-- AKA: <A HREF="curs_refresh.3x.html">wrefresh()</A></I>
937 <I>-- <A NAME="AFU_60">|</I>
938 <B>procedure</B> Refresh_Without_Update
939 (Win : <B>in</B> Window := Standard_Window);
940 <I>-- AKA: <A HREF="curs_refresh.3x.html">wnoutrefresh()</A></I>
942 <I>-- <A NAME="AFU_61">|</I>
943 <B>procedure</B> Redraw (Win : <B>in</B> Window := Standard_Window);
944 <I>-- AKA: <A HREF="curs_refresh.3x.html">redrawwin()</A></I>
946 <I>-- <A NAME="AFU_62">|</I>
947 <B>procedure</B> Redraw (Win : <B>in</B> Window := Standard_Window;
948 Begin_Line : <B>in</B> Line_Position;
949 Line_Count : <B>in</B> Positive);
950 <I>-- AKA: <A HREF="curs_refresh.3x.html">wredrawln()</A></I>
952 <I>-- |=====================================================================</I>
953 <I>-- | Man page <A HREF="curs_clear.3x.html">curs_clear.3x</A></I>
954 <I>-- |=====================================================================</I>
956 <I>-- <A NAME="AFU_63">|</I>
957 <B>procedure</B> Erase (Win : <B>in</B> Window := Standard_Window);
958 <I>-- AKA: <A HREF="curs_clear.3x.html">werase()</A></I>
960 <I>-- <A NAME="AFU_64">|</I>
961 <B>procedure</B> Clear
962 (Win : <B>in</B> Window := Standard_Window);
963 <I>-- AKA: <A HREF="curs_clear.3x.html">wclear()</A></I>
965 <I>-- <A NAME="AFU_65">|</I>
966 <B>procedure</B> Clear_To_End_Of_Screen
967 (Win : <B>in</B> Window := Standard_Window);
968 <I>-- AKA: <A HREF="curs_clear.3x.html">wclrtobot()</A></I>
970 <I>-- <A NAME="AFU_66">|</I>
971 <B>procedure</B> Clear_To_End_Of_Line
972 (Win : <B>in</B> Window := Standard_Window);
973 <I>-- AKA: <A HREF="curs_clear.3x.html">wclrtoeol()</A></I>
975 <I>-- |=====================================================================</I>
976 <I>-- | Man page <A HREF="curs_bkgd.3x.html">curs_bkgd.3x</A></I>
977 <I>-- |=====================================================================</I>
979 <I>-- <A NAME="AFU_67">|</I>
980 <B>procedure</B> Set_Background
981 (Win : <B>in</B> Window := Standard_Window;
982 Ch : <B>in</B> Attributed_Character);
983 <I>-- AKA: <A HREF="curs_bkgd.3x.html">wbkgdset()</A></I>
985 <I>-- <A NAME="AFU_68">|</I>
986 <B>procedure</B> Change_Background
987 (Win : <B>in</B> Window := Standard_Window;
988 Ch : <B>in</B> Attributed_Character);
989 <I>-- AKA: <A HREF="curs_bkgd.3x.html">wbkgd()</A></I>
991 <I>-- <A NAME="AFU_69">|</I>
992 <B>function</B> Get_Background (Win : Window := Standard_Window)
993 <B>return</B> Attributed_Character;
994 <I>-- AKA: <A HREF="curs_bkgd.3x.html">wbkgdget()</A></I>
996 <I>-- |=====================================================================</I>
997 <I>-- | Man page <A HREF="curs_touch.3x.html">curs_touch.3x</A></I>
998 <I>-- |=====================================================================</I>
1000 <I>-- <A NAME="AFU_70">|</I>
1001 <B>procedure</B> Touch (Win : <B>in</B> Window := Standard_Window);
1002 <I>-- AKA: <A HREF="curs_touch.3x.html">touchwin()</A></I>
1004 <I>-- <A NAME="AFU_71">|</I>
1005 <B>procedure</B> Untouch (Win : <B>in</B> Window := Standard_Window);
1006 <I>-- AKA: <A HREF="curs_touch.3x.html">untouchwin()</A></I>
1008 <I>-- <A NAME="AFU_72">|</I>
1009 <B>procedure</B> Touch (Win : <B>in</B> Window := Standard_Window;
1010 Start : <B>in</B> Line_Position;
1011 Count : <B>in</B> Positive);
1012 <I>-- AKA: <A HREF="curs_touch.3x.html">touchline()</A></I>
1014 <I>-- <A NAME="AFU_73">|</I>
1015 <B>procedure</B> Change_Lines_Status (Win : <B>in</B> Window := Standard_Window;
1016 Start : <B>in</B> Line_Position;
1017 Count : <B>in</B> Positive;
1018 State : <B>in</B> Boolean);
1019 <I>-- AKA: <A HREF="curs_touch.3x.html">wtouchln()</A></I>
1021 <I>-- <A NAME="AFU_74">|</I>
1022 <B>function</B> Is_Touched (Win : Window := Standard_Window;
1023 Line : Line_Position) <B>return</B> Boolean;
1024 <I>-- AKA: <A HREF="curs_touch.3x.html">is_linetouched()</A></I>
1026 <I>-- <A NAME="AFU_75">|</I>
1027 <B>function</B> Is_Touched (Win : Window := Standard_Window) <B>return</B> Boolean;
1028 <I>-- AKA: <A HREF="curs_touch.3x.html">is_wintouched()</A></I>
1030 <I>-- |=====================================================================</I>
1031 <I>-- | Man page <A HREF="curs_overlay.3x.html">curs_overlay.3x</A></I>
1032 <I>-- |=====================================================================</I>
1034 <I>-- <A NAME="AFU_76">|</I>
1035 <B>procedure</B> Copy
1036 (Source_Window : <B>in</B> Window;
1037 Destination_Window : <B>in</B> Window;
1038 Source_Top_Row : <B>in</B> Line_Position;
1039 Source_Left_Column : <B>in</B> Column_Position;
1040 Destination_Top_Row : <B>in</B> Line_Position;
1041 Destination_Left_Column : <B>in</B> Column_Position;
1042 Destination_Bottom_Row : <B>in</B> Line_Position;
1043 Destination_Right_Column : <B>in</B> Column_Position;
1044 Non_Destructive_Mode : <B>in</B> Boolean := True);
1045 <I>-- AKA: <A HREF="curs_overlay.3x.html">copywin()</A></I>
1047 <I>-- <A NAME="AFU_77">|</I>
1048 <B>procedure</B> Overwrite (Source_Window : <B>in</B> Window;
1049 Destination_Window : <B>in</B> Window);
1050 <I>-- AKA: <A HREF="curs_overlay.3x.html">overwrite()</A></I>
1052 <I>-- <A NAME="AFU_78">|</I>
1053 <B>procedure</B> Overlay (Source_Window : <B>in</B> Window;
1054 Destination_Window : <B>in</B> Window);
1055 <I>-- AKA: <A HREF="curs_overlay.3x.html">overlay()</A></I>
1057 <I>-- |=====================================================================</I>
1058 <I>-- | Man page <A HREF="curs_deleteln.3x.html">curs_deleteln.3x</A></I>
1059 <I>-- |=====================================================================</I>
1061 <I>-- <A NAME="AFU_79">|</I>
1062 <B>procedure</B> Insert_Delete_Lines
1063 (Win : <B>in</B> Window := Standard_Window;
1064 Lines : <B>in</B> Integer := 1); <I>-- default is to insert one line above</I>
1065 <I>-- AKA: <A HREF="curs_deleteln.3x.html">winsdelln()</A></I>
1067 <I>-- <A NAME="AFU_80">|</I>
1068 <B>procedure</B> Delete_Line (Win : <B>in</B> Window := Standard_Window);
1069 <I>-- AKA: <A HREF="curs_deleteln.3x.html">wdeleteln()</A></I>
1071 <I>-- <A NAME="AFU_81">|</I>
1072 <B>procedure</B> Insert_Line (Win : <B>in</B> Window := Standard_Window);
1073 <I>-- AKA: <A HREF="curs_deleteln.3x.html">winsertln()</A></I>
1075 <I>-- |=====================================================================</I>
1076 <I>-- | Man page <A HREF="curs_getyx.3x.html">curs_getyx.3x</A></I>
1077 <I>-- |=====================================================================</I>
1079 <I>-- <A NAME="AFU_82">|</I>
1080 <B>procedure</B> Get_Size
1081 (Win : <B>in</B> Window := Standard_Window;
1082 Number_Of_Lines : <B>out</B> Line_Count;
1083 Number_Of_Columns : <B>out</B> Column_Count);
1084 <I>-- AKA: <A HREF="curs_getyx.3x.html">getmaxyx()</A></I>
1086 <I>-- <A NAME="AFU_83">|</I>
1087 <B>procedure</B> Get_Window_Position
1088 (Win : <B>in</B> Window := Standard_Window;
1089 Top_Left_Line : <B>out</B> Line_Position;
1090 Top_Left_Column : <B>out</B> Column_Position);
1091 <I>-- AKA: <A HREF="curs_getyx.3x.html">getbegyx()</A></I>
1093 <I>-- <A NAME="AFU_84">|</I>
1094 <B>procedure</B> Get_Cursor_Position
1095 (Win : <B>in</B> Window := Standard_Window;
1096 Line : <B>out</B> Line_Position;
1097 Column : <B>out</B> Column_Position);
1098 <I>-- AKA: <A HREF="curs_getyx.3x.html">getyx()</A></I>
1100 <I>-- <A NAME="AFU_85">|</I>
1101 <B>procedure</B> Get_Origin_Relative_To_Parent
1102 (Win : <B>in</B> Window;
1103 Top_Left_Line : <B>out</B> Line_Position;
1104 Top_Left_Column : <B>out</B> Column_Position;
1105 Is_Not_A_Subwindow : <B>out</B> Boolean);
1106 <I>-- AKA: <A HREF="curs_getyx.3x.html">getparyx()</A></I>
1107 <I>-- Instead of placing -1 in the coordinates as return, we use a boolean</I>
1108 <I>-- to return the info that the window has no parent.</I>
1110 <I>-- |=====================================================================</I>
1111 <I>-- | Man page <A HREF="curs_pad.3x.html">curs_pad.3x</A></I>
1112 <I>-- |=====================================================================</I>
1114 <I>-- <A NAME="AFU_86">|</I>
1115 <B>function</B> New_Pad (Lines : Line_Count;
1116 Columns : Column_Count) <B>return</B> Window;
1117 <I>-- AKA: <A HREF="curs_pad.3x.html">newpad()</A></I>
1119 <I>-- <A NAME="AFU_87">|</I>
1120 <B>function</B> Sub_Pad
1122 Number_Of_Lines : Line_Count;
1123 Number_Of_Columns : Column_Count;
1124 First_Line_Position : Line_Position;
1125 First_Column_Position : Column_Position) <B>return</B> Window;
1126 <I>-- AKA: <A HREF="curs_pad.3x.html">subpad()</A></I>
1128 <I>-- <A NAME="AFU_88">|</I>
1129 <B>procedure</B> Refresh
1130 (Pad : <B>in</B> Window;
1131 Source_Top_Row : <B>in</B> Line_Position;
1132 Source_Left_Column : <B>in</B> Column_Position;
1133 Destination_Top_Row : <B>in</B> Line_Position;
1134 Destination_Left_Column : <B>in</B> Column_Position;
1135 Destination_Bottom_Row : <B>in</B> Line_Position;
1136 Destination_Right_Column : <B>in</B> Column_Position);
1137 <I>-- AKA: <A HREF="curs_pad.3x.html">prefresh()</A></I>
1139 <I>-- <A NAME="AFU_89">|</I>
1140 <B>procedure</B> Refresh_Without_Update
1141 (Pad : <B>in</B> Window;
1142 Source_Top_Row : <B>in</B> Line_Position;
1143 Source_Left_Column : <B>in</B> Column_Position;
1144 Destination_Top_Row : <B>in</B> Line_Position;
1145 Destination_Left_Column : <B>in</B> Column_Position;
1146 Destination_Bottom_Row : <B>in</B> Line_Position;
1147 Destination_Right_Column : <B>in</B> Column_Position);
1148 <I>-- AKA: <A HREF="curs_pad.3x.html">pnoutrefresh()</A></I>
1150 <I>-- <A NAME="AFU_90">|</I>
1151 <B>procedure</B> Add_Character_To_Pad_And_Echo_It
1152 (Pad : <B>in</B> Window;
1153 Ch : <B>in</B> Attributed_Character);
1154 <I>-- AKA: <A HREF="curs_pad.3x.html">pechochar()</A></I>
1156 <B>procedure</B> Add_Character_To_Pad_And_Echo_It
1157 (Pad : <B>in</B> Window;
1158 Ch : <B>in</B> Character);
1160 <I>-- |=====================================================================</I>
1161 <I>-- | Man page <A HREF="curs_scroll.3x.html">curs_scroll.3x</A></I>
1162 <I>-- |=====================================================================</I>
1164 <I>-- <A NAME="AFU_91">|</I>
1165 <B>procedure</B> Scroll (Win : <B>in</B> Window := Standard_Window;
1166 Amount : <B>in</B> Integer := 1);
1167 <I>-- AKA: <A HREF="curs_scroll.3x.html">wscrl()</A></I>
1169 <I>-- |=====================================================================</I>
1170 <I>-- | Man page <A HREF="curs_delch.3x.html">curs_delch.3x</A></I>
1171 <I>-- |=====================================================================</I>
1173 <I>-- <A NAME="AFU_92">|</I>
1174 <B>procedure</B> Delete_Character (Win : <B>in</B> Window := Standard_Window);
1175 <I>-- AKA: <A HREF="curs_delch.3x.html">wdelch()</A></I>
1177 <I>-- <A NAME="AFU_93">|</I>
1178 <B>procedure</B> Delete_Character
1179 (Win : <B>in</B> Window := Standard_Window;
1180 Line : <B>in</B> Line_Position;
1181 Column : <B>in</B> Column_Position);
1182 <I>-- AKA: <A HREF="curs_delch.3x.html">mvwdelch()</A></I>
1184 <I>-- |=====================================================================</I>
1185 <I>-- | Man page <A HREF="curs_inch.3x.html">curs_inch.3x</A></I>
1186 <I>-- |=====================================================================</I>
1188 <I>-- <A NAME="AFU_94">|</I>
1189 <B>function</B> Peek (Win : Window := Standard_Window)
1190 <B>return</B> Attributed_Character;
1191 <I>-- AKA: <A HREF="curs_inch.3x.html">winch()</A></I>
1193 <I>-- <A NAME="AFU_95">|</I>
1194 <B>function</B> Peek
1195 (Win : Window := Standard_Window;
1196 Line : Line_Position;
1197 Column : Column_Position) <B>return</B> Attributed_Character;
1198 <I>-- AKA: <A HREF="curs_inch.3x.html">mvwinch()</A></I>
1200 <I>-- |=====================================================================</I>
1201 <I>-- | Man page <A HREF="curs_winch.3x.html">curs_winch.3x</A></I>
1202 <I>-- |=====================================================================</I>
1204 <I>-- <A NAME="AFU_96">|</I>
1205 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1206 Ch : <B>in</B> Attributed_Character);
1207 <I>-- AKA: <A HREF="curs_winch.3x.html">winsch()</A></I>
1209 <I>-- <A NAME="AFU_97">|</I>
1210 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1211 Line : <B>in</B> Line_Position;
1212 Column : <B>in</B> Column_Position;
1213 Ch : <B>in</B> Attributed_Character);
1214 <I>-- AKA: <A HREF="curs_winch.3x.html">mvwinsch()</A></I>
1216 <I>-- |=====================================================================</I>
1217 <I>-- | Man page <A HREF="curs_winch.3x.html">curs_winch.3x</A></I>
1218 <I>-- |=====================================================================</I>
1220 <I>-- <A NAME="AFU_98">|</I>
1221 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1222 Str : <B>in</B> String;
1223 Len : <B>in</B> Integer := -1);
1224 <I>-- AKA: <A HREF="curs_winch.3x.html">winsnstr()</A></I>
1225 <I>-- AKA: winsstr()</I>
1227 <I>-- <A NAME="AFU_99">|</I>
1228 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1229 Line : <B>in</B> Line_Position;
1230 Column : <B>in</B> Column_Position;
1231 Str : <B>in</B> String;
1232 Len : <B>in</B> Integer := -1);
1233 <I>-- AKA: <A HREF="curs_winch.3x.html">mvwinsnstr()</A></I>
1234 <I>-- AKA: mvwinsstr()</I>
1236 <I>-- |=====================================================================</I>
1237 <I>-- | Man page <A HREF="curs_instr.3x.html">curs_instr.3x</A></I>
1238 <I>-- |=====================================================================</I>
1240 <I>-- <A NAME="AFU_100">|</I>
1241 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1242 Str : <B>out</B> String;
1243 Len : <B>in</B> Integer := -1);
1244 <I>-- AKA: <A HREF="curs_instr.3x.html">winnstr()</A></I>
1245 <I>-- AKA: winstr()</I>
1247 <I>-- <A NAME="AFU_101">|</I>
1248 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1249 Line : <B>in</B> Line_Position;
1250 Column : <B>in</B> Column_Position;
1251 Str : <B>out</B> String;
1252 Len : <B>in</B> Integer := -1);
1253 <I>-- AKA: <A HREF="curs_instr.3x.html">mvwinnstr()</A></I>
1254 <I>-- AKA: mvwinstr()</I>
1256 <I>-- |=====================================================================</I>
1257 <I>-- | Man page <A HREF="curs_inchstr.3x.html">curs_inchstr.3x</A></I>
1258 <I>-- |=====================================================================</I>
1260 <I>-- <A NAME="AFU_102">|</I>
1261 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1262 Str : <B>out</B> Attributed_String;
1263 Len : <B>in</B> Integer := -1);
1264 <I>-- AKA: <A HREF="curs_inchstr.3x.html">winchnstr()</A></I>
1265 <I>-- AKA: winchstr()</I>
1267 <I>-- <A NAME="AFU_103">|</I>
1268 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1269 Line : <B>in</B> Line_Position;
1270 Column : <B>in</B> Column_Position;
1271 Str : <B>out</B> Attributed_String;
1272 Len : <B>in</B> Integer := -1);
1273 <I>-- AKA: <A HREF="curs_inchstr.3x.html">mvwinchnstr()</A></I>
1274 <I>-- AKA: mvwinchstr()</I>
1276 <I>-- |=====================================================================</I>
1277 <I>-- | Man page <A HREF="curs_getstr.3x.html">curs_getstr.3x</A></I>
1278 <I>-- |=====================================================================</I>
1280 <I>-- <A NAME="AFU_104">|</I>
1281 <B>procedure</B> Get (Win : <B>in</B> Window := Standard_Window;
1282 Str : <B>out</B> String;
1283 Len : <B>in</B> Integer := -1);
1284 <I>-- AKA: <A HREF="curs_getstr.3x.html">wgetnstr()</A></I>
1285 <I>-- AKA: wgetstr()</I>
1287 <B>procedure</B> Get (Win : <B>in</B> Window := Standard_Window;
1288 Line : <B>in</B> Line_Position;
1289 Column : <B>in</B> Column_Position;
1290 Str : <B>out</B> String;
1291 Len : <B>in</B> Integer := -1);
1292 <I>-- AKA: <A HREF="curs_getstr.3x.html">wgetnstr()</A>: not specified in ncurses, should be: mvwgetnstr()</I>
1293 <I>-- and mvwgetstr() (which exists)</I>
1295 <I>-- |=====================================================================</I>
1296 <I>-- | Man page <A HREF="curs_slk.3x.html">curs_slk.3x</A></I>
1297 <I>-- |=====================================================================</I>
1299 type Soft_Label_Key_Format <B>is</B> (Three_Two_Three,
1301 PC_Style, <I>-- ncurses specific</I>
1302 PC_Style_With_Index); <I>-- "</I>
1303 type Label_Number <B>is</B> <B>new</B> Positive <B>range</B> 1 .. 12;
1304 type Label_Justification <B>is</B> (Left, Centered, Right);
1306 <I>-- <A NAME="AFU_105">|</I>
1307 <B>procedure</B> Init_Soft_Label_Keys
1308 (Format : <B>in</B> Soft_Label_Key_Format := Three_Two_Three);
1309 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_init()</A></I>
1311 <I>-- <A NAME="AFU_106">|</I>
1312 <B>procedure</B> Set_Soft_Label_Key (Label : <B>in</B> Label_Number;
1313 Text : <B>in</B> String;
1314 Fmt : <B>in</B> Label_Justification := Left);
1315 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_set()</A></I>
1317 <I>-- <A NAME="AFU_107">|</I>
1318 <B>procedure</B> Refresh_Soft_Label_Keys;
1319 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_refresh()</A></I>
1321 <I>-- <A NAME="AFU_108">|</I>
1322 <B>procedure</B> Refresh_Soft_Label_Keys_Without_Update;
1323 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_noutrefresh()</A></I>
1325 <I>-- <A NAME="AFU_109">|</I>
1326 <B>procedure</B> Get_Soft_Label_Key (Label : <B>in</B> Label_Number;
1327 Text : <B>out</B> String);
1328 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_label()</A></I>
1330 <I>-- <A NAME="AFU_110">|</I>
1331 <B>procedure</B> Clear_Soft_Label_Keys;
1332 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_clear()</A></I>
1334 <I>-- <A NAME="AFU_111">|</I>
1335 <B>procedure</B> Restore_Soft_Label_Keys;
1336 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_restore()</A></I>
1338 <I>-- <A NAME="AFU_112">|</I>
1339 <B>procedure</B> Touch_Soft_Label_Keys;
1340 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_touch()</A></I>
1342 <I>-- <A NAME="AFU_113">|</I>
1343 <B>procedure</B> Switch_Soft_Label_Key_Attributes
1344 (Attr : <B>in</B> Character_Attribute_Set;
1345 On : <B>in</B> Boolean := True);
1346 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attron()</A></I>
1347 <I>-- AKA: slk_attroff()</I>
1349 <I>-- <A NAME="AFU_114">|</I>
1350 <B>procedure</B> Set_Soft_Label_Key_Attributes
1351 (Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
1352 Color : <B>in</B> Color_Pair := Color_Pair'First);
1353 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attrset()</A></I>
1355 <I>-- <A NAME="AFU_115">|</I>
1356 <B>function</B> Get_Soft_Label_Key_Attributes <B>return</B> Character_Attribute_Set;
1357 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attr()</A></I>
1359 <I>-- <A NAME="AFU_116">|</I>
1360 <B>function</B> Get_Soft_Label_Key_Attributes <B>return</B> Color_Pair;
1361 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attr()</A></I>
1363 <I>-- |=====================================================================</I>
1364 <I>-- | Man page <A HREF="keyok.3x.html">keyok.3x</A></I>
1365 <I>-- |=====================================================================</I>
1367 <I>-- <A NAME="AFU_117">|</I>
1368 <B>procedure</B> Enable_Key (Key : <B>in</B> Special_Key_Code;
1369 Enable : <B>in</B> Boolean := True);
1370 <I>-- AKA: <A HREF="keyok.3x.html">keyok()</A></I>
1372 <I>-- |=====================================================================</I>
1373 <I>-- | Man page <A HREF="define_key.3x.html">define_key.3x</A></I>
1374 <I>-- |=====================================================================</I>
1376 <I>-- <A NAME="AFU_118">|</I>
1377 <B>procedure</B> Define_Key (Definition : <B>in</B> String;
1378 Key : <B>in</B> Special_Key_Code);
1379 <I>-- AKA: <A HREF="define_key.3x.html">define_key()</A></I>
1381 <I>-- |=====================================================================</I>
1382 <I>-- | Man page <A HREF="curs_util.3x.html">curs_util.3x</A></I>
1383 <I>-- |=====================================================================</I>
1385 <I>-- | Not implemented : filter, use_env, putwin, getwin</I>
1387 <I>-- <A NAME="AFU_119">|</I>
1388 <B>procedure</B> Key_Name (Key : <B>in</B> Real_Key_Code;
1389 Name : <B>out</B> String);
1390 <I>-- AKA: <A HREF="curs_util.3x.html">keyname()</A></I>
1391 <I>-- The external name for a real keystroke.</I>
1393 <I>-- <A NAME="AFU_120">|</I>
1394 <B>procedure</B> Un_Control (Ch : <B>in</B> Attributed_Character;
1395 Str : <B>out</B> String);
1396 <I>-- AKA: <A HREF="curs_util.3x.html">unctrl()</A></I>
1398 <I>-- <A NAME="AFU_121">|</I>
1399 <B>procedure</B> Delay_Output (Msecs : <B>in</B> Natural);
1400 <I>-- AKA: <A HREF="curs_util.3x.html">delay_output()</A></I>
1402 <I>-- <A NAME="AFU_122">|</I>
1403 <B>procedure</B> Flush_Input;
1404 <I>-- AKA: <A HREF="curs_util.3x.html">flushinp()</A></I>
1406 <I>-- |=====================================================================</I>
1407 <I>-- | Man page <A HREF="curs_termattrs.3x.html">curs_termattrs.3x</A></I>
1408 <I>-- |=====================================================================</I>
1410 <I>-- <A NAME="AFU_123">|</I>
1411 <B>function</B> Baudrate <B>return</B> Natural;
1412 <I>-- AKA: <A HREF="curs_termattrs.3x.html">baudrate()</A></I>
1414 <I>-- <A NAME="AFU_124">|</I>
1415 <B>function</B> Erase_Character <B>return</B> Character;
1416 <I>-- AKA: <A HREF="curs_termattrs.3x.html">erasechar()</A></I>
1418 <I>-- <A NAME="AFU_125">|</I>
1419 <B>function</B> Kill_Character <B>return</B> Character;
1420 <I>-- AKA: <A HREF="curs_termattrs.3x.html">killchar()</A></I>
1422 <I>-- <A NAME="AFU_126">|</I>
1423 <B>function</B> Has_Insert_Character <B>return</B> Boolean;
1424 <I>-- AKA: <A HREF="curs_termattrs.3x.html">has_ic()</A></I>
1426 <I>-- <A NAME="AFU_127">|</I>
1427 <B>function</B> Has_Insert_Line <B>return</B> Boolean;
1428 <I>-- AKA: <A HREF="curs_termattrs.3x.html">has_il()</A></I>
1430 <I>-- <A NAME="AFU_128">|</I>
1431 <B>function</B> Supported_Attributes <B>return</B> Character_Attribute_Set;
1432 <I>-- AKA: <A HREF="curs_termattrs.3x.html">termattrs()</A></I>
1434 <I>-- <A NAME="AFU_129">|</I>
1435 <B>procedure</B> Long_Name (Name : <B>out</B> String);
1436 <I>-- AKA: <A HREF="curs_termattrs.3x.html">longname()</A></I>
1438 <I>-- <A NAME="AFU_130">|</I>
1439 <B>procedure</B> Terminal_Name (Name : <B>out</B> String);
1440 <I>-- AKA: <A HREF="curs_termattrs.3x.html">termname()</A></I>
1442 <I>-- |=====================================================================</I>
1443 <I>-- | Man page <A HREF="curs_color.3x.html">curs_color.3x</A></I>
1444 <I>-- |=====================================================================</I>
1446 <I>-- <A NAME="AFU_131">|</I>
1447 <B>procedure</B> Start_Color;
1448 <I>-- AKA: <A HREF="curs_color.3x.html">start_clolor()</A></I>
1449 <B>pragma</B> Import (C, Start_Color, "start_color");
1451 <I>-- <A NAME="AFU_132">|</I>
1452 <B>procedure</B> Init_Pair (Pair : <B>in</B> Redefinable_Color_Pair;
1453 Fore : <B>in</B> Color_Number;
1454 Back : <B>in</B> Color_Number);
1455 <I>-- AKA: <A HREF="curs_color.3x.html">init_pair()</A></I>
1457 <I>-- <A NAME="AFU_133">|</I>
1458 <B>procedure</B> Pair_Content (Pair : <B>in</B> Color_Pair;
1459 Fore : <B>out</B> Color_Number;
1460 Back : <B>out</B> Color_Number);
1461 <I>-- AKA: <A HREF="curs_color.3x.html">pair_content()</A></I>
1463 <I>-- <A NAME="AFU_134">|</I>
1464 <B>function</B> Has_Colors <B>return</B> Boolean;
1465 <I>-- AKA: <A HREF="curs_color.3x.html">has_colors()</A></I>
1467 <I>-- <A NAME="AFU_135">|</I>
1468 <B>procedure</B> Init_Color (Color : <B>in</B> Color_Number;
1469 Red : <B>in</B> RGB_Value;
1470 Green : <B>in</B> RGB_Value;
1471 Blue : <B>in</B> RGB_Value);
1472 <I>-- AKA: <A HREF="curs_color.3x.html">init_color()</A></I>
1474 <I>-- <A NAME="AFU_136">|</I>
1475 <B>function</B> Can_Change_Color <B>return</B> Boolean;
1476 <I>-- AKA: <A HREF="curs_color.3x.html">can_change_color()</A></I>
1478 <I>-- <A NAME="AFU_137">|</I>
1479 <B>procedure</B> Color_Content (Color : <B>in</B> Color_Number;
1480 Red : <B>out</B> RGB_Value;
1481 Green : <B>out</B> RGB_Value;
1482 Blue : <B>out</B> RGB_Value);
1483 <I>-- AKA: <A HREF="curs_color.3x.html">color_content()</A></I>
1485 <I>-- |=====================================================================</I>
1486 <I>-- | Man page <A HREF="curs_kernel.3x.html">curs_kernel.3x</A></I>
1487 <I>-- |=====================================================================</I>
1489 <I>-- | Not implemented: getsyx, setsyx</I>
1491 type Curses_Mode <B>is</B> (Curses, Shell);
1493 <I>-- <A NAME="AFU_138">|</I>
1494 <B>procedure</B> Save_Curses_Mode (Mode : <B>in</B> Curses_Mode);
1495 <I>-- AKA: <A HREF="curs_kernel.3x.html">def_prog_mode()</A></I>
1496 <I>-- AKA: def_shell_mode()</I>
1498 <I>-- <A NAME="AFU_139">|</I>
1499 <B>procedure</B> Reset_Curses_Mode (Mode : <B>in</B> Curses_Mode);
1500 <I>-- AKA: <A HREF="curs_kernel.3x.html">reset_prog_mode()</A></I>
1501 <I>-- AKA: reset_shell_mode()</I>
1503 <I>-- <A NAME="AFU_140">|</I>
1504 <B>procedure</B> Save_Terminal_State;
1505 <I>-- AKA: <A HREF="curs_kernel.3x.html">savetty()</A></I>
1507 <I>-- <A NAME="AFU_141">|</I>
1508 <B>procedure</B> Reset_Terminal_State;
1509 <I>-- AKA: <A HREF="curs_kernel.3x.html">resetty();</A></I>
1511 type Stdscr_Init_Proc <B>is</B> <B>access</B>
1512 <B>function</B> (Win : Window;
1513 Columns : Column_Count) <B>return</B> Integer;
1514 <B>pragma</B> Convention (C, Stdscr_Init_Proc);
1515 <I>-- N.B.: the return value is actually ignored, but it seems to be</I>
1516 <I>-- a good practice to return 0 if you think all went fine</I>
1517 <I>-- and -1 otherwise.</I>
1519 <I>-- <A NAME="AFU_142">|</I>
1520 <B>procedure</B> Rip_Off_Lines (Lines : <B>in</B> Integer;
1521 Proc : <B>in</B> Stdscr_Init_Proc);
1522 <I>-- AKA: <A HREF="curs_kernel.3x.html">ripoffline()</A></I>
1523 <I>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</I>
1524 <I>-- ripoffline(), in which the Lines argument absolute value is the</I>
1525 <I>-- number of lines to be ripped of. The official ripoffline() only</I>
1526 <I>-- uses the sign of Lines to rip of a single line from bottom or top.</I>
1528 type Cursor_Visibility <B>is</B> (Invisible, Normal, Very_Visible);
1530 <I>-- <A NAME="AFU_143">|</I>
1531 <B>procedure</B> Set_Cursor_Visibility (Visibility : <B>in</B> <B>out</B> Cursor_Visibility);
1532 <I>-- AKA: <A HREF="curs_kernel.3x.html">curs_set()</A></I>
1534 <I>-- <A NAME="AFU_144">|</I>
1535 <B>procedure</B> Nap_Milli_Seconds (Ms : <B>in</B> Natural);
1536 <I>-- AKA: <A HREF="curs_kernel.3x.html">napms()</A></I>
1538 <I>-- |=====================================================================</I>
1539 <I>-- | Some usefull helpers.</I>
1540 <I>-- |=====================================================================</I>
1541 type Transform_Direction <B>is</B> (From_Screen, To_Screen);
1542 <B>procedure</B> Transform_Coordinates
1543 (W : <B>in</B> Window := Standard_Window;
1544 Line : <B>in</B> <B>out</B> Line_Position;
1545 Column : <B>in</B> <B>out</B> Column_Position;
1546 Dir : <B>in</B> Transform_Direction := From_Screen);
1547 <I>-- This procedure transforms screen coordinates into coordinates relative</I>
1548 <I>-- to the window and vice versa, depending on the Dir parmeter.</I>
1549 <I>-- Screen coordinates are the position informations on the physical device.</I>
1550 <I>-- An Curses_Exception will be raised if Line and Column are not in the</I>
1551 <I>-- Window or if you pass the Null_Window as argument.</I>
1554 type Window <B>is</B> <B>new</B> System.Address;
1555 Null_Window : <B>constant</B> Window := Window (System.Null_Address);
1557 Generation_Bit_Order : <B>constant</B> System.Bit_Order := System.Low_Order_First;
1558 <I>-- This constant may be different on your system.</I>
1560 <B>end</B> Terminal_Interface.Curses;
1565 This is BETA software. The interface is subject to change without notice.
1567 This is BETA software. The interface is subject to change without notice.<P>
1568 <!-- Do NOT delete my name or the tool name from below; -->
1569 <!-- giving me credit is a condition of use of ada2html -->
1570 <P><I>This hypertext format was generated by <A HREF="http://www.adahome.com/Tutorials/Lovelace/dwheeler.htm">David A. Wheeler</A>'s <A HREF="http://www.adahome.com/Resources/Tools/ada2html/ada2html.htm">ada2html</A></I>