------------------------------------------------------------------ -- -- NAME: CGI -- DISCREPANCY REPORTS: ------------------------------------------------------------------ -- file: cgi_mb.ada -- level: mb with GKS_ESCAPE; with GKS_TYPES; with OUTPUT_ATTRIBUTES_TYPE; with INTERNAL_DATA_RECORDS; with unchecked_deallocation; -- use GKS_TYPES; package CGI is -- Uses the GKS_TYPES package to define the Computer Graphics -- Interface (CGI) to the Workstation Manager. The interface is -- a DATA interface specified by the variant record CGI_INSTR where -- the discriminant is the type CGI_OPCODES. -- Package GKS_TYPES provides type definitions. -- Package OUTPUT_ATTRIBUTES_TYPE provides a grouping of the attributes -- which affect the display of output primitives. -- Package unchecked_deallocation is a predefined generic library -- function for storage deallocation of an object designated by a -- value of an access type. -- Package INTERNAL_DATA_RECORDS provides type definitions for data -- records which define logical input devices. type CGI_OPCODES is (NO_OP, -- LEVEL ma -- logical operation "ws_control" OPEN_WS, CLOSE_WS, ACTIVATE_WS, DEACTIVATE_WS, CLEAR_WS, UPDATE_WS, ESCAPE, -- logical operation "output_primitives" POLYLINE, POLYMARKER, FILL_AREA, TEXT, -- logical operation "set_primitive_attributes_ma" SET_CHAR_VECTORS, SET_TEXT_ALIGNMENT, -- logical operation "set_individual_attributes_ma" SET_LINETYPE, SET_POLYLINE_COLOUR_INDEX, SET_MARKER_TYPE, SET_POLYMARKER_COLOUR_INDEX, SET_TEXT_COLOUR_INDEX, SET_FILL_AREA_INTERIOR_STYLE, SET_FILL_AREA_COLOUR_INDEX, -- logical operation "set_colour_table" SET_COLOUR_REPRESENTATION, -- logical operation "ws_transformation" SET_WS_WINDOW, SET_WS_VIEWPORT, -- logical operation "inq_ws_description_table_ma" INQ_DISPLAY_SPACE_SIZE, INQ_POLYLINE_FACILITIES, INQ_POLYMARKER_FACILITIES, INQ_TEXT_FACILITIES, INQ_FILL_AREA_FACILITIES, INQ_COLOUR_FACILITIES, INQ_MAX_LENGTH_OF_WS_STATE_TABLES, -- logical operation "inq_ws_state_list_ma" INQ_WS_CONNECTION_AND_TYPE, INQ_TEXT_EXTENT, INQ_LIST_OF_COLOUR_INDICES, INQ_COLOUR_REPRESENTATION, INQ_WS_TRANSFORMATION, -- logical operation "gks_normalization" SET_CLIPPING_RECTANGLE, -- LEVEL mb -- logical operation "initialize_input_mb" INITIALISE_LOCATOR, INITIALISE_STROKE, INITIALISE_VALUATOR, INITIALISE_CHOICE, INITIALISE_STRING, -- logical operation "set_input_mode_mb" SET_LOCATOR_MODE, SET_STROKE_MODE, SET_VALUATOR_MODE, SET_CHOICE_MODE, SET_STRING_MODE, -- logical operation "request_input_mb" REQUEST_LOCATOR, REQUEST_STROKE, REQUEST_VALUATOR, REQUEST_CHOICE, REQUEST_STRING, -- logical operation "inq_ws_state_list_mb" INQ_LOCATOR_DEVICE_STATE, INQ_STROKE_DEVICE_STATE, INQ_VALUATOR_DEVICE_STATE, INQ_CHOICE_DEVICE_STATE, INQ_STRING_DEVICE_STATE, -- logical operation "inq_ws_description_table_mb" INQ_NUMBER_OF_AVAILABLE_LOGICAL_INPUT_DEVICES, INQ_DEFAULT_LOCATOR_DEVICE_DATA, INQ_DEFAULT_STROKE_DEVICE_DATA, INQ_DEFAULT_VALUATOR_DEVICE_DATA, INQ_DEFAULT_CHOICE_DEVICE_DATA, INQ_DEFAULT_STRING_DEVICE_DATA); type ACCESS_CONNECTION_ID_TYPE is ACCESS STRING; -- used to pass pointer to a connection id string type ACCESS_ESC_DATA_RECORD is access GKS_ESCAPE.ESC_DATA_RECORD; -- used to pass pointer to an ESCAPE data record type ACCESS_POINT_ARRAY_TYPE is ACCESS GKS_TYPES.NDC.POINT_ARRAY; -- used to pass pointer to an array of points type ACCESS_STRING_TYPE is ACCESS STRING; -- used to pass pointer to a string type ACCESS_WC_POINT_ARRAY_TYPE is ACCESS GKS_TYPES.WC.POINT_ARRAY; -- used to pass pointer to an array of world coordinate points -- instantiate unchecked deallocation for access types procedure FREE_CONNECTION_ID is new unchecked_deallocation (STRING,ACCESS_CONNECTION_ID_TYPE); procedure FREE_ESC_DATA_RECORD is new unchecked_deallocation (GKS_ESCAPE.ESC_DATA_RECORD, ACCESS_ESC_DATA_RECORD); procedure FREE_POINT_ARRAY is new unchecked_deallocation (GKS_TYPES.NDC.POINT_ARRAY,ACCESS_POINT_ARRAY_TYPE); procedure FREE_STRING is new unchecked_deallocation (STRING,ACCESS_STRING_TYPE); procedure FREE_WC_POINT_ARRAY is new unchecked_deallocation (GKS_TYPES.WC.POINT_ARRAY,ACCESS_WC_POINT_ARRAY_TYPE); type CGI_INSTR (OP : CGI_OPCODES := NO_OP) is record ERROR_INDICATOR : GKS_TYPES.ERROR_NUMBER := 0; -- enumerate each opcode giving its appropriate arguments. case OP is when NO_OP => null; -- LEVEL ma -- logical operation "ws_control" when OPEN_WS => WS_TO_OPEN : GKS_TYPES.WS_ID; CONNECTION_OPEN : ACCESS_CONNECTION_ID_TYPE; TYPE_OF_WS_OPEN : GKS_TYPES.WS_TYPE; ATTRIBUTES_AT_OPEN : OUTPUT_ATTRIBUTES_TYPE. OUTPUT_ATTRIBUTES; when CLOSE_WS => WS_TO_CLOSE : GKS_TYPES.WS_ID; when ACTIVATE_WS => WS_TO_ACTIVATE : GKS_TYPES.WS_ID; when DEACTIVATE_WS => WS_TO_DEACTIVATE : GKS_TYPES.WS_ID; when CLEAR_WS => WS_TO_CLEAR : GKS_TYPES.WS_ID; FLAG : GKS_TYPES.CONTROL_FLAG; when UPDATE_WS => WS_TO_UPDATE : GKS_TYPES.WS_ID; REGENERATION : GKS_TYPES.UPDATE_REGENERATION_FLAG; when ESCAPE => ESCAPE_NAME : GKS_ESCAPE.ESCAPE_ID; ESCAPE_DATA_IN : ACCESS_ESC_DATA_RECORD; ESCAPE_DATA_OUT : ACCESS_ESC_DATA_RECORD; -- logical operation "output_primitives" when POLYLINE => LINE_POINTS : ACCESS_POINT_ARRAY_TYPE; when POLYMARKER => MARKER_POINTS : ACCESS_POINT_ARRAY_TYPE; when FILL_AREA => FILL_AREA_POINTS : ACCESS_POINT_ARRAY_TYPE; when TEXT => TEXT_POSITION : GKS_TYPES.NDC.POINT; TEXT_STRING : ACCESS_STRING_TYPE; -- logical operation "set_primitive_attributes_ma" when SET_CHAR_VECTORS => CHAR_HEIGHT_VECTOR_SET : GKS_TYPES.NDC.VECTOR; CHAR_WIDTH_VECTOR_SET : GKS_TYPES.NDC.VECTOR; when SET_TEXT_ALIGNMENT => TEXT_ALIGNMENT_SET : GKS_TYPES.TEXT_ALIGNMENT; -- logical operation "set_individual_attributes_ma" when SET_LINETYPE => LINETYPE_SET : GKS_TYPES.LINETYPE; when SET_POLYLINE_COLOUR_INDEX => POLYLINE_COLOUR_INDEX_SET : GKS_TYPES.COLOUR_INDEX; when SET_MARKER_TYPE => MARKER_TYPE_SET : GKS_TYPES.MARKER_TYPE; when SET_POLYMARKER_COLOUR_INDEX => POLYMARKER_COLOUR_INDEX_SET : GKS_TYPES.COLOUR_INDEX; when SET_TEXT_COLOUR_INDEX => TEXT_COLOUR_INDEX_SET : GKS_TYPES.COLOUR_INDEX; when SET_FILL_AREA_INTERIOR_STYLE => FILL_AREA_INTERIOR_STYLE_SET : GKS_TYPES.INTERIOR_STYLE; when SET_FILL_AREA_COLOUR_INDEX => FILL_AREA_COLOUR_INDEX_SET : GKS_TYPES.COLOUR_INDEX; -- logical operation "set_colour_table" when SET_COLOUR_REPRESENTATION => WS_TO_SET_COLOUR_REP : GKS_TYPES.WS_ID; COLOUR_INDEX_TO_SET_COLOUR_REP : GKS_TYPES.COLOUR_INDEX; COLOUR_REP_SET : GKS_TYPES.COLOUR_REPRESENTATION; -- logical operation "ws_transformation" when SET_WS_WINDOW => WS_TO_SET_WINDOW : GKS_TYPES.WS_ID; WS_WINDOW_LIMITS_SET : GKS_TYPES.NDC.RECTANGLE_LIMITS; when SET_WS_VIEWPORT => WS_TO_SET_VIEWPORT : GKS_TYPES.WS_ID; WS_VIEWPORT_LIMITS_SET : GKS_TYPES.DC.RECTANGLE_LIMITS; -- logical operation "inq_ws_description_table_ma" when INQ_DISPLAY_SPACE_SIZE => WS_TO_INQ_DISPLAY_SPACE_SIZE : GKS_TYPES.WS_TYPE; DISPLAY_SPACE_UNITS_INQ : GKS_TYPES.DC_UNITS; MAX_DC_SIZE_INQ : GKS_TYPES.DC.SIZE; MAX_RASTER_UNIT_SIZE_INQ : GKS_TYPES.RASTER_UNIT_SIZE; when INQ_POLYLINE_FACILITIES => WS_TO_INQ_POLYLINE_FACILITIES : GKS_TYPES.WS_TYPE; LIST_OF_POLYLINE_TYPES_INQ : GKS_TYPES.LINETYPES.LIST_OF; NUMBER_OF_WIDTHS_INQ : NATURAL; NOMINAL_WIDTH_INQ : GKS_TYPES.DC.MAGNITUDE; RANGE_OF_WIDTHS_INQ : GKS_TYPES.DC.RANGE_OF_MAGNITUDES; NUMBER_OF_POLYLINE_INDICES_INQ : NATURAL; when INQ_POLYMARKER_FACILITIES => WS_TO_INQ_POLYMARKER_FACILITIES : GKS_TYPES.WS_TYPE; LIST_OF_POLYMARKER_TYPES_INQ: GKS_TYPES.MARKER_TYPES.LIST_OF; NUMBER_OF_SIZES_INQ : NATURAL; NOMINAL_SIZE_INQ : GKS_TYPES.DC.MAGNITUDE; RANGE_OF_SIZES_INQ : GKS_TYPES.DC. RANGE_OF_MAGNITUDES; NUMBER_OF_POLYMARKER_INDICES_INQ : NATURAL; when INQ_TEXT_FACILITIES => WS_TO_INQ_TEXT_FACILITIES : GKS_TYPES.WS_TYPE; LIST_OF_FONT_PRECISION_PAIRS_INQ : GKS_TYPES. TEXT_FONT_PRECISIONS.LIST_OF; NUMBER_OF_HEIGHTS_INQ : NATURAL; RANGE_OF_HEIGHTS_INQ : GKS_TYPES.DC. RANGE_OF_MAGNITUDES; NUMBER_OF_EXPANSIONS_INQ : NATURAL; RANGE_OF_EXPANSIONS_INQ : GKS_TYPES.RANGE_OF_EXPANSIONS; NUMBER_OF_TEXT_INDICES_INQ : NATURAL; when INQ_FILL_AREA_FACILITIES => WS_TO_INQ_FILL_AREA_FACILITIES : GKS_TYPES.WS_TYPE; LIST_OF_INTERIOR_STYLES_INQ : GKS_TYPES.INTERIOR_STYLES. LIST_OF; LIST_OF_HATCH_STYLES_INQ : GKS_TYPES.HATCH_STYLES. LIST_OF; NUMBER_OF_FILL_AREA_INDICES_INQ : NATURAL; when INQ_COLOUR_FACILITIES => WS_TO_INQ_COLOUR_FACILITIES : GKS_TYPES.WS_TYPE; NUMBER_OF_COLOURS_INQ : NATURAL; AVAILABLE_COLOUR_INQ : GKS_TYPES.COLOUR_AVAILABLE; NUMBER_OF_COLOUR_INDICES_INQ : NATURAL; when INQ_MAX_LENGTH_OF_WS_STATE_TABLES => WS_TO_INQ_MAX_LENGTH_OF_WS_STATE_TABLES : GKS_TYPES.WS_TYPE; MAX_POLYLINE_ENTRIES_INQ : NATURAL; MAX_POLYMARKER_ENTRIES_INQ : NATURAL; MAX_TEXT_ENTRIES_INQ : NATURAL; MAX_FILL_AREA_ENTRIES_INQ : NATURAL; MAX_PATTERN_INDICES_INQ : NATURAL; MAX_COLOUR_INDICES_INQ : NATURAL; -- logical operation "inq_ws_state_list_ma" when INQ_WS_CONNECTION_AND_TYPE => WS_TO_INQ_CONNECTION_AND_TYPE : GKS_TYPES.WS_ID; CONNECTION_INQ : ACCESS_CONNECTION_ID_TYPE; TYPE_OF_WS_INQ : GKS_TYPES.WS_TYPE; when INQ_TEXT_EXTENT => WS_TO_INQ_TEXT_EXTENT : GKS_TYPES.WS_ID; POSITION_TEXT : GKS_TYPES.NDC.POINT; CHAR_STRING : ACCESS_STRING_TYPE; CONCATENATION_POINT : GKS_TYPES.NDC.POINT; TEXT_EXTENT_LOWER_LEFT_INQ : GKS_TYPES.NDC.POINT; TEXT_EXTENT_LOWER_RIGHT_INQ : GKS_TYPES.NDC.POINT; TEXT_EXTENT_UPPER_LEFT_INQ : GKS_TYPES.NDC.POINT; TEXT_EXTENT_UPPER_RIGHT_INQ : GKS_TYPES.NDC.POINT; when INQ_LIST_OF_COLOUR_INDICES => WS_TO_INQ_COLOUR_INDICES : GKS_TYPES.WS_ID; LIST_OF_COLOUR_INDICES_INQ : GKS_TYPES.COLOUR_INDICES.LIST_OF; when INQ_COLOUR_REPRESENTATION => WS_TO_INQ_COLOUR_REP : GKS_TYPES.WS_ID; COLOUR_INDEX_TO_INQ_COLOUR_REP : GKS_TYPES.COLOUR_INDEX; RETURN_VALUE_TO_INQ_COLOUR_REP : GKS_TYPES.RETURN_VALUE_TYPE; COLOUR_REP_INQ : GKS_TYPES. COLOUR_REPRESENTATION; when INQ_WS_TRANSFORMATION => WS_TO_INQ_TRANSFORMATION : GKS_TYPES.WS_ID; UPDATE_INQ : GKS_TYPES.UPDATE_STATE; REQUESTED_WINDOW_INQ : GKS_TYPES.NDC.RECTANGLE_LIMITS; CURRENT_WINDOW_INQ : GKS_TYPES.NDC.RECTANGLE_LIMITS; REQUESTED_VIEWPORT_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; CURRENT_VIEWPORT_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; -- logical operation "gks_normalization" when SET_CLIPPING_RECTANGLE => CLIPPING_RECTANGLE_SET : GKS_TYPES.NDC.RECTANGLE_LIMITS; -- LEVEL mb -- logical operation "initialize_input_mb" when INITIALISE_LOCATOR => WS_TO_INIT_LOCATOR : GKS_TYPES.WS_ID; DEVICE_TO_INIT_LOCATOR : GKS_TYPES.LOCATOR_DEVICE_NUMBER; LOCATOR_INITIAL_TRANSFORMATION : GKS_TYPES. TRANSFORMATION_NUMBER; INITIAL_POSITION : GKS_TYPES.WC.POINT; LOCATOR_ECHO_AREA : GKS_TYPES.DC.RECTANGLE_LIMITS; LOCATOR_DATA_RECORD_TO_INIT : INTERNAL_DATA_RECORDS. LOCATOR_DATA_RECORD; when INITIALISE_STROKE => WS_TO_INIT_STROKE : GKS_TYPES.WS_ID; DEVICE_TO_INIT_STROKE : GKS_TYPES.STROKE_DEVICE_NUMBER; STROKE_INITIAL_TRANSFORMATION : GKS_TYPES. TRANSFORMATION_NUMBER; INITIAL_STROKE : ACCESS_WC_POINT_ARRAY_TYPE; STROKE_ECHO_AREA : GKS_TYPES.DC.RECTANGLE_LIMITS; STROKE_DATA_RECORD_TO_INIT : INTERNAL_DATA_RECORDS. STROKE_DATA_RECORD; when INITIALISE_VALUATOR => WS_TO_INIT_VALUATOR : GKS_TYPES.WS_ID; DEVICE_TO_INIT_VALUATOR : GKS_TYPES.VALUATOR_DEVICE_NUMBER; INITIAL_VALUE : GKS_TYPES.VALUATOR_INPUT_VALUE; VALUATOR_ECHO_AREA : GKS_TYPES.DC.RECTANGLE_LIMITS; VALUATOR_DATA_RECORD_TO_INIT : INTERNAL_DATA_RECORDS. VALUATOR_DATA_RECORD; when INITIALISE_CHOICE => WS_TO_INIT_CHOICE : GKS_TYPES.WS_ID; DEVICE_TO_INIT_CHOICE : GKS_TYPES.CHOICE_DEVICE_NUMBER; INITIAL_CHOICE_STATUS : GKS_TYPES.CHOICE_STATUS; INITIAL_CHOICE : GKS_TYPES.CHOICE_VALUE; CHOICE_ECHO_AREA : GKS_TYPES.DC.RECTANGLE_LIMITS; CHOICE_DATA_RECORD_TO_INIT : INTERNAL_DATA_RECORDS. CHOICE_DATA_RECORD; when INITIALISE_STRING => WS_TO_INIT_STRING : GKS_TYPES.WS_ID; DEVICE_TO_INIT_STRING : GKS_TYPES.STRING_DEVICE_NUMBER; INITIAL_STRING : ACCESS_STRING_TYPE; STRING_ECHO_AREA : GKS_TYPES.DC.RECTANGLE_LIMITS; STRING_DATA_RECORD_TO_INIT : INTERNAL_DATA_RECORDS. STRING_DATA_RECORD; -- logical operation "set_input_mode_mb" when SET_LOCATOR_MODE => WS_TO_SET_LOCATOR_MODE : GKS_TYPES.WS_ID; DEVICE_TO_SET_LOCATOR_MODE : GKS_TYPES.LOCATOR_DEVICE_NUMBER; LOCATOR_MODE_SET : GKS_TYPES.OPERATING_MODE; LOCATOR_SWITCH_SET : GKS_TYPES.ECHO_SWITCH; INITIAL_POSITION_TO_SET_MODE : GKS_TYPES.NDC.POINT := (0.0,0.0); when SET_STROKE_MODE => WS_TO_SET_STROKE_MODE : GKS_TYPES.WS_ID; DEVICE_TO_SET_STROKE_MODE : GKS_TYPES.STROKE_DEVICE_NUMBER; STROKE_MODE_SET : GKS_TYPES.OPERATING_MODE; STROKE_SWITCH_SET : GKS_TYPES.ECHO_SWITCH; INITIAL_STROKE_TO_SET_MODE : ACCESS_POINT_ARRAY_TYPE; when SET_VALUATOR_MODE => WS_TO_SET_VALUATOR_MODE : GKS_TYPES.WS_ID; DEVICE_TO_SET_VALUATOR_MODE : GKS_TYPES.VALUATOR_DEVICE_NUMBER; VALUATOR_MODE_SET : GKS_TYPES.OPERATING_MODE; VALUATOR_SWITCH_SET : GKS_TYPES.ECHO_SWITCH; when SET_CHOICE_MODE => WS_TO_SET_CHOICE_MODE : GKS_TYPES.WS_ID; DEVICE_TO_SET_CHOICE_MODE : GKS_TYPES.CHOICE_DEVICE_NUMBER; CHOICE_MODE_SET : GKS_TYPES.OPERATING_MODE; CHOICE_SWITCH_SET : GKS_TYPES.ECHO_SWITCH; when SET_STRING_MODE => WS_TO_SET_STRING_MODE : GKS_TYPES.WS_ID; DEVICE_TO_SET_STRING_MODE : GKS_TYPES.STRING_DEVICE_NUMBER; STRING_MODE_SET : GKS_TYPES.OPERATING_MODE; STRING_SWITCH_SET : GKS_TYPES.ECHO_SWITCH; -- logical operation "request_input_mb" when REQUEST_LOCATOR => WS_TO_REQUEST_LOCATOR : GKS_TYPES.WS_ID; DEVICE_TO_REQUEST_LOCATOR : GKS_TYPES.LOCATOR_DEVICE_NUMBER; INITIAL_POSITION_TO_REQUEST_LOCATOR : GKS_TYPES.NDC.POINT; LOCATOR_STATUS : GKS_TYPES.INPUT_STATUS; LOCATOR_POSITION : GKS_TYPES.NDC.POINT; when REQUEST_STROKE => WS_TO_REQUEST_STROKE : GKS_TYPES.WS_ID; DEVICE_TO_REQUEST_STROKE : GKS_TYPES.STROKE_DEVICE_NUMBER; INITIAL_STROKE_TO_REQUEST_STROKE : ACCESS_POINT_ARRAY_TYPE; STROKE_STATUS : GKS_TYPES.INPUT_STATUS; STROKE_POINTS : ACCESS_POINT_ARRAY_TYPE; when REQUEST_VALUATOR => WS_TO_REQUEST_VALUATOR : GKS_TYPES.WS_ID; DEVICE_TO_REQUEST_VALUATOR : GKS_TYPES.VALUATOR_DEVICE_NUMBER; VALUATOR_STATUS : GKS_TYPES.INPUT_STATUS; VALUATOR_VALUE : GKS_TYPES.VALUATOR_INPUT_VALUE; when REQUEST_CHOICE => WS_TO_REQUEST_CHOICE : GKS_TYPES.WS_ID; DEVICE_TO_REQUEST_CHOICE : GKS_TYPES.CHOICE_DEVICE_NUMBER; CHOICE_STATUS_REQUESTED : GKS_TYPES.CHOICE_REQUEST_STATUS; CHOICE_NUMBER : GKS_TYPES.CHOICE_VALUE; when REQUEST_STRING => WS_TO_REQUEST_STRING : GKS_TYPES.WS_ID; DEVICE_TO_REQUEST_STRING : GKS_TYPES.STRING_DEVICE_NUMBER; STRING_STATUS : GKS_TYPES.INPUT_STATUS; STRING_VALUE : ACCESS_STRING_TYPE; -- logical operation "inq_ws_state_list_mb" when INQ_LOCATOR_DEVICE_STATE => WS_TO_INQ_LOCATOR_STATE : GKS_TYPES.WS_ID; DEVICE_TO_INQ_LOCATOR_STATE : GKS_TYPES.LOCATOR_DEVICE_NUMBER; RETURN_VALUE_TO_INQ_LOCATOR_STATE: GKS_TYPES.RETURN_VALUE_TYPE; LOCATOR_MODE_INQ : GKS_TYPES.OPERATING_MODE; LOCATOR_SWITCH_INQ : GKS_TYPES.ECHO_SWITCH; LOCATOR_INITIAL_XFORM_INQ : GKS_TYPES.TRANSFORMATION_NUMBER; LOCATOR_INITIAL_POSITION_INQ : GKS_TYPES.WC.POINT; LOCATOR_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; LOCATOR_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. LOCATOR_DATA_RECORD; when INQ_STROKE_DEVICE_STATE => WS_TO_INQ_STROKE_STATE : GKS_TYPES.WS_ID; DEVICE_TO_INQ_STROKE_STATE : GKS_TYPES.STROKE_DEVICE_NUMBER; RETURN_VALUE_TO_INQ_STROKE_STATE : GKS_TYPES.RETURN_VALUE_TYPE; STROKE_MODE_INQ : GKS_TYPES.OPERATING_MODE; STROKE_SWITCH_INQ : GKS_TYPES.ECHO_SWITCH; STROKE_INITIAL_XFORM_INQ : GKS_TYPES.TRANSFORMATION_NUMBER; STROKE_INITIAL_POINTS_INQ : ACCESS_WC_POINT_ARRAY_TYPE; STROKE_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; STROKE_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. STROKE_DATA_RECORD; when INQ_VALUATOR_DEVICE_STATE => WS_TO_INQ_VALUATOR_STATE : GKS_TYPES.WS_ID; DEVICE_TO_INQ_VALUATOR_STATE : GKS_TYPES.VALUATOR_DEVICE_NUMBER; VALUATOR_MODE_INQ : GKS_TYPES.OPERATING_MODE; VALUATOR_SWITCH_INQ : GKS_TYPES.ECHO_SWITCH; VALUATOR_INITIAL_VALUE_INQ : GKS_TYPES.VALUATOR_INPUT_VALUE; VALUATOR_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; VALUATOR_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. VALUATOR_DATA_RECORD; when INQ_CHOICE_DEVICE_STATE => WS_TO_INQ_CHOICE_STATE : GKS_TYPES.WS_ID; DEVICE_TO_INQ_CHOICE_STATE : GKS_TYPES.CHOICE_DEVICE_NUMBER; CHOICE_MODE_INQ : GKS_TYPES.OPERATING_MODE; CHOICE_SWITCH_INQ : GKS_TYPES.ECHO_SWITCH; CHOICE_STATUS_INQ : GKS_TYPES.CHOICE_STATUS; CHOICE_INITIAL_CHOICE_INQ : GKS_TYPES.CHOICE_VALUE; CHOICE_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; CHOICE_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. CHOICE_DATA_RECORD; when INQ_STRING_DEVICE_STATE => WS_TO_INQ_STRING_STATE : GKS_TYPES.WS_ID; DEVICE_TO_INQ_STRING_STATE : GKS_TYPES.STRING_DEVICE_NUMBER; STRING_MODE_INQ : GKS_TYPES.OPERATING_MODE; STRING_SWITCH_INQ : GKS_TYPES.ECHO_SWITCH; STRING_INITIAL_STRING_INQ : ACCESS_STRING_TYPE; STRING_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; STRING_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. STRING_DATA_RECORD; -- logical operation "inq_ws_description_table_mb" when INQ_NUMBER_OF_AVAILABLE_LOGICAL_INPUT_DEVICES => WS_TO_INQ_INPUT_DEVICES : GKS_TYPES.WS_TYPE; NUMBER_OF_LOCATOR_INQ : NATURAL; NUMBER_OF_STROKE_INQ : NATURAL; NUMBER_OF_VALUATOR_INQ : NATURAL; NUMBER_OF_CHOICE_INQ : NATURAL; NUMBER_OF_PICK_INQ : NATURAL; NUMBER_OF_STRING_INQ : NATURAL; when INQ_DEFAULT_LOCATOR_DEVICE_DATA => WS_TO_INQ_LOCATOR_DATA : GKS_TYPES.WS_TYPE; DEVICE_TO_INQ_LOCATOR_DATA : GKS_TYPES.LOCATOR_DEVICE_NUMBER; LOCATOR_DEF_INITIAL_POSITION_INQ : GKS_TYPES.WC.POINT; LOCATOR_DEF_PROMPT_ECHO_INQ : GKS_TYPES.LOCATOR_PROMPT_ECHO_TYPES.LIST_OF; LOCATOR_DEF_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; LOCATOR_DEF_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. LOCATOR_DATA_RECORD; when INQ_DEFAULT_STROKE_DEVICE_DATA => WS_TO_INQ_STROKE_DATA : GKS_TYPES.WS_TYPE; DEVICE_TO_INQ_STROKE_DATA : GKS_TYPES.STROKE_DEVICE_NUMBER; STROKE_DEF_MAX_BUFFER_SIZE_INQ : NATURAL; STROKE_DEF_PROMPT_ECHO_INQ : GKS_TYPES.STROKE_PROMPT_ECHO_TYPES.LIST_OF; STROKE_DEF_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; STROKE_DEF_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. STROKE_DATA_RECORD; when INQ_DEFAULT_VALUATOR_DEVICE_DATA => WS_TO_INQ_VALUATOR_DATA : GKS_TYPES.WS_TYPE; DEVICE_TO_INQ_VALUATOR_DATA : GKS_TYPES.VALUATOR_DEVICE_NUMBER; VALUATOR_DEF_INITIAL_VALUE_INQ : GKS_TYPES.VALUATOR_INPUT_VALUE; VALUATOR_DEF_PROMPT_ECHO_INQ : GKS_TYPES.VALUATOR_PROMPT_ECHO_TYPES.LIST_OF; VALUATOR_DEF_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; VALUATOR_DEF_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. VALUATOR_DATA_RECORD; when INQ_DEFAULT_CHOICE_DEVICE_DATA => WS_TO_INQ_CHOICE_DATA : GKS_TYPES.WS_TYPE; DEVICE_TO_INQ_CHOICE_DATA : GKS_TYPES.CHOICE_DEVICE_NUMBER; CHOICE_DEF_MAX_CHOICES_INQ : GKS_TYPES.CHOICE_VALUE; CHOICE_DEF_PROMPT_ECHO_INQ : GKS_TYPES.CHOICE_PROMPT_ECHO_TYPES.LIST_OF; CHOICE_DEF_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; CHOICE_DEF_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. CHOICE_DATA_RECORD; when INQ_DEFAULT_STRING_DEVICE_DATA => WS_TO_INQ_STRING_DATA : GKS_TYPES.WS_TYPE; DEVICE_TO_INQ_STRING_DATA : GKS_TYPES.STRING_DEVICE_NUMBER; STRING_DEF_MAX_BUFFER_SIZE_INQ : NATURAL; STRING_DEF_PROMPT_ECHO_INQ : GKS_TYPES.STRING_PROMPT_ECHO_TYPES.LIST_OF; STRING_DEF_ECHO_AREA_INQ : GKS_TYPES.DC.RECTANGLE_LIMITS; STRING_DEF_DATA_RECORD_INQ : INTERNAL_DATA_RECORDS. STRING_DATA_RECORD; end case; end record; end CGI;