DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

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 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download
Index: ┃ T V

⟦e4bd90375⟧ TextFile

    Length: 7610 (0x1dba)
    Types: TextFile
    Names: »V«

Derivation

└─⟦d10a02448⟧ Bits:30000409 8mm tape, Rational 1000, ENVIRONMENT, D_12_7_3
    └─ ⟦fc9b38f02⟧ »DATA« 
        └─⟦9b46a407a⟧ 
            └─⟦12c68c704⟧ 
                └─⟦this⟧ 
└─⟦5f3412b64⟧ Bits:30000745 8mm tape, Rational 1000, ENVIRONMENT 12_6_5 TOOLS 
    └─ ⟦91c658230⟧ »DATA« 
        └─⟦458657fb6⟧ 
            └─⟦220843204⟧ 
                └─⟦this⟧ 

TextFile

with Default;
with Directory;
with Machine;

package Object_Editor is

    pragma Subsystem (Object_Editor, Closed);
    pragma Module_Name (4, 2223);

    -- Detached jobs and jobs initiated via the program package have
    -- no associated image.

    type Focus is (Selection, Cursor, Image, Region);

    -- If not named specifically, an object (or collection of objects) can
    -- be designated by a highlighted selection on an image or by the
    -- location of the cursor within an image.  Different algorithms
    -- for determining such designated objects are implemented by this
    -- package to satisfy the differing requirements of environment
    -- commands (taking one argument denoted in this way)

    -- Selection

    --     An object is selected in this mode only if its declaration is
    --     highlighted and the cursor is within or immediately adjacent to
    --     that highlighted region.

    --     This is the most restrictive selection mode and would be used
    --     by commands, such as delete and demote, that must have a
    --     strong indication from the user of the intended object.


    -- Cursor

    --     An object is selected in this mode if its declaration is
    --     selected as described in the preceding case or, if there is no
    --     highlighted selection on the image of the cursor, the cursor
    --     is on a portion of the object's declaration.

    --     This is less restrictive than the preceding case in that it
    --     accepts any placement of the cursor within an image.  Commands
    --     such as definition or help would use this mode because it
    --     reduces the number of key strokes required by the user.


    -- Image

    --     An object is selected in this mode if its declaration is
    --     selected as described in the Selection mode or, if there is no
    --     highlighted selection on the image of the cursor, the cursor is
    --     on the image associated with the object.

    --     This mode accepts the same configurations of cursor and
    --     selection as in the Cursor mode, but treats the cursor less
    --     specifically by selecting the object that is represented by the
    --     entire image rather than the object that is represented by the
    --     portion of the image that the cursor is on.


    -- Region

    --     An object is selected in this mode if its declaration is
    --     highlighted. The cursor does NOT have to be in the region.

    --     This is less restrictive than Selection focus and would be
    --     used by commands such as copy to obtain their source object.


    -- Some object editors will behave the same in the Cursor and
    -- Image modes because they do not support the notion of designations
    -- nested within an image. For such editors, the Selection mode will
    -- always fail unless the selection constitutes the entire image.

    procedure Get_Declaration
                 (Decl      : out Directory.Declaration;
                  Status    : out Directory.Naming.Name_Status;
                  Precision : Object_Editor.Focus := Object_Editor.Selection;
                  Job       : Default.Process_Id := Default.Process);

    -- Returns the declaration for the object designated by the current
    -- selection according to the specified algorithm.

    procedure Get_Object (Object    : out Directory.Object;
                          Status    : out Directory.Naming.Name_Status;
                          Class     : Directory.Class := Directory.Nil;
                          Precision : Object_Editor.Focus :=
                             Object_Editor.Selection;
                          Job       : Default.Process_Id := Default.Process);

    -- Returns the Directory object designated by the current selection
    -- according to the specified algorithm.


    function Get_Text
                (Precision : Object_Editor.Focus := Object_Editor.Region;
                 Job : Default.Process_Id := Default.Process) return String;
    -- Returns the text contained in the current focus.  Region selections
    -- are allowed.  Text may include Ascii.LF's to indicate end of line.

    function Get_Name
                (Precision : Object_Editor.Focus := Object_Editor.Image;
                 Job : Default.Process_Id := Default.Process) return String;
    -- Return the name of the image, which may not be a valid directory name,
    -- or the name of the declaration/object associated with the
    -- current cursor/selection/region/window.


    -- IMAGE MANIPULATION OPERATIONS

    procedure Release_Access (The_Object : Directory.Object);
    -- acquire rights to the designated object if they are held by the current
    -- session; allows tools to guard against being locked out by other windows

--  procedure Display_Declaration (For_Object : Directory.Object;
--                                 In_Library : Boolean := False;
--                                 In_Place : Boolean := False);
--  procedure Display_Declaration (For_Version : Directory.Version;
--                                 In_Library : Boolean := False;
--                                 In_Place : Boolean := False);
--
--  procedure Display (The_Object : Directory.Object;
--                     In_Place : Boolean := False);
--  procedure Display (The_Version : Directory.Version;
--                     In_Place : Boolean := False);
--
--  -- In_Library will cause ada subunits to have their enclosing
--  -- library displayed instead of their stub declaration in their
--  -- parent ada unit.
    pragma Consume_Offset (4);

    procedure Update_Changed_Image (The_Object : Directory.Object);
    -- notify the editor that changes have been made to the object that it
    -- doesn't know about yet

    procedure Update_Changed_Images;
    -- non-specific (and slower) version of the above


    subtype Editor_Name is String;

    function Name return Editor_Name;
    -- Returns the name of the object editor associated with the current image.

    function Supports_Declarations
                (Editor : Editor_Name := Name) return Boolean;
    function Supports_Subobjects (Class  : Directory.Class := Directory.Nil;
                                  Editor : Editor_Name := Name) return Boolean;
    -- Indicates whether the named editor can ever associate
    -- objects/declarations with the cursor or selection (other than the
    -- object/declaration associated with the containing image).

    -- Iterate over all object editors.  Primarily for completeness, but
    -- allows tool writers to determine the set of applicable OE's.

    type Iterator is private;
    procedure Init  (Iter : out Iterator);
    function  Done  (Iter : Iterator) return Boolean;
    function  Value (Iter : Iterator) return Editor_Name;
    procedure Next  (Iter : in out Iterator);


    -- Returns the job that the editor regards as current
    function Current_Job return Machine.Job_Id;

    procedure Display_Declaration (For_Object : Directory.Object;
                                   In_Library : Boolean := False;
                                   In_Place   : Boolean := False);
    procedure Display_Declaration (For_Version : Directory.Version;
                                   In_Library  : Boolean := False;
                                   In_Place    : Boolean := False);

    procedure Display (The_Object : Directory.Object;
                       In_Place   : Boolean := False);
    procedure Display (The_Version : Directory.Version;
                       In_Place    : Boolean := False);
end Object_Editor;