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 - downloadIndex: ┃ B T ┃
Length: 3886 (0xf2e) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Bounded_String; with Easy_Y; with Message; with Requester; with Text_Io; package body Class_New_Printer is procedure Open (X, Y : Object.Index; Screen : String) is use Object; begin The_Left := X; The_Right := Y; The_Screen := Bounded_String.Value (Screen, 80); Easy_Y.Put_Title (Window => Unparse_Window, Title => Bounded_String.Value ("Unparse", 80)); Easy_Y.Put_Left (Window => Unparse_Window, Left => The_Left); Easy_Y.Put_Right (Window => Unparse_Window, Right => The_Right); Easy_Y.Put_Width (Window => Unparse_Window, Width => The_Width); Easy_Y.Put_Height (Window => Unparse_Window, Height => The_Height); Easy_Y.Open (Display => Bounded_String.Image (The_Screen), Window => Unparse_Window); Easy_Y.Put_Font (To => Easy_Y.Small_Font); Easy_Y.Put_Size (Window => Unparse_Window, Size => 1); Line_Max := The_Height / 16; end Open; procedure Close is begin Easy_Y.Close (Window => Unparse_Window); end Close; procedure Go_Ahead (Number : in Integer) is begin if Number > 0 then Position := Position + Number; end if; end Go_Ahead; procedure Go_Back (Number : in Integer) is begin if Number > 0 then Position := Position - Number; end if; if Position < 0 then Position := 0; end if; end Go_Back; procedure Put (Str : String) is use Object; begin Bounded_String.Append (The_String, Str); Easy_Y.Print ((Position * 8), Line_Number * 16, The_String); end Put; procedure Put_Blanck is use Object; Blanck : String (1 .. Positive (Position)) := (1 .. Positive (Position) => ' '); begin Bounded_String.Append (Table (Table_Index), Blanck); end Put_Blanck; procedure New_Line_2 (Number : Integer := 1) is use Object; Blanck : String (1 .. Positive (The_Width / 8)) := (1 .. Positive (The_Width / 8) => ' '); begin Line_Number := Line_Number + 1; Bounded_String.Append (Table (Table_Index), Blanck); Table_Index := Table_Index + 1; if Line_Number >= Line_Max then Line_Number := Line_Number - 1; for Index in 1 .. Line_Max loop Easy_Y.Print (1, Index * 16, Table (Table_Index - Line_Max + Index)); end loop; end if; end New_Line_2; procedure New_Line (Number : Integer := 1) is use Object; begin Colum := 0; Line_Number := Line_Number + 1; if Line_Number >= Line_Max then declare Blanck : String (1 .. Positive (The_Width / 8)) := (1 .. Positive (The_Width / 8) => ' '); Button : Message.Unary; Result : Object.Index; Title : Object.Tiny_String; begin Message.Put (This_Name => Bounded_String.Value ("Suite", 80), Into => Button); Result := Requester.Choice (The_Left, The_Right + The_Height + 50, Bounded_String.Image (The_Screen), Button, Bounded_String.Value ("Cliquer pour avoir la suite", 80)); Message.Free (This => Button); Line_Number := 1; Easy_Y.Set_Display (Window => Unparse_Window); Easy_Y.Close (Window => Unparse_Window); Easy_Y.Open (Display => Bounded_String.Image (The_Screen), Window => Unparse_Window); end; end if; end New_Line; end Class_New_Printer;