* New version of IRM New version of the IRM, updated to Medley. * moved to docs/medley-irm as discussed
220 lines
156 KiB
Plaintext
220 lines
156 KiB
Plaintext
INTERLISP-D REFERENCE MANUAL
|
||
USER I/O PACKAGES
|
||
25. USER/ INPUT/OUTPUT PACKAGES
|
||
2
|
||
|
||
Interlisp-D can perform input/output operations on a large variety of physical devices.
|
||
This chapter presents a number of packages that have been developed for displaying and allowing the user to enter information. These packages are used to implement the user interface of many system facilities.
|
||
INSPECT (see the INSPECT section below) provides a window-based facility for displaying and changing the fields of a data object.
|
||
PROMPTFORWORD (see the PROMPTFORWORD section below) is a function used for entering a simple string of characters. Basic editing and prompting facilities are provided.
|
||
ASKUSER (see the ASKUSER section below) provides a more complicated prompting and answering facility, allowing a series of questions to be printed. Prompts and argument completion are supported.
|
||
TTYIN (see the TTYIN Display Typein Editor section below) is a display typein editor, that provides complex text editing facilities when entering an input line.
|
||
PRETTYPRINT (see the Prettyprint section below) is used for printing function definitions and other list structures, using multiple fonts and indenting lines to show the structure of the list.
|
||
Inspector
|
||
1
|
||
|
||
The Inspector provides a display-oriented facility for looking at and changing arbitrary Interlisp-D data structures. The inspector can be used to inspect all user datatypes and many system datatypes (although some objects such as numbers have no inspectable structure). The inspector displays the field names and values of an arbitrary object in a window that allows setting of the properties and further inspection of the values. This latter feature makes it possible to "walk" around all of the data structures in the system at the touch of a button. In addition, the inspector is integrated with the break package to allow inspection of any object on the stack and with the display and teletype structural editors to allow the editors to be used to "inspect" list structures and the inspector to "edit" datatypes.
|
||
The underlying mechanisms of the data inspector have been designed to allow their use as specialized editors in user applications. This functionality is described at the end of this section.
|
||
Note: Currently, the inspector does not have UNDOing. Also, variables whose values are changed will not be marked as such.
|
||
Calling the Inspector
|
||
There are several ways to open an inspect window onto an object. In addition to calling INSPECT directly (below), the inspector can also be called by buttoning an Inspect command inside an existing inspector window. Finally, if a non-list is edited with EDITDEF (see Chapter 17), the inspector is called. This also causes the inspector to be called by the Dedit command from the display editor or the EV command from the teletype editor if the selected piece of structure is a non-list.
|
||
(INSPECT(INSPECT (Function) NIL NIL (NIL) 2) OBJECT ASTYPE WHERE) [Function]
|
||
Creates an inspect window onto OBJECT. If ASTYPE is given, it will be taken as the record type of OBJECT. This allows records to be inspected with their property names. If ASTYPE is NIL, the data type of OBJECT will be used to determine its property names in the inspect window.
|
||
WHERE specifies the location of the inspect window. If WHERE is NIL, the user will be prompted for a location. If WHERE is a window, it will be used as the inspect window. If WHERE is a region, the inspect window will be created in that region of the screen. If WHERE is a position, the inspect window will have its lower left corner at that position on the screen.
|
||
INSPECT returns the inspect window onto OBJECT, or NIL if no inspection took place.ÿÿ |