亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? terminal_interface-curses-forms-field_types.adb

?? ncurses-5.4 需要的就來下把 一定會有用的哦
?? ADB
字號:
--------------------------------------------------------------------------------                                                                          ----                           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, 1996--  Version Control:--  $Revision: 1.14 $--  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;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久久a久久精品亚洲| 日韩情涩欧美日韩视频| 精品对白一区国产伦| 日本午夜一本久久久综合| 99vv1com这只有精品| 国产精品国产自产拍在线| 久久国产日韩欧美精品| 欧美www视频| 亚洲欧美日韩国产中文在线| 成人免费av在线| 1区2区3区国产精品| 91福利区一区二区三区| 成人欧美一区二区三区小说| 成人av资源在线| 中文字幕亚洲欧美在线不卡| 99精品偷自拍| 图片区小说区区亚洲影院| 日韩一级高清毛片| 国产麻豆精品久久一二三| 中文字幕免费不卡| 在线观看国产91| 麻豆精品一区二区三区| 国产亚洲一本大道中文在线| 国产盗摄精品一区二区三区在线 | 日韩免费视频线观看| 激情综合网激情| 一区二区在线观看av| 日韩一区二区三区高清免费看看| 激情五月播播久久久精品| 久久久久九九视频| 在线播放亚洲一区| 顶级嫩模精品视频在线看| 亚洲一区二区三区在线看| 精品国内二区三区| 欧美日韩精品电影| 成人免费黄色大片| 蜜桃av噜噜一区二区三区小说| 国产精品丝袜一区| 欧美不卡一区二区| 欧美色大人视频| 99国产精品国产精品毛片| 久久精品国产一区二区三 | 青青草国产成人av片免费| 亚洲精品视频自拍| 国产精品青草综合久久久久99| 欧美一区二区在线不卡| 欧美电影在线免费观看| 日本精品一级二级| 91影院在线观看| 99精品国产99久久久久久白柏| 韩国成人福利片在线播放| 久久99热国产| 黄色小说综合网站| 国产在线麻豆精品观看| 久久99国产精品久久99| 九一九一国产精品| 国产剧情av麻豆香蕉精品| 久久99日本精品| 成人性视频免费网站| 国产成人啪午夜精品网站男同| 黑人精品欧美一区二区蜜桃| 极品瑜伽女神91| 成人激情免费视频| 欧美在线免费播放| 91麻豆精品91久久久久久清纯| 欧美大片顶级少妇| 中文字幕亚洲在| 性做久久久久久久免费看| 午夜精品久久久久久久99樱桃 | 久久精品噜噜噜成人88aⅴ| 久久精品国产秦先生| 国产一本一道久久香蕉| 一本到一区二区三区| 91精品国产一区二区三区| 久久久精品日韩欧美| 亚洲一区二区三区三| 免费欧美高清视频| 91小视频免费看| 精品福利一区二区三区免费视频| 国产精品美女视频| 久久99国产精品尤物| 99精品黄色片免费大全| 精品久久久三级丝袜| 综合色天天鬼久久鬼色| 奇米四色…亚洲| 欧美日韩电影在线| 亚洲欧美日韩在线不卡| 欧美性猛交xxxxxx富婆| av电影在线观看一区| 色综合久久综合| 欧美精品 日韩| 亚洲私人影院在线观看| 国产宾馆实践打屁股91| 欧美成人艳星乳罩| 日韩精品亚洲一区| 色综合色综合色综合色综合色综合| 精品国产成人在线影院 | www久久精品| 香蕉成人啪国产精品视频综合网| av福利精品导航| 亚洲国产成人私人影院tom| 国产精品一区二区无线| 精品成人私密视频| 国产一区在线观看麻豆| 久久综合久久久久88| 国产乱人伦精品一区二区在线观看| 欧美日韩大陆一区二区| 日本亚洲最大的色成网站www| 欧美三级午夜理伦三级中视频| 亚洲国产日韩精品| 欧美精品日韩一区| 免费在线观看一区| 国产亚洲一二三区| 在线观看91视频| 美女视频网站久久| 久久免费偷拍视频| 色哟哟日韩精品| 视频一区二区三区在线| 精品久久久久久久人人人人传媒| 久久99国产乱子伦精品免费| 国产拍欧美日韩视频二区| 不卡av在线网| 亚洲成人激情自拍| 日韩欧美一卡二卡| 99国产精品国产精品毛片| 亚洲第一狼人社区| 久久久久久久一区| 色嗨嗨av一区二区三区| 另类调教123区 | 国产精品久久久久影院老司| 91国产精品成人| 国产成人午夜视频| 丝袜美腿亚洲色图| 亚洲欧美国产77777| 26uuu另类欧美| 91精品国产综合久久精品app| 国产成人av一区二区| 久久精品国产在热久久| 一区二区三区不卡在线观看| 日本一区二区三区在线不卡| 538在线一区二区精品国产| 色婷婷久久久亚洲一区二区三区 | 欧美性一区二区| 99久精品国产| 色婷婷国产精品| 成人av电影免费观看| 国产精品伊人色| 国产aⅴ综合色| 国产91丝袜在线播放| 国产a精品视频| 99国产麻豆精品| 色哟哟国产精品| 9久草视频在线视频精品| 韩国欧美国产一区| 国产麻豆日韩欧美久久| 国产精品一区二区在线看| 国产河南妇女毛片精品久久久| 精品一区二区国语对白| 狠狠色狠狠色合久久伊人| 精品在线亚洲视频| 丁香激情综合国产| 色综合天天综合色综合av | 不卡视频在线观看| 成人国产亚洲欧美成人综合网| eeuss鲁片一区二区三区| 99久久久久免费精品国产| 一本色道久久综合精品竹菊| 欧美亚洲国产怡红院影院| 欧美一区二区在线不卡| 中文字幕欧美激情一区| 日日夜夜一区二区| 轻轻草成人在线| 99精品国产91久久久久久| 9191国产精品| 国产精品久久久久久户外露出| 亚洲精品乱码久久久久久久久| 日产国产高清一区二区三区| 国产91丝袜在线18| 日韩欧美不卡在线观看视频| ●精品国产综合乱码久久久久| 丝袜美腿成人在线| 日本精品免费观看高清观看| 日韩精品一区二区三区中文不卡| 亚洲图片激情小说| 国产福利精品一区| 日韩精品一区在线| 天天操天天干天天综合网| 国产精品1024久久| 久久久另类综合| 精品亚洲欧美一区| 日韩欧美成人一区| 奇米精品一区二区三区在线观看一| 色婷婷综合久久久久中文| 国产亚洲成aⅴ人片在线观看| 麻豆视频一区二区| 欧美一级片在线看| 日韩精品色哟哟| 欧美一区二区视频在线观看2022| 亚洲一区二区三区爽爽爽爽爽| 99国产精品久|