X-Git-Url: http://ncurses.scripts.mit.edu/?a=blobdiff_plain;f=doc%2Fhtml%2Fada%2Fterminal_interface-curses-forms-field_types-user__adb.htm;h=ed3a5e1baa9d158d1e2137f48681cf07ba96238f;hb=29ee95cea37c4bbf2014a35677d9a0750c6b52a8;hp=bbc6e1f896d741eb549a79594262f8a03156c6d0;hpb=46722468f47c2b77b3987729b4bcf2321cccfd01;p=ncurses.git
diff --git a/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm b/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
index bbc6e1f8..ed3a5e1b 100644
--- a/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
+++ b/doc/html/ada/terminal_interface-curses-forms-field_types-user__adb.htm
@@ -1,3 +1,4 @@
+
terminal_interface-curses-forms-field_types-user.adb
File : terminal_interface-curses-forms-field_types-user.adb
@@ -11,7 +12,7 @@
-- B O D Y --
-- --
------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc. --
+-- Copyright (c) 1998-2009,2011 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 --
@@ -37,102 +38,102 @@
-- sale, use or other dealings in this Software without prior written --
-- authorization. --
------------------------------------------------------------------------------
--- Author: Jürgen Pfeifer, 1996
--- Contact: www.familiepfeifer.de/Contact.aspx?Lang=en
+-- Author: Juergen Pfeifer, 1996
-- Version Control:
--- @Revision: 1.9 @
+-- @Revision: 1.21 @
+-- @Date: 2011/03/23 00:44:58 @
-- Binding Version 01.00
------------------------------------------------------------------------------
-with Ada.Unchecked_Conversion;
-with Interfaces.C;
-with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
+with System.Address_To_Access_Conversions;
+with Terminal_Interface.Curses.Aux; use Terminal_Interface.Curses.Aux;
-package body Terminal_Interface.Curses.Forms.Field_Types.User is
+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)
+ procedure Set_Field_Type (Fld : Field;
+ Typ : User_Defined_Field_Type)
is
- function Allocate_Arg (T : User_Defined_Field_Type'Class)
- return Argument_Access;
+ 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");
+ 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_user");
- Res : Eti_Error;
+ Res : Eti_Error;
- function Allocate_Arg (T : User_Defined_Field_Type'Class)
- return Argument_Access
+ function Allocate_Arg (T : User_Defined_Field_Type'Class)
+ return Argument_Access
is
- Ptr : Field_Type_Access := new User_Defined_Field_Type'Class'(T);
+ Ptr : constant 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;
+ 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);
+ Res := Set_Fld_Type (Arg1 => Allocate_Arg (Typ));
+ if Res /= E_Ok then
+ Eti_Exception (Res);
end if;
- end Set_Field_Type;
+ end Set_Field_Type;
- function To_Argument_Access is new Ada.Unchecked_Conversion
- (System.Address, Argument_Access);
+ package Argument_Conversions is
+ new System.Address_To_Access_Conversions (Argument);
- function Generic_Field_Check (Fld : Field;
- Usr : System.Address) return C_Int
+ function Generic_Field_Check (Fld : Field;
+ Usr : System.Address) return Curses_Bool
is
- Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
- User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
+ Result : Boolean;
+ Udf : constant User_Defined_Field_Type_Access :=
+ User_Defined_Field_Type_Access
+ (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
begin
- Result := Field_Check (Fld, Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Field_Check;
+ Result := Field_Check (Fld, Udf.all);
+ return Curses_Bool (Boolean'Pos (Result));
+ end Generic_Field_Check;
- function Generic_Char_Check (Ch : C_Int;
- Usr : System.Address) return C_Int
+ function Generic_Char_Check (Ch : C_Int;
+ Usr : System.Address) return Curses_Bool
is
- Result : Boolean;
- Udf : User_Defined_Field_Type_Access :=
- User_Defined_Field_Type_Access (To_Argument_Access (Usr).Typ);
+ Result : Boolean;
+ Udf : constant User_Defined_Field_Type_Access :=
+ User_Defined_Field_Type_Access
+ (Argument_Access (Argument_Conversions.To_Pointer (Usr)).all.Typ);
begin
- Result := Character_Check (Character'Val (Ch), Udf.all);
- return C_Int (Boolean'Pos (Result));
- end Generic_Char_Check;
+ Result := Character_Check (Character'Val (Ch), Udf.all);
+ return Curses_Bool (Boolean'Pos (Result));
+ end Generic_Char_Check;
-- -----------------------------------------------------------------------
--
- function C_Generic_Type return C_Field_Type
+ function C_Generic_Type return C_Field_Type
is
- Res : Eti_Error;
- T : C_Field_Type;
+ 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;
+ 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);
+ 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;
+ M_Generic_Type := T;
end if;
- pragma Assert (M_Generic_Type /= Null_Field_Type);
- return M_Generic_Type;
- end C_Generic_Type;
+ pragma Assert (M_Generic_Type /= Null_Field_Type);
+ return M_Generic_Type;
+ end C_Generic_Type;
-end Terminal_Interface.Curses.Forms.Field_Types.User;
-
\ No newline at end of file
+end Terminal_Interface.Curses.Forms.Field_Types.User;
+