------------------------------------------------------------------ -- -- NAME: WS_STATE_LIST_TYPES -- DISCREPANCY REPORTS: -- ------------------------------------------------------------------ -- file: ws_st_lst_typ_1b.ada -- level: 1b,2b with GKS_TYPES; with WS_TABLE_TYPES; with OUTPUT_ATTRIBUTES_TYPE; with SEGMENT_STATE_LIST_TYPES; with CONVERT_NDC_DC; -- use GKS_TYPES; package WS_STATE_LIST_TYPES is subtype PLIN_INDEX is NATURAL range 0 .. 20; subtype PMRK_INDEX is NATURAL range 0 .. 20; subtype TXT_INDEX is NATURAL range 0 .. 20; subtype FA_INDEX is NATURAL range 0 .. 20; subtype PAT_INDEX is NATURAL range 0 .. 0; subtype CLR_INDEX is GKS_TYPES.COLOUR_INDEX range 0 .. 255; subtype LOCATOR_DEVICES is NATURAL range 0 .. 1; subtype STROKE_DEVICES is NATURAL range 0 .. 1; subtype VALUATOR_DEVICES is NATURAL range 0 .. 1; subtype CHOICE_DEVICES is NATURAL range 0 .. 1; subtype PICK_DEVICES is NATURAL range 0 .. 1; subtype STRING_DEVICES is NATURAL range 0 .. 1; -- The preceding subtypes were declared so as not to raise a -- STORAGE ERROR at execution time. The upper bounds were chosen -- for the present implementation. CLR_INDEX could be changed -- to support a larger colour table for other devices. type WS_STATE_LST (NUM_POLYLINE_BUNDLES : PLIN_INDEX := 0; NUM_POLYMARKER_BUNDLES : PMRK_INDEX := 0; NUM_TEXT_BUNDLES : TXT_INDEX := 0; NUM_FILL_AREA_BUNDLES : FA_INDEX := 0; NUM_PATTERN_TABLES : PAT_INDEX := 0; NUM_COLOUR_REPRESENTATION : GKS_TYPES.COLOUR_INDEX := 0; NUM_OF_LOCATOR_DEVICES : LOCATOR_DEVICES := 0; NUM_OF_STROKE_DEVICES : STROKE_DEVICES := 0; NUM_OF_VALUATOR_DEVICES : VALUATOR_DEVICES := 0; NUM_OF_CHOICE_DEVICES : CHOICE_DEVICES := 0; NUM_OF_PICK_DEVICES : PICK_DEVICES := 0; NUM_OF_STRING_DEVICES : STRING_DEVICES := 0) is record -- The following is a copy of a subset of the GKS_STATE_LIST. OUTPUT_ATTR : OUTPUT_ATTRIBUTES_TYPE. OUTPUT_ATTRIBUTES; -- The application programmer's ID for a workstation. WORKSTATION_ID : GKS_TYPES.WS_ID; -- The physical connection to the device. -- CONNECTION_ID must have default value to remain unconstrained CONNECT_ID : GKS_TYPES.VARIABLE_CONNECTION_ID; -- The workstation category from the WS_DESCRIPTION_TABLE. WORKSTATION_CATEGORY : GKS_TYPES.WS_CATEGORY; -- The type of workstation. WORKSTATION_TYPE : GKS_TYPES.WS_TYPE; -- The workstation state. WS_STATE : GKS_TYPES.WS_STATE; -- Name of open segment. OPEN_SEG_NAME : GKS_TYPES.SEGMENT_NAME; -- The list of segment names stored on the workstation. SET_OF_STORED_SEGS : GKS_TYPES.SEGMENT_NAMES.LIST_OF; -- The set of stored segments on this workstation. LIST_OF_SEG_ST_LSTS : SEGMENT_STATE_LIST_TYPES .LIST_OF_SEGMENT_STATE_LISTS; -- Used to tell whether a segment is opened or one is being -- redrawn. SEGMENT_BEING_DISPLAYED : BOOLEAN := FALSE; -- Used for the deferral of output. WS_DEFERRAL_MODE : GKS_TYPES.DEFERRAL_MODE; -- Used to SUPPRESS or ALLOW implicit regeneration. WS_IMPLICIT_REGEN_MODE : GKS_TYPES.REGENERATION_MODE; -- Used to tell whether the display surface is EMPTY or not. WS_DISPLAY_SURFACE : GKS_TYPES.DISPLAY_SURFACE_EMPTY := GKS_TYPES.EMPTY; -- Used to identify if a picture needs an implicit regeneration. WS_NEW_FRAME_ACTION : GKS_TYPES.NEW_FRAME_NECESSARY := GKS_TYPES.NO; -- polyline bundles SET_OF_PLIN_IDC : GKS_TYPES.POLYLINE_INDICES.LIST_OF; POLYLINE_BUNDLES : WS_TABLE_TYPES.POLYLINE_BUNDLE_LIST (1 .. NUM_POLYLINE_BUNDLES); -- polymarker bundles SET_OF_PMRK_IDC : GKS_TYPES.POLYMARKER_INDICES.LIST_OF; POLYMARKER_BUNDLES : WS_TABLE_TYPES.POLYMARKER_BUNDLE_LIST (1 .. NUM_POLYMARKER_BUNDLES); -- text bundles SET_OF_TEXT_IDC : GKS_TYPES.TEXT_INDICES.LIST_OF; TEXT_BUNDLES : WS_TABLE_TYPES.TEXT_BUNDLE_LIST (1 .. NUM_TEXT_BUNDLES); -- fill area bundles SET_OF_FILL_AREA_IDC : GKS_TYPES.FILL_AREA_INDICES.LIST_OF; FILL_AREA_BUNDLES : WS_TABLE_TYPES.FILL_AREA_BUNDLE_LIST (1 .. NUM_FILL_AREA_BUNDLES); -- pattern table bundles SET_OF_PATTERN_IDC : GKS_TYPES.PATTERN_INDICES.LIST_OF; PATTERN_TABLE : WS_TABLE_TYPES.PATTERN_TABLE_LIST (1 .. NUM_PATTERN_TABLES); -- color table SET_OF_COLOUR_IDC : GKS_TYPES.COLOUR_INDICES.LIST_OF; COLOUR_TABLE : WS_TABLE_TYPES.COLOUR_TABLE_LIST (0 .. NUM_COLOUR_REPRESENTATION); -- input devices LIST_OF_LOCATOR_DEVICES : WS_TABLE_TYPES .WS_SL_LIST_OF_LOCATOR_DEVICES (1 .. NUM_OF_LOCATOR_DEVICES); LIST_OF_STROKE_DEVICES : WS_TABLE_TYPES .WS_SL_LIST_OF_STROKE_DEVICES (1 .. NUM_OF_STROKE_DEVICES); LIST_OF_VALUATOR_DEVICES : WS_TABLE_TYPES .WS_SL_LIST_OF_VALUATOR_DEVICES (1 .. NUM_OF_VALUATOR_DEVICES); LIST_OF_CHOICE_DEVICES : WS_TABLE_TYPES .WS_SL_LIST_OF_CHOICE_DEVICES (1 .. NUM_OF_CHOICE_DEVICES); LIST_OF_PICK_DEVICES : WS_TABLE_TYPES .WS_SL_LIST_OF_PICK_DEVICES (1 .. NUM_OF_PICK_DEVICES); LIST_OF_STRING_DEVICES : WS_TABLE_TYPES .WS_SL_LIST_OF_STRING_DEVICES (1 .. NUM_OF_STRING_DEVICES); -- Tells whether an update of the workstation transformation is -- needed. WS_XFORM_UPDATE_STATE : GKS_TYPES.UPDATE_STATE := GKS_TYPES.NOTPENDING; -- The value to which the CURRENT_WS_WINDOW is set. REQUESTED_WS_WINDOW : GKS_TYPES.NDC.RECTANGLE_LIMITS := (0.0, 1.0, 0.0, 1.0); -- The current workstation window. CURRENT_WS_WINDOW : GKS_TYPES.NDC.RECTANGLE_LIMITS := (0.0, 1.0, 0.0, 1.0); -- The value to which the CURRENT_WS_VIEWPORT is set. REQUESTED_WS_VIEWPORT : GKS_TYPES.DC.RECTANGLE_LIMITS := (0.0, 1.0, 0.0, 1.0); -- The current workstation viewport. CURRENT_WS_VIEWPORT : GKS_TYPES.DC.RECTANGLE_LIMITS := (0.0, 1.0, 0.0, 1.0); -- clipping rectangle -- The computed clipping rectangle from the CURRENT_CLIPPING_ -- RECTANGLE plus the CURRENT_WS_WINDOW. EFFECTIVE_CLIPPING_RECTANGLE : GKS_TYPES.DC.RECTANGLE_LIMITS := (0.0, 1.0, 0.0, 1.0); -- The following attributes are computed from the attributes -- in the GKS_STATE_LIST and the bundles in the WS_STATE_LIST -- depending on whether an ASF is BUNDLE or INDIVIDUAL. EFFECTIVE_POLYLINE_ATTR : WS_TABLE_TYPES.POLYLINE_BUNDLE; EFFECTIVE_POLYMARKER_ATTR : WS_TABLE_TYPES.POLYMARKER_BUNDLE; EFFECTIVE_TEXT_ATTR : WS_TABLE_TYPES.TEXT_BUNDLE; EFFECTIVE_FILL_AREA_ATTR : WS_TABLE_TYPES.FILL_AREA_BUNDLE; -- The following is computed from the WS window and WS viewport -- and stored for easy access by the WS DRIVER. WS_TRANSFORM : CONVERT_NDC_DC.NDC_DC_SCALE_TYPE; -- The following is a combination of the WS TRANSFORMATION -- and SEGMENT TRANSFORMATION. It is used as the transformation -- for primitives when a segment is open or is being redrawn. COMBINED_XFORM_MATRIX : CONVERT_NDC_DC.NDC_DC_XFORM_TYPE; end record; type WS_STATE_LIST_PTR is access WS_STATE_LST; end WS_STATE_LIST_TYPES;