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>-- Version 00.92 --</I>
19 <I>-- The ncurses Ada95 binding is copyrighted 1996 by --</I>
20 <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>
22 <I>-- Permission is hereby granted to reproduce and distribute this --</I>
23 <I>-- binding by any means and for any fee, whether alone or as part --</I>
24 <I>-- of a larger distribution, in source or in binary form, PROVIDED --</I>
25 <I>-- this notice is included with any such distribution, and is not --</I>
26 <I>-- removed from any of its header files. Mention of ncurses and the --</I>
27 <I>-- author of this binding in any applications linked with it is --</I>
28 <I>-- highly appreciated. --</I>
30 <I>-- This binding comes AS IS with no warranty, implied or expressed. --</I>
31 <I>------------------------------------------------------------------------------</I>
32 <I>-- Version Control:</I>
33 <I>-- @Revision: 1.7 @</I>
34 <I>------------------------------------------------------------------------------</I>
35 <I>-- curses binding, generated at Sun Feb 2 17:21:42 1997</I>
36 <I>-- This module is generated. Please don't change it manually!</I>
37 <I>-- Run the generator instead.</I>
40 <B>with</B> Interfaces.C; <I>-- We need this for some assertions.</I>
42 <B>package</B> Terminal_Interface.Curses <B>is</B>
44 <B>pragma</B> Linker_Options ("-lncurses");
46 type Window <B>is</B> <B>private</B>;
47 Null_Window : <B>constant</B> Window;
49 type Line_Position <B>is</B> <B>new</B> Natural; <I>-- line coordinate</I>
50 type Column_Position <B>is</B> <B>new</B> Natural; <I>-- column coordinate</I>
52 <B>subtype</B> Line_Count <B>is</B> Line_Position <B>range</B> 1 .. Line_Position'Last;
53 <I>-- Type to count lines. We do not allow null windows, so must be positive</I>
54 <B>subtype</B> Column_Count <B>is</B> Column_Position <B>range</B> 1 .. Column_Position'Last;
55 <I>-- Type to count columns. We do not allow null windows, so must be positive</I>
57 type Key_Code <B>is</B> <B>new</B> Natural;
58 <I>-- That is anything including real characters, special keys and logical</I>
59 <I>-- request codes.</I>
61 <B>subtype</B> Real_Key_Code <B>is</B> Key_Code <B>range</B> 0 .. 8#777#;
62 <I>-- This are the codes that potentially represent a real keystroke.</I>
63 <I>-- Not all codes may be possible on a specific terminal. To check the</I>
64 <I>-- availability of a special key, the Has_Key function is provided.</I>
66 <B>subtype</B> Special_Key_Code <B>is</B> Real_Key_Code
67 <B>range</B> 8#400# .. Real_Key_Code'Last;
68 <I>-- Type for a function- or special key number</I>
70 <B>subtype</B> Normal_Key_Code <B>is</B> Real_Key_Code <B>range</B>
71 Character'Pos (Character'First) .. Character'Pos (Character'Last);
72 <I>-- This are the codes for regular (incl. non-graphical) characters.</I>
74 <I>-- Constants for function- and special keys</I>
76 Key_None : <B>constant</B> Special_Key_Code := 8#400#;
77 Key_Code_Yes : <B>constant</B> Special_Key_Code := 8#400#;
78 Key_Min : <B>constant</B> Special_Key_Code := 8#401#;
79 Key_Break : <B>constant</B> Special_Key_Code := 8#401#;
80 Key_Cursor_Down : <B>constant</B> Special_Key_Code := 8#402#;
81 Key_Cursor_Up : <B>constant</B> Special_Key_Code := 8#403#;
82 Key_Cursor_Left : <B>constant</B> Special_Key_Code := 8#404#;
83 Key_Cursor_Right : <B>constant</B> Special_Key_Code := 8#405#;
84 Key_Home : <B>constant</B> Special_Key_Code := 8#406#;
85 Key_Backspace : <B>constant</B> Special_Key_Code := 8#407#;
86 Key_F0 : <B>constant</B> Special_Key_Code := 8#410#;
87 Key_F1 : <B>constant</B> Special_Key_Code := 8#411#;
88 Key_F2 : <B>constant</B> Special_Key_Code := 8#412#;
89 Key_F3 : <B>constant</B> Special_Key_Code := 8#413#;
90 Key_F4 : <B>constant</B> Special_Key_Code := 8#414#;
91 Key_F5 : <B>constant</B> Special_Key_Code := 8#415#;
92 Key_F6 : <B>constant</B> Special_Key_Code := 8#416#;
93 Key_F7 : <B>constant</B> Special_Key_Code := 8#417#;
94 Key_F8 : <B>constant</B> Special_Key_Code := 8#420#;
95 Key_F9 : <B>constant</B> Special_Key_Code := 8#421#;
96 Key_F10 : <B>constant</B> Special_Key_Code := 8#422#;
97 Key_F11 : <B>constant</B> Special_Key_Code := 8#423#;
98 Key_F12 : <B>constant</B> Special_Key_Code := 8#424#;
99 Key_F13 : <B>constant</B> Special_Key_Code := 8#425#;
100 Key_F14 : <B>constant</B> Special_Key_Code := 8#426#;
101 Key_F15 : <B>constant</B> Special_Key_Code := 8#427#;
102 Key_F16 : <B>constant</B> Special_Key_Code := 8#430#;
103 Key_F17 : <B>constant</B> Special_Key_Code := 8#431#;
104 Key_F18 : <B>constant</B> Special_Key_Code := 8#432#;
105 Key_F19 : <B>constant</B> Special_Key_Code := 8#433#;
106 Key_F20 : <B>constant</B> Special_Key_Code := 8#434#;
107 Key_F21 : <B>constant</B> Special_Key_Code := 8#435#;
108 Key_F22 : <B>constant</B> Special_Key_Code := 8#436#;
109 Key_F23 : <B>constant</B> Special_Key_Code := 8#437#;
110 Key_F24 : <B>constant</B> Special_Key_Code := 8#440#;
111 Key_Delete_Line : <B>constant</B> Special_Key_Code := 8#510#;
112 Key_Insert_Line : <B>constant</B> Special_Key_Code := 8#511#;
113 Key_Delete_Char : <B>constant</B> Special_Key_Code := 8#512#;
114 Key_Insert_Char : <B>constant</B> Special_Key_Code := 8#513#;
115 Key_Exit_Insert_Mode : <B>constant</B> Special_Key_Code := 8#514#;
116 Key_Clear_Screen : <B>constant</B> Special_Key_Code := 8#515#;
117 Key_Clear_End_Of_Screen : <B>constant</B> Special_Key_Code := 8#516#;
118 Key_Clear_End_Of_Line : <B>constant</B> Special_Key_Code := 8#517#;
119 Key_Scroll_1_Forward : <B>constant</B> Special_Key_Code := 8#520#;
120 Key_Scroll_1_Backward : <B>constant</B> Special_Key_Code := 8#521#;
121 Key_Next_Page : <B>constant</B> Special_Key_Code := 8#522#;
122 Key_Previous_Page : <B>constant</B> Special_Key_Code := 8#523#;
123 Key_Set_Tab : <B>constant</B> Special_Key_Code := 8#524#;
124 Key_Clear_Tab : <B>constant</B> Special_Key_Code := 8#525#;
125 Key_Clear_All_Tabs : <B>constant</B> Special_Key_Code := 8#526#;
126 Key_Enter_Or_Send : <B>constant</B> Special_Key_Code := 8#527#;
127 Key_Soft_Reset : <B>constant</B> Special_Key_Code := 8#530#;
128 Key_Reset : <B>constant</B> Special_Key_Code := 8#531#;
129 Key_Print : <B>constant</B> Special_Key_Code := 8#532#;
130 Key_Bottom : <B>constant</B> Special_Key_Code := 8#533#;
131 Key_Upper_Left_Of_Keypad : <B>constant</B> Special_Key_Code := 8#534#;
132 Key_Upper_Right_Of_Keypad : <B>constant</B> Special_Key_Code := 8#535#;
133 Key_Center_Of_Keypad : <B>constant</B> Special_Key_Code := 8#536#;
134 Key_Lower_Left_Of_Keypad : <B>constant</B> Special_Key_Code := 8#537#;
135 Key_Lower_Right_Of_Keypad : <B>constant</B> Special_Key_Code := 8#540#;
136 Key_Back_Tab : <B>constant</B> Special_Key_Code := 8#541#;
137 Key_Beginning : <B>constant</B> Special_Key_Code := 8#542#;
138 Key_Cancel : <B>constant</B> Special_Key_Code := 8#543#;
139 Key_Close : <B>constant</B> Special_Key_Code := 8#544#;
140 Key_Command : <B>constant</B> Special_Key_Code := 8#545#;
141 Key_Copy : <B>constant</B> Special_Key_Code := 8#546#;
142 Key_Create : <B>constant</B> Special_Key_Code := 8#547#;
143 Key_End : <B>constant</B> Special_Key_Code := 8#550#;
144 Key_Exit : <B>constant</B> Special_Key_Code := 8#551#;
145 Key_Find : <B>constant</B> Special_Key_Code := 8#552#;
146 Key_Help : <B>constant</B> Special_Key_Code := 8#553#;
147 Key_Mark : <B>constant</B> Special_Key_Code := 8#554#;
148 Key_Message : <B>constant</B> Special_Key_Code := 8#555#;
149 Key_Move : <B>constant</B> Special_Key_Code := 8#556#;
150 Key_Next : <B>constant</B> Special_Key_Code := 8#557#;
151 Key_Open : <B>constant</B> Special_Key_Code := 8#560#;
152 Key_Options : <B>constant</B> Special_Key_Code := 8#561#;
153 Key_Previous : <B>constant</B> Special_Key_Code := 8#562#;
154 Key_Redo : <B>constant</B> Special_Key_Code := 8#563#;
155 Key_Reference : <B>constant</B> Special_Key_Code := 8#564#;
156 Key_Refresh : <B>constant</B> Special_Key_Code := 8#565#;
157 Key_Replace : <B>constant</B> Special_Key_Code := 8#566#;
158 Key_Restart : <B>constant</B> Special_Key_Code := 8#567#;
159 Key_Resume : <B>constant</B> Special_Key_Code := 8#570#;
160 Key_Save : <B>constant</B> Special_Key_Code := 8#571#;
161 Key_Shift_Begin : <B>constant</B> Special_Key_Code := 8#572#;
162 Key_Shift_Cancel : <B>constant</B> Special_Key_Code := 8#573#;
163 Key_Shift_Command : <B>constant</B> Special_Key_Code := 8#574#;
164 Key_Shift_Copy : <B>constant</B> Special_Key_Code := 8#575#;
165 Key_Shift_Create : <B>constant</B> Special_Key_Code := 8#576#;
166 Key_Shift_Delete_Char : <B>constant</B> Special_Key_Code := 8#577#;
167 Key_Shift_Delete_Line : <B>constant</B> Special_Key_Code := 8#600#;
168 Key_Select : <B>constant</B> Special_Key_Code := 8#601#;
169 Key_Shift_End : <B>constant</B> Special_Key_Code := 8#602#;
170 Key_Shift_Clear_End_Of_Line : <B>constant</B> Special_Key_Code := 8#603#;
171 Key_Shift_Exit : <B>constant</B> Special_Key_Code := 8#604#;
172 Key_Shift_Find : <B>constant</B> Special_Key_Code := 8#605#;
173 Key_Shift_Help : <B>constant</B> Special_Key_Code := 8#606#;
174 Key_Shift_Home : <B>constant</B> Special_Key_Code := 8#607#;
175 Key_Shift_Insert_Char : <B>constant</B> Special_Key_Code := 8#610#;
176 Key_Shift_Cursor_Left : <B>constant</B> Special_Key_Code := 8#611#;
177 Key_Shift_Message : <B>constant</B> Special_Key_Code := 8#612#;
178 Key_Shift_Move : <B>constant</B> Special_Key_Code := 8#613#;
179 Key_Shift_Next_Page : <B>constant</B> Special_Key_Code := 8#614#;
180 Key_Shift_Options : <B>constant</B> Special_Key_Code := 8#615#;
181 Key_Shift_Previous_Page : <B>constant</B> Special_Key_Code := 8#616#;
182 Key_Shift_Print : <B>constant</B> Special_Key_Code := 8#617#;
183 Key_Shift_Redo : <B>constant</B> Special_Key_Code := 8#620#;
184 Key_Shift_Replace : <B>constant</B> Special_Key_Code := 8#621#;
185 Key_Shift_Cursor_Right : <B>constant</B> Special_Key_Code := 8#622#;
186 Key_Shift_Resume : <B>constant</B> Special_Key_Code := 8#623#;
187 Key_Shift_Save : <B>constant</B> Special_Key_Code := 8#624#;
188 Key_Shift_Suspend : <B>constant</B> Special_Key_Code := 8#625#;
189 Key_Shift_Undo : <B>constant</B> Special_Key_Code := 8#626#;
190 Key_Suspend : <B>constant</B> Special_Key_Code := 8#627#;
191 Key_Undo : <B>constant</B> Special_Key_Code := 8#630#;
192 Key_Mouse : <B>constant</B> Special_Key_Code := 8#631#;
194 Key_Max : <B>constant</B> Special_Key_Code
195 := Special_Key_Code'Last;
197 <B>subtype</B> User_Key_Code <B>is</B> Key_Code
198 <B>range</B> (Key_Max + 129) .. Key_Code'Last;
199 <I>-- This is reserved for user defined key codes. The range between Key_Max</I>
200 <I>-- and the first user code is reserved for subsystems like menu and forms.</I>
202 <I>-- For those who like to use the original key names we produce them were</I>
203 <I>-- they differ from the original. Please note that they may differ in</I>
204 <I>-- lower/upper case.</I>
205 KEY_DOWN : Special_Key_Code <B>renames</B> Key_Cursor_Down;
206 KEY_UP : Special_Key_Code <B>renames</B> Key_Cursor_Up;
207 KEY_LEFT : Special_Key_Code <B>renames</B> Key_Cursor_Left;
208 KEY_RIGHT : Special_Key_Code <B>renames</B> Key_Cursor_Right;
209 KEY_DL : Special_Key_Code <B>renames</B> Key_Delete_Line;
210 KEY_IL : Special_Key_Code <B>renames</B> Key_Insert_Line;
211 KEY_DC : Special_Key_Code <B>renames</B> Key_Delete_Char;
212 KEY_IC : Special_Key_Code <B>renames</B> Key_Insert_Char;
213 KEY_EIC : Special_Key_Code <B>renames</B> Key_Exit_Insert_Mode;
214 KEY_CLEAR : Special_Key_Code <B>renames</B> Key_Clear_Screen;
215 KEY_EOS : Special_Key_Code <B>renames</B> Key_Clear_End_Of_Screen;
216 KEY_EOL : Special_Key_Code <B>renames</B> Key_Clear_End_Of_Line;
217 KEY_SF : Special_Key_Code <B>renames</B> Key_Scroll_1_Forward;
218 KEY_SR : Special_Key_Code <B>renames</B> Key_Scroll_1_Backward;
219 KEY_NPAGE : Special_Key_Code <B>renames</B> Key_Next_Page;
220 KEY_PPAGE : Special_Key_Code <B>renames</B> Key_Previous_Page;
221 KEY_STAB : Special_Key_Code <B>renames</B> Key_Set_Tab;
222 KEY_CTAB : Special_Key_Code <B>renames</B> Key_Clear_Tab;
223 KEY_CATAB : Special_Key_Code <B>renames</B> Key_Clear_All_Tabs;
224 KEY_ENTER : Special_Key_Code <B>renames</B> Key_Enter_Or_Send;
225 KEY_SRESET : Special_Key_Code <B>renames</B> Key_Soft_Reset;
226 KEY_LL : Special_Key_Code <B>renames</B> Key_Bottom;
227 KEY_A1 : Special_Key_Code <B>renames</B> Key_Upper_Left_Of_Keypad;
228 KEY_A3 : Special_Key_Code <B>renames</B> Key_Upper_Right_Of_Keypad;
229 KEY_B2 : Special_Key_Code <B>renames</B> Key_Center_Of_Keypad;
230 KEY_C1 : Special_Key_Code <B>renames</B> Key_Lower_Left_Of_Keypad;
231 KEY_C3 : Special_Key_Code <B>renames</B> Key_Lower_Right_Of_Keypad;
232 KEY_BTAB : Special_Key_Code <B>renames</B> Key_Back_Tab;
233 KEY_BEG : Special_Key_Code <B>renames</B> Key_Beginning;
234 KEY_SBEG : Special_Key_Code <B>renames</B> Key_Shift_Begin;
235 KEY_SCANCEL : Special_Key_Code <B>renames</B> Key_Shift_Cancel;
236 KEY_SCOMMAND : Special_Key_Code <B>renames</B> Key_Shift_Command;
237 KEY_SCOPY : Special_Key_Code <B>renames</B> Key_Shift_Copy;
238 KEY_SCREATE : Special_Key_Code <B>renames</B> Key_Shift_Create;
239 KEY_SDC : Special_Key_Code <B>renames</B> Key_Shift_Delete_Char;
240 KEY_SDL : Special_Key_Code <B>renames</B> Key_Shift_Delete_Line;
241 KEY_SEND : Special_Key_Code <B>renames</B> Key_Shift_End;
242 KEY_SEOL : Special_Key_Code <B>renames</B> Key_Shift_Clear_End_Of_Line;
243 KEY_SEXIT : Special_Key_Code <B>renames</B> Key_Shift_Exit;
244 KEY_SFIND : Special_Key_Code <B>renames</B> Key_Shift_Find;
245 KEY_SHELP : Special_Key_Code <B>renames</B> Key_Shift_Help;
246 KEY_SHOME : Special_Key_Code <B>renames</B> Key_Shift_Home;
247 KEY_SIC : Special_Key_Code <B>renames</B> Key_Shift_Insert_Char;
248 KEY_SLEFT : Special_Key_Code <B>renames</B> Key_Shift_Cursor_Left;
249 KEY_SMESSAGE : Special_Key_Code <B>renames</B> Key_Shift_Message;
250 KEY_SMOVE : Special_Key_Code <B>renames</B> Key_Shift_Move;
251 KEY_SNEXT : Special_Key_Code <B>renames</B> Key_Shift_Next_Page;
252 KEY_SOPTIONS : Special_Key_Code <B>renames</B> Key_Shift_Options;
253 KEY_SPREVIOUS : Special_Key_Code <B>renames</B> Key_Shift_Previous_Page;
254 KEY_SPRINT : Special_Key_Code <B>renames</B> Key_Shift_Print;
255 KEY_SREDO : Special_Key_Code <B>renames</B> Key_Shift_Redo;
256 KEY_SREPLACE : Special_Key_Code <B>renames</B> Key_Shift_Replace;
257 KEY_SRIGHT : Special_Key_Code <B>renames</B> Key_Shift_Cursor_Right;
258 KEY_SRSUME : Special_Key_Code <B>renames</B> Key_Shift_Resume;
259 KEY_SSAVE : Special_Key_Code <B>renames</B> Key_Shift_Save;
260 KEY_SSUSPEND : Special_Key_Code <B>renames</B> Key_Shift_Suspend;
261 KEY_SUNDO : Special_Key_Code <B>renames</B> Key_Shift_Undo;
264 <I>------------------------------------------------------------------------------</I>
266 type Color_Number <B>is</B> <B>range</B> 0 .. Integer (Interfaces.C.short'Last);
267 <B>for</B> Color_Number'Size <B>use</B> Interfaces.C.short'Size;
268 <I>-- (n)curses uses a short for the color index</I>
269 <I>-- The model is, that a Color_Number is an index into an array of</I>
270 <I>-- (potentially) definable colors. Some of those indices are</I>
271 <I>-- predefined (see below), although they may not really exist.</I>
273 Black : <B>constant</B> Color_Number := 0;
274 Red : <B>constant</B> Color_Number := 1;
275 Green : <B>constant</B> Color_Number := 2;
276 Yellow : <B>constant</B> Color_Number := 3;
277 Blue : <B>constant</B> Color_Number := 4;
278 Magenta : <B>constant</B> Color_Number := 5;
279 Cyan : <B>constant</B> Color_Number := 6;
280 White : <B>constant</B> Color_Number := 7;
282 type RGB_Value <B>is</B> <B>range</B> 0 .. Integer (Interfaces.C.Short'Last);
283 <B>for</B> RGB_Value'Size <B>use</B> Interfaces.C.short'Size;
284 <I>-- Some system may allow to redefine a color by setting RGB values.</I>
286 type Color_Pair <B>is</B> <B>range</B> 0 .. 255;
287 <B>for</B> Color_Pair'Size <B>use</B> 8;
288 <B>subtype</B> Redefinable_Color_Pair <B>is</B> Color_Pair <B>range</B> 1 .. 255;
289 <I>-- (n)curses reserves 1 Byte for the color-pair number. Color Pair 0</I>
290 <I>-- is fixed (Black & White). A color pair is simply a combination of</I>
291 <I>-- two colors described by Color_Numbers, one for the foreground and</I>
292 <I>-- the other for the background</I>
294 type Character_Attribute_Set <B>is</B>
297 Under_Line : Boolean;
298 Reverse_Video : Boolean;
300 Dim_Character : Boolean;
301 Bold_Character : Boolean;
302 Alternate_Character_Set : Boolean;
303 Invisible_Character : Boolean;
304 Protected_Character : Boolean;
305 Horizontal : Boolean;
312 <B>end</B> <B>record</B>;
313 <B>pragma</B> Pack (Character_Attribute_Set);
314 <B>pragma</B> Convention (C, Character_Attribute_Set);
316 <B>for</B> Character_Attribute_Set <B>use</B>
318 Stand_Out <B>at</B> 0 <B>range</B> 0 .. 0;
319 Under_Line <B>at</B> 0 <B>range</B> 1 .. 1;
320 Reverse_Video <B>at</B> 0 <B>range</B> 2 .. 2;
321 Blink <B>at</B> 0 <B>range</B> 3 .. 3;
322 Dim_Character <B>at</B> 0 <B>range</B> 4 .. 4;
323 Bold_Character <B>at</B> 0 <B>range</B> 5 .. 5;
324 Alternate_Character_Set <B>at</B> 0 <B>range</B> 6 .. 6;
325 Invisible_Character <B>at</B> 0 <B>range</B> 7 .. 7;
326 Protected_Character <B>at</B> 0 <B>range</B> 8 .. 8;
327 Horizontal <B>at</B> 0 <B>range</B> 9 .. 9;
328 Left <B>at</B> 0 <B>range</B> 10 .. 10;
329 Low <B>at</B> 0 <B>range</B> 11 .. 11;
330 Right <B>at</B> 0 <B>range</B> 12 .. 12;
331 Top <B>at</B> 0 <B>range</B> 13 .. 13;
332 Vertical <B>at</B> 0 <B>range</B> 14 .. 14;
333 Reserved <B>at</B> 0 <B>range</B> 15 .. 15;
334 <B>end</B> <B>record</B>;
335 <B>for</B> Character_Attribute_Set'Size <B>use</B> Interfaces.C.int'Size / 2;
336 <I>-- Please note: this rep. clause is generated and may be</I>
337 <I>-- different on your system.</I>
338 <I>-- (n)curses uses half of an integer for attributes.</I>
340 Normal_Video : <B>constant</B> Character_Attribute_Set := (<B>others</B> => False);
342 type Attributed_Character <B>is</B>
344 Attr : Character_Attribute_Set := Normal_Video;
345 Color : Color_Pair := 0;
346 Ch : Character := ' ';
347 <B>end</B> <B>record</B>;
348 <B>pragma</B> Convention (C, Attributed_Character);
349 <I>-- This is the counterpart for the chtype in C.</I>
351 <B>for</B> Attributed_Character <B>use</B>
353 Ch <B>at</B> 0 <B>range</B> 0 .. 7;
354 Color <B>at</B> 0 <B>range</B> 8 .. 15;
355 Attr <B>at</B> 0 <B>range</B> 16 .. 31;
356 <B>end</B> <B>record</B>;
357 <B>for</B> Attributed_Character'Size <B>use</B> Interfaces.C.int'Size;
358 <I>-- Please note: this rep. clause is generated and may be</I>
359 <I>-- different on your system.</I>
361 Default_Character : <B>constant</B> Attributed_Character
362 := (Ch => Character'First,
363 Color => Color_Pair'First,
364 Attr => Normal_Video);
366 type Attributed_String <B>is</B> <B>array</B> (Positive <B>range</B> <>) <B>of</B> Attributed_Character;
367 <B>pragma</B> Pack (Attributed_String);
368 <I>-- In this binding we allow strings of attributed characters.</I>
370 <I>------------------</I>
371 <I>-- Exceptions --</I>
372 <I>------------------</I>
373 Curses_Exception : <B>exception</B>;
375 <I>-- Those exceptions are raised by the ETI (Extended Terminal Interface)</I>
376 <I>-- subpackets for Menu and Forms handling.</I>
378 Eti_System_Error : <B>exception</B>;
379 Eti_Bad_Argument : <B>exception</B>;
380 Eti_Posted : <B>exception</B>;
381 Eti_Connected : <B>exception</B>;
382 Eti_Bad_State : <B>exception</B>;
383 Eti_No_Room : <B>exception</B>;
384 Eti_Not_Posted : <B>exception</B>;
385 Eti_Unknown_Command : <B>exception</B>;
386 Eti_No_Match : <B>exception</B>;
387 Eti_Not_Selectable : <B>exception</B>;
388 Eti_Not_Connected : <B>exception</B>;
389 Eti_Request_Denied : <B>exception</B>;
390 Eti_Invalid_Field : <B>exception</B>;
391 Eti_Current : <B>exception</B>;
393 <I>--------------------------------------------------------------------------</I>
394 <I>-- External C variables</I>
395 <I>-- Conceptually even in C this are kind of constants, but they are</I>
396 <I>-- initialized and sometimes changed by the library routines at runtime</I>
397 <I>-- depending on the type of terminal. I believe the best way to model</I>
398 <I>-- this is to use functions.</I>
399 <I>--------------------------------------------------------------------------</I>
401 <B>function</B> Lines <B>return</B> Line_Count;
402 <B>pragma</B> Inline (Lines);
404 <B>function</B> Columns <B>return</B> Column_Count;
405 <B>pragma</B> Inline (Columns);
407 <B>function</B> Tab_Size <B>return</B> Natural;
408 <B>pragma</B> Inline (Tab_Size);
410 <B>function</B> Number_Of_Colors <B>return</B> Natural;
411 <B>pragma</B> Inline (Number_Of_Colors);
413 <B>function</B> Number_Of_Color_Pairs <B>return</B> Natural;
414 <B>pragma</B> Inline (Number_Of_Color_Pairs);
416 ACS_Map : <B>array</B> (Character'Val (0) .. Character'Val (127)) <B>of</B>
417 Attributed_Character;
418 <B>pragma</B> Import (C, ACS_Map, "acs_map");
421 <I>-- Constants for several symbols from the Alternate Character Set</I>
422 <I>-- You must use this constants as indices into the ACS_Map array</I>
423 <I>-- to get the corresponding attributed character at runtime.</I>
425 ACS_Upper_Left_Corner : <B>constant</B> Character := 'l';
426 ACS_Lower_Left_Corner : <B>constant</B> Character := 'm';
427 ACS_Upper_Right_Corner : <B>constant</B> Character := 'k';
428 ACS_Lower_Right_Corner : <B>constant</B> Character := 'j';
429 ACS_Left_Tee : <B>constant</B> Character := 't';
430 ACS_Right_Tee : <B>constant</B> Character := 'u';
431 ACS_Bottom_Tee : <B>constant</B> Character := 'v';
432 ACS_Top_Tee : <B>constant</B> Character := 'w';
433 ACS_Horizontal_Line : <B>constant</B> Character := 'q';
434 ACS_Vertical_Line : <B>constant</B> Character := 'x';
435 ACS_Plus_Symbol : <B>constant</B> Character := 'n';
436 ACS_Scan_Line_1 : <B>constant</B> Character := 'o';
437 ACS_Scan_Line_9 : <B>constant</B> Character := 's';
438 ACS_Diamond : <B>constant</B> Character := Character'Val (96);
439 ACS_Checker_Board : <B>constant</B> Character := 'a';
440 ACS_Degree : <B>constant</B> Character := 'f';
441 ACS_Plus_Minus : <B>constant</B> Character := 'g';
442 ACS_Bullet : <B>constant</B> Character := '~';
443 ACS_Left_Arrow : <B>constant</B> Character := ',';
444 ACS_Right_Arrow : <B>constant</B> Character := '+';
445 ACS_Down_Arrow : <B>constant</B> Character := '.';
446 ACS_Up_Arrow : <B>constant</B> Character := '-';
447 ACS_Board_Of_Squares : <B>constant</B> Character := 'h';
448 ACS_Lantern : <B>constant</B> Character := 'I';
449 ACS_Solid_Block : <B>constant</B> Character := '0';
450 ACS_Scan_Line_3 : <B>constant</B> Character := 'p';
451 ACS_Scan_Line_7 : <B>constant</B> Character := 'r';
452 ACS_Less_Or_Equal : <B>constant</B> Character := 'y';
453 ACS_Greater_Or_Equal : <B>constant</B> Character := 'z';
454 ACS_PI : <B>constant</B> Character := '{';
455 ACS_Not_Equal : <B>constant</B> Character := '|';
456 ACS_Sterling : <B>constant</B> Character := '}';
459 <I>-- |=====================================================================</I>
460 <I>-- | Man page <A HREF="curs_initscr.3x.html">curs_initscr.3x</A></I>
461 <I>-- |=====================================================================</I>
462 <I>-- | Not implemented: newterm, set_term, delscreen</I>
464 <I>-- <A NAME="AFU_1">|</I>
465 <B>function</B> Standard_Window <B>return</B> Window;
466 <I>-- AKA: <A HREF="curs_initscr.3x.html">stdscr</A></I>
467 <B>pragma</B> Inline (Standard_Window);
469 <I>-- <A NAME="AFU_2">|</I>
470 <B>procedure</B> Init_Screen;
472 <I>-- <A NAME="AFU_3">|</I>
473 <B>procedure</B> Init_Windows <B>renames</B> Init_Screen;
474 <I>-- AKA: <A HREF="curs_initscr.3x.html">initscr()</A></I>
476 <I>-- <A NAME="AFU_4">|</I>
477 <B>procedure</B> End_Windows;
478 <I>-- AKA: <A HREF="curs_initscr.3x.html">endwin()</A></I>
479 <B>procedure</B> End_Screen <B>renames</B> End_Windows;
481 <I>-- <A NAME="AFU_5">|</I>
482 <B>function</B> Is_End_Window <B>return</B> Boolean;
483 <I>-- AKA: <A HREF="curs_initscr.3x.html">isendwin()</A></I>
485 <I>-- |=====================================================================</I>
486 <I>-- | Man page <A HREF="curs_move.3x.html">curs_move.3x</A></I>
487 <I>-- |=====================================================================</I>
489 <I>-- <A NAME="AFU_6">|</I>
490 <B>procedure</B> Move_Cursor (Win : <B>in</B> Window := Standard_Window;
491 Line : <B>in</B> Line_Position;
492 Column : <B>in</B> Column_Position);
493 <I>-- AKA: <A HREF="curs_move.3x.html">wmove()</A></I>
495 <I>-- |=====================================================================</I>
496 <I>-- | Man page <A HREF="curs_addch.3x.html">curs_addch.3x</A></I>
497 <I>-- |=====================================================================</I>
499 <I>-- <A NAME="AFU_7">|</I>
500 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
501 Ch : <B>in</B> Attributed_Character);
502 <I>-- AKA: <A HREF="curs_addch.3x.html">waddch()</A></I>
504 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
505 Ch : <B>in</B> Character);
506 <I>-- Add a single character at the current logical cursor position to</I>
507 <I>-- the window. Use the current windows attributes.</I>
509 <I>-- <A NAME="AFU_8">|</I>
511 (Win : <B>in</B> Window := Standard_Window;
512 Line : <B>in</B> Line_Position;
513 Column : <B>in</B> Column_Position;
514 Ch : <B>in</B> Attributed_Character);
515 <I>-- AKA: <A HREF="curs_addch.3x.html">mvwaddch()</A></I>
518 (Win : <B>in</B> Window := Standard_Window;
519 Line : <B>in</B> Line_Position;
520 Column : <B>in</B> Column_Position;
521 Ch : <B>in</B> Character);
522 <I>-- Move to the position and add a single character into the window</I>
524 <I>-- <A NAME="AFU_9">|</I>
525 <B>procedure</B> Add_With_Immediate_Echo
526 (Win : <B>in</B> Window := Standard_Window;
527 Ch : <B>in</B> Attributed_Character);
528 <I>-- AKA: <A HREF="curs_addch.3x.html">wechochar()</A></I>
530 <B>procedure</B> Add_With_Immediate_Echo
531 (Win : <B>in</B> Window := Standard_Window;
532 Ch : <B>in</B> Character);
533 <I>-- Add a character and do an immediate resfresh of the screen.</I>
535 <I>-- |=====================================================================</I>
536 <I>-- | Man page <A HREF="curs_window.3x.html">curs_window.3x</A></I>
537 <I>-- |=====================================================================</I>
539 <I>-- <A NAME="AFU_10">|</I>
540 <B>function</B> Create
541 (Number_Of_Lines : Line_Count;
542 Number_Of_Columns : Column_Count;
543 First_Line_Position : Line_Position;
544 First_Column_Position : Column_Position) <B>return</B> Window;
545 <I>-- AKA: <A HREF="curs_window.3x.html">newwin()</A></I>
547 <B>function</B> New_Window
548 (Number_Of_Lines : Line_Count;
549 Number_Of_Columns : Column_Count;
550 First_Line_Position : Line_Position;
551 First_Column_Position : Column_Position) <B>return</B> Window
552 <B>renames</B> Create;
554 <I>-- <A NAME="AFU_11">|</I>
555 <B>procedure</B> Delete (Win : <B>in</B> <B>out</B> Window);
556 <I>-- AKA: <A HREF="curs_window.3x.html">delwin()</A></I>
557 <I>-- Reset Win to Null_Window</I>
559 <I>-- <A NAME="AFU_12">|</I>
560 <B>function</B> Sub_Window
561 (Win : Window := Standard_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 <I>-- AKA: <A HREF="curs_window.3x.html">subwin()</A></I>
568 <I>-- <A NAME="AFU_13">|</I>
569 <B>function</B> Derived_Window
570 (Win : Window := Standard_Window;
571 Number_Of_Lines : Line_Count;
572 Number_Of_Columns : Column_Count;
573 First_Line_Position : Line_Position;
574 First_Column_Position : Column_Position) <B>return</B> Window;
575 <I>-- AKA: <A HREF="curs_window.3x.html">derwin()</A></I>
577 <I>-- <A NAME="AFU_14">|</I>
578 <B>function</B> Duplicate (Win : Window) <B>return</B> Window;
579 <I>-- AKA: <A HREF="curs_window.3x.html">dupwin()</A></I>
581 <I>-- <A NAME="AFU_15">|</I>
582 <B>procedure</B> Move_Window (Win : <B>in</B> Window;
583 Line : <B>in</B> Line_Position;
584 Column : <B>in</B> Column_Position);
585 <I>-- AKA: <A HREF="curs_window.3x.html">mvwin()</A></I>
587 <I>-- <A NAME="AFU_16">|</I>
588 <B>procedure</B> Move_Derived_Window (Win : <B>in</B> Window;
589 Line : <B>in</B> Line_Position;
590 Column : <B>in</B> Column_Position);
591 <I>-- AKA: <A HREF="curs_window.3x.html">mvderwin()</A></I>
593 <I>-- <A NAME="AFU_17">|</I>
594 <B>procedure</B> Synchronize_Upwards (Win : <B>in</B> Window);
595 <I>-- AKA: <A HREF="curs_window.3x.html">wsyncup()</A></I>
596 <B>pragma</B> Import (C, Synchronize_Upwards, "wsyncup");
598 <I>-- <A NAME="AFU_18">|</I>
599 <B>procedure</B> Synchronize_Downwards (Win : <B>in</B> Window);
600 <I>-- AKA: <A HREF="curs_window.3x.html">wsyncdown()</A></I>
601 <B>pragma</B> Import (C, Synchronize_Downwards, "wsyncdown");
603 <I>-- <A NAME="AFU_19">|</I>
604 <B>procedure</B> Set_Synch_Mode (Win : <B>in</B> Window := Standard_Window;
605 Mode : <B>in</B> Boolean := False);
606 <I>-- AKA: <A HREF="curs_window.3x.html">syncok()</A></I>
608 <I>-- |=====================================================================</I>
609 <I>-- | Man page <A HREF="curs_addstr.3x.html">curs_addstr.3x</A></I>
610 <I>-- |=====================================================================</I>
612 <I>-- <A NAME="AFU_20">|</I>
613 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
614 Str : <B>in</B> String;
615 Len : <B>in</B> Integer := -1);
616 <I>-- AKA: <A HREF="curs_addstr.3x.html">waddnstr()</A></I>
617 <I>-- AKA: waddstr()</I>
619 <I>-- <A NAME="AFU_21">|</I>
620 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
621 Line : <B>in</B> Line_Position;
622 Column : <B>in</B> Column_Position;
623 Str : <B>in</B> String;
624 Len : <B>in</B> Integer := -1);
625 <I>-- AKA: <A HREF="curs_addstr.3x.html">mvwaddnstr()</A></I>
626 <I>-- AKA: mvwaddstr()</I>
628 <I>-- |=====================================================================</I>
629 <I>-- | Man page <A HREF="curs_addchstr.3x.html">curs_addchstr.3x</A></I>
630 <I>-- |=====================================================================</I>
632 <I>-- <A NAME="AFU_22">|</I>
633 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
634 Str : <B>in</B> Attributed_String;
635 Len : <B>in</B> Integer := -1);
636 <I>-- AKA: <A HREF="curs_addchstr.3x.html">waddchnstr()</A></I>
637 <I>-- AKA: waddchstr()</I>
639 <I>-- <A NAME="AFU_23">|</I>
640 <B>procedure</B> Add (Win : <B>in</B> Window := Standard_Window;
641 Line : <B>in</B> Line_Position;
642 Column : <B>in</B> Column_Position;
643 Str : <B>in</B> Attributed_String;
644 Len : <B>in</B> Integer := -1);
645 <I>-- AKA: <A HREF="curs_addchstr.3x.html">mvwaddchnstr()</A></I>
646 <I>-- AKA: mvwaddchstr()</I>
648 <I>-- |=====================================================================</I>
649 <I>-- | Man page <A HREF="curs_border.3x.html">curs_border.3x</A></I>
650 <I>-- |=====================================================================</I>
652 <I>-- <A NAME="AFU_24">|</I>
653 <B>procedure</B> Border
654 (Win : <B>in</B> Window := Standard_Window;
655 Left_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
656 Right_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
657 Top_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
658 Bottom_Side_Symbol : <B>in</B> Attributed_Character := Default_Character;
659 Upper_Left_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character;
660 Upper_Right_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character;
661 Lower_Left_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character;
662 Lower_Right_Corner_Symbol : <B>in</B> Attributed_Character := Default_Character
664 <I>-- AKA: <A HREF="curs_border.3x.html">wborder()</A></I>
666 <I>-- <A NAME="AFU_25">|</I>
668 (Win : <B>in</B> Window := Standard_Window;
669 Vertical_Symbol : <B>in</B> Attributed_Character := Default_Character;
670 Horizontal_Symbol : <B>in</B> Attributed_Character := Default_Character);
671 <I>-- AKA: <A HREF="curs_border.3x.html">box()</A></I>
673 <I>-- <A NAME="AFU_26">|</I>
674 <B>procedure</B> Horizontal_Line
675 (Win : <B>in</B> Window := Standard_Window;
676 Line_Size : <B>in</B> Natural;
677 Line_Symbol : <B>in</B> Attributed_Character := Default_Character);
678 <I>-- AKA: <A HREF="curs_border.3x.html">whline()</A></I>
680 <I>-- <A NAME="AFU_27">|</I>
681 <B>procedure</B> Vertical_Line
682 (Win : <B>in</B> Window := Standard_Window;
683 Line_Size : <B>in</B> Natural;
684 Line_Symbol : <B>in</B> Attributed_Character := Default_Character);
685 <I>-- AKA: <A HREF="curs_border.3x.html">wvline()</A></I>
687 <I>-- |=====================================================================</I>
688 <I>-- | Man page <A HREF="curs_getch.3x.html">curs_getch.3x</A></I>
689 <I>-- |=====================================================================</I>
691 <I>-- <A NAME="AFU_28">|</I>
692 <B>function</B> Get_Keystroke (Win : Window := Standard_Window)
693 <B>return</B> Real_Key_Code;
694 <I>-- AKA: <A HREF="curs_getch.3x.html">wgetch()</A></I>
695 <I>-- Get a character from the keyboard and echo it - if enabled - to the</I>
697 <I>-- If for any reason (i.e. a timeout) we couldn't get a character the</I>
698 <I>-- returned keycode is Key_None.</I>
700 <I>-- <A NAME="AFU_29">|</I>
701 <B>procedure</B> Undo_Keystroke (Key : <B>in</B> Real_Key_Code);
702 <I>-- AKA: <A HREF="curs_getch.3x.html">ungetch()</A></I>
704 <I>-- <A NAME="AFU_30">|</I>
705 <B>function</B> Has_Key (Key : Special_Key_Code) <B>return</B> Boolean;
706 <I>-- AKA: <A HREF="curs_getch.3x.html">has_key()</A></I>
708 <I>-- | Some helper functions</I>
710 <B>function</B> Is_Function_Key (Key : Special_Key_Code) <B>return</B> Boolean;
711 <I>-- Return True if the Key is a function key (i.e. one of F0 .. F63)</I>
713 <B>subtype</B> Function_Key_Number <B>is</B> Integer <B>range</B> 0 .. 63;
714 <I>-- (n)curses allows for 64 function keys.</I>
716 <B>function</B> Function_Key (Key : Real_Key_Code) <B>return</B> Function_Key_Number;
717 <I>-- Return the number of the function key. If the code is not a</I>
718 <I>-- function key, a CONSTRAINT_ERROR will be raised.</I>
720 <B>function</B> Function_Key_Code (Key : Function_Key_Number) <B>return</B> Real_Key_Code;
721 <I>-- Return the key code for a given functionkey number.</I>
723 <I>-- |=====================================================================</I>
724 <I>-- | Man page <A HREF="curs_attr.3x.html">curs_attr.3x</A></I>
725 <I>-- |=====================================================================</I>
727 <I>-- <A NAME="AFU_31">|</I>
728 <B>procedure</B> Switch_Character_Attribute
729 (Win : <B>in</B> Window := Standard_Window;
730 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
731 On : <B>in</B> Boolean := True); <I>-- if False we switch Off.</I>
732 <I>-- AKA: <A HREF="curs_attr.3x.html">wattron()</A></I>
733 <I>-- AKA: wattroff()</I>
735 <I>-- <A NAME="AFU_32">|</I>
736 <B>procedure</B> Set_Character_Attributes
737 (Win : <B>in</B> Window := Standard_Window;
738 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
739 Color : <B>in</B> Color_Pair := Color_Pair'First);
740 <I>-- AKA: <A HREF="curs_attr.3x.html">wattrset()</A></I>
742 <I>-- <A NAME="AFU_33">|</I>
743 <B>function</B> Get_Character_Attribute
744 (Win : <B>in</B> Window := Standard_Window) <B>return</B> Character_Attribute_Set;
745 <I>-- AKA: <A HREF="curs_attr.3x.html">wattr_get()</A></I>
747 <I>-- <A NAME="AFU_34">|</I>
748 <B>function</B> Get_Character_Attribute
749 (Win : <B>in</B> Window := Standard_Window) <B>return</B> Color_Pair;
750 <I>-- AKA: <A HREF="curs_attr.3x.html">wattr_get()</A></I>
752 <I>-- <A NAME="AFU_35">|</I>
753 <B>procedure</B> Change_Attributes
754 (Win : <B>in</B> Window := Standard_Window;
755 Count : <B>in</B> Integer := -1;
756 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
757 Color : <B>in</B> Color_Pair := Color_Pair'First);
758 <I>-- AKA: <A HREF="curs_attr.3x.html">wchgat()</A></I>
760 <I>-- <A NAME="AFU_36">|</I>
761 <B>procedure</B> Change_Attributes
762 (Win : <B>in</B> Window := Standard_Window;
763 Line : <B>in</B> Line_Position := Line_Position'First;
764 Column : <B>in</B> Column_Position := Column_Position'First;
765 Count : <B>in</B> Integer := -1;
766 Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
767 Color : <B>in</B> Color_Pair := Color_Pair'First);
768 <I>-- AKA: <A HREF="curs_attr.3x.html">mvwchgat()</A></I>
770 <I>-- |=====================================================================</I>
771 <I>-- | Man page <A HREF="curs_beep.3x.html">curs_beep.3x</A></I>
772 <I>-- |=====================================================================</I>
774 <I>-- <A NAME="AFU_37">|</I>
775 <B>procedure</B> Beep;
776 <I>-- AKA: <A HREF="curs_beep.3x.html">beep()</A></I>
778 <I>-- <A NAME="AFU_38">|</I>
779 <B>procedure</B> Flash_Screen;
780 <I>-- AKA: <A HREF="curs_beep.3x.html">flash()</A></I>
782 <I>-- |=====================================================================</I>
783 <I>-- | Man page <A HREF="curs_inopts.3x.html">curs_inopts.3x</A></I>
784 <I>-- |=====================================================================</I>
786 <I>-- | Not implemented : typeahead</I>
788 <I>-- <A NAME="AFU_39">|</I>
789 <B>procedure</B> Set_Cbreak_Mode (SwitchOn : <B>in</B> Boolean := True);
790 <I>-- AKA: <A HREF="curs_inopts.3x.html">cbreak()</A></I>
791 <I>-- AKA: nocbreak()</I>
793 <I>-- <A NAME="AFU_40">|</I>
794 <B>procedure</B> Set_Raw_Mode (SwitchOn : <B>in</B> Boolean := True);
795 <I>-- AKA: <A HREF="curs_inopts.3x.html">raw()</A></I>
796 <I>-- AKA: noraw()</I>
798 <I>-- <A NAME="AFU_41">|</I>
799 <B>procedure</B> Set_Echo_Mode (SwitchOn : <B>in</B> Boolean := True);
800 <I>-- AKA: <A HREF="curs_inopts.3x.html">echo()</A></I>
801 <I>-- AKA: noecho()</I>
803 <I>-- <A NAME="AFU_42">|</I>
804 <B>procedure</B> Set_Meta_Mode (Win : <B>in</B> Window := Standard_Window;
805 SwitchOn : <B>in</B> Boolean := True);
806 <I>-- AKA: <A HREF="curs_inopts.3x.html">meta()</A></I>
808 <I>-- <A NAME="AFU_43">|</I>
809 <B>procedure</B> Set_KeyPad_Mode (Win : <B>in</B> Window := Standard_Window;
810 SwitchOn : <B>in</B> Boolean := True);
811 <I>-- AKA: <A HREF="curs_inopts.3x.html">keypad()</A></I>
813 type Half_Delay_Amount <B>is</B> <B>range</B> 1 .. 255;
815 <I>-- <A NAME="AFU_44">|</I>
816 <B>procedure</B> Half_Delay (Amount : <B>in</B> Half_Delay_Amount);
817 <I>-- AKA: <A HREF="curs_inopts.3x.html">halfdelay()</A></I>
819 <I>-- <A NAME="AFU_45">|</I>
820 <B>procedure</B> Set_Flush_On_Interrupt_Mode
821 (Win : <B>in</B> Window := Standard_Window;
822 Mode : <B>in</B> Boolean := True);
823 <I>-- AKA: <A HREF="curs_inopts.3x.html">intrflush()</A></I>
825 <I>-- <A NAME="AFU_46">|</I>
826 <B>procedure</B> Set_Queue_Interrupt_Mode
827 (Win : <B>in</B> Window := Standard_Window;
828 Flush : <B>in</B> Boolean := True);
829 <I>-- AKA: <A HREF="curs_inopts.3x.html">qiflush()</A></I>
830 <I>-- AKA: noqiflush()</I>
832 <I>-- <A NAME="AFU_47">|</I>
833 <B>procedure</B> Set_NoDelay_Mode
834 (Win : <B>in</B> Window := Standard_Window;
835 Mode : <B>in</B> Boolean := False);
836 <I>-- AKA: <A HREF="curs_inopts.3x.html">nodelay()</A></I>
838 type Timeout_Mode <B>is</B> (Blocking, Non_Blocking, Delayed);
840 <I>-- <A NAME="AFU_48">|</I>
841 <B>procedure</B> Set_Timeout_Mode (Win : <B>in</B> Window := Standard_Window;
842 Mode : <B>in</B> Timeout_Mode;
843 Amount : <B>in</B> Natural); <I>-- in Miliseconds</I>
844 <I>-- AKA: <A HREF="curs_inopts.3x.html">wtimeout()</A></I>
845 <I>-- Instead of overloading the semantic of the sign of amount, we</I>
846 <I>-- introduce the Timeout_Mode parameter. This should improve</I>
847 <I>-- readability. For Blocking and Non_Blocking, the Amount is not</I>
850 <I>-- <A NAME="AFU_49">|</I>
851 <B>procedure</B> Set_Escape_Timer_Mode
852 (Win : <B>in</B> Window := Standard_Window;
853 Timer_Off : <B>in</B> Boolean := False);
854 <I>-- AKA: <A HREF="curs_inopts.3x.html">notimeout()</A></I>
856 <I>-- |=====================================================================</I>
857 <I>-- | Man page <A HREF="curs_outopts.3x.html">curs_outopts.3x</A></I>
858 <I>-- |=====================================================================</I>
860 <I>-- <A NAME="AFU_50">|</I>
861 <B>procedure</B> Set_NL_Mode (SwitchOn : <B>in</B> Boolean := True);
862 <I>-- AKA: <A HREF="curs_outopts.3x.html">nl()</A></I>
863 <I>-- AKA: nonl()</I>
865 <I>-- <A NAME="AFU_51">|</I>
866 <B>procedure</B> Clear_On_Next_Update
867 (Win : <B>in</B> Window := Standard_Window;
868 Do_Clear : <B>in</B> Boolean := True);
869 <I>-- AKA: <A HREF="curs_outopts.3x.html">clearok()</A></I>
871 <I>-- <A NAME="AFU_52">|</I>
872 <B>procedure</B> Use_Insert_Delete_Line
873 (Win : <B>in</B> Window := Standard_Window;
874 Do_Idl : <B>in</B> Boolean := True);
875 <I>-- AKA: <A HREF="curs_outopts.3x.html">idlok()</A></I>
877 <I>-- <A NAME="AFU_53">|</I>
878 <B>procedure</B> Use_Insert_Delete_Character
879 (Win : <B>in</B> Window := Standard_Window;
880 Do_Idc : <B>in</B> Boolean := True);
881 <I>-- AKA: <A HREF="curs_outopts.3x.html">idcok()</A></I>
883 <I>-- <A NAME="AFU_54">|</I>
884 <B>procedure</B> Leave_Cursor_After_Update
885 (Win : <B>in</B> Window := Standard_Window;
886 Do_Leave : <B>in</B> Boolean := True);
887 <I>-- AKA: <A HREF="curs_outopts.3x.html">leaveok()</A></I>
889 <I>-- <A NAME="AFU_55">|</I>
890 <B>procedure</B> Immediate_Update_Mode
891 (Win : <B>in</B> Window := Standard_Window;
892 Mode : <B>in</B> Boolean := False);
893 <I>-- AKA: <A HREF="curs_outopts.3x.html">immedok()</A></I>
895 <I>-- <A NAME="AFU_56">|</I>
896 <B>procedure</B> Allow_Scrolling
897 (Win : <B>in</B> Window := Standard_Window;
898 Mode : <B>in</B> Boolean := False);
899 <I>-- AKA: <A HREF="curs_outopts.3x.html">scrollok()</A></I>
901 <B>function</B> Scrolling_Allowed (Win : Window := Standard_Window) <B>return</B> Boolean;
902 <I>-- There is no such function in the C interface.</I>
904 <I>-- <A NAME="AFU_57">|</I>
905 <B>procedure</B> Set_Scroll_Region
906 (Win : <B>in</B> Window := Standard_Window;
907 Top_Line : <B>in</B> Line_Position;
908 Bottom_Line : <B>in</B> Line_Position);
909 <I>-- AKA: <A HREF="curs_outopts.3x.html">wsetscrreg()</A></I>
911 <I>-- |=====================================================================</I>
912 <I>-- | Man page <A HREF="curs_refresh.3x.html">curs_refresh.3x</A></I>
913 <I>-- |=====================================================================</I>
915 <I>-- <A NAME="AFU_58">|</I>
916 <B>procedure</B> Update_Screen;
917 <I>-- AKA: <A HREF="curs_refresh.3x.html">doupdate()</A></I>
919 <I>-- <A NAME="AFU_59">|</I>
920 <B>procedure</B> Refresh (Win : <B>in</B> Window := Standard_Window);
921 <I>-- AKA: <A HREF="curs_refresh.3x.html">wrefresh()</A></I>
923 <I>-- <A NAME="AFU_60">|</I>
924 <B>procedure</B> Refresh_Without_Update
925 (Win : <B>in</B> Window := Standard_Window);
926 <I>-- AKA: <A HREF="curs_refresh.3x.html">wnoutrefresh()</A></I>
928 <I>-- <A NAME="AFU_61">|</I>
929 <B>procedure</B> Redraw (Win : <B>in</B> Window := Standard_Window);
930 <I>-- AKA: <A HREF="curs_refresh.3x.html">redrawwin()</A></I>
932 <I>-- <A NAME="AFU_62">|</I>
933 <B>procedure</B> Redraw (Win : <B>in</B> Window := Standard_Window;
934 Begin_Line : <B>in</B> Line_Position;
935 Line_Count : <B>in</B> Positive);
936 <I>-- AKA: <A HREF="curs_refresh.3x.html">wredrawln()</A></I>
938 <I>-- |=====================================================================</I>
939 <I>-- | Man page <A HREF="curs_clear.3x.html">curs_clear.3x</A></I>
940 <I>-- |=====================================================================</I>
942 <I>-- <A NAME="AFU_63">|</I>
943 <B>procedure</B> Erase (Win : <B>in</B> Window := Standard_Window);
944 <I>-- AKA: <A HREF="curs_clear.3x.html">werase()</A></I>
946 <I>-- <A NAME="AFU_64">|</I>
947 <B>procedure</B> Clear
948 (Win : <B>in</B> Window := Standard_Window);
949 <I>-- AKA: <A HREF="curs_clear.3x.html">wclear()</A></I>
951 <I>-- <A NAME="AFU_65">|</I>
952 <B>procedure</B> Clear_To_End_Of_Screen
953 (Win : <B>in</B> Window := Standard_Window);
954 <I>-- AKA: <A HREF="curs_clear.3x.html">wclrtobot()</A></I>
956 <I>-- <A NAME="AFU_66">|</I>
957 <B>procedure</B> Clear_To_End_Of_Line
958 (Win : <B>in</B> Window := Standard_Window);
959 <I>-- AKA: <A HREF="curs_clear.3x.html">wclrtoeol()</A></I>
961 <I>-- |=====================================================================</I>
962 <I>-- | Man page <A HREF="curs_bkgd.3x.html">curs_bkgd.3x</A></I>
963 <I>-- |=====================================================================</I>
965 <I>-- <A NAME="AFU_67">|</I>
966 <B>procedure</B> Set_Background
967 (Win : <B>in</B> Window := Standard_Window;
968 Ch : <B>in</B> Attributed_Character);
969 <I>-- AKA: <A HREF="curs_bkgd.3x.html">wbkgdset()</A></I>
971 <I>-- <A NAME="AFU_68">|</I>
972 <B>procedure</B> Change_Background
973 (Win : <B>in</B> Window := Standard_Window;
974 Ch : <B>in</B> Attributed_Character);
975 <I>-- AKA: <A HREF="curs_bkgd.3x.html">wbkgd()</A></I>
977 <I>-- <A NAME="AFU_69">|</I>
978 <B>function</B> Get_Background (Win : Window := Standard_Window)
979 <B>return</B> Attributed_Character;
980 <I>-- AKA: <A HREF="curs_bkgd.3x.html">wbkgdget()</A></I>
982 <I>-- |=====================================================================</I>
983 <I>-- | Man page <A HREF="curs_touch.3x.html">curs_touch.3x</A></I>
984 <I>-- |=====================================================================</I>
986 <I>-- <A NAME="AFU_70">|</I>
987 <B>procedure</B> Touch (Win : <B>in</B> Window := Standard_Window);
988 <I>-- AKA: <A HREF="curs_touch.3x.html">touchwin()</A></I>
990 <I>-- <A NAME="AFU_71">|</I>
991 <B>procedure</B> Untouch (Win : <B>in</B> Window := Standard_Window);
992 <I>-- AKA: <A HREF="curs_touch.3x.html">untouchwin()</A></I>
994 <I>-- <A NAME="AFU_72">|</I>
995 <B>procedure</B> Touch (Win : <B>in</B> Window := Standard_Window;
996 Start : <B>in</B> Line_Position;
997 Count : <B>in</B> Positive);
998 <I>-- AKA: <A HREF="curs_touch.3x.html">touchline()</A></I>
1000 <I>-- <A NAME="AFU_73">|</I>
1001 <B>procedure</B> Change_Lines_Status (Win : <B>in</B> Window := Standard_Window;
1002 Start : <B>in</B> Line_Position;
1003 Count : <B>in</B> Positive;
1004 State : <B>in</B> Boolean);
1005 <I>-- AKA: <A HREF="curs_touch.3x.html">wtouchln()</A></I>
1007 <I>-- <A NAME="AFU_74">|</I>
1008 <B>function</B> Is_Touched (Win : Window := Standard_Window;
1009 Line : Line_Position) <B>return</B> Boolean;
1010 <I>-- AKA: <A HREF="curs_touch.3x.html">is_linetouched()</A></I>
1012 <I>-- <A NAME="AFU_75">|</I>
1013 <B>function</B> Is_Touched (Win : Window := Standard_Window) <B>return</B> Boolean;
1014 <I>-- AKA: <A HREF="curs_touch.3x.html">is_wintouched()</A></I>
1016 <I>-- |=====================================================================</I>
1017 <I>-- | Man page <A HREF="curs_overlay.3x.html">curs_overlay.3x</A></I>
1018 <I>-- |=====================================================================</I>
1020 <I>-- <A NAME="AFU_76">|</I>
1021 <B>procedure</B> Copy
1022 (Source_Window : <B>in</B> Window;
1023 Destination_Window : <B>in</B> Window;
1024 Source_Top_Row : <B>in</B> Line_Position;
1025 Source_Left_Column : <B>in</B> Column_Position;
1026 Destination_Top_Row : <B>in</B> Line_Position;
1027 Destination_Left_Column : <B>in</B> Column_Position;
1028 Destination_Bottom_Row : <B>in</B> Line_Position;
1029 Destination_Right_Column : <B>in</B> Column_Position;
1030 Non_Destructive_Mode : <B>in</B> Boolean := True);
1031 <I>-- AKA: <A HREF="curs_overlay.3x.html">copywin()</A></I>
1033 <I>-- <A NAME="AFU_77">|</I>
1034 <B>procedure</B> Overwrite (Source_Window : <B>in</B> Window;
1035 Destination_Window : <B>in</B> Window);
1036 <I>-- AKA: <A HREF="curs_overlay.3x.html">overwrite()</A></I>
1038 <I>-- <A NAME="AFU_78">|</I>
1039 <B>procedure</B> Overlay (Source_Window : <B>in</B> Window;
1040 Destination_Window : <B>in</B> Window);
1041 <I>-- AKA: <A HREF="curs_overlay.3x.html">overlay()</A></I>
1043 <I>-- |=====================================================================</I>
1044 <I>-- | Man page <A HREF="curs_deleteln.3x.html">curs_deleteln.3x</A></I>
1045 <I>-- |=====================================================================</I>
1047 <I>-- <A NAME="AFU_79">|</I>
1048 <B>procedure</B> Insert_Delete_Lines
1049 (Win : <B>in</B> Window := Standard_Window;
1050 Lines : <B>in</B> Integer := 1); <I>-- default is to insert one line above</I>
1051 <I>-- AKA: <A HREF="curs_deleteln.3x.html">winsdelln()</A></I>
1053 <I>-- <A NAME="AFU_80">|</I>
1054 <B>procedure</B> Delete_Line (Win : <B>in</B> Window := Standard_Window);
1055 <I>-- AKA: <A HREF="curs_deleteln.3x.html">wdeleteln()</A></I>
1057 <I>-- <A NAME="AFU_81">|</I>
1058 <B>procedure</B> Insert_Line (Win : <B>in</B> Window := Standard_Window);
1059 <I>-- AKA: <A HREF="curs_deleteln.3x.html">winsertln()</A></I>
1061 <I>-- |=====================================================================</I>
1062 <I>-- | Man page <A HREF="curs_getyx.3x.html">curs_getyx.3x</A></I>
1063 <I>-- |=====================================================================</I>
1065 <I>-- <A NAME="AFU_82">|</I>
1066 <B>procedure</B> Get_Size
1067 (Win : <B>in</B> Window := Standard_Window;
1068 Number_Of_Lines : <B>out</B> Line_Count;
1069 Number_Of_Columns : <B>out</B> Column_Count);
1070 <I>-- AKA: <A HREF="curs_getyx.3x.html">getmaxyx()</A></I>
1072 <I>-- <A NAME="AFU_83">|</I>
1073 <B>procedure</B> Get_Window_Position
1074 (Win : <B>in</B> Window := Standard_Window;
1075 Top_Left_Line : <B>out</B> Line_Position;
1076 Top_Left_Column : <B>out</B> Column_Position);
1077 <I>-- AKA: <A HREF="curs_getyx.3x.html">getbegyx()</A></I>
1079 <I>-- <A NAME="AFU_84">|</I>
1080 <B>procedure</B> Get_Cursor_Position
1081 (Win : <B>in</B> Window := Standard_Window;
1082 Line : <B>out</B> Line_Position;
1083 Column : <B>out</B> Column_Position);
1084 <I>-- AKA: <A HREF="curs_getyx.3x.html">getyx()</A></I>
1086 <I>-- <A NAME="AFU_85">|</I>
1087 <B>procedure</B> Get_Origin_Relative_To_Parent
1088 (Win : <B>in</B> Window;
1089 Top_Left_Line : <B>out</B> Line_Position;
1090 Top_Left_Column : <B>out</B> Column_Position;
1091 Is_Not_A_Subwindow : <B>out</B> Boolean);
1092 <I>-- AKA: <A HREF="curs_getyx.3x.html">getparyx()</A></I>
1093 <I>-- Instead of placing -1 in the coordinates as return, we use a boolean</I>
1094 <I>-- to return the info that the window has no parent.</I>
1096 <I>-- |=====================================================================</I>
1097 <I>-- | Man page <A HREF="curs_pad.3x.html">curs_pad.3x</A></I>
1098 <I>-- |=====================================================================</I>
1100 <I>-- <A NAME="AFU_86">|</I>
1101 <B>function</B> New_Pad (Lines : Line_Count;
1102 Columns : Column_Count) <B>return</B> Window;
1103 <I>-- AKA: <A HREF="curs_pad.3x.html">newpad()</A></I>
1105 <I>-- <A NAME="AFU_87">|</I>
1106 <B>function</B> Sub_Pad
1108 Number_Of_Lines : Line_Count;
1109 Number_Of_Columns : Column_Count;
1110 First_Line_Position : Line_Position;
1111 First_Column_Position : Column_Position) <B>return</B> Window;
1112 <I>-- AKA: <A HREF="curs_pad.3x.html">subpad()</A></I>
1114 <I>-- <A NAME="AFU_88">|</I>
1115 <B>procedure</B> Refresh
1116 (Pad : <B>in</B> Window;
1117 Source_Top_Row : <B>in</B> Line_Position;
1118 Source_Left_Column : <B>in</B> Column_Position;
1119 Destination_Top_Row : <B>in</B> Line_Position;
1120 Destination_Left_Column : <B>in</B> Column_Position;
1121 Destination_Bottom_Row : <B>in</B> Line_Position;
1122 Destination_Right_Column : <B>in</B> Column_Position);
1123 <I>-- AKA: <A HREF="curs_pad.3x.html">prefresh()</A></I>
1125 <I>-- <A NAME="AFU_89">|</I>
1126 <B>procedure</B> Refresh_Without_Update
1127 (Pad : <B>in</B> Window;
1128 Source_Top_Row : <B>in</B> Line_Position;
1129 Source_Left_Column : <B>in</B> Column_Position;
1130 Destination_Top_Row : <B>in</B> Line_Position;
1131 Destination_Left_Column : <B>in</B> Column_Position;
1132 Destination_Bottom_Row : <B>in</B> Line_Position;
1133 Destination_Right_Column : <B>in</B> Column_Position);
1134 <I>-- AKA: <A HREF="curs_pad.3x.html">pnoutrefresh()</A></I>
1136 <I>-- <A NAME="AFU_90">|</I>
1137 <B>procedure</B> Add_Character_To_Pad_And_Echo_It
1138 (Pad : <B>in</B> Window;
1139 Ch : <B>in</B> Attributed_Character);
1140 <I>-- AKA: <A HREF="curs_pad.3x.html">pechochar()</A></I>
1142 <B>procedure</B> Add_Character_To_Pad_And_Echo_It
1143 (Pad : <B>in</B> Window;
1144 Ch : <B>in</B> Character);
1146 <I>-- |=====================================================================</I>
1147 <I>-- | Man page <A HREF="curs_scroll.3x.html">curs_scroll.3x</A></I>
1148 <I>-- |=====================================================================</I>
1150 <I>-- <A NAME="AFU_91">|</I>
1151 <B>procedure</B> Scroll (Win : <B>in</B> Window := Standard_Window;
1152 Amount : <B>in</B> Integer := 1);
1153 <I>-- AKA: <A HREF="curs_scroll.3x.html">wscrl()</A></I>
1155 <I>-- |=====================================================================</I>
1156 <I>-- | Man page <A HREF="curs_delch.3x.html">curs_delch.3x</A></I>
1157 <I>-- |=====================================================================</I>
1159 <I>-- <A NAME="AFU_92">|</I>
1160 <B>procedure</B> Delete_Character (Win : <B>in</B> Window := Standard_Window);
1161 <I>-- AKA: <A HREF="curs_delch.3x.html">wdelch()</A></I>
1163 <I>-- <A NAME="AFU_93">|</I>
1164 <B>procedure</B> Delete_Character
1165 (Win : <B>in</B> Window := Standard_Window;
1166 Line : <B>in</B> Line_Position;
1167 Column : <B>in</B> Column_Position);
1168 <I>-- AKA: <A HREF="curs_delch.3x.html">mvwdelch()</A></I>
1170 <I>-- |=====================================================================</I>
1171 <I>-- | Man page <A HREF="curs_inch.3x.html">curs_inch.3x</A></I>
1172 <I>-- |=====================================================================</I>
1174 <I>-- <A NAME="AFU_94">|</I>
1175 <B>function</B> Peek (Win : Window := Standard_Window)
1176 <B>return</B> Attributed_Character;
1177 <I>-- AKA: <A HREF="curs_inch.3x.html">winch()</A></I>
1179 <I>-- <A NAME="AFU_95">|</I>
1180 <B>function</B> Peek
1181 (Win : Window := Standard_Window;
1182 Line : Line_Position;
1183 Column : Column_Position) <B>return</B> Attributed_Character;
1184 <I>-- AKA: <A HREF="curs_inch.3x.html">mvwinch()</A></I>
1186 <I>-- |=====================================================================</I>
1187 <I>-- | Man page <A HREF="curs_winch.3x.html">curs_winch.3x</A></I>
1188 <I>-- |=====================================================================</I>
1190 <I>-- <A NAME="AFU_96">|</I>
1191 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1192 Ch : <B>in</B> Attributed_Character);
1193 <I>-- AKA: <A HREF="curs_winch.3x.html">winsch()</A></I>
1195 <I>-- <A NAME="AFU_97">|</I>
1196 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1197 Line : <B>in</B> Line_Position;
1198 Column : <B>in</B> Column_Position;
1199 Ch : <B>in</B> Attributed_Character);
1200 <I>-- AKA: <A HREF="curs_winch.3x.html">mvwinsch()</A></I>
1202 <I>-- |=====================================================================</I>
1203 <I>-- | Man page <A HREF="curs_winch.3x.html">curs_winch.3x</A></I>
1204 <I>-- |=====================================================================</I>
1206 <I>-- <A NAME="AFU_98">|</I>
1207 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1208 Str : <B>in</B> String;
1209 Len : <B>in</B> Integer := -1);
1210 <I>-- AKA: <A HREF="curs_winch.3x.html">winsnstr()</A></I>
1211 <I>-- AKA: winsstr()</I>
1213 <I>-- <A NAME="AFU_99">|</I>
1214 <B>procedure</B> Insert (Win : <B>in</B> Window := Standard_Window;
1215 Line : <B>in</B> Line_Position;
1216 Column : <B>in</B> Column_Position;
1217 Str : <B>in</B> String;
1218 Len : <B>in</B> Integer := -1);
1219 <I>-- AKA: <A HREF="curs_winch.3x.html">mvwinsnstr()</A></I>
1220 <I>-- AKA: mvwinsstr()</I>
1222 <I>-- |=====================================================================</I>
1223 <I>-- | Man page <A HREF="curs_instr.3x.html">curs_instr.3x</A></I>
1224 <I>-- |=====================================================================</I>
1226 <I>-- <A NAME="AFU_100">|</I>
1227 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1228 Str : <B>out</B> String;
1229 Len : <B>in</B> Integer := -1);
1230 <I>-- AKA: <A HREF="curs_instr.3x.html">winnstr()</A></I>
1231 <I>-- AKA: winstr()</I>
1233 <I>-- <A NAME="AFU_101">|</I>
1234 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1235 Line : <B>in</B> Line_Position;
1236 Column : <B>in</B> Column_Position;
1237 Str : <B>out</B> String;
1238 Len : <B>in</B> Integer := -1);
1239 <I>-- AKA: <A HREF="curs_instr.3x.html">mvwinnstr()</A></I>
1240 <I>-- AKA: mvwinstr()</I>
1242 <I>-- |=====================================================================</I>
1243 <I>-- | Man page <A HREF="curs_inchstr.3x.html">curs_inchstr.3x</A></I>
1244 <I>-- |=====================================================================</I>
1246 <I>-- <A NAME="AFU_102">|</I>
1247 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1248 Str : <B>out</B> Attributed_String;
1249 Len : <B>in</B> Integer := -1);
1250 <I>-- AKA: <A HREF="curs_inchstr.3x.html">winchnstr()</A></I>
1251 <I>-- AKA: winchstr()</I>
1253 <I>-- <A NAME="AFU_103">|</I>
1254 <B>procedure</B> Peek (Win : <B>in</B> Window := Standard_Window;
1255 Line : <B>in</B> Line_Position;
1256 Column : <B>in</B> Column_Position;
1257 Str : <B>out</B> Attributed_String;
1258 Len : <B>in</B> Integer := -1);
1259 <I>-- AKA: <A HREF="curs_inchstr.3x.html">mvwinchnstr()</A></I>
1260 <I>-- AKA: mvwinchstr()</I>
1262 <I>-- |=====================================================================</I>
1263 <I>-- | Man page <A HREF="curs_getstr.3x.html">curs_getstr.3x</A></I>
1264 <I>-- |=====================================================================</I>
1266 <I>-- <A NAME="AFU_104">|</I>
1267 <B>procedure</B> Get (Win : <B>in</B> Window := Standard_Window;
1268 Str : <B>out</B> String;
1269 Len : <B>in</B> Integer := -1);
1270 <I>-- AKA: <A HREF="curs_getstr.3x.html">wgetnstr()</A></I>
1271 <I>-- AKA: wgetstr()</I>
1273 <B>procedure</B> Get (Win : <B>in</B> Window := Standard_Window;
1274 Line : <B>in</B> Line_Position;
1275 Column : <B>in</B> Column_Position;
1276 Str : <B>out</B> String;
1277 Len : <B>in</B> Integer := -1);
1278 <I>-- AKA: <A HREF="curs_getstr.3x.html">wgetnstr()</A>: not specified in ncurses, should be: mvwgetnstr()</I>
1279 <I>-- and mvwgetstr() (which exists)</I>
1281 <I>-- |=====================================================================</I>
1282 <I>-- | Man page <A HREF="curs_slk.3x.html">curs_slk.3x</A></I>
1283 <I>-- |=====================================================================</I>
1285 type Soft_Label_Key_Format <B>is</B> (Three_Two_Three,
1287 PC_Style, <I>-- ncurses specific</I>
1288 PC_Style_With_Index); <I>-- "</I>
1289 type Label_Number <B>is</B> <B>new</B> Positive <B>range</B> 1 .. 12;
1290 type Label_Justification <B>is</B> (Left, Centered, Right);
1292 <I>-- <A NAME="AFU_105">|</I>
1293 <B>procedure</B> Init_Soft_Label_Keys
1294 (Format : <B>in</B> Soft_Label_Key_Format := Three_Two_Three);
1295 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_init()</A></I>
1297 <I>-- <A NAME="AFU_106">|</I>
1298 <B>procedure</B> Set_Soft_Label_Key (Label : <B>in</B> Label_Number;
1299 Text : <B>in</B> String;
1300 Fmt : <B>in</B> Label_Justification := Left);
1301 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_set()</A></I>
1303 <I>-- <A NAME="AFU_107">|</I>
1304 <B>procedure</B> Refresh_Soft_Label_Keys;
1305 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_refresh()</A></I>
1307 <I>-- <A NAME="AFU_108">|</I>
1308 <B>procedure</B> Refresh_Soft_Label_Keys_Without_Update;
1309 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_noutrefresh()</A></I>
1311 <I>-- <A NAME="AFU_109">|</I>
1312 <B>procedure</B> Get_Soft_Label_Key (Label : <B>in</B> Label_Number;
1313 Text : <B>out</B> String);
1314 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_label()</A></I>
1316 <I>-- <A NAME="AFU_110">|</I>
1317 <B>procedure</B> Clear_Soft_Label_Keys;
1318 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_clear()</A></I>
1320 <I>-- <A NAME="AFU_111">|</I>
1321 <B>procedure</B> Restore_Soft_Label_Keys;
1322 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_restore()</A></I>
1324 <I>-- <A NAME="AFU_112">|</I>
1325 <B>procedure</B> Touch_Soft_Label_Keys;
1326 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_touch()</A></I>
1328 <I>-- <A NAME="AFU_113">|</I>
1329 <B>procedure</B> Switch_Soft_Label_Key_Attributes
1330 (Attr : <B>in</B> Character_Attribute_Set;
1331 On : <B>in</B> Boolean := True);
1332 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attron()</A></I>
1333 <I>-- AKA: slk_attroff()</I>
1335 <I>-- <A NAME="AFU_114">|</I>
1336 <B>procedure</B> Set_Soft_Label_Key_Attributes
1337 (Attr : <B>in</B> Character_Attribute_Set := Normal_Video;
1338 Color : <B>in</B> Color_Pair := Color_Pair'First);
1339 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attrset()</A></I>
1341 <I>-- <A NAME="AFU_115">|</I>
1342 <B>function</B> Get_Soft_Label_Key_Attributes <B>return</B> Character_Attribute_Set;
1343 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attr()</A></I>
1345 <I>-- <A NAME="AFU_116">|</I>
1346 <B>function</B> Get_Soft_Label_Key_Attributes <B>return</B> Color_Pair;
1347 <I>-- AKA: <A HREF="curs_slk.3x.html">slk_attr()</A></I>
1349 <I>-- |=====================================================================</I>
1350 <I>-- | Man page <A HREF="curs_util.3x.html">curs_util.3x</A></I>
1351 <I>-- |=====================================================================</I>
1353 <I>-- | Not implemented : filter, use_env, putwin, getwin</I>
1355 <I>-- <A NAME="AFU_117">|</I>
1356 <B>procedure</B> Key_Name (Key : <B>in</B> Real_Key_Code;
1357 Name : <B>out</B> String);
1358 <I>-- AKA: <A HREF="curs_util.3x.html">keyname()</A></I>
1359 <I>-- The external name for a real keystroke.</I>
1361 <I>-- <A NAME="AFU_118">|</I>
1362 <B>procedure</B> Un_Control (Ch : <B>in</B> Attributed_Character;
1363 Str : <B>out</B> String);
1364 <I>-- AKA: <A HREF="curs_util.3x.html">unctrl()</A></I>
1366 <I>-- <A NAME="AFU_119">|</I>
1367 <B>procedure</B> Delay_Output (Msecs : <B>in</B> Natural);
1368 <I>-- AKA: <A HREF="curs_util.3x.html">delay_output()</A></I>
1370 <I>-- <A NAME="AFU_120">|</I>
1371 <B>procedure</B> Flush_Input;
1372 <I>-- AKA: <A HREF="curs_util.3x.html">flushinp()</A></I>
1374 <I>-- |=====================================================================</I>
1375 <I>-- | Man page <A HREF="curs_termattrs.3x.html">curs_termattrs.3x</A></I>
1376 <I>-- |=====================================================================</I>
1378 <I>-- <A NAME="AFU_121">|</I>
1379 <B>function</B> Baudrate <B>return</B> Natural;
1380 <I>-- AKA: <A HREF="curs_termattrs.3x.html">baudrate()</A></I>
1382 <I>-- <A NAME="AFU_122">|</I>
1383 <B>function</B> Erase_Character <B>return</B> Character;
1384 <I>-- AKA: <A HREF="curs_termattrs.3x.html">erasechar()</A></I>
1386 <I>-- <A NAME="AFU_123">|</I>
1387 <B>function</B> Kill_Character <B>return</B> Character;
1388 <I>-- AKA: <A HREF="curs_termattrs.3x.html">killchar()</A></I>
1390 <I>-- <A NAME="AFU_124">|</I>
1391 <B>function</B> Has_Insert_Character <B>return</B> Boolean;
1392 <I>-- AKA: <A HREF="curs_termattrs.3x.html">has_ic()</A></I>
1394 <I>-- <A NAME="AFU_125">|</I>
1395 <B>function</B> Has_Insert_Line <B>return</B> Boolean;
1396 <I>-- AKA: <A HREF="curs_termattrs.3x.html">has_il()</A></I>
1398 <I>-- <A NAME="AFU_126">|</I>
1399 <B>function</B> Supported_Attributes <B>return</B> Character_Attribute_Set;
1400 <I>-- AKA: <A HREF="curs_termattrs.3x.html">termattrs()</A></I>
1402 <I>-- <A NAME="AFU_127">|</I>
1403 <B>procedure</B> Long_Name (Name : <B>out</B> String);
1404 <I>-- AKA: <A HREF="curs_termattrs.3x.html">longname()</A></I>
1406 <I>-- <A NAME="AFU_128">|</I>
1407 <B>procedure</B> Terminal_Name (Name : <B>out</B> String);
1408 <I>-- AKA: <A HREF="curs_termattrs.3x.html">termname()</A></I>
1410 <I>-- |=====================================================================</I>
1411 <I>-- | Man page <A HREF="curs_color.3x.html">curs_color.3x</A></I>
1412 <I>-- |=====================================================================</I>
1414 <I>-- <A NAME="AFU_129">|</I>
1415 <B>procedure</B> Start_Color;
1416 <I>-- AKA: <A HREF="curs_color.3x.html">start_clolor()</A></I>
1417 <B>pragma</B> Import (C, Start_Color, "start_color");
1419 <I>-- <A NAME="AFU_130">|</I>
1420 <B>procedure</B> Init_Pair (Pair : <B>in</B> Redefinable_Color_Pair;
1421 Fore : <B>in</B> Color_Number;
1422 Back : <B>in</B> Color_Number);
1423 <I>-- AKA: <A HREF="curs_color.3x.html">init_pair()</A></I>
1425 <I>-- <A NAME="AFU_131">|</I>
1426 <B>procedure</B> Pair_Content (Pair : <B>in</B> Color_Pair;
1427 Fore : <B>out</B> Color_Number;
1428 Back : <B>out</B> Color_Number);
1429 <I>-- AKA: <A HREF="curs_color.3x.html">pair_content()</A></I>
1431 <I>-- <A NAME="AFU_132">|</I>
1432 <B>function</B> Has_Colors <B>return</B> Boolean;
1433 <I>-- AKA: <A HREF="curs_color.3x.html">has_colors()</A></I>
1435 <I>-- <A NAME="AFU_133">|</I>
1436 <B>procedure</B> Init_Color (Color : <B>in</B> Color_Number;
1437 Red : <B>in</B> RGB_Value;
1438 Green : <B>in</B> RGB_Value;
1439 Blue : <B>in</B> RGB_Value);
1440 <I>-- AKA: <A HREF="curs_color.3x.html">init_color()</A></I>
1442 <I>-- <A NAME="AFU_134">|</I>
1443 <B>function</B> Can_Change_Color <B>return</B> Boolean;
1444 <I>-- AKA: <A HREF="curs_color.3x.html">can_change_color()</A></I>
1446 <I>-- <A NAME="AFU_135">|</I>
1447 <B>procedure</B> Color_Content (Color : <B>in</B> Color_Number;
1448 Red : <B>out</B> RGB_Value;
1449 Green : <B>out</B> RGB_Value;
1450 Blue : <B>out</B> RGB_Value);
1451 <I>-- AKA: <A HREF="curs_color.3x.html">color_content()</A></I>
1453 <I>-- |=====================================================================</I>
1454 <I>-- | Man page <A HREF="curs_kernel.3x.html">curs_kernel.3x</A></I>
1455 <I>-- |=====================================================================</I>
1457 <I>-- | Not implemented: getsyx, setsyx</I>
1459 type Curses_Mode <B>is</B> (Curses, Shell);
1461 <I>-- <A NAME="AFU_136">|</I>
1462 <B>procedure</B> Save_Curses_Mode (Mode : <B>in</B> Curses_Mode);
1463 <I>-- AKA: <A HREF="curs_kernel.3x.html">def_prog_mode()</A></I>
1464 <I>-- AKA: def_shell_mode()</I>
1466 <I>-- <A NAME="AFU_137">|</I>
1467 <B>procedure</B> Reset_Curses_Mode (Mode : <B>in</B> Curses_Mode);
1468 <I>-- AKA: <A HREF="curs_kernel.3x.html">reset_prog_mode()</A></I>
1469 <I>-- AKA: reset_shell_mode()</I>
1471 <I>-- <A NAME="AFU_138">|</I>
1472 <B>procedure</B> Save_Terminal_State;
1473 <I>-- AKA: <A HREF="curs_kernel.3x.html">savetty()</A></I>
1475 <I>-- <A NAME="AFU_139">|</I>
1476 <B>procedure</B> Reset_Terminal_State;
1477 <I>-- AKA: <A HREF="curs_kernel.3x.html">resetty();</A></I>
1479 type Stdscr_Init_Proc <B>is</B> <B>access</B>
1480 <B>function</B> (Win : Window;
1481 Columns : Column_Count) <B>return</B> Integer;
1482 <B>pragma</B> Convention (C, Stdscr_Init_Proc);
1483 <I>-- N.B.: the return value is actually ignored, but it seems to be</I>
1484 <I>-- a good practice to return 0 if you think all went fine</I>
1485 <I>-- and -1 otherwise.</I>
1487 <I>-- <A NAME="AFU_140">|</I>
1488 <B>procedure</B> Rip_Off_Lines (Lines : <B>in</B> Integer;
1489 Proc : <B>in</B> Stdscr_Init_Proc);
1490 <I>-- AKA: <A HREF="curs_kernel.3x.html">ripoffline()</A></I>
1491 <I>-- N.B.: to be more precise, this uses a ncurses specific enhancement of</I>
1492 <I>-- ripoffline(), in which the Lines argument absolute value is the</I>
1493 <I>-- number of lines to be ripped of. The official ripoffline() only</I>
1494 <I>-- uses the sign of Lines to rip of a single line from bottom or top.</I>
1496 type Cursor_Visibility <B>is</B> (Invisible, Normal, Very_Visible);
1498 <I>-- <A NAME="AFU_141">|</I>
1499 <B>procedure</B> Set_Cursor_Visibility (Visibility : <B>in</B> <B>out</B> Cursor_Visibility);
1500 <I>-- AKA: <A HREF="curs_kernel.3x.html">curs_set()</A></I>
1502 <I>-- <A NAME="AFU_142">|</I>
1503 <B>procedure</B> Nap_Milli_Seconds (Ms : <B>in</B> Natural);
1504 <I>-- AKA: <A HREF="curs_kernel.3x.html">napms()</A></I>
1506 <I>-- |=====================================================================</I>
1507 <I>-- | Some usefull helpers.</I>
1508 <I>-- |=====================================================================</I>
1509 type Transform_Direction <B>is</B> (From_Screen, To_Screen);
1510 <B>procedure</B> Transform_Coordinates
1511 (W : <B>in</B> Window := Standard_Window;
1512 Line : <B>in</B> <B>out</B> Line_Position;
1513 Column : <B>in</B> <B>out</B> Column_Position;
1514 Dir : <B>in</B> Transform_Direction := From_Screen);
1515 <I>-- This procedure transforms screen coordinates into coordinates relative</I>
1516 <I>-- to the window and vice versa, depending on the Dir parmeter.</I>
1517 <I>-- Screen coordinates are the position informations on the physical device.</I>
1518 <I>-- An Curses_Exception will be raised if Line and Column are not in the</I>
1519 <I>-- Window or if you pass the Null_Window as argument.</I>
1522 type Window <B>is</B> <B>new</B> System.Address;
1523 Null_Window : <B>constant</B> Window := Window (System.Null_Address);
1525 Generation_Bit_Order : <B>constant</B> System.Bit_Order := System.Low_Order_First;
1526 <I>-- This constant may be different on your system.</I>
1528 <B>end</B> Terminal_Interface.Curses;
1533 This is BETA software. The interface is subject to change without notice.
1535 This is BETA software. The interface is subject to change without notice.<P>
1536 <!-- Do NOT delete my name or the tool name from below; -->
1537 <!-- giving me credit is a condition of use of ada2html -->
1538 <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>