Whole document tree File : terminal_interface-curses-menus.ads------------------------------------------------------------------------------ -- -- -- GNAT ncurses Binding -- -- -- -- Terminal_Interface.Curses.Menu -- -- -- -- S P E C -- -- -- ------------------------------------------------------------------------------ -- 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: Jürgen Pfeifer <<juergen.pfeifer@gmx.net>> 1996 -- Version Control: -- @Revision: 1.22 @ -- Binding Version 01.00 ------------------------------------------------------------------------------ -- menu binding. -- This module is generated. Please don't change it manually! -- Run the generator instead. -- | with System; with Ada.Characters.Latin_1; package Terminal_Interface.Curses.Menus is pragma Preelaborate (Terminal_Interface.Curses.Menus); pragma Linker_Options ("-lmenu"); pragma Linker_Options ("-lncurses"); Space : Character renames Ada.Characters.Latin_1.Space; type Item is private; type Menu is private; --------------------------- -- Interface constants -- --------------------------- Null_Item : constant Item; Null_Menu : constant Menu; subtype Menu_Request_Code is Key_Code range (Key_Max + 1) .. (Key_Max + 17); -- The prefix M_ stands for "Menu Request" M_Left_Item : constant Menu_Request_Code := Key_Max + 1; M_Right_Item : constant Menu_Request_Code := Key_Max + 2; M_Up_Item : constant Menu_Request_Code := Key_Max + 3; M_Down_Item : constant Menu_Request_Code := Key_Max + 4; M_ScrollUp_Line : constant Menu_Request_Code := Key_Max + 5; M_ScrollDown_Line : constant Menu_Request_Code := Key_Max + 6; M_ScrollDown_Page : constant Menu_Request_Code := Key_Max + 7; M_ScrollUp_Page : constant Menu_Request_Code := Key_Max + 8; M_First_Item : constant Menu_Request_Code := Key_Max + 9; M_Last_Item : constant Menu_Request_Code := Key_Max + 10; M_Next_Item : constant Menu_Request_Code := Key_Max + 11; M_Previous_Item : constant Menu_Request_Code := Key_Max + 12; M_Toggle_Item : constant Menu_Request_Code := Key_Max + 13; M_Clear_Pattern : constant Menu_Request_Code := Key_Max + 14; M_Back_Pattern : constant Menu_Request_Code := Key_Max + 15; M_Next_Match : constant Menu_Request_Code := Key_Max + 16; M_Previous_Match : constant Menu_Request_Code := Key_Max + 17; -- For those who like the old 'C' names for the request codes REQ_LEFT_ITEM : Menu_Request_Code renames M_Left_Item; REQ_RIGHT_ITEM : Menu_Request_Code renames M_Right_Item; REQ_UP_ITEM : Menu_Request_Code renames M_Up_Item; REQ_DOWN_ITEM : Menu_Request_Code renames M_Down_Item; REQ_SCR_ULINE : Menu_Request_Code renames M_ScrollUp_Line; REQ_SCR_DLINE : Menu_Request_Code renames M_ScrollDown_Line; REQ_SCR_DPAGE : Menu_Request_Code renames M_ScrollDown_Page; REQ_SCR_UPAGE : Menu_Request_Code renames M_ScrollUp_Page; REQ_FIRST_ITEM : Menu_Request_Code renames M_First_Item; REQ_LAST_ITEM : Menu_Request_Code renames M_Last_Item; REQ_NEXT_ITEM : Menu_Request_Code renames M_Next_Item; REQ_PREV_ITEM : Menu_Request_Code renames M_Previous_Item; REQ_TOGGLE_ITEM : Menu_Request_Code renames M_Toggle_Item; REQ_CLEAR_PATTERN : Menu_Request_Code renames M_Clear_Pattern; REQ_BACK_PATTERN : Menu_Request_Code renames M_Back_Pattern; REQ_NEXT_MATCH : Menu_Request_Code renames M_Next_Match; REQ_PREV_MATCH : Menu_Request_Code renames M_Previous_Match; procedure Request_Name (Key : in Menu_Request_Code; Name : out String); function Request_Name (Key : Menu_Request_Code) return String; -- Same as function ------------------ -- Exceptions -- ------------------ Menu_Exception : exception; -- -- Menu options -- pragma Warnings (Off); type Menu_Option_Set is record One_Valued : Boolean; Show_Descriptions : Boolean; Row_Major_Order : Boolean; Ignore_Case : Boolean; Show_Matches : Boolean; Non_Cyclic : Boolean; end record; pragma Pack (Menu_Option_Set); pragma Convention (C, Menu_Option_Set); for Menu_Option_Set use record One_Valued at 0 range 0 .. 0; Show_Descriptions at 0 range 1 .. 1; Row_Major_Order at 0 range 2 .. 2; Ignore_Case at 0 range 3 .. 3; Show_Matches at 0 range 4 .. 4; Non_Cyclic at 0 range 5 .. 5; end record; for Menu_Option_Set'Size use 32; -- Please note: this rep. clause is generated and may be -- different on your system. pragma Warnings (On); function Default_Menu_Options return Menu_Option_Set; -- Initial default options for a menu. pragma Inline (Default_Menu_Options); -- -- Item options -- pragma Warnings (Off); type Item_Option_Set is record Selectable : Boolean; end record; pragma Pack (Item_Option_Set); pragma Convention (C, Item_Option_Set); for Item_Option_Set use record Selectable at 0 range 0 .. 0; end record; for Item_Option_Set'Size use 32; -- Please note: this rep. clause is generated and may be -- different on your system. pragma Warnings (On); function Default_Item_Options return Item_Option_Set; -- Initial default options for an item. pragma Inline (Default_Item_Options); -- -- Item Array -- type Item_Array is array (Positive range <>) of aliased Item; pragma Convention (C, Item_Array); type Item_Array_Access is access Item_Array; procedure Free (IA : in out Item_Array_Access; Free_Items : Boolean := False); -- Release the memory for an allocated item array -- If Free_Items is True, call Delete() for all the items in -- the array. -- |===================================================================== -- | Man page mitem_new.3x -- |===================================================================== -- #1A NAME="AFU_1"#2| function Create (Name : String; Description : String := "") return Item; -- AKA: new_item() -- Not inlined. -- #1A NAME="AFU_2"#2| function New_Item (Name : String; Description : String := "") return Item renames Create; -- AKA: new_item() -- #1A NAME="AFU_3"#2| procedure Delete (Itm : in out Item); -- AKA: free_item() -- Resets Itm to Null_Item -- |===================================================================== -- | Man page mitem_value.3x -- |===================================================================== -- #1A NAME="AFU_4"#2| procedure Set_Value (Itm : in Item; Value : in Boolean := True); -- AKA: set_item_value() pragma Inline (Set_Value); -- #1A NAME="AFU_5"#2| function Value (Itm : Item) return Boolean; -- AKA: item_value() pragma Inline (Value); -- |===================================================================== -- | Man page mitem_visible.3x -- |===================================================================== -- #1A NAME="AFU_6"#2| function Visible (Itm : Item) return Boolean; -- AKA: item_visible() pragma Inline (Visible); -- |===================================================================== -- | Man page mitem_opts.3x -- |===================================================================== -- #1A NAME="AFU_7"#2| procedure Set_Options (Itm : in Item; Options : in Item_Option_Set); -- AKA: set_item_opts() -- An overloaded Set_Options is defined later. Pragma Inline appears there -- #1A NAME="AFU_8"#2| procedure Switch_Options (Itm : in Item; Options : in Item_Option_Set; On : Boolean := True); -- AKA: item_opts_on() -- AKA: item_opts_off() -- An overloaded Switch_Options is defined later. -- Pragma Inline appears there -- #1A NAME="AFU_9"#2| procedure Get_Options (Itm : in Item; Options : out Item_Option_Set); -- AKA: item_opts() -- #1A NAME="AFU_10"#2| function Get_Options (Itm : Item := Null_Item) return Item_Option_Set; -- AKA: item_opts() -- An overloaded Get_Options is defined later. Pragma Inline appears there -- |===================================================================== -- | Man page mitem_name.3x -- |===================================================================== -- #1A NAME="AFU_11"#2| procedure Name (Itm : in Item; Name : out String); -- AKA: item_name() function Name (Itm : Item) return String; -- AKA: item_name() -- Implemented as function pragma Inline (Name); -- #1A NAME="AFU_12"#2| procedure Description (Itm : in Item; Description : out String); -- AKA: item_description(); function Description (Itm : Item) return String; -- AKA: item_description(); -- Implemented as function pragma Inline (Description); -- |===================================================================== -- | Man page mitem_current.3x -- |===================================================================== -- #1A NAME="AFU_13"#2| procedure Set_Current (Men : in Menu; Itm : in Item); -- AKA: set_current_item() pragma Inline (Set_Current); -- #1A NAME="AFU_14"#2| function Current (Men : Menu) return Item; -- AKA: current_item() pragma Inline (Current); -- #1A NAME="AFU_15"#2| procedure Set_Top_Row (Men : in Menu; Line : in Line_Position); -- AKA: set_top_row() pragma Inline (Set_Top_Row); -- #1A NAME="AFU_16"#2| function Top_Row (Men : Menu) return Line_Position; -- AKA: top_row() pragma Inline (Top_Row); -- #1A NAME="AFU_17"#2| function Get_Index (Itm : Item) return Positive; -- AKA: item_index() -- Please note that in this binding we start the numbering of items -- with 1. So this is number is one more than you get from the low -- level call. pragma Inline (Get_Index); -- |===================================================================== -- | Man page menu_post.3x -- |===================================================================== -- #1A NAME="AFU_18"#2| procedure Post (Men : in Menu; Post : in Boolean := True); -- AKA: post_menu() -- AKA: unpost_menu() pragma Inline (Post); -- |===================================================================== -- | Man page menu_opts.3x -- |===================================================================== -- #1A NAME="AFU_19"#2| procedure Set_Options (Men : in Menu; Options : in Menu_Option_Set); -- AKA: set_menu_opts() pragma Inline (Set_Options); -- #1A NAME="AFU_20"#2| procedure Switch_Options (Men : in Menu; Options : in Menu_Option_Set; On : Boolean := True); -- AKA: menu_opts_on() -- AKA: menu_opts_off() pragma Inline (Switch_Options); -- #1A NAME="AFU_21"#2| procedure Get_Options (Men : in Menu; Options : out Menu_Option_Set); -- AKA: menu_opts() -- #1A NAME="AFU_22"#2| function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set; -- AKA: menu_opts() pragma Inline (Get_Options); -- |===================================================================== -- | Man page menu_win.3x -- |===================================================================== -- #1A NAME="AFU_23"#2| procedure Set_Window (Men : in Menu; Win : in Window); -- AKA: set_menu_win() pragma Inline (Set_Window); -- #1A NAME="AFU_24"#2| function Get_Window (Men : Menu) return Window; -- AKA: menu_win() pragma Inline (Get_Window); -- #1A NAME="AFU_25"#2| procedure Set_Sub_Window (Men : in Menu; Win : in Window); -- AKA: set_menu_sub() pragma Inline (Set_Sub_Window); -- #1A NAME="AFU_26"#2| function Get_Sub_Window (Men : Menu) return Window; -- AKA: menu_sub() pragma Inline (Get_Sub_Window); -- #1A NAME="AFU_27"#2| procedure Scale (Men : in Menu; Lines : out Line_Count; Columns : out Column_Count); -- AKA: scale_menu() pragma Inline (Scale); -- |===================================================================== -- | Man page menu_cursor.3x -- |===================================================================== -- #1A NAME="AFU_28"#2| procedure Position_Cursor (Men : Menu); -- AKA: pos_menu_cursor() pragma Inline (Position_Cursor); -- |===================================================================== -- | Man page menu_mark.3x -- |===================================================================== -- #1A NAME="AFU_29"#2| procedure Set_Mark (Men : in Menu; Mark : in String); -- AKA: set_menu_mark() pragma Inline (Set_Mark); -- #1A NAME="AFU_30"#2| procedure Mark (Men : in Menu; Mark : out String); -- AKA: menu_mark() function Mark (Men : Menu) return String; -- AKA: menu_mark() -- Implemented as function pragma Inline (Mark); -- |===================================================================== -- | Man page menu_attribs.3x -- |===================================================================== -- #1A NAME="AFU_31"#2| procedure Set_Foreground (Men : in Menu; Fore : in Character_Attribute_Set := Normal_Video; Color : in Color_Pair := Color_Pair'First); -- AKA: set_menu_fore() pragma Inline (Set_Foreground); -- #1A NAME="AFU_32"#2| procedure Foreground (Men : in Menu; Fore : out Character_Attribute_Set); -- AKA: menu_fore() -- #1A NAME="AFU_33"#2| procedure Foreground (Men : in Menu; Fore : out Character_Attribute_Set; Color : out Color_Pair); -- AKA: menu_fore() pragma Inline (Foreground); -- #1A NAME="AFU_34"#2| procedure Set_Background (Men : in Menu; Back : in Character_Attribute_Set := Normal_Video; Color : in Color_Pair := Color_Pair'First); -- AKA: set_menu_back() pragma Inline (Set_Background); -- #1A NAME="AFU_35"#2| procedure Background (Men : in Menu; Back : out Character_Attribute_Set); -- AKA: menu_back() -- #1A NAME="AFU_36"#2| procedure Background (Men : in Menu; Back : out Character_Attribute_Set; Color : out Color_Pair); -- AKA: menu_back() pragma Inline (Background); -- #1A NAME="AFU_37"#2| procedure Set_Grey (Men : in Menu; Grey : in Character_Attribute_Set := Normal_Video; Color : in Color_Pair := Color_Pair'First); -- AKA: set_menu_grey() pragma Inline (Set_Grey); -- #1A NAME="AFU_38"#2| procedure Grey (Men : in Menu; Grey : out Character_Attribute_Set); -- AKA: menu_grey() -- #1A NAME="AFU_39"#2| procedure Grey (Men : in Menu; Grey : out Character_Attribute_Set; Color : out Color_Pair); -- AKA: menu_grey() pragma Inline (Grey); -- #1A NAME="AFU_40"#2| procedure Set_Pad_Character (Men : in Menu; Pad : in Character := Space); -- AKA: set_menu_pad() pragma Inline (Set_Pad_Character); -- #1A NAME="AFU_41"#2| procedure Pad_Character (Men : in Menu; Pad : out Character); -- AKA: menu_pad() pragma Inline (Pad_Character); -- |===================================================================== -- | Man page menu_spacing.3x -- |===================================================================== -- #1A NAME="AFU_42"#2| procedure Set_Spacing (Men : in Menu; Descr : in Column_Position := 0; Row : in Line_Position := 0; Col : in Column_Position := 0); -- AKA: set_menu_spacing() pragma Inline (Set_Spacing); -- #1A NAME="AFU_43"#2| procedure Spacing (Men : in Menu; Descr : out Column_Position; Row : out Line_Position; Col : out Column_Position); -- AKA: menu_spacing() pragma Inline (Spacing); -- |===================================================================== -- | Man page menu_pattern.3x -- |===================================================================== -- #1A NAME="AFU_44"#2| function Set_Pattern (Men : Menu; Text : String) return Boolean; -- AKA: set_menu_pattern() -- Return TRUE if the pattern matches, FALSE otherwise pragma Inline (Set_Pattern); -- #1A NAME="AFU_45"#2| procedure Pattern (Men : in Menu; Text : out String); -- AKA: menu_pattern() pragma Inline (Pattern); -- |===================================================================== -- | Man page menu_format.3x -- |===================================================================== -- #1A NAME="AFU_46"#2| procedure Set_Format (Men : in Menu; Lines : in Line_Count; Columns : in Column_Count); -- Not implemented: 0 argument for Lines or Columns; -- instead use Format to get the current sizes -- The default is 16 rows, 1 column. Calling -- set_menu_format with a null menu pointer will change this -- default. A zero row or column argument to set_menu_format -- is interpreted as a request not to change the current -- value. -- AKA: set_menu_format() pragma Inline (Set_Format); -- #1A NAME="AFU_47"#2| procedure Format (Men : in Menu; Lines : out Line_Count; Columns : out Column_Count); -- AKA: menu_format() pragma Inline (Format); -- |===================================================================== -- | Man page menu_hook.3x -- |===================================================================== type Menu_Hook_Function is access procedure (Men : in Menu); pragma Convention (C, Menu_Hook_Function); -- #1A NAME="AFU_48"#2| procedure Set_Item_Init_Hook (Men : in Menu; Proc : in Menu_Hook_Function); -- AKA: set_item_init() pragma Inline (Set_Item_Init_Hook); -- #1A NAME="AFU_49"#2| procedure Set_Item_Term_Hook (Men : in Menu; Proc : in Menu_Hook_Function); -- AKA: set_item_term() pragma Inline (Set_Item_Term_Hook); -- #1A NAME="AFU_50"#2| procedure Set_Menu_Init_Hook (Men : in Menu; Proc : in Menu_Hook_Function); -- AKA: set_menu_init() pragma Inline (Set_Menu_Init_Hook); -- #1A NAME="AFU_51"#2| procedure Set_Menu_Term_Hook (Men : in Menu; Proc : in Menu_Hook_Function); -- AKA: set_menu_term() pragma Inline (Set_Menu_Term_Hook); -- #1A NAME="AFU_52"#2| function Get_Item_Init_Hook (Men : Menu) return Menu_Hook_Function; -- AKA: item_init() pragma Inline (Get_Item_Init_Hook); -- #1A NAME="AFU_53"#2| function Get_Item_Term_Hook (Men : Menu) return Menu_Hook_Function; -- AKA: item_term() pragma Inline (Get_Item_Term_Hook); -- #1A NAME="AFU_54"#2| function Get_Menu_Init_Hook (Men : Menu) return Menu_Hook_Function; -- AKA: menu_init() pragma Inline (Get_Menu_Init_Hook); -- #1A NAME="AFU_55"#2| function Get_Menu_Term_Hook (Men : Menu) return Menu_Hook_Function; -- AKA: menu_term() pragma Inline (Get_Menu_Term_Hook); -- |===================================================================== -- | Man page menu_items.3x -- |===================================================================== -- #1A NAME="AFU_56"#2| procedure Redefine (Men : in Menu; Items : in Item_Array_Access); -- AKA: set_menu_items() pragma Inline (Redefine); procedure Set_Items (Men : in Menu; Items : in Item_Array_Access) renames Redefine; pragma Inline (Set_Items); -- #1A NAME="AFU_57"#2| function Items (Men : Menu; Index : Positive) return Item; -- AKA: menu_items() pragma Inline (Items); -- #1A NAME="AFU_58"#2| function Item_Count (Men : Menu) return Natural; -- AKA: item_count() pragma Inline (Item_Count); -- |===================================================================== -- | Man page menu_new.3x -- |===================================================================== -- #1A NAME="AFU_59"#2| function Create (Items : Item_Array_Access) return Menu; -- AKA: new_menu() -- Not inlined function New_Menu (Items : Item_Array_Access) return Menu renames Create; -- #1A NAME="AFU_60"#2| procedure Delete (Men : in out Menu); -- AKA: free_menu() -- Reset Men to Null_Menu -- Not inlined -- |===================================================================== -- | Man page menu_driver.3x -- |===================================================================== type Driver_Result is (Menu_Ok, Request_Denied, Unknown_Request, No_Match); -- #1A NAME="AFU_61"#2| function Driver (Men : Menu; Key : Key_Code) return Driver_Result; -- AKA: menu_driver() -- Driver is not inlined -- #1A NAME="AFU_62"#2| -- Not Implemented: menu_request_name, menu_request_by_name ------------------------------------------------------------------------------- private type Item is new System.Storage_Elements.Integer_Address; type Menu is new System.Storage_Elements.Integer_Address; Null_Item : constant Item := 0; Null_Menu : constant Menu := 0; end Terminal_Interface.Curses.Menus; |