-- --
-- B O D Y --
-- --
--- Version 00.92 --
+------------------------------------------------------------------------------
+-- 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 ncurses Ada95 binding is copyrighted 1996 by --
--- Juergen Pfeifer, Email: Juergen.Pfeifer@T-Online.de --
+-- The above copyright notice and this permission notice shall be included --
+-- in all copies or substantial portions of the Software. --
-- --
--- Permission is hereby granted to reproduce and distribute this --
--- binding by any means and for any fee, whether alone or as part --
--- of a larger distribution, in source or in binary form, PROVIDED --
--- this notice is included with any such distribution, and is not --
--- removed from any of its header files. Mention of ncurses and the --
--- author of this binding in any applications linked with it is --
--- highly appreciated. --
+-- 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. --
-- --
--- This binding comes AS IS with no warranty, implied or expressed. --
+-- 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@T-Online.de> 1996
-- Version Control:
--- $Revision: 1.3 $
+-- $Revision: 1.7 $
+-- Binding Version 00.93
------------------------------------------------------------------------------
-with Unchecked_Conversion;
-- |
-- |=====================================================================
-- | 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
-
- function To_Address is new Unchecked_Conversion (User_Access,
- System.Address);
- function To_Pointer is new Unchecked_Conversion (System.Address,
- User_Access);
+
+ use type Interfaces.C.Int;
+
-- |
-- |
-- |
procedure Set_User_Data (Frm : in Form;
Data : in User_Access)
is
- A : constant Form_User_Wrapper_Access := Form_Userptr (Frm);
+ 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 A = null then
- raise Form_Exception;
- else
- A.U := To_Address (Data);
+ 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
- A : constant Form_User_Wrapper_Access := Form_Userptr (Frm);
begin
- if A = null then
- raise Form_Exception;
- else
- Data := To_Pointer (A.U);
- end if;
+ Data := Get_User_Data (Frm);
end Get_User_Data;
-
+
end Terminal_Interface.Curses.Forms.Form_User_Data;