Simplified VAX/VMS Screen Manager (SMG$)
Date/Time of Processing: Wednesday 25 May 1994 02:28:00Pm Overall Assessment of System: OK Classification of System: B Basis of Classification -- Syntax Errors PASS Completeness PASS Independence from External Libraries FAIL Independence from a Specific Ada Compiler PASS Explanations for failures -- System withs non-standard library units that are not provided Number of ... Files 1 Library Units 2 Lines 2866 Statements 388 Comments 1624 Unidentified Withed Units -- 4 unidentified withed units
languages/ada/swcomps/dsrs/scrnmgr: File Name Size --------- ---- scrnmgr.zip 67,220 Totals ============== ============== 1 Files 67,220
Vax_Screen_Manager 01D001OX.1 (Old ID: RIA0014A) PURPOSE/INTENDED USE: Vax_Screen_Manager is an Ada generic package that provides a simplified interface with basic VAX/VMS Screen Manager (SMG$) run-time library subprograms. By using SMG run-time subprograms, user programs are entirely separate from the physical devices that actually perform input and output. This allows input and output (I/O) to be terminal independent. Operations provided include: o Initializing, deleting, refreshing and printing a display screen. o Creating, deleting and changing a window on a display screen. o String/line manipulation in a window. o Creating, deleting, and modifying a virtual keyboard. Since this interface is a simplified version of the Screen Manager subprograms and consists of a subset of those subprograms, not all of the parameters available for use have been utilized. All restrictions that apply to the SMG run-time subprograms, also apply to this package. EXAMPLE APPLICATIONS: Reuse of this package would be appropriate for any application that uses a window-oriented user interface. A window (a rectangular portion of an essentially unbounded world coordinate space) contains the information to be displayed. An application may: o Set up a menu driven interface. o Set up pop-up windows. o Set up a form with protected windows for keywords, and unprotected windows for user inputs. CERTIFICATION LEVEL: VAX_Screen_Manager is certified at Level 4. This means that the Defense Information Systems Agency/Center for Information Management Software Reuse Program (SRP) management office has successfully compiled the code of this Reusable Software Asset (RSA) and measured maintainability, portability, reliability and reusability. In addition, this RSA includes a test suite and a Reuser's Manual, which will be provided when the asset is extracted. IMPLEMENTATION ISSUES: All restrictions that apply to the SMG run-time subprograms also apply to this package. Vax_Screen_Manager depends on (withs) the DEC Ada version of the Ada predefined package System, the Ada predefined package Unchecked_Conversion, and on the DEC Ada supplied packages Starlet, SMG, LIB, and Condition_Handling. The generic formal parameters of Vax_Screen_Manager are as follows: Screen_Device : STRING := ""; -- Defines the device to be used for the output. The default device -- is the terminal. Keyboard_Device : STRING := ""; -- Defines the device to be used for input. The default device is -- the physical keyboard. Vax_Screen_Manager defines the following exceptions: Insufficient_Virtual_Memory Screen_Not_Found Window_Not_Found Window_Not_Pasted Invalid_Column Invalid_Row Invalid_Text_Data End_Of_File_Reached Invalid_Keyboard_Device Keyboard_Not_Found Read_Canceled Read_Aborted Request_Failed HARDWARE/ENVIRONMENT CONSTRAINTS AND LIMITATIONS: This package was compiled on a DEC Microvax II running DEC Ada Version 2.0. SUBUNITS: Vax_Screen_Manager has the following visible subunits, which are grouped according to their functionality: o Screen Management subprograms: Shutdown_Screen Flushes all output to the display, terminates use of the display screen, and deallocates all buffers/resources associated with the display screen. Refresh_Screen Rewrites the display screen to the terminal. Print_Screen Prints the display screen image to the queue specified, SYS$PRINT by default. o Window Management subprograms: Create_Window Creates a window to be viewed on the display screen. Delete_Window Deletes a window from the display screen and deallocates the buffer space associated with it. Paste_Window Writes a window to the display screen. Unpaste_Window Removes a window from the display screen. The buffer space is not released. Move_Window Moves a window from one location to another without changing the pasting order. Get_Window_Attributes Retrieves the attributes associated with a window; border on/off, intensity normal/bold, and video normal/reverse. Set_Window_Attributes Sets the attributes associated with a window: border on/off, intensity normal/bold, and video normal/reverse. Begin_Window_Update Signals that multiple updates will be applied to the window. All updates are saved until a call to End_Window_Update occurs. End_Window_Update Signals the end of updating a window. The display screen is updated with all the changes. Get_Window_Size Gets the size, i.e., number of rows and columns, of the specified window. Get_Cursor_Position Gets the row and column location of the cursor within the current window. Set_Cursor_Absolute Moves the virtual cursor to the specified row and column within the window. Set_Cursor_Relative Moves the virtual cursor the specified number of rows and columns from the current virtual cursor. Scroll_Window Scrolls the contents of a window. Ring_Bell Rings the terminal bell. o Window Input/Output subprograms: Put_String Puts a string of characters in the window starting at the current cursor position. Get_String Gets a string from the specified window. The input is from the keyboard. Insert_String Inserts the specified text into the current window starting at the location of the virtual cursor. Delete_String Deletes the specified number of characters from the window, starting at the virtual cursor. The remaining characters on the line are shifted left to occupy the vacated space. Erase_String Replaces the specified number of characters with blanks. Highlight_String Changes the video/intensity of the text located at the virtual cursor, for the length specified. Put_Line Puts a line of text to the window, and advances the current line to the next line in the window. Get_Line Gets a line of text from the specified window. Insert_Line Inserts a line into a window at the specified row and scrolls the window. Delete_Line Deletes the specified number of lines (default = 1), starting at the specified row (default = 1), from the window. Erase_Line Erases all or part of a line in a window, starting at the current virtual cursor position. Erase_Window Replaces the whole window with blanks. o Menu Management subprograms: Create_Menu Creates a menu of choices in the specified window. Get_Menu_Selection Allows the user to move between the menu choices and make a selection. Delete_Menu Ends access to a menu in the specified window. o Keyboard Management subprograms: Set_Keyboard_Mode Sets the terminal's numeric keypad to either numeric or application mode. Read_Keystroke Reads a keystroke. DSRS CLASSIFICATION: availability: extractable certification level: level_4 component type: implementation data representation: character environment: mvii/vms/vaxada function: create function: delete function: display function: get function: input/output function: insert function: manage function: move function: put language: ada object: character object: menu object: string object: window originator: rapid unit type: generic_package LEGAL RESTRICTIONS: This RSA contains public domain data with unlimited rights for all users. Extraction is permitted to all authorized library users. This software and its documentation are provided "as is" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist. The user is advised to test the software thoroughly before relying on it. The user must assume the entire risk and liability of using this software. In no event shall any person or organization of people be held responsible for any direct, indirect, consequential or inconsequential damages or lost profits. MISCELLANEOUS: The standard for Level 4 certification has recently been upgraded. This asset is currently undergoing modification to meet the new Level 4 requirements.
January 17, 1994 Version 1 Original submission to PAL
This prologue must be included in all copies of this software. Restrictions on use or distribution: NONE LEGAL RESTRICTIONS: This RSA contains public domain data with unlimited rights for all users. Extraction is permitted to all authorized library users. This software and its documentation are provided "as is" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist.
This software and its documentation are provided "AS IS" and without any expressed or implied warranties whatsoever. No warranties as to performance, merchantability, or fitness for a particular purpose exist. The user is advised to test the software thoroughly before relying on it. The user must assume the entire risk and liability of using this software. In no event shall any person or organization of people be held responsible for any direct, indirect, consequential or inconsequential damages or lost profits.