ncurses 6.0 - patch 20160625
[ncurses.git] / Ada95 / gen / terminal_interface-curses-aux.ads.m4
index 4fc742a2354230016798ff1be905d98c107e4f6f..b90b8dd61d504d4eb37f7c33a6427a1f4a21fdae 100644 (file)
@@ -1,6 +1,7 @@
 --  -*- ada -*-
 define(`HTMLNAME',`terminal_interface-curses-aux__ads.htm')dnl
-include(M4MACRO)------------------------------------------------------------------------------
+include(M4MACRO)dnl
+------------------------------------------------------------------------------
 --                                                                          --
 --                           GNAT ncurses Binding                           --
 --                                                                          --
@@ -9,7 +10,7 @@ include(M4MACRO)----------------------------------------------------------------
 --                                 S P E C                                  --
 --                                                                          --
 ------------------------------------------------------------------------------
--- Copyright (c) 1998 Free Software Foundation, Inc.                        --
+-- Copyright (c) 1998-2011,2014 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,14 +38,12 @@ include(M4MACRO)----------------------------------------------------------------
 ------------------------------------------------------------------------------
 --  Author:  Juergen Pfeifer, 1996
 --  Version Control:
---  $Revision: 1.15 $
+--  $Revision: 1.23 $
 --  Binding Version 01.00
 ------------------------------------------------------------------------------
-include(`Base_Defs')
 with System;
 with Interfaces.C;
 with Interfaces.C.Strings; use Interfaces.C.Strings;
-with Unchecked_Conversion;
 
 package Terminal_Interface.Curses.Aux is
    pragma Preelaborate (Terminal_Interface.Curses.Aux);
@@ -59,41 +58,41 @@ package Terminal_Interface.Curses.Aux is
    subtype C_ULong    is Interfaces.C.unsigned_long;
    subtype C_Char_Ptr is Interfaces.C.Strings.chars_ptr;
    type    C_Void_Ptr is new System.Address;
-include(`Chtype_Def')
+
    --  This is how those constants are defined in ncurses. I see them also
    --  exactly like this in all ETI implementations I ever tested. So it
    --  could be that this is quite general, but please check with your curses.
-   --  This is critical, because curses sometime mixes boolean returns with
+   --  This is critical, because curses sometime mixes Boolean returns with
    --  returning an error status.
-   Curses_Ok    : constant C_Int := CF_CURSES_OK;
-   Curses_Err   : constant C_Int := CF_CURSES_ERR;
+   Curses_Ok    : constant C_Int := Curses_Constants.OK;
+   Curses_Err   : constant C_Int := Curses_Constants.ERR;
 
-   Curses_True  : constant C_Int := CF_CURSES_TRUE;
-   Curses_False : constant C_Int := CF_CURSES_FALSE;
+   Curses_True  : constant C_Int := Curses_Constants.TRUE;
+   Curses_False : constant C_Int := Curses_Constants.FALSE;
 
    --  Eti_Error: type for error codes returned by the menu and form subsystem
-include(`Eti_Defs')
-   procedure Eti_Exception (Code : Eti_Error);
-   --  Dispatch the error code and raise the appropriate exception
-   --
-   --
-   --  Some helpers
-   function Chtype_To_AttrChar is new
-     Unchecked_Conversion (Source => C_Chtype,
-                           Target => Attributed_Character);
-   function AttrChar_To_Chtype is new
-     Unchecked_Conversion (Source => Attributed_Character,
-                           Target => C_Chtype);
+   type Eti_Error is
+     (E_Current,
+      E_Invalid_Field,
+      E_Request_Denied,
+      E_Not_Connected,
+      E_Not_Selectable,
+      E_No_Match,
+      E_Unknown_Command,
+      E_Not_Posted,
+      E_No_Room,
+      E_Bad_State,
+      E_Connected,
+      E_Posted,
+      E_Bad_Argument,
+      E_System_Error,
+      E_Ok);
 
-   function AttrChar_To_AttrType is new
-     Unchecked_Conversion (Source => Attributed_Character,
-                           Target => C_AttrType);
-
-   function AttrType_To_AttrChar is new
-     Unchecked_Conversion (Source => C_AttrType,
-                           Target => Attributed_Character);
+   procedure Eti_Exception (Code : Eti_Error);
+   --  Do nothing if Code = E_Ok.
+   --  Else dispatch the error code and raise the appropriate exception.
 
-   procedure Fill_String (Cp  : in  chars_ptr;
+   procedure Fill_String (Cp  : chars_ptr;
                           Str : out String);
    --  Fill the Str parameter with the string denoted by the chars_ptr
    --  C-Style string.
@@ -101,4 +100,23 @@ include(`Eti_Defs')
    function Fill_String (Cp : chars_ptr) return String;
    --  Same but as function.
 
+private
+   for Eti_Error'Size use C_Int'Size;
+   pragma Convention (C, Eti_Error);
+   for Eti_Error use
+     (E_Current         => Curses_Constants.E_CURRENT,
+      E_Invalid_Field   => Curses_Constants.E_INVALID_FIELD,
+      E_Request_Denied  => Curses_Constants.E_REQUEST_DENIED,
+      E_Not_Connected   => Curses_Constants.E_NOT_CONNECTED,
+      E_Not_Selectable  => Curses_Constants.E_NOT_SELECTABLE,
+      E_No_Match        => Curses_Constants.E_NO_MATCH,
+      E_Unknown_Command => Curses_Constants.E_UNKNOWN_COMMAND,
+      E_Not_Posted      => Curses_Constants.E_NOT_POSTED,
+      E_No_Room         => Curses_Constants.E_NO_ROOM,
+      E_Bad_State       => Curses_Constants.E_BAD_STATE,
+      E_Connected       => Curses_Constants.E_CONNECTED,
+      E_Posted          => Curses_Constants.E_POSTED,
+      E_Bad_Argument    => Curses_Constants.E_BAD_ARGUMENT,
+      E_System_Error    => Curses_Constants.E_SYSTEM_ERROR,
+      E_Ok              => Curses_Constants.E_OK);
 end Terminal_Interface.Curses.Aux;