3.3 Structures G-G


GadgetSizeHintArgs

GadgetSizeHintArgs          struct
    GSHA_width          SpecWidth <>        ;Width of the composite
    GSHA_height         SpecHeight <>       ;Height of each child
GadgetSizeHintArgs          ends

Library: Objects/genC.def


GCCFeatures

GCCFeatures     record
    GCCF_HORIZONTAL_GUIDES          :1
    GCCF_VERTICAL_GUIDES            :1
GCCFeatures     end

Library: ruler.def


GCMIcon

GCMIcon etype   byte, 0
    GCMI_NONE       enum GCMIcon
    GCMI_EXIT       enum GCMIcon
    GCMI_HELP       enum GCMIcon

Library: Objects/genC.def


GCM_info

GCM_info    etype   word, 0, 2
    GCMI_MIN_X      enum GCM_info   ;min x (left side bearing)
    GCMI_MIN_Y      enum GCM_info   ;min y (descent)
    GCMI_MAX_X      enum GCM_info   ;max x
    GCMI_MAX_Y      enum GCM_info   ;max y (ascent)

Library: font.def


GCNDriveChangeNotificationType

GCNDriveChangeNotificationType          etype word
    GCNDCNT_CREATED         enum GCNDriveChangeNotificationType
    GCNDCNT_DESTROYED       enum GCNDriveChangeNotificationType

Library: gcnlist.def


GCNExpressMenuNotificationType

GCNExpressMenuNotificationType          etype word
    GCNEMNT_CREATED         enum GCNExpressMenuNotificationType
    GCNEMNT_DESTROYED       enum GCNExpressMenuNotificationType

Library: gcnlist.def


GCNListBlockHeader

GCNListBlockHeader      struct
    GCNLBH_lmemHeader           LMemBlockHeader
    GCNLBH_listOfLists          lptr.GCNListOfListsHeader
GCNListBlockHeader      ends

This structure begins a kernel’s GCN list block.

Library: gcnlist.def


GCNListElement

GCNListElement      struct
    GCNLE_item          optr
GCNListElement      ends

This structure stores an element within a GCN list.

Library: Objects/metaC.def


GCNListHeader

GCNListHeader       struct
    GCNLH_meta              ChunkArrayHeader
    GCNLH_statusEvent       hptr
    GCNLH_statusData        hptr
    GCNLH_statusCount       word
GCNListHeader       ends

This structure defines a single GCN list (which resides in a chunk).

GCNLH_statusEvent stores a copy of the last notification event sent to this list via GCNListSendStatus. This event will be sent automatically to any object adding itself to the list. (This functionality is not yet used.)

GCNLH_statusData stores a copy of the extra data block, if any, passed in the above status event. This data block must be sharable, & have a reference count.

GCNLH_statusCount is incremented each time status is set for this list. This status count is used in the UI to avoid setting a status of NULL between changes in the target. If GCNLSF_IGNORE_IF_STATUS_TRANSITIONING is set in a `Send’ request, the GenApplication object will only set a NULL status if no status updates have been made after the time it takes to clear the process’s queue when an object loses the target.

Library: Objects/metaC.def


GCNListMessageParams

GCNListMessageParams            struct
    GCNLMP_ID               GCNListType
    GCNLMP_block            hptr.GCNDataBlockHeader
    GCNLMP_event            hptr
    GCNLMP_flags            GCNListSendFlags
GCNListMessageParams            ends

GCNLMP_ID stores a list identifier - a combination of a ManufacturerID and a Manufacturer list type.

GCNLMP_block stores the handle of the extra data block, if used. (If there is no extra data block, this should be 0.) Blocks of this type must have a reference count, which may be initialized with MemInitRefCount and incremented for any new usage with MemIncRefCount. Methods in which the blocks are passed are considered a new usage and must have MetaClass handlers which call MemDecRefCount. Current messages supporting this behavior:
MSG_META_NOTIFY_WITH_DATA_BLOCK
MSG_NOTIFY_FILE_CHANGE.

GCNLMP_event stores a classed event to send to the list.

GCNLMP_flags stores the flags to pass on to GCNListSend or a similar primitive routine.

Library: Objects/metaC.def


GCNListOfListsElement

GCNListOfListsElement           struct
    GCNLOLE_ID              GCNListType
    GCNLOLE_list            lptr.GCNListHeader
GCNListOfListsElement           ends

This structure defines an element in a GCN list of lists.

Library: Objects/metaC.def


GCNListOfListsHeader

GCNListOfListsHeader            struct
    GCNLOL_meta             ChunkArrayHeader
    GCNLH_data              label GCNListOfListsElement
GCNListOfListsHeader            ends

This structure starts a GCN lists of lists (and resides in a chunk). The label marks the start of multiple GCNListOfListsElement structures.

Library: Objects/metaC.def


GCNListParams

GCNListParams       struct
    GCNLP_ID            GCNListType
    GCNLP_optr          optr
GCNListParams       ends

GCNLP_ID stores the list identifier, which consists of a ManufacturerID and its associated Manufacturer list type.

GCNLP_optr stores the optr of the object to be added or removed from the list.

Library: Objects/metaC.def


GCNListSendFlags

GCNListSendFlags        record
    GCNLSF_SET_STATUS                       :1
    GCNLSF_IGNORE_IF_STATUS_TRANSITIONING   :1
    GCNSLF_FORCE_QUEUE                      :1
                                            :13
GCNListSendFlags        end

GCNLSF_SET_STATUS
During a GCNListSend, this flag additionally saves the message as the list’s current “status”. This “status” message will be automatically sent to any object adding itself to the list at a later point in time.

GCNLSF_IGNORE_IF_STATUS_TRANSITIONING
This flag is an optimization bit used to avoid a lull in status when transitioning between two different sources. This case may arise when the source is the current target object and one has just lost and another may soon gain the exclusive. (The bit should be set only when sending the “null”/”lost”/”not selected” status, as this is the event that should be tossed if another non-null status comes along shortly.)

Implementation is not provided by the kernel primitive routines, which ignore this bit, but may be provided by objects managing their own GCN lists. GenApplication objects respond to this bit by delaying the request until after the UI and application queues have been cleared; then they only set the status as indicated if no other status has been set since the first request. Other objects may use their own logic to implement this optimization as is appropriate. Mechanisms which can not tolerate the delayed nature of this optimization, or require that all changes be registered, should not pass this bit set.

GCNLSF_FORCE_QUEUE
This flag informs GCNListSend to place the message on the event queue for the destination, even if the destination is run by the same thread as that sending the message.

Library: Objects/metaC.def


GCNListType

GCNListType     struct
    GCNLT_manuf         ManufacturerID
    GCNLT_type          word
GCNListType     ends

This structure defines a specific GCN list type. A GCN list type consists of a manufacturer ID describing each unique manufacturer and a specific list type defined for that manufactuer ID.

Library: Objects/metaC.def


GCNListTypeFlags

GCNListTypeFlags        record
    ; high bits hold the list type.
                            :15
    GCNLTF_SAVE_TO_STATE    :1  ; set to indicate that list should be 
                                ; saved to state.
GCNListTypeFlags        end

Library: Objects/metaC.def


GCNShutdownControlType

GCNShutdownControlType          etype word
    GCNSCT_SUSPEND          enum GCNShutdownControlType
    ; Task-switcher wishes to suspend the system.
    GCNSCT_SHUTDOWN         enum GCNShutdownControlType
    ; Task-switcher or other entity wishes to shut the system down to state.
    GCNSCT_UNSUSPEND        enum GCNShutdownControlType
    ; System has been unsuspended. No acknowledgement required.

Library: gcnlist.def


GCNStandardListType

GCNStandardListType         etype word, 0, 2
    GCNSLT_FILE_SYSTEM          enum GCNStandardListType
    ; This notification is sent out when the file system changes.

Library: gcnlist.def


GDCFeatures

GDCFeatures     record
    GDCF_NEW                    :1  ;replaced with switch documents in
                                    ;transparent mode
    GDCF_OPEN_CLOSE             :1
    GDCF_QUICK_BACKUP           :1
    GDCF_SAVE                   :1
    GDCF_SAVE_AS                :1
    GDCF_COPY                   :1
    GDCF_EXPORT                 :1
    GDCF_REVERT                 :1
    GDCF_RENAME                 :1  ;requires an auto-savable file
    GDCF_EDIT_USER_NOTES        :1
    GDCF_SET_TYPE               :1
    GDCF_SET_PASSWORD           :1
    GDCF_SAVE_AS_TEMPLATE       :1
    GDCF_SET_EMPTY_DOCUMENT     :1
    GDCF_SET_DEFAULT_DOCUMENT   :1
GDCFeatures     end

Library: Objects/gDocCtrl.def


GDCTask

GDCTask etype byte
    GDCT_NONE               enum GDCTask
    GDCT_NEW                enum GDCTask
    GDCT_OPEN               enum GDCTask
    GDCT_USE_TEMPLATE       enum GDCTask
    GDCT_SAVE_AS            enum GDCTask
    GDCT_COPY_TO            enum GDCTask
    GDCT_DIALOG             enum GDCTask
    GDCT_TYPE               enum GDCTask
    GDCT_PASSWORD           enum GDCTask

Library: gDocCtrl.def


GDCToolboxFeatures

GDCToolboxFeatures      record
    GDCTF_NEW_EMPTY         :1
    GDCTF_USE_TEMPLATE      :1
    GDCTF_OPEN              :1
    GDCTF_CLOSE             :1
    GDCTF_SAVE              :1
    GDCTF_QUICK_BACKUP      :1
GDCToolboxFeatures      end

Library: Objects/gDocCtrl.def


GDF_saved

GDF_saved       struct
    GDFS_nChars     word        ; Number of characters to draw
    GDFS_drawPos    PointWBFixed ; X/Y position to draw at
    GDFS_baseline   WBFixed     ; Baseline for text
    GDFS_limit      word        ; Limit for underline or strike-through
    GDFS_flags      HyphenFlags
    align           word
GDF_saved       ends 

This structure stores information about a graphics string and is used in the GrDrawTextString operation.

Library: text.def


GDF_vars

GDF_vars        struct
    GDFV_saved              GDF_saved
    GDFV_styleCallback      fptr.far
    GDFV_textOffset         dword
    GDFV_other              dword
    GDFV_textPointer        dword
    align                   word
GDF_vars        ends

This structure is passed to GrDrawTextField.

GDFV_saved stores the information to save for this graphics strings.

GDFV_styleCallback stores the callback routine for style changes.

Callback Routine Specifications:
Passed:
ss:bp - GDF_vars
bx:di - TextAttr buffer to fill in
si - Offset into the field.
cx - Zero if this is the first call
Return:
Buffer pointed at by bx:di filled in.
cx - Number of characters in this run
ds:si - Pointer to the text at offset si in the field.
May Destroy:
Nothing

GDFV_textOffset stores the offset to the start of the text to draw.

GDFV_other stores application specific data.

GDFV_textPointer stores the current text pointer (set by callback).

Library: text.def


GDICFeatures

GDICFeatures        record
    GDCF_OVERLAPPING_MAXIMIZED      :1
    GDCF_TILE                       :1
    GDCF_DISPLAY_LIST               :1
GDICFeatures        end

Library: Objects/gDCtrlC.def


GDICToolboxFeatures

GDICToolboxFeatures         record
    GDCTF_OVERLAPPING_MAXIMIZED     :1
    GDCTF_TILE                      :1
    GDCTF_DISPLAY_LIST              :1
GDICToolboxFeatures         end

Library: Objects/gDCtrlC.def


GECFeatures

GECFeatures     record
    GECF_UNDO           :1
    GECF_CUT            :1
    GECF_COPY           :1
    GECF_PASTE          :1
    GECF_SELECT_ALL     :1
    GECF_DELETE         :1
GECFeatures     end

Library: Objects/gEditCC.def


GECToolboxFeatures

GECToolboxFeatures      record
    GECTF_UNDO              :1
    GECTF_CUT               :1
    GECTF_COPY              :1
    GECTF_PASTE             :1
    GECTF_SELECT_ALL        :1
    GECTF_DELETE            :1
GECToolboxFeatures      end

Library: Objects/gEditCC.def


GenAppDoDialogParams

GenAppDoDialogParams            struct
    GADDP_dialog        StandardDialogParams
    GADDP_finishOD      optr                ; OD to send method to.
    GADDP_message       word                ; method to send.
GenAppDoDialogParams            ends

Library: Objects/gAppC.def


GenAppIACPConnection

GenAppIACPConnection    struc
    GAIACPC_connection      IACPConnection
    ; The IACP connection
    GAIACPC_appMode         word
    ; The type of connection - MSG_GEN_PROCESS_OPEN_APPLICATION or engine
    ; mode message)
GenAppIACPConnection    ends

Library:


GenAppUpdateFeaturesParams

GenAppUpdateFeaturesParams              struct
    GAUFP_featuresOn        word
    GAUFP_featuresChanged   word
    GAUFP_level             UIInterfaceLevel
    GAUFP_oldLevel          UIInterfaceLevel
    GAUFP_appOpening        word
    GAUFP_table             fptr    ; table of fptrs to GenAppUsabilityTuple
    GAUFP_tableLength       word
    GAUFP_levelTable        fptr.GenAppUsabilityTuple
    GAUFP_reparentObject    optr
    GAUFP_unReparentObject  optr
GenAppUpdateFeaturesParams  ends

Library: Objects/gAppC.def


GenAppUsabilityCommand

GenAppUsabilityCommand          etype byte
    GAUC_USABILITY              enum GenAppUsabilityCommand
    GAUC_RECALC_CONTROLLER      enum GenAppUsabilityCommand
    GAUC_REPARENT               enum GenAppUsabilityCommand
    GAUC_POPUP                  enum GenAppUsabilityCommand
    GAUC_TOOLBAR                enum GenAppUsabilityCommand
    GAUC_RESTART                enum GenAppUsabilityCommand

GAUC_USABILITY
Indicates that the controller should be usable if the feature is ON. (This is the default behavior.)

GAUC_RECALC_CONTROLLER
Indicates that the controller needs to have its features recalculated if the feature bit this table represents changes.

GAUC_REPARENT
Indicates that the controller should be moved to the GAUFP_reparentObject.

GAUC_POPUP
Indicates that the controller should be made a popup menu if the feature is ON (unless reverse is set).

GAUC_TOOLBAR
Indicates that the controller is a GenBoolean that corresponds to a toolbar state. Turning the feature off or on forces the GenBoolean to send an apply in addition to the normal behavior.

GAUC_RESTART
Indicates that this generic object needs to be restarted by setting it not-usable and then setting it usable.

Library: gAppC.def


GenAppUsabilityTuple

GenAppUsabilityTuple            struct
    GAUT_flags              GenAppUsabilityTupleFlags
    GAUT_objChunk           lptr
    GAUT_objResId           word
GenAppUsabilityTuple        ends

Library: Objects/gAppC.def


GenAppUsabilityTupleFlags

GenAppUsabilityTupleFlags               record
                                :2
    GAUTF_END_OF_LIST           :1
    GAUTF_OFF_IF_BIT_ON         :1
    GAUTF_COMMAND               GenAppUsabilityCommand:4
GenAppUsabilityTupleFlags               end

Library: Objects/gAppC.def


GenAttrs

GenAttrs        record
    GA_SIGNAL_INTERACTION_COMPLETE          :1
    GA_INITIATES_BUSY_STATE                 :1
    GA_INITIATES_INPUT_HOLD_UP              :1
    GA_INITIATES_INPUT_IGNORE               :1
    GA_READ_ONLY                            :1
    GA_KBD_SEARCH_PATH                      :1
    GA_TARGETABLE                           :1
    GA_NOTIFY_VISIBILITY                    :1
GenAttrs        end

GA_SIGNAL_INTERACTION_COMPLETE
This flag is set to indicate that this GenTrigger completes user interaction with the associated GenInteraction when activated. This causes a MSG_GEN_GUP_INTERACTION_COMMAND with IC_INTERACTION_COMPLETE to be sent to the GenTrigger itself (eventually making its way up to the associated GenInteraction) after the trigger’s action message is sent out. The specific UI (in the MSG_GEN_GUP_INTERACTION_COMMAND handler) will then determine whether this dialog should be dismissed or not.

This should be set for any ATTR_GEN_TRIGGER_INTERACTION_COMMAND trigger with IC_APPLY, IC_OK, IC_YES, IC_NO, or IC_STOP. (This flag should not be set for IC_RESET triggers, as their usefulness depends on the dialog staying on-screen after their activation.) GA_SIGNAL_INTERACTION_COMPLETE should also be set for any other HINT_SEEK_REPLY_BAR triggers that should dismiss the dialog after usage.

This flag should not be used for GIA_INITIATED_VIA_USER_DO_DIALOG GenInteractions as the command triggers in those dialogs, by definition, signal interaction completion.

GA_INITIATES_BUSY_STATE
Set for gadgets whose invocation starts a long enough operation that we’d like to change the cursor to show busy. Results in a MSG_GEN_APPLICATION_MARK_BUSY being sent to the app object, followed by a MSG_GEN_APPLICATION_MARK_NOT_BUSY being sent to the same object but via the application’s queue.

GA_INITIATES_INPUT_HOLD_UP
Set for gadgets whose invocation results in the application thread modifying the UI gadgtry slightly (typically enabling and disabling options). This flag causes input to be held up until the application has completed whatever its response is, so that the user cannot click twice on something that the app will disable after processing the first click.

Note: This functions stops input from being processed for all applications, so when using this bit, be sure that the gadget’s application method handler is quick, or at least does not perform any prolonged operation.

Initiating a trigger with this flag results in a MSG_GEN_APPLICATION_HOLD_UP_INPUT being sent to the application object, followed by a MSG_GEN_APPLICATION_RESUME_INPUT being sent to the same object but via the application’s queue.

GA_INITIATES_INPUT_IGNORE
This flags is set for gadgets whose invocation starts a long enough operation that we want to change the cursor to show that the app is busy and cannot take input. This flag causes the application to enter a modal state even if there isn’t an application-modal dialog box up (i.e. any activity is eaten with a beep).

Initiating a trigger with this flag results in a MSG_GEN_APPLICATION_IGNORE_INPUT being sent to the app object, followed by a MSG_GEN_APPLICATION_ACCEPT_INPUT being sent to the same object but via the app’s queue.

GA_READ_ONLY
If set, the generic object is presumed to be a read-only version of the gadget (i.e. a text object that is not editable, a scrolling list whose items cannot be selected, a non-editable GenRange, without up/down arrows, etc.

GA_KBD_SEARCH_PATH
Set if there is a reason to look for keyboard accelerators along this section of the generic tree.

GA_TARGETABLE
Set if this object is a target of some sort and can receive the “Target” exclusive within its target level. If set, most specific UI’s will automatically grab the Target for the object whenever the user interacts with it in some way, such as clicking on it.

GA_NOTIFY_VISIBILITY
Set if this object should send notification when it becomes visible and not visible. See the documentation with ATTR_GEN_VISIBILITY_DATA for more details.

Library: Objects/genC.def


GenBranchInfo

GenBranchInfo       record
    GBI_USABLE              :1
    GBI_BRANCH_MINIMIZED    :1
                            :14
GenBranchInfo       end

GBI_USABLE
This bit is cleared if any generic parent found is not usable.

GBI_BRANCH_MINIMIZED
This bit is set if the object is within a branch which the specific UI has set the SA_BRANCH_MINIMIZED in. (This flag is only valid if GBI_USABLE is set.)

Library: Objects/visC.def


GenControlBuildFlags

GenControlBuildFlags            record
    GCBF_SUSPEND_ON_APPLY                               :1
    GCBF_USE_GEN_DESTROY                                :1
    GCBF_SPECIFIC_UI                                    :1
    GCBF_CUSTOM_ENABLE_DISABLE                          :1
    GCBF_ALWAYS_UPDATE                                  :1
    GCBF_EXPAND_TOOL_WIDTH_TO_FIT_PARENT                :1
    GCBF_ALWAYS_INTERACTABLE                            :1
    GCBF_ALWAYS_ON_GCN_LIST                             :1
    GCBF_MANUALLY_REMOVE_FROM_ACTIVE_LIST               :1
    GCBF_IS_ON_ACTIVE_LIST                              :1
    GCBF_IS_ON_START_LOAD_OPTIONS                       :1
    GCBF_NOT_REQUIRED_TO_BE_ON_SELF_LOAD_OPTIONS_LIST   :1
    GCBF_DO_NOT_DESTROY_CHILDREN_WHEN_CLOSED            :1
                                                        :3
GenControlBuildFlags            end

GCBF_SUSPEND_ON_APPLY
This flag indicates that the object should be sent MSG_META_{SUSPEND,UNSUSPEND} at the beginning and end of MSG_GEN_APPLY.

GCBF_USE_GEN_DESTROY
This flag specifies that unused objects cannot be destroyed using LMemFree.

GCBF_SPECIFIC_UI
This flag specifies that the controller is at least partly implemented in the specific UI and therefore needs special treatment.

GCBF_CUSTOM_ENABLE_DISABLE
This flag specifies that the GenControl should not set itself enabled or disabled based on MSG_GEN_CONTROL_ENABLE_DISABLE.

Note: controllers that have this bit set and contain keyboard shortcuts must be marked GS_ENABLED initially.

GCBF_ALWAYS_UPDATE
This flag forces MSG_GEN_CONTROL_UPDATE_UI to always be sent, even if the data block is 0.

GCBF_EXPAND_TOOL_WIDTH_TO_FIT_PARENT
This flag expands the width of the tool control so that children can take advantage of extra space.

GCBF_ALWAYS_INTERACTABLE
This flag indicates that the controller has set its interactable flag; this forces the controller to remain on its GCN lists, even if no part of it is visible. This flag must be set in conjunction with GCBF_IS_ON_ACTIVE_LIST.

GCBF_ALWAYS_ON_GCN_LIST
This flag specifies that the controller should remain on the specified GCN lists at all times. This flag must be set in conjunction with GCBF_IS_ON_ACTIVE_LIST.

GCBF_MANUALLY_REMOVE_FROM_ACTIVE_LIST
This flag specifies that the controller should not be removed from the active list in the MSG_META_DETACH handler.

GCBF_IS_ON_ACTIVE_LIST
This flag specifies that this controller is on the MGCNLT_ACTIVE_LIST.

GCBF_IS_ON_START_LOAD_OPTIONS_LIST
This flag is set if the controller is on the GAGCNLT_STARTUP_LOAD_OPTIONS list.

GCBF_NOT_REQUIRED_TO_BE_ON_SELF_LOAD_OPTIONS_LIST
This flag is set if the controller does not have to be on the GAGCNLT_SELF_LOAD_OPTIONS GCN list.

GCBF_DO_NOT_DESTROY_CHILDREN_WHEN_CLOSED
This controller’s children will not be discarded when it is closed.

Library: Objects/gCtrlC.def


GenControlBuildInfo

GenControlBuildInfo         struct
    ;
    ; General information
    ;
    GCBI_flags              GenControlBuildFlags
    GCBI_initFileKey        fptr.char           ;key to store data in
    GCBI_gcnList            fptr.GCNListType    ;list of gcn lists to add to
    GCBI_gcnCount           word                ;size of gcn list
    GCBI_notificationList   fptr.NotificationType ;list of supported types
    GCBI_notificationCount  word
    GCBI_controllerName     optr
    ;
    ; Information for building normal visual representation
    ;
    GCBI_dupBlock           hptr                ;handle of UI resource to
                                                ;duplicate or 0 for none
    GCBI_childList          fptr.GenControlChildInfo
    GCBI_childCount         word                ;number of children to add
    GCBI_featuresList       fptr.GenControlFeaturesInfo
    GCBI_featuresCount      word                ;size of features list
    GCBI_features           word                ;bitmask for default features
    ;
    ;Information for building toolbox
    ;
    GCBI_toolBlock          hptr                ;handle of UI resource 
                                                ;containing tools
    GCBI_toolList           fptr.GenControlChildInfo
    GCBI_toolCount          word                ;number of tools to add
    GCBI_toolFeaturesList   fptr.GenControlFeaturesInfo
    GCBI_toolFeaturesCount  word                ;size of tools features list
    GCBI_toolFeatures       word                ;bitmask for default features
    GCBI_helpContext        fptr.char           ;if non-zero then add 
                                                ;ATTR_GEN_HELP_CONTEXT with
                                                ;this string being the context
    GCBI_reserved   byte 8 dup (0)              ;reserved for future expansion
GenControlBuildInfo         ends

Library: Objects/gCtrlC.def


GenControlChildFlags

GenControlChildFlags            record
    GCCF_NOTIFY_WHEN_ADDING         :1
    GCCF_ALWAYS_ADD                 :1
    GCCF_IS_DIRECTLY_A_FEATURE      :1
GenControlChildFlags            end

Library: Objects/gCtrlC.def


GenControlChildInfo

GenControlChildInfo             struct
    GCCI_object             lptr
    GCCI_featureMask        word
    GCCI_flags              GenControlChildFlags
GenControlChildInfo             ends

GCCI_featureMask stores a bitmask of the feature that this object exhibits or a bitmask of the combination of tools that compose this object.

Library: Objects/gCtrlC.def


GenControlFeatureFlags

GenControlFeatureFlags          record
                            :8
GenControlFeatureFlags          end

Library: Objects/gCtrlC.def


GenControlFeaturesInfo

GenControlFeaturesInfo          struct
    GCFI_object             lptr
    GCFI_name               optr
    GCFI_flags              GenControlFeatureFlags
GenControlFeaturesInfo          ends

GCFI_object stores the lptr of the controller’s associated object.

GCFI_name stores an optr to a reference chunk. This chunk contains a reference to the name of the feature (if the feature is allowed be changed).

Library: Objects/gCtrlC.def


GenControlInteractableFlags

GenControlInteractableFlags             record
    GCIF_CONTROLLER     :1  ;Controller object itself is interactable and
                            ;may need to be enabled/disabled
                        :13
    GCIF_TOOLBOX_UI     :1  ;Toolbox UI is interactable
    GCIF_NORMAL_UI      :1  ;Normal UI is interactable
GenControlInteractableFlags             end

Library: Objects/gCtlC.def


GenControlScalableUICommand

GenControlScalableUICommand             etype byte
    CSUIC_SET_NORMAL_FEATURES_IF_APP_FEATURE_ON enum GenControlScalableUICommand
    ; if (GCSUIE_appFeature is ON)
    ;   menu features = GCSUIE_newFeatures
    ;
    GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_FEATURE_ON enum 
    GenControlScalableUICommand
    ; if (GCSUIE_appFeature is ON)
    ;   tool features = GCSUIE_newFeatures
    ;
    GCSUIC_SET_NORMAL_FEATURES_IF_APP_FEATURE_OFF enum 
    GenControlScalableUICommand
    ; if (GCSUIE_appFeature is OFF)
    ;   menu features = GCSUIE_newFeatures
    ;
    GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_FEATURE_OFF enum 
    GenControlScalableUICommand
    ; if (GCSUIE_appFeature is OFF)
    ;   tool features = GCSUIE_newFeatures
    ;
    GCSUIC_SET_NORMAL_FEATURES_IF_APP_LEVEL enum GenControlScalableUICommand
    ; if (app level >= GCSUIE_appFeature)
    ;   menu features = GCSUIE_newFeatures
    ;
    GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_LEVEL enum GenControlScalableUICommand
    ; if (app level >= GCSUIE_appFeature)
    ;   tool features = GCSUIE_newFeatures
    ;
    GCSUIC_ADD_NORMAL_FEATURES_IF_APP_FEATURE_ON enum 
    GenControlScalableUICommand
    ; if (GCSUIE_appFeature is ON)
    ;   menu features |= GCSUIE_newFeatures
    ;
    GCSUIC_ADD_TOOLBOX_FEATURES_IF_APP_FEATURE_ON enum 
    GenControlScalableUICommand
    ; if (GCSUIE_appFeature is ON)
    ;   tool features |= GCSUIE_newFeatures

This type is passed with the GenControlScalableUIEntry structure.

GCSUIC_SET_NORMAL_FEATURES_IF_APP_FEATURE_ON
If the particular feature within GCSUIE_appFeature is set, then the normal (menu) features within GCSUIE_newFeatures are set absolutely. If you would rather have these new features added to already existing features, use GCSUIC_ADD_NORMAL_FEATURES_IF_APP_FEATURE_ON.

GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_FEATURE_ON
If the particular feature within GCSUIE_appFeature is set, then the toolbox features within GCSUIE_newFeatures are set absolutely. If you would rather have these new features added to already existing features, use GCSUIC_ADD_TOOLBOX_FEATURES_IF_APP_FEATURE_ON.

GCSUIC_SET_NORMAL_FEATURES_IF_APP_FEATURE_OFF
If the particular feature within GCSUIE_appFeature is clear, then the normal (menu) features within GCSUIE_newFeatures are set absolutely.

GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_FEATURE_OFF
If the particular feature within GCSUIE_appFeature is clear, then the toolbox features within GCSUIE_newFeatures are set absolutely.

GCSUIC_SET_NORMAL_FEATURES_IF_APP_LEVEL
If (app level >= GCSUIE_appFeature) then the normal (menu) features within GCSUIE_newFeatures are set absolutely.

GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_LEVEL
If (app level >= GCSUIE_appFeature) then the toolbox features within GCSUIE_newFeatures are set absolutely.

GCSUIC_ADD_NORMAL_FEATURES_IF_APP_FEATURE_ON
If the particular feature within GCSUIE_appFeature is set, then the normal (menu) features within GCSUIE_newFeatures are added to any already existing features. If you would rather have these new features set absolutely, use GCSUIC_SET_NORMAL_FEATURES_IF_APP_FEATURE_ON.

GCSUIC_ADD_TOOLBOX_FEATURES_IF_APP_FEATURE_ON
If the particular feature within GCSUIE_appFeature is set, then the toolbox features within GCSUIE_newFeatures are added to any already existing features. If you would rather have these new features set absolutely, use GCSUIC_SET_TOOLBOX_FEATURES_IF_APP_FEATURE_ON.

Library: gCtlC.def


GenControlScalableUIEntry

GenControlScalableUIEntry               struct
    GCSUIE_command          GenControlScalableUICommand
    GCSUIE_appFeature       word            ;feature bit to check.
    GCSUIE_newFeatures      word            ;new features bits to use.
GenControlScalableUIEntry               ends

Library: Objects/gCtrlC.def


GenControlScanInfo

GenControlScanInfo          struct
    GCSI_userAdded              word
    GCSI_userRemoved            word
    GCSI_appRequired            word
    GCSI_appProhibited          word
GenControlScanInfo          ends

Library: Objects/gCtrlC.def


GenControlStatusChange

GenControlStatusChange          record
                                            :13
    GCSF_HIGHLIGHTED_TOOLGROUP_SELECTED     :1
    GCSF_TOOLBOX_FEATURES_CHANGED           :1
    GCSF_NORMAL_FEATURES_CHANGED            :1
GenControlStatusChange          end

GCSF_HIGHLIGHTED_TOOLGROUP_SELECTED
Set if user has clicked, or in some other manner, “selected” the toolgroup of a particular controller. This flag is used by GenToolControl to provide the shortcut for the user of scrolling the ToolGroup list to this selection.

GCSF_TOOLBOX_FEATURES_CHANGED
This flag is set if toolbox features have been added or removed

GCSF_NORMAL_FEATURES_CHANGED
This flag is set if normal features have been added or removed.

Library: Objects/gCtrlC.def


GenControlUIType

GenControlUIType        etype word
    GCUIT_NORMAL            enum    GenControlUIType
    GCUIT_TOOLBOX           enum    GenControlUIType

GCUIT_NORMAL
This type indicates that the “normal UI” components are set. Generally, this includes menu items or features within a dialog box.

GCUIT_TOOLBOX
This type indicates that the toolbox components are set. A toolbox generally consists of “Tiny” sized triggers or items within popup lists.

Library: gCtlC.def


GenControlUpdateUIParams

GenControlUpdateUIParams        struct
    GCUUIP_manufacturer             ManufacturerID
    GCUUIP_changeType               word
    GCUUIP_dataBlock                hptr
    GCUUIP_features                 word
    GCUUIP_toolboxFeatures          word
    GCUUIP_childBlock               hptr
    GCUUIP_toolBlock                hptr
GenControlUpdateUIParams        ends

GCUUIP_features stores the features list from the GenControl’s temporary instance data TEMP_GEN_CONTROL_INSTANCE. This entry is clear if GCIF_NORMAL_UI is not set in TEMP_GEN_CONTROL_INSTANCE.

GCUUIP_toolboxFeatures stores the tools features list from the GenControl’s TEMP_GEN_CONTROL_INSTANCE. This entry is clear if GCIF_TOOLBOX_UI is not set in TEMP_GEN_CONTROL_INSTANCE.

GCUUIP_childBlock stores the optr of the child block (from TEMP_GEN_CONTROL_INSTANCE).

Library: Objects/gCtrlC.def


GenControlUserData

GenControlUserData          struc
    GCUD_flags                      GenControlUserFlags
    GCUD_userAddedUI                word
    GCUD_userRemovedUI              word
    GCUD_userAddedToolboxUI         word
    GCUD_userRemovedToolboxUI       word
GenControlUserData          ends

Library: Objects/gCtrlC.def


GenControlUserFlags

GenControlUserFlags         record
                                :14
    GCUF_USER_TOOLBOX_UI        :1
    GCUF)USER_UI                :1
GenControlUserFlags         end

Library: Objects/gCtrlC.def


GenDefaultMonikerType

GenDefaultMonikerType       etype word
    ; monikers used for various levels in the Set User Level dialog box.
    GDMT_LEVEL_0                enum GenDefaultMonikerType
    GDMT_LEVEL_1                enum GenDefaultMonikerType
    GDMT_LEVEL_2                enum GenDefaultMonikerType
    GDMT_LEVEL_3                enum GenDefaultMonikerType
    ;
    ; moniker used for Help triggers in dialog boxes, etc.
    GDMT_HELP                   enum GenDefaultMonikerType
    ;
    ; moniker used for Help triggers in the title bar of the primary.
    GDMT_HELP_PRIMARY           enum GenDefaultMonikerType

Library: Objects/genC.def


GenDisplayAttrs

GenDisplayAttrs     record
    GDA_USER_DISMISSABLE        :1
                                :7
GenDisplayAttrs     end

GDA_USER_DISMISSABLE
This flag is set if user is allowed to dismiss this window. Dismissing the display will close the window. A GenDisplay’s user dismissable behavior does not affect iconification operations. This attribute is implemented in some specific UIs (e.g. Open Look) by providing a push-pin which may be unpinned. Other specific UIs (e.g. CUA) provide a “CLOSE” option in the system menu.

Library: Objects/gDispC.def


GenDisplayControlAttributes

GenDisplayControlAttributes             record
    GDCA_MAXIMIZED_NAME_ON_PRIMARY          :1
                                            :7
GenDisplayControlAttributes             end

GDCA_MAXIMIZED_NAME_ON_PRIMARY
This flag sets the moniker of a maximized display is the long term moniker of the primary.

Library: Objects/gDCtrlC.def


GenDocumentAttrs

GenDocumentAttrs        record
    ;
    ; These bits reflect permanent attributes of the document
    ;
    GDA_READ_ONLY               :1  ;File is opened read-only
    GDA_READ_WRITE              :1  ;File is opened read-write
    GDA_FORCE_DENY_WRITE        :1  ;File is opened "force deny write"
    GDA_SHARED_MULTIPLE         :1  ;File opened "shared multiple"
    GDA_SHARED_SINGLE           :1  ;File opened "shared single"
    ;
    ; These bits reflect temporary states of the document - these bits are set
    ; by the document control object
    ;
    GDA_UNTITLED                :1  ;File does not have a real (user) name
    GDA_DIRTY                   :1  ;File has been modified
    GDA_CLOSING                 :1  ;File is being closed
    GDA_ATTACH_TO_DIRTY_FILE    :1  ;File is attached to a dirty file
    GDA_SAVE_FAILED             :1  ;"Save" failed, revert is not possible
    GDA_OPENING                 :1  ;Document is being opened
    GDA_AUTO_SAVE_STOPPED       :1  ;Auto-save has been stopped
    GDA_MODEL                   :1  ;Document has the model exclusive
    GDA_ON_WRITABLE_MEDIA       :1
    GDA_BACKUP_EXISTS           :1  ;A document backup file exists
    ;
    ; These bits reflect temporary states of the document - these bits are set
    ; by the application
    ;
    GDA_PREVENT_AUTO_SAVE       :1  ;Do not auto save (temporary state set
                                    ;by the application)
GenDocumentAttrs        end

Library: Objects/gDocC.def


GenDocumentChangePasswordParams

GenDocumentChangePasswordParams                 struct
    GDCPP_password          char (MAX_PASSWORD_SIZE+2) dup (?)
GenDocumentChangePasswordParams                 ends

Library: Objects/gDocC.def


GenDocumentControlAttrs

GenDocumentControlAttrs         record
    ;
    ; File attributes
    ;
    GDCA_MULTIPLE_OPEN_FILES    :1  ; Allows multiple files to be opened
    GDCA_MODE                   GenDocumentControlMode:2
    GDCA_DOS_FILE_DENY_WRITE    :1  ; If GDCA_VM_FILE is not set, then open
                                    ; a standard DOS file deny-write
    GDCA_VM_FILE                :1  ; Documents stored in VM files
    GDCA_NATIVE                 :1  ; If GDCA_VM_FILE is not set, documents
                                    ; are stored in a format native to the
                                    ; file system
    GDCA_SUPPORTS_SAVE_AS_REVERT :1 ; Document uses "save as"
    ;
    ; Current state
    ;
    GDCA_DOCUMENT_EXISTS        :1  ; At least one document exists
    GDCA_CURRENT_TASK GDCTask   :4  ; Current task being performed
    GDCA_DO_NOT_SAVE_FILES      :1  ; Working model support...
    GDCA_FORCE_DEMAND_PAGING    :1  ; Forces demand-paging of documents, 
                                    ; even on systems that force documents
                                    ; completely into memory.
                                :2
GenDocumentControlAttrs         end

Library: Objects/gDocCtrl.def


GenDocumentControlFeatures

GenDocumentControlFeatures              record
    ; File features
    GDCF_READ_ONLY_SUPPORTS_SAVE_AS_REVERT          :1
    GDCF_SINGLE_FILE_CLEAN_CAN_NEW_OPEN             :1
    GDCF_SUPPORTS_TEMPLATES                         :1
    GDCF_SUPPORTS_USER_SETTABLE_EMPTY_DOCUMENT      :1
    GDCF_SUPPORTS_USER_SETTABLE_DEFAULT_DOCUMENT    :1
    GDCF_SUPPORTS_USER_MAKING_SHARED_DOCUMENTS      :1
    GDCF_NAME_ON_PRIMARY                            :1
                                                    :9
GenDocumentControlFeatures              end

GDCF_READ_ONLY_SUPPORTS_SAVE_AS_REVERT
If set, the document control allows read-only files to be edited.

GDCF_SINGLE_FILE_CLEAN_CAN_NEW_OPEN
If set, the document control allows the user to use “new” or “open” to create another document even if multiple files are not allowed. The current document must be clean.

GDCF_SUPPORTS_TEMPLATES
If set, the document control supports template documents.

Library: Objects/gDocCtrl.def


GenDocumentControlMode

GenDocumentControlMode      etype byte
    GDCM_VIEWER                 enum GenDocumentControlMode
    GDCM_SHARED_SINGLE          enum GenDocumentControlMode
    GDCM_SHARED_MULTIPLE        enum GenDocumentControlMode

Library: Objects/gDocCtrl.def


GenDocumentGetVariableParams

GenDocumentGetVariableParams                struct
    GDGVP_position          PointDWord              ;object position
    GDGVP_buffer            fptr.char               ;buffer for result
    GDGVP_graphic           fptr.VisTextGraphic     ;graphic
    GDGVP_object            optr                    ;source object
GenDocumentGetVariableParams                ends

Library: Objects/gDocC.def


GenDocumentGroupAttrs

GenDocumentGroupAttrs           record
    GDGA_VM_FILE                            :1  ;Documents stored in VM files
    GDGA_NATIVE                             :1  ;If document not in VM file,
                                                ;then should be in format
                                                ;native to file system.
    GDGA_SUPPORTS_AUTO_SAVE                 :1  ;Use auto-save
    GDGA_AUTOMATIC_CHANGE_NOTIFICATION      :1  ;Automatically provide change
                                                ;notification
    GDGA_AUTOMATIC_DIRTY_NOTIFICATION       :1  ;Use automatic mechanism for
                                                ;VM dirty notification
    GDGA_APPLICATION_THREAD                 :1  ;Set if AppDocumentControl runs
                                                ;in the application thread
    GDGA_VM_FILE_CONTAINS_OBJECTS           :1  ;Set if appropriate VM
                                                ;attributes for storing objects
                                                ;should be set in the VM file
    GDGA_CONTENT_DOES_NOT_MANAGE_CHILDREN   :1  ;VisContent does not manage its
                                                ;children
    GDGA_LARGE_CONTENT                      :1  ;VisContent uses large model
    GDGA_AUTOMATIC_UNDO_INTERACTION         :1  ;Sends out undo set-context
                                                ; messages automatically
                                            :6
GenDocumentGroupAttrs           end

Library: Objects/gDocGrpC.def


GenDocumentOperation

GenDocumentOperation            etype word
    GDO_NORMAL              enum GenDocumentOperation
    GDO_SAVE_AS             enum GenDocumentOperation
    GDO_REVERT              enum GenDocumentOperation
    GDO_REVERT_QUICK        enum GenDocumentOperation
    GDO_ATTACH              enum GenDocumentOperation
    GDO_DETACH              enum GenDocumentOperation
    GDO_NEW                 enum GenDocumentOperation
    GDO_OPEN                enum GenDocumentOperation
    GDO_SAVE                enum GenDocumentOperation
    GDO_CLOSE               enum GenDocumentOperation
    GDO_AUTO_SAVE           enum GenDocumentOperation

Library: Objects/gDocC.def


GenDocumentType

GenDocumentType     etype word
    GDT_NORMAL                  enum GenDocumentType
    GDT_READ_ONLY               enum GenDocumentType
    GDT_TEMPLATE                enum GenDocumentType
    GDT_READ_ONLY_TEMPLATE      enum GenDocumentType
    GDT_PUBLIC                  enum GenDocumentType
    GDT_MULTI_USER              enum GenDocumentType

Library: Objects/gDocC.def


GenDynamicListPosition

GenDynamicListPosition          etype word
    GDLP_FIRST          enum GenDynamicListPosition, 00000h
    GDLP_LAST           enum GenDynamicListPosition, 0ffffh

Library: Objects/gDListC.def


GeneralConsumerModeFlags

GeneralConsumerModeFlags        record
                                    :2
    GCMF_LEFT_ICON      GCMIcon:3   ; Indicates which icon to show on 
                                    ; the left side of the title bar.
    GCMF_RIGHT_ICON     GCMIcon:3   ; Indicates which icon to show on 
                                    ; the right side of the title bar.
GeneralConsumerModeFlags        end

Library: Objects/genC.def


GeneralEvent

GeneralEvent        etype word, 0, 2
    GE_NO_EVENT                 enum GeneralEvent
    GE_END_OF_SONG              enum GeneralEvent
    GE_SET_PRIORITY             enum GeneralEvent
    GE_SET_TEMPO                enum GeneralEvent
    GE_SEND_NOTIFICATION        enum GeneralEvent
    GE_V_SEMAPHORE              enum GeneralEvent

This types stores events that are required in the sound stream, but are not actually involved in the generation of specific sounds.

GE_NO_EVENT
This event generates exceptionally long durations.

GE_END_OF_SONG
This event marks the end of the song. Any event or delta-time after an EOS mark will be ignored.

GE_SET_PRIORITY
This event changes the priority of the stream. All following events will be evaluated at that priority.

GE_SET_TEMPO
This event changes the tempo of the song from that point onward. Any delta-Tempo following that event will use the new value as the # of msec per 64th beats.

GE_SEND_NOTIFICATION
This event causes the stream to send a given message to a given object. The message will be placed at the end of the queue.

GE_V_SEMAPHORE
This event causes the stream to V the semaphore handle.

Library: sound.def


GenFieldFlags

GenFieldFlags       record
    GFF_DETACHING               :1
    GFF_LOAD_BITMAP             :1
    GFF_RESTORING_APPS          :1
    GFF_NEEDS_WORKSPACE_MENU    :1
    GFF_HAS_DEFAULT_LAUNCHER    :1
    GFF_NEED_DEFAULT_LAUNCHER   :1
    GFF_QUIT_ON_CLOSE           :1
    GFF_LOAD_DEFAULT_LAUNCHER_WHEN_NEXT_PROCESS_EXITS   :1
GenFieldFlags       end

These flags affect one of the system objects - the GenField object. As such, there will be no need for your application to set or alter these flags.

GFF_DETACHING
This flag is set if MSG_META_DETACH has been sent to the GenField object. This flag is cleared when the detach is complete.

GFF_LOAD_BITMAP
This flag is set if we want to draw a bitmap on this field.

GFF_RESTORING_APPS
This flag is set if we are currently restoring applications.

GFF_NEEDS_WORKSPACE_MENU
This flag is set if an application express menu is needed for the field.

GFF_HAS_DEFAULT_LAUNCHER
This flag is set if this field should start a default launcher. The name of this launcher is stored in GEOS.INI file under key ‘defaultLauncher’ and category specified by ATTR_GEN_INIT_FILE_CATEGORY.

GFF_NEED_DEFAULT_LAUNCHER
Set if the field detached because it had no focusable apps available, so we need to start the default launcher when we restore it.

GFF_QUIT_ON_CLOSE
Set if the field is in the process of doing a `quitOnClose’.

GFF_LOAD_DEFAULT_LAUNCHER_WHEN_NEXT_PROCESS_EXITS
We tried to load the default launcher, but couldn’t because the system was too busy - wait until a process exits, then try again.

Library: Objects/gFieldC.def


GenFilePath

GenFilePath     struct
    GFP_disk        word SP_TOP
    GFP_path        PathName
GenFilePath     ends

GFP_disk stores the handle of the disk on which the path resides. This may be initialized to a StandardPath constant.

GFP_path stores the absolute path (or relative path if GFP_disk is a StandardPath constant) to the directory.

Library: Objects/genC.def


GenFileSelectorEntryFlags

GenFileSelectorEntryFlags               record
    GFSEF_TYPE              GenFileSelectorEntryType:2
    GFSEF_OPEN              :1
    GFSEF_NO_ENTRIES        :1
    GFSEF_ERROR             :1
    GFSEF_TEMPLATE          :1
    GFSEF_SHARED_MULTIPLE   :1
    GFSEF_SHARED_SINGLE     :1
    GFSEF_READ_ONLY         :1
    GFSEF_PARENT_DIR        :1
                            :6
GenFileSelectorEntryFlags               end

GFSEF_TYPE
This flags stores the type of entry selected.

GFSEF_OPEN
The selection should be opened. (User has double-clicked).

GFSEF_NO_ENTRIES
No entries are within the file selector’s list.

GFSEF_ERROR
The file selector encountered an error opening a selection entry (through MSG_GEN_FILE_SELECTOR_OPEN_ENTRY or a double-click).

GFSEF_TEMPLATE
This flag is set if the file is a template (from GFHF_TEMPLATE).

GFSEF_SHARED_MULTIPLE
This flag is set if the file is shared with multiple writers (from GFHF_SHARED_MULTIPLE).

GFSEF_SHARED_SINGLE
This flag is set if the file is shared with a single writer (from GFHF_SHARED_SINGLE).

GFSEF_READ_ONLY
This flag is set if the file is read-only (from FA_RDONLY).

GFSEF_PARENT_DIR
This flag is set if the current selection is the parent directory entry (first entry).

Library: Objects/gFSelC.def


GenFileSelectorEntryType

GenFileSelectorEntryType            etype byte, 0
    GFSET_FILE              enum GenFileSelectorEntryType
    GFSET_SUBDIR            enum GenFileSelectorEntryType
    GFSET_VOLUME            enum GenFileSelectorEntryType

Library: Objects/gFSelC.def


GenFileSelectorFileAttrs

GenFileSelectorFileAttrs                struct
    GFSFA_match         FileAttrs   ; Attributes that must match
    GFSFA_mismatch      FileAttrs   ; Attributes that must not match
GenFileSelectorFileAttrs                ends

Library: Object/gFSelC.def


GenFileSelectorGeodeAttrs

GenFileSelectorGeodeAttrs               struct
    GFSGA_match         GeodeAttrs  ; Attributes that must match
    GFSGA_mismatch      GeodeAttrs  ; Attributes that must not match
GenFileSelectorGeodeAttrs               ends

Library: Objects/gFSelC.def


GenFileSelectorScalableUICommand

GenFileSelectorScalableUICommand                    etype byte
    GFSSUIC_SET_FEATURES_IF_APP_FEATURE_ON      enum 
    GenFileSelectorScalableUICommand
    GFSSUIC_SET_FEATURES_IF_APP_FEATURE_OFF     enum 
    GenFileSelectorScalableUICommand
    GFSSUIC_ADD_FEATURES_IF_APP_FEATURE_ON      enum 
    GenFileSelectorScalableUICommand
    GFSSUIC_SET_FEATURES_IF_APP_LEVEL           enum 
    GenFileSelectorScalableUICommand
    GFSSUIC_ADD_FEATURES_IF_APP_LEVEL           enum 
    GenFileSelectorScalableUICommand

Library: Objects/gFSelcC.def


GenFileSelectorScalableUIEntry

GenFileSelectorScalableUIEntry                  struct
    GFSSUIE_command             GenFileSelectorScalableUICommand
    GFSSUIE_appFeature          word
    GFSSUIE_fsFeatures          FileSelectorAttrs
GenFileSelectorScalableUIEntry                  ends

Library: Objects/gFSelC.def


GenFileSelectorType

GenFileSelectorType         etype byte
    GFST_DOCUMENTS              enum GenFileSelectorType
    GFST_EXECUTABLES            enum GenFileSelectorType
    GFST_NON_GEOS_FILES         enum GenFileSelectorType
    GFST_ALL_FILES              enum GenFileSelectorType

Library: Objects/gDocCtrl.def


GenFindObjectWithMonikerFlags

GenFindObjectWithMonikerFlags               record
    GFOWMF_EXACT_MATCH              :1
    GFOWMF_SKIP_THIS_NODE           :1
                                    :14
GenFindObjectWithMonikerFlags               end

GFOWMF_EXACT_MATCH
If set, text within the searched moniker must match the passed text completely. The passed text will not match if it represents only a portion of an object’s moniker text.

GFOWMF_SKIP_THIS_NODE
If set, the search operation will skip this object and just check objects below it in the generic tree.

Library: Objects/genC.def


GenGadgetAttributes

GenGadgetAttributes         record
    GGA_COMPOSITE       :1
                        :7
GenGadgetAttributes         end

GGA_COMPOSITE
This flag is set if gadget object should become a VisComp. If set then all generic children will become visual children.

Library: Objects/gGadgetC.def


GenInteractionAttrs

GenInteractionAttrs         record
    GIA_NOT_USER_INITIATABLE            :1
    GIA_INITIATED_VIA_USER_DO_DIALOG    :1
    GIA_MODAL                           :1
    GIA_SYS_MODAL                       :1
                                        :4
GenInteractionAttrs         end

GIA_NOT_USER_INITIATABLE
This flag is set to indicate that a dialog GenInteraction should build an activation trigger that brings up the dialog. Instead, the dialog must be brought up with MSG_GEN_INTERACTION_INITIATE. In this case, the GenInteraction should be a child of GenPrimary or GenApplication.

GIA_INITIATED_VIA_USER_DO_DIALOG
This flag is set to indicate that a dialog GenInteraction will be displayed using the routine UserDoDialog. Input hold up, ignore, & busy states are overridden by default to allow users to interact with this type of GenInteraction (and prevent user-lock-out which could potentially occur in these cases).

GIA_MODAL
This flag is set to indicate that a dialog GenInteraction needs to be modal. This modality indicates that the application has been coded in such a way that the it cannot allow a dialog box to stay on-screen while allowing the user to work in other areas of the application. (E.g. selection information in the dialog box is not updated if the user were to change the selection).

GIA_SYS_MODAL
This flag sets a dialog GenInteraction modal at the system level. Only use this flag if no other way can be found to perform the required operation, as it will halt input to all other parts of the system.

Library: Objects/gInterC.def


GenInteractionDiscardInfo

GenInteractionDiscardInfo       struct
    GIDI_inUse              word
    ; If non-zero, the interaction is onscreen, or is about to go
    ; onscreen, so it should not be discarded.
    GIDI_discardCount       word
    ; Count of MSG_GEN_DESTROY_AND_DISCARD_BLOCK messages that have to
    ; come in before the block is discarded.
GenInteractionDiscardInfo       ends

Library: gInterC.def


GenInteractionGroupType

GenInteractionGroupType         etype byte
GIGT_FILE_MENU          enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the File menu. Can
; contain DocumentControl or other file-related commands.
;
GIGT_EDIT_MENU          enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the Edit menu. Can
; contain EditControl or other edit commands.
;
GIGT_VIEW_MENU          enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the View menu. Can
; contains ViewControl or other view commands.
;
GIGT_OPTIONS_MENU       enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the Options menu. Can
; contain application options.
;
GIGT_WINDOW_MENU        enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the Window menu. Can
; contain GenDisplayControl or other window commands.
;
GIGT_HELP_MENU          enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the Help menu.
;
GIGT_PRINT_GROUP        enum        GenInteractionGroupType
; Set to indicate that this GenInteraction is the Print group. Can
; contain PrintControl or other print commands.
;

GIGT_FILE_MENU
This indicates that this GenInteraction acts as the File menu. The GenInteraction can contain a DocumentControl or other file-related commands.

GIGT_EDIT_MENU
This indicates that this GenInteraction acts as the Edit menu. The GenInteraction can contain an EditControl or other edit commands.

GIGT_VIEW_MENU
This indicates that this GenInteraction acts as the View menu.The GenInteraction can contain a ViewControl or other view commands.

GIGT_OPTIONS_MENU
This indicates that this GenInteraction acts as the Options menu. The GenInteraction can contain application options.

GIGT_WINDOW_MENU
This indicates that this GenInteraction acts as the Window menu. The GenInteraction can contain a GenDisplayControl or other window commands.

GIGT_HELP_MENU
This indicates that this GenInteraction acts as the Help menu.

GIGT_PRINT_GROUP
This indicates that this GenInteraction acts as the Print group. The GenInteraction can contain a PrintControl or other print commands.

Library: Objects/gInterC.def


GenInteractionType

GenInteractionType      etype byte
    GIT_ORGANIZATIONAL          enum GenInteractionType
    GIT_PROPERTIES              enum GenInteractionType
    GIT_PROGRESS                enum GenInteractionType
    GIT_COMMAND                 enum GenInteractionType
    GIT_NOTIFICATION            enum GenInteractionType
    GIT_AFFIRMATION             enum GenInteractionType
    GIT_MULTIPLE_RESPONSE       enum GenInteractionType

GIT_ORGANIZATIONAL
This indicates that this GenInteraction is only used for grouping its children. This type has two chief uses:

  1. For geometry purposes.
    Collecting a group of generic objects together under a GenInteraction allows you to specify geometry for that group via hints. The group will be dealt with as a single entity for geometry purposes.

  2. For holding other GenInteractions.
    Organizational interactions can act as a place-holder to put non-user-initiatable dialogs. This leaves the dialogs in the generic tree in a non-visible location where they can be initiated. As you generally don’t want this organizational interaction to be visible itself, you will most likely want to mark it as a GIV_DIALOG and GIA_NOT_USER_INITIATABLE as well. (Optimization note: This also has the side effect of avoiding the loading in of the resources that the child dialog boxes reside in, should this object receive MSG_SPEC_BUILD.) ;

This type does not support a reply bar, even if GIV_DIALOG is used to specify that this GenInteraction should become a dialog box. OSF/Motif will ensure that there is a way for the user to dismiss any GIT_ORGANIZATIONAL interaction that does becomes a visible dialog.

GIT_PROPERTIES
This indicates that this interaction contains UI used for object properties. This type supports the IC_APPLY and IC_RESET InteractionCommand types which can be used for apply and reset functionality. If the interaction is built as a dialog box, the specific UI (such as OSF/Motif) will create “Apply” and “Close” triggers that reference the IC_APPLY and IC_DISMISS interaction commands.

In OSF/Motif, the following table shows the standard triggers that will be provided with various hints (given a GIT_PROPERTIES GenInteraction that is built as a dialog box):

Table 12-1 Default Triggers supplied with a GIT_PROPERTIES dialog box.

Hint                                    Triggers Supplied

None (delayed properties)               "Apply" "Close"
_UNRELATED_PROPERTIES or
_FAST_RESPONSE_PROPERTIES               None (Immediate properties)
_RELATED_PROPERTIES,
_SLOW_RESPONSE_PROPERTIES or
_REQUIRES_VALIDATION                    "Apply" "Close"
_COMPLEX_PROPERTIES *and*
(_RELATED_PROPERTIES,
_SLOW_RESPONSE_PROPERTIES or
_REQUIRES_VALIDATION)                   "Apply" "Reset" "Close"
_SINGLE_USAGE *and*
(_RELATED_PROPERTIES,
_SLOW_RESPONSE_PROPERTIES or
_REQUIRES_VALIDATION)                   "OK" "Cancel"
_SINGLE_USAGE *and* 
(_COMPLEX_PROPERTIES,
_SLOW_RESPONSE_PROPERTIES or
_REQUIRES_VALIDATION)                   "OK" "Reset" "Cancel"
Modal Dialog Box                        "OK" "Cancel"
Modal Dialog and _COMPLEX_PROPERTIES    "OK" "Reset" "Cancel"

GIT_PROGRESS
This indicates that this interaction is used to report progress information relating to an operation. If the interaction is built as a dialog box, the specific UI (such as OSF/Motif) may create a “Stop” trigger that contains the IC_STOP interaction command. Input hold up, ignore, & busy states are overridden by default to allow users to interact with modal implementations of this style GenInteraction.

GIT_COMMAND
This indicates that this interaction contains commands to other parts of the application. If the interaction is built as a dialog box, the specific UI (such as OSF/Motif) may create a “Close” trigger that contains the IC_DISMISS interaction command. Any additional command triggers must be provided with ATTR_GEN_TRIGGER_INTERACTION_COMMAND and HINT_SEEK_REPLY_BAR.

GIT_NOTIFICATION
This indicates that this interaction is used to report notification of events. When built as a dialog box, certain specific UIs (such as OSF/Motif) may create an “OK” trigger that contains the IC_OK interaction command. The specific UI will not provide “Close” or “Cancel” triggers to dismiss the interaction without a response from the user. Input hold up, ignore, and busy states are overridden by default to allow users to interact with modal implementations of this type of GenInteraction.

GIT_AFFIRMATION
This indicates that this interaction is used to ask the user to confirm an operation. The interaction should include a prompt in the form of a question. When built as a dialog box, certain specific UIs (such as OSF/Motif) may create “Yes” and “No” triggers that contain the IC_YES and IC_NO interaction commands. The specific UI will not provide “Close” or “Cancel” triggers to dismiss the interaction without a user response. Input hold up, ignore, and busy states are overridden by default to allow users to interact with modal implementations of this type of GenInteraction.

GIT_MULTIPLE_RESPONSE
This indicates that this interaction contains multiple responses (two or more) of which one must be chosen. When built as a dialog box, you will need to add custom response triggers with ATTR_GEN_TRIGGER_INTERACTION_COMMAND and HINT_SEEK_REPLY_BAR. The specific UI will not provide “Close” or “Cancel” triggers to dismiss the interaction without a user response. Input hold up, ignore, and busy states are overridden by default to allow users to interact with modal implementations of this type of GenInteraction.

Library: Objects/gInterC.def


GenInteractionVisibility

GenInteractionVisibility            etype byte
    GIV_NO_PREFERENCE       enum GenInteractionVisibility
    GIV_POPUP               enum GenInteractionVisibility
    GIV_SUB_GROUP           enum GenInteractionVisibility
    GIV_CONTROL_GROUP       enum GenInteractionVisibility
    GIV_DIALOG              enum GenInteractionVisibility
    GIV_POPOUT              enum GenInteractionVisibility

GIV_NO_PREFERENCE
This type specifies no visual preference for this interaction. The specific UI will determine how this GenInteraction should appear depending on hints, location in the visual/generic tree, and the type of generic children, etc.

GIV_POPUP
This type specifies that this interaction should appear as a popup (menu or popup list). Popups are normally hidden from view until activated and then only remain on-screen for the duration of the operation. They are not, in general, independently displayable windows.

GIV_SUB_GROUP
This type specifies that this interaction should appear as a sub-group within a larger window. The specific visual implementation of a sub-group depends on the visual implementation of the parent.

GIV_CONTROL_GROUP
This type specifies that this interaction contains controls and therefore should not be placed directly within a popup interaction. The interaction may be built out as a sub-group within a larger window or as a separate dialog box.

GIV_DIALOG
This type specifies that this interaction should appear as a dialog box. The specific UI will create an activation trigger that brings up the dialog box unless GIA_NOT_USER_INITIATABLE is set. This trigger will appear in the location a normal child would appear.

GIV_POPOUT
This type specifies that this interaction can be ‘popped out’ into a dialog box from a sub-group implementation. The interaction will normally behave as a GIV_SUB_GROUP until it is ‘popped out’. Then it behaves as a GIV_DIALOG. MSG_GEN_INTERACTION_POP_IN and MSG_GEN_INTERACTION_POP_OUT may be used to ‘pop’ the interaction in and out. ATTR_GEN_INTERACTION_POPPED_OUT is used to indicate that the interaction is popped out. If set within the .ui file, the interaction will be popped out upon startup.

Library: Objects/gInterC.def


GenItemGroupBehaviorType

GenItemGroupBehaviorType etype byte, 0 GIGBT_EXCLUSIVE enum GenItemGroupBehaviorType GIGBT_EXCLUSIVE_NONE enum GenItemGroupBehaviorType GIGBT_EXTENDED_SELECTION enum GenItemGroupBehaviorType GIGBT_NON_EXCLUSIVE enum GenItemGroupBehaviorType

GIGBT_EXCLUSIVE
This type specifies an exclusive selection list. In this mode, one and only one item may be selected at any time; anytime the user selects one item, any other will become deselected. The user may also not deselect a currently selected item.

GIGBT_EXCLUSIVE_NONE
This type specifies an exclusive-none selection list. In this mode, a user can de-select an already selected item, leaving the list with no items selected. GenItemGroups can show a none-selected state by returning GIGS_NONE (-1) in place of the selected item’s identifier.

GIGBT_EXTENDED_SELECTION
This type specifies an exclusive selection list, but also contains the ability to extend the selection of items. If the user drags across items, or extends the selection (usually done by holding a key down while clicking) several items can be selected. This is sometimes useful for selecting a target for an operation where choosing one item is good enough for a novice but selecting multiple items can be useful for an experienced user. As is the case with GIGBT_NON_EXCLUSIVE, an application will need to deal with sending and receiving item groups of identifiers for multiply selected items.

GIGBT_NON_EXCLUSIVE
This type specifies a non-exclusive selection list, allowing the user to select multiple items with no constraints. If you have less than 16 GenItems, you may want to consider a GenBooleanGroup instead. Use MSG_GEN_ITEM_GROUP_GET_MULTIPLE_SELECTIONS and MSG_GEN_ITEM_GROUP_SET_MULTIPLE_SELECTIONS to handle multiple selections.

Library: Objects/gItemGC.def


GenItemGroupStateFlags

GenItemGroupStateFlags          record
    GIGSF_INDETERMINATE     :1
    GIGSF_MODIFIED          :1
                            :6
GenItemGroupStateFlags          end

GIGSF_INDETERMINATE
This flag is set if the current selection is indeterminate. The current selection in this case refers to the initial state at the beginning of the data being represented. This indeterminate state refers to the item group as a whole even if in non-exclusive mode.

GIGSF_MODIFIED
As stored in instance data, and sent in MSG_GEN_APPLY:

This flag is set whenever the group itself should be marked as “modified.” This flag is cleared anytime the state is set and the flag should be set anytime the user changes the state of the group. Redundant selections will not change an item group’s state in GIGBT_EXCLUSIVE or GIGBT_EXTENDED_SELECTION style groups. This flag is also cleared when the item group receives MSG_GEN_APPLY or any selection setting message from the application. This state may further be set using MSG_GEN_ITEM_GROUP_SET_MODIFIED_STATE. It may be checked using MSG_GEN_ITEM_GROUP_IS_MODIFIED. The apply message is normally only sent out on MSG_GEN_PPLY if this bit is non-zero, though this behavior can be overridden using ATTR_GEN_SEND_APPLY_MSG_ON_APPLY_EVEN_IF_NOT_MO DIFIED.

As sent in status message:

GIGSF_MODIFIED will be set if the user has done something to change the state of the item group. If the user just clicks on the current selection in a GIGBT_EXCLUSIVE or GIGBT_EXTENDED_SELECTION item group, then this bit will be clear. If message is the result of a MSG_GEN_ITEM_GROUP_SEND_STATUS_MSG being sent, then this bit will be the value passed in that message.

Library: Objects/gItemGC.def


GenItemGroupUpdateExtSelParams

GenItemGroupUpdateExtSelParams                  struc
    GIGUESP_anchorItem      word        ;anchor item
    GIGUESP_extentItem      word        ;extent item
    GIGUESP_prevExtentItem  word        ;previous extent item
    GIGUESP_setSelMsg       word        ;message to send to change items 
                                        ; dh non-zero to select
                                        ; dh zero to de-select.
    GIGUESP_flags           ExtSelFlags
    GIGUESP_passFlags       byte        ;internal: flags to pass to
                                        ; message in dl
GenItemGroupUpdateExtSelParams                  ends

Library: Objects/gItemGC.def


GenMonikerMessageFrame

GenMonikerMessageFrame          struct
    GMMF_xInset             word
    GMMF_yInset             word
    GMMF_xMaximum           word
    GMMF_yMaximum           word
    GMMF_gState             hptr.GState
    GMMF_textHeight         word
    GMMF_monikerFlags       DrawMonikerFlags
GenMonikerMessageFrame          ends

This structure stores the parameters used in MSG_GEN_DRAW_MONIKER and MSG_GEN_GET_MONIKER_POS.

GMMF_xInset stores the x inset to the start of where to draw the moniker, if top or bottom justifying.

GMMF_yInset stores the y inset to the start of where to draw the moniker, if left or right justifying.

GMMF_xMaximum and GMMF_yMaximum store the maximum size of the moniker, if VMF_CLIP_TO_MAXIMUM_WIDTH is set in the GMFP_monikerFlags. Moniker will be clipped to that width.

GMMF_gState stores the GState to use to draw the moniker.

GMMF_textHeight stores the height of the system text, if we happen to have this information available. (This enables the messages to be processed faster; otherwise pass 0.)

GMMF_monikerFlags stores the various justification and miscellaneous flags for drawing the moniker.

Library: Objects/genC.def


GenOptionsParams

GenOptionsParams        struct
    GOP_category    char INI_CATEGORY_BUFFER_SIZE dup (?)
    GOP_key         char INI_CATEGORY_BUFFER_SIZE dup (?)
GenOptionsParams        ends

Library: Objects/genC.def


GenPathDiskRestoreArgs

GenPathDiskRestoreArgs      struct
    GPDRA_pathType              word
    GPDRA_savedDiskType         word
    GPDRA_driveName             fptr.char
    GPDRA_diskName              fptr.char
    GPDRA_errorCode             DiskRestoreError
GenPathDiskRestoreArgs      ends

GPDRA_pathType stores the vardata tag under which the path itself is stored.

GPDRA_savedDiskType stores the vardata tag under which the disk handle is saved.

GPDRA_driveName stores the drive name (in a null-terminated text string with a trailing ‘:’.

GPDRA_diskName stores the disk name in a null-terminated text string.

GPDRA_errorCode stores the error code that will be returned to DiskRestore.

Library: Objects/genC.def


GenSaveWindowInfo

GenSaveWindowInfo       struct
    GSWI_winPosition            SpecWinSizePair
    GSWI_winSize                SpecWinSizePair
    GSWI_winPosSizeState        word
GenSaveWindowInfo       ends

Library: Objects/genC.def


GenScanItemsFlags

GenScanItemsFlags       record
    GSIF_FROM_START                         :1
    GSIF_FORWARD                            :1
    GSIF_WRAP_AROUND                        :1
    GSIF_INITIAL_ITEM_FOUND                 :1
    GSIF_USABLE_AND_ENABLED_ITEM_FOUND      :1
    GSIF_EXISTING_ITEMS_ONLY                :1
    GSIF_DYNAMIC_LIST                       :1
                                            :1
GenScanItemsFlags       end

GSIF_FROM_START
Set if there is no initial item. This allows us to easily get to the beginning (with GSIF_FORWARD set) or end (with GSIF_FORWARD clear) of the list by passing zero for the scan amount.

GSIF_FORWARD
Direction of scan. The scan amount passed will be negated if this is set.

GSIF_WRAP_AROUND
Flag for wrapping around to the beginning if we go past the end, or to the end if we go past the beginning.

GSIF_INITIAL_ITEM_FOUND
Internal.

GSIF_USABLE_AND_ENABLED_ITEM_FOUND
Internals.

GSIF_EXISTING_ITEMS_ONLY
Look through currently existing items only, even if in a dynamic list.

GSIF_DYNAMIC_LIST
Set if item group handler is dealing with a dynamic list, so that when the scan fails, it returns various data back to the dynamic list rather than returning the first or last item.

Library: Objects/gItemGC.def


GenStates

GenStates       record
    GS_USABLE       :1
    GS_ENABLED      :1
                    :6
GenStates       end

GS_USABLE
This flag is setable by the application and indicates whether the entire generic branch starting with this object should be considered part of the application’s user interface at this time. If this bit is clear, then neither the object nor any of its children will appear or may be interacted with. The specific UI and visual state of any object which is made NOT_USABLE will be destroyed and the object will be treated as if it were in generic form only.

GS_ENABLED
This flag indicates whether the user can directly interact with an object. This flag is used in generic objects to show options not currently available, which is typically represented by “greying out” the object’s moniker.

Library: Objects/genC.def


GenTextAttrs

GenTextAttrs        record
    GTA_SINGLE_LINE_TEXT                :1
    GTA_USE_TAB_FOR_NAVIGATION          :1
    GTA_INIT_SCROLLING                  :1
    GTA_NO_WORD_WRAPPING                :1
    GTA_ALLOW_TEXT_OFF_END              :1
    GTA_TAIL_ORIENTED                   :1
    GTA_DONT_SCROLL_TO_CHANGES          :1
                                        :1
GenTextAttrs        end

GTA_SINGLE_LINE_TEXT
This flag indicates that the text has zero or only one carriage return. Scrolling in some specific UIs (such as OpenLook) gets implemented horizontally if this is set.

GTA_USE_TAB_FOR_NAVIGATION
This flag indicates that TAB is used to navigate around your text’s parent window, rather than inserted in the text field. For simple text objects you will nearly always want this.

GTA_INIT_SCROLLING
This flag forces the text object into a scrolling text area. This flag supersedes other size flags. The scrolling box is allowed to be resized vertically from a height of one upward.

GTA_NO_WORD_WRAPPING
This flag disallows word wrapping.

GTA_ALLOW_TEXT_OFF_END
This flag is set if text may overflow past the end of the text box.

GTA_TAIL_ORIENTED
This flag is set if we prefer the tail end of the text to be visible over the top end, given that option. In a scrolling text box, this means we always keep the end of the tail visible while text is being added or deleted at the bottom of the text field, if the end of the text field is currently visible.

GTA_DONT_SCROLL_TO_CHANGES
Usually if there is a scrollable text field, any insertion or deletion of text will be made visible, by scrolling the text if necessary. Setting this flag will turn this behavior off; text can be getting inserted at the end of a document without automatically scrolling there.

Library: Objects/gTextC.def


GenTextCustomMargins

GenTextCustomMargins            struc
    GTCM_lrMargin       byte    ;margin on the left and right of the text.
    GTCM_rbMargin       byte    ;margin on the top and bottom of the text.
GenTextCustomMargins            ends

Library: Objects/gTextC.def


GenTextStateFlags

GenTextStateFlags       record
    GTSF_INDETERMINATE      :1
    GTSF_MODIFIED           :1
                            :6
GenTextStateFlags       end

GTSF_INDETERMINATE This flag is set if the current text is indeterminate. This means that for whatever data is being represented, there is more than one text. GTXI_text in this case should refer to the state at the beginning of the data being represented.

GTSF_MODIFIED
This flag stores a GenText’s modified state:

As stored in instance data and sent out in MSG_GEN_APPLY:

This flag is cleared anytime the object’s state is set and this flag is set anytime the user changes the state of the object . The flag is also automatically cleared on MSG_GEN_APPLY or MSG_GEN_TEXT_SET_TEXT. This state may be manually modified using MSG_GEN_TEXT_SET_MODIFIED_STATE. It may be checked using MSG_GEN_TEXT_IS_MODIFIED. The apply message is normally only sent out on MSG_GEN_APPLY if this bit is non-zero, though this behavior can be overridden using ATTR_GEN_SEND_APPLY_MSG_ON_APPLY_EVEN_IF_NOT_MO DIFIED.

As sent in status message:

GVSF_MODIFIED will be set if the user has done something to change the state of the item group. If message is the result of a MSG_GEN_TEXT_SEND_STATUS_MSG being sent, then this bit will be passed in that message.

Library: Objects/gTextC.def


GenUpwardQueryType

GenUpwardQueryType      etype word
    GUQT_UI_FOR_APPLICATION         enum GenUpwardQueryType
    GUQT_UI_FOR_SCREEN              enum GenUpwardQueryType
    GUQT_UI_FOR_FIELD               enum GenUpwardQueryType
    GUQT_UI_FOR_MISC                enum GenUpwardQueryType

Library: Objects/genC.def


GenValueDisplayFormat

GenValueDisplayFormat           etype byte
    GVDF_INTEGER                    enum GenValueDisplayFormat
    GVDF_DECIMAL                    enum GenValueDisplayFormat
    GVDF_POINTS                     enum GenValueDisplayFormat
    GVDF_INCHES                     enum GenValueDisplayFormat
    GVDF_CENTIMETERS                enum GenValueDisplayFormat
    GVDF_MILLIMETERS                enum GenValueDisplayFormat
    GVDF_PICAS                      enum GenValueDisplayFormat
    GVDF_EUR_POINTS                 enum GenValueDisplayFormat
    GVDF_CICEROS                    enum GenValueDisplayFormat
    GVDF_POINTS_OR_MILLIMETERS      enum GenValueDisplayFormat
    GVDF_INCHES_OR_CENTIMETERS      enum GenValueDisplayFormat

GVDF_INTEGER
Value will be displayed as an integer value. The value will be displayed with no decimal places, regardless of any fraction in the current value or the presence of ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_DECIMAL
Value will be displayed as a decimal value. By default, the value’s fraction, if any, will be displayed using 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_POINTS
Value will be displayed using distance units, in points, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch). By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_INCHES
Value will be displayed using distance units, in inches, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into inches for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_CENTIMETERS
Value will be displayed using distance units, in centimeters, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into centimeters for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_MILLIMETERS
Value will be displayed using distance units, in millimeters, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into millimeters for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_PICAS
Value will be displayed using distance units, in picas, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into picas for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_EUR_POINTS
Value will be displayed using distance units, in European points, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into European points for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_CICEROS
Value will be displayed using distance units, in ciceros, regardless of whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into Ciceros for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_POINTS_OR_MILLIMETERS
Value will be displayed using distance units, as points or millimeters, depending on whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into points of millimeters for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

GVDF_INCHES_OR_CENTIMETERS
Value will be displayed using distance units, as inches or centimeters, depending on whether metric or US units are set for the given application. The stored value is considered to be in units of “Points” (i.e. 1/72 of an inch) but is translated into inches or millimeters for display in the value’s text field. By default, the value will be displayed with up to 3 decimal places. This can be changed with ATTR_GEN_VALUE_DECIMAL_PLACES.

Library: Objects/gValueC.def


GenValueIntervals

GenValueIntervals       struc
    GVI_numMajorIntervals   word    ; Total number of major intervals
                                    ; to display over the range.
    GVI_numMinorIntervals   word    ; Total number of minor intervals
                                    ; to display over the range.
GenValueIntervals       ends

Library: Objects/gValueC.def


GenValueStateFlags

GenValueStateFlags      record
    GVSF_INDETERMINATE      :1
    GVSF_MODIFIED           :1
    GVSF_OUT_OF_DATE        :1
                            :5
GenValueStateFlags      end

GVSF_INDETERMINATE
This flag is set if the current value is indeterminate. GVLI_value in this case should refer to the initial state of the GenValue before it was set indeterminate.

GVSF_MODIFIED
This flag is set if the value has been modified.

GVSF_OUT_OF_DATE
This flag is set when the GenValue object’s internal value is out of date with what has been typed by the user. The GenValue object does not update its internal value on every user key press, since the typed value may be temporarily out-of-range as they type. The GenValue is then updated on a return press ;by the user, a query for the value, on an increment or decrement, or as it is being taken offscreen. The GVSF_OUT_OF_DATE flag is most useful on status messages, to instruct the status message recipient to not try to process the value passed. This allows the GenValue to send a status message when the user first types in a GenValue, in order to let the recipient know that the GenValue has been modified.

As stored in instance data, and sent in MSG_GEN_APPLY:

This modified bit is cleared anytime the object’s state is set; the flag is set anytime the user changes the state of the object. The flag is automatically cleared on MSG_GEN_APPLY or MSG_GEN_VALUE_SET_VALUE. This state may further be modified using MSG_GEN_VALUE_SET_MODIFIED_STATE. It may be checked using MSG_GEN_VALUE_IS_MODIFIED. The apply message is normally only sent out on MSG_GEN_APPLY if this bit is non-zero, though this behavior can be overridden using ATTR_GEN_SEND_APPLY_MSG_ON_APPLY_EVEN_IF_NOT_MO DIFIED

As sent in status message:

GVSF_MODIFIED will be set if the user has done something to change the state of the GenValue. If the status message is the result of a MSG_GEN_VALUE_SEND_STATUS_MSG being sent, then this bit will be the value passed in that message.

GVSF_OUT_OF_DATE
This flag is set when the GenValue object’s internal value is out of date with what has been typed by the user. The GenValue object does not update its internal value on every user key press, since the typed value may be temporarily out-of-range as they type. The GenValue is then updated on a return press by the user, a query for the value, on an increment or decrement, or as it is being taken offscreen. The GVSF_OUT_OF_DATE flag is most useful on status messages, to instruct the status message recipient to not try to process the value passed. This allows the GenValue to send a status message when the user first types in a GenValue, in order to let the recipient know that the GenValue has been modified.

Library: Objects/gValueC.def


GenValueType

GenValueType        etype word
    GVT_VALUE           enum GenValueType   ; The current value 
    GVT_MINIMUM         enum GenValueType   ; The minimum value
    GVT_MAXIMUM         enum GenValueType   ; The maximum value 
    GVT_INCREMENT       enum GenValueType   ; The increment value 
    GVT_LONG            enum GenValueType   ; The longest value we can
                                            ; create
    GVT_RANGE_LENGTH    enum GenValueType   ; The end of the displayed
                                            ; range, if applicable
    GVT_RANGE_END       enum GenValueType   ; The last value in the range,
                                            ; if applicable
    GVT_VALUE_AS_RATIO_OF_AVAILABLE_RANGE
                         enum GenValueType  ; The current value, expressed
                                            ; as a ratio of max-min-
                                            ; range (if any).

Library: Objects/gValueC.def


GenViewAttrs

GenViewAttrs        record
    ;
    ; General GenView Attributes
    ;
    GVA_CONTROLLED                          :1
    GVA_GENERIC_CONTENTS                    :1
    GVA_TRACK_SCROLLING                     :1
    GVA_DRAG_SCROLLING                      :1
    GVA_NO_WIN_FRAME                        :1
    GVA_SAME_COLOR_AS_PARENT_WIN            :1
    GVA_VIEW_FOLLOWS_CONTENT_GEOMETRY       :1
    ;
    ; Attributes that follow may only be used if GVA_GENERIC_CONTENTS is
    ; not set. 
    ;
    GVA_WINDOW_CCORDINATE_MOUSE_EVENTS      :1
    GVA_DONT_SEND_PTR_EVENTS                :1
    GVA_DONT_SEND_KBD_RELEASES              :1
    GVA_SEND_ALL_KBD_CHARS                  :1
    GVA_FOCUSABLE                           :1
    GVA_SCALE_TO_FIT                        :1
    GVA_ADJUST_FOR_ASPECT_RATIO             :1
                                            :2
GenViewAttrs        end

GVA_CONTROLLED
This flag is set if the view is connected to a controller object and therefore should send out notification as appropriate and should add itself to the appropriate GCN list.

GVA_GENERIC_CONTENTS
This flag is set if the content of the GenView is a GenContentClass object (and its children are therefore generic objects, not visual objects). If this bit is set, the mouse grab mode and pointer event sending mode is set by the specific UI, overriding whatever is passed in the instance data. Other generic messages (such as MSG_SPEC_SPEC_BUILD_BRANCH) will be sent to the content as appropriate.

GVA_TRACK_SCROLLING
This flag is set if scrolling events should be sent to the content, so it can control more carefully where scrolling leaves the document origin. See MSG_META_CONTENT_TRACK_SCROLLING for more info.

GVA_DRAG_SCROLLING
This flag is set if so that the user can select and drag out of a subview window scrolling the window appropriately. This drag scrolling operates independently of the objects in the window; no special handling by the output objects should be needed.

GVA_NO_WIN_FRAME
This flag is set if the specific UI shouldn’t draw a frame around the subview window.

GVA_SAME_COLOR_AS_PARENT_WIN
This flag is set is the background color of the view should be whatever color the parent window’s background is. This flag should nearly always be set if GVA_GENERIC_CONTENTS is set, so the generic objects appear correctly underneath the view!

GVA_VIEW_FOLLOWS_CONTENT_GEOMETRY
This flag is set if the view, in a non-scrollable direction, should follow the size of the content. Content object must be running in the same thread as the view, so that MSG_VIS_RECALC_SIZE can be called on the content.

Attributes that may be used when GVA_GENERIC_CONTENTS is not set.

GVA_WINDOW_COORDINATE_MOUSE_EVENTS
This flags is set if mouse events should be sent in window coordinates instead of document coordinates (that is, as the offset in screen pixels from the upper left-hand corner of the view). This bit may be used transparently in conjunction with a VisContentClass content, by setting VCNA_WINDOW_COORDINATE_MOUSE_EVENTS in the VisContent. This arrangement allows the VisContent to provide both 32-bit and fractional mouse data to visible objects within the content.

Alternatively, if the content is a process, then the process is responsible for converting incoming mouse data back into document coordinates. This may be done by storing the current document origin and scale factor as sent out by the View, and then using the equation:

image info

View Window Coordinate is the coordinate value passed in the 16-bit mouse event when GVA_WINDOW_COORDINATE_MOUSE_EVENTS is set in the GenView.

Scale Factor is current view scale factor, as sent to the process in MSG_META_CONTENT_VIEW_SCALE_FACTOR_CHANGED.

View Origin is the location in the document that currently appears at the upper left corner of the view window, as sent to the process in MSG_META_CONTENT_VIEW_ORIGIN_CHANGED.

Note: If GVI_docBounds lies outside of the 16-bit graphics space, then this flag MUST be used, since standard mouse events cannot pass 32-bit document positions.

GVA_DONT_SEND_PTR_EVENTS
This flag reflects an optimization to avoid sending pointer events to the application, if not needed.

GVA_DONT_SEND_KBD_RELEASES
This flag reflects an optimization to avoid sending keyboard releases to the application, if not needed.

GVA_SEND_ALL_KBD_CHARS
This flag forces all key presses to go to the content (if it has the focus), regardless of what those keypresses are. Usually the view will check first for mnemonics, accelerators, or other special specific UI keys, and will not pass the key press down if it gets handled by the UI in one of these ways. If applications set this flag, it is their responsibility in their MSG_META_KBD_CHAR handler to return a MSG_FUP_KBD_CHAR back to the view so it can finish the keyboard handling. Also, applications (such as GeoWrite) that intermix keypresses and other functions (such as changing the font or style) may have problems getting these messages in the correct order if the keypress has to go across threads to the content first, then back to the UI to check for accelerators. For this reason, a lot of applications may not want to use this flag. This flag also allows odd keyboard characters to be allowed as accelerators in generic objects. (Usually, only ctrl characters and a few others are acceptable as accelerators) In summary, the differences between each approach:

SEND_ALL_KBD_CHARS clear            SEND_ALL_KBD_CHARS set
GenView gets key press,             GenView gets key press,
Checks ctrl chars for accelerators  Sends to content.
and other specific-UI actions.      Checks *all* chars FUPped back
If char not used in these ways,     by content for accelerators
sends it to content.                and other specific-UI actions.

GVA_FOCUSABLE
This flag indicates that the view is allowed to have the focus. This flag is set by default upon instantiation or declaration in the .ui file. In general, you will only want to clear this flag for custom gadgets which should not be keyboard navigable.

GVA_SCALE_TO_FIT
This flag indicates that the view is operating in “scale to fit” mode. In this mode the y scale factor will be adjusted so that the entire document fits in the view, and the x scale factor will be adjusted accordingly. This behavior can be modified by either giving a page size (via ATTR_GEN_VIEW_PAGE_SIZE) to scale into the view, specifying that the document should fit entirely in x with the y scale factor following (via ATTR_GEN_VIEW_SCALE_TO_FIT_BASED_ON_X) or that both the document should fit in both x and y (via ATTR_GEN_VIEW_SCALE_TO_FIT_BOTH_DIMENSIONS).

GVA_ADJUST_FOR_ASPECT_RATIO
This flag indicates that scaling is adjusted to match the aspect ratio of the screen.

Library: Objects/gViewC.def


GenViewControlAttrs

GenViewControlAttrs         record
    GVCA_ADJUST_ASPECT_RATIO        :1
    GVCA_APPLY_TO_ALL               :1
    GVCA_SHOW_HORIZONTAL            :1
    GVCA_SHOW_VERTICAL              :1
                                    :12
GenViewControlAttrs         end

Library: Objects/gViewCC.def


GenViewControlSpecialScaleFactor

GenViewControlSpecialScaleFactor            etype word
    GVCSSF_TO_FIT           enum GenViewControlSpecialScaleFactor

Library: Objects/gViewCC.def


GenViewDimensionAttrs

GenViewDimensionAttrs           record
    GVDA_SCROLLABLE                     :1
    GVDA_SPLITTABLE                     :1
    GVDA_TAIL_ORIENTED                  :1
    GVDA_DONT_DISPLAY_SCROLLBAR         :1
    GVDA_NO_LARGER_THAN_CONTENT         :1
    GVDA_NO_SMALLER_THAN_CONTENT        :1
    GVDA_SIZE_A_MULTIPLE_OF_INCREMENT   :1
    GVDA_KEEP_ASPECT_RATIO              :1
GenViewDimensionAttrs           end

GVDA_SCROLLABLE
This flag is set if the view is scrollable in the given dimension. The view will force itself to be as big as its document size, so that nothing is obscured.

GVDA_SPLITTABLE
This flag is set if the view is splittable in the given dimension.

GVDA_TAIL_ORIENTED
This flag is set if the document prefers to be displayed at its end. The window will scroll to stay at the bottom of the document when you resize or change the document length, but only if you are currently at the bottom. If you move to the top or middle of the document no scrolling will be done. Currently, tail orientation does not work across threads; if you want to do this, you can try doing it via a tracking.

GVDA_DONT_DISPLAY_SCROLLBAR
This flag instructs the view to hide any scrollers in the given dimension, even if the view is scrollable.

GVDA_NO_LARGER_THAN_CONTENT
This flag is set if the view will not get larger than is needed to fit the content in the given dimension, based on the current value of GVI_docBounds. By default there are no restrictions on the size of the view.

GVDA_NO_SMALLER_THAN_CONTENT
This flag is set if the view will stay large enough to display the entire content in the given dimension, based on the current value of GVI_docBounds. By default there are no restrictions on the size of the view.

GVDA_SIZE_A_MULTIPLE_OF_INCREMENT
This flag is set if we want to truncate the view window’s size in this direction to a multiple of the increment amount in this direction. Subclass MSG_GEN_VIEW_CALC_WIN_SIZE if you need finer adjustments of the view window size.

GVDA_KEEP_ASPECT_RATIO
This flag is set if we want to keep the aspect ratio of the port windows the same as they are in the open size. If set in vertAttrs, then we’ll keep the width and use the ratio to calculate the height; and vice versa for horizAttrs.

Library: Objects/gViewC.def


GenViewInkType

GenViewInkType      etype byte
    GVIT_PRESSES_ARE_NOT_INK            enum GenViewInkType
    GVIT_INK_WITH_STANDARD_OVERRIDE     enum GenViewInkType
    GVIT_PRESSES_ARE_INK                enum GenViewInkType
    GVIT_QUERY_OUTPUT                   enum GenViewInkType

GVIT_PRESSES_ARE_NOT_INK
The type specifies that the output of the view cannot handle ink. If you are using the large document model, you should subclass MSG_NOTIFY_DATA_GROUP with the notification type GWNT_INK on the VisContent attached to the view. Otherwise, ink will be sent to the first child with the target.

GVIT_INK_WITH_STANDARD_OVERRIDE
This type specifies that the output of the view can handle ink, but the user can override it by holding the mouse down for some user-specified amount of time before moving the mouse.

GVIT_PRESSES_ARE_INK
This type specifies that any mouse presses are ink and the output of the view can handle ink. Note: If you use the following value, you must handle MSG_META_QUERY_IF_PRESS_IS_INK. Note also that a MSG_NOTIFY_DATA_GROUP withe notification type of GWNT_INK can come even if no MSG_META_QUERY_IF_PRESS_IS_INK has been received. (This can happen if the user starts drawing just outside of the view but then draws inside the view.)

GVIT_QUERY_OUTPUT
This type specifies that the output of the view only wants presses to be ink under certain conditions. MSG_META_QUERY_IF_PRESS_IS_INK is still sent to the output.

Library: Objects/gViewC.def


GeodeAttrs

GeodeAttrs      record
    GA_PROCESS                      :1  ; Has initial thread
    GA_LIBRARY                      :1  ; Exports routines
    GA_DRIVER                       :1  ; Has DriverTable
    GA_KEEP_FILE_OPEN               :1  ; .geo file must stay open (resource(s)
                                        ; discardable or initially discarded)
    GA_SYSTEM                       :1  ; Compiled into kernel
    GA_MULTI_LAUNCHABLE             :1  ; May be loaded more than once
    GA_APPLICATION                  :1  ; A user-launched application
    GA_DRIVER_INITIALIZED           :1  ; If DRIVER aspect initialized (DR_INIT
                                        ; sent to strategy routine)
    GA_LIBRARY_INITIALIZED          :1  ; If LIBRARY aspect initialized
                                        ; (library entry point called)
    GA_GEODE_INITIALIZED            :1  ; If all aspects initialized.
    GA_USES_COPROC                  :1  ; Uses coprocessor if available
    GA_REQUIRES_COPROC              :1  ; Requires coprocessor/emulator to run
    GA_HAS_GENERAL_CONSUMER_MODE    :1  ; Can be run in GCM mode
    GA_ENTRY_POINTS_IN_C            :1  ; Library/driver entry point in C
                                    :2
GeodeAttrs      end

Library: geode.def


GeodeDefaultDriverType

GeodeDefaultDriverType          etype word, 0, 2
    GDDT_FILE_SYSTEM        enum GeodeDefaultDriverType
    GDDT_KEYBOARD           enum GeodeDefaultDriverType
    GDDT_MOUSE              enum GeodeDefaultDriverType
    GDDT_VIDEO              enum GeodeDefaultDriverType
    GDDT_MEMORY_VIDEO       enum GeodeDefaultDriverType
    GDDT_POWER_MANAGEMENT   enum GeodeDefaultDriverType
    GDDT_TASK               enum GeodeDefaultDriverType

Library: driver.def


GeodeGetInfoType

GeodeGetInfoType        etype word, 0, 2
    GGIT_ATTRIBUTES             enum GeodeGetInfoType
    GGIT_TYPE                   enum GeodeGetInfoType
    GGIT_GEODE_RELEASE          enum GeodeGetInfoType
    GGIT_GEODE_PROTOCOL         enum GeodeGetInfoType
    GGIT_TOKEN_ID               enum GeodeGetInfoType
    GGIT_PERM_NAME_AND_EXT      enum GeodeGetInfoType
    GGIT_PERM_NAME_ONLY         enum GeodeGetInfoType

Library: geode.def


GeodeGrab

GeodeGrab       struct
    GG_OD           optr
    GG_geode        hptr
GeodeGrab       ends

This structure stores a top-level grab for controlling input flow to the geode.

Library: Objects/uiInputC.def


GeodeHeapVars

GeodeHeapVars   struc
    GHV_heapSpace           word
    ;
    ; Heap space requirement, as copied from EFH_heapSpace from the
    ; ExecutableFileHeader of applications. Roughly, the amount of space
    ; on the heap that this application uses, in paragraphs. The system
    ; sums the total of all "heapSpace" requirements when trying to decide
    ; whether to let another app load or not.

Library: geode.def

GeodeLoadError

GeodeLoadError      etype word
    GLE_PROTOCOL_IMPORTER_TOO_RECENT        enum GeodeLoadError
    GLE_PROTOCOL_IMPORTER_TOO_OLD           enum GeodeLoadError
    GLE_FILE_NOT_FOUND                      enum GeodeLoadError
    GLE_LIBRARY_NOT_FOUND                   enum GeodeLoadError
    GLE_FILE_READ_ERROR                     enum GeodeLoadError
    GLE_NOT_GEOS_FILE                       enum GeodeLoadError
    GLE_NOT_GEOS_EXECUTABLE_FILE            enum GeodeLoadError
    GLE_ATTRIBUTE_MISMATCH                  enum GeodeLoadError
    GLE_MEMORY_ALLOCATION_ERROR             enum GeodeLoadError
    GLE_NOT_MULTI_LAUNCHABLE                enum GeodeLoadError
    GLE_LIBRARY_PROTOCOL_ERROR              enum GeodeLoadError
    GLE_LIBRARY_LOAD_ERROR                  enum GeodeLoadError
    GLE_DRIVER_INIT_ERROR                   enum GeodeLoadError
    GLE_LIBRARY_INIT_ERROR                  enum GeodeLoadError
    GLE_DISK_TOO_FULL                       enum GeodeLoadError
    GLE_FIELD_DETACHING                     enum GeodeLoadError
    GLE_INSUFFICIENT_HEAP_SPACE             enum GeodeLoadError

Library: geode.def

GeodeToken

GeodeToken      struct
    GT_chars            TokenChars
    GT_manufID          ManufacturerID
GeodeToken      ends

This structure defines a token identifier for an application. Together the two fields uniquely identify the application.

GT_chars stores the four character identifier.

GT_manufID stores the ManufacturerID.

Library: geode.def


GeosFileHeaderFlags

GeosFileHeaderFlags             record
    GFHF_TEMPLATE           :1
    GFHF_SHARED_MULTIPLE    :1  ; Also called "multi-user"
    GFHF_SHARED_SINGLE      :1  ; Also called "public"
            :1  
    GFHF_HIDDEN             :1  ; This file is hidden. This flag does
                                ; not replace the DOS "hidden"
                                ; attribute -- the two may be
                                ; set/cleared independently of
                                ; each-other.
    GFHF_DBCS               :1  ;TRUE: DBCS filename, etc.
                            :10
GeosFileHeaderFlags             end

Library: file.def


GeosFileType

GeosFileType        etype word
    GFT_NOT_GEOS_FILE   enum GeosFileType   ; Not a geos file. defined as 
                                            ; 0 so one can reasonably 
                                            ; look at FEA_FILE_TYPE
    GFT_EXECUTABLE      enum GeosFileType   ; Something we can execute
    GFT_VM              enum GeosFileType   ; Managed by VMem
    GFT_DATA            enum GeosFileType   ; Raw byte-stream of data
    GFT_DIRECTORY       enum GeosFileType   ; Directory
    GFT_OLD_VM          enum GeosFileType   ; VM file from PC/GEOS 1.X.
                                            ; Only FEA_NAME and 
                                            ; FEA_FILE_TYPE are supported 
                                            ; from the set of 
                                            ; GEOS-specific extended attrs

Library: file.def


GeoWorksGenAppGCNListType

GeoWorksGenAppGCNListType               etype word, FIRST_GEN_APP_GCN_LIST_TYPE,2
    ;
    ; GenToolControl/GenControl communication related
    ;
    GAGCNLT_SELF_LOAD_OPTIONS                       enum GeoWorksGenAppGCNListType
    GAGCNLT_GEN_CONTROL_NOTIFY_STATUS_CHANGE        enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SELECT_STATE_CHANGE   enum GeoWorksGenAppGCNListType
    GAGCNLT_EDIT_CONTROL_NOTIFY_UNDO_STATE_CHANGE   enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_CHAR_ATTR_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_PARA_ATTR_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_TYPE_CHANGE      enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_SELECTION_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_COUNT_CHANGE     enum GeoWorksGenAppGCNListType
    AGCNLT_APP_TARGET_NOTIFY_STYLE_TEXT_CHANGE      enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_STYLE_SHEET_TEXT_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_STYLE_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FONT_CHANGE           enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_POINT_SIZE_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FONT_ATTR_CHANGE      enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_JUSTIFICATION_CHANGE  enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_FG_COLOR_CHANGE  enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_BG_COLOR_CHANGE  enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_PARA_COLOR_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_BORDER_COLOR_CHANGE   enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SEARCH_SPELL_CHANGE   enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SEARCH_REPLACE_CHANGE enum GeoWorksGenAppGCNListType
    ;
    ; Chart related
    GAGCNLT_APP_TARGET_NOTIFY_CHART_TYPE_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_CHART_GROUP_FLAGS     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_CHART_AXIS_ATTRIBUTES enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_CHART_MARKER_SHAPE    enum GeoWorksGenAppGCNListType
    ;
    ; GrObj related
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_CURRENT_TOOL_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_BODY_SELECTION_STATE_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_AREA_ATTR_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_LINE_ATTR_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_TEXT_ATTR_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_STYLE_GROBJ_CHANGE    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_STYLE_SHEET_GROBJ_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_BODY_INSTRUCTION_FLAGS_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_GROBJ_GRADIENT_ATTR_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    ;
    ; Ruler related
    GAGCNLT_APP_TARGET_NOTIFY_RULER_TYPE_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_RULER_GRID_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_TEXT_RULER_OBJECTS                      enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_RULER_GUIDE_CHANGE    enum GeoWorksGenAppGCNListType
    ;
    ; VisBitmap related
    GAGCNLT_APP_TARGET_NOTIFY_BITMAP_CURRENT_TOOL_CHANGE 
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_BITMAP_CURRENT_FORMAT_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    ;
    ; Flat file library related
    GAGCNLT_APP_TARGET_NOTIFY_FLAT_FILE_FIELD_PROPERTIES_STATUS_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FLAT_FILE_FIELD_LIST_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FLAT_FILE_RCP_STATUS_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FLAT_FILE_FIELD_APPEARANCE_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FLAT_FILE_DUMMY_CHANGE_2
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_FLAT_FILE_DUMMY_CHANGE_3
                                                    enum GeoWorksGenAppGCNListType
    ;
    ; Spool library related
    GAGCNLT_APP_NOTIFY_DOC_SIZE_CHANGE              enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_NOTIFY_PAPER_SIZE_CHANGE            enum GeoWorksGenAppGCNListType
    ;
    ; Used in GenViewControl
    GAGCNLT_APP_TARGET_NOTIFY_VIEW_STATE_CHANGE     enum GeoWorksGenAppGCNListType
    GAGCNLT_CONTROLLED_GEN_VIEW_OBJECTS             enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_INK_STATE_CHANGE      enum GeoWorksGenAppGCNListType
    GAGCNLT_CONTROLLED_INK_OBJECTS                  enum GeoWorksGenAppGCNListType
    ;
    ; Float library related
    GAGCNLT_APP_TARGET_NOTIFY_PAGE_STATE_CHANGE     enum GeoWorksGenAppGCNListType
    ;
    ; GenDocumentControl related
    GAGCNLT_APP_TARGET_NOTIFY_DOCUMENT_CHANGE       enum GeoWorksGenAppGCNListType
    ;
    ; GenDisplayControl related
    GAGCNLT_APP_TARGET_NOTIFY_DISPLAY_CHANGE        enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_DISPLAY_LIST_CHANGE   enum GeoWorksGenAppGCNListType
    ;
    ; Spline Library Notification Lists
    GAGCNLT_APP_TARGET_NOTIFY_SPLINE_MARKER_SHAPE   enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPLINE_POINT          enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPLINE_POLYLINE       enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPLINE_SMOOTHNESS     enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPLINE_OPEN_CLOSE_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    ;
    ; Spreadsheet Library Notification Lists
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_ACTIVE_CELL_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_EDIT_BAR_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_SELECTION_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_CELL_WIDTH_HEIGHT_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_DOC_ATTR_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_CELL_ATTR_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_CELL_NOTES_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_DATA_RANGE_CHANGE
                                                    enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_TEXT_NAME_CHANGE      enum GeoWorksGenAppGCNListType
    GAGCNLT_FLOAT_FORMAT_CHANGE                     enum GeoWorksGenAppGCNListType
    GAGCNLT_DISPLAY_OBJECTS_WITH_RULERS             enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_APP_CHANGE            enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_LIBRARY_CHANGE        enum GeoWorksGenAppGCNListType
    ;
    ; UI Notification Lists
    GAGCNLT_WINDOWS                                 enum GeoWorksGenAppGCNListType
    GAGCNLT_STARTUP_LOAD_OPTIONS                    enum GeoWorksGenAppGCNListType
    ;
    ; CARD LIbrary Notification Lists
    GAGCNLT_APP_TARGET_NOTIFY_CARD_BACK_CHANGE      enum GeoWorksGenAppGCNListType
    ;
    GAGCNLT_NOTIFY_FOCUS_TEXT_OBJECT                enum GeoWorksGenAppGCNListType
    GAGCNLT_NOTIFY_TEXT_CONTEXT                     enum GeoWorksGenAppGCNListType
    ;
    ; Help Notification Lists
    GAGCNLT_NOTIFY_HELP_CONTEXT_CHANGE              enum GeoWorksGenAppGCNListType
    ;
    GAGCNLT_FLOAT_FORMAT_INIT                       enum GeoWorksGenAppGCNListType
    GAGCNLT_ALWAYS_INTERACTABLE_WINDOWS             enum GeoWorksGenAppGCNListType
    GAGCNLT_USER_DO_DIALOGS                         enum GeoWorksGenAppGCNListType
    GAGCNLT_MODAL_WIN_CHANGE                        enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_NAME_CHANGE enum GeoWorksGenAppGCNListType 
    GAGCNLT_CONTROLLERS_WITHIN_USER_DO_DIALOGS      enum GeoWorksGenAppGCNListType
    GAGCNLT_FOCUS_WINDOW_KBD_STATUS                 enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_PAGE_INFO_STATE_CHANGE enum GeoWorksGenAppGCNListType
    GAGCNLT_APP_TARGET_NOTIFY_CURSOR_POSITION_CHANGE enum GeoWorksGenAppGCNListType

The UI library’s GenApplicationClass supports its very own GCN (General Change Notification) system separate from the kernel’s. Lists within this system are identified by a GAGCNListType, whose enumerations are separate from that of the kernel’s GCN system.

This section contains the enumerations of the GCNLT_type field for GCNListType used within a GenApplication for the case of GCNLT_manuf = MANUFACTURER_ID_GEOWORKS.

GAGCNLT_SELF_LOAD_OPTIONS
Objects on this list don’t need to receive MSG_META_LOAD_OPTIONS on startup, but do need to receive MSG_META_SAVE_OPTIONS. (MSG_META_SAVE_OPTIONS will be sent when the GenApplication itself receives MSG_META_SAVE_OPTIONS.) This must be done by the application, usually when a “Save Options” trigger is activated. Objects on this list can be of any class, as MetaClass defines the options behavior, though objects will most likely be of a Generic UI class (GenClass provides the .ini file behavior.

Any controller not on the GAGCNLT_STARTUP_LOAD_OPTIONS list will need to be placed on this list. A controller should not appear in both lists.

Other objects on this list will be those that support options like GenBooleanGroups, GenItemGroups, or a GenInteraction with ATTR_GEN_INIT_FILE_PROPAGATE_TO_CHILDREN. These should have the appropriate ATTR_GEN_INIT_FILE_KEY. The GenApplication object should have an appropriate ATTR_GEN_INIT_FILE_CATEGORY.

GAGCNLT_GEN_CONTROL_NOTIFY_STATUS_CHANGE
Objects on this list (generally GenToolControl objects) are kept up to date on the status of all GenControl objects. Any specific status events are not sent with this list – only notification that a change has occurred. This notification passes the data type NotifyGenControlStatusChange.

GAGCNLT_APP_TARGET_NOTIFY_SELECT_STATE_CHANGE
Objects on this list receive notification about the selection state of the current target object. This notification passes the data type NotifySelectStateChange.

GCNLT_EDIT_CONTROL_NOTIFY_UNDO_STATE_CHANGE
Objects on this list receive notification of the undo state of the current process. This notification passes the data type NotifyUndoStateChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_CHAR_ATTR_CHANGE
This notification passes the data type VisTextNotifyCharAttrChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_PARA_ATTR_CHANGE
This notification passes the data type VisTextNotifyParaAttrChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_TYPE_CHANGE
This notification passes the data type VisTextNotifyTypeChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_SELECTION_CHANGE
This notification passes the data type VisTextNotifySelectionChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_COUNT_CHANGE
This notification passes the data type VisTextNotifyCountChange.

GAGCNLT_APP_TARGET_NOTIFY_STYLE_TEXT_CHANGE
Objects on this list receive notification when the current style could have changed (i.e. a different style could be the current style). This notification passes the data type NotifyStyleChange.

GAGCNLT_APP_TARGET_NOTIFY_STYLE_SHEET_TEXT_CHANGE
Objects on this list receive notification when the style sheet could have changed (i.e. a style was created, deleted or modified). This notification passes the data type NotifyStyleSheetChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_STYLE_CHANGE
This notification passes the data type NotifyTextStyleChange.

GAGCNLT_APP_TARGET_NOTIFY_FONT_CHANGE
This notification passes the data type NotifyFontChange.

GAGCNLT_APP_TARGET_NOTIFY_POINT_SIZE_CHANGE
This notification passes the data type NotifyPointSizeChange.

GAGCNLT_APP_TARGET_NOTIFY_FONT_ATTR_CHANGE
This notification passes the data type NotifyFontAttrChange.

GAGCNLT_APP_TARGET_NOTIFY_JUSTIFICATION_CHANGE
This notification passes the data type NotifyJustificationChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_FG_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_BG_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GAGCNLT_APP_TARGET_NOTIFY_PARA_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GAGCNLT_APP_TARGET_NOTIFY_BORDER_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GAGCNLT_APP_NOTIFY_DOC_SIZE_CHANGE
This notification passes the data type NotifyPageSetupChange.

GAGCNLT_APP_NOTIFY_PAPER_SIZE_CHANGE
This notification passes the data type NotifyPageSetupChange.

GAGCNLT_CONTROLLED_GEN_VIEW_OBJECTS
Objects on this list are GenView objects that have the ATTR_GEN_VIEW_INTERACT_WITH_CONTROLLER attribute. Note: If an object is not a GenView object, it shouldn’t be on this list.

GAGCNLT_APP_TARGET_NOTIFY_INK_STATE_CHANGE
Objects on this list (controllers) are notified when ink objects come up.

GAGCNLT_CONTROLLED_INK_OBJECTS
Objects on this list are Ink objects that have the IF_CONTROLLED bit set. Note: If you aren’t an Ink object, you shouldn’t be on this list.

GAGCNLT_APP_TARGET_NOTIFY_PAGE_STATE_CHANGE
Objects on this list are notified when the selection state of the current target object changes. This notification passes the data type NotifyPageStateChange

GAGCNLT_APP_TARGET_NOTIFY_DOCUMENT_CHANGE
Objects on this list are notified about the state of the current target document. This notification passes the data type NotifyPageStateChange.

GAGCNLT_APP_TARGET_NOTIFY_DISPLAY_CHANGE
Objects on this list are notified about the state of the current target display. This notification passes the data type NotifyDisplayChange.

GAGCNLT_APP_TARGET_NOTIFY_DISPLAY_LIST_CHANGE
Objects on this list are notified about the state of the current target display. This notification passes the data type NotifyDisplayChange.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_ACTIVE_CELL_CHANGE
This notification passes the data type NotifySSheetActiveCellChanged.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_EDIT_BAR_CHANGE
This notification passes the data NotifySSheetEditBarChanged.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_SELECTION_CHANGE
This notification passes the data type NotifySSheetSelectionChanged.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_CELL_WIDTH_HEIGHT_ CHANGE
This notification passes the data type NotifySSheetCellWidthHeightChange.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_DOC_ATTR_CHANGE
This notification passes the data type NotifySSheetDocAttrChange.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_CELL_ATTR_CHANGE
This notification passes the data type NotifySSheetCellAttrChange.

GAGCNLT_APP_TARGET_NOTIFY_SPREADSHEET_DATA_RANGE_CHANGE
This notification passes the data type NotifySSheetDataRangeChange.

GAGCNLT_APP_TARGET_NOTIFY_TEXT_NAME_CHANGE
This notification passes the data type VisTextNotifyNameChange.

GAGCNLT_DISPLAY_OBJECTS_WITH_RULERS
Objects on this list should include all GenDisplays that have rulers.

GAGCNLT_WINDOWS
Objects on this list are windowed objects that should be displayed on-screen. In your .ui file, any windows that you want to appear when the application starts up should be included on this list. In most cases, this will be only be a GenPrimary. When windows are opened, they are automatically added to this list. The list is saved to state and used to re-open all windows that were on-screen when the application shuts down. The only message sent to this list is MSG_META_UPDATE_WINDOW. The classes of objects on this list are GenPrimaryClass, GenDisplayClass, and GenInteractionClass. GenDisplayGroup does not need to be on this list, as it is not an independently displayable window.

GAGCNLT_STARTUP_LOAD_OPTIONS
Objects on this list need to receive MSG_META_LOAD_OPTIONS on startup. MSG_META_LOAD_OPTIONS is automatically sent by the UI when the application starts up. MSG_META_SAVE_OPTIONS will be sent to the objects on the list when the GenApplicationitself receives a MSG_META_SAVE_OPTIONS. This must be done by the application, usually when a “Save Options” trigger is activated. Objects on this list can be of any class, as MetaClass defines the options behavior, though objects will most likely be generic objects (GenClass provides the .ini file behavior).

The GenViewControl must be placed on this list.

Other objects on this list will be those that support options like GenBooleanGroups, GenItemGroups, or a GenInteractions with ATTR_GEN_INIT_FILE_PROPAGATE_TO_CHILDREN. These should have the appropriate ATTR_GEN_INIT_FILE_KEY. The GenApplication object should have an appropriate ATTR_GEN_INIT_FILE_CATEGORY.

GAGCNLT_ALWAYS_INTERACTABLE_WINDOWS
Objects on this are windows that should always remain interactable (even when modal windows are on screen).

GAGCNLT_USER_DO_DIALOGS
Objects on this list include all dialog boxes initiated via UserDoDialog.

GAGCNLT_MODAL_WIN_CHANGE
Objects on this list need notification upon modal window changes within the application.

Library: geoworks.def


GeoWorksMetaGCNListType

GeoWorksMetaGCNListType         etype word, FIRST_META_GCN_LIST_TYPE, 2
    MGCNLT_ACTIVE_LIST              enum GeoWorksMetaGCNListType
    MGCNLT_APP_STARTUP              enum GeoWorksMetaGCNListType

MGCNLT_ACTIVE_LIST
Objects on this list need to receive MSG_META_ATTACH, MSG_META_DETACH, and/or MSG_META_QUIT. Currently, this represents only certain controllers. These controllers need MSG_META_ATTACH, so they should be placed on the MGCNLT_ACTIVE_LIST list in the .ui file. Other objects may add themselves dynamically to this list, if they only need to receive MSG_META_DETACH or MSG_META_QUIT.

These are the current controllers that need to be on the list: GenToolControl
GenDocumentControl
GenDisplayControl
TextRulerControl
TabControl

Aside from controller-specific reasons, a controller would need to receive MSG_META_ATTACH (and thus would need to be on the active list) if it is always interactable (GCBF_ALWAYS_INTERACTABLE) or if it is always on its GCN lists (GCBF_ALWAYS_ON_GCN_LIST). Objects on this list may be of any class, as MSG_META_ATTACH, MSG_META_DETACH, and MSG_META_QUIT are defined for MetaClass.

MGCNLT_APP_STARTUP
Objects on this list need to receive MSG_META_APP_STARTUP and MSG_META_APP_SHUTDOWN to know when the application has been started or is about to exit regardless of whether the app will become/was available to the user. For example, the GenDocumentControl needs to receive these messages so it can open and manipulate a passed document even when the application is launched in engine mode to perform some query on the document. Objects on this list may be of any class, as MSG_META_APP_STARTUP and MSG_META_APP_SHUTDOWN are defined for MetaClass.

Library: geoworks.def


GeoWorksNotificationType

GeoWorksNotificationType            etype word
    GWNT_INK                                enum GeoWorksNotificationType
    GWNT_GEN_CONTROL_NOTIFY_STATUS_CHANGE   enum GeoWorksNotificationType
    ;
    ;GenEditControl related.
    ;
    GWNT_SELECT_STATE_CHANGE                enum GeoWorksNotificationType
    GWNT_UNDO_STATE_CHANGE                  enum GeoWorksNotificationType
    ;
    ;StyleSheetControl related.
    ;
    GWNT_STYLE_CHANGE                       enum GeoWorksNotificationType
    GWNT_STYLE_SHEET_CHANGE                 enum GeoWorksNotificationType
    ;
    ;High-level types for the Text object
    ;
    GWNT_TEXT_CHAR_ATTR_CHANGE              enum GeoWorksNotificationType
    GWNT_TEXT_PARA_ATTR_CHANGE              enum GeoWorksNotificationType
    GWNT_TEXT_TYPE_CHANGE                   enum GeoWorksNotificationType
    GWNT_TEXT_SELECTION_CHANGE              enum GeoWorksNotificationType
    GWNT_TEXT_COUNT_CHANGE                  enum GeoWorksNotificationType
    ;
    ;Low-level types for the Text object
    ;
    GWNT_TEXT_STYLE_CHANGE                  enum GeoWorksNotificationType
    GWNT_FONT_CHANGE                        enum GeoWorksNotificationType
    GWNT_POINT_SIZE_CHANGE                  enum GeoWorksNotificationType
    GWNT_FONT_ATTR_CHANGE                   enum GeoWorksNotificationType
    GWNT_JUSTIFICATION_CHANGE               enum GeoWorksNotificationType
    GWNT_TEXT_FG_COLOR_CHANGE               enum GeoWorksNotificationType
    GWNT_TEXT_BG_COLOR_CHANGE               enum GeoWorksNotificationType
    GWNT_TEXT_PARA_COLOR_CHANGE             enum GeoWorksNotificationType
    GWNT_TEXT_BORDER_COLOR_CHANGE           enum GeoWorksNotificationType
    GWNT_SEARCH_REPLACE_ENABLE_CHANGE       enum GeoWorksNotificationType
    GWNT_SPELL_ENABLE_CHANGE                enum GeoWorksNotificationType
    ;
    ;Chart library notification types
    ;
    GWNT_CHART_TYPE_CHANGE                  enum GeoWorksNotificationType
    GWNT_CHART_GROUP_FLAGS                  enum GeoWorksNotificationType
    GWNT_CHART_AXIS_ATTRIBUTES              enum GeoWorksNotificationType
    ;
    ;GrObj library notification types
    ;
    GWNT_GROBJ_CURRENT_TOOL_CHANGE          enum GeoWorksNotificationType
    GWNT_GROBJ_BODY_SELECTION_STATE_CHANGE  enum GeoWorksNotificationType
    GWNT_GROBJ_AREA_ATTR_CHANGE             enum GeoWorksNotificationType
    GWNT_GROBJ_LINE_ATTR_CHANGE             enum GeoWorksNotificationType
    GWNT_GROBJ_TEXT_ATTR_CHANGE             enum GeoWorksNotificationType
    GWNT_GROBJ_BODY_INSTRUCTION_FLAGS_CHANGE enum GeoWorksNotificationType
    GWNT_GROBJ_GRADIENT_ATTR_CHANGE         enum GeoWorksNotificationType
    ;
    ;Ruler library notification types
    ;
    GWNT_RULER_TYPE_CHANGE                  enum GeoWorksNotificationType
    GWNT_RULER_GRID_CHANGE                  enum GeoWorksNotificationType
    GWNT_RULER_GUIDE_CHANGE                 enum GeoWorksNotificationType
    ;
    ;Bitmap library notification types
    ;
    GWNT_BITMAP_CURRENT_TOOL_CHANGE         enum GeoWorksNotificationType
    GWNT_BITMAP_CURRENT_FORMAT_CHANGE       enum GeoWorksNotificationType
    ;
    ;Flat File library notification types
    ;
    GWNT_FLAT_FILE_FIELD_PROPERTIES_STATUS_CHANGE enum GeoWorksNotificationType
    GWNT_FLAT_FILE_FIELD_LIST_CHANGE        enum GeoWorksNotificationType
    GWNT_FLAT_FILE_RCP_STATUS_CHANGE        enum GeoWorksNotificationType
    GWNT_FLAT_FILE_FIELD_APPEARANCE_CHANGE  enum GeoWorksNotificationType
    GWNT_FLAT_FILE_DUMMY_CHANGE_2           enum GeoWorksNotificationType
    GWNT_FLAT_FILE_DUMMY_CHANGE_3           enum GeoWorksNotificationType
    ;
    ;Spool library notification types
    ;
    GWNT_SPOOL_DOC_OR_PAPER_SIZE            enum GeoWorksNotificationType
    ;
    ;View control notification types
    ;
    GWNT_VIEW_STATE_CHANGE                  enum GeoWorksNotificationType
    ;
    ;Ink control notification types
    ;
    GWNT_INK_HAS_TARGET                     enum GeoWorksNotificationType
    ;
    ;Page control notification types
    ;
    GWNT_PAGE_STATE_CHANGE                  enum GeoWorksNotificationType
    ;
    ;Document control notification types
    ;
    GWNT_DOCUMENT_CHANGE                    enum GeoWorksNotificationType
    ;
    ;Display control notification types
    ;
    GWNT_DISPLAY_CHANGE                     enum GeoWorksNotificationTyp
    GWNT_DISPLAY_LIST_CHANGE                enum GeoWorksNotificationType
    ;
    ;Spline library notification types
    ;
    GWNT_SPLINE_MARKER_SHAPE                enum GeoWorksNotificationType
    GWNT_SPLINE_POINT                       enum GeoWorksNotificationType
    GWNT_SPLINE_POLYLINE                    enum GeoWorksNotificationType
    GWNT_SPLINE_SMOOTHNESS                  enum GeoWorksNotificationType
    GWNT_SPLINE_OPEN_CLOSE_CHANGE           enum GeoWorksNotificationType
    ;
    GWNT_UNUSED_1                           enum GeoWorksNotificationType
    ;
    ;Spreadsheet control notification types
    ;
    GWNT_SPREADSHEET_ACTIVE_CELL_CHANGE     enum GeoWorksNotificationType
    GWNT_SPREADSHEET_EDIT_BAR_CHANGE        enum GeoWorksNotificationType
    GWNT_SPREADSHEET_SELECTION_CHANGE       enum GeoWorksNotificationType
    GWNT_SPREADSHEET_CELL_WIDTH_HEIGHT_CHANGE enum GeoWorksNotificationType
    GWNT_SPREADSHEET_DOC_ATTR_CHANGE        enum GeoWorksNotificationType
    GWNT_SPREADSHEET_CELL_ATTR_CHANGE       enum GeoWorksNotificationType
    GWNT_SPREADSHEET_CELL_NOTES_CHANGE      enum GeoWorksNotificationType
    GWNT_SPREADSHEET_DATA_RANGE_CHANGE      enum GeoWorksNotificationType
    ;
    ;Float library notification types
    ;
    GWNT_FLOAT_FORMAT_CHANGE                enum GeoWorksNotificationType
    ;
    ;Impex mapping control notification types
    ;
    GWNT_MAP_APP_CHANGE                     enum GeoWorksNotificationType
    GWNT_MAP_LIBRARY_CHANGE                 enum GeoWorksNotificationType
    ;
    ;Transfer notification types
    ;
    GWNT_TEXT_NAME_CHANGE                   enum GeoWorksNotificationType
    ;
    ;Card library notification types
    ;
    GWNT_CARD_BACK_CHANGE                   enum GeoWorksNotificationType
    ;
    ;
    GWNT_TEXT_OBJECT_HAS_FOCUS              enum GeoWorksNotificationType
    GWNT_TEXT_CONTEXT                       enum GeoWorksNotificationType
    GWNT_TEXT_REPLACE_WITH_HWR              enum GeoWorksNotificationType
    ;
    ;Help notification types
    ;
    GWNT_HELP_CONTEXT_CHANGE                enum GeoWorksNotificationType
    ;
    GWNT_FLOAT_FORMAT_INIT                  enum GeoWorksNotificationType
    ;
    ;Hard Icon Bar notification types
    ;
    GWNT_HARD_ICON_BAR_FUNCTION             enum GeoWorksNotificationType
    GWNT_STARTUP_INDEXED_APP                enum GeoWorksNotificationType
    ;
    GWNT_SPOOL_PRINTING_COMPLETE            enum GeoWorksNotificationType
    GWNT_MODAL_WIN_CHANGE                   enum GeoWorksNotificationType
    GWNT_SPREADSHEET_NAME_CHANGE            enum GeoWorksNotificationType
    GWNT_DOCUMENT_OPEN_COMPLETE             enum GeoWorksNotificationType
    GWNT_EMAIL_SCAN_INBOX                   enum GeoWorksNotificationType
    GWNT_FOCUS_WINDOW_KBD_STATUS            enum GeoWorksNotificationType
    GWNT_TAB_DOUBLE_CLICK                   enum GeoWorksNotificationType
    GWNT_PAGE_INFO_STATE_CHANGE             enum GeoWorksNotificationType
    GWNT_CURSOR_POSITION_CHANGE             enum GeoWorksNotificationType
    GWNT_FAX_NEW_JOB_CREATED                enum GeoWorksNotificationType
    GWNT_FAX_NEW_JOB_COMPLETED              enum GeoWorksNotificationType
    GWNT_EMAIL_DATABASE_CHANGE              enum GeoWorksNotificationType
    GWNT_EMAIL_STATUS_CHANGE                enum GeoWorksNotificationType
    GWNT_EMAIL_PAGE_PANEL_UPDATE            enum GeoWorksNotificationType
    GWNT_PCCOM_DISPLAY_CHAR                 enum GeoWorksNotificationType
    GWNT_PCCOM_DISPLAY_STRING               enum GeoWorksNotificationType
    GWNT_PCCOM_EXIT                         enum GeoWorksNotificationType

GWNT_INK
Objects on this list receive notification of data collected as ink. This notification passes the handle of a data block holding an InkHeader structure (containing a series of ink points) in bp. If the handle is null, the system could not allocate memory to hold all the points, or was intercepted by an Input Monitor.

Note: If a monitor intercepts MSG_META_NOTIFY_WITH_DATA_BLOCK with GWNT_INK, it must still pass it on, but may pass on bp=0 if it wants to consume the ink data itself.

Format of data:
InkHeader <>
Point<>
Point<>


The high bit of the x coord is set to denote the end of a line segment.

The points are all in the screen coordinates ; objects may want to convert them into their own window coordinates using WinUntransform().

GWNT_GEN_CONTROL_NOTIFY_STATUS_CHANGE
Objects on this list receive notification of a status change in GenControl objects. This notification passes the data type NotifyGenControlStatusChange.

GWNT_SELECT_STATE_CHANGE
Objects on this list are notified when a selection state has changed within a GenEditControl (cut/copy/paste). This type uses MSG_META_NOTIFY_WITH_DATA_BLOCK. This notification passes the data type NotifySelectStateChange.

GWNT_UNDO_STATE_CHANGE
This notification passes the data type NotifyUndoStateChange.

GWNT_STYLE_CHANGE
Objects on this list (a style sheet control) are notified when a style change occurs . This notification passes the data type NotifyStyleChange.

GWNT_STYLE_SHEET_CHANGE
This notification passes the data type NotifyStyleSheetChange.

GWNT_TEXT_CHAR_ATTR_CHANGE
This notification passes the data type VisTextNotifyCharAttrChange.

GWNT_TEXT_PARA_ATTR_CHANGE
This notification passes the data type VisTextNotifyParaAttrChange.

GWNT_TEXT_TYPE_CHANGE
This notification passes the data type VisTextNotifyTypeChange.

GWNT_TEXT_SELECTION_CHANGE
This notification passes the data type VisTextNotifySelectionChange.

GWNT_TEXT_COUNT_CHANGE
This notification passes the data type VisTextNotifyCountChange.

GWNT_TEXT_STYLE_CHANGE
This notification passes the data type NotifyTextStyleChange.

GWNT_FONT_CHANGE
This notification passes the data type NotifyFontChange.

GWNT_POINT_SIZE_CHANGE
This notification passes the data type NotifyPointSizeChange.

GWNT_FONT_ATTR_CHANGE
This notification passes the data type NotifyFontAttrChange.

GWNT_JUSTIFICATION_CHANGE
This notification passes the data type NotifyJustificationChange.

GWNT_TEXT_FG_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GWNT_TEXT_BG_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GWNT_TEXT_PARA_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GWNT_TEXT_BORDER_COLOR_CHANGE
This notification passes the data type NotifyColorChange.

GWNT_SEARCH_REPLACE_ENABLE_CHANGE
This notification passes the data type NotifySearchReplaceEnableChange.

GWNT_SPELL_ENABLE_CHANGE
This notification passes the data type NotifySpellEnableChange.

GWNT_CHART_TYPE_CHANGE
Objects on this list receive notification when the chart type changes.

GWNT_SPOOL_DOC_OR_PAPER_SIZE
This notification passes the data type PageSizeReport.

GWNT_VIEW_STATE_CHANGE
This notification passes the data type NotifyViewStateChange.

GWNT_INK_HAS_TARGET
Send with MSG_META_NOTIFY (bp = non-zero if we have the target).

GWNT_PAGE_STATE_CHANGE
This notification passes the data type NotifyPageStateChange.

GWNT_DOCUMENT_CHANGE
This notification passes the data type NotifyDocumentChange.

GWNT_DISPLAY_CHANGE
This notification passes the data type NotifyDisplayChange.

GWNT_DISPLAY_LIST_CHANGE
This notification passes the data type NotifyDisplayListChange.

GWNT_SPREADSHEET_ACTIVE_CELL_CHANGE
This notification passes the data type NotifySSheetActiveCellChange.

GWNT_SPREADSHEET_EDIT_BAR_CHANGE
This notification passes the data type NotifySSheetEditBarChange.

GWNT_SPREADSHEET_SELECTION_CHANGE
This notification passes the data type NotifySSheetSelectionChange.

GWNT_SPREADSHEET_CELL_WIDTH_HEIGHT_CHANGE
This notification passes the data type NotifySSheetCellWidthHeightChange.

GWNT_SPREADSHEET_DOC_ATTR_CHANGE
This notification passes the data type NotifySSheetDocAttrChange.

GWNT_SPREADSHEET_CELL_ATTR_CHANGE
This notification passes the data type NotifySSheetCellAttrChange.

GWNT_SPREADSHEET_DATA_RANGE_CHANGE
This notification passes the data type NotifySSheetDataRangeChange.

GWNT_TEXT_NAME_CHANGE
This notification passes the data type VisTextNotifyNameChange.

GWNT_TEXT_REPLACE_WITH_HWR
This notification passes the data type InkHeader (and ink data), followed by a ReplaceWithHWRData structure.

GWNT_HELP_CONTEXT_CHANGE
This notification passes the data type NotifyHelpChange.

GWNT_HARD_ICON_BAR_FUNCTION
GenApplication objects on this list will perform the indicated function when receiving this notification.

GWNT_STARTUP_INDEXED_APP
Objects on this list start up the passed application when receiving this notification.

GWNT_SPOOL_PRINTING_COMPLETE
Objects on this list receive notification that printing has been completed. The spooler does not send this out, but instead delays MSG_META_SEND_CLASSED_EVENTs that are sent to it having this as the encapsulated message, until printing is completed. This list is used in remote (IACP) printing.

GWNT_MODAL_WIN_CHANGE
Objects on this list receive notification that the modal status of the application has changed in some way, by becoming modal, non-modal, or simply changing which window is modal.

GWNT_SPREADSHEET_NAME_CHANGE
Notification that a name has been added, deleted or changed.

GWNT_DOCUMENT_OPEN_COMPLETE
The GenDocument does not send this out, but rather delays MSG_META_SEND_CLASSED_EVENT messages that are sent to it having this as the encapsulated message, until the document has either been opened (and is ready to be printed), or has had the open operation aborted somehow. NOTE: used for remote (IACP) printing - as of yet, there is no need for the document to delay this message, and so code to do that is not present.

GWNT_EMAIL_SCAN_INBOX
Notify an email geode that it should check for new mail.

GWNT_FOCUS_WINDOW_KBD_STATUS
On pen systems, this GCN Notification is sent from focus windows to the GAGCNLT_FOCUS_WINDOW_KBD_STATUS GCN List with the NotifyFocusWindowKbdStatus structure to tell the system what the floating keyboard should do.

GWNT_TAB_DOUBLE_CLICK
Sent when a tab is double clicked on. This is an inelegant solution to allow backwards compatibility

GWNT_PAGE_INFO_STATE_CHANGE
Sent when page info (size, margin) changes. Data type: NotifyPageInfoChange

GWNT_CURSOR_POSITION_CHANGE
Data type: VisTextCursorPositionChange

GWNT_FAX_NEW_JOB_CREATED
Notify the fax spooler that there is a new fax file created.

GWNT_FAX_NEW_JOB_COMPLETED
Notify the fax spooler that the new fax file is completely generated.

GWNT_EMAIL_DATABASE_CHANGE
Notify email app that database has changed.

GWNT_EMAIL_STATUS_CHANGE
Notify email app of current communications state.

GWNT_EMAIL_PAGE_PANEL_UPDATE
Ask the page panel to enable or disable features.

GWNT_PCCOM_DISPLAY_CHAR
Sent when there is a character ready to be displayed Data type: char

GWNT_PCCOM_DISPLAY_STRING
Sent when there is a string ready to be displayed Data type: MemHandle of block containing the null-terminated string.

GWNT_PCCOM_EXIT
Sent when the remote machine has sent the exit command and pccom has exited. Data type: PCComReturnType from the call to PCCOMEXIT.

Library: geoworks.def


GeoWorksPrefDialogGCNListType

GeoWorksPrefDialogGCNListType   etype word, first PrefDialogMessages, 2
    PDGCNLT_DIALOG_CHANGE           enum GeoWorksPrefDialogGCNListType
    ; MSG_PREF_NOTIFY_DIALOG_CHANGE sent out.

Library: config.def


GeoWorksVisContentGCNListType

GeoWorksVisContentGCNListType               etype word , 
    FIRST_VIS_CONTENT_GCN_LIST_TYPE, 2
    VCGCNLT_TARGET_NOTIFY_TEXT_PARA_ATTR_CHANGE enum 
                                        GeoWorksVisContentGCNListType
    ;Data type: VisTextNotifyParaAttrChange

Library: geoworks.def


GestureType

GestureType     etype word
    GT_NO_GESTURE               enum GestureType
    GT_DELETE_CHARS             enum GestureType
    GT_SELECT_CHARS             enum GestureType
    GT_V_CROSSOUT               enum GestureType
    GT_H_CROSSOUT               enum GestureType
    GT_BACKSPACE                enum GestureType

Library: hwr.def


GetContextParams

GetContextParams        struct
    GCP_replyObj        optr    ;Output to reply to via MSG_META_CONTEXT
    GCP_numCharsToGet   word    ;Maximum number of characters to return
    GCP_location        ContextLocation
    GCP_position        dword
GetContextParams        ends

Library: Objects/vTextC.def


GetItemMonikerParams

GetItemMonikerParams        struct
    GIMP_identifier             word
    GIMP_bufferSize             word
    GIMP_buffer                 fptr.char
GetItemMonikerParams        ends

Library: config.def


GetMaskType

GetMaskType     etype byte
    GMT_ENUM        enum GetMaskType
    GMT_BUFFER      enum GetMaskType

Library: graphics.def


GetPalType

GetPalType      etype byte
    GPT_ACTIVE          enum GetPalType
    GPT_DEFAULT         enum GetPalType

Library: color.def


GetPathType

GetPathType     etype   word
    GPT_CURRENT     enum GetPathType    ; current path
    GPT_CLIP        enum GetPathType    ; clip path
    GPT_WIN_CLIP    enum GetPathType    ; win clip path

Use this type with GrGetPath to determine which sort of path to get.

Library:


GetSearchSpellObjectParam

GetSearchSpellObjectParam               record
    GSSOP_RELAYED_FLAG      :1
                            :11
    GSSOP_TYPE              GetSearchSpellObjectType:4
GetSearchSpellObjectParam               end

Library: Objects/vTextC.def


GetSearchSpellObjectType

GetSearchSpellObjectType            etype word
    GSSOT_FIRST_OBJECT              enum GetSearchSpellObjectType
    GSSOT_LAST_OBJECT               enum GetSearchSpellObjectType
    GSSOT_NEXT_OBJECT               enum GetSearchSpellObjectType
    GSSOT_PREV_OBJECT               enum GetSearchSpellObjectType

GSSOT_FIRST_OBJECT
This type indicates to the spell checker to start spell checking from the first object encountered in the document when the user clicks on “Check Entire Document.” It is also used by the search code to wrap a search to the beginning after it has reached the end.

GSSOT_LAST_OBJECT
This type indicates to the spell checker to wrap a backwards search around to the end.

GSSOT_NEXT_OBJECT
This type indicates to the spell checker to go to the next object in which to continue spell checking. At the end of the chain of objects, it should return 0:0.

GSSOT_PREV_OBJECT
This type indicates to the spell checker to go to the previous object when continuing spell checking. After reaching the start of the chain, it should return 0:0.

Library: Objects/vTextC.def


GetVarDataParams

GetVarDataParams        struct
    GVDP_buffer             fptr
    GVDP_bufferSize         word
    GVDP_dataType           word
GetVarDataParams        ends

GVDP_buffer stores the pointer to the buffer to fill with data from the VarData entry. This must be passed unless GVDP_bufferSize is 0.

GVDP_bufferSize stores the size of the above buffer (to allow us to prevent overflow). This must be set to zero if no buffer is passed.

GVDP_dataType stores the VarData type whose data should be returned.

Library: Objects/metaC.def


GFM_info

GFM_info        etype word, 0, 2
    GFMI_HEIGHT                 enum GFM_info   ;height of font box
    GFMI_MEAN                   enum GFM_info   ;top of lowers
    GFMI_DESCENT                enum GFM_info   ;descent of lowers
    GFMI_BASELINE               enum GFM_info   ;baseline offset
    GFMI_LEADING                enum GFM_info   ;external leading
    GFMI_AVERAGE_WIDTH          enum GFM_info   ;average char width
    GFMI_ASCENT                 enum GFM_info   ;ascent line to baseline
    GFMI_MAX_WIDTH              enum GFM_info   ;widest char width
    GFMI_MAX_ADJUSTED_HEIGHT    enum GFM_info   ;height, adjusted, with 
                                                ;above/below
    GFMI_UNDER_POS              enum GFM_info   ;offset to underline
    GFMI_UNDER_THICKNESS        enum GFM_info   ;thickness of underline
    GFMI_ABOVE_BOX              enum GFM_info   ;height of above box
    GFMI_ACCENT                 enum GFM_info   ;height of accent
    GFMI_DRIVER                 enum GFM_info   ;driver ID
    GFMI_KERN_COUNT             enum GFM_info   ;# of kerning pairs
    GFMI_FIRST_CHAR             enum GFM_info   ;first character in font
    GFMI_LAST_CHAR              enum GFM_info   ;last character in font
    GFMI_DEFAULT_CHAR           enum GFM_info   ;default character for font
    GFMI_STRIKE_POS             enum GFM_info   ;strike-through position
    GFMI_BELOW_BOX              enum GFM_info   ;height of below box

Library: font.def


GFSTempDataEntry

GFSTempDataEntry        struct
    GFSTDE_selectionNumber      word
    GFSTDE_selectionFlags       GenFileSelectorEntryFlags
GFSTempDataEntry        ends

Library: Objects/gFSelC.def


GOAACFeatures

GOAACFeatures       record
    GOAACF_MM_CLEAR             :1
    GOAACF_MM_COPY              :1
    GOAACF_MM_NOP               :1
    GOAACF_MM_AND               :1
    GOAACF_MM_INVERT            :1
    GOAACF_MM_XOR               :1
    GOAACF_MM_SET               :1
    GOAACF_MM_OR                :1
    GOAACF_TRANSPARENCY         :1
    GOAACFeatures       end

Library: grobj.def


GOArcCFeatures

GOArcCFeatures      record
    GOACF_START_ANGLE           :1
    GOACF_END_ANGLE             :1
    GOACF_PIE_TYPE              :1
    GOACF_CHORD_TYPE            :1
GOArcCFeatures      end

Library: grobj.def


GOATGCFeatures

GOATGCFeatures      record
    GOATGCF_ALIGN_TO_GRID       :1
GOATGCFeatures      end

Library: grobj.def


GOCCFeatures

GOCCFeatures        record
    GOCCF_CONVERT_TO_BITMAP         :1
    GOCCF_CONVERT_TO_GRAPHIC        :1
    GOCCF_CONVERT_FROM_GRAPHIC      :1
GOCCFeatures        end

Library: grobj.def


GOCDCFeatures

GOCDCFeatures       record
    GOCDCF_REPITITIONS      :1
    GOCDCF_MOVE             :1
    GOCDCF_SCALE            :1
    GOCDCF_ROTATE           :1
    GOCDCF_SKEW             :1
GOCDCFeatures       end

Library: grobj.def


GOCSCFeatures

GOCSCFeatures       record
    GOCSCF_NUM_POLYGON_SIDES        :1
    GOCSCF_POLYGON_RADIUS           :1
    GOCSCF_NUM_STAR_POINTS          :1
    GOCSCF_STAR_RADII               :1
GOCSCFeatures       end

Library: grobj.def


GODACFeatures

GODACFeatures       record
    GODACF_SET_DEFAULT_ATTRIBUTES       :1
GODACFeatures       end

Library: grobj.def


GODepthCFeatures

GODepthCFeatures        record
    GODepthCF_BRING_TO_FRONT            :1
    GoDepthCF_SEND_TO_BACK              :1
    GoDepthCF_SHUFFLE_UP                :1
    GoDepthCF_SHUFFLE_DOWN              :1
GODepthCFeatures        end

Library: grobj.def


GODMCFeatures

GODMCFeatures       record
    GODMCF_DRAFT_MODE               :1
GODMCFeatures       end

Library: grobj.def


GOFCFeatures

GOFCFeatures        record
    GOFCF_FLIP_HORIZONTALLY             :1
    GOFCF_FLIP_VERTICALLY               :1
GOFCFeatures        end

Library: grobj.def


GOGCFeatures

GOGCFeatures        record
    GOGCF_GROUP             :1
    GOGCF_UNGROUP           :1
GOGCFeatures        end

Library: grobj.def


GOHCFeatures

GOHCFeatures        record
    GOHCF_SMALL_HANDLES             :1
    GOHCF_MEDIUM_HANDLES            :1
    GOHCF_LARGE_HANDLES             :1
    GOHCF_INVISIBLE_HANDLES         :1
GOHCFeatures        end

Library: grobj.def


GOHSCFeatures

GOHSCFeatures       record
    GOHSCF_HIDE         :1
    GOHSCF_SHOW         :1
GOHSCFeatures       end

Library: grobj.def


GOLACFeatures

GOLACFeatures       record
    GOLACF_WIDTH_INDEX          :1
    GOLACF_WIDTH_VALUE          :1
    GOLACF_STYLE                :1
    GOLACF_ARROWHEAD_TYPE       :1
    GOLACF_ARROWHEAD_WHICH_END  :1
GOLACFeatures       end

Library: grobj.def


GOLACToolboxFeatures

GOLACToolboxFeatures            record
    GOLACTF_WIDTH_INDEX             :1
    GOLACTF_STYLE                   :1
GOLACToolboxFeatures            end

Library: grobj.def


GOPICFeatures

GOPICFeatures   record
    GOPICF_PASTE_INSIDE             :1
    GOPICF_BREAKOUT_PASTE_INSIDE    :1
GOPICFeatures   end

Library: grobj.def


GOPICToolboxFeatures

GOPICToolboxFeatures    record
    GOPICTF_PASTE_INSIDE            :1
    GOPICTF_BREAKOUT_PASTE_INSIDE   :1
GOPICToolboxFeatures    end

Library: grobj.def


GOTCFeatures

GOTCFeatures        record
    GOTCF_PTR               :1
    GOTCF_ROTATE_PTR        :1
    GOTCF_ZOOM              :1
    GOTCF_TEXT              :1
    GOTCF_LINE              :1
    GOTCF_RECT              :1
    GOTCF_ROUNDED_RECT      :1
    GOTCF_ELLIPSE           :1
    GOTCF_ARC               :1
    GOTCF_POLYLINE          :1
    GOTCF_POLYCURVE         :1
    GOTCF_SPLINE            :1
GOTCFeatures        end

Library: grobj.def


GOTransformCFeatures

GOTransformCFeatures            record
    GOTCF_UNTRANSFORM               :1
GOTransformCFeatures            end

Library: grobj.def


GPCFeatures

GPCFeatures         record
    GPCF_GOTO_PAGE              :1
    GPCF_NEXT_PAGE              :1
    GPCF_PREVIOUS_PAGE          :1
GPCFeatures         end

Library: gPageCC.def


GPCToolboxFeatures

GPCToolboxFeatures      record
    GPCTF_PREVIOUS_PAGE         :1
    GPCTF_GOTO_PAGE             :1
    GPCTF_NEXT_PAGE             :1
GPCToolboxFeatures      end

Library: gPageCC.def


GPICFeatures

GPICFeatures            record
    GPICF_KEYBOARD                      :1
    GPICF_CHAR_TABLE                    :1
    GPICF_CHAR_TABLE_SYMBOLS            :1
    GPICF_CHAR_TABLE_INTERNATIONAL      :1
    GPICF_CHAR_TABLE_MATH               :1
    GPICF_CHAR_TABLE_CUSTOM             :1
    GPICF_HWR_ENTRY_AREA                :1
GPICFeatures            end

Library: gPenICC.def


GPICToolboxFeatures

GPICToolboxFeatures         record
    GPICTF_INITIATE     :1
GPICToolboxFeatures         end

Library: grobj.def


GraphicPattern

GraphicPattern      struct
    GP_type     PatternType
    GP_data     byte
GraphicPattern      ends

This structure stores a system hatch pattern.

Library: graphics.def


Grid

Grid    struct
    G_x WWFixed         ;pixels between horiz gridlines
    G_y WWFixed         ;pixels between vert gridlines
Grid    ends

Library: ruler.def


GridOptions

GridOptions     record
    GO_SHOW_GRID            :1
    GO_SNAP_TO_GRID         :1
                            :6
GridOptions     end

Library: ruler.def


GrInfoType

GrInfoType      etype word, 0, 2
    GIT_PRIVATE_DATA        enum GrInfoType
    GIT_WINDOW              enum GrInfoType

Library: graphics.def


GrObjActionModes

GrObjActionModes        record
    GOAM_RESIZE                 :1
    GOAM_MOVE                   :1
    GOAM_ROTATE                 :1
    GOAM_CHOOSE                 :1
    GOAM_ACTION_ACTIVATED       :1
    GOAM_ACTION_PENDING         :1
    GOAM_ACTION_HAPPENING       :1
    GOAM_CREATE                 :1
GrObjActionModes        end

Library: grobj.def


GrObjActionNotificationStruct

GrObjActionNotificationStruct               struct
    GOANS_suspendCount      word    ; If non-zero, then defer sending out 
                                    ; action notification.
    GOANS_optr              optr    ; OD to send message to.
GrObjActionNotificationStruct               ends

Library: grobj.def


GrObjActionNotificationType

GrObjActionNotificationType             etype word
    GOANT_NULL              enum GrObjActionNotificationType
            ; Reserve zero as a special value
    GOANT_SELECTED          enum GrObjActionNotificationType
    GOANT_UNSELECTED        enum GrObjActionNotificationType
    GOANT_CREATED           enum GrObjActionNotificationType
    GOANT_MOVED             enum GrObjActionNotificationType
    GOANT_RESIZED           enum GrObjActionNotificationType
    GOANT_ROTATED           enum GrObjActionNotificationType
    GOANT_SKEWED            enum GrObjActionNotificationType
    GOANT_TRANSFORMED       enum GrObjActionNotificationType
    GOANT_ATTRED            enum GrObjActionNotificationType
    GOANT_SPEC_MODIFIED     enum GrObjActionNotificationType
    GOANT_PASTED            enum GrObjActionNotificationType
    GOANT_DELETED           enum GrObjActionNotificationType
    GOANT_WRAP_CHANGED      enum GrObjActionNotificationType
    GOANT_UNDO_GEOMETRY     enum GrObjActionNotificationType
    GOANT_UNDO_DELETE       enum GrObjActionNotificationType
    GOANT_REDO_DELETE       enum GrObjActionNotificationType
    GOANT_PRE_MOVE          enum GrObjActionNotificationType
    GOANT_PRE_RESIZE        enum GrObjActionNotificationType
    GOANT_PRE_ROTATE        enum GrObjActionNotificationType
    GOANT_PRE_SKEW          enum GrObjActionNotificationType
    GOANT_PRE_TRANSFORM     enum GrObjActionNotificationType
    GOANT_PRE_SPEC_MODIFY   enum GrObjActionNotificationType
    GOANT_QUERY_DELETE      enum GrObjActionNotificationType
    GOANT_PRE_WRAP_CHANGE   enum GrObjActionNotificationType

Library: grobj.def


GrObjAlignDistributeControlFeatures

GrObjAlignDistributeControlFeatures record
    GOADCF_ALIGN_LEFT                               :1
    GOADCF_ALIGN_CENTER_HORIZONTALLY                :1
    GOADCF_ALIGN_RIGHT                              :1
    GOADCF_ALIGN_WIDTH                              :1
    GOADCF_ALIGN_TOP                                :1
    GOADCF_ALIGN_CENTER_VERTICALLY                  :1
    GOADCF_ALIGN_BOTTOM                             :1
    GOADCF_ALIGN_HEIGHT                             :1
    GOADCF_DISTRIBUTE_LEFT                          :1
    GOADCF_DISTRIBUTE_CENTER_HORIZONTALLY           :1
    GOADCF_DISTRIBUTE_RIGHT                         :1
    GOADCF_DISTRIBUTE_WIDTH                         :1
    GOADCF_DISTRIBUTE_TOP                           :1
    GOADCF_DISTRIBUTE_CENTER_VERTICALLY             :1
    GOADCF_DISTRIBUTE_BOTTOM                        :1
    GOADCF_DISTRIBUTE_HEIGHT                        :1
GrObjAlignDistributionControlFeatures end

Library: grobj.def


GrObjAnchoredScaleData

GrObjAnchoredScaleData          struct
    GOASD_scale             GrObjScaleData
    GOASD_scaleAnchor       GrObjHandleSpecification
    align                   word
GrObjAnchoredScaleData          ends

Library: grobj.def


GrObjAnchoredSkewData

GrObjAnchoredSkewData           struct
    GOASD_degrees           GrObjSkewData
    GOASD_skewAnchor        GrObjHandleSpecification
    align                   word
GrObjAnchoredSkewData           ends

Library: grobj.def


GrObjAreaAttrElementType

GrObjAreaAttrElementType            etype byte
    GOAAET_BASE             enum GrObjAreaAttrElementType
    ;GrObjBaseAreaAttrElement
    GOAAET_GRADIENT         enum GrObjAreaAttrElementType
    ;GrObjGradientAreaAttrElement

Library: grobj.def


GrObjAreaAttrInfoRecord

GrObjAreaAttrInfoRecord         record
    GOAAIR_TRANSPARENT              :1
GrObjAreaAttrInfoRecord         end

GOAAIR_TRANSPARENT
This flag indicates a GrObj area is transparent. If this flag is set, then there is no need to redraw the background behind the object.

Library: grobj.def


GrObjAttrFlags

GrObjAttrFlags      record
                                            :6
    GOAF_DONT_COPY_LOCKS                    :1
    GOAF_HAS_PASTE_INSIDE_CHILDREN          :1
    GOAF_PASTE_INSIDE                       :1
    GOAF_INSERT_DELETE_MOVE_ALLOWED         :1
    GOAF_INSERT_DELETE_RESIZE_ALLOWED       :1
    GOAF_INSERT_DELETE_DELETE_ALLOWED       :1
    GOAF_INSTRUCTION                        :1
    GOAF_MULTIPLICATIVE_RESIZE              :1
    GOAF_WRAP                               GrObjWrapTextType:2
GrObjAttrFlags      end

GOAF_DONT_COPY_LOCKS
This flag indicates that when the object is written out to the transfer format, any locks will not be copied.

GOAF_HAS_PASTE_INSIDE_CHILDREN
This flag indicates that the object contains paste inside children. (This is only relevant for objects in groups.)

GOAF_PASTE_INSIDE
Meaningless unless object is in a group. This flag indicates that the object was pasted inside a group and will be drawn clipped to the group’s normal children. (This is only relevant for objects in groups.)

GOAF_INSERT_DELETE_MOVE_ALLOWED
This flag indicates that this GrObj can be moved as a result of a MSG_GO_INSERT_OR_DELETE_SPACE.

GOAF_INSERT_DELETE_RESIZE_ALLOWED
This flag indicates that this GrObj can be resized as a result of MSG_GO_INSERT_OR_DELETE_SPACE.

GOAF_INSERT_DELETE_DELETE_ALLOWED
This flag indicates that this GrObj can be deleted as a result of a MSG_GO_INSERT_OR_DELETE_SPACE.

GOAF_INSTRUCTION
This flag indicates that this object is used for instructions in a template.

GOAF_MULTIPLICATIVE_RESIZE
This flag indicates whether resize deltas are added to object coordinates. If true, a scale factor is calculated and applied to objects transform. If false, then resize deltas are not added to object coordinates.

GOAF_WRAP
This type indicates how to wrap text with respect to the object.

Library: grobj.def


GrObjAttributeManagerArrayDesc

GrObjAttributeManagerArrayDesc                  struct
    GOAMAD_areaAttrArrayHandle          word
    GOAMAD_areaDefaultElement           word
    GOAMAD_lineAttrArrayHandle          word
    GOAMAD_lineDefaultElement           word
    GOAMAD_grObjStyleArrayHandle        word
    GOAMAD_charAttrArrayHandle          word
    GOAMAD_charDefaultElement           word
    GOAMAD_paraAttrArrayHandle          word
    GOAMAD_paraDefaultElement           word
    GOAMAD_typeArrayHandle              word
    GOAMAD_typeDefaultElementword       word
    GOAMAD_graphicArrayHandle           word
    GOAMAD_nameArrayHandle              word
    GOAMAD_textStyleArrayHandle         word
GrObjAttributeManagerArrayDesc                  ends

GOAMAD_areaAttrArrayHandle stores the VM block handle of the element array for area attributes. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, an area attribute array will be created.

GOAMAD_areaDefaultElement stores the element number of the default area attributes in the area attribute array. This value is ignored if 0 is passed in GOAMAD_areaAttrArrayHandle.

GOAMAD_lineAttrArrayHandle stores the VM block handle of the element array for line attributes. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a line attribute array will be created.

GOAMAD_lineDefaultElement stores the element number of the default line attributes in the line attribute array. This value is ignored if 0 is passed in GOAMAD_inlineAttrArrayHandle.

GOAMAD_grObjStyleArrayHandle stores the VM block handle of the element array for grobj styles. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a style array will be created.

GOAMAD_charAttrArrayHandle stores the VM block handle of the element array for character attributes. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a character attribute array will be created.

GOAMAD_charDefaultElement stores the element number of the default attributes in the character array. This value is ignored if 0 is passed in GOAMAD_charAttrArrayHandle.

GOAMAD_paraAttrArrayHandle stores the VM block handle of the element array for paragraph attributes. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a paragraph attribute array will be created.

GOAMAD_paraDefaultElement stores the element number of the default attributes in the paragraph array. This value is ignored if 0 is passed in GOAMAD_paraAttrArrayHandle.

GOAMAD_typeArrayHandle stores the VM block handle of the element array for types. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a type array will be created.

GOAMAD_typeDefaultElement stores the element number of the default attributes in a type array. This value is ignored if 0 is passed in GOAMAD_paraAttrArrayHandle.

GOAMAD_graphicArrayHandle stores the VM block handle of the element array for graphics. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a graphic array will be created.

GOAMAD_nameArrayHandle stores the VM block handle of the element array for names. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a name array will be created.

GOAMAD_textStyleArrayHandle stores the VM block handle of the element array for text styles. The associated chunk must be at the GROBJ_VM_ELEMENT_ARRAY_CHUNK offset. If 0, a style array will be created.

Library: grobj.def


GrObjBaseAreaAttrDiffs

GrObjBaseAreaAttrDiffs          record
    GOBAAD_MULTIPLE_ELEMENT_TYPES           :1
    GOBAAD_MULTIPLE_STYLE_ELEMENTS          :1
    GOBAAD_MULTIPLE_COLORS                  :1
    GOBAAD_MULTIPLE_BACKGROUND_COLORS       :1
    GOBAAD_MULTIPLE_MASKS                   :1
    GOBAAD_MULTIPLE_PATTERNS                :1
    GOBAAD_MULTIPLE_DRAW_MODES              :1
    GOBAAD_MULTIPLE_INFOS                   :1
    GOBAAD_MULTIPLE_GRADIENT_END_COLORS     :1
    GOBAAD_MULTIPLE_GRADIENT_TYPES          :1
    GOBAAD_MULTIPLE_GRADIENT_INTERVALS      :1
                                            :4
    GOBAAD_FIRST_RECIPIENT                  :1
GrObjBaseAreaAttrDiffs          end

GOBAAD_FIRST_RECIPIENT
This flag indicates that this GrObj is the first one to receive this data buffer (and should thereafter clear it).

Library: grobj.def


GrObjBaseAreaAttrElement

GrObjBaseAreaAttrElement            struct
    GOBAAE_styleElement     StyleSheetElementHeader
    GOBAAE_r                byte
    GOBAAE_g                byte
    GOBAAE_b                byte
    GOBAAE_mask             SystemDrawMask
    GOBAAE_drawMode         MixMode
    GOBAAE_pattern          GraphicPattern
    GOBAAE_backR            byte
    GOBAAE_backG            byte
    GOBAAE_backB            byte
    GOBAAE_aaeType          GrObjAreaAttrElementType
    GOBAAE_areaInfo         GrObjAreaAttrInfoRecord
    GOBAAE_reservedByte     byte        ; Currently unused. Must be 0.
    GOBAAE_reserved         word        ; Currently unused. Must be 0.
GrObjBaseAreaAttrElement            ends

Library: grobj.def


GrObjBaseLineAttrDiffs

GrObjBaseLineAttrDiffs          record
    GOBLAD_MULTIPLE_STYLE_ELEMENTS                  :1
    GOBLAD_MULTIPLE_ELEMENT_TYPES                   :1
    GOBLAD_MULTIPLE_COLORS                          :1
    GOBLAD_MULTIPLE_ENDS                            :1
    GOBLAD_MULTIPLE_JOINS                           :1
    GOBLAD_MULTIPLE_WIDTHS                          :1
    GOBLAD_MULTIPLE_MASKS                           :1
    GOBLAD_MULTIPLE_STYLES                          :1
    GOBLAD_ARROWHEAD_ON_START                       :1
    GOBLAD_ARROWHEAD_ON_END                         :1
    GOBLAD_ARROWHEAD_FILLED                         :1
    GOBLAD_ARROWHEAD_FILL_WITH_AREA_ATTRIBUTES      :1
    GOBLAD_MULTIPLE_MITER_LIMITS                    :1
    GOBLAD_MULTIPLE_ARROWHEAD_ANGLES                :1
    GOBLAD_MULTIPLE_ARROWHEAD_LENGTHS               :1
    GOBLAD_FIRST_RECIPIENT                          :1
GrObjBaseLineAttrDiffs          end

Library: grobj.def


GrObjBaseLineAttrElement

GrObjBaseLineAttrElement            struct
    GOBLAE_styleElement         StyleSheetElementHeader
    GOBLAE_r                    byte
    GOBLAE_g                    byte
    GOBLAE_b                    byte
    GOBLAE_end                  LineEnd
    GOBLAE_join                 LineJoin
    GOBLAE_width                WWFixed
    GOBLAE_mask                 SystemDrawMask
    GOBLAE_style                LineStyle
    GOBLAE_miterLimit           WWFixed
    GOBLAE_laeType              GrObjLineAttrElementType
    GOBLAE_lineInfo             GrObjLineAttrInfoRecord
    GOBLAE_arrowheadAngle       byte
    GOBLAE_arrowheadLength      byte
    GOBLAE_reserved             word    ; Currently unused. Must be 0.
GrObjBaseLineAttrElement            ends

Library: grobj.def


GrObjBlockHandleElement

GrObjBlockHandleElement         struct
    GOBHE_blockHandle               hptr
    GOBHE_potentialSize             word
GrObjBlockHandleElement         ends

Library: grobj.def


GrObjBodyAddGrObjFlags

GrObjBodyAddGrObjFlags          record
    GOBAGOF_DRAW_LIST_POSITION          :1
    GOBAGOF_REFERENCE                   :15
GrObjBodyAddGrObjFlags          end

GOBAGOF_DRAW_LIST_POSITION
If this flag is set, GOBAGOF_REFERENCE refers to the GrObj’s position in the draw list; if the flag is clear, GOBAGOF_REFERENCE refers to its position in the reverse draw list.

Library: grobj.def


GrObjBodyCreateGrObjParams

GrObjBodyCreateGrObjParams              struct
    GBCGP_class     fptr.ClassStruct
    padding1        word        ; This padding ensures that width and 
                                ; height align with GrObjInitializeData.
    padding2        word
    padding3        word
    padding4        word
    GBCGP_width     WWFixed
    GBCGP_height    WWFixed
GrObjBodyCreateGrObjParams              ends

Library: grobj.def


GrObjBodyCustomDuplicateParams

GrObjBodyCustomDuplicateParams                  struct
    GBCDP_repetitions       word
    GBCDP_move              PointDWFixed
    GBCDP_rotation          WWFixed
    GBCDP_rotateAnchor      GrObjHandleSpecification
    GBCDP_skew              GrObjAnchoredSkewData
    GBCDP_scale             GrObjAnchoredScaleData
        align                   word
GrObjBodyCustomDuplicateParams                  ends

Library: grobj.def


GrObjBodyFlags

GrObjBodyFlags          record
    GBF_HAS_ACTION_NOTIFICATION     :1
    GBF_DEFAULT_TARGET              :1
    GBF_DEFAULT_FOCUS               :1
GrObjBodyFlags          end

GBF_HAS_ACTION_NOTIFICATION
This flag is set if the G rObj body contains an action notification optr within its vardata.

GBF_DEFAULT_TARGET
This flag is set if the GrObjBody will grab the default target upon a MSG_VIS_OPEN.

GBF_DEFAULT_FOCUS
This flag is set if the GrObjBody will grab the default focus upon a MSG_VIS_OPEN.

Library: grobj.def


GrObjBodyNotifyInstructionFlags

GrObjBodyNotifyInstructionFlags             struct
    GBNIF_flags             GrObjDrawFlags
    GBNIF_handleSize        byte    ;this field added post-Zoomer
    align                   word
GrObjBodyNotifyInstructionFlags             ends

Library: grobj.def


GrObjBodyPasteCallBackStruct

GrObjBodyPasteCallBackStruct            struct
    GOBPCBS_message             word
    GOBPCBS_optr                optr
GrObjBodyPasteCallBackStruct            ends

Library: grobj.def


GrObjBodyUnsuspendOps

GrObjBodyUnsuspendOps           record
    GBUO_UI_NOTIFY  GrObjUINotificationTypes: width GrObjUINotificationTypes
GrObjBodyUnsuspendOps           end

GBUO_UI_NOTIFY
This field stores notifications that should be sent when the GrObjBody suspend counts returns to zero.

Library: grobj.def


GrObjCreateControlFeatures

GrObjCreateControlFeatures              record
    GOCCF_RECTANGLE             :1
    GOCCF_ELLIPSE               :1
    GOCCF_LINE                  :1
    GOCCF_ROUNDED_RECTANGLE     :1
    GOCCF_ARC                   :1
    GOCCF_TRIANGLE              :1
    GOCCF_HEXAGON               :1
    GOCCF_OCTOGON               :1
    GOCCF_FIVE_POINTED_STAR     :1
    GOCCF_EIGHT_POINTED_STAR    :1
GrObjCreateControlFeatures              end

Library: grobj.def


GrObjCreateGStateType

GrObjCreateGStateType           etype word
    BODY_GSTATE     enum GrObjCreateGStateType,0    
                            ;Has only translation to body upper left 
                            ;in it. Useful for un-transforming device 
                            ;coordinates into document coordinates.
    PARENT_GSTATE   enum GrObjCreateGStateType  
                            ;Has body translation and group 
                            ;transformations in it.
    OBJECT_GSTATE   enum GrObjCreateGStateType

Library: grobj.def


GrObjDefiningData

GrObjDefiningData       struct
    GODD_attrFlags          GrObjAttrFlags
    GODD_locks              GrObjLocks
    GODD_areaToken          word
    GODD_lineToken          word
    GODD_normalTransform    ObjectTransform
GrObjDefiningData       ends

This structure represents the subset of GrObj instance data required to recover the object from a transfer item.

Library: grobj.def


GrObjDrawFlags

GrObjDrawFlags              record
                                            :7
    GODF_DRAW_QUICK_VIEW                    :1
    GODF_DRAW_CLIP_ONLY                     :1
    GODF_DRAW_WRAP_TEXT_INSIDE_ONLY         :1
    GODF_DRAW_WRAP_TEXT_AROUND_ONLY         :1
    GODF_DRAW_WITH_INCREASED_RESOLUTION     :1
    GODF_DRAW_INSTRUCTIONS                  :1
    GODF_DRAW_SELECTED_OBJECTS_ONLY         :1
    GODF_DRAW_OBJECTS_ONLY                  :1
    GODF_PRINT_INSTRUCTIONS                 :1
GrObjDrawFlags              end

GODF_DRAW_QUICK_VIEW
If this flag is set, GrObjs will draw themselves with MSG_GO_DRAW_QUICK_VIEW. This message results in much faster drawing but is not WYSIWYG.

GODF_DRAW_CLIP_ONLY
If this flag is set, GrObjs will only draw their clip area.

GODF_DRAW_WRAP_TEXT_INSIDE_ONLY
If this flag is set, only GrObjs with GOAF_WRAP set to GOWTT_WRAP_INSIDE will draw.

GODF_DRAW_WRAP_TEXT_AROUND_ONLY
If this flag is set, only GrObjs with GOAF_WRAP set to GOWTT_WRAP_AROUND_RECT or GOWTT_WRAP_AROUND_TIGHTLY will draw.

GODF_DRAW_WITH_INCREASED_RESOLUTION
If this flag is set, the object should draw with more resolution (if possible). This flag is used for printing and when the view is scaled.

GODF_DRAW_INSTRUCTIONS
If this flag is set, GrObjs with the GOAF_INSTRUCTION bit set will draw.

GODF_DRAW_SELECTED_OBJECTS_ONLY
If this flag is set, only selected objects will draw.

GODF_DRAW_OBJECTS_ONLY
If this flag is set, then only the GrObjs themselves should be drawn. (I.e. don’t draw grid lines, sprites, handles, etc.)

GODF_PRINT_INSTRUCTIONS
If this flag is set, instructions should be printed.

Library: grobj.def


GrObjDuplicateControlFeatures

GrObjDuplicateControlFeatures       record
    GODCF_DUPLICATE             :1
    GODCF_DUPLICATE_IN_PLACE    :1
GrObjDuplicateControlFeatures       end

Library: grobj.def


GrObjDuplicateControlToolboxFeatures

GrObjDuplicateControlToolboxFeatures    record
    GODCTF_DUPLICATE                :1
    GODCTF_DUPLICATE_IN_PLACE       :1
GrObjDuplicateControlToolboxFeatures    end

Library:


GrObjEntryPointRelocation

GrObjEntryPointRelocation               struct
    GOEPR_fullRelocation            EntryPointRelocation
    GOEPR_grObjEntryPoint           word
GrObjEntryPointRelocation               ends

Library: grobj.def


GrObjFileStatus

GrObjFileStatus     record
    GOFS_MOUSE_GRAB     :1      ;True if body has mouse grab
    GOFS_SYS_TARGETED   :1      ;Body has the system target excl
    GOFS_TARGETED       :1      ;Body or one of its children has target
    GOFS_OPEN           :1      ;True if file is open.
GrObjFileStatus     end

Library: grobj.def


GrObjFullAreaAttrElement

GrObjFullAreaAttrElement                struct
    GOFAAE_base     GrObjBaseAreaAttrElement
    GOFAAE_future   byte FUTURE_AREA_ATTR_ELEMENT_DATA_SIZE dup (?)
GrObjFullAreaAttrElement                ends

This structure is used to allow future routines to access larger GrObjBaseAreaAttrElement structures.

Library: grobj.def


GrObjFullLineAttrElement

GrObjFullLineAttrElement                struct
    GOFLAE_base     GrObjBaseLineAttrElement
    GOFLAE_future   byte FUTURE_LINE_ATTR_ELEMENT_DATA_SIZE dup (?)
GrObjFullLineAttrElement                ends

This structure is used to allow future routines to access larger GrObjBaseLineAttrElement structures.

Library: grobj.def


GrObjFunctionsActive

GrObjFunctionsActive                record
    GOFA_RULER_HAS_SEEN_EVENT   :1
    GOFA_VIEW_ZOOMED            :1
    GOFA_SNAP_TO                :1
    GOFA_FROM_CENTER            :1
    GOFA_ABOUT_OPPOSITE         :1
    GOFA_CONSTRAIN              :1
    GOFA_ADJUST                 :1
    GOFA_EXTEND                 :1
                                :2
GrObjFunctionsActive                end

GOFA_RULER_HAS_SEEN_EVENT
If set, the mouse event has been sent to the ruler already. This is used to prevent snapping the mouse more often than is needed. For example, when moving multiple GrObjs, you only want to snap the mouse once and not for each GrObj.

GOFA_VIEW_ZOOMED
If set, all drawing operations should be done in high resolution mode.

GOFA_SNAP_TO
If set, operations should be snapped to the grid.

GOFA_FROM_CENTER
If set, any resize or create operations should be performed from the center.

GOFA_ABOUT_OPPOSITE
If set, rotations should be performed about the opposite corner.

GOFA_CONSTRAIN
If set, constrain resize, rotate, etc.

GOFA_ADJUST
Same as UIFA_ADJUST.

GOFA_EXTEND
Same as UIFA_EXTEND.

Library: grobj.def


GrObjGradientAreaAttrElement

GrObjGradientAreaAttrElement            struct
    GOGAAE_base             GrObjBaseAreaAttrElement
    GOGAAE_type             GrObjGradientType
    GOGAAE_endR             byte            ;ending color red   byte
    GOGAAE_endG             byte            ;ending color green byte
    GOGAAE_endB             byte            ;ending color blue byte
    GOGAAE_numIntervals     word
    GOGAAE_reserved         word
GrObjGradientAreaAttrElement            ends

Library: grobj.def


GrObjGradientAttrDiffs

GrObjGradientAttrDiffs              record
    GGAD_MULTIPLE_END_COLORS    :1
    GGAD_MULTIPLE_TYPES         :1
    GGAD_MULTIPLE_INTERVALS     :1
                                :4
    GGAD_FIRST_RECIPIENT        :1
GrObjGradientAttrDiffs              end

GGAD_FIRST_RECIPIENT
If set, the GrObj knows that it’s the first one to receive this data buffer (and should clear it).

Library: grobj.def


GrObjGradientFillControlFeatures

GrObjGradientFillControlFeatures                record
    GOGFCF_HORIZONTAL_GRADIENT              :1
    GOGFCF_VERTICAL_GRADIENT                :1
    GOGFCF_RADIAL_RECT_GRADIENT             :1
    GOGFCF_RADIAL_ELLIPSE_GRADIENT          :1
    GOGFCF_NUM_INTERVALS                    :1
GrObjGradientFillControlFeatures                end

Library: grobj.def


GrObjGradientType

GrObjGradientType       etype byte
    GOGT_NONE                   enum GrObjGradientType
    GOGT_LEFT_TO_RIGHT          enum GrObjGradientType
    GOGT_TOP_TO_BOTTOM          enum GrObjGradientType
    GOGT_RADIAL_RECT            enum GrObjGradientType
    GOGT_RADIAL_ELLIPSE         enum GrObjGradientType

Library: grobj.def


GrObjHandleAnchorData

GrObjHandleAnchorData           struct
    GOHAD_anchor            PointDWFixed
    GOHAD_handle            GrObjHandleSpecification
    align                   word
GrObjHandleAnchorData           ends

Library: grobj.def


GrObjHandleSpecification

GrObjHandleSpecification            record
    GOHS_HANDLE_LEFT            :1
    GOHS_HANDLE_TOP             :1
    GOHS_HANDLE_RIGHT           :1
    GOHS_HANDLE_BOTTOM          :1
GrObjHandleSpecification            end

Library: grobj.def


GrObjInitializeData

GrObjInitializeData         struct
    GOID_position       PointDWFixed
    GOID_width          WWFixed
    GOID_height         WWFixed
    GrObjInitializeData         ends

GOID_position stores the position of the upper left corner of the object in parent coordinates.

GOID_width stores the width of the object in points.

GOID_height stores the height of the object in points.

Library: grobj.def


GrObjInstructionControlFeatures

GrObjInstructionControlFeatures         record
    GOICF_DRAW                  :1
    GOICF_PRINT                 :1
    GOICF_MAKE_EDITABLE         :1
    GOICF_MAKE_UNEDITABLE       :1
    GOICF_DELETE                :1
GrObjInstructionControlFeatures         end

Library: grobj.def


GrObjLineAttrElementType

GrObjLineAttrElementType            etype byte
    GOLAET_BASE             enum GrObjLineAttrElementType
    ;GrObjBaseLineAttrElement

Library: grobj.def


GrObjLineAttrInfoRecord

GrObjLineAttrInfoRecord         record
    GOLAIR_ARROWHEAD_ON_START                       :1
    GOLAIR_ARROWHEAD_ON_END                         :1
    GOLAIR_ARROWHEAD_FILLED                         :1
    GOLAIR_ARROWHEAD_FILL_WITH_AREA_ATTRIBUTES      :1
                                                    :4
GrObjLineAttrInfoRecord         end

Library: grobj.def


GrObjLocks

GrObjLocks      record
    GOL_COPY        :1  ;True if object may not be transferred to the 
                        ;clipboard
    GOL_LOCK        :1  ;True if object cannot have its locks changed
    GOL_SHOW        :1  ;True if object can't be drawn/selected/edited
                        ;Used with MSG_GB_HIDE_UNSELECTED_OBJECTS
                        ;and MSG_GB_SHOW_ALL_OBJECTS
    GOL_WRAP        :1  ;True if can't change wrap type
    GOL_MOVE        :1  ;True if object cannot be moved
    GOL_RESIZE      :1  ;True if object cannot be resized
    GOL_ROTATE      :1  ;True if object cannot be rotated
    GOL_SKEW        :1  ;True if object cannot be skewed
    GOL_EDIT        :1  ;True if object cannot be edit
    GOL_DELETE      :1  ;True if object cannot be deleted
    GOL_SELECT      :1  ;True if object cannot be selected
    GOL_ATTRIBUTE   :1  ;True if object cannot changeattributes
    GOL_GROUP       :1  ;True if object cannot be grouped
    GOL_UNGROUP     :1  ;True if group cannot be ungrouped
    GOL_DRAW        :1  ;True if object cannot be drawn
    GOL_PRINT       :1  ;True if object cannot be printed
GrObjLocks      end

Library: grobj.def


GrObjMessageOptimizationFlags

GrObjMessageOptimizationFlags               record
    GOMOF_GET_DWF_SELECTION_HANDLE_BOUNDS_FOR_TRIVIAL_REJECT :1
    GOMOF_SPECIAL_RESIZE_CONSTRAIN                          :1
    GOMOF_INVALIDATE_LINE                                   :1
    GOMOF_INVALIDATE_AREA                                   :1
    GOMOF_INVALIDATE                                        :1
    GOMOF_NOTIFY_ACTION                                     :1
    GOMOF_SEND_UI_NOTIFICATION                              :1
    GOMOF_DRAW_FG_AREA                                      :1
    GOMOF_DRAW_FG_LINE                                      :1
    GOMOF_DRAW_BG                                           :1
GrObjMessageOptimizationFlags               end

Each bit below corresponds to an often used, but seldom subclassed message. Instead of sending the message to itself, objects will call a utility routine (such as GrObjOptInvalidate). The routine will check the objects GOMOF flags and if the corresponding bit is set it will send the message to itself. Otherwise the routine will perform the default functionality.

These bits should only be set in a MSG_META_INITIALIZE handler as they are class - and not object-specific. They are not copied to the clipboard.

GOMOF_GET_DWF_SELECTION_HANDLE_BOUNDS_FOR_TRIVIAL_REJECT
If set, sends MSG_GO_GET_DWF_SELECTION_HANDLE_BOUNDS_FOR_TRIVIAL_REJECT.

GOMOF_SPECIAL_RESIZE_CONSTRAIN
If set, sends MSG_GO_SPECIAL_RESIZE_CONSTRAIN.

GOMOF_INVALIDATE_LINE
If set, sends MSG_GO_INVALIDATE_LINE.

GOMOF_INVALIDATE_AREA
If set, sends MSG_GO_INVALIDATE_AREA.

GOMOF_INVALIDATE
If set, sends MSG_GO_INVALIDATE.

GOMOF_NOTIFY_ACTION
If set, sends MSG_GO_NOTIFY_ACTION.

GOMOF_SEND_UI_NOTIFICATION
If set, sends MSG_GO_SEND_UI_NOTIFICATION.

The following bits correspond to several drawing messages that are almost always sent during the handling of MSG_GO_DRAW. Under certain conditions these message are not sent. If the line or area mask is 0 then the line or area drawing messages are not sent. If the area mask is solid, then the background message is not sent. If you wish to force one of these messages to be sent anyway then set its corresponding bit. For example, the text object sets the GOMOF_DRAW_BG bit because the foreground is text which doesn’t completely cover the background rectangle, so the background should always be drawn.

Note: if the background is transparent then the background message will never be sent, regardless of the presence of the GOMOF_DRAW_BG bit.

GOMOF_DRAW_FG_AREA
If set, sends MSG_GO_DRAW_FG_AREA(_HI_RES).

GOMOF_DRAW_FG_LINE
If set, sends MSG_GO_DRAW_FG_LINE(_HI_RES).

GOMOF_DRAW_BG
If set, sends MSG_GO_DRAW_BG.

Library: grobj.def


GrObjMouseData

GrObjMouseData      struct
    GOMD_point          PointDWFixed        ; This field must be first.
    GOMD_buttonInfo     ButtonInfo          ; Copy of ButtonInfo
    GOMD_uiFA           UIFunctionsActive   ; Copy of UIFunctionsActive
    GOMD_goFA           GrObjFunctionsActive
    GOMD_gstate         hptr.GState
GrObjMouseData      ends

Library: grobj.def


GrObjMouseReturnType

GrObjMouseReturnType            etype byte
    GOMRF_HANDLE    enum GrObjMouseReturnType   ;Mouse position is over a handle 
                                                ;of a selected object.
    GOMRF_BOUNDS    enum GrObjMouseReturnType   ;Mouse position is over the
                                                ;bounds of a grobject
    GOMRF_NOTHING   enum GrObjMouseReturnType   ;Mouse position isn't over
                                                ;anything interesting.

These types are defined in the order in which they will be checked. As soon as one of the conditions is met the message returns without checking the remaining types.

Library: grobj.def


GrObjNotifyAreaAttrChange

GrObjNotifyAreaAttrChange           struct
    GNAAC_areaAttr              GrObjBaseAreaAttrElement
    GNAAC_areaAttrDiffs         GrObjBaseAreaAttrDiffs
GrObjNotifyAreaAttrChange           ends

Library: grobj.def


GrObjNotifyCurrentTool

GrObjNotifyCurrentTool          struct
    GONCT_toolClass         fptr.ClassStruct
    GONCT_specInitData      word
GrObjNotifyCurrentTool          ends

Library: grobj.def


GrObjNotifyGradientAttrChange

GrObjNotifyGradientAttrChange                   struct
    GONGAC_type             GrObjGradientType
    GONGAC_endR             byte                ;ending color red byte
    GONGAC_endG             byte                ;ending color green byte
    GONGAC_endB             byte                ;ending color blue byte
    GONGAC_numIntervals     word
    GONGAC_diffs            GrObjGradientAttrDiffs
    align                   word
GrObjNotifyGradientAttrChange                   ends

Library: grobj.def


GrObjNotifyLineAttrChange

GrObjNotifyLineAttrChange           struct
    GNLAC_lineAttr              GrObjBaseLineAttrElement
    GNLAC_lineAttrDiffs         GrObjBaseLineAttrDiffs
GrObjNotifyLineAttrChange           ends

Library: grobj.def


GrObjNotifySelectionStateChange

GrObjNotifySelectionStateChange             struct
    GONSSC_selectionState           GrObjSelectionState
    GONSSC_selectionStateDiffs      GrObjSelectionStateDiffs
    GONSSC_grObjFlagsDiffs          GrObjAttrFlags
    GONSSC_locksDiffs               GrObjLocks
    GONSSC_arcCloseType             ArcCloseType
    GONSSC_arcStartAngle            WWFixed
    GONSSC_arcEndAngle              WWFixed
GrObjNotifySelectionStateChange             ends

Library: grobj.def


GrObjNudgeControlFeatures

GrObjNudgeControlFeatures               record
    GONCF_NUDGE_LEFT                :1
    GONCF_NUDGE_RIGHT               :1
    GONCF_NUDGE_UP                  :1
    GONCF_NUDGE_DOWN                :1
    GONCF_CUSTOM_MOVE               :1
GrObjNudgeControlFeatures               end

Library: grobj.def


GrObjObjManipData

GrObjObjManipData           struct
    GOOMD_actionGrObj               optr
    GOOMD_origMousePt               PointDWFixed
    GOOMD_oppositeHandle            GrObjHandleSpecification
    GOOMD_grabbedHandle             GrObjHandleSpecification
    GOOMD_initialAngle              WWFixed
    GOOMD_oppositeAnchor            PointDWFixed
    GOOMD_oppositeInitialAngle      WWFixed
GrObjObjManipData           ends

Library: grobj.def


GrObjObscureAttrControlFeatures

GrObjObscureAttrControlFeatures             record
    GOOACF_INSTRUCTIONS                 :1
    GOOACF_INSERT_OR_DELETE_MOVE        :1
    GOOACF_INSERT_OR_DELETE_RESIZE      :1
    GOOACF_INSERT_OR_DELETE_DELETE      :1
    GOOACF_DONT_WRAP                    :1
    GOOACF_WRAP_INSIDE                  :1
    GOOACF_WRAP_AROUND_RECT             :1
    GOOACF_WRAP_TIGHTLY                 :1
GrObjObscureAttrControlFeatures             end

Library: grobj.def


GrObjOptimizationFlags

GrObjOptimizationFlags          record
    GOOF_ADDED_TO_BODY                      :1
    GOOF_IN_GROUP                           :1
    GOOF_GROBJ_INVALID                      :1
    GOOF_ATTRIBUTE_MANAGER                  :1
    GOOF_FLOATER                            :1
    GOOF_HAS_ACTION_NOTIFICATION            :1
    GOOF_HAS_UNBALANCED_PARENT_DIMENSIONS   :1
                                            :1
GrObjOptimizationFlags          end

GOOF_ADDED_TO_BODY
If set, the Grobj has been added to a body, or the group it is in has been added to a body.

GOOF_IN_GROUP
If set, the GrObj is within a group.

GOOF_GROBJ_INVALID
If set, the object is incomplete and cannot be drawn, or it is invalidated. It may be missing its normal transform or have no attributes, etc.

GOOF_ATTRIBUTE_MANAGER
If set, the object is an attribute manager.

GOOF_FLOATER
If set, GrObj is a floater. If this flag is set, we don’t need to dirty the object because floater objects are not actually in the document.

GOOF_HAS_ACTION_NOTIFICATION
If set, object has an action notification OD in it’s vardata.

GOOF_HAS_UNBALANCED_PARENT_DIMENSIONS
If set, the object contains the vardata entry ATTR_GO_PARENT_DIMENSIONS_OFFSET. This ATTR holds the offset from the object’s center to the center of the parent dimensions.

Library: grobj.def


GrObjPointerImageSituation

GrObjPointerImageSituation          etype byte
    GOPIS_NORMAL            enum GrObjPointerImageSituation
    GOPIS_EDIT              enum GrObjPointerImageSituation
    GOPIS_CREATE            enum GrObjPointerImageSituation
    GOPIS_MOVE              enum GrObjPointerImageSituation
    GOPIS_RESIZE_ROTATE     enum GrObjPointerImageSituation

Library: grobj.def


GrObjResizeMouseData

GrObjResizeMouseData            struct
    GORSMD_point        PointDWFixed            ; Must be first.
    GORSMD_anchor       GrObjHandleSpecification
    GORSMD_grabbed      GrObjHandleSpecification
    GORSMD_goFA         GrObjFunctionsActive
    GORSMD_gstate       hptr.GState
    align               word
GrObjResizeMouseData            ends

Library: grobj.def


GrObjRotateControlFeatures

GrObjRotateControlFeatures              record
    GORCF_45_DEGREES_CW             :1
    GORCF_90_DEGREES_CW             :1
    GORCF_135_DEGREES_CW            :1
    GORCF_180_DEGREES               :1
    GORCF_135_DEGREES_CCW           :1
    GORCF_90_DEGREES_CCW            :1
    GORCF_45_DEGREES_CCW            :1
    GORCF_CUSTOM_ROTATION           :1
GrObjRotateControlFeatures              end

Library: grobj.def


GrObjRotateMouseData

GrObjRotateMouseData            struct
    GORMD_degrees           WWFixed
    GORMD_anchor            GrObjHandleSpecification
    GORMD_goFA              GrObjFunctionsActive
    GORMD_gstate            hptr.GState
    align                   word
GrObjRotateMouseData            ends

This structure is the stack frame passed with rotate message.

Library: grobj.def


GrObjScaleControlFeatures

GrObjScaleControlFeatures               record
    GOSCF_HALF_WIDTH                :1
    GOSCF_HALF_HEIGHT               :1
    GOSCF_DOUBLE_WIDTH              :1
    GOSCF_DOUBLE_HEIGHT             :1
    GOSCF_CUSTOM_SCALE              :1
GrObjScaleControlFeatures               end

Library: grobj.def


GrObjScaleData

GrObjScaleData      struct
    GOSD_xScale         WWFixed
    GOSD_yScale         WWFixed
GrObjScaleData      ends

Library: grobj.def


GrObjSelectionState

GrObjSelectionState     struct
    GSS_numSelected         word
    GSS_classSelected       fptr.ClassStruct
    GSS_flags               GrObjSelectionStateFlags
    GSS_grObjFlags          GrObjAttrFlags
    GSS_locks               GrObjLocks
    align                   word
GrObjSelectionState     ends

Library: grobj.def


GrObjSelectionStateDiffs

GrObjSelectionStateDiffs            record
    GSSD_MULTIPLE_CLASSES               :1
    GSSD_MULTIPLE_ARC_CLOSE_TYPES       :1
    GSSD_MULTIPLE_ARC_START_ANGLES      :1
    GSSD_MULTIPLE_ARC_END_ANGLES        :1
                                        :4
GrObjSelectionStateDiffs            end

Library: grobj.def


GrObjSelectionStateFlags

GrObjSelectionStateFlags            record
    GSSF_EDITING            :1  ;True if an object is being edited.
    GSSF_UNGROUPABLE        :1  ;True if at least one of the objects
                                ;selected can be ungrouped.
    GSSF_TEXT_SELECTED      :1  ;True if at least one of the objects
                                ;selected is some sort of text object
    GSSF_BITMAP_SELECTED    :1  ;True if at least one of the objects
                                ;selected is some sort of bitmap object
    GSSF_SPLINE_SELECTED    :1  ;True if at least one of the objects
                                ;selected is some sort of spline object
    GSSF_ARC_SELECTED       :1  ;True if at least one of the objects
                                ;selected is some sort of arc object
GrObjSelectionStateFlags            end

Library: grobj.def


GrObjsInRectData

GrObjsInRectData        struct
    GOIRD_tempMessage           word
    GOIRD_tempMessageDX         word
    GOIRD_inRectMessage         word
    GOIRD_inRectMessageDX       word
    GOIRD_rect                  RectDWord
    GOIRD_special               GrObjsInRectSpecial
    align                       word
GrObjsInRectData        ends

GOIRD_tempMessage stores the message to send to an object that has its GOTM_TEMP_HANDLES bit set.

GOIRD_tempMessageDX stores the word of data that can be passed with the above temporary message in dx.

GOIRD_inRectMessage stores the message to send to an object if it is found to reside within the Rectangle specified by GOIRD_rect.

GOIRD_inRectMessageDX stores the word of data that can be passed with the above message in dx.

GOIRD_rect stores the Rectangle that we are checking whether the object resides within.

GOIRD_special stores special instructions for processing children.

Library: grobj.def


GrObjsInRectSpecial

GrObjsInRectSpecial         record
    GOIRS_IGNORE_TEMP           :1
    GOIRS_IGNORE_RECT           :1
    GOIRS_XOR_CHECK             :1
GrObjsInRectSpecial         end

GOIRS_IGNORE_TEMP
If set, do not send the GrObj’s Temp Message to objects with GOTM_TEMP_HANDLES set.

GOIRS_IGNORE_RECT
If set, do not send the GrObj’s InRect Message to objects within the rectangle.

GOIRS_XOR_CHECK
If set and both the Temp and InRect conditions apply, then send neither message. Otherwise send both messages. (The Temp Message will always be sent first.)

Library: grobj.def


GrObjSkewControlFeatures

GrObjSkewControlFeatures        record
    GOSCF_LEFT              :1
    GOSCF_RIGHT             :1
    GOSCF_UP                :1
    GOSCF_DOWN              :1
    GOSCF_CUSTOM_SKEW       :1
GrObjSkewControlFeatures        end

Library: grobj.def


GrObjSkewData

GrObjSkewData       struct
    GOSD_xDegrees           WWFixed
    GOSD_yDegress           WWFixed
GrObjSkewData       ends

Library: grobj.def


GrObjStyleElement

GrObjStyleElement       struct
    GSE_meta                NameArrayElement
    GSE_baseStyle           word
    GSE_flags               StyleElementFlags
    GSE_reserved            byte 6 dup (?)
    GSE_privateData         GrObjStylePrivateData
    GSE_areaAttrToken       word
    GSE_lineAttrToken       word
    GSE_name                label char
GrObjStyleElement       ends

Library: grobj.def


GrObjStyleFlags

GrObjStyleFlags             record
    GSF_AREA_COLOR_RELATIVE         :1
    GSF_AREA_MASK_RELATIVE          :1
    GSF_LINE_COLOR_RELATIVE         :1
    GSF_LINE_MASK_RELATIVE          :1
    GSF_LINE_WIDTH_RELATIVE         :1
                                    :11
GrObjStyleFlags             end

Library: grobj.def


GrObjStylePrivateData

GrObjStylePrivateData           struct
    GSPD_flags          GrObjStyleFlags
    GSPD_unused         byte 2 dup (0)
GrObjStylePrivateData           ends

Library: grobj.def


GrObjTempModes

GrObjTempModes      record
    GOTM_SELECTED               :1
    GOTM_EDITED                 :1
    GOTM_EDIT_INDICATOR_DRAWN   :1
    GOTM_HANDLES_DRAWN          :1
    GOTM_TEMP_HANDLES           :1
    GOTM_SPRITE_DRAWN           :1
    GOTM_SPRITE_DRAWN_HI_RES    :1
    GOTM_SYS_TARGET             :1
GrObjTempModes      end

GOTM_SELECTED
If set, the GrObj is in the selection list.

GOTM_EDITED
If set, the GrObj is currently being edited. This is equivalent to the GrObj having the application target.

GOTM_EDIT_INDICATOR_DRAWN
If set, the object has drawn some indicator to show the user that it is being edited.

GOTM_HANDLES_DRAWN
If set, the GrObj’s selection handles have been drawn.

GOTM_TEMP_HANDLES
If set, the GrObj’s handles are drawn in a temporary state. This flag is set by MSG_GO_DRAW_HANDLES_FORCE, MSG_GO_DRAW_HANDLES_OPPOSITE and cleared by MSG_GO_DRAW_HANDLES_MATCH, MSG_GO_DRAW_HANDLES and MSG_GO_UNDRAW_HANDLES. This functionality is mainly used when drag selecting to cut down the number of objects that methods must be sent to.

GOTM_SPRITE_DRAWN
If set, the object’s sprite has been drawn.

GOTM_SPRITE_DRAWN_HI_RES
If set , the object’s sprite was drawn at a higher resolution. This bit is meaningless if GOTM_SPRITE_DRAWN is not set.

GOTM_SYS_TARGET
If set, the GrObjBody has the system target. This bit is meaningless unless GOTM_SELECTED or GOTM_EDITED is set. (The GrObjBody only updates objects in selection list and with the application target.)

Library: grobj.def


GrObjTextArrays

GrObjTextArrays         struct
    GOTA_charAttrArray          word
    GOTA_paraAttrArray          word
    GOTA_typeArray              word
    GOTA_graphicArray           word
    GOTA_nameArray              word
    GOTA_textStyleArray         word
GrObjTextArrays         ends

Library: grobj.def


GrObjTiledDataFlags

GrObjTiledDataFlags     record
                            :7
    GOTDF_VAR_DATA          :1
GrObjTiledDataFlags     end

Library: grobj.def


GrObjTransferBlockHeader

GrObjTransferBlockHeader                struct
    GOTBH_meta              VMChainTree
    GOTBH_size              PointDWord  ; Width and height of the cut.
    GOTBH_firstLMem         label word
    GOTBH_areaAttrArray     dword
    GOTBH_lineAttrArray     dword
    GOTBH_styleArray        dword
    GOTBH_charAttrRuns      dword
    GOTBH_paraAttrRuns      dword
    GOTBH_textStyleArray    dword
    GOTBH_lastLMem          label word
    GOTBH_textGraphicsTree  dword
GrObjTransferBlockHeader                ends

This structure heads a “transfer” item, which is used by the Clipboard in Cut/Copy/Paste operations.

Library: grobj.def


GrObjTransferDataDirectory

GrObjTransferDataDirectory              struct
    GOTDD_tiledDataFlags        GrObjTiledDataFlags
    GOTDD_protocol              byte
GrObjTransferDataDirectory              ends

Library: grobj.def


GrObjTransferParams

GrObjTransferParams         struct
    GTP_ssp                         StyleSheetParams
    GTP_textSSP                     VisTextSaveStyleSheetParams
    GTP_selectionCenterDOCUMENT     PointDWFixed
    GTP_optBlock                    hptr
    GTP_treeBlock                   hptr
    GTP_curSlot                     word
    GTP_id                          dword
    GTP_curSize                     word
    GTP_curPos                      word
GrObjTransferParams         ends

Library: grobj.def


GrObjTransMatrix

GrObjTransMatrix        struct
    GTM_e11         WWFixed
    GTM_e12         WWFixed
    GTM_e21         WWFixed
    GTM_e22         WWFixed
GrObjTransMatrix        ends

Library: grobj.def


GrObjUINotificationTypes

GrObjUINotificationTypes            record
    GOUINT_STYLE        :1  ;True if style notification needs to be 
                            ;sent
    GOUINT_AREA         :1  ;True if area notification needs to be sent
    GOUINT_LINE         :1  ;True if line notification needs to be sent
    GOUINT_GROBJ_SELECT :1  ;True if grobj specific selection state
                            ;notification needs to be sent
    GOUINT_STYLE_SHEET  :1  ;True if style notification needs to be 
                            ;sent
    GOUINT_SELECT       :1  ;True if edit menu notification need be 
                            ;sent
                        :10 ;unused
GrObjUINotificationTypes            end

Library: grobj.def


GrObjUndoAppType

GrObjUndoAppType        struct
    GOUAT_freeMessage           word
    GOUAT_undoMessage           word
GrObjUndoAppType        ends

Library: grobj.def


GrObjVisGuardianCreateMode

GrObjVisGuardianCreateMode              etype byte, 0
    GOVGCM_NO_CREATE            enum GrObjVisGuardianCreateMode
    GOVGCM_GUARDIAN_CREATE      enum GrObjVisGuardianCreateMode
    GOVGCM_VIS_WARD_CREATE      enum GrObjVisGuardianCreateMode

GOVGCM_NO_CREATE
This type indicates that new objects cannot be created with the guardian.

GOVGCM_GUARDIAN_CREATE
This type indicates that creating a new object is handled by the guardian and consists of dragging open a rectangular area.

GOVGCM_VIS_WARD_CREATE
This type indicates that creating a new object is handled by the ward and mouse events during the create operation should be sent to the ward.

Library: grobj.def


GrObjVisGuardianFlags

GrObjVisGuardianFlags           record
    GOVGF_VIS_BOUNDS_HAVE_CHANGED       :1
    GOVGF_LARGE                         :1
    GOVGF_UNUSED                        :1
    GOVGF_ALSO_UNUSED                   :1
    GOVGF_APPLY_OBJECT_TO_VIS_TRANSFORM :1
    GOVGF_CAN_EDIT_EXISTING_OBJECTS     :1
    GOVGF_CREATE_MODE                   GrObjGuardianCreateMode:2
GrObjVisGuardianFlags           end

GOVGF_VIS_BOUNDS_HAVE_CHANGED
If set, the visible bounds of the ward have changed since the last time the bit was cleared. Each guardian uses this bit differently to help it determine when to send out GOANT_RESIZE action notifications.

GOVGF_LARGE
If set, send large mouse events to the object. If clear, send small mouse events instead.

GOVGF_APPLY_OBJECT_TO_VIS_TRANSFORM
If set, you must send MSG_GOVG_APPLY_OBJECT_TO_VIS_TRANSFORM to the object; otherwise a utility routine can be used.

GOVGF_CAN_EDIT_EXISTING_OBJECTS
If set, the floater can edit existing objects in the document.

Library: grobj.def


GrObjWrapTextType

GrObjWrapTextType       etype byte, 0
    GOWTT_DONT_WRAP             enum GrObjWrapTextType
    GOWTT_WRAP_AROUND_RECT      enum GrObjWrapTextType
    GOWTT_WRAP_AROUND_TIGHTLY   enum GrObjWrapTextType
    GOWTT_WRAP_INSIDE           enum GrObjWrapTextType

Library: grobj.def


GroupAddGrObjFlags

GroupAddGrObjFlags      record
    GAGOF_RELATIVE          :1
    GAGOF_REFERENCE         :15
GroupAddGrObjFlags      end

GAGOF_RELATIVE
This flag indicates that the position of the center of the object is already relative to the center of the group. Otherwise, the object center is absolute and must be adjusted when it is added.

Library: grobj.def


GroupUnsuspendOps

GroupUnsuspendOps       record
    GUO_EXPAND      :1
GroupUnsuspendOps       end

GUO_EXPAND
If set, the group should send MSG_GROUP_EXPAND to itself when its suspend count reaches zero.

Library: grobj.def


GSControl

GSControl       record
                    :6,
    GSC_PARTIAL     :1  ; Just do one element. If element is a complex
                        ; bit map, do just one piece. (This flag works 
                        ; only with GrCopyGString).)
    GSC_ONE         :1, ; just do one element
    GSC_MISC        :1, ; return on MISC opcode
    GSC_LABEL       :1, ; return on GR_LABEL opcode
    GSC_ESCAPE      :1, ; return on GR_ESCAPE opcode
    GSC_NEW_PAG     :1, ; return when we get to a NEW_PAGE
    GSC_XFORM       :1, ; return on TRANSFORMATIONopcode
    GSC_OUTPUT      :1, ; return on OUTPUT opcode
    GSC_ATTR        :1, ; return on ATTRIBUTE opcode
    GSC_PATH        :1  ; return on PATH opcode
GSControl       end

Library: gstring.def


GSElemInfo

GSElemInfo      struct
    GSEI_size           word
    GSEI_play           nptr
    GSEI_kern           fptr
GSElemInfo      ends

Library: gstring.def


GSRefCountAndFlags

GSRefCountAndFlags          record
    GSRCAF_USE_DOC_CLIP_REGION  :1  ;If set, then use GrSetDocClipRect
                                    ;instead of GrSetClipRect
    GSRCAF_REF_COUNT            :7
GSRefCountAndFlags          end

Library: Objects/vTextC.def


GSRetType

GSRetType       etype word
    GSRT_COMPLETE   enum GSRetType
    GSRT_ONE        enum GSRetType
    GSRT_MISC       enum GSRetType
    GSRT_LABEL      enum GSRetType
    GSRT_ESCAPE     enum GSRetType
    GSRT_NEW_PAGE   enum GSRetType
    GSRT_XFORM      enum GSRetType
    GSRT_OUTPUT     enum GSRetType
    GSRT_ATTR       enum GSRetType
    GSRT_PATH       enum GSRetType
    GSRT_FAULT      enum GSRetType, 0xffff

Library: gstring.def


GStringElement

GStringElement      etype byte, 0, 1

DefGSElement    macro   \
        rootName, gseEnum, playRout, varType, varOff, altKern
gseEnum enum GStringElement

    DefGSElement EndGString, GR_END_GSTRING, PENull
    DefGSElement Comment,   GR_COMMENT,     PEComment, bytes, OC_size
    DefGSElement NullOp,    GR_NULL_OP,     PENoArgs
    DefGSElement SetGStringBounds, GR_SET_GSTRING_BOUNDS, PETwoCoords
    DefGSElement    ,       GR_MISC_4,      PENull
    DefGSElement    ,       GR_MISC_5,      PENull
    DefGSElement    ,       GR_MISC_6,      PENull
    DefGSElement    ,       GR_MISC_7,      PENull
    DefGSElement    ,       GR_MISC_8,      PENull
    DefGSElement    ,       GR_MISC_9,      PENull
    DefGSElement    ,       GR_MISC_A,      PENull
    DefGSElement    ,       GR_MISC_B,      PENull
    DefGSElement    ,       GR_MISC_C,      PENull
    DefGSElement Label,     GR_LABEL,       PEWordAttr
    DefGSElement Escape,    GR_ESCAPE,      PEComment, bytes, OE_escSize
    DefGSElement NewPage,   GR_NEW_PAGE,    PEByteAttr
    DefGSElement ApplyRotation, GR_APPLY_ROTATION, PERotate
    DefGSElement ApplyScale, GR_APPLY_SCALE,        PETransScale
    DefGSElement ApplyTranslation, GR_APPLY_TRANSLATION, PETransScale
    DefGSElement ApplyTransform, GR_APPLY_TRANSFORM, PETMatrix
    DefGSElement ApplyTranslationDWord, GR_APPLY_TRANSLATION_DWORD, PETransScale
    DefGSElement SetTransform, GR_SET_TRANSFORM,    PETMatrix
    DefGSElement SetNullTransform, GR_SET_NULL_TRANSFORM, PENoArgs
    DefGSElement SetDefaultTransform, GR_SET_DEFAULT_TRANSFORM, PENoArgs
    DefGSElement InitDefaultTransform, GR_INIT_DEFAULT_TRANSFORM, PENoArgs
    DefGSElement SaveTransform, GR_SAVE_TRANSFORM, PENoArgs
    DefGSElement RestoreTransform, GR_RESTORE_TRANSFORM, PENoArgs
    DefGSElement    ,       GR_XFORM_1B, PENull
    DefGSElement    ,       GR_XFORM_1C, PENull
    DefGSElement    ,       GR_XFORM_1D, PENull
    DefGSElement    ,       GR_XFORM_1E, PENull
    DefGSElement    ,       GR_XFORM_1F, PENull
    DefGSElement DrawLine, GR_DRAW_LINE,    PETwoCoords
    DefGSElement DrawLineTo, GR_DRAW_LINE_TO, PEOneCoord
    DefGSElement DrawRelLineTo, GR_DRAW_REL_LINE_TO, PERelCoord
    DefGSElement DrawHLine, GR_DRAW_HLINE, PEDrawHalfLine
    DefGSElement DrawHLineTo, GR_DRAW_HLINE_TO, PEDrawHalfLine
    DefGSElement DrawVLine, GR_DRAW_VLINE, PEDrawHalfLine
    DefGSElement DrawVLineTo, GR_DRAW_VLINE_TO, PEDrawHalfLine
    DefGSElement DrawPolyline, GR_DRAW_POLYLINE, PEPolyCoord, coords, ODPL_count
    DefGSElement DrawArc,   GR_DRAW_ARC, PEDrawArcs
    DefGSElement DrawArc3Point, GR_DRAW_ARC_3POINT, PEDrawArcs
    DefGSElement DrawArc3PointTo, GR_DRAW_ARC_3POINT_TO, PEDrawArcs
    DefGSElement DrawRelArc3PointTo, GR_DRAW_REL_ARC_3POINT_TO, PEDrawArcs
    DefGSElement DrawRect, GR_DRAW_RECT, PETwoCoords
    DefGSElement DrawRectTo, GR_DRAW_RECT_TO, PEOneCoord
    DefGSElement DrawRoundRect, GR_DRAW_ROUND_RECT, PEDrawRoundRects
    DefGSElement DrawRoundRectTo, GR_DRAW_ROUND_RECT_TO, PEDrawRoundRects
    DefGSElement DrawSpline, GR_DRAW_SPLINE, PEPolyCoord, coords, ODS_count
    DefGSElement DrawSplineTo, GR_DRAW_SPLINE_TO, PEPolyCoord, coords, ODST_count
    DefGSElement DrawCurve, GR_DRAW_CURVE, PECurve
    DefGSElement DrawCurveTo, GR_DRAW_CURVE_TO, PECurve
    DefGSElement DrawRelCurveTo, GR_DRAW_REL_CURVE_TO, PECurve
    DefGSElement DrawEllipse, GR_DRAW_ELLIPSE, PETwoCoords
    DefGSElement DrawPolygon, GR_DRAW_POLYGON, PEPolyCoord, coords, ODPG_count
    DefGSElement DrawPoint, GR_DRAW_POINT, PEOneCoord
    DefGSElement DrawPointAtCP, GR_DRAW_POINT_CP, PENoArgs
    DefGSElement BrushPolyline, GR_BRUSH_POLYLINE, PEPolyCoord, coords, OBPL_count
    DefGSElement DrawChar, GR_DRAW_CHAR, PEDrawChar
    DefGSElement DrawCharAtCP, GR_DRAW_CHAR_CP, PEDrawChar
    DefGSElement DrawText, GR_DRAW_TEXT, PEDrawText, bytes, ODT_len
    DefGSElement DrawTextAtCP, GR_DRAW_TEXT_CP, PEDrawText, bytes, ODTCP_len
    DefGSElement DrawTextField, GR_DRAW_TEXT_FIELD, PETextField
    DefGSElement DrawTextPtr,GR_DRAW_TEXT_PTR, PETextPtr,,,GrDrawText

    DefGSElement DrawTextOptr,GR_DRAW_TEXT_OPTR, PETextOptr,,,GrDrawText
    DefGSElement DrawPath, GR_DRAW_PATH, PENoArgs
    DefGSElement FillRect, GR_FILL_RECT, PETwoCoords
    DefGSElement FillRectTo, GR_FILL_RECT_TO, PEOneCoord
    DefGSElement FillRoundRect, GR_FILL_ROUND_RECT, PEDrawRoundRects
    DefGSElement FillRoundRectTo, GR_FILL_ROUND_RECT_TO, PEDrawRoundRects
    DefGSElement FillArc, GR_FILL_ARC, PEDrawArcs
    DefGSElement FillPolygon, GR_FILL_POLYGON, PEPolyCoord, coords, OFP_count
    DefGSElement FillEllipse, GR_FILL_ELLIPSE, PETwoCoords
    DefGSElement FillPath, GR_FILL_PATH, PEByteAttr
    DefGSElement FillArc3Point, GR_FILL_ARC_3POINT, PEDrawArcs
    DefGSElement FillArc3PointTo, GR_FILL_ARC_3POINT_TO, PEDrawArcs
    DefGSElement FillBitmap, GR_FILL_BITMAP, PEBitmap, bytes, OFB_size
    DefGSElement FillBitmapAtCP, GR_FILL_BITMAP_CP, PEBitmap, bytes, OFBCP_size
    DefGSElement FillBitmapOptr, GR_FILL_BITMAP_OPTR, PEBitmapOptr,,,GrFillBitmap
    DefGSElement FillBitmapPtr, GR_FILL_BITMAP_PTR, PEBitmapPtr,,,GrFillBitmap
    DefGSElement DrawBitmap, GR_DRAW_BITMAP, PEBitmap, bytes, ODB_size
    DefGSElement DrawBitmapAtCP, GR_DRAW_BITMAP_CP, PEBitmap, bytes, ODBCP_size
    DefGSElement DrawBitmapOptr, GR_DRAW_BITMAP_OPTR, PEBitmapOptr,,,GrDrawBitmap
    DefGSElement DrawBitmapPtr, GR_DRAW_BITMAP_PTR, PEBitmapPtr,,,GrDrawBitmap
    DefGSElement BitmapSlice, GSE_BITMAP_SLICE, PESlice,bytes,OBS_size,GrDrawBitmap
    DefGSElement    ,       GR_OUTPUT_55,   PENull
    DefGSElement    ,       GR_OUTPUT_56,   PENull
    DefGSElement    ,       GR_OUTPUT_57,   PENull
    DefGSElement    ,       GR_OUTPUT_58,   PENull
    DefGSElement    ,       GR_OUTPUT_59,   PENull
    DefGSElement    ,       GR_OUTPUT_5A,   PENull
    DefGSElement    ,       GR_OUTPUT_5B,   PENull
    DefGSElement    ,       GR_OUTPUT_5C,   PENull
    DefGSElement    ,       GR_OUTPUT_5D,   PENull
    DefGSElement    ,       GR_OUTPUT_5E,   PENull
    DefGSElement    ,       GR_OUTPUT_5F,   PENull
    DefGSElement SaveState, GR_SAVE_STATE, PENoArgs
    DefGSElement RestoreState, GR_RESTORE_STATE, PENoArgs
    DefGSElement SetMixMode, GR_SET_MIX_MODE, PEByteAttr
    DefGSElement MoveTo, GR_MOVE_TO, PEOneCoord
    DefGSElement RelMoveTo, GR_REL_MOVE_TO, PERelCoord
    DefGSElement CreatePalette, GR_CREATE_PALETTE, PENoArgs
    DefGSElement DestroyPalette, GR_DESTROY_PALETTE, PENoArgs
    DefGSElement SetPaletteEntry, GR_SET_PALETTE_ENTRY, PEOneCoord
    DefGSElement SetPalette, GR_SET_PALETTE, PEPalette, bytes, OSP_num
    DefGSElement SetLineColor, GR_SET_LINE_COLOR, PE3ByteAttr
    DefGSElement SetLineMask, GR_SET_LINE_MASK, PEByteAttr
    DefGSElement SetLineColorMap, GR_SET_LINE_COLOR_MAP, PEByteAttr
    DefGSElement SetLineWidth, GR_SET_LINE_WIDTH, PEOneCoord
    DefGSElement SetLineJoin, GR_SET_LINE_JOIN, PEByteAttr
    DefGSElement SetLineEnd, GR_SET_LINE_END, PEByteAttr
    DefGSElement SetLineAttr, GR_SET_LINE_ATTR, PEAttr
    DefGSElement SetMiterLimit, GR_SET_MITER_LIMIT, PEOneCoord
    DefGSElement SetLineStyle, GR_SET_LINE_STYLE, PELineStyle
    DefGSElement SetLineColorIndex,GR_SET_LINE_COLOR_INDEX,PEByteAttr,,,GrSetLineColor
    DefGSElement SetCustomLineMask,GR_SET_CUSTOM_LINE_MASK,PECustomMask,,,GrSetLineMask
    DefGSElement SetCustomLineStyle,GR_SET_CUSTOM_LINE_STYLE,PECustomStyle,words,OSCLS_count, GrSetLineStyle
    DefGSElement SetAreaColor, GR_SET_AREA_COLOR, PE3ByteAttr
    DefGSElement SetAreaMask, GR_SET_AREA_MASK, PEByteAttr
    DefGSElement SetAreaColorMap, GR_SET_AREA_COLOR_MAP, PEByteAttr
    DefGSElement SetAreaAttr, GR_SET_AREA_ATTR, PEAttr
    DefGSElement SetAreaColorIndex,GR_SET_AREA_COLOR_INDEX, PEByteAttr,,,GrSetAreaColor
    DefGSElement SetCustomAreaMask,GR_SET_CUSTOM_AREA_MASK,PECustomMask,,,GrSetAreaMask
    DefGSElement SetAreaPattern, GR_SET_AREA_PATTERN, PESetPattern
    DefGSElement SetCustomAreaPattern,GR_SET_CUSTOM_AREA_PATTERN,PESetCustPattern,bytes,OSCAP_size, GrSetAreaPattern
    DefGSElement SetTextColor, GR_SET_TEXT_COLOR, PE3ByteAttr
    DefGSElement SetTextMask, GR_SET_TEXT_MASK, PEByteAttr
    DefGSElement SetTextColorMap, GR_SET_TEXT_COLOR_MAP, PEByteAttr
    DefGSElement SetTextStyle, GR_SET_TEXT_STYLE, PEWordAttr
    DefGSElement SetTextMode, GR_SET_TEXT_MODE, PEWordAttr
    DefGSElement SetTextSpacePad, GR_SET_TEXT_SPACE_PAD, PESpacePad
    DefGSElement SetTextAttr, GR_SET_TEXT_ATTR, PEAttr
    DefGSElement SetFont, GR_SET_FONT, PESetFont
    DefGSElement SetTextColorIndex,GR_SET_TEXT_COLOR_INDEX,PEByteAttr,,,GrSetTextColor
    DefGSElement SetCustomTextMask,GR_SET_CUSTOM_TEXT_MASK,PECustomMask,,,GrSetTextMask
    DefGSElement SetTrackKern, GR_SET_TRACK_KERN, PEWordAttr
    DefGSElement SetFontWeight, GR_SET_FONT_WEIGHT, PEByteAttr
    DefGSElement SetFontWidth, GR_SET_FONT_WIDTH, PEByteAttr
    DefGSElement SetSuperscriptAttr, GR_SET_SUPERSCRIPT_ATTR, PEWordAttr
    DefGSElement SetSubscriptAttr, GR_SET_SUBSCRIPT_ATTR, PEWordAttr
    DefGSElement SetTextPattern, GR_SET_TEXT_PATTERN, PESetPattern
    DefGSElement SetCustomTextPattern,GR_SET_CUSTOM_TEXT_PATTERN,PESetCustPattern,bytes,OSCTP_size, GrSetTextPattern
    DefGSElement    ,       GR_ATTR_8E,     PENull
    DefGSElement    ,       GR_ATTR_8F,     PENull
    DefGSElement    ,       GR_ATTR_90,     PENull
    DefGSElement    ,       GR_ATTR_91,     PENull
    DefGSElement    ,       GR_ATTR_92,     PENull
    DefGSElement    ,       GR_ATTR_93,     PENull
    DefGSElement    ,       GR_ATTR_94,     PENull
    DefGSElement    ,       GR_ATTR_95,     PENull
    DefGSElement    ,       GR_ATTR_96,     PENull
    DefGSElement    ,       GR_ATTR_97,     PENull
    DefGSElement    ,       GR_ATTR_98,     PENull
    DefGSElement    ,       GR_ATTR_99,     PENull
    DefGSElement    ,       GR_ATTR_9A,     PENull
    DefGSElement    ,       GR_ATTR_9B,     PENull
    DefGSElement    ,       GR_ATTR_9C,     PENull
    DefGSElement    ,       GR_ATTR_9D,     PENull
    DefGSElement    ,       GR_ATTR_9E,     PENull
    DefGSElement    ,       GR_ATTR_9F,     PENull
    DefGSElement BeginPath, GR_BEGIN_PATH, PEOneCoord
    DefGSElement EndPath, GR_END_PATH, PENoArgs
    DefGSElement SetClipRect, GR_SET_CLIP_RECT, PEClipRect
    DefGSElement SetWinClipRect, GR_SET_WIN_CLIP_RECT, PEClipRect
    DefGSElement CloseSubPath, GR_CLOSE_SUB_PATH, PENoArgs
    DefGSElement SetClipPath, GR_SET_CLIP_PATH, PEPathArgs
    DefGSElement SetWinClipPath, GR_SET_WIN_CLIP_PATH, PEPathArgs
    DefGSElement SetStrokePath, GR_SET_STROKE_PATH, PENoArgs
    DefGSElement    ,       GR_PATH_A8,     PENull
    DefGSElement    ,       GR_PATH_A9,     PENull
    DefGSElement    ,       GR_PATH_AA,     PENull
    DefGSElement    ,       GR_PATH_AB,     PENull
    DefGSElement    ,       GR_PATH_AC,     PENull
    DefGSElement    ,       GR_PATH_AD,     PENull
    DefGSElement    ,       GR_PATH_AE,     PENull
    DefGSElement    ,       GR_PATH_AF,     PENull

Library: gstring.def


GStringErrorType

GStringErrorType        etype word
    GSET_NO_ERROR   enum GStringErrorType   ; there was no error
    GSET_DISK_FULL  enum GStringErrorType   ; disk became full, file truncated

Library: gstring.def


GStringKillType

GStringKillType     etype byte
    GSKT_KILL_DATA      enum GStringKillType    ; delete the data too
    GSKT_LEAVE_DATA     enum GStringKillType    ; leave the data alone

Library: gstring.def


GStringSetPosType

GStringSetPosType       etype byte
    GSSPT_SKIP_1    enum GStringSetPosType  ; advance 1 element
    GSSPT_RELATIVE  enum GStringSetPosType  ; advance N elements
    GSSPT_BEGINNING enum GStringSetPosType  ; set to start of gstring
    GSSPT_END       enum GStringSetPosType  ; set to end of gstring

Library: gstring.def


GStringType

GStringType     etype byte
    GST_CHUNK   enum GStringType    ; write to a memory chunk
    GST_STREAM  enum GStringType    ; write to a stream
    GST_VMEM    enum GStringType    ; write to a vmem block
    GST_PTR     num GStringType     ; static memory (read only)
    GST_PATH    enum GStringType    ; write to a path (&store in an lmem 
                                    ; chunk). INTERNAL ONLY!

Library: gstring.def


GTCFeatures

GTCFeatures     record
    GTCF_TOOL_DIALOG        :1
GTCFeatures     end

Library: Objects/gToolCC.def


GTP_vars

GTP_vars        struct
    GTPL_style          TextMetricStyles    ; Must be first
    GTPL_object         dword               ; Object segment address
    GTPL_startPosition  word                ; Passed position into gstring
    GTPL_charCount      word                ; Start offset in string
    align               word
GTP_vars        ends

This structure is passed to GrTextPosition.

Library: text.def


Guide

Guide   struct
    Guide_location      DWFixed
Guide   ends

Library: ruler.def


GVCFeatures

GVCFeatures     record
    GVCF_MAIN_100               :1
    GVCF_MAIN_SCALE_TO_FIT      :1
    GVCF_ZOOM_IN                :1
    GVCF_ZOOM_OUT               :1
    GVCF_REDUCE                 :1
    GVCF_100                    :1
    GVCF_ENLARGE                :1
    GVCF_BIG_ENLARGE            :1
    GVCF_SCALE_TO_FIT           :1
    GVCF_ADJUST_ASPECT_RATIO    :1
    GVCF_APPLY_TO_ALL           :1
    GVCF_SHOW_HORIZONTAL        :1
    GVCF_SHOW_VERTICAL          :1
    GVCF_CUSTOM_SCALE           :1
    GVCF_REDRAW                 :1
GVCFeatures     end

Library: Objects/gViewCC.def


GVCToolboxFeatures

GVCToolboxFeatures      record
    GVCTF_100                   :1
    GVCTF_SCALE_TO_FIT          :1
    GVCTF_ZOOM_IN               :1
    GVCTF_ZOOM_OUT              :1
    GVCTF_REDRAW                :1
    GVCTF_PAGE_LEFT             :1
    GVCTF_PAGE_RIGHT            :1
    GVCTF_PAGE_UP               :1
    GVCTF_PAGE_DOWN             :1
    GVCTF_ADJUST_ASPECT_RATIO   :1
    GVCTF_APPLY_TO_ALL          :1
    GVCTF_SHOW_HORIZONTAL       :1
    GVCTF_SHOW_VERTICAL         :1
GVCToolboxFeatures      end

Library: Objects/gViewCC.def

Structures D-F <– Table of Contents    –> Structures H-M