DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦ab42cd351⟧ Ada Source

    Length: 5120 (0x1400)
    Types: Ada Source
    Notes: 03_class, FILE, R1k_Segment, e3_tag, generic, package Single_Selection_Line_Menus, seg_0046fe

Derivation

└─⟦8527c1e9b⟧ Bits:30000544 8mm tape, Rational 1000, Arrival backup of disks in PAM's R1000
    └─ ⟦cfc2e13cd⟧ »Space Info Vol 2« 
        └─⟦this⟧ 

E3 Source Code



--| @SUMMARY Defines an abstraction for defining, displaying, and providing
--| user interaction with menus.
--| @INDICES (Window_Io, Menus)
--|
with Window_Io;
generic
    type Element is private;

    --| @DESCRIPTION Defines the image displayed in the menu for an element
    --| placed in the menu definition.
    with function Line_Image (E : Element) return String;

    --| @DESCRIPTION When keys unknown by the menu are pressed, they are
    --| passed to the user for interpretation and possible effect.  Know keys
    --| are: Up_Arrow, Down_Arrow, Left_Arrow, Right_Arrow, Window - Up,
    --| Window - Down, Definition, and Promote.  All alpha-numeric characters
    --| are also recognised, move the cursor to the first item in the menu that
    --| begins with that character.
    with procedure Unknown_Key (Key : Window_Io.Raw.Key; E : in out Element);

package Single_Selection_Line_Menus is

    subtype Window_Type is Window_Io.File_Type;

    type Menu_Definition is private;

    function Make return Menu_Definition;

    procedure Add (E : Element; To : in out Menu_Definition);

    --| @DESCRIPTION Turns the image of an element on the screen to
    --| reverse video
    procedure Highlight_Element (Menu_Output : Window_Type;
                                 E           : Element;
                                 Def         : Menu_Definition;
                                 Font        : Window_Io.Font);

    type Layout is (Vertical, Horizontal);

    --| @DESCRIPTION Displays a menu definition at the specified column
    --| and lien offset. The menu can either be displayed vertically or
    --| horizontally.
    procedure Display (Menu_Output   : Window_Type;
                       Def           : Menu_Definition;
                       Title         : String  := "";
                       Column_Offset : Natural := 0;
                       Line_Offset   : Natural := 0;
                       Presentation  : Layout  := Vertical);

    --| @DESCRIPTION Allows a user to manipulate the menu, moving from
    --| element to element with the cursor keys and "electric" alpha-
    --| numeric keys.  When the user presses Promote the current menu
    --| item is returned.
    function Get_Response (Menu_Input  : Window_Type;
                           Menu_Output : Window_Type;
                           Def         : Menu_Definition) return Element;

private
    type Node;

    type Menu_Access is access Node;

    type Menu_Definition is access Node;

    type Node is
        record
            Elem         : Element;
            Elem_Number  : Positive;
            First_Char   : Character;
            Line         : Positive;
            Column       : Positive;
            Next         : Menu_Definition;
            Previous     : Menu_Definition;
            Current_Node : Menu_Definition;
        end record;
end Single_Selection_Line_Menus;

E3 Meta Data

    nblk1=4
    nid=0
    hdr6=8
        [0x00] rec0=1a rec1=00 rec2=01 rec3=00e
        [0x01] rec0=17 rec1=00 rec2=02 rec3=02a
        [0x02] rec0=1c rec1=00 rec2=03 rec3=036
        [0x03] rec0=01 rec1=00 rec2=04 rec3=001
    tail 0x217002a80815c67778f30 0x42a00088462061e03