summaryrefslogtreecommitdiffstats
path: root/ncurses-5.2
diff options
context:
space:
mode:
authorEric Norum <WENorum@lbl.gov>1999-06-15 01:03:06 +0000
committerEric Norum <WENorum@lbl.gov>1999-06-15 01:03:06 +0000
commit24b772f1a23dc5956d5377fe03df4195026128bc (patch)
tree320137dee6a48631d0c5128bc788a8f213c00135 /ncurses-5.2
parentUseful add-on libraries (diff)
downloadrtems-addon-packages-24b772f1a23dc5956d5377fe03df4195026128bc.tar.bz2
Useful add-on libraries
Diffstat (limited to 'ncurses-5.2')
-rw-r--r--ncurses-5.2/Ada95/samples/rain.adb161
-rw-r--r--ncurses-5.2/Ada95/samples/rain.ads42
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb122
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb220
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo.adb142
-rw-r--r--ncurses-5.2/Ada95/samples/sample-curses_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-explanation.adb408
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb259
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads92
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb97
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads64
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo.adb134
-rw-r--r--ncurses-5.2/Ada95/samples/sample-form_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-function_key_setting.adb213
-rw-r--r--ncurses-5.2/Ada95/samples/sample-function_key_setting.ads82
-rw-r--r--ncurses-5.2/Ada95/samples/sample-header_handler.adb180
-rw-r--r--ncurses-5.2/Ada95/samples/sample-header_handler.ads53
-rw-r--r--ncurses-5.2/Ada95/samples/sample-helpers.adb69
-rw-r--r--ncurses-5.2/Ada95/samples/sample-helpers.ads54
-rw-r--r--ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb191
-rw-r--r--ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads55
-rw-r--r--ncurses-5.2/Ada95/samples/sample-manifest.ads67
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb204
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads71
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb107
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads64
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo.adb390
-rw-r--r--ncurses-5.2/Ada95/samples/sample-menu_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample-my_field_type.adb65
-rw-r--r--ncurses-5.2/Ada95/samples/sample-my_field_type.ads62
-rw-r--r--ncurses-5.2/Ada95/samples/sample-text_io_demo.ads45
-rw-r--r--ncurses-5.2/Ada95/samples/sample.ads43
-rw-r--r--ncurses-5.2/Ada95/samples/status.adb56
-rw-r--r--ncurses-5.2/Ada95/samples/status.ads59
-rw-r--r--ncurses-5.2/Ada95/samples/tour.adb46
-rw-r--r--ncurses-5.2/Ada95/samples/tour.ads41
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb116
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb68
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads53
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb68
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads54
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb80
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads59
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb119
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads98
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb72
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb68
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads51
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb71
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb110
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads96
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb132
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads97
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb296
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb85
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb86
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb77
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb76
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb78
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb164
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb128
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads55
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb73
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads70
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb75
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads66
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb80
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads63
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb75
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads66
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb76
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads66
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb70
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads63
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb70
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads63
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads136
-rw-r--r--ncurses-5.2/Ada95/src/terminal_interface.ads48
83 files changed, 7965 insertions, 0 deletions
diff --git a/ncurses-5.2/Ada95/samples/rain.adb b/ncurses-5.2/Ada95/samples/rain.adb
new file mode 100644
index 0000000..6d5fd63
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/rain.adb
@@ -0,0 +1,161 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Rain --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Laurent Pautet <pautet@gnat.com> 1997 (modified by J.Pfeifer)
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+-- --
+with Ada.Numerics.Float_Random; use Ada.Numerics.Float_Random;
+with Status; use Status;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+procedure Rain is
+
+ Visibility : Cursor_Visibility;
+
+ subtype X_Position is Line_Position;
+ subtype Y_Position is Column_Position;
+
+ Xpos : array (1 .. 5) of X_Position;
+ Ypos : array (1 .. 5) of Y_Position;
+
+ N : Integer;
+
+ G : Generator;
+
+ Max_X, X : X_Position;
+ Max_Y, Y : Y_Position;
+
+ procedure Next (J : in out Integer);
+ procedure Cursor (X : X_Position; Y : Y_Position);
+
+ procedure Next (J : in out Integer) is
+ begin
+ if J = 5 then
+ J := 1;
+ else
+ J := J + 1;
+ end if;
+ end Next;
+
+ procedure Cursor (X : X_Position; Y : Y_Position) is
+ begin
+ Move_Cursor (Line => X, Column => Y);
+ end Cursor;
+ pragma Inline (Cursor);
+
+begin
+
+ Init_Screen;
+ Set_NL_Mode;
+ Set_Echo_Mode (False);
+
+ Visibility := Invisible;
+ Set_Cursor_Visibility (Visibility);
+
+ Max_X := Lines - 5;
+ Max_Y := Columns - 5;
+
+ for I in Xpos'Range loop
+ Xpos (I) := X_Position (Float (Max_X) * Random (G)) + 2;
+ Ypos (I) := Y_Position (Float (Max_Y) * Random (G)) + 2;
+ end loop;
+
+ N := 1;
+ while Process.Continue loop
+
+ X := X_Position (Float (Max_X) * Random (G)) + 2;
+ Y := Y_Position (Float (Max_Y) * Random (G)) + 2;
+
+ Cursor (X, Y);
+ Add (Ch => '.');
+
+ Cursor (Xpos (N), Ypos (N));
+ Add (Ch => 'o');
+
+ --
+ Next (N);
+ Cursor (Xpos (N), Ypos (N));
+ Add (Ch => 'O');
+
+ --
+ Next (N);
+ Cursor (Xpos (N) - 1, Ypos (N));
+ Add (Ch => '-');
+ Cursor (Xpos (N), Ypos (N) - 1);
+ Add (Str => "|.|");
+ Cursor (Xpos (N) + 1, Ypos (N));
+ Add (Ch => '-');
+
+ --
+ Next (N);
+ Cursor (Xpos (N) - 2, Ypos (N));
+ Add (Ch => '-');
+ Cursor (Xpos (N) - 1, Ypos (N) - 1);
+ Add (Str => "/\\");
+ Cursor (Xpos (N), Ypos (N) - 2);
+ Add (Str => "| O |");
+ Cursor (Xpos (N) + 1, Ypos (N) - 1);
+ Add (Str => "\\/");
+ Cursor (Xpos (N) + 2, Ypos (N));
+ Add (Ch => '-');
+
+ --
+ Next (N);
+ Cursor (Xpos (N) - 2, Ypos (N));
+ Add (Ch => ' ');
+ Cursor (Xpos (N) - 1, Ypos (N) - 1);
+ Add (Str => " ");
+ Cursor (Xpos (N), Ypos (N) - 2);
+ Add (Str => " ");
+ Cursor (Xpos (N) + 1, Ypos (N) - 1);
+ Add (Str => " ");
+ Cursor (Xpos (N) + 2, Ypos (N));
+ Add (Ch => ' ');
+
+ Xpos (N) := X;
+ Ypos (N) := Y;
+
+ Refresh;
+ Nap_Milli_Seconds (50);
+ end loop;
+
+ Visibility := Normal;
+ Set_Cursor_Visibility (Visibility);
+ End_Windows;
+
+end Rain;
diff --git a/ncurses-5.2/Ada95/samples/rain.ads b/ncurses-5.2/Ada95/samples/rain.ads
new file mode 100644
index 0000000..64b42a9
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/rain.ads
@@ -0,0 +1,42 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Rain --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Laurent Pautet <pautet@gnat.com> 1997 (modified by J.Pfeifer)
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+-- --
+procedure Rain;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb b/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb
new file mode 100644
index 0000000..ac0f54c
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.adb
@@ -0,0 +1,122 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Curses_Demo.Attributes --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
+with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
+with Sample.Explanation; use Sample.Explanation;
+
+package body Sample.Curses_Demo.Attributes is
+
+ procedure Demo
+ is
+ P : Panel := Create (Standard_Window);
+ K : Real_Key_Code;
+ begin
+ Set_Meta_Mode;
+ Set_KeyPad_Mode;
+
+ Top (P);
+
+ Push_Environment ("ATTRIBDEMO");
+ Default_Labels;
+ Notepad ("ATTRIB-PAD00");
+
+ Set_Character_Attributes (Attr => (others => False));
+ Add (Line => 1, Column => Columns / 2 - 10,
+ Str => "This is NORMAL");
+
+ Set_Character_Attributes (Attr => (Stand_Out => True,
+ others => False));
+ Add (Line => 2, Column => Columns / 2 - 10,
+ Str => "This is Stand_Out");
+
+ Set_Character_Attributes (Attr => (Under_Line => True,
+ others => False));
+ Add (Line => 3, Column => Columns / 2 - 10,
+ Str => "This is Under_Line");
+
+ Set_Character_Attributes (Attr => (Reverse_Video => True,
+ others => False));
+ Add (Line => 4, Column => Columns / 2 - 10,
+ Str => "This is Reverse_Video");
+
+ Set_Character_Attributes (Attr => (Blink => True,
+ others => False));
+ Add (Line => 5, Column => Columns / 2 - 10,
+ Str => "This is Blink");
+
+ Set_Character_Attributes (Attr => (Dim_Character => True,
+ others => False));
+ Add (Line => 6, Column => Columns / 2 - 10,
+ Str => "This is Dim_Character");
+
+ Set_Character_Attributes (Attr => (Bold_Character => True,
+ others => False));
+ Add (Line => 7, Column => Columns / 2 - 10,
+ Str => "This is Bold_Character");
+
+ Refresh_Without_Update;
+ Update_Panels; Update_Screen;
+
+ loop
+ K := Get_Key;
+ if K in Special_Key_Code'Range then
+ case K is
+ when QUIT_CODE => exit;
+ when HELP_CODE => Explain_Context;
+ when EXPLAIN_CODE => Explain ("ATTRIBKEYS");
+ when others => null;
+ end case;
+ end if;
+ end loop;
+
+ Pop_Environment;
+ Clear;
+ Refresh_Without_Update;
+ Delete (P);
+ Update_Panels; Update_Screen;
+
+ end Demo;
+
+end Sample.Curses_Demo.Attributes;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads b/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads
new file mode 100644
index 0000000..a9a0121
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-curses_demo-attributes.ads
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Curses_Demo.Attributes --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample.Curses_Demo.Attributes is
+
+ procedure Demo;
+
+end Sample.Curses_Demo.Attributes;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb b/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb
new file mode 100644
index 0000000..3b20b69
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.adb
@@ -0,0 +1,220 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Curses_Demo.Mouse --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
+with Terminal_Interface.Curses.Text_IO; use Terminal_Interface.Curses.Text_IO;
+with Terminal_Interface.Curses.Text_IO.Integer_IO;
+with Terminal_Interface.Curses.Text_IO.Enumeration_IO;
+
+with Sample.Helpers; use Sample.Helpers;
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
+with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
+with Sample.Explanation; use Sample.Explanation;
+
+package body Sample.Curses_Demo.Mouse is
+
+ package Int_IO is new
+ Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
+ use Int_IO;
+
+ package Button_IO is new
+ Terminal_Interface.Curses.Text_IO.Enumeration_IO (Mouse_Button);
+ use Button_IO;
+
+ package State_IO is new
+ Terminal_Interface.Curses.Text_IO.Enumeration_IO (Button_State);
+ use State_IO;
+
+ procedure Demo is
+
+ type Controls is array (1 .. 3) of Panel;
+
+ Frame : Window;
+ Msg : Window;
+ Ctl : Controls;
+ Pan : Panel;
+ K : Real_Key_Code;
+ V : Cursor_Visibility := Invisible;
+ W : Window;
+ Note : Window;
+ Msg_L : constant Line_Count := 8;
+ Lins : Line_Position := Lines;
+ Cols : Column_Position;
+ Mask : Event_Mask;
+ procedure Show_Mouse_Event;
+
+ procedure Show_Mouse_Event
+ is
+ Evt : constant Mouse_Event := Get_Mouse;
+ Y : Line_Position;
+ X : Column_Position;
+ Button : Mouse_Button;
+ State : Button_State;
+ W : Window;
+ begin
+ Get_Event (Evt, Y, X, Button, State);
+ Put (Msg, "Event at");
+ Put (Msg, " X="); Put (Msg, Integer (X), 3);
+ Put (Msg, ", Y="); Put (Msg, Integer (Y), 3);
+ Put (Msg, ", Btn="); Put (Msg, Button, 10);
+ Put (Msg, ", Stat="); Put (Msg, State, 15);
+ for I in Ctl'Range loop
+ W := Get_Window (Ctl (I));
+ if Enclosed_In_Window (W, Evt) then
+ Transform_Coordinates (W, Y, X, From_Screen);
+ Put (Msg, ",Box(");
+ Put (Msg, Integer (I), 1); Put (Msg, ",");
+ Put (Msg, Integer (Y), 1); Put (Msg, ",");
+ Put (Msg, Integer (X), 1); Put (Msg, ")");
+ end if;
+ end loop;
+ New_Line (Msg);
+ Flush (Msg);
+ Update_Panels; Update_Screen;
+ end Show_Mouse_Event;
+
+ begin
+ Push_Environment ("MOUSE00");
+ Notepad ("MOUSE-PAD00");
+ Default_Labels;
+ Set_Cursor_Visibility (V);
+
+ Note := Notepad_Window;
+ if Note /= Null_Window then
+ Get_Window_Position (Note, Lins, Cols);
+ end if;
+ Frame := Create (Msg_L, Columns, Lins - Msg_L, 0);
+ if Has_Colors then
+ Set_Background (Win => Frame,
+ Ch => (Color => Default_Colors,
+ Attr => Normal_Video,
+ Ch => ' '));
+ Set_Character_Attributes (Win => Frame,
+ Attr => Normal_Video,
+ Color => Default_Colors);
+ Erase (Frame);
+ end if;
+ Msg := Derived_Window (Frame, Msg_L - 2, Columns - 2, 1, 1);
+ Pan := Create (Frame);
+
+ Set_Meta_Mode;
+ Set_KeyPad_Mode;
+ Mask := Start_Mouse;
+
+ Box (Frame);
+ Window_Title (Frame, "Mouse Protocol");
+ Refresh_Without_Update (Frame);
+ Allow_Scrolling (Msg, True);
+
+ declare
+ Middle_Column : constant Integer := Integer (Columns) / 2;
+ Middle_Index : constant Natural := Ctl'First + (Ctl'Length / 2);
+ Width : constant Column_Count := 5;
+ Height : constant Line_Count := 3;
+ Half : constant Column_Count := Width / 2;
+ Space : constant Column_Count := 3;
+ Position : Integer;
+ W : Window;
+ begin
+ for I in Ctl'Range loop
+ Position := (Integer (I) - Integer (Middle_Index)) *
+ Integer (Half + Space + Width) + Middle_Column;
+ W := Create (Height,
+ Width,
+ 1,
+ Column_Position (Position));
+ if Has_Colors then
+ Set_Background (Win => W,
+ Ch => (Color => Menu_Back_Color,
+ Attr => Normal_Video,
+ Ch => ' '));
+ Set_Character_Attributes (Win => W,
+ Attr => Normal_Video,
+ Color => Menu_Fore_Color);
+ Erase (W);
+ end if;
+ Ctl (I) := Create (W);
+ Box (W);
+ Move_Cursor (W, 1, Half);
+ Put (W, Integer (I), 1);
+ Refresh_Without_Update (W);
+ end loop;
+ end;
+
+ Update_Panels; Update_Screen;
+
+ loop
+ K := Get_Key;
+ if K in Special_Key_Code'Range then
+ case K is
+ when QUIT_CODE => exit;
+ when HELP_CODE => Explain_Context;
+ when EXPLAIN_CODE => Explain ("MOUSEKEYS");
+ when Key_Mouse => Show_Mouse_Event;
+ when others => null;
+ end case;
+ end if;
+ end loop;
+
+ for I in Ctl'Range loop
+ W := Get_Window (Ctl (I));
+ Clear (W);
+ Delete (Ctl (I));
+ Delete (W);
+ end loop;
+
+ Clear (Frame);
+ Delete (Pan);
+ Delete (Msg);
+ Delete (Frame);
+
+ Set_Cursor_Visibility (V);
+ End_Mouse (Mask);
+
+ Pop_Environment;
+ Update_Panels; Update_Screen;
+
+ end Demo;
+
+end Sample.Curses_Demo.Mouse;
+
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads b/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads
new file mode 100644
index 0000000..603050a
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-curses_demo-mouse.ads
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Curses_Demo.Mouse --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample.Curses_Demo.Mouse is
+
+ procedure Demo;
+
+end Sample.Curses_Demo.Mouse;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo.adb b/ncurses-5.2/Ada95/samples/sample-curses_demo.adb
new file mode 100644
index 0000000..02c751a
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-curses_demo.adb
@@ -0,0 +1,142 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Curses_Demo --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
+with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Panels.User_Data;
+
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Helpers; use Sample.Helpers;
+with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
+
+with Sample.Explanation; use Sample.Explanation;
+
+with Sample.Menu_Demo.Handler;
+with Sample.Curses_Demo.Mouse;
+with Sample.Curses_Demo.Attributes;
+
+package body Sample.Curses_Demo is
+
+ type User_Data is new Integer;
+ type User_Data_Access is access all User_Data;
+ package PUD is new Panels.User_Data (User_Data, User_Data_Access);
+ -- We use above instantiation of the generic User_Data package to
+ -- demonstrate and test the use of the user data maechanism.
+
+ procedure Demo
+ is
+ function My_Driver (M : Menu;
+ K : Key_Code;
+ Pan : Panel) return Boolean;
+ package Mh is new Sample.Menu_Demo.Handler (My_Driver);
+
+ Itm : Item_Array_Access := new Item_Array'
+ (New_Item ("Attributes Demo"),
+ New_Item ("Mouse Demo"),
+ Null_Item);
+ M : Menu := New_Menu (Itm);
+ U1 : User_Data_Access := new User_Data'(4711);
+ U2 : User_Data_Access;
+
+ function My_Driver (M : Menu;
+ K : Key_Code;
+ Pan : Panel) return Boolean
+ is
+ Idx : constant Positive := Get_Index (Current (M));
+ Result : Boolean := False;
+ begin
+ PUD.Set_User_Data (Pan, U1); -- set some user data, just for fun
+ if K in User_Key_Code'Range then
+ if K = QUIT then
+ Result := True;
+ elsif K = SELECT_ITEM then
+ if Idx in Itm'Range then
+ Hide (Pan);
+ Update_Panels;
+ end if;
+ case Idx is
+ when 1 => Sample.Curses_Demo.Attributes.Demo;
+ when 2 => Sample.Curses_Demo.Mouse.Demo;
+ when others => Not_Implemented;
+ end case;
+ if Idx in Itm'Range then
+ Top (Pan);
+ Show (Pan);
+ Update_Panels;
+ Update_Screen;
+ end if;
+ end if;
+ end if;
+ PUD.Get_User_Data (Pan, U2); -- get the user data
+ pragma Assert (U1.all = U2.all and then U1 = U2);
+ return Result;
+ end My_Driver;
+
+ begin
+
+ if (1 + Item_Count (M)) /= Itm'Length then
+ raise Constraint_Error;
+ end if;
+
+ if not Has_Mouse then
+ declare
+ O : Item_Option_Set;
+ begin
+ Get_Options (Itm (2), O);
+ O.Selectable := False;
+ Set_Options (Itm (2), O);
+ end;
+ end if;
+
+ Push_Environment ("CURSES00");
+ Notepad ("CURSES-PAD00");
+ Default_Labels;
+ Refresh_Soft_Label_Keys_Without_Update;
+
+ Mh.Drive_Me (M, " Demo ");
+ Pop_Environment;
+
+ Delete (M);
+ Free (Itm, True);
+ end Demo;
+
+end Sample.Curses_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-curses_demo.ads b/ncurses-5.2/Ada95/samples/sample-curses_demo.ads
new file mode 100644
index 0000000..9b791b6
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-curses_demo.ads
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Curses_Demo --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample.Curses_Demo is
+
+ procedure Demo;
+
+end Sample.Curses_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-explanation.adb b/ncurses-5.2/Ada95/samples/sample-explanation.adb
new file mode 100644
index 0000000..f42652c
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-explanation.adb
@@ -0,0 +1,408 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Explanation --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+-- Poor mans help system. This scans a sequential file for key lines and
+-- then reads the lines up to the next key. Those lines are presented in
+-- a window as help or explanation.
+--
+with Ada.Text_IO; use Ada.Text_IO;
+with Ada.Unchecked_Deallocation;
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+
+with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
+with Sample.Helpers; use Sample.Helpers;
+
+package body Sample.Explanation is
+
+ Help_Keys : constant String := "HELPKEYS";
+ In_Help : constant String := "INHELP";
+
+ File_Name : String := "explain.msg";
+ F : File_Type;
+
+ type Help_Line;
+ type Help_Line_Access is access Help_Line;
+ pragma Controlled (Help_Line_Access);
+ type String_Access is access String;
+ pragma Controlled (String_Access);
+
+ type Help_Line is
+ record
+ Prev, Next : Help_Line_Access;
+ Line : String_Access;
+ end record;
+
+ procedure Explain (Key : in String;
+ Win : in Window);
+
+ procedure Release_String is
+ new Ada.Unchecked_Deallocation (String,
+ String_Access);
+ procedure Release_Help_Line is
+ new Ada.Unchecked_Deallocation (Help_Line,
+ Help_Line_Access);
+
+ function Search (Key : String) return Help_Line_Access;
+ procedure Release_Help (Root : in out Help_Line_Access);
+
+ procedure Explain (Key : in String)
+ is
+ begin
+ Explain (Key, Null_Window);
+ end Explain;
+
+ procedure Explain (Key : in String;
+ Win : in Window)
+ is
+ -- Retrieve the text associated with this key and display it in this
+ -- window. If no window argument is passed, the routine will create
+ -- a temporary window and use it.
+
+ function Filter_Key return Real_Key_Code;
+ procedure Unknown_Key;
+ procedure Redo;
+ procedure To_Window (C : in out Help_Line_Access;
+ More : in out Boolean);
+
+ Frame : Window := Null_Window;
+
+ W : Window := Win;
+ K : Real_Key_Code;
+ P : Panel;
+
+ Height : Line_Count;
+ Width : Column_Count;
+ Help : Help_Line_Access := Search (Key);
+ Current : Help_Line_Access;
+ Top_Line : Help_Line_Access;
+
+ Has_More : Boolean;
+
+ procedure Unknown_Key
+ is
+ begin
+ Add (W, "Help message with ID ");
+ Add (W, Key);
+ Add (W, " not found.");
+ Add (W, Character'Val (10));
+ Add (W, "Press the Function key labelled 'Quit' key to continue.");
+ end Unknown_Key;
+
+ procedure Redo
+ is
+ H : Help_Line_Access := Top_Line;
+ begin
+ if Top_Line /= null then
+ for L in 0 .. (Height - 1) loop
+ Add (W, L, 0, H.Line.all);
+ exit when H.Next = null;
+ H := H.Next;
+ end loop;
+ else
+ Unknown_Key;
+ end if;
+ end Redo;
+
+ function Filter_Key return Real_Key_Code
+ is
+ K : Real_Key_Code;
+ begin
+ loop
+ K := Get_Key (W);
+ if K in Special_Key_Code'Range then
+ case K is
+ when HELP_CODE =>
+ if not Find_Context (In_Help) then
+ Push_Environment (In_Help, False);
+ Explain (In_Help, W);
+ Pop_Environment;
+ Redo;
+ end if;
+ when EXPLAIN_CODE =>
+ if not Find_Context (Help_Keys) then
+ Push_Environment (Help_Keys, False);
+ Explain (Help_Keys, W);
+ Pop_Environment;
+ Redo;
+ end if;
+ when others => exit;
+ end case;
+ else
+ exit;
+ end if;
+ end loop;
+ return K;
+ end Filter_Key;
+
+ procedure To_Window (C : in out Help_Line_Access;
+ More : in out Boolean)
+ is
+ L : Line_Position := 0;
+ begin
+ loop
+ Add (W, L, 0, C.Line.all);
+ L := L + 1;
+ exit when C.Next = null or else L = Height;
+ C := C.Next;
+ end loop;
+ if C.Next /= null then
+ pragma Assert (L = Height);
+ More := True;
+ else
+ More := False;
+ end if;
+ end To_Window;
+
+ begin
+ if W = Null_Window then
+ Push_Environment ("HELP");
+ Default_Labels;
+ Frame := New_Window (Lines - 2, Columns, 0, 0);
+ if Has_Colors then
+ Set_Background (Win => Frame,
+ Ch => (Ch => ' ',
+ Color => Help_Color,
+ Attr => Normal_Video));
+ Set_Character_Attributes (Win => Frame,
+ Attr => Normal_Video,
+ Color => Help_Color);
+ Erase (Frame);
+ end if;
+ Box (Frame);
+ Set_Character_Attributes (Frame, (Reverse_Video => True,
+ others => False));
+ Add (Frame, Lines - 3, 2, "Cursor Up/Down scrolls");
+ Set_Character_Attributes (Frame); -- Back to default.
+ Window_Title (Frame, "Explanation");
+ W := Derived_Window (Frame, Lines - 4, Columns - 2, 1, 1);
+ Refresh_Without_Update (Frame);
+ Get_Size (W, Height, Width);
+ Set_Meta_Mode (W);
+ Set_KeyPad_Mode (W);
+ Allow_Scrolling (W, True);
+ Set_Echo_Mode (False);
+ P := Create (Frame);
+ Top (P);
+ Update_Panels;
+ else
+ Clear (W);
+ Refresh_Without_Update (W);
+ end if;
+
+ Current := Help; Top_Line := Help;
+
+ if null = Help then
+ Unknown_Key;
+ loop
+ K := Filter_Key;
+ exit when K = QUIT_CODE;
+ end loop;
+ else
+ To_Window (Current, Has_More);
+ if Has_More then
+ -- This means there are more lines available, so we have to go
+ -- into a scroll manager.
+ loop
+ K := Filter_Key;
+ if K in Special_Key_Code'Range then
+ case K is
+ when Key_Cursor_Down =>
+ if Current.Next /= null then
+ Move_Cursor (W, Height - 1, 0);
+ Scroll (W, 1);
+ Current := Current.Next;
+ Top_Line := Top_Line.Next;
+ Add (W, Current.Line.all);
+ end if;
+ when Key_Cursor_Up =>
+ if Top_Line.Prev /= null then
+ Move_Cursor (W, 0, 0);
+ Scroll (W, -1);
+ Top_Line := Top_Line.Prev;
+ Current := Current.Prev;
+ Add (W, Top_Line.Line.all);
+ end if;
+ when QUIT_CODE => exit;
+ when others => null;
+ end case;
+ end if;
+ end loop;
+ else
+ loop
+ K := Filter_Key;
+ exit when K = QUIT_CODE;
+ end loop;
+ end if;
+ end if;
+
+ Clear (W);
+
+ if Frame /= Null_Window then
+ Clear (Frame);
+ Delete (P);
+ Delete (W);
+ Delete (Frame);
+ Pop_Environment;
+ end if;
+
+ Update_Panels;
+ Update_Screen;
+
+ Release_Help (Help);
+
+ end Explain;
+
+ function Search (Key : String) return Help_Line_Access
+ is
+ Last : Natural;
+ Buffer : String (1 .. 256);
+ Root : Help_Line_Access := null;
+ Current : Help_Line_Access;
+ Tail : Help_Line_Access := null;
+
+ function Next_Line return Boolean;
+
+ function Next_Line return Boolean
+ is
+ H_End : constant String := "#END";
+ begin
+ Get_Line (F, Buffer, Last);
+ if Last = H_End'Length and then H_End = Buffer (1 .. Last) then
+ return False;
+ else
+ return True;
+ end if;
+ end Next_Line;
+ begin
+ Reset (F);
+ Outer :
+ loop
+ exit when not Next_Line;
+ if Last = (1 + Key'Length) and then Key = Buffer (2 .. Last)
+ and then Buffer (1) = '#' then
+ loop
+ exit when not Next_Line;
+ exit when Buffer (1) = '#';
+ Current := new Help_Line'(null, null,
+ new String'(Buffer (1 .. Last)));
+ if Tail = null then
+ Release_Help (Root);
+ Root := Current;
+ else
+ Tail.Next := Current;
+ Current.Prev := Tail;
+ end if;
+ Tail := Current;
+ end loop;
+ exit Outer;
+ end if;
+ end loop Outer;
+ return Root;
+ end Search;
+
+ procedure Release_Help (Root : in out Help_Line_Access)
+ is
+ Next : Help_Line_Access;
+ begin
+ loop
+ exit when Root = null;
+ Next := Root.Next;
+ Release_String (Root.Line);
+ Release_Help_Line (Root);
+ Root := Next;
+ end loop;
+ end Release_Help;
+
+ procedure Explain_Context
+ is
+ begin
+ Explain (Context);
+ end Explain_Context;
+
+ procedure Notepad (Key : in String)
+ is
+ H : constant Help_Line_Access := Search (Key);
+ T : Help_Line_Access := H;
+ N : Line_Count := 1;
+ L : Line_Position := 0;
+ W : Window;
+ P : Panel;
+ begin
+ if H /= null then
+ loop
+ T := T.Next;
+ exit when T = null;
+ N := N + 1;
+ end loop;
+ W := New_Window (N + 2, Columns, Lines - N - 2, 0);
+ if Has_Colors then
+ Set_Background (Win => W,
+ Ch => (Ch => ' ',
+ Color => Notepad_Color,
+ Attr => Normal_Video));
+ Set_Character_Attributes (Win => W,
+ Attr => Normal_Video,
+ Color => Notepad_Color);
+ Erase (W);
+ end if;
+ Box (W);
+ Window_Title (W, "Notepad");
+ P := New_Panel (W);
+ T := H;
+ loop
+ Add (W, L + 1, 1, T.Line.all, Integer (Columns - 2));
+ L := L + 1;
+ T := T.Next;
+ exit when T = null;
+ end loop;
+ T := H;
+ Release_Help (T);
+ Refresh_Without_Update (W);
+ Notepad_To_Context (P);
+ end if;
+ end Notepad;
+
+begin
+ Open (F, In_File, File_Name);
+end Sample.Explanation;
+
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb b/ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb
new file mode 100644
index 0000000..92c8868
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-form_demo-aux.adb
@@ -0,0 +1,259 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Form_Demo.Aux --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
+
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Helpers; use Sample.Helpers;
+with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
+with Sample.Explanation; use Sample.Explanation;
+
+package body Sample.Form_Demo.Aux is
+
+ procedure Geometry (F : in Form;
+ L : out Line_Count; -- Lines used for menu
+ C : out Column_Count; -- Columns used for menu
+ Y : out Line_Position; -- Proposed Line for menu
+ X : out Column_Position) -- Proposed Column for menu
+ is
+ begin
+ Scale (F, L, C);
+
+ L := L + 2; -- count for frame at top and bottom
+ C := C + 2; -- "
+
+ -- Calculate horizontal coordinate at the screen center
+ X := (Columns - C) / 2;
+ Y := 1; -- start always in line 1
+ end Geometry;
+
+ function Create (F : Form;
+ Title : String;
+ Lin : Line_Position;
+ Col : Column_Position) return Panel
+ is
+ W, S : Window;
+ L : Line_Count;
+ C : Column_Count;
+ Y : Line_Position;
+ X : Column_Position;
+ Pan : Panel;
+ begin
+ Geometry (F, L, C, Y, X);
+ W := New_Window (L, C, Lin, Col);
+ Set_Meta_Mode (W);
+ Set_KeyPad_Mode (W);
+ if Has_Colors then
+ Set_Background (Win => W,
+ Ch => (Ch => ' ',
+ Color => Default_Colors,
+ Attr => Normal_Video));
+ Set_Character_Attributes (Win => W,
+ Color => Default_Colors,
+ Attr => Normal_Video);
+ Erase (W);
+ end if;
+ S := Derived_Window (W, L - 2, C - 2, 1, 1);
+ Set_Meta_Mode (S);
+ Set_KeyPad_Mode (S);
+ Box (W);
+ Set_Window (F, W);
+ Set_Sub_Window (F, S);
+ if Title'Length > 0 then
+ Window_Title (W, Title);
+ end if;
+ Pan := New_Panel (W);
+ Post (F);
+ return Pan;
+ end Create;
+
+ procedure Destroy (F : in Form;
+ P : in out Panel)
+ is
+ W, S : Window;
+ begin
+ W := Get_Window (F);
+ S := Get_Sub_Window (F);
+ Post (F, False);
+ Erase (W);
+ Delete (P);
+ Set_Window (F, Null_Window);
+ Set_Sub_Window (F, Null_Window);
+ Delete (S);
+ Delete (W);
+ Update_Panels;
+ end Destroy;
+
+ function Get_Request (F : Form;
+ P : Panel;
+ Handle_CRLF : Boolean := True) return Key_Code
+ is
+ W : constant Window := Get_Window (F);
+ K : Real_Key_Code;
+ Ch : Character;
+ begin
+ Top (P);
+ loop
+ K := Get_Key (W);
+ if K in Special_Key_Code'Range then
+ case K is
+ when HELP_CODE => Explain_Context;
+ when EXPLAIN_CODE => Explain ("FORMKEYS");
+ when Key_Home => return F_First_Field;
+ when Key_End => return F_Last_Field;
+ when QUIT_CODE => return QUIT;
+ when Key_Cursor_Down => return F_Down_Char;
+ when Key_Cursor_Up => return F_Up_Char;
+ when Key_Cursor_Left => return F_Previous_Char;
+ when Key_Cursor_Right => return F_Next_Char;
+ when Key_Next_Page => return F_Next_Page;
+ when Key_Previous_Page => return F_Previous_Page;
+ when Key_Backspace => return F_Delete_Previous;
+ when Key_Clear_Screen => return F_Clear_Field;
+ when Key_Clear_End_Of_Line => return F_Clear_EOF;
+ when others => return K;
+ end case;
+ elsif K in Normal_Key_Code'Range then
+ Ch := Character'Val (K);
+ case Ch is
+ when CAN => return QUIT; -- CTRL-X
+
+ when ACK => return F_Next_Field; -- CTRL-F
+ when STX => return F_Previous_Field; -- CTRL-B
+ when FF => return F_Left_Field; -- CTRL-L
+ when DC2 => return F_Right_Field; -- CTRL-R
+ when NAK => return F_Up_Field; -- CTRL-U
+ when EOT => return F_Down_Field; -- CTRL-D
+
+ when ETB => return F_Next_Word; -- CTRL-W
+ when DC4 => return F_Previous_Word; -- CTRL-T
+
+ when SOH => return F_Begin_Field; -- CTRL-A
+ when ENQ => return F_End_Field; -- CTRL-E
+
+ when HT => return F_Insert_Char; -- CTRL-I
+ when SI => return F_Insert_Line; -- CTRL-O
+ when SYN => return F_Delete_Char; -- CTRL-V
+ when BS => return F_Delete_Previous; -- CTRL-H
+ when EM => return F_Delete_Line; -- CTRL-Y
+ when BEL => return F_Delete_Word; -- CTRL-G
+ when VT => return F_Clear_EOF; -- CTRL-K
+
+ when SO => return F_Next_Choice; -- CTRL-N
+ when DLE => return F_Previous_Choice; -- CTRL-P
+
+ when CR | LF =>
+ if Handle_CRLF then
+ return F_New_Line;
+ else
+ return K;
+ end if;
+ when others => return K;
+ end case;
+ else
+ return K;
+ end if;
+ end loop;
+ end Get_Request;
+
+ function Make (Top : Line_Position;
+ Left : Column_Position;
+ Text : String) return Field
+ is
+ Fld : Field;
+ C : Column_Count := Column_Count (Text'Length);
+ begin
+ Fld := New_Field (1, C, Top, Left);
+ Set_Buffer (Fld, 0, Text);
+ Switch_Options (Fld, (Active => True, others => False), False);
+ if Has_Colors then
+ Set_Background (Fld => Fld, Color => Default_Colors);
+ end if;
+ return Fld;
+ end Make;
+
+ function Make (Height : Line_Count := 1;
+ Width : Column_Count;
+ Top : Line_Position;
+ Left : Column_Position;
+ Off_Screen : Natural := 0) return Field
+ is
+ Fld : Field := New_Field (Height, Width, Top, Left, Off_Screen);
+ begin
+ if Has_Colors then
+ Set_Foreground (Fld => Fld, Color => Form_Fore_Color);
+ Set_Background (Fld => Fld, Color => Form_Back_Color);
+ else
+ Set_Background (Fld, (Reverse_Video => True, others => False));
+ end if;
+ return Fld;
+ end Make;
+
+ function Default_Driver (F : Form;
+ K : Key_Code;
+ P : Panel) return Boolean
+ is
+ begin
+ if K in User_Key_Code'Range and then K = QUIT then
+ if Driver (F, F_Validate_Field) = Form_Ok then
+ return True;
+ end if;
+ end if;
+ return False;
+ end Default_Driver;
+
+ function Count_Active (F : Form) return Natural
+ is
+ N : Natural := 0;
+ O : Field_Option_Set;
+ H : constant Natural := Field_Count (F);
+ begin
+ if H > 0 then
+ for I in 1 .. H loop
+ Get_Options (Fields (F, I), O);
+ if O.Active then
+ N := N + 1;
+ end if;
+ end loop;
+ end if;
+ return N;
+ end Count_Active;
+
+end Sample.Form_Demo.Aux;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads b/ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads
new file mode 100644
index 0000000..d3e6d8d
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-form_demo-aux.ads
@@ -0,0 +1,92 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Form_Demo.Aux --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
+
+package Sample.Form_Demo.Aux is
+
+ procedure Geometry (F : in Form;
+ L : out Line_Count;
+ C : out Column_Count;
+ Y : out Line_Position;
+ X : out Column_Position);
+ -- Calculate the geometry for a panel beeing able to be used to display
+ -- the menu.
+
+ function Create (F : Form;
+ Title : String;
+ Lin : Line_Position;
+ Col : Column_Position) return Panel;
+ -- Create a panel decorated with a frame and the title at the specified
+ -- position. The dimension of the panel is derived from the menus layout.
+
+ procedure Destroy (F : in Form;
+ P : in out Panel);
+ -- Destroy all the windowing structures associated with this menu and
+ -- panel.
+
+ function Get_Request (F : Form;
+ P : Panel;
+ Handle_CRLF : Boolean := True) return Key_Code;
+ -- Centralized request driver for all menus in this sample. This
+ -- gives us a common key binding for all menus.
+
+ function Make (Top : Line_Position;
+ Left : Column_Position;
+ Text : String) return Field;
+ -- create a label
+
+ function Make (Height : Line_Count := 1;
+ Width : Column_Count;
+ Top : Line_Position;
+ Left : Column_Position;
+ Off_Screen : Natural := 0) return Field;
+ -- create a editable field
+
+ function Default_Driver (F : Form;
+ K : Key_Code;
+ P : Panel) return Boolean;
+
+ function Count_Active (F : Form) return Natural;
+ -- Count the number of active fields in the form
+
+end Sample.Form_Demo.Aux;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb b/ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb
new file mode 100644
index 0000000..6cffc9c
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-form_demo-handler.adb
@@ -0,0 +1,97 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Form_Demo.Handler --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Sample.Form_Demo.Aux;
+
+package body Sample.Form_Demo.Handler is
+
+ package Aux renames Sample.Form_Demo.Aux;
+
+ procedure Drive_Me (F : in Form;
+ Title : in String := "")
+ is
+ L : Line_Count;
+ C : Column_Count;
+ Y : Line_Position;
+ X : Column_Position;
+ begin
+ Aux.Geometry (F, L, C, Y, X);
+ Drive_Me (F, Y, X, Title);
+ end Drive_Me;
+
+ procedure Drive_Me (F : in Form;
+ Lin : in Line_Position;
+ Col : in Column_Position;
+ Title : in String := "")
+ is
+ Pan : Panel := Aux.Create (F, Title, Lin, Col);
+ V : Cursor_Visibility := Normal;
+ Handle_CRLF : Boolean := True;
+
+ begin
+ Set_Cursor_Visibility (V);
+ if Aux.Count_Active (F) = 1 then
+ Handle_CRLF := False;
+ end if;
+ loop
+ declare
+ K : Key_Code := Aux.Get_Request (F, Pan, Handle_CRLF);
+ R : Driver_Result;
+ begin
+ if (K = 13 or else K = 10) and then not Handle_CRLF then
+ R := Unknown_Request;
+ else
+ R := Driver (F, K);
+ end if;
+ case R is
+ when Form_Ok => null;
+ when Unknown_Request =>
+ if My_Driver (F, K, Pan) then
+ exit;
+ end if;
+ when others => Beep;
+ end case;
+ end;
+ end loop;
+ Set_Cursor_Visibility (V);
+ Aux.Destroy (F, Pan);
+ end Drive_Me;
+
+end Sample.Form_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads b/ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads
new file mode 100644
index 0000000..9f8da7d
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-form_demo-handler.ads
@@ -0,0 +1,64 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Form_Demo.Handler --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses;
+use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels;
+use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Forms;
+use Terminal_Interface.Curses.Forms;
+
+generic
+ with function My_Driver (Frm : Form;
+ K : Key_Code;
+ Pan : Panel) return Boolean;
+package Sample.Form_Demo.Handler is
+
+ procedure Drive_Me (F : in Form;
+ Lin : in Line_Position;
+ Col : in Column_Position;
+ Title : in String := "");
+ -- Position the menu at the given point and drive it.
+
+ procedure Drive_Me (F : in Form;
+ Title : in String := "");
+ -- Center menu and drive it.
+
+end Sample.Form_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo.adb b/ncurses-5.2/Ada95/samples/sample-form_demo.adb
new file mode 100644
index 0000000..ec4a762
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-form_demo.adb
@@ -0,0 +1,134 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Form_Demo --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
+with Terminal_Interface.Curses.Forms.Field_User_Data;
+with Terminal_Interface.Curses.Forms.Form_User_Data;
+with Sample.My_Field_Type; use Sample.My_Field_Type;
+with Sample.Explanation; use Sample.Explanation;
+with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
+with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
+with Sample.Form_Demo.Handler;
+
+with Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
+with Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
+use Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
+with Terminal_Interface.Curses.Forms.Field_Types.IntField;
+use Terminal_Interface.Curses.Forms.Field_Types.IntField;
+
+package body Sample.Form_Demo is
+
+ type User_Data is
+ record
+ Data : Integer;
+ end record;
+ type User_Access is access User_Data;
+
+ package Fld_U is new
+ Terminal_Interface.Curses.Forms.Field_User_Data (User_Data,
+ User_Access);
+
+ package Frm_U is new
+ Terminal_Interface.Curses.Forms.Form_User_Data (User_Data,
+ User_Access);
+
+ type Weekday is (Sunday, Monday, Tuesday, Wednesday, Thursday,
+ Friday, Saturday);
+
+ package Weekday_Enum is new
+ Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada (Weekday);
+
+ Enum_Field : constant Enumeration_Field :=
+ Weekday_Enum.Create;
+
+ procedure Demo
+ is
+
+ Mft : My_Data := (Ch => 'X');
+
+ FA : Field_Array_Access := new Field_Array'
+ (Make (0, 14, "Sample Entry Form"),
+ Make (2, 0, "WeekdayEnumeration"),
+ Make (2, 20, "Numeric 1-10"),
+ Make (2, 34, "Only 'X'"),
+ Make (5, 0, "Multiple Lines offscreen(Scroll)"),
+ Make (Width => 18, Top => 3, Left => 0),
+ Make (Width => 12, Top => 3, Left => 20),
+ Make (Width => 12, Top => 3, Left => 34),
+ Make (Width => 46, Top => 6, Left => 0, Height => 4, Off_Screen => 2),
+ Null_Field
+ );
+
+ Frm : Terminal_Interface.Curses.Forms.Form := Create (FA);
+
+ I_F : constant Integer_Field := (Precision => 0,
+ Lower_Limit => 1,
+ Upper_Limit => 10);
+
+ F1, F2 : User_Access;
+
+ package Fh is new Sample.Form_Demo.Handler (Default_Driver);
+
+ begin
+ Push_Environment ("FORM00");
+ Notepad ("FORM-PAD00");
+ Default_Labels;
+
+ Set_Field_Type (FA (6), Enum_Field);
+ Set_Field_Type (FA (7), I_F);
+ Set_Field_Type (FA (8), Mft);
+
+ F1 := new User_Data'(Data => 4711);
+ Fld_U.Set_User_Data (FA (1), F1);
+
+ Fh.Drive_Me (Frm);
+
+ Fld_U.Get_User_Data (FA (1), F2);
+ pragma Assert (F1 = F2);
+ pragma Assert (F1.Data = F2.Data);
+
+ Pop_Environment;
+ Delete (Frm);
+
+ Free (FA, True);
+ end Demo;
+
+end Sample.Form_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-form_demo.ads b/ncurses-5.2/Ada95/samples/sample-form_demo.ads
new file mode 100644
index 0000000..61d9cbf
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-form_demo.ads
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Form_Demo --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample.Form_Demo is
+
+ procedure Demo;
+
+end Sample.Form_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-function_key_setting.adb b/ncurses-5.2/Ada95/samples/sample-function_key_setting.adb
new file mode 100644
index 0000000..3579153
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-function_key_setting.adb
@@ -0,0 +1,213 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Function_Key_Setting --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Unchecked_Deallocation;
+with Sample.Manifest; use Sample.Manifest;
+
+-- This package implements a simple stack of function key label environments.
+--
+package body Sample.Function_Key_Setting is
+
+ Max_Label_Length : constant Positive := 8;
+ Number_Of_Keys : Label_Number := Label_Number'Last;
+ Justification : Label_Justification := Left;
+
+ subtype Label is String (1 .. Max_Label_Length);
+ type Label_Array is array (Label_Number range <>) of Label;
+
+ type Key_Environment (N : Label_Number := Label_Number'Last);
+ type Env_Ptr is access Key_Environment;
+ pragma Controlled (Env_Ptr);
+
+ type String_Access is access String;
+ pragma Controlled (String_Access);
+
+ Active_Context : String_Access := new String'("MAIN");
+ Active_Notepad : Panel := Null_Panel;
+
+ type Key_Environment (N : Label_Number := Label_Number'Last) is
+ record
+ Prev : Env_Ptr;
+ Help : String_Access;
+ Notepad : Panel;
+ Labels : Label_Array (1 .. N);
+ end record;
+
+ procedure Release_String is
+ new Ada.Unchecked_Deallocation (String,
+ String_Access);
+
+ procedure Release_Environment is
+ new Ada.Unchecked_Deallocation (Key_Environment,
+ Env_Ptr);
+
+ Top_Of_Stack : Env_Ptr := null;
+
+ procedure Push_Environment (Key : in String;
+ Reset : in Boolean := True)
+ is
+ P : constant Env_Ptr := new Key_Environment (Number_Of_Keys);
+ begin
+ -- Store the current labels in the environment
+ for I in 1 .. Number_Of_Keys loop
+ Get_Soft_Label_Key (I, P.Labels (I));
+ if Reset then
+ Set_Soft_Label_Key (I, " ");
+ end if;
+ end loop;
+ P.Prev := Top_Of_Stack;
+ -- now store active help context and notepad
+ P.Help := Active_Context;
+ P.Notepad := Active_Notepad;
+ -- The notepad must now vanish and the new notepad is empty.
+ if (P.Notepad /= Null_Panel) then
+ Hide (P.Notepad);
+ Update_Panels;
+ end if;
+ Active_Notepad := Null_Panel;
+ Active_Context := new String'(Key);
+
+ Top_Of_Stack := P;
+ if Reset then
+ Refresh_Soft_Label_Keys_Without_Update;
+ end if;
+ end Push_Environment;
+
+ procedure Pop_Environment
+ is
+ P : Env_Ptr := Top_Of_Stack;
+ begin
+ if Top_Of_Stack = null then
+ raise Function_Key_Stack_Error;
+ else
+ for I in 1 .. Number_Of_Keys loop
+ Set_Soft_Label_Key (I, P.Labels (I), Justification);
+ end loop;
+ pragma Assert (Active_Context /= null);
+ Release_String (Active_Context);
+ Active_Context := P.Help;
+ Refresh_Soft_Label_Keys_Without_Update;
+ Notepad_To_Context (P.Notepad);
+ Top_Of_Stack := P.Prev;
+ Release_Environment (P);
+ end if;
+ end Pop_Environment;
+
+ function Context return String
+ is
+ begin
+ if Active_Context /= null then
+ return Active_Context.all;
+ else
+ return "";
+ end if;
+ end Context;
+
+ function Find_Context (Key : String) return Boolean
+ is
+ P : Env_Ptr := Top_Of_Stack;
+ begin
+ if Active_Context.all = Key then
+ return True;
+ else
+ loop
+ exit when P = null;
+ if P.Help.all = Key then
+ return True;
+ else
+ P := P.Prev;
+ end if;
+ end loop;
+ return False;
+ end if;
+ end Find_Context;
+
+ procedure Notepad_To_Context (Pan : in Panel)
+ is
+ W : Window;
+ begin
+ if Active_Notepad /= Null_Panel then
+ W := Get_Window (Active_Notepad);
+ Clear (W);
+ Delete (Active_Notepad);
+ Delete (W);
+ end if;
+ Active_Notepad := Pan;
+ if Pan /= Null_Panel then
+ Top (Pan);
+ end if;
+ Update_Panels;
+ Update_Screen;
+ end Notepad_To_Context;
+
+ procedure Initialize (Mode : Soft_Label_Key_Format := PC_Style;
+ Just : Label_Justification := Left)
+ is
+ begin
+ case Mode is
+ when PC_Style .. PC_Style_With_Index
+ => Number_Of_Keys := 12;
+ when others
+ => Number_Of_Keys := 8;
+ end case;
+ Init_Soft_Label_Keys (Mode);
+ Justification := Just;
+ end Initialize;
+
+ procedure Default_Labels
+ is
+ begin
+ Set_Soft_Label_Key (FKEY_QUIT, "Quit");
+ Set_Soft_Label_Key (FKEY_HELP, "Help");
+ Set_Soft_Label_Key (FKEY_EXPLAIN, "Keys");
+ Refresh_Soft_Label_Keys_Without_Update;
+ end Default_Labels;
+
+ function Notepad_Window return Window
+ is
+ begin
+ if Active_Notepad /= Null_Panel then
+ return Get_Window (Active_Notepad);
+ else
+ return Null_Window;
+ end if;
+ end Notepad_Window;
+
+end Sample.Function_Key_Setting;
diff --git a/ncurses-5.2/Ada95/samples/sample-function_key_setting.ads b/ncurses-5.2/Ada95/samples/sample-function_key_setting.ads
new file mode 100644
index 0000000..eb375d3
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-function_key_setting.ads
@@ -0,0 +1,82 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Function_Key_Setting --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+
+-- This package implements a simple stack of function key label environments.
+--
+package Sample.Function_Key_Setting is
+
+ procedure Push_Environment (Key : in String;
+ Reset : in Boolean := True);
+ -- Push the definition of the current function keys on an internal
+ -- stack. If the reset flag is true, all labels are reset while
+ -- pushed, so the new environment can assume a tabula rasa.
+ -- The Key defines the new Help Context associated with the new
+ -- Environment. This saves also the currently active Notepad.
+
+ procedure Pop_Environment;
+ -- Pop the Definitions from the stack and make them the current ones.
+ -- This also restores the Help context and the previous Notepad.
+
+ procedure Initialize (Mode : Soft_Label_Key_Format := PC_Style;
+ Just : Label_Justification := Left);
+ -- Initialize the environment
+
+ function Context return String;
+ -- Return the current context identitfier
+
+ function Find_Context (Key : String) return Boolean;
+ -- Look for a context, return true if it is in the stack,
+ -- false otherwise.
+
+ procedure Notepad_To_Context (Pan : in Panel);
+ -- Add a panel representing a notepad to the current context.
+
+ Function_Key_Stack_Error : exception;
+
+ procedure Default_Labels;
+ -- Set the default labels used in all environments
+
+ function Notepad_Window return Window;
+ -- Return the current notepad window or Null_Window if there is none.
+
+end Sample.Function_Key_Setting;
diff --git a/ncurses-5.2/Ada95/samples/sample-header_handler.adb b/ncurses-5.2/Ada95/samples/sample-header_handler.adb
new file mode 100644
index 0000000..77cd187
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-header_handler.adb
@@ -0,0 +1,180 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Header_Handler --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Calendar; use Ada.Calendar;
+with Terminal_Interface.Curses.Text_IO.Integer_IO;
+with Sample.Manifest; use Sample.Manifest;
+
+-- This package handles the painting of the header line of the screen.
+--
+package body Sample.Header_Handler is
+
+ package Int_IO is new
+ Terminal_Interface.Curses.Text_IO.Integer_IO (Integer);
+ use Int_IO;
+
+ Header_Window : Window := Null_Window;
+
+ Display_Hour : Integer := -1; -- hour last displayed
+ Display_Min : Integer := -1; -- minute last displayed
+ Display_Day : Integer := -1; -- day last displayed
+ Display_Month : Integer := -1; -- month last displayed
+
+ -- This is the routine handed over to the curses library to be called
+ -- as initialization routine when ripping of the header lines from
+ -- the screen. This routine must follow C conventions.
+ function Init_Header_Window (Win : Window;
+ Columns : Column_Count) return Integer;
+ pragma Convention (C, Init_Header_Window);
+
+ procedure Internal_Update_Header_Window (Do_Update : in Boolean);
+
+
+ -- The initialization must be called before Init_Screen. It steals two
+ -- lines from the top of the screen.
+ procedure Init_Header_Handler
+ is
+ begin
+ Rip_Off_Lines (2, Init_Header_Window'Access);
+ end Init_Header_Handler;
+
+ procedure N_Out (N : in Integer);
+
+ -- Emit a two digit number and ensure that a leading zero is generated if
+ -- necessary.
+ procedure N_Out (N : in Integer)
+ is
+ begin
+ if N < 10 then
+ Add (Header_Window, '0');
+ Put (Header_Window, N, 1);
+ else
+ Put (Header_Window, N, 2);
+ end if;
+ end N_Out;
+
+ -- Paint the header window. The input parameter is a flag indicating
+ -- whether or not the screen should be updated physically after painting.
+ procedure Internal_Update_Header_Window (Do_Update : in Boolean)
+ is
+ type Month_Name_Array is
+ array (Month_Number'First .. Month_Number'Last) of String (1 .. 9);
+
+ Month_Names : constant Month_Name_Array :=
+ ("January ",
+ "February ",
+ "March ",
+ "April ",
+ "May ",
+ "June ",
+ "July ",
+ "August ",
+ "September",
+ "October ",
+ "November ",
+ "December ");
+
+ Now : Time := Clock;
+ Sec : Integer := Integer (Seconds (Now));
+ Hour : Integer := Sec / 3600;
+ Minute : Integer := (Sec - Hour * 3600) / 60;
+ Mon : Month_Number := Month (Now);
+ D : Day_Number := Day (Now);
+ begin
+ if Header_Window /= Null_Window then
+ if Minute /= Display_Min or else Hour /= Display_Hour
+ or else Display_Day /= D or else Display_Month /= Mon then
+ Move_Cursor (Header_Window, 0, 0);
+ N_Out (D); Add (Header_Window, '.');
+ Add (Header_Window, Month_Names (Mon));
+ Move_Cursor (Header_Window, 1, 0);
+ N_Out (Hour); Add (Header_Window, ':');
+ N_Out (Minute);
+ Display_Min := Minute;
+ Display_Hour := Hour;
+ Display_Month := Mon;
+ Display_Day := D;
+ Refresh_Without_Update (Header_Window);
+ if Do_Update then
+ Update_Screen;
+ end if;
+ end if;
+ end if;
+ end Internal_Update_Header_Window;
+
+ -- This routine is called in the keyboard input timeout handler. So it will
+ -- periodically update the header line of the screen.
+ procedure Update_Header_Window
+ is
+ begin
+ Internal_Update_Header_Window (True);
+ end Update_Header_Window;
+
+ function Init_Header_Window (Win : Window;
+ Columns : Column_Count) return Integer
+ is
+ Title : constant String := "Ada 95 ncurses Binding Sample";
+ Pos : Column_Position;
+ begin
+ Header_Window := Win;
+ if Win /= Null_Window then
+ if Has_Colors then
+ Set_Background (Win => Win,
+ Ch => (Ch => ' ',
+ Color => Header_Color,
+ Attr => Normal_Video));
+ Set_Character_Attributes (Win => Win,
+ Attr => Normal_Video,
+ Color => Header_Color);
+ Erase (Win);
+ end if;
+ Leave_Cursor_After_Update (Win, True);
+ Pos := Columns - Column_Position (Title'Length);
+ Add (Win, 0, Pos / 2, Title);
+ -- In this phase we must not allow a physical update, because
+ -- ncurses isn´t properly initialized at this point.
+ Internal_Update_Header_Window (False);
+ return 0;
+ else
+ return -1;
+ end if;
+ end Init_Header_Window;
+
+end Sample.Header_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-header_handler.ads b/ncurses-5.2/Ada95/samples/sample-header_handler.ads
new file mode 100644
index 0000000..35973b3
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-header_handler.ads
@@ -0,0 +1,53 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Header_Handler --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+-- This package handles the painting of the header line of the screen.
+--
+package Sample.Header_Handler is
+
+ procedure Init_Header_Handler;
+ -- Initialize the handler for the headerlines.
+
+ procedure Update_Header_Window;
+ -- Update the information in the header window
+
+end Sample.Header_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-helpers.adb b/ncurses-5.2/Ada95/samples/sample-helpers.adb
new file mode 100644
index 0000000..7b15895
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-helpers.adb
@@ -0,0 +1,69 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Helpers --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+with Sample.Explanation; use Sample.Explanation;
+
+-- This package contains some conveniant helper routines used throughout
+-- this example.
+--
+package body Sample.Helpers is
+
+ procedure Window_Title (Win : in Window;
+ Title : in String)
+ is
+ Height : Line_Count;
+ Width : Column_Count;
+ Pos : Column_Position := 0;
+ begin
+ Get_Size (Win, Height, Width);
+ if Title'Length < Width then
+ Pos := (Width - Title'Length) / 2;
+ end if;
+ Add (Win, 0, Pos, Title);
+ end Window_Title;
+
+ procedure Not_Implemented is
+ begin
+ Explain ("NOTIMPL");
+ end Not_Implemented;
+
+end Sample.Helpers;
diff --git a/ncurses-5.2/Ada95/samples/sample-helpers.ads b/ncurses-5.2/Ada95/samples/sample-helpers.ads
new file mode 100644
index 0000000..f8dc0d9
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-helpers.ads
@@ -0,0 +1,54 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Helpers --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+-- This package contains some conveniant helper routines used throughout
+-- this example.
+--
+package Sample.Helpers is
+
+ procedure Window_Title (Win : in Window;
+ Title : in String);
+ -- Put a title string into the first line of the window
+
+ procedure Not_Implemented;
+
+end Sample.Helpers;
diff --git a/ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb b/ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb
new file mode 100644
index 0000000..8dfda23
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-keyboard_handler.adb
@@ -0,0 +1,191 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Keyboard_Handler --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Strings; use Ada.Strings;
+with Ada.Strings.Fixed; use Ada.Strings.Fixed;
+with Ada.Strings.Maps.Constants; use Ada.Strings.Maps.Constants;
+with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
+with Ada.Characters.Handling; use Ada.Characters.Handling;
+
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
+with Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
+use Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
+
+with Sample.Header_Handler; use Sample.Header_Handler;
+with Sample.Form_Demo.Aux; use Sample.Form_Demo.Aux;
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Form_Demo.Handler;
+
+-- This package contains a centralized keyboard handler used throughout
+-- this example. The handler establishes a timeout mechanism that provides
+-- periodical updates of the common header lines used in this example.
+--
+
+package body Sample.Keyboard_Handler is
+
+ In_Command : Boolean := False;
+
+ function Get_Key (Win : Window := Standard_Window) return Real_Key_Code
+ is
+ K : Real_Key_Code;
+
+ function Command return Real_Key_Code;
+
+
+ function Command return Real_Key_Code
+ is
+ function My_Driver (F : Form;
+ C : Key_Code;
+ P : Panel) return Boolean;
+ package Fh is new Sample.Form_Demo.Handler (My_Driver);
+
+ type Label_Array is array (Label_Number) of String (1 .. 8);
+
+ Labels : Label_Array;
+
+ FA : Field_Array_Access := new Field_Array'
+ (Make (0, 0, "Command:"),
+ Make (Top => 0, Left => 9, Width => Columns - 11),
+ Null_Field);
+
+ K : Real_Key_Code := Key_None;
+ N : Natural := 0;
+
+ function My_Driver (F : Form;
+ C : Key_Code;
+ P : Panel) return Boolean
+ is
+ Ch : Character;
+ begin
+ if C in User_Key_Code'Range and then C = QUIT then
+ if Driver (F, F_Validate_Field) = Form_Ok then
+ K := Key_None;
+ return True;
+ end if;
+ elsif C in Normal_Key_Code'Range then
+ Ch := Character'Val (C);
+ if (Ch = LF or else Ch = CR) then
+ if Driver (F, F_Validate_Field) = Form_Ok then
+ declare
+ Buffer : String (1 .. Positive (Columns - 11));
+ Cmdc : String (1 .. 8);
+ begin
+ Get_Buffer (Fld => FA (2), Str => Buffer);
+ Trim (Buffer, Left);
+ if Buffer (1) /= ' ' then
+ Cmdc := To_Upper (Buffer (Cmdc'Range));
+ for I in Labels'Range loop
+ if Cmdc = Labels (I) then
+ K := Function_Key_Code
+ (Function_Key_Number (I));
+ exit;
+ end if;
+ end loop;
+ end if;
+ return True;
+ end;
+ end if;
+ end if;
+ end if;
+ return False;
+ end My_Driver;
+
+ begin
+ In_Command := True;
+ for I in Label_Number'Range loop
+ Get_Soft_Label_Key (I, Labels (I));
+ Trim (Labels (I), Left);
+ Translate (Labels (I), Upper_Case_Map);
+ if Labels (I) (1) /= ' ' then
+ N := N + 1;
+ end if;
+ end loop;
+ if N > 0 then -- some labels were really set
+ declare
+ Enum_Info : Enumeration_Info (N);
+ Enum_Field : Enumeration_Field;
+ J : Positive := Enum_Info.Names'First;
+
+ Frm : Form := Create (FA);
+
+ begin
+ for I in Label_Number'Range loop
+ if Labels (I) (1) /= ' ' then
+ Enum_Info.Names (J) := new String'(Labels (I));
+ J := J + 1;
+ end if;
+ end loop;
+ Enum_Field := Create (Enum_Info, True);
+ Set_Field_Type (FA (2), Enum_Field);
+ Set_Background (FA (2), Normal_Video);
+
+ Fh.Drive_Me (Frm, Lines - 3, 0);
+ Delete (Frm);
+ Update_Panels; Update_Screen;
+ end;
+ end if;
+ Free (FA, True);
+ In_Command := False;
+ return K;
+ end Command;
+
+ begin
+ Set_Timeout_Mode (Win, Delayed, 30000);
+ loop
+ K := Get_Keystroke (Win);
+ if K = Key_None then -- a timeout occured
+ Update_Header_Window;
+ elsif K = 3 and then not In_Command then -- CTRL-C
+ K := Command;
+ exit when K /= Key_None;
+ else
+ exit;
+ end if;
+ end loop;
+ return K;
+ end Get_Key;
+
+ procedure Init_Keyboard_Handler is
+ begin
+ null;
+ end Init_Keyboard_Handler;
+
+end Sample.Keyboard_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads b/ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads
new file mode 100644
index 0000000..5601aa4
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-keyboard_handler.ads
@@ -0,0 +1,55 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Keyboard_Handler --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+-- This package contains a centralized keyboard handler used throughout
+-- this example. The handler establishes a timeout mechanism that provides
+-- periodical updates of the common header lines used in this example.
+--
+package Sample.Keyboard_Handler is
+
+ function Get_Key (Win : Window := Standard_Window) return Real_Key_Code;
+ -- The central routine for handling keystrokes.
+
+ procedure Init_Keyboard_Handler;
+ -- Initialize the keyboard
+
+end Sample.Keyboard_Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-manifest.ads b/ncurses-5.2/Ada95/samples/sample-manifest.ads
new file mode 100644
index 0000000..7ed79e1
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-manifest.ads
@@ -0,0 +1,67 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Manifest --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+
+package Sample.Manifest is
+
+ QUIT : constant User_Key_Code := User_Key_Code'First;
+ SELECT_ITEM : constant User_Key_Code := QUIT + 1;
+
+ FKEY_HELP : constant Label_Number := 1;
+ HELP_CODE : constant Special_Key_Code := Key_F1;
+ FKEY_EXPLAIN : constant Label_Number := 2;
+ EXPLAIN_CODE : constant Special_Key_Code := Key_F2;
+ FKEY_QUIT : constant Label_Number := 3;
+ QUIT_CODE : constant Special_Key_Code := Key_F3;
+
+ Menu_Marker : constant String := "=> ";
+
+ Default_Colors : constant Redefinable_Color_Pair := 1;
+ Menu_Fore_Color : constant Redefinable_Color_Pair := 2;
+ Menu_Back_Color : constant Redefinable_Color_Pair := 3;
+ Menu_Grey_Color : constant Redefinable_Color_Pair := 4;
+ Form_Fore_Color : constant Redefinable_Color_Pair := 5;
+ Form_Back_Color : constant Redefinable_Color_Pair := 6;
+ Notepad_Color : constant Redefinable_Color_Pair := 7;
+ Help_Color : constant Redefinable_Color_Pair := 8;
+ Header_Color : constant Redefinable_Color_Pair := 9;
+
+end Sample.Manifest;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb b/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb
new file mode 100644
index 0000000..2c1931c
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.adb
@@ -0,0 +1,204 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Menu_Demo.Aux --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Characters.Latin_1; use Ada.Characters.Latin_1;
+
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Helpers; use Sample.Helpers;
+with Sample.Keyboard_Handler; use Sample.Keyboard_Handler;
+with Sample.Explanation; use Sample.Explanation;
+
+package body Sample.Menu_Demo.Aux is
+
+ procedure Geometry (M : in Menu;
+ L : out Line_Count;
+ C : out Column_Count;
+ Y : out Line_Position;
+ X : out Column_Position;
+ Fy : out Line_Position;
+ Fx : out Column_Position);
+
+ procedure Geometry (M : in Menu;
+ L : out Line_Count; -- Lines used for menu
+ C : out Column_Count; -- Columns used for menu
+ Y : out Line_Position; -- Proposed Line for menu
+ X : out Column_Position; -- Proposed Column for menu
+ Fy : out Line_Position; -- Vertical inner frame
+ Fx : out Column_Position) -- Horiz. inner frame
+ is
+ Spc_Desc : Column_Position; -- spaces between description and item
+ begin
+ Set_Mark (M, Menu_Marker);
+
+ Spacing (M, Spc_Desc, Fy, Fx);
+ Scale (M, L, C);
+
+ Fx := Fx + Column_Position (Fy - 1); -- looks a bit nicer
+
+ L := L + 2 * Fy; -- count for frame at top and bottom
+ C := C + 2 * Fx; -- "
+
+ -- Calculate horizontal coordinate at the screen center
+ X := (Columns - C) / 2;
+ Y := 1; -- always startin line 1
+
+ end Geometry;
+
+ procedure Geometry (M : in Menu;
+ L : out Line_Count; -- Lines used for menu
+ C : out Column_Count; -- Columns used for menu
+ Y : out Line_Position; -- Proposed Line for menu
+ X : out Column_Position) -- Proposed Column for menu
+ is
+ Fy : Line_Position;
+ Fx : Column_Position;
+ begin
+ Geometry (M, L, C, Y, X, Fy, Fx);
+ end Geometry;
+
+ function Create (M : Menu;
+ Title : String;
+ Lin : Line_Position;
+ Col : Column_Position) return Panel
+ is
+ W, S : Window;
+ L : Line_Count;
+ C : Column_Count;
+ Y, Fy : Line_Position;
+ X, Fx : Column_Position;
+ Pan : Panel;
+ begin
+ Geometry (M, L, C, Y, X, Fy, Fx);
+ W := New_Window (L, C, Lin, Col);
+ Set_Meta_Mode (W);
+ Set_KeyPad_Mode (W);
+ if Has_Colors then
+ Set_Background (Win => W,
+ Ch => (Ch => ' ',
+ Color => Menu_Back_Color,
+ Attr => Normal_Video));
+ Set_Foreground (Men => M, Color => Menu_Fore_Color);
+ Set_Background (Men => M, Color => Menu_Back_Color);
+ Set_Grey (Men => M, Color => Menu_Grey_Color);
+ Erase (W);
+ end if;
+ S := Derived_Window (W, L - Fy, C - Fx, Fy, Fx);
+ Set_Meta_Mode (S);
+ Set_KeyPad_Mode (S);
+ Box (W);
+ Set_Window (M, W);
+ Set_Sub_Window (M, S);
+ if Title'Length > 0 then
+ Window_Title (W, Title);
+ end if;
+ Pan := New_Panel (W);
+ Post (M);
+ return Pan;
+ end Create;
+
+ procedure Destroy (M : in Menu;
+ P : in out Panel)
+ is
+ W, S : Window;
+ begin
+ W := Get_Window (M);
+ S := Get_Sub_Window (M);
+ Post (M, False);
+ Erase (W);
+ Delete (P);
+ Set_Window (M, Null_Window);
+ Set_Sub_Window (M, Null_Window);
+ Delete (S);
+ Delete (W);
+ Update_Panels;
+ end Destroy;
+
+ function Get_Request (M : Menu; P : Panel) return Key_Code
+ is
+ W : constant Window := Get_Window (M);
+ K : Real_Key_Code;
+ Ch : Character;
+ begin
+ Top (P);
+ loop
+ K := Get_Key (W);
+ if K in Special_Key_Code'Range then
+ case K is
+ when HELP_CODE => Explain_Context;
+ when EXPLAIN_CODE => Explain ("MENUKEYS");
+ when Key_Home => return REQ_FIRST_ITEM;
+ when QUIT_CODE => return QUIT;
+ when Key_Cursor_Down => return REQ_DOWN_ITEM;
+ when Key_Cursor_Up => return REQ_UP_ITEM;
+ when Key_Cursor_Left => return REQ_LEFT_ITEM;
+ when Key_Cursor_Right => return REQ_RIGHT_ITEM;
+ when Key_End => return REQ_LAST_ITEM;
+ when Key_Backspace => return REQ_BACK_PATTERN;
+ when Key_Next_Page => return REQ_SCR_DPAGE;
+ when Key_Previous_Page => return REQ_SCR_UPAGE;
+ when others => return K;
+ end case;
+ elsif K in Normal_Key_Code'Range then
+ Ch := Character'Val (K);
+ case Ch is
+ when CAN => return QUIT; -- CTRL-X
+ when SO => return REQ_NEXT_ITEM; -- CTRL-N
+ when DLE => return REQ_PREV_ITEM; -- CTRL-P
+ when NAK => return REQ_SCR_ULINE; -- CTRL-U
+ when EOT => return REQ_SCR_DLINE; -- CTRL-D
+ when ACK => return REQ_SCR_DPAGE; -- CTRL-F
+ when STX => return REQ_SCR_UPAGE; -- CTRL-B
+ when EM => return REQ_CLEAR_PATTERN; -- CTRL-Y
+ when BS => return REQ_BACK_PATTERN; -- CTRL-H
+ when SOH => return REQ_NEXT_MATCH; -- CTRL-A
+ when ENQ => return REQ_PREV_MATCH; -- CTRL-E
+ when DC4 => return REQ_TOGGLE_ITEM; -- CTRL-T
+
+ when CR | LF => return SELECT_ITEM;
+ when others => return K;
+ end case;
+ else
+ return K;
+ end if;
+ end loop;
+ end Get_Request;
+
+end Sample.Menu_Demo.Aux;
+
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads b/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads
new file mode 100644
index 0000000..88de9bd
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-menu_demo-aux.ads
@@ -0,0 +1,71 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Menu_Demo.Aux --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
+
+package Sample.Menu_Demo.Aux is
+
+ procedure Geometry (M : in Menu;
+ L : out Line_Count;
+ C : out Column_Count;
+ Y : out Line_Position;
+ X : out Column_Position);
+ -- Calculate the geometry for a panel beeing able to be used to display
+ -- the menu.
+
+ function Create (M : Menu;
+ Title : String;
+ Lin : Line_Position;
+ Col : Column_Position) return Panel;
+ -- Create a panel decorated with a frame and the title at the specified
+ -- position. The dimension of the panel is derived from the menus layout.
+
+ procedure Destroy (M : in Menu;
+ P : in out Panel);
+ -- Destroy all the windowing structures associated with this menu and
+ -- panel.
+
+ function Get_Request (M : Menu; P : Panel) return Key_Code;
+ -- Centralized request driver for all menus in this sample. This
+ -- gives us a common key binding for all menus.
+
+end Sample.Menu_Demo.Aux;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb b/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb
new file mode 100644
index 0000000..90f4e39
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.adb
@@ -0,0 +1,107 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Menu_Demo.Handler --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Sample.Menu_Demo.Aux;
+with Sample.Manifest; use Sample.Manifest;
+with Terminal_Interface.Curses.Mouse; use Terminal_Interface.Curses.Mouse;
+
+package body Sample.Menu_Demo.Handler is
+
+ package Aux renames Sample.Menu_Demo.Aux;
+
+ procedure Drive_Me (M : in Menu;
+ Title : in String := "")
+ is
+ L : Line_Count;
+ C : Column_Count;
+ Y : Line_Position;
+ X : Column_Position;
+ begin
+ Aux.Geometry (M, L, C, Y, X);
+ Drive_Me (M, Y, X, Title);
+ end Drive_Me;
+
+ procedure Drive_Me (M : in Menu;
+ Lin : in Line_Position;
+ Col : in Column_Position;
+ Title : in String := "")
+ is
+ Mask : Event_Mask := No_Events;
+ Old : Event_Mask;
+ Pan : Panel := Aux.Create (M, Title, Lin, Col);
+ V : Cursor_Visibility := Invisible;
+ begin
+ -- We are only interested in Clicks with the left button
+ Register_Reportable_Events (Left, All_Clicks, Mask);
+ Old := Start_Mouse (Mask);
+ Set_Cursor_Visibility (V);
+ loop
+ declare
+ K : Key_Code := Aux.Get_Request (M, Pan);
+ R : Driver_Result := Driver (M, K);
+ begin
+ case R is
+ when Menu_Ok => null;
+ when Unknown_Request =>
+ declare
+ I : constant Item := Current (M);
+ O : Item_Option_Set;
+ begin
+ if K = Key_Mouse then
+ K := SELECT_ITEM;
+ end if;
+ Get_Options (I, O);
+ if K = SELECT_ITEM and then not O.Selectable then
+ Beep;
+ else
+ if My_Driver (M, K, Pan) then
+ exit;
+ end if;
+ end if;
+ end;
+ when others => Beep;
+ end case;
+ end;
+ end loop;
+ End_Mouse (Old);
+ Aux.Destroy (M, Pan);
+ end Drive_Me;
+
+end Sample.Menu_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads b/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads
new file mode 100644
index 0000000..7e58ace
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-menu_demo-handler.ads
@@ -0,0 +1,64 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Menu_Demo.Handler --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses;
+use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels;
+use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Menus;
+use Terminal_Interface.Curses.Menus;
+
+generic
+ with function My_Driver (Men : Menu;
+ K : Key_Code;
+ Pan : Panel) return Boolean;
+package Sample.Menu_Demo.Handler is
+
+ procedure Drive_Me (M : in Menu;
+ Lin : in Line_Position;
+ Col : in Column_Position;
+ Title : in String := "");
+ -- Position the menu at the given point and drive it.
+
+ procedure Drive_Me (M : in Menu;
+ Title : in String := "");
+ -- Center menu and drive it.
+
+end Sample.Menu_Demo.Handler;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo.adb b/ncurses-5.2/Ada95/samples/sample-menu_demo.adb
new file mode 100644
index 0000000..3a2c21e
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-menu_demo.adb
@@ -0,0 +1,390 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Menu_Demo --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses; use Terminal_Interface.Curses;
+with Terminal_Interface.Curses.Panels; use Terminal_Interface.Curses.Panels;
+with Terminal_Interface.Curses.Menus; use Terminal_Interface.Curses.Menus;
+with Terminal_Interface.Curses.Menus.Menu_User_Data;
+with Terminal_Interface.Curses.Menus.Item_User_Data;
+
+with Sample.Manifest; use Sample.Manifest;
+with Sample.Function_Key_Setting; use Sample.Function_Key_Setting;
+with Sample.Menu_Demo.Handler;
+with Sample.Helpers; use Sample.Helpers;
+with Sample.Explanation; use Sample.Explanation;
+
+package body Sample.Menu_Demo is
+
+ package Spacing_Demo is
+ procedure Spacing_Test;
+ end Spacing_Demo;
+
+ package body Spacing_Demo is
+
+ procedure Spacing_Test
+ is
+ function My_Driver (M : Menu;
+ K : Key_Code;
+ P : Panel) return Boolean;
+
+ procedure Set_Option_Key;
+ procedure Set_Select_Key;
+ procedure Set_Description_Key;
+ procedure Set_Hide_Key;
+
+ package Mh is new Sample.Menu_Demo.Handler (My_Driver);
+
+ I : Item_Array_Access := new Item_Array'
+ (New_Item ("January", "31 Days"),
+ New_Item ("February", "28/29 Days"),
+ New_Item ("March", "31 Days"),
+ New_Item ("April", "30 Days"),
+ New_Item ("May", "31 Days"),
+ New_Item ("June", "30 Days"),
+ New_Item ("July", "31 Days"),
+ New_Item ("August", "31 Days"),
+ New_Item ("September", "30 Days"),
+ New_Item ("October", "31 Days"),
+ New_Item ("November", "30 Days"),
+ New_Item ("December", "31 Days"),
+ Null_Item);
+
+ M : Menu := New_Menu (I);
+ Flip_State : Boolean := True;
+ Hide_Long : Boolean := False;
+
+ type Format_Code is (Four_By_1, Four_By_2, Four_By_3);
+ type Operations is (Flip, Reorder, Reformat, Reselect, Describe);
+
+ type Change is array (Operations) of Boolean;
+ pragma Pack (Change);
+ No_Change : constant Change := Change'(others => False);
+
+ Current_Format : Format_Code := Four_By_1;
+ To_Change : Change := No_Change;
+
+ function My_Driver (M : Menu;
+ K : Key_Code;
+ P : Panel) return Boolean
+ is
+ begin
+ To_Change := No_Change;
+ if K in User_Key_Code'Range then
+ if K = QUIT then
+ return True;
+ end if;
+ end if;
+ if K in Special_Key_Code'Range then
+ case K is
+ when Key_F4 =>
+ To_Change (Flip) := True;
+ return True;
+ when Key_F5 =>
+ To_Change (Reformat) := True;
+ Current_Format := Four_By_1;
+ return True;
+ when Key_F6 =>
+ To_Change (Reformat) := True;
+ Current_Format := Four_By_2;
+ return True;
+ when Key_F7 =>
+ To_Change (Reformat) := True;
+ Current_Format := Four_By_3;
+ return True;
+ when Key_F8 =>
+ To_Change (Reorder) := True;
+ return True;
+ when Key_F9 =>
+ To_Change (Reselect) := True;
+ return True;
+ when Key_F10 =>
+ if Current_Format /= Four_By_3 then
+ To_Change (Describe) := True;
+ return True;
+ else
+ return False;
+ end if;
+ when Key_F11 =>
+ Hide_Long := not Hide_Long;
+ declare
+ O : Item_Option_Set;
+ begin
+ for J in I'Range loop
+ Get_Options (I (J), O);
+ O.Selectable := True;
+ if Hide_Long then
+ case J is
+ when 1 | 3 | 5 | 7 | 8 | 10 | 12 =>
+ O.Selectable := False;
+ when others => null;
+ end case;
+ end if;
+ Set_Options (I (J), O);
+ end loop;
+ end;
+ return False;
+ when others => null;
+ end case;
+ end if;
+ return False;
+ end My_Driver;
+
+ procedure Set_Option_Key
+ is
+ O : Menu_Option_Set;
+ begin
+ if Current_Format = Four_By_1 then
+ Set_Soft_Label_Key (8, "");
+ else
+ Get_Options (M, O);
+ if O.Row_Major_Order then
+ Set_Soft_Label_Key (8, "O-Col");
+ else
+ Set_Soft_Label_Key (8, "O-Row");
+ end if;
+ end if;
+ Refresh_Soft_Label_Keys_Without_Update;
+ end Set_Option_Key;
+
+ procedure Set_Select_Key
+ is
+ O : Menu_Option_Set;
+ begin
+ Get_Options (M, O);
+ if O.One_Valued then
+ Set_Soft_Label_Key (9, "Multi");
+ else
+ Set_Soft_Label_Key (9, "Singl");
+ end if;
+ Refresh_Soft_Label_Keys_Without_Update;
+ end Set_Select_Key;
+
+ procedure Set_Description_Key
+ is
+ O : Menu_Option_Set;
+ begin
+ if Current_Format = Four_By_3 then
+ Set_Soft_Label_Key (10, "");
+ else
+ Get_Options (M, O);
+ if O.Show_Descriptions then
+ Set_Soft_Label_Key (10, "-Desc");
+ else
+ Set_Soft_Label_Key (10, "+Desc");
+ end if;
+ end if;
+ Refresh_Soft_Label_Keys_Without_Update;
+ end Set_Description_Key;
+
+ procedure Set_Hide_Key
+ is
+ begin
+ if Hide_Long then
+ Set_Soft_Label_Key (11, "Enab");
+ else
+ Set_Soft_Label_Key (11, "Disab");
+ end if;
+ Refresh_Soft_Label_Keys_Without_Update;
+ end Set_Hide_Key;
+
+ begin
+ Push_Environment ("MENU01");
+ Notepad ("MENU-PAD01");
+ Default_Labels;
+ Set_Soft_Label_Key (4, "Flip");
+ Set_Soft_Label_Key (5, "4x1");
+ Set_Soft_Label_Key (6, "4x2");
+ Set_Soft_Label_Key (7, "4x3");
+ Set_Option_Key;
+ Set_Select_Key;
+ Set_Description_Key;
+ Set_Hide_Key;
+
+ Set_Format (M, 4, 1);
+ loop
+ Mh.Drive_Me (M);
+ exit when To_Change = No_Change;
+ if To_Change (Flip) then
+ if Flip_State then
+ Flip_State := False;
+ Set_Spacing (M, 3, 2, 0);
+ else
+ Flip_State := True;
+ Set_Spacing (M);
+ end if;
+ elsif To_Change (Reformat) then
+ case Current_Format is
+ when Four_By_1 => Set_Format (M, 4, 1);
+ when Four_By_2 => Set_Format (M, 4, 2);
+ when Four_By_3 =>
+ declare
+ O : Menu_Option_Set;
+ begin
+ Get_Options (M, O);
+ O.Show_Descriptions := False;
+ Set_Options (M, O);
+ Set_Format (M, 4, 3);
+ end;
+ end case;
+ Set_Option_Key;
+ Set_Description_Key;
+ elsif To_Change (Reorder) then
+ declare
+ O : Menu_Option_Set;
+ begin
+ Get_Options (M, O);
+ O.Row_Major_Order := not O.Row_Major_Order;
+ Set_Options (M, O);
+ Set_Option_Key;
+ end;
+ elsif To_Change (Reselect) then
+ declare
+ O : Menu_Option_Set;
+ begin
+ Get_Options (M, O);
+ O.One_Valued := not O.One_Valued;
+ Set_Options (M, O);
+ Set_Select_Key;
+ end;
+ elsif To_Change (Describe) then
+ declare
+ O : Menu_Option_Set;
+ begin
+ Get_Options (M, O);
+ O.Show_Descriptions := not O.Show_Descriptions;
+ Set_Options (M, O);
+ Set_Description_Key;
+ end;
+ else
+ null;
+ end if;
+ end loop;
+ Set_Spacing (M);
+ Flip_State := True;
+
+ Pop_Environment;
+ pragma Assert (Get_Index (Items (M, 1)) = Get_Index (I (1)));
+ Delete (M);
+ Free (I, True);
+ end Spacing_Test;
+ end Spacing_Demo;
+
+ procedure Demo
+ is
+ -- We use this datatype only to test the instantiation of
+ -- the Menu_User_Data generic package. No functionality
+ -- behind it.
+ type User_Data is new Integer;
+ type User_Data_Access is access User_Data;
+
+ -- Those packages are only instantiated to test the usability.
+ -- No real functionality is shown in the demo.
+ package MUD is new Menu_User_Data (User_Data, User_Data_Access);
+ package IUD is new Item_User_Data (User_Data, User_Data_Access);
+
+ function My_Driver (M : Menu;
+ K : Key_Code;
+ P : Panel) return Boolean;
+
+ package Mh is new Sample.Menu_Demo.Handler (My_Driver);
+
+ Itm : Item_Array_Access := new Item_Array'
+ (New_Item ("Menu Layout Options"),
+ New_Item ("Demo of Hook functions"),
+ Null_Item);
+ M : Menu := New_Menu (Itm);
+
+ U1 : User_Data_Access := new User_Data'(4711);
+ U2 : User_Data_Access;
+ U3 : User_Data_Access := new User_Data'(4712);
+ U4 : User_Data_Access;
+
+ function My_Driver (M : Menu;
+ K : Key_Code;
+ P : Panel) return Boolean
+ is
+ Idx : constant Positive := Get_Index (Current (M));
+ begin
+ if K in User_Key_Code'Range then
+ if K = QUIT then
+ return True;
+ elsif K = SELECT_ITEM then
+ if Idx in Itm'Range then
+ Hide (P);
+ Update_Panels;
+ end if;
+ case Idx is
+ when 1 => Spacing_Demo.Spacing_Test;
+ when others => Not_Implemented;
+ end case;
+ if Idx in Itm'Range then
+ Top (P);
+ Show (P);
+ Update_Panels;
+ Update_Screen;
+ end if;
+ end if;
+ end if;
+ return False;
+ end My_Driver;
+ begin
+ Push_Environment ("MENU00");
+ Notepad ("MENU-PAD00");
+ Default_Labels;
+ Refresh_Soft_Label_Keys_Without_Update;
+ Set_Pad_Character (M, '|');
+
+ MUD.Set_User_Data (M, U1);
+ IUD.Set_User_Data (Itm (1), U3);
+
+ Mh.Drive_Me (M);
+
+ MUD.Get_User_Data (M, U2);
+ pragma Assert (U1 = U2 and U1.all = 4711);
+
+ IUD.Get_User_Data (Itm (1), U4);
+ pragma Assert (U3 = U4 and U3.all = 4712);
+
+ Pop_Environment;
+ Delete (M);
+ Free (Itm, True);
+ end Demo;
+
+end Sample.Menu_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-menu_demo.ads b/ncurses-5.2/Ada95/samples/sample-menu_demo.ads
new file mode 100644
index 0000000..d147789
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-menu_demo.ads
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Menu_Demo --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample.Menu_Demo is
+
+ procedure Demo;
+
+end Sample.Menu_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample-my_field_type.adb b/ncurses-5.2/Ada95/samples/sample-my_field_type.adb
new file mode 100644
index 0000000..42937a3
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-my_field_type.adb
@@ -0,0 +1,65 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.My_Field_Type --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
+
+-- This is a very simple user defined field type. It accepts only a
+-- defined character as input into the field.
+--
+package body Sample.My_Field_Type is
+
+ -- That's simple. There are no field validity checks.
+ function Field_Check (Fld : Field;
+ Typ : My_Data) return Boolean
+ is
+ begin
+ return True;
+ end Field_Check;
+
+ -- Check exactly against the specified character.
+ function Character_Check (Ch : Character;
+ Typ : My_Data) return Boolean
+ is
+ C : constant Character := Typ.Ch;
+ begin
+ return Ch = C;
+ end Character_Check;
+
+end Sample.My_Field_Type;
diff --git a/ncurses-5.2/Ada95/samples/sample-my_field_type.ads b/ncurses-5.2/Ada95/samples/sample-my_field_type.ads
new file mode 100644
index 0000000..d35e475
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-my_field_type.ads
@@ -0,0 +1,62 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.My_Field_Type --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Forms; use Terminal_Interface.Curses.Forms;
+with Terminal_Interface.Curses.Forms.Field_Types.User;
+use Terminal_Interface.Curses.Forms.Field_Types.User;
+
+-- This is a very simple user defined field type. It accepts only a
+-- defined character as input into the field.
+--
+package Sample.My_Field_Type is
+
+ type My_Data is new User_Defined_Field_Type with
+ record
+ Ch : Character;
+ end record;
+
+ function Field_Check (Fld : Field;
+ Typ : My_Data) return Boolean;
+
+ function Character_Check (Ch : Character;
+ Typ : My_Data) return Boolean;
+
+end Sample.My_Field_Type;
+
diff --git a/ncurses-5.2/Ada95/samples/sample-text_io_demo.ads b/ncurses-5.2/Ada95/samples/sample-text_io_demo.ads
new file mode 100644
index 0000000..171bc58
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample-text_io_demo.ads
@@ -0,0 +1,45 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample.Text_IO_Demo --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample.Text_IO_Demo is
+
+ procedure Demo;
+
+end Sample.Text_IO_Demo;
diff --git a/ncurses-5.2/Ada95/samples/sample.ads b/ncurses-5.2/Ada95/samples/sample.ads
new file mode 100644
index 0000000..7558876
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/sample.ads
@@ -0,0 +1,43 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Sample --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Sample is
+ procedure Whow;
+end Sample;
diff --git a/ncurses-5.2/Ada95/samples/status.adb b/ncurses-5.2/Ada95/samples/status.adb
new file mode 100644
index 0000000..0bdbad2
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/status.adb
@@ -0,0 +1,56 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Status --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+-- This package has been contributed by Laurent Pautet <pautet@gnat.com> --
+-- --
+package body Status is
+
+ protected body Process is
+ procedure Stop is
+ begin
+ Done := True;
+ end Stop;
+ function Continue return Boolean is
+ begin
+ return not Done;
+ end Continue;
+ end Process;
+
+end Status;
diff --git a/ncurses-5.2/Ada95/samples/status.ads b/ncurses-5.2/Ada95/samples/status.ads
new file mode 100644
index 0000000..90e1a1b
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/status.ads
@@ -0,0 +1,59 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Status --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+-- This package has been contributed by Laurent Pautet <pautet@gnat.com> --
+-- --
+with Ada.Interrupts.Names;
+
+package Status is
+
+ pragma Warnings (Off); -- the next pragma exists since 3.11p
+ pragma Unreserve_All_Interrupts;
+ pragma Warnings (On);
+
+ protected Process is
+ procedure Stop;
+ function Continue return Boolean;
+ pragma Attach_Handler (Stop, Ada.Interrupts.Names.SIGINT);
+ private
+ Done : Boolean := False;
+ end Process;
+
+end Status;
diff --git a/ncurses-5.2/Ada95/samples/tour.adb b/ncurses-5.2/Ada95/samples/tour.adb
new file mode 100644
index 0000000..2398b6e
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/tour.adb
@@ -0,0 +1,46 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- tour --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Sample; use Sample;
+
+procedure Tour is
+begin
+ Whow;
+end Tour;
diff --git a/ncurses-5.2/Ada95/samples/tour.ads b/ncurses-5.2/Ada95/samples/tour.ads
new file mode 100644
index 0000000..4eea20b
--- /dev/null
+++ b/ncurses-5.2/Ada95/samples/tour.ads
@@ -0,0 +1,41 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding Samples --
+-- --
+-- Tour --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+procedure Tour;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb
new file mode 100644
index 0000000..aa8cc76
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-aux.adb
@@ -0,0 +1,116 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Aux --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package body Terminal_Interface.Curses.Aux is
+ --
+ -- Some helpers
+ procedure Fill_String (Cp : in chars_ptr;
+ Str : out String)
+ is
+ -- Fill the string with the characters referenced by the
+ -- chars_ptr.
+ --
+ Len : Natural;
+ begin
+ if Cp /= Null_Ptr then
+ Len := Natural (Strlen (Cp));
+ if Str'Length < Len then
+ raise Constraint_Error;
+ end if;
+ declare
+ S : String (1 .. Len);
+ begin
+ S := Value (Cp);
+ Str (Str'First .. (Str'First + Len - 1)) := S (S'Range);
+ end;
+ else
+ Len := 0;
+ end if;
+
+ if Len < Str'Length then
+ Str ((Str'First + Len) .. Str'Last) := (others => ' ');
+ end if;
+
+ end Fill_String;
+
+ function Fill_String (Cp : chars_ptr) return String
+ is
+ Len : Natural;
+ begin
+ if Cp /= Null_Ptr then
+ Len := Natural (Strlen (Cp));
+ if Len = 0 then
+ return "";
+ else
+ declare
+ S : String (1 .. Len);
+ begin
+ Fill_String (Cp, S);
+ return S;
+ end;
+ end if;
+ else
+ return "";
+ end if;
+ end Fill_String;
+
+ procedure Eti_Exception (Code : Eti_Error)
+ is
+ begin
+ case Code is
+ when E_Ok => null;
+ when E_System_Error => raise Eti_System_Error;
+ when E_Bad_Argument => raise Eti_Bad_Argument;
+ when E_Posted => raise Eti_Posted;
+ when E_Connected => raise Eti_Connected;
+ when E_Bad_State => raise Eti_Bad_State;
+ when E_No_Room => raise Eti_No_Room;
+ when E_Not_Posted => raise Eti_Not_Posted;
+ when E_Unknown_Command => raise Eti_Unknown_Command;
+ when E_No_Match => raise Eti_No_Match;
+ when E_Not_Selectable => raise Eti_Not_Selectable;
+ when E_Not_Connected => raise Eti_Not_Connected;
+ when E_Request_Denied => raise Eti_Request_Denied;
+ when E_Invalid_Field => raise Eti_Invalid_Field;
+ when E_Current => raise Eti_Current;
+ end case;
+ end Eti_Exception;
+
+end Terminal_Interface.Curses.Aux;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
new file mode 100644
index 0000000..c7a64f7
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.adb
@@ -0,0 +1,68 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.Alpha is
+
+ use type Interfaces.C.int;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Alpha_Field)
+ is
+ C_Alpha_Field_Type : C_Field_Type;
+ pragma Import (C, C_Alpha_Field_Type, "TYPE_ALPHA");
+
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_Alpha_Field_Type;
+ Arg1 : C_Int) return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ Res : Eti_Error;
+ begin
+ Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
new file mode 100644
index 0000000..f869c0b
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alpha.ads
@@ -0,0 +1,53 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Alpha --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.Alpha is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Alpha);
+
+ type Alpha_Field is new Field_Type
+ with record
+ Minimum_Field_Width : Natural := 0;
+ end record;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Alpha_Field);
+ pragma Inline (Set_Field_Type);
+
+end Terminal_Interface.Curses.Forms.Field_Types.Alpha;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
new file mode 100644
index 0000000..3684b8a
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.adb
@@ -0,0 +1,68 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
+
+ use type Interfaces.C.int;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in AlphaNumeric_Field)
+ is
+ C_AlphaNumeric_Field_Type : C_Field_Type;
+ pragma Import (C, C_AlphaNumeric_Field_Type, "TYPE_ALNUM");
+
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_AlphaNumeric_Field_Type;
+ Arg1 : C_Int) return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ Res : Eti_Error;
+ begin
+ Res := Set_Fld_Type (Arg1 => C_Int (Typ.Minimum_Field_Width));
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
new file mode 100644
index 0000000..2e174d6
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-alphanumeric.ads
@@ -0,0 +1,54 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric is
+ pragma Preelaborate
+ (Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric);
+
+ type AlphaNumeric_Field is new Field_Type
+ with record
+ Minimum_Field_Width : Natural := 0;
+ end record;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in AlphaNumeric_Field);
+ pragma Inline (Set_Field_Type);
+
+end Terminal_Interface.Curses.Forms.Field_Types.AlphaNumeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
new file mode 100644
index 0000000..c8ffe58
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.adb
@@ -0,0 +1,80 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Characters.Handling; use Ada.Characters.Handling;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
+
+ function Create (Set : Type_Set := Mixed_Case;
+ Case_Sensitive : Boolean := False;
+ Must_Be_Unique : Boolean := False)
+ return Enumeration_Field
+ is
+ I : Enumeration_Info (T'Pos (T'Last) - T'Pos (T'First) + 1);
+ J : Positive := 1;
+ begin
+ I.Case_Sensitive := Case_Sensitive;
+ I.Match_Must_Be_Unique := Must_Be_Unique;
+
+ for E in T'Range loop
+ I.Names (J) := new String'(T'Image (T (E)));
+ -- The Image attribute defaults to upper case, so we have to handle
+ -- only the other ones...
+ if Set /= Upper_Case then
+ I.Names (J).all := To_Lower (I.Names (J).all);
+ if Set = Mixed_Case then
+ I.Names (J)(I.Names (J).all'First) :=
+ To_Upper (I.Names (J)(I.Names (J).all'First));
+ end if;
+ end if;
+ J := J + 1;
+ end loop;
+
+ return Create (I, True);
+ end Create;
+
+ function Value (Fld : Field;
+ Buf : Buffer_Number := Buffer_Number'First) return T
+ is
+ begin
+ return T'Value (Get_Buffer (Fld, Buf));
+ end Value;
+
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
new file mode 100644
index 0000000..6b01c26
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration-ada.ads
@@ -0,0 +1,59 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type T is (<>);
+
+package Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada is
+ pragma Preelaborate
+ (Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada);
+
+ function Create (Set : Type_Set := Mixed_Case;
+ Case_Sensitive : Boolean := False;
+ Must_Be_Unique : Boolean := False)
+ return Enumeration_Field;
+
+ function Value (Fld : Field;
+ Buf : Buffer_Number := Buffer_Number'First) return T;
+ -- Translate the content of the fields buffer - indicated by the
+ -- buffer number - into an enumeration value. If the buffer is empty
+ -- or the content is invalid, a Constraint_Error is raises.
+
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration.Ada;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
new file mode 100644
index 0000000..fccb4f3
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.adb
@@ -0,0 +1,119 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Unchecked_Deallocation;
+with Interfaces.C; use Interfaces.C;
+with Interfaces.C.Strings; use Interfaces.C.Strings;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
+
+ function Create (Info : Enumeration_Info;
+ Auto_Release_Names : Boolean := False)
+ return Enumeration_Field
+ is
+ procedure Release_String is
+ new Ada.Unchecked_Deallocation (String,
+ String_Access);
+ E : Enumeration_Field;
+ L : constant size_t := 1 + size_t (Info.C);
+ S : String_Access;
+ begin
+ E.Case_Sensitive := Info.Case_Sensitive;
+ E.Match_Must_Be_Unique := Info.Match_Must_Be_Unique;
+ E.Arr := new chars_ptr_array (size_t (1) .. L);
+ for I in 1 .. Positive (L - 1) loop
+ if Info.Names (I) = null then
+ raise Form_Exception;
+ end if;
+ E.Arr (size_t (I)) := New_String (Info.Names (I).all);
+ if Auto_Release_Names then
+ S := Info.Names (I);
+ Release_String (S);
+ end if;
+ end loop;
+ E.Arr (L) := Null_Ptr;
+ return E;
+ end Create;
+
+ procedure Release (Enum : in out Enumeration_Field)
+ is
+ I : size_t := 0;
+ P : chars_ptr;
+ begin
+ loop
+ P := Enum.Arr (I);
+ exit when P = Null_Ptr;
+ Free (P);
+ Enum.Arr (I) := Null_Ptr;
+ I := I + 1;
+ end loop;
+ Enum.Arr := null;
+ end Release;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Enumeration_Field)
+ is
+ C_Enum_Type : C_Field_Type;
+ pragma Import (C, C_Enum_Type, "TYPE_ENUM");
+
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_Enum_Type;
+ Arg1 : chars_ptr_array;
+ Arg2 : C_Int;
+ Arg3 : C_Int) return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ Res : Eti_Error;
+ begin
+ if Typ.Arr = null then
+ raise Form_Exception;
+ end if;
+ Res := Set_Fld_Type (Arg1 => Typ.Arr.all,
+ Arg2 => C_Int (Boolean'Pos (Typ.Case_Sensitive)),
+ Arg3 => C_Int (Boolean'Pos
+ (Typ.Match_Must_Be_Unique)));
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ Wrap_Builtin (Fld, Typ, C_Choice_Router);
+ end Set_Field_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
new file mode 100644
index 0000000..d3d54b8
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-enumeration.ads
@@ -0,0 +1,98 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Enumeration --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C.Strings;
+
+package Terminal_Interface.Curses.Forms.Field_Types.Enumeration is
+ pragma Preelaborate
+ (Terminal_Interface.Curses.Forms.Field_Types.Enumeration);
+
+ type String_Access is access String;
+
+ -- Type_Set is used by the child package Ada
+ type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
+
+ type Enum_Array is array (Positive range <>)
+ of String_Access;
+
+ type Enumeration_Info (C : Positive) is
+ record
+ Names : Enum_Array (1 .. C);
+ Case_Sensitive : Boolean := False;
+ Match_Must_Be_Unique : Boolean := False;
+ end record;
+
+ type Enumeration_Field is new Field_Type with private;
+
+ function Create (Info : Enumeration_Info;
+ Auto_Release_Names : Boolean := False)
+ return Enumeration_Field;
+ -- Make an fieldtype from the info. Enumerations are special, because
+ -- they normally don't copy the enum values into a private store, so
+ -- we have to care for the lifetime of the info we provide.
+ -- The Auto_Release_Names flag may be used to automatically releases
+ -- the strings in the Names array of the Enumeration_Info.
+
+ function Make_Enumeration_Type (Info : Enumeration_Info;
+ Auto_Release_Names : Boolean := False)
+ return Enumeration_Field renames Create;
+
+ procedure Release (Enum : in out Enumeration_Field);
+ -- But we may want to release the field to release the memory allocated
+ -- by it internally. After that the Enumeration field is no longer usable.
+
+ -- The next type defintions are all ncurses extensions. They are typically
+ -- not available in other curses implementations.
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Enumeration_Field);
+ pragma Inline (Set_Field_Type);
+
+private
+ type CPA_Access is access Interfaces.C.Strings.chars_ptr_array;
+
+ type Enumeration_Field is new Field_Type with
+ record
+ Case_Sensitive : Boolean := False;
+ Match_Must_Be_Unique : Boolean := False;
+ Arr : CPA_Access := null;
+ end record;
+
+end Terminal_Interface.Curses.Forms.Field_Types.Enumeration;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
new file mode 100644
index 0000000..4607a78
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.adb
@@ -0,0 +1,72 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.IntField --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.IntField is
+
+ use type Interfaces.C.int;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Integer_Field)
+ is
+ C_Integer_Field_Type : C_Field_Type;
+ pragma Import (C, C_Integer_Field_Type, "TYPE_INTEGER");
+
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_Integer_Field_Type;
+ Arg1 : C_Int;
+ Arg2 : C_Long_Int;
+ Arg3 : C_Long_Int) return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ Res : Eti_Error;
+ begin
+ Res := Set_Fld_Type (Arg1 => C_Int (Typ.Precision),
+ Arg2 => C_Long_Int (Typ.Lower_Limit),
+ Arg3 => C_Long_Int (Typ.Upper_Limit));
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.IntField;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
new file mode 100644
index 0000000..4ab7903
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-intfield.ads
@@ -0,0 +1,55 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.IntField --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.IntField is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.IntField);
+
+ type Integer_Field is new Field_Type with
+ record
+ Precision : Natural;
+ Lower_Limit : Integer;
+ Upper_Limit : Integer;
+ end record;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Integer_Field);
+ pragma Inline (Set_Field_Type);
+
+end Terminal_Interface.Curses.Forms.Field_Types.IntField;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
new file mode 100644
index 0000000..b5ec33a
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.adb
@@ -0,0 +1,68 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
+
+ use type Interfaces.C.int;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Internet_V4_Address_Field)
+ is
+ C_IPV4_Field_Type : C_Field_Type;
+ pragma Import (C, C_IPV4_Field_Type, "TYPE_IPV4");
+
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_IPV4_Field_Type)
+ return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ Res : Eti_Error;
+ begin
+ Res := Set_Fld_Type;
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
new file mode 100644
index 0000000..2f91980
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-ipv4_address.ads
@@ -0,0 +1,51 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address is
+ pragma Preelaborate
+ (Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address);
+
+ type Internet_V4_Address_Field is new Field_Type with null record;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Internet_V4_Address_Field);
+ pragma Inline (Set_Field_Type);
+
+end Terminal_Interface.Curses.Forms.Field_Types.IPV4_Address;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
new file mode 100644
index 0000000..0bcf03c
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-numeric.ads
@@ -0,0 +1,55 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.Numeric --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.Numeric is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.Numeric);
+
+ type Numeric_Field is new Field_Type with
+ record
+ Precision : Natural;
+ Lower_Limit : Float;
+ Upper_Limit : Float;
+ end record;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Numeric_Field);
+ pragma Inline (Set_Field_Type);
+
+end Terminal_Interface.Curses.Forms.Field_Types.Numeric;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
new file mode 100644
index 0000000..f377e95
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.adb
@@ -0,0 +1,71 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C; use Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.RegExp is
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Regular_Expression_Field)
+ is
+ type Char_Ptr is access all Interfaces.C.char;
+
+ C_Regexp_Field_Type : C_Field_Type;
+ pragma Import (C, C_Regexp_Field_Type, "TYPE_REGEXP");
+
+ function Set_Ftyp (F : Field := Fld;
+ Cft : C_Field_Type := C_Regexp_Field_Type;
+ Arg1 : Char_Ptr) return C_Int;
+ pragma Import (C, Set_Ftyp, "set_field_type");
+
+ Txt : char_array (0 .. Typ.Regular_Expression.all'Length);
+ Len : size_t;
+ Res : Eti_Error;
+ begin
+ To_C (Typ.Regular_Expression.all, Txt, Len);
+ Res := Set_Ftyp (Arg1 => Txt (Txt'First)'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ Wrap_Builtin (Fld, Typ);
+ end Set_Field_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
new file mode 100644
index 0000000..ce4c883
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-regexp.ads
@@ -0,0 +1,55 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.RegExp --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface.Curses.Forms.Field_Types.RegExp is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.RegExp);
+
+ type String_Access is access String;
+
+ type Regular_Expression_Field is new Field_Type with
+ record
+ Regular_Expression : String_Access;
+ end record;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in Regular_Expression_Field);
+ pragma Inline (Set_Field_Type);
+
+end Terminal_Interface.Curses.Forms.Field_Types.RegExp;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
new file mode 100644
index 0000000..4f8d058
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.adb
@@ -0,0 +1,110 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Unchecked_Conversion;
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
+
+ use type Interfaces.C.int;
+
+ function To_Argument_Access is new Ada.Unchecked_Conversion
+ (System.Address, Argument_Access);
+
+ function Generic_Next (Fld : Field;
+ Usr : System.Address) return C_Int
+ is
+ Result : Boolean;
+ Udf : User_Defined_Field_Type_With_Choice_Access :=
+ User_Defined_Field_Type_With_Choice_Access
+ (To_Argument_Access (Usr).Typ);
+ begin
+ Result := Next (Fld, Udf.all);
+ return C_Int (Boolean'Pos (Result));
+ end Generic_Next;
+
+ function Generic_Prev (Fld : Field;
+ Usr : System.Address) return C_Int
+ is
+ Result : Boolean;
+ Udf : User_Defined_Field_Type_With_Choice_Access :=
+ User_Defined_Field_Type_With_Choice_Access
+ (To_Argument_Access (Usr).Typ);
+ begin
+ Result := Previous (Fld, Udf.all);
+ return C_Int (Boolean'Pos (Result));
+ end Generic_Prev;
+
+ -- -----------------------------------------------------------------------
+ --
+ function C_Generic_Choice return C_Field_Type
+ is
+ Res : Eti_Error;
+ T : C_Field_Type;
+ begin
+ if M_Generic_Choice = Null_Field_Type then
+ T := New_Fieldtype (Generic_Field_Check'Access,
+ Generic_Char_Check'Access);
+ if T = Null_Field_Type then
+ raise Form_Exception;
+ else
+ Res := Set_Fieldtype_Arg (T,
+ Make_Arg'Access,
+ Copy_Arg'Access,
+ Free_Arg'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+
+ Res := Set_Fieldtype_Choice (T,
+ Generic_Next'Access,
+ Generic_Prev'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end if;
+ M_Generic_Choice := T;
+ end if;
+ pragma Assert (M_Generic_Choice /= Null_Field_Type);
+ return M_Generic_Choice;
+ end C_Generic_Choice;
+
+end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
new file mode 100644
index 0000000..9f1ba10
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user-choice.ads
@@ -0,0 +1,96 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.User.Choice --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+
+package Terminal_Interface.Curses.Forms.Field_Types.User.Choice is
+ pragma Preelaborate
+ (Terminal_Interface.Curses.Forms.Field_Types.User.Choice);
+
+ use type Interfaces.C.int;
+ subtype C_Int is Interfaces.C.int;
+
+ type User_Defined_Field_Type_With_Choice is abstract new
+ User_Defined_Field_Type with null record;
+ -- This is the root of the mechanism we use to create field types in
+ -- Ada95 that allow the prev/next mechanism. You should your own type
+ -- derive from this one and implement the Field_Check, Character_Check
+ -- Next and Previous functions for your own type.
+
+ type User_Defined_Field_Type_With_Choice_Access is access all
+ User_Defined_Field_Type_With_Choice'Class;
+
+ function Next
+ (Fld : Field;
+ Typ : User_Defined_Field_Type_With_Choice) return Boolean
+ is abstract;
+ -- If True is returned, the function successfully generated a next
+ -- value into the fields buffer.
+
+ function Previous
+ (Fld : Field;
+ Typ : User_Defined_Field_Type_With_Choice) return Boolean
+ is abstract;
+ -- If True is returned, the function successfully generated a previous
+ -- value into the fields buffer.
+
+ -- +----------------------------------------------------------------------
+ -- | Private Part.
+ -- |
+private
+ use type Interfaces.C.int;
+
+ function C_Generic_Choice return C_Field_Type;
+
+ function Generic_Next (Fld : Field;
+ Usr : System.Address) return C_Int;
+ pragma Convention (C, Generic_Next);
+ -- This is the generic next Choice_Function for the low-level fieldtype
+ -- representing all the User_Defined_Field_Type derivates. It routes
+ -- the call to the Next implementation for the type.
+
+ function Generic_Prev (Fld : Field;
+ Usr : System.Address) return C_Int;
+ pragma Convention (C, Generic_Prev);
+ -- This is the generic prev Choice_Function for the low-level fieldtype
+ -- representing all the User_Defined_Field_Type derivates. It routes
+ -- the call to the Previous implementation for the type.
+
+end Terminal_Interface.Curses.Forms.Field_Types.User.Choice;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
new file mode 100644
index 0000000..b011c5f
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.adb
@@ -0,0 +1,132 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.User --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Unchecked_Conversion;
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Field_Types.User is
+
+ use type Interfaces.C.int;
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in User_Defined_Field_Type)
+ is
+ function Allocate_Arg (T : User_Defined_Field_Type'Class)
+ return Argument_Access;
+
+ function Set_Fld_Type (F : Field := Fld;
+ Cft : C_Field_Type := C_Generic_Type;
+ Arg1 : Argument_Access)
+ return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ Res : Eti_Error;
+
+ function Allocate_Arg (T : User_Defined_Field_Type'Class)
+ return Argument_Access
+ is
+ Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T);
+ begin
+ return new Argument'(Usr => System.Null_Address,
+ Typ => Ptr,
+ Cft => Null_Field_Type);
+ end Allocate_Arg;
+
+ begin
+ Res := Set_Fld_Type (Arg1 => Allocate_Arg (Typ));
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end Set_Field_Type;
+
+ function To_Argument_Access is new Ada.Unchecked_Conversion
+ (System.Address, Argument_Access);
+
+ function Generic_Field_Check (Fld : Field;
+ Usr : System.Address) return C_Int
+ is
+ Result : Boolean;
+ Udf : User_Defined_Field_Type_Access :=
+ User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
+ begin
+ Result := Field_Check (Fld, Udf.all);
+ return C_Int (Boolean'Pos (Result));
+ end Generic_Field_Check;
+
+ function Generic_Char_Check (Ch : C_Int;
+ Usr : System.Address) return C_Int
+ is
+ Result : Boolean;
+ Udf : User_Defined_Field_Type_Access :=
+ User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
+ begin
+ Result := Character_Check (Character'Val (Ch), Udf.all);
+ return C_Int (Boolean'Pos (Result));
+ end Generic_Char_Check;
+
+ -- -----------------------------------------------------------------------
+ --
+ function C_Generic_Type return C_Field_Type
+ is
+ Res : Eti_Error;
+ T : C_Field_Type;
+ begin
+ if M_Generic_Type = Null_Field_Type then
+ T := New_Fieldtype (Generic_Field_Check'Access,
+ Generic_Char_Check'Access);
+ if T = Null_Field_Type then
+ raise Form_Exception;
+ else
+ Res := Set_Fieldtype_Arg (T,
+ Make_Arg'Access,
+ Copy_Arg'Access,
+ Free_Arg'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end if;
+ M_Generic_Type := T;
+ end if;
+ pragma Assert (M_Generic_Type /= Null_Field_Type);
+ return M_Generic_Type;
+ end C_Generic_Type;
+
+end Terminal_Interface.Curses.Forms.Field_Types.User;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
new file mode 100644
index 0000000..a138d2d
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types-user.ads
@@ -0,0 +1,97 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types.User --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+
+package Terminal_Interface.Curses.Forms.Field_Types.User is
+ pragma Preelaborate (Terminal_Interface.Curses.Forms.Field_Types.User);
+ use type Interfaces.C.int;
+ subtype C_Int is Interfaces.C.int;
+
+ type User_Defined_Field_Type is abstract new Field_Type with null record;
+ -- This is the root of the mechanism we use to create field types in
+ -- Ada95. You should your own type derive from this one and implement
+ -- the Field_Check and Character_Check functions for your own type.
+
+ type User_Defined_Field_Type_Access is access all
+ User_Defined_Field_Type'Class;
+
+ function Field_Check
+ (Fld : Field;
+ Typ : User_Defined_Field_Type) return Boolean
+ is abstract;
+ -- If True is returned, the field is considered valid, otherwise it is
+ -- invalid.
+
+ function Character_Check
+ (Ch : Character;
+ Typ : User_Defined_Field_Type) return Boolean
+ is abstract;
+ -- If True is returned, the character is considered as valid for the
+ -- field, otherwise as invalid.
+
+ procedure Set_Field_Type (Fld : in Field;
+ Typ : in User_Defined_Field_Type);
+ -- This should work for all types derived from User_Defined_Field_Type.
+ -- No need to reimplement it for your derived type.
+
+ -- +----------------------------------------------------------------------
+ -- | Private Part.
+ -- | Used by the Choice child package.
+private
+ use type Interfaces.C.int;
+
+ function C_Generic_Type return C_Field_Type;
+
+ function Generic_Field_Check (Fld : Field;
+ Usr : System.Address) return C_Int;
+ pragma Convention (C, Generic_Field_Check);
+ -- This is the generic Field_Check_Function for the low-level fieldtype
+ -- representing all the User_Defined_Field_Type derivates. It routes
+ -- the call to the Field_Check implementation for the type.
+
+ function Generic_Char_Check (Ch : C_Int;
+ Usr : System.Address) return C_Int;
+ pragma Convention (C, Generic_Char_Check);
+ -- This is the generic Char_Check_Function for the low-level fieldtype
+ -- representing all the User_Defined_Field_Type derivates. It routes
+ -- the call to the Character_Check implementation for the type.
+
+end Terminal_Interface.Curses.Forms.Field_Types.User;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb
new file mode 100644
index 0000000..da223c9
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_types.adb
@@ -0,0 +1,296 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_Types --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Ada.Unchecked_Deallocation;
+with Ada.Unchecked_Conversion;
+-- |
+-- |=====================================================================
+-- | man page form_fieldtype.3x
+-- |=====================================================================
+-- |
+package body Terminal_Interface.Curses.Forms.Field_Types is
+
+ use type Interfaces.C.int;
+ use type System.Address;
+
+ function To_Argument_Access is new Ada.Unchecked_Conversion
+ (System.Address, Argument_Access);
+
+ function Get_Fieldtype (F : Field) return C_Field_Type;
+ pragma Import (C, Get_Fieldtype, "field_type");
+
+ function Get_Arg (F : Field) return System.Address;
+ pragma Import (C, Get_Arg, "field_arg");
+ -- |
+ -- |=====================================================================
+ -- | man page form_field_validation.3x
+ -- |=====================================================================
+ -- |
+ -- |
+ -- |
+ function Get_Type (Fld : in Field) return Field_Type_Access
+ is
+ Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
+ Arg : Argument_Access;
+ begin
+ if Low_Level = Null_Field_Type then
+ return null;
+ else
+ if Low_Level = M_Builtin_Router or else
+ Low_Level = M_Generic_Type or else
+ Low_Level = M_Choice_Router or else
+ Low_Level = M_Generic_Choice then
+ Arg := To_Argument_Access (Get_Arg (Fld));
+ if Arg = null then
+ raise Form_Exception;
+ else
+ return Arg.Typ;
+ end if;
+ else
+ raise Form_Exception;
+ end if;
+ end if;
+ end Get_Type;
+
+ function Make_Arg (Args : System.Address) return System.Address
+ is
+ -- Actually args is a double indirected pointer to the arguments
+ -- of a C variable argument list. In theory it is now quite
+ -- complicated to write portable routine that reads the arguments,
+ -- because one has to know the growth direction of the stack and
+ -- the sizes of the individual arguments.
+ -- Fortunately we are only interested in the first argument (#0),
+ -- we know its size and for the first arg we don't care about
+ -- into which stack direction we have to proceed. We simply
+ -- resolve the double indirection and thats it.
+ type V is access all System.Address;
+ function To_Access is new Ada.Unchecked_Conversion (System.Address,
+ V);
+ begin
+ return To_Access (To_Access (Args).all).all;
+ end Make_Arg;
+
+ function Copy_Arg (Usr : System.Address) return System.Address
+ is
+ begin
+ return Usr;
+ end Copy_Arg;
+
+ procedure Free_Arg (Usr : in System.Address)
+ is
+ procedure Free_Type is new Ada.Unchecked_Deallocation
+ (Field_Type'Class, Field_Type_Access);
+ procedure Freeargs is new Ada.Unchecked_Deallocation
+ (Argument, Argument_Access);
+
+ To_Be_Free : Argument_Access := To_Argument_Access (Usr);
+ Low_Level : C_Field_Type;
+ begin
+ if To_Be_Free /= null then
+ if To_Be_Free.Usr /= System.Null_Address then
+ Low_Level := To_Be_Free.Cft;
+ if Low_Level.Freearg /= null then
+ Low_Level.Freearg (To_Be_Free.Usr);
+ end if;
+ end if;
+ if To_Be_Free.Typ /= null then
+ Free_Type (To_Be_Free.Typ);
+ end if;
+ Freeargs (To_Be_Free);
+ end if;
+ end Free_Arg;
+
+
+ procedure Wrap_Builtin (Fld : Field;
+ Typ : Field_Type'Class;
+ Cft : C_Field_Type := C_Builtin_Router)
+ is
+ Usr_Arg : System.Address := Get_Arg (Fld);
+ Low_Level : constant C_Field_Type := Get_Fieldtype (Fld);
+ Arg : Argument_Access;
+ Res : Eti_Error;
+ function Set_Fld_Type (F : Field := Fld;
+ Cf : C_Field_Type := Cft;
+ Arg1 : Argument_Access) return C_Int;
+ pragma Import (C, Set_Fld_Type, "set_field_type");
+
+ begin
+ pragma Assert (Low_Level /= Null_Field_Type);
+ if Cft /= C_Builtin_Router and then Cft /= C_Choice_Router then
+ raise Form_Exception;
+ else
+ Arg := new Argument'(Usr => System.Null_Address,
+ Typ => new Field_Type'Class'(Typ),
+ Cft => Get_Fieldtype (Fld));
+ if Usr_Arg /= System.Null_Address then
+ if Low_Level.Copyarg /= null then
+ Arg.Usr := Low_Level.Copyarg (Usr_Arg);
+ else
+ Arg.Usr := Usr_Arg;
+ end if;
+ end if;
+
+ Res := Set_Fld_Type (Arg1 => Arg);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end if;
+ end Wrap_Builtin;
+
+ function Field_Check_Router (Fld : Field;
+ Usr : System.Address) return C_Int
+ is
+ Arg : constant Argument_Access := To_Argument_Access (Usr);
+ begin
+ pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
+ and then Arg.Typ /= null);
+ if Arg.Cft.Fcheck /= null then
+ return Arg.Cft.Fcheck (Fld, Arg.Usr);
+ else
+ return 1;
+ end if;
+ end Field_Check_Router;
+
+ function Char_Check_Router (Ch : C_Int;
+ Usr : System.Address) return C_Int
+ is
+ Arg : constant Argument_Access := To_Argument_Access (Usr);
+ begin
+ pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
+ and then Arg.Typ /= null);
+ if Arg.Cft.Ccheck /= null then
+ return Arg.Cft.Ccheck (Ch, Arg.Usr);
+ else
+ return 1;
+ end if;
+ end Char_Check_Router;
+
+ function Next_Router (Fld : Field;
+ Usr : System.Address) return C_Int
+ is
+ Arg : constant Argument_Access := To_Argument_Access (Usr);
+ begin
+ pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
+ and then Arg.Typ /= null);
+ if Arg.Cft.Next /= null then
+ return Arg.Cft.Next (Fld, Arg.Usr);
+ else
+ return 1;
+ end if;
+ end Next_Router;
+
+ function Prev_Router (Fld : Field;
+ Usr : System.Address) return C_Int
+ is
+ Arg : constant Argument_Access := To_Argument_Access (Usr);
+ begin
+ pragma Assert (Arg /= null and then Arg.Cft /= Null_Field_Type
+ and then Arg.Typ /= null);
+ if Arg.Cft.Prev /= null then
+ return Arg.Cft.Prev (Fld, Arg.Usr);
+ else
+ return 1;
+ end if;
+ end Prev_Router;
+
+ -- -----------------------------------------------------------------------
+ --
+ function C_Builtin_Router return C_Field_Type
+ is
+ Res : Eti_Error;
+ T : C_Field_Type;
+ begin
+ if M_Builtin_Router = Null_Field_Type then
+ T := New_Fieldtype (Field_Check_Router'Access,
+ Char_Check_Router'Access);
+ if T = Null_Field_Type then
+ raise Form_Exception;
+ else
+ Res := Set_Fieldtype_Arg (T,
+ Make_Arg'Access,
+ Copy_Arg'Access,
+ Free_Arg'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end if;
+ M_Builtin_Router := T;
+ end if;
+ pragma Assert (M_Builtin_Router /= Null_Field_Type);
+ return M_Builtin_Router;
+ end C_Builtin_Router;
+
+ -- -----------------------------------------------------------------------
+ --
+ function C_Choice_Router return C_Field_Type
+ is
+ Res : Eti_Error;
+ T : C_Field_Type;
+ begin
+ if M_Choice_Router = Null_Field_Type then
+ T := New_Fieldtype (Field_Check_Router'Access,
+ Char_Check_Router'Access);
+ if T = Null_Field_Type then
+ raise Form_Exception;
+ else
+ Res := Set_Fieldtype_Arg (T,
+ Make_Arg'Access,
+ Copy_Arg'Access,
+ Free_Arg'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+
+ Res := Set_Fieldtype_Choice (T,
+ Next_Router'Access,
+ Prev_Router'Access);
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end if;
+ M_Choice_Router := T;
+ end if;
+ pragma Assert (M_Choice_Router /= Null_Field_Type);
+ return M_Choice_Router;
+ end C_Choice_Router;
+
+end Terminal_Interface.Curses.Forms.Field_Types;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
new file mode 100644
index 0000000..82d8f71
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-field_user_data.adb
@@ -0,0 +1,85 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Field_User_Data --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+-- |
+-- |=====================================================================
+-- | man page form_field_userptr.3x
+-- |=====================================================================
+-- |
+package body Terminal_Interface.Curses.Forms.Field_User_Data is
+ -- |
+ -- |
+ -- |
+ use type Interfaces.C.int;
+
+ procedure Set_User_Data (Fld : in Field;
+ Data : in User_Access)
+ is
+ function Set_Field_Userptr (Fld : Field;
+ Usr : User_Access) return C_Int;
+ pragma Import (C, Set_Field_Userptr, "set_field_userptr");
+
+ Res : constant Eti_Error := Set_Field_Userptr (Fld, Data);
+ begin
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end Set_User_Data;
+ -- |
+ -- |
+ -- |
+ function Get_User_Data (Fld : in Field) return User_Access
+ is
+ function Field_Userptr (Fld : Field) return User_Access;
+ pragma Import (C, Field_Userptr, "field_userptr");
+ begin
+ return Field_Userptr (Fld);
+ end Get_User_Data;
+
+ procedure Get_User_Data (Fld : in Field;
+ Data : out User_Access)
+ is
+ begin
+ Data := Get_User_Data (Fld);
+ end Get_User_Data;
+
+end Terminal_Interface.Curses.Forms.Field_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
new file mode 100644
index 0000000..b4c0ffc
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-forms-form_user_data.adb
@@ -0,0 +1,86 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Forms.Form_User_Data --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+-- |
+-- |=====================================================================
+-- | man page form__userptr.3x
+-- |=====================================================================
+-- |
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Forms.Form_User_Data is
+
+ use type Interfaces.C.int;
+
+ -- |
+ -- |
+ -- |
+ procedure Set_User_Data (Frm : in Form;
+ Data : in User_Access)
+ is
+ function Set_Form_Userptr (Frm : Form;
+ Data : User_Access) return C_Int;
+ pragma Import (C, Set_Form_Userptr, "set_form_userptr");
+
+ Res : constant Eti_Error := Set_Form_Userptr (Frm, Data);
+ begin
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end Set_User_Data;
+ -- |
+ -- |
+ -- |
+ function Get_User_Data (Frm : in Form) return User_Access
+ is
+ function Form_Userptr (Frm : Form) return User_Access;
+ pragma Import (C, Form_Userptr, "form_userptr");
+ begin
+ return Form_Userptr (Frm);
+ end Get_User_Data;
+
+ procedure Get_User_Data (Frm : in Form;
+ Data : out User_Access)
+ is
+ begin
+ Data := Get_User_Data (Frm);
+ end Get_User_Data;
+
+end Terminal_Interface.Curses.Forms.Form_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
new file mode 100644
index 0000000..3facadd
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-item_user_data.adb
@@ -0,0 +1,77 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Menus.Item_User_Data --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Menus.Item_User_Data is
+
+ use type Interfaces.C.int;
+
+ procedure Set_User_Data (Itm : in Item;
+ Data : in User_Access)
+ is
+ function Set_Item_Userptr (Itm : Item;
+ Addr : User_Access) return C_Int;
+ pragma Import (C, Set_Item_Userptr, "set_item_userptr");
+
+ Res : constant Eti_Error := Set_Item_Userptr (Itm, Data);
+ begin
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end Set_User_Data;
+
+ function Get_User_Data (Itm : in Item) return User_Access
+ is
+ function Item_Userptr (Itm : Item) return User_Access;
+ pragma Import (C, Item_Userptr, "item_userptr");
+ begin
+ return Item_Userptr (Itm);
+ end Get_User_Data;
+
+ procedure Get_User_Data (Itm : in Item;
+ Data : out User_Access)
+ is
+ begin
+ Data := Get_User_Data (Itm);
+ end Get_User_Data;
+
+end Terminal_Interface.Curses.Menus.Item_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
new file mode 100644
index 0000000..87ea22b
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-menus-menu_user_data.adb
@@ -0,0 +1,76 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Menus.Menu_User_Data --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+
+package body Terminal_Interface.Curses.Menus.Menu_User_Data is
+
+ use type Interfaces.C.int;
+
+ procedure Set_User_Data (Men : in Menu;
+ Data : in User_Access)
+ is
+ function Set_Menu_Userptr (Men : Menu;
+ Data : User_Access) return C_Int;
+ pragma Import (C, Set_Menu_Userptr, "set_menu_userptr");
+
+ Res : constant Eti_Error := Set_Menu_Userptr (Men, Data);
+ begin
+ if Res /= E_Ok then
+ Eti_Exception (Res);
+ end if;
+ end Set_User_Data;
+
+ function Get_User_Data (Men : in Menu) return User_Access
+ is
+ function Menu_Userptr (Men : Menu) return User_Access;
+ pragma Import (C, Menu_Userptr, "menu_userptr");
+ begin
+ return Menu_Userptr (Men);
+ end Get_User_Data;
+
+ procedure Get_User_Data (Men : in Menu;
+ Data : out User_Access)
+ is
+ begin
+ Data := Get_User_Data (Men);
+ end Get_User_Data;
+
+end Terminal_Interface.Curses.Menus.Menu_User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb
new file mode 100644
index 0000000..1e18a0d
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-panels-user_data.adb
@@ -0,0 +1,78 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Panels.User_Data --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Interfaces.C;
+with Terminal_Interface.Curses.Aux;
+use Terminal_Interface.Curses.Aux;
+with Terminal_Interface.Curses.Panels;
+use Terminal_Interface.Curses.Panels;
+
+package body Terminal_Interface.Curses.Panels.User_Data is
+
+ use type Interfaces.C.int;
+
+ procedure Set_User_Data (Pan : in Panel;
+ Data : in User_Access)
+ is
+ function Set_Panel_Userptr (Pan : Panel;
+ Addr : User_Access) return C_Int;
+ pragma Import (C, Set_Panel_Userptr, "set_panel_userptr");
+ begin
+ if Set_Panel_Userptr (Pan, Data) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Set_User_Data;
+
+ function Get_User_Data (Pan : in Panel) return User_Access
+ is
+ function Panel_Userptr (Pan : Panel) return User_Access;
+ pragma Import (C, Panel_Userptr, "panel_userptr");
+ begin
+ return Panel_Userptr (Pan);
+ end Get_User_Data;
+
+ procedure Get_User_Data (Pan : in Panel;
+ Data : out User_Access)
+ is
+ begin
+ Data := Get_User_Data (Pan);
+ end Get_User_Data;
+
+end Terminal_Interface.Curses.Panels.User_Data;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb
new file mode 100644
index 0000000..ebbaf2a
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-panels.adb
@@ -0,0 +1,164 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Panels --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with Interfaces.C;
+
+package body Terminal_Interface.Curses.Panels is
+
+ use type Interfaces.C.int;
+
+ function Create (Win : Window) return Panel
+ is
+ function Newpanel (Win : Window) return Panel;
+ pragma Import (C, Newpanel, "new_panel");
+
+ Pan : Panel;
+ begin
+ Pan := Newpanel (Win);
+ if Pan = Null_Panel then
+ raise Panel_Exception;
+ end if;
+ return Pan;
+ end Create;
+
+ procedure Bottom (Pan : in Panel)
+ is
+ function Bottompanel (Pan : Panel) return C_Int;
+ pragma Import (C, Bottompanel, "bottom_panel");
+ begin
+ if Bottompanel (Pan) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Bottom;
+
+ procedure Top (Pan : in Panel)
+ is
+ function Toppanel (Pan : Panel) return C_Int;
+ pragma Import (C, Toppanel, "top_panel");
+ begin
+ if Toppanel (Pan) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Top;
+
+ procedure Show (Pan : in Panel)
+ is
+ function Showpanel (Pan : Panel) return C_Int;
+ pragma Import (C, Showpanel, "show_panel");
+ begin
+ if Showpanel (Pan) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Show;
+
+ procedure Hide (Pan : in Panel)
+ is
+ function Hidepanel (Pan : Panel) return C_Int;
+ pragma Import (C, Hidepanel, "hide_panel");
+ begin
+ if Hidepanel (Pan) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Hide;
+
+ function Get_Window (Pan : Panel) return Window
+ is
+ function Panel_Win (Pan : Panel) return Window;
+ pragma Import (C, Panel_Win, "panel_window");
+
+ Win : Window := Panel_Win (Pan);
+ begin
+ if Win = Null_Window then
+ raise Panel_Exception;
+ end if;
+ return Win;
+ end Get_Window;
+
+ procedure Replace (Pan : in Panel;
+ Win : in Window)
+ is
+ function Replace_Pan (Pan : Panel;
+ Win : Window) return C_Int;
+ pragma Import (C, Replace_Pan, "replace_panel");
+ begin
+ if Replace_Pan (Pan, Win) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Replace;
+
+ procedure Move (Pan : in Panel;
+ Line : in Line_Position;
+ Column : in Column_Position)
+ is
+ function Move (Pan : Panel;
+ Line : C_Int;
+ Column : C_Int) return C_Int;
+ pragma Import (C, Move, "move_panel");
+ begin
+ if Move (Pan, C_Int (Line), C_Int (Column)) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ end Move;
+
+ function Is_Hidden (Pan : Panel) return Boolean
+ is
+ function Panel_Hidden (Pan : Panel) return C_Int;
+ pragma Import (C, Panel_Hidden, "panel_hidden");
+ begin
+ if Panel_Hidden (Pan) = Curses_False then
+ return False;
+ else
+ return True;
+ end if;
+ end Is_Hidden;
+
+ procedure Delete (Pan : in out Panel)
+ is
+ function Del_Panel (Pan : Panel) return C_Int;
+ pragma Import (C, Del_Panel, "del_panel");
+ begin
+ if Del_Panel (Pan) = Curses_Err then
+ raise Panel_Exception;
+ end if;
+ Pan := Null_Panel;
+ end Delete;
+
+end Terminal_Interface.Curses.Panels;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb
new file mode 100644
index 0000000..20b7609
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.adb
@@ -0,0 +1,128 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Aux --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package body Terminal_Interface.Curses.Text_IO.Aux is
+
+ procedure Put_Buf
+ (Win : in Window;
+ Buf : in String;
+ Width : in Field;
+ Signal : in Boolean := True;
+ Ljust : in Boolean := False)
+ is
+ L : Field;
+ Len : Field;
+ W : Field := Width;
+ LC : Line_Count;
+ CC : Column_Count;
+ Y : Line_Position;
+ X : Column_Position;
+
+ procedure Output (From, To : Field);
+
+ procedure Output (From, To : Field)
+ is
+ begin
+ if Len > 0 then
+ if W = 0 then
+ W := Len;
+ end if;
+ if Len > W then
+ -- LRM A10.6 (7) says this
+ W := Len;
+ end if;
+
+ pragma Assert (Len <= W);
+ Get_Size (Win, LC, CC);
+ if Column_Count (Len) > CC then
+ if Signal then
+ raise Layout_Error;
+ else
+ return;
+ end if;
+ else
+ if Len < W and then not Ljust then
+ declare
+ Filler : constant String (1 .. (W - Len))
+ := (others => ' ');
+ begin
+ Put (Win, Filler);
+ end;
+ end if;
+ Get_Cursor_Position (Win, Y, X);
+ if (X + Column_Position (Len)) > CC then
+ New_Line (Win);
+ end if;
+ Put (Win, Buf (From .. To));
+ if Len < W and then Ljust then
+ declare
+ Filler : constant String (1 .. (W - Len))
+ := (others => ' ');
+ begin
+ Put (Win, Filler);
+ end;
+ end if;
+ end if;
+ end if;
+ end Output;
+
+ begin
+ pragma Assert (Win /= Null_Window);
+ if Ljust then
+ L := 1;
+ for I in 1 .. Buf'Length loop
+ exit when Buf (L) = ' ';
+ L := L + 1;
+ end loop;
+ Len := L - 1;
+ Output (1, Len);
+ else -- input buffer is not left justified
+ L := Buf'Length;
+ for I in 1 .. Buf'Length loop
+ exit when Buf (L) = ' ';
+ L := L - 1;
+ end loop;
+ Len := Buf'Length - L;
+ Output (L + 1, Buf'Length);
+ end if;
+ end Put_Buf;
+
+end Terminal_Interface.Curses.Text_IO.Aux;
+
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads
new file mode 100644
index 0000000..0148053
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-aux.ads
@@ -0,0 +1,55 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Aux --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+private package Terminal_Interface.Curses.Text_IO.Aux is
+ -- pragma Preelaborate (Aux);
+
+ -- This routine is called from the Text_IO output routines for numeric
+ -- and enumeration types.
+ --
+ procedure Put_Buf
+ (Win : in Window; -- The output window
+ Buf : in String; -- The buffer containing the text
+ Width : in Field; -- The width of the output field
+ Signal : in Boolean := True; -- If true, we raise Layout_Error
+ Ljust : in Boolean := False); -- The Buf is left justified
+
+end Terminal_Interface.Curses.Text_IO.Aux;
+
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
new file mode 100644
index 0000000..2ed8b56
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.adb
@@ -0,0 +1,73 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Complex_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Terminal_Interface.Curses.Text_IO.Float_IO;
+
+package body Terminal_Interface.Curses.Text_IO.Complex_IO is
+
+ package FIO is new
+ Terminal_Interface.Curses.Text_IO.Float_IO (Complex_Types.Real'Base);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Complex;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp)
+ is
+ begin
+ Put (Win, '(');
+ FIO.Put (Win, Item.Re, Fore, Aft, Exp);
+ Put (Win, ',');
+ FIO.Put (Win, Item.Im, Fore, Aft, Exp);
+ Put (Win, ')');
+ end Put;
+
+ procedure Put
+ (Item : in Complex;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp)
+ is
+ begin
+ Put (Get_Window, Item, Fore, Aft, Exp);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Complex_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
new file mode 100644
index 0000000..c83a005
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-complex_io.ads
@@ -0,0 +1,70 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Complex_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Numerics.Generic_Complex_Types;
+
+generic
+ with package Complex_Types is new Ada.Numerics.Generic_Complex_Types (<>);
+
+package Terminal_Interface.Curses.Text_IO.Complex_IO is
+
+ use Complex_Types;
+
+ Default_Fore : Field := 2;
+ Default_Aft : Field := Real'Digits - 1;
+ Default_Exp : Field := 3;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Complex;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+ procedure Put
+ (Item : in Complex;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Complex_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
new file mode 100644
index 0000000..a9cbbce
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.adb
@@ -0,0 +1,75 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Decimal_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Terminal_Interface.Curses.Text_IO.Aux;
+
+package body Terminal_Interface.Curses.Text_IO.Decimal_IO is
+
+ package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+ package DIO is new Ada.Text_IO.Decimal_IO (Num);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp)
+ is
+ Buf : String (1 .. Field'Last);
+ Len : Field := Fore + 1 + Aft;
+ begin
+ if Exp > 0 then
+ Len := Len + 1 + Exp;
+ end if;
+ DIO.Put (Buf, Item, Aft, Exp);
+ Aux.Put_Buf (Win, Buf, Len, False);
+ end Put;
+
+ procedure Put
+ (Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp) is
+ begin
+ Put (Get_Window, Item, Fore, Aft, Exp);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Decimal_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
new file mode 100644
index 0000000..73d243e
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-decimal_io.ads
@@ -0,0 +1,66 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Decimal_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type Num is delta <> digits <>;
+
+package Terminal_Interface.Curses.Text_IO.Decimal_IO is
+
+ Default_Fore : Field := Num'Fore;
+ Default_Aft : Field := Num'Aft;
+ Default_Exp : Field := 0;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+ procedure Put
+ (Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Decimal_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
new file mode 100644
index 0000000..5bf1332
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.adb
@@ -0,0 +1,80 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Ada.Characters.Handling; use Ada.Characters.Handling;
+with Terminal_Interface.Curses.Text_IO.Aux;
+
+package body Terminal_Interface.Curses.Text_IO.Enumeration_IO is
+
+ package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+ package EIO is new Ada.Text_IO.Enumeration_IO (Enum);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Enum;
+ Width : in Field := Default_Width;
+ Set : in Type_Set := Default_Setting)
+ is
+ Buf : String (1 .. Field'Last);
+ Tset : Ada.Text_IO.Type_Set;
+ begin
+ if Set /= Mixed_Case then
+ Tset := Ada.Text_IO.Type_Set'Val (Type_Set'Pos (Set));
+ else
+ Tset := Ada.Text_IO.Lower_Case;
+ end if;
+ EIO.Put (Buf, Item, Tset);
+ if Set = Mixed_Case then
+ Buf (Buf'First) := To_Upper (Buf (Buf'First));
+ end if;
+ Aux.Put_Buf (Win, Buf, Width, True, True);
+ end Put;
+
+ procedure Put
+ (Item : in Enum;
+ Width : in Field := Default_Width;
+ Set : in Type_Set := Default_Setting)
+ is
+ begin
+ Put (Get_Window, Item, Width, Set);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
new file mode 100644
index 0000000..86f2173
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-enumeration_io.ads
@@ -0,0 +1,63 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Enumeration_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type Enum is (<>);
+
+package Terminal_Interface.Curses.Text_IO.Enumeration_IO is
+
+ Default_Width : Field := 0;
+ Default_Setting : Type_Set := Mixed_Case;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Enum;
+ Width : in Field := Default_Width;
+ Set : in Type_Set := Default_Setting);
+
+ procedure Put
+ (Item : in Enum;
+ Width : in Field := Default_Width;
+ Set : in Type_Set := Default_Setting);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Enumeration_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
new file mode 100644
index 0000000..0bd26fa
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.adb
@@ -0,0 +1,75 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Fixed_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Terminal_Interface.Curses.Text_IO.Aux;
+
+package body Terminal_Interface.Curses.Text_IO.Fixed_IO is
+
+ package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+ package FIXIO is new Ada.Text_IO.Fixed_IO (Num);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp)
+ is
+ Buf : String (1 .. Field'Last);
+ Len : Field := Fore + 1 + Aft;
+ begin
+ if Exp > 0 then
+ Len := Len + 1 + Exp;
+ end if;
+ FIXIO.Put (Buf, Item, Aft, Exp);
+ Aux.Put_Buf (Win, Buf, Len, False);
+ end Put;
+
+ procedure Put
+ (Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp) is
+ begin
+ Put (Get_Window, Item, Fore, Aft, Exp);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Fixed_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
new file mode 100644
index 0000000..83c5a16
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-fixed_io.ads
@@ -0,0 +1,66 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Fixed_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type Num is delta <>;
+
+package Terminal_Interface.Curses.Text_IO.Fixed_IO is
+
+ Default_Fore : Field := Num'Fore;
+ Default_Aft : Field := Num'Aft;
+ Default_Exp : Field := 0;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+ procedure Put
+ (Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Fixed_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb
new file mode 100644
index 0000000..9b24daa
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.adb
@@ -0,0 +1,76 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Float_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Terminal_Interface.Curses.Text_IO.Aux;
+
+package body Terminal_Interface.Curses.Text_IO.Float_IO is
+
+ package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+ package FIO is new Ada.Text_IO.Float_IO (Num);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp)
+ is
+ Buf : String (1 .. Field'Last);
+ Len : Field := Fore + 1 + Aft;
+ begin
+ if Exp > 0 then
+ Len := Len + 1 + Exp;
+ end if;
+ FIO.Put (Buf, Item, Aft, Exp);
+ Aux.Put_Buf (Win, Buf, Len, False);
+ end Put;
+
+ procedure Put
+ (Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp)
+ is
+ begin
+ Put (Get_Window, Item, Fore, Aft, Exp);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Float_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads
new file mode 100644
index 0000000..01fa996
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-float_io.ads
@@ -0,0 +1,66 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Float_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type Num is digits <>;
+
+package Terminal_Interface.Curses.Text_IO.Float_IO is
+
+ Default_Fore : Field := 2;
+ Default_Aft : Field := Num'Digits - 1;
+ Default_Exp : Field := 3;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+ procedure Put
+ (Item : in Num;
+ Fore : in Field := Default_Fore;
+ Aft : in Field := Default_Aft;
+ Exp : in Field := Default_Exp);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Float_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
new file mode 100644
index 0000000..b7bd495
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.adb
@@ -0,0 +1,70 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Integer_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Terminal_Interface.Curses.Text_IO.Aux;
+
+package body Terminal_Interface.Curses.Text_IO.Integer_IO is
+
+ package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+ package IIO is new Ada.Text_IO.Integer_IO (Num);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base)
+ is
+ Buf : String (1 .. Field'Last);
+ begin
+ IIO.Put (Buf, Item, Base);
+ Aux.Put_Buf (Win, Buf, Width);
+ end Put;
+
+ procedure Put
+ (Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base)
+ is
+ begin
+ Put (Get_Window, Item, Width, Base);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Integer_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
new file mode 100644
index 0000000..a4e430e
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-integer_io.ads
@@ -0,0 +1,63 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Integer_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type Num is range <>;
+
+package Terminal_Interface.Curses.Text_IO.Integer_IO is
+
+ Default_Width : Field := Num'Width;
+ Default_Base : Number_Base := 10;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base);
+
+ procedure Put
+ (Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Integer_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
new file mode 100644
index 0000000..aff0666
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.adb
@@ -0,0 +1,70 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Modular_IO --
+-- --
+-- B O D Y --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Terminal_Interface.Curses.Text_IO.Aux;
+
+package body Terminal_Interface.Curses.Text_IO.Modular_IO is
+
+ package Aux renames Terminal_Interface.Curses.Text_IO.Aux;
+ package MIO is new Ada.Text_IO.Modular_IO (Num);
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base)
+ is
+ Buf : String (1 .. Field'Last);
+ begin
+ MIO.Put (Buf, Item, Base);
+ Aux.Put_Buf (Win, Buf, Width);
+ end Put;
+
+ procedure Put
+ (Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base)
+ is
+ begin
+ Put (Get_Window, Item, Width, Base);
+ end Put;
+
+end Terminal_Interface.Curses.Text_IO.Modular_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
new file mode 100644
index 0000000..9033f7f
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io-modular_io.ads
@@ -0,0 +1,63 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO.Modular_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+generic
+ type Num is mod <>;
+
+package Terminal_Interface.Curses.Text_IO.Modular_IO is
+
+ Default_Width : Field := Num'Width;
+ Default_Base : Number_Base := 10;
+
+ procedure Put
+ (Win : in Window;
+ Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base);
+
+ procedure Put
+ (Item : in Num;
+ Width : in Field := Default_Width;
+ Base : in Number_Base := Default_Base);
+
+private
+ pragma Inline (Put);
+
+end Terminal_Interface.Curses.Text_IO.Modular_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads
new file mode 100644
index 0000000..fa659a8
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface-curses-text_io.ads
@@ -0,0 +1,136 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface.Curses.Text_IO --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+with Ada.Text_IO;
+with Ada.IO_Exceptions;
+
+package Terminal_Interface.Curses.Text_IO is
+
+ use type Ada.Text_IO.Count;
+ subtype Count is Ada.Text_IO.Count;
+ subtype Positive_Count is Count range 1 .. Count'Last;
+
+ subtype Field is Ada.Text_IO.Field;
+ subtype Number_Base is Integer range 2 .. 16;
+
+ type Type_Set is (Lower_Case, Upper_Case, Mixed_Case);
+
+ -- For most of the routines you will see a version without a Window
+ -- type parameter. They will operate on a default window, which can
+ -- be set by the user. It is initially equal to Standard_Window.
+
+ procedure Set_Window (Win : in Window);
+ -- Set Win as the default window
+
+ function Get_Window return Window;
+ -- Get the current default window
+
+ procedure Flush (Win : in Window);
+ procedure Flush;
+
+ --------------------------------------------
+ -- Specification of line and page lengths --
+ --------------------------------------------
+
+ -- There are no set routines in this package. I assume, that you allocate
+ -- the window with an appropriate size.
+ -- A scroll-window is interpreted as an page with unbounded page length,
+ -- i.e. it returns the conventional 0 as page length.
+
+ function Line_Length (Win : in Window) return Count;
+ function Line_Length return Count;
+
+ function Page_Length (Win : in Window) return Count;
+ function Page_Length return Count;
+
+ ------------------------------------
+ -- Column, Line, and Page Control --
+ ------------------------------------
+ procedure New_Line (Win : in Window; Spacing : in Positive_Count := 1);
+ procedure New_Line (Spacing : in Positive_Count := 1);
+
+ procedure New_Page (Win : in Window);
+ procedure New_Page;
+
+ procedure Set_Col (Win : in Window; To : in Positive_Count);
+ procedure Set_Col (To : in Positive_Count);
+
+ procedure Set_Line (Win : in Window; To : in Positive_Count);
+ procedure Set_Line (To : in Positive_Count);
+
+ function Col (Win : in Window) return Positive_Count;
+ function Col return Positive_Count;
+
+ function Line (Win : in Window) return Positive_Count;
+ function Line return Positive_Count;
+
+ -----------------------
+ -- Characters-Output --
+ -----------------------
+
+ procedure Put (Win : in Window; Item : in Character);
+ procedure Put (Item : in Character);
+
+ --------------------
+ -- Strings-Output --
+ --------------------
+
+ procedure Put (Win : in Window; Item : in String);
+ procedure Put (Item : in String);
+
+ procedure Put_Line
+ (Win : in Window;
+ Item : in String);
+
+ procedure Put_Line
+ (Item : in String);
+
+ -- Exceptions
+
+ Status_Error : exception renames Ada.IO_Exceptions.Status_Error;
+ Mode_Error : exception renames Ada.IO_Exceptions.Mode_Error;
+ Name_Error : exception renames Ada.IO_Exceptions.Name_Error;
+ Use_Error : exception renames Ada.IO_Exceptions.Use_Error;
+ Device_Error : exception renames Ada.IO_Exceptions.Device_Error;
+ End_Error : exception renames Ada.IO_Exceptions.End_Error;
+ Data_Error : exception renames Ada.IO_Exceptions.Data_Error;
+ Layout_Error : exception renames Ada.IO_Exceptions.Layout_Error;
+
+end Terminal_Interface.Curses.Text_IO;
diff --git a/ncurses-5.2/Ada95/src/terminal_interface.ads b/ncurses-5.2/Ada95/src/terminal_interface.ads
new file mode 100644
index 0000000..d49747b
--- /dev/null
+++ b/ncurses-5.2/Ada95/src/terminal_interface.ads
@@ -0,0 +1,48 @@
+------------------------------------------------------------------------------
+-- --
+-- GNAT ncurses Binding --
+-- --
+-- Terminal_Interface --
+-- --
+-- S P E C --
+-- --
+------------------------------------------------------------------------------
+-- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- --
+-- Permission is hereby granted, free of charge, to any person obtaining a --
+-- copy of this software and associated documentation files (the --
+-- "Software"), to deal in the Software without restriction, including --
+-- without limitation the rights to use, copy, modify, merge, publish, --
+-- distribute, distribute with modifications, sublicense, and/or sell --
+-- copies of the Software, and to permit persons to whom the Software is --
+-- furnished to do so, subject to the following conditions: --
+-- --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
+-- --
+-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS --
+-- OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF --
+-- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. --
+-- IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, --
+-- DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR --
+-- OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR --
+-- THE USE OR OTHER DEALINGS IN THE SOFTWARE. --
+-- --
+-- Except as contained in this notice, the name(s) of the above copyright --
+-- holders shall not be used in advertising or otherwise to promote the --
+-- sale, use or other dealings in this Software without prior written --
+-- authorization. --
+------------------------------------------------------------------------------
+-- Author: Juergen Pfeifer <juergen.pfeifer@gmx.net> 1996
+-- Version Control:
+-- $Revision$
+-- Binding Version 01.00
+------------------------------------------------------------------------------
+package Terminal_Interface is
+ pragma Pure (Terminal_Interface);
+--
+-- Everything is in the child units
+--
+end Terminal_Interface;
+
+