⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 terminal_interface-curses-menus.ads.m4

📁 ncurses-5.4
💻 M4
📖 第 1 页 / 共 2 页
字号:
--  -*- ada -*-define(`HTMLNAME',`terminal_interface-curses-menus__ads.htm')dnlinclude(M4MACRO)dnl--------------------------------------------------------------------------------                                                                          ----                           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:  Juergen Pfeifer, 1996--  Version Control:--  $Revision: 1.24 $--  Binding Version 01.00------------------------------------------------------------------------------include(`Menu_Base_Defs')with System;with Ada.Characters.Latin_1;package Terminal_Interface.Curses.Menus is   pragma Preelaborate (Terminal_Interface.Curses.Menus);include(`Menu_Linker_Options')dnlinclude(`Linker_Options')   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);include(`Menu_Opt_Rep')dnl   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);include(`Item_Rep')dnl   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.   --  MANPAGE(`mitem_new.3x')   --  ANCHOR(`new_item()',`Create')   function Create (Name        : String;                    Description : String := "") return Item;   --  AKA   --  Not inlined.   --  ANCHOR(`new_item()',`New_Item')   function New_Item (Name        : String;                      Description : String := "") return Item     renames Create;   --  AKA   --  ANCHOR(`free_item()',`Delete')   procedure Delete (Itm : in out Item);   --  AKA   --  Resets Itm to Null_Item   --  MANPAGE(`mitem_value.3x')   --  ANCHOR(`set_item_value()',`Set_Value')   procedure Set_Value (Itm   : in Item;                        Value : in Boolean := True);   --  AKA   pragma Inline (Set_Value);   --  ANCHOR(`item_value()',`Value')   function Value (Itm : Item) return Boolean;   --  AKA   pragma Inline (Value);   --  MANPAGE(`mitem_visible.3x')   --  ANCHOR(`item_visible()',`Visible')   function Visible (Itm : Item) return Boolean;   --  AKA   pragma Inline (Visible);   --  MANPAGE(`mitem_opts.3x')   --  ANCHOR(`set_item_opts()',`Set_Options')   procedure Set_Options (Itm     : in Item;                          Options : in Item_Option_Set);   --  AKA   --  An overloaded Set_Options is defined later. Pragma Inline appears there   --  ANCHOR(`item_opts_on()',`Switch_Options')   procedure Switch_Options (Itm     : in Item;                             Options : in Item_Option_Set;                             On      : Boolean := True);   --  AKA   --  ALIAS(`item_opts_off()')   --  An overloaded Switch_Options is defined later.   --  Pragma Inline appears there   --  ANCHOR(`item_opts()',`Get_Options')   procedure Get_Options (Itm     : in  Item;                          Options : out Item_Option_Set);   --  AKA   --  ANCHOR(`item_opts()',`Get_Options')   function Get_Options (Itm : Item := Null_Item) return Item_Option_Set;   --  AKA   --  An overloaded Get_Options is defined later. Pragma Inline appears there   --  MANPAGE(`mitem_name.3x')   --  ANCHOR(`item_name()',`Name')   procedure Name (Itm  : in Item;                   Name : out String);   --  AKA   function  Name (Itm : Item) return String;   --  AKA   --  Implemented as function   pragma Inline (Name);   --  ANCHOR(`item_description();',`Description')   procedure Description (Itm         : in Item;                          Description : out String);   --  AKA   function  Description (Itm : Item) return String;   --  AKA   --  Implemented as function   pragma Inline (Description);   --  MANPAGE(`mitem_current.3x')   --  ANCHOR(`set_current_item()',`Set_Current')   procedure Set_Current (Men : in Menu;                          Itm : in Item);   --  AKA   pragma Inline (Set_Current);   --  ANCHOR(`current_item()',`Current')   function Current (Men : Menu) return Item;   --  AKA   pragma Inline (Current);   --  ANCHOR(`set_top_row()',`Set_Top_Row')   procedure Set_Top_Row (Men  : in Menu;                          Line : in Line_Position);   --  AKA   pragma Inline (Set_Top_Row);   --  ANCHOR(`top_row()',`Top_Row')   function Top_Row (Men : Menu) return Line_Position;   --  AKA   pragma Inline (Top_Row);   --  ANCHOR(`item_index()',`Get_Index')   function Get_Index (Itm : Item) return Positive;   --  AKA   --  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);   --  MANPAGE(`menu_post.3x')   --  ANCHOR(`post_menu()',`Post')   procedure Post (Men  : in Menu;                   Post : in Boolean := True);   --  AKA   --  ALIAS(`unpost_menu()')   pragma Inline (Post);   --  MANPAGE(`menu_opts.3x')   --  ANCHOR(`set_menu_opts()',`Set_Options')   procedure Set_Options (Men     : in Menu;                          Options : in Menu_Option_Set);   --  AKA   pragma Inline (Set_Options);   --  ANCHOR(`menu_opts_on()',`Switch_Options')   procedure Switch_Options (Men     : in Menu;                             Options : in Menu_Option_Set;                             On      : Boolean := True);   --  AKA   --  ALIAS(`menu_opts_off()')   pragma Inline (Switch_Options);   --  ANCHOR(`menu_opts()',`Get_Options')   procedure Get_Options (Men     : in  Menu;                          Options : out Menu_Option_Set);   --  AKA   --  ANCHOR(`menu_opts()',`Get_Options')   function Get_Options (Men : Menu := Null_Menu) return Menu_Option_Set;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -