📄 terminal_interface-curses-forms-field_types__ads.htm
字号:
<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>; Next, Prev : Choice_Function; <b>end</b> <b>record</b>; <b>pragma</b> Convention (C, Low_Level_Field_Type); <b>type</b> C_Field_Type <b>is</b> <b>access</b> <b>all</b> Low_Level_Field_Type; Null_Field_Type : <b>constant</b> C_Field_Type := <b>null</b>; <FONT COLOR=green><EM>-- +----------------------------------------------------------------------</EM></FONT> <FONT COLOR=green><EM>-- | This four low-level fieldtypes are the ones associated with</EM></FONT> <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> <FONT COLOR=red><A NAME="142_4">M_Generic_Type</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>; <FONT COLOR=red><A NAME="143_4">M_Generic_Choice</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A> := <b>null</b>; <FONT COLOR=red><A NAME="144_4">M_Builtin_Router</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_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> <FONT COLOR=red><A NAME="149_13">C_Builtin_Router</A></FONT> <b>return</b> <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">C_Field_Type</A>; <b>function</b> C_Choice_Router <b>return</b> C_Field_Type; <b>procedure</b> Wrap_Builtin (Fld : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#52_9">Field</A>; <FONT COLOR=red><A NAME="153_28">Typ</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_9">Field_Type</A>'Class<A HREF="terminal_interface-curses-forms-field_types__ads.htm#148_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>-- conformant Field_Type object.</EM></FONT> <FONT COLOR=green><EM>-- The parameter Cft must be C_Builtin_Router for regular low-level</EM></FONT> <FONT COLOR=green><EM>-- fieldtypes (like TYP_ALPHA or TYP_ALNUM) and C_Choice_Router for</EM></FONT> <FONT COLOR=green><EM>-- low-level fieldtypes witch choice functions (like TYP_ENUM).</EM></FONT> <FONT COLOR=green><EM>-- Any other value will raise a Form_Exception.</EM></FONT> <b>function</b> Make_Arg (Args : System.Address) <b>return</b> System.Address; <b>pragma</b> Convention (C, Make_Arg); <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>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> <b>procedure</b> Free_Arg (Usr : System.Address); <b>pragma</b> Convention (C, Free_Arg); <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>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>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>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>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>-- type. It routes the call to the corresponding low-level prev_choice</EM></FONT> <FONT COLOR=green><EM>-- function.</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> <FONT COLOR=red><A NAME="214_7">Usr</A></FONT> : <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_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>-- |</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>; <A HREF="terminal_interface-curses-forms-field_types__ads.htm#132_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>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>return</b> C_Int; <b>pragma</b> Import (C, Set_Fieldtype_Choice, "set_fieldtype_choice");<b>end</b> Terminal_Interface.Curses.Forms.Field_Types;</PRE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -