<FONT COLOR=green><EM>-- sale, use or other dealings in this Software without prior written --</EM></FONT>
<FONT COLOR=green><EM>-- authorization. --</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
-<FONT COLOR=green><EM>-- Author: <A HREF="http://home.t-online.de/home/Juergen.Pfeifer">Jürgen Pfeifer</A> <<A HREF="mailto:juergen.pfeifer@gmx.net"><juergen.pfeifer@gmx.net></A>> 1996</EM></FONT>
+<FONT COLOR=green><EM>-- Author: <A HREF="http://www.familiepfeifer.de/juergen">Jürgen Pfeifer</A>, 1996</EM></FONT>
+<FONT COLOR=green><EM>-- Contact: <A HREF="http://www.familiepfeifer.de/Contact.aspx?Lang=en">www.familiepfeifer.de/Contact.aspx?Lang=en</A></EM></FONT>
<FONT COLOR=green><EM>-- Version Control:</EM></FONT>
-<FONT COLOR=green><EM>-- @Revision: 1.12 @</EM></FONT>
+<FONT COLOR=green><EM>-- @Revision: 1.13 @</EM></FONT>
<FONT COLOR=green><EM>-- Binding Version 01.00</EM></FONT>
<FONT COLOR=green><EM>------------------------------------------------------------------------------</EM></FONT>
<b>with</b> Interfaces.C;
<b>package</b> Terminal_Interface.Curses.Forms.Field_Types <b>is</b>
<b>pragma</b> Preelaborate (Terminal_Interface.Curses.Forms.Field_Types);
- <b>use</b> <b>type</b><FONT COLOR=red><A NAME="46_12"> </A></FONT>Interfaces.C.int;
+ <b>use</b> <b>type</b><FONT COLOR=red><A NAME="47_12"> </A></FONT>Interfaces.C.int;
<b>subtype</b> C_Int <b>is</b> Interfaces.C.int;
<FONT COLOR=green><EM>-- |=====================================================================</EM></FONT>
<b>type</b> Field_Type_Access <b>is</b> <b>access</b> <b>all</b> Field_Type'Class;
<FONT COLOR=green><EM>-- #1A NAME="AFU_1"#2|</EM></FONT>
- <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="67_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
+ <b>procedure</b> Set_Field_Type (<FONT COLOR=red><A NAME="68_30">Fld</A></FONT> : <b>in</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field</A>;
Fld_Type : <b>in</b> Field_Type) <b>is</b> <b>abstract</b>;
<FONT COLOR=green><EM>-- AKA: <A HREF="../man/form_fieldtype.3x.html">set_field_type()</A></EM></FONT>
<FONT COLOR=green><EM>-- But: we hide the vararg mechanism of the C interface. You always</EM></FONT>
<b>procedure</b> (Usr : System.Address);
<b>pragma</b> Convention (C, Freearg_Function);
- <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="105_29"> </A></FONT><b>is</b> <b>access</b>
+ <b>type</b> Field_Check_Function<FONT COLOR=red><A NAME="106_29"> </A></FONT><b>is</b> <b>access</b>
<b>function</b> (Fld : Field; Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Field_Check_Function);
- <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="109_28"> </A></FONT><b>is</b> <b>access</b>
- <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">;</A> Usr : System.Address) <b>return</b> C_Int;
+ <b>type</b> Char_Check_Function<FONT COLOR=red><A NAME="110_28"> </A></FONT><b>is</b> <b>access</b>
+ <b>function</b> (Ch : C_Int<A HREF="terminal_interface-curses-forms-field_types__ads.htm#109_9">;</A> Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Char_Check_Function);
<b>type</b> Choice_Function <b>is</b> <b>access</b>
<FONT COLOR=green><EM>-- |</EM></FONT>
<b>type</b> Low_Level_Field_Type <b>is</b>
<b>record</b>
- <FONT COLOR=red><A NAME="122_10">Status</A></FONT> : <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
- <FONT COLOR=red><A NAME="123_10">Ref_Count</A></FONT> : Interfaces.C.long;
- <FONT COLOR=red><A NAME="124_10">Left</A></FONT>, Right : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#92_9">System</A>.Address;
- <FONT COLOR=red><A NAME="125_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#96_9">Makearg_Function</A>;
- <FONT COLOR=red><A NAME="126_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#100_9">Copyarg_Function</A>;
- <FONT COLOR=red><A NAME="127_10">Freearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#104_9">Freearg_Function</A>;
- <FONT COLOR=red><A NAME="128_10">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">Field_Check_Function</A>;
- <FONT COLOR=red><A NAME="129_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="129_16"> </A></FONT>: <A HREF="terminal_interface-curses-forms-field_types__ads.htm#112_9">Char_Check_Function</A>;
+ <FONT COLOR=red><A NAME="123_10">Status</A></FONT> : <A HREF="interfac__ads.htm#23_9">Interfaces</A>.C.short;
+ <FONT COLOR=red><A NAME="124_10">Ref_Count</A></FONT> : Interfaces.C.long;
+ <FONT COLOR=red><A NAME="125_10">Left</A></FONT>, Right : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#93_9">System</A>.Address;
+ <FONT COLOR=red><A NAME="126_10">Makearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#97_9">Makearg_Function</A>;
+ <FONT COLOR=red><A NAME="127_10">Copyarg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#101_9">Copyarg_Function</A>;
+ <FONT COLOR=red><A NAME="128_10">Freearg</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#105_9">Freearg_Function</A>;
+ <FONT COLOR=red><A NAME="129_10">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#109_9">Field_Check_Function</A>;
+ <FONT COLOR=red><A NAME="130_10">Ccheck</A></FONT><FONT COLOR=red><A NAME="130_16"> </A></FONT>: <A HREF="terminal_interface-curses-forms-field_types__ads.htm#113_9">Char_Check_Function</A>;
Next, Prev : Choice_Function;
<b>end</b> <b>record</b>;
<b>pragma</b> Convention (C, Low_Level_Field_Type);
<FONT COLOR=green><EM>-- | fieldtypes handled by this binding. Any other low-level fieldtype</EM></FONT>
<FONT COLOR=green><EM>-- | will result in a Form_Exception is function Get_Type.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- M_Generic_Type : C_Field_Type := <b>null</b>;
- M_Generic_Choice : C_Field_Type := <b>null</b>;
- M_Builtin_Router : C_Field_Type := <b>null</b>;
+ <FONT COLOR=red><A NAME="143_4">M_Generic_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <b>null</b>;
+ <FONT COLOR=red><A NAME="144_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <b>null</b>;
+ <FONT COLOR=red><A NAME="145_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A> := <b>null</b>;
M_Choice_Router : C_Field_Type := <b>null</b>;
<FONT COLOR=green><EM>-- Two wrapper functions to access those low-level fieldtypes defined</EM></FONT>
<FONT COLOR=green><EM>-- in this package.</EM></FONT>
- <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#264_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="149_13"></A></FONT> <b>return</b> C_Field_Type;
+ <b>function</b> <A HREF="terminal_interface-curses-forms-field_types__adb.htm#265_13">C_Builtin_Router</A><FONT COLOR=red><A NAME="150_13"></A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">C_Field_Type</A>;
<b>function</b> C_Choice_Router <b>return</b> C_Field_Type;
- <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="152_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>;
- Typ : Field_Type'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_13">;</A>
+ <b>procedure</b> Wrap_Builtin (<FONT COLOR=red><A NAME="153_28">Fld</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#53_9">Field</A>;
+ <FONT COLOR=red><A NAME="154_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#149_13">;</A>
Cft : C_Field_Type := C_Builtin_Router);
<FONT COLOR=green><EM>-- This procedure has to be called by the Set_Field_Type implementation</EM></FONT>
<FONT COLOR=green><EM>-- for builtin low-level fieldtypes to replace it by an Ada95</EM></FONT>
<FONT COLOR=green><EM>-- This is the Makearg_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
- <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13"> </A>: System.Address) <b>return</b> System.Address;
+ <b>function</b> Copy_Arg (Usr<A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13"> </A>: System.Address) <b>return</b> System.Address;
<b>pragma</b> Convention (C, Copy_Arg);
<FONT COLOR=green><EM>-- This is the Copyarg_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
<FONT COLOR=green><EM>-- This is the Freearg_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
- <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="178_33">Fld</A></FONT> : Field;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#177_13"> </A> Usr : System.Address) <b>return</b> C_Int;
+ <b>function</b> Field_Check_Router (<FONT COLOR=red><A NAME="179_33">Fld</A></FONT> : Field;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#178_13"> </A> Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Field_Check_Router);
<FONT COLOR=green><EM>-- This is the Field_Check_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT>
<FONT COLOR=green><EM>-- function.</EM></FONT>
- <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="186_32">Ch</A></FONT> : C_Int;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#185_13"> </A> Usr : System.Address) <b>return</b> C_Int;
+ <b>function</b> Char_Check_Router (<FONT COLOR=red><A NAME="187_32">Ch</A></FONT> : C_Int;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#186_13"> </A> Usr : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Char_Check_Router);
<FONT COLOR=green><EM>-- This is the Char_Check_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level validation</EM></FONT>
<FONT COLOR=green><EM>-- function.</EM></FONT>
- <b>function</b> Next_Router (<FONT COLOR=red><A NAME="194_26">Fld</A></FONT> : Field;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#193_13">Usr</A> : System.Address) <b>return</b> C_Int;
+ <b>function</b> Next_Router (<FONT COLOR=red><A NAME="195_26">Fld</A></FONT> : Field;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#194_13">Usr</A> : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Next_Router);
<FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- type. It routes the call to the corresponding low-level next_choice</EM></FONT>
<FONT COLOR=green><EM>-- function.</EM></FONT>
- <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="202_26">Fld</A></FONT> : Field;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#201_13">Usr</A> : System.Address) <b>return</b> C_Int;
+ <b>function</b> Prev_Router (<FONT COLOR=red><A NAME="203_26">Fld</A></FONT> : Field;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#202_13">Usr</A> : System.Address) <b>return</b> C_Int;
<b>pragma</b> Convention (C, Prev_Router);
<FONT COLOR=green><EM>-- This is the Choice_Function for the internal low-level types</EM></FONT>
<FONT COLOR=green><EM>-- introduced to wrap the low-level types by a Field_Type derived</EM></FONT>
<FONT COLOR=green><EM>-- This is the Argument structure maintained by all low-level field types</EM></FONT>
<FONT COLOR=green><EM>-- introduced by this binding.</EM></FONT>
<b>type</b> Argument <b>is</b> <b>record</b>
- <FONT COLOR=red><A NAME="213_7">Typ</A></FONT> : Field_Type_Access; <FONT COLOR=green><EM>-- the Field_Type creating this record</EM></FONT>
- Usr : System.Address; <FONT COLOR=green><EM>-- original arg for builtin low-level types</EM></FONT>
+ <FONT COLOR=red><A NAME="214_7">Typ</A></FONT> : Field_Type_Access; <FONT COLOR=green><EM>-- the Field_Type creating this record</EM></FONT>
+ <FONT COLOR=red><A NAME="215_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9">System</A>.Address; <FONT COLOR=green><EM>-- original arg for builtin low-level types</EM></FONT>
Cft : C_Field_Type; <FONT COLOR=green><EM>-- the original low-level type</EM></FONT>
<b>end</b> <b>record</b>;
<b>type</b> Argument_Access <b>is</b> <b>access</b> <b>all</b> Argument;
<FONT COLOR=green><EM>-- |</EM></FONT>
<FONT COLOR=green><EM>-- | Some Imports of libform routines to deal with low-level fieldtypes.</EM></FONT>
<FONT COLOR=green><EM>-- |</EM></FONT>
- <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="223_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#108_9">Field_Check_Function</A>;
- Ccheck : Char_Check_Function)
+ <b>function</b> New_Fieldtype (<FONT COLOR=red><A NAME="224_28">Fcheck</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#109_9">Field_Check_Function</A>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#133_9"> </A> Ccheck : Char_Check_Function)
<b>return</b> C_Field_Type;
<b>pragma</b> Import (C, New_Fieldtype, "new_fieldtype");
- <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="228_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#92_9">C_Field_Type</A>;
- <FONT COLOR=red><A NAME="229_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#96_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#167_13">Make_Arg</A>'<b>Access</b>;
- <FONT COLOR=red><A NAME="230_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#100_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#172_14">Copy_Arg</A>'<b>Access</b>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12"> </A> Fre : Freearg_Function := Free_Arg'<b>Access</b>)
+ <b>function</b> Set_Fieldtype_Arg (<FONT COLOR=red><A NAME="229_32">Cft</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#93_9">C_Field_Type</A>;
+ <FONT COLOR=red><A NAME="230_32">Mak</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#97_9">Makearg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#168_13">Make_Arg</A>'<b>Access</b>;
+ <FONT COLOR=red><A NAME="231_32">Cop</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#101_9">Copyarg_Function</A> := <A HREF="terminal_interface-curses-forms-field_types__ads.htm#173_14">Copy_Arg</A>'<b>Access</b>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12"> </A> Fre : Freearg_Function := Free_Arg'<b>Access</b>)
<b>return</b> C_Int;
<b>pragma</b> Import (C, Set_Fieldtype_Arg, "set_fieldtype_arg");
- <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="235_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="235_41">C_Field_Type</A></FONT>;
- <A HREF="terminal_interface-curses-forms-field_types__ads.htm#46_12"> </A> Next, Prev : Choice_Function)
+ <b>function</b> Set_Fieldtype_Choice (<FONT COLOR=red><A NAME="236_35">Cft</A></FONT> : <FONT COLOR=red><A NAME="236_41">C_Field_Type</A></FONT>;
+ <A HREF="terminal_interface-curses-forms-field_types__ads.htm#47_12"> </A> Next, Prev : Choice_Function)
<b>return</b> C_Int;
<b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");