|
|
DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: B T
Length: 2332 (0x91c)
Types: TextFile
Names: »B«
└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
└─⟦5cb1d1d7f⟧ »DATA«
└─⟦3b1ee7bd8⟧
└─⟦this⟧
separate (Single_Selection_Electric_Menus)
function Get_User_Selection
(Menu : Window_Type;
Definition : Menu_Definition;
Column_Offset : Natural := 0;
Line_Offset : Natural := 0;
Presentation : Layout := Vertical;
Max_Wait : Duration := Duration'Last) return Element is
Current_Node : Menu_Definition := Definition;
Selected_Font : Window_Io.Font := Fonts.Inverse_Bold;
One_Key : Raw.Key;
begin
Display (Menu, Definition, Column_Offset, Line_Offset, Presentation);
Coupler.Start;
loop
Window_Io.Position_Cursor
(Menu, Current_Node.Line, Current_Node.Column);
select
Coupler.Read (One_Key);
or
delay Max_Wait;
abort Coupler;
raise Time_Out;
end select;
if (Presentation = Vertical and One_Key = New_Keys.Step_Backward) or
(Presentation = Horizontal and One_Key = New_Keys.Left) then
Window_Io.Position_Cursor
(Menu, Current_Node.Line, Current_Node.Column);
Window_Io.Overwrite
(Menu, Line_Image (Current_Node.Elem), Fonts.Normal);
Current_Node := Current_Node.Previous;
Window_Io.Position_Cursor
(Menu, Current_Node.Line, Current_Node.Column);
Window_Io.Overwrite
(Menu, Line_Image (Current_Node.Elem), Selected_Font);
elsif (Presentation = Vertical and One_Key = New_Keys.Step_Forward) or
(Presentation = Horizontal and One_Key = New_Keys.Right) then
Window_Io.Position_Cursor
(Menu, Current_Node.Line, Current_Node.Column);
Window_Io.Overwrite
(Menu, Line_Image (Current_Node.Elem), Fonts.Normal);
Current_Node := Current_Node.Next;
Window_Io.Position_Cursor
(Menu, Current_Node.Line, Current_Node.Column);
Window_Io.Overwrite
(Menu, Line_Image (Current_Node.Elem), Selected_Font);
elsif One_Key = New_Keys.User_Interrupt then
null;
elsif Is_Select_Key (One_Key) then
return Current_Node.Elem;
else
Window_Io.Bell (Menu);
end if;
end loop;
end Get_User_Selection;