3Assembly Reference

n	GadgetSizeHintArgs

GadgetSizeHintArgs			struct

GSHA_width			SpecWidth <>			;Width of the composite

GSHA_height			SpecHeight <>			;Height of each child

GadgetSizeHintArgs			ends



Library:	Objects/genC.def

n	GCCFeatures

GCCFeatures		record

GCCF_HORIZONTAL_GUIDES				:1
GCCF_VERTICAL_GUIDES				:1

GCCFeatures		end



Library:	ruler.def

n	GCMIcon

GCMIcon	etype	byte, 0

 GCMI_NONE		enum GCMIcon

 GCMI_EXIT		enum GCMIcon

 GCMI_HELP		enum GCMIcon



Library:	Objects/genC.def

n	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

n	GCNDriveChangeNotificationType

GCNDriveChangeNotificationType					etype word

GCNDCNT_CREATED				enum GCNDriveChangeNotificationType

GCNDCNT_DESTROYED				enum GCNDriveChangeNotificationType



Library:	gcnlist.def

n	GCNExpressMenuNotificationType

GCNExpressMenuNotificationType					etype word

GCNEMNT_CREATED				enum GCNExpressMenuNotificationType

GCNEMNT_DESTROYED				enum GCNExpressMenuNotificationType



Library:	gcnlist.def

n	GCNListBlockHeader

GCNListBlockHeader		struct

GCNLBH_lmemHeader				LMemBlockHeader
GCNLBH_listOfLists				lptr.GCNListOfListsHeader

GCNListBlockHeader		ends

This structure begins a kernel's GCN list block.

Library:	gcnlist.def

n	GCNListElement

GCNListElement		struct

GCNLE_item		optr

GCNListElement		ends

This structure stores an element within a GCN list.

Library:	Objects/metaC.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	GCNStandardListType

GCNStandardListType			etype word, 0, 2

GCNSLT_FILE_SYSTEM				enum GCNStandardListType

; This notification is sent out when the file system changes.



Library:	gcnlist.def

n	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

n	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

n	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

n	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

n	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

n	GDICFeatures

GDICFeatures		record

GDCF_OVERLAPPING_MAXIMIZED				:1
GDCF_TILE				:1
GDCF_DISPLAY_LIST				:1

GDICFeatures		end



Library:	Objects/gDCtrlC.def

n	GDICToolboxFeatures

GDICToolboxFeatures			record

GDCTF_OVERLAPPING_MAXIMIZED					:1
GDCTF_TILE					:1
GDCTF_DISPLAY_LIST					:1

GDICToolboxFeatures			end



Library:	Objects/gDCtrlC.def

n	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

n	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

n	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

n	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:	

n	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

n	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

n	GenAppUsabilityTuple

GenAppUsabilityTuple			struct

GAUT_flags			GenAppUsabilityTupleFlags
GAUT_objChunk			lptr
GAUT_objResId			word

GenAppUsabilityTuple			ends



Library:	Objects/gAppC.def

n	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

n	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

n	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

n	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

n	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

n	GenControlChildFlags

GenControlChildFlags			record

GCCF_NOTIFY_WHEN_ADDING					:1

GCCF_ALWAYS_ADD					:1
GCCF_IS_DIRECTLY_A_FEATURE					:1

GenControlChildFlags			end



Library:	Objects/gCtrlC.def

n	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

n	GenControlFeatureFlags

GenControlFeatureFlags			record

:8

GenControlFeatureFlags			end



Library:	Objects/gCtrlC.def

n	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

n	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

n	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

n	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

n	GenControlScanInfo

GenControlScanInfo			struct

GCSI_userAdded				word
GCSI_userRemoved				word
GCSI_appRequired				word
GCSI_appProhibited				word

GenControlScanInfo			ends



Library:	Objects/gCtrlC.def

n	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

n	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

n	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

n	GenControlUserData

GenControlUserData			struc

GCUD_flags				GenControlUserFlags
GCUD_userAddedUI				word
GCUD_userRemovedUI				word
GCUD_userAddedToolboxUI				word
GCUD_userRemovedToolboxUI				word

GenControlUserData			ends



Library:	Objects/gCtrlC.def

n	GenControlUserFlags

GenControlUserFlags			record

				:14
GCUF_USER_TOOLBOX_UI				:1
GCUF)USER_UI				:1

GenControlUserFlags			end



Library:	Objects/gCtrlC.def

n	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

n	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

n	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

n	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

n	GenDocumentChangePasswordParams

GenDocumentChangePasswordParams					struct

GDCPP_password			char (MAX_PASSWORD_SIZE+2) dup (?)

GenDocumentChangePasswordParams					ends



Library:	Objects/gDocC.def

n	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

n	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

n	GenDocumentControlMode

GenDocumentControlMode			etype byte

GDCM_VIEWER				enum GenDocumentControlMode

GDCM_SHARED_SINGLE				enum GenDocumentControlMode

GDCM_SHARED_MULTIPLE				enum GenDocumentControlMode



Library:	Objects/gDocCtrl.def

n	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

n	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

n	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

n	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

n	GenDynamicListPosition

GenDynamicListPosition			etype word

 GDLP_FIRST			enum GenDynamicListPosition, 00000h

 GDLP_LAST			enum GenDynamicListPosition, 0ffffh



Library:	Objects/gDListC.def

n	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

n	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

n	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

n	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

n	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

n	GenFileSelectorEntryType

GenFileSelectorEntryType			etype byte, 0

GFSET_FILE			enum GenFileSelectorEntryType

GFSET_SUBDIR			enum GenFileSelectorEntryType

GFSET_VOLUME			enum GenFileSelectorEntryType



Library:	Objects/gFSelC.def

n	GenFileSelectorFileAttrs

GenFileSelectorFileAttrs				struct

GFSFA_match			FileAttrs			; Attributes that must match

GFSFA_mismatch			FileAttrs			; Attributes that must not match

GenFileSelectorFileAttrs				ends



Library:	Object/gFSelC.def

n	GenFileSelectorGeodeAttrs

GenFileSelectorGeodeAttrs				struct

GFSGA_match			GeodeAttrs		; Attributes that must match

GFSGA_mismatch			GeodeAttrs		; Attributes that must not match

GenFileSelectorGeodeAttrs				ends



Library:	Objects/gFSelC.def

n	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

n	GenFileSelectorScalableUIEntry

GenFileSelectorScalableUIEntry					struct

GFSSUIE_command				GenFileSelectorScalableUICommand
GFSSUIE_appFeature				word
GFSSUIE_fsFeatures				FileSelectorAttrs

GenFileSelectorScalableUIEntry					ends



Library:	Objects/gFSelC.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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):

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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	GenSaveWindowInfo

GenSaveWindowInfo		struct

GSWI_winPosition				SpecWinSizePair
GSWI_winSize				SpecWinSizePair
GSWI_winPosSizeState				word

GenSaveWindowInfo		ends



Library:	Objects/genC.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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:

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

n	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

n	GenViewControlSpecialScaleFactor

GenViewControlSpecialScaleFactor					etype word

GVCSSF_TO_FIT			enum GenViewControlSpecialScaleFactor



Library:	Objects/gViewCC.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

GAGCNLT_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

n	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

n	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

n	GeoWorksPrefDialogGCNListType

GeoWorksPrefDialogGCNListType				etype word, first PrefDialogMessages, 2

PDGCNLT_DIALOG_CHANGE					enum GeoWorksPrefDialogGCNListType

; MSG_PREF_NOTIFY_DIALOG_CHANGE sent out.



Library:	config.def

n	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

n	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

n	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

n	GetItemMonikerParams

GetItemMonikerParams			struct

GIMP_identifier				word
GIMP_bufferSize				word
GIMP_buffer				fptr.char

GetItemMonikerParams			ends



Library:	config.def

n	GetMaskType

GetMaskType		etype byte

GMT_ENUM		enum GetMaskType

GMT_BUFFER		enum GetMaskType



Library:	graphics.def

n	GetPalType

GetPalType		etype byte

GPT_ACTIVE			enum GetPalType

GPT_DEFAULT			enum GetPalType



Library:	color.def

n	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:	

n	GetSearchSpellObjectParam

GetSearchSpellObjectParam				record

GSSOP_RELAYED_FLAG				:1
				:11
GSSOP_TYPE				GetSearchSpellObjectType:4

GetSearchSpellObjectParam				end



Library:	Objects/vTextC.def

n	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

n	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

n	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

n	GFSTempDataEntry

GFSTempDataEntry		struct

GFSTDE_selectionNumber				word
GFSTDE_selectionFlags				GenFileSelectorEntryFlags

GFSTempDataEntry		ends



Library:	Objects/gFSelC.def

n	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

n	GOArcCFeatures

GOArcCFeatures		record

GOACF_START_ANGLE				:1
GOACF_END_ANGLE				:1
GOACF_PIE_TYPE				:1
GOACF_CHORD_TYPE				:1

GOArcCFeatures		end



Library:	grobj.def

n	GOATGCFeatures

GOATGCFeatures		record

GOATGCF_ALIGN_TO_GRID				:1

GOATGCFeatures		end



Library:	grobj.def

n	GOCCFeatures

GOCCFeatures		record

GOCCF_CONVERT_TO_BITMAP				:1
GOCCF_CONVERT_TO_GRAPHIC				:1
GOCCF_CONVERT_FROM_GRAPHIC				:1

GOCCFeatures		end



Library:	grobj.def

n	GOCDCFeatures

GOCDCFeatures		record

GOCDCF_REPITITIONS				:1
GOCDCF_MOVE				:1
GOCDCF_SCALE				:1
GOCDCF_ROTATE				:1
GOCDCF_SKEW				:1

GOCDCFeatures		end



Library:	grobj.def

n	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

n	GODACFeatures

GODACFeatures		record

GODACF_SET_DEFAULT_ATTRIBUTES					:1

GODACFeatures		end



Library:	grobj.def

n	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

n	GODMCFeatures

GODMCFeatures		record

GODMCF_DRAFT_MODE				:1

GODMCFeatures		end



Library:	grobj.def

n	GOFCFeatures

GOFCFeatures		record

GOFCF_FLIP_HORIZONTALLY				:1
GOFCF_FLIP_VERTICALLY				:1

GOFCFeatures		end



Library:	grobj.def

n	GOGCFeatures

GOGCFeatures		record

GOGCF_GROUP			:1
GOGCF_UNGROUP			:1

GOGCFeatures		end



Library:	grobj.def

n	GOHCFeatures

GOHCFeatures		record

GOHCF_SMALL_HANDLES				:1
GOHCF_MEDIUM_HANDLES				:1
GOHCF_LARGE_HANDLES				:1
GOHCF_INVISIBLE_HANDLES				:1

GOHCFeatures		end



Library:	grobj.def

n	GOHSCFeatures

GOHSCFeatures		record

GOHSCF_HIDE		:1
GOHSCF_SHOW		:1

GOHSCFeatures		end



Library:	grobj.def

n	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

n	GOLACToolboxFeatures

GOLACToolboxFeatures			record

GOLACTF_WIDTH_INDEX				:1
GOLACTF_STYLE				:1

GOLACToolboxFeatures			end



Library:	grobj.def

n	GOPICFeatures

GOPICFeatures   record

GOPICF_PASTE_INSIDE : 1

GOPICF_BREAKOUT_PASTE_INSIDE : 1

GOPICFeatures   end



Library:	grobj.def

n	GOPICToolboxFeatures

GOPICToolboxFeatures    record

GOPICTF_PASTE_INSIDE : 1

GOPICTF_BREAKOUT_PASTE_INSIDE : 1

GOPICToolboxFeatures    end



Library:	grobj.def

n	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

n	GOTransformCFeatures

GOTransformCFeatures			record

GOTCF_UNTRANSFORM				:1

GOTransformCFeatures			end



Library:	grobj.def

n	GPCFeatures

GPCFeatures		record

GPCF_GOTO_PAGE				:1
GPCF_NEXT_PAGE				:1
GPCF_PREVIOUS_PAGE				:1

GPCFeatures		end



Library:	gPageCC.def

n	GPCToolboxFeatures

GPCToolboxFeatures		record

GPCTF_PREVIOUS_PAGE				:1
GPCTF_GOTO_PAGE				:1
GPCTF_NEXT_PAGE				:1

GPCToolboxFeatures		end



Library:	gPageCC.def

n	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

n	GPICToolboxFeatures

GPICToolboxFeatures			record

GPICTF_INITIATE			:1

GPICToolboxFeatures			end



Library:	grobj.def

n	GraphicPattern

GraphicPattern		struct

GP_type			PatternType
GP_data			byte

GraphicPattern		ends

This structure stores a system hatch pattern.

Library:	graphics.def

n	Grid

Grid	struct

G_x	WWFixed			;pixels between horiz gridlines

G_y	WWFixed			;pixels between vert gridlines

Grid	ends



Library:	ruler.def

n	GridOptions

GridOptions		record

GO_SHOW_GRID			:1
GO_SNAP_TO_GRID			:1
			:6

GridOptions		end



Library:	ruler.def

n	GrInfoType

GrInfoType		etype word, 0, 2

GIT_PRIVATE_DATA 				enum GrInfoType

GIT_WINDOW 				enum GrInfoType



Library:	graphics.def

n	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

n	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

n	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

n	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

n	GrObjAnchoredScaleData

GrObjAnchoredScaleData			struct

GOASD_scale				GrObjScaleData
GOASD_scaleAnchor				GrObjHandleSpecification
align				word

GrObjAnchoredScaleData			ends



Library:	grobj.def

n	GrObjAnchoredSkewData

GrObjAnchoredSkewData			struct

GOASD_degrees				GrObjSkewData
GOASD_skewAnchor				GrObjHandleSpecification
align				word

GrObjAnchoredSkewData			ends



Library:	grobj.def

n	GrObjAreaAttrElementType

GrObjAreaAttrElementType			etype byte

GOAAET_BASE				enum GrObjAreaAttrElementType

;GrObjBaseAreaAttrElement

GOAAET_GRADIENT				enum GrObjAreaAttrElementType

;GrObjGradientAreaAttrElement



Library:	grobj.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	GrObjBlockHandleElement

GrObjBlockHandleElement			struct

GOBHE_blockHandle				hptr
GOBHE_potentialSize				word

GrObjBlockHandleElement			ends



Library:	grobj.def

n	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

n	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

n	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

n	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

n	GrObjBodyNotifyInstructionFlags

GrObjBodyNotifyInstructionFlags					struct

GBNIF_flags				GrObjDrawFlags

GBNIF_handleSize				byte    ;this field added post-Zoomer

align word

GrObjBodyNotifyInstructionFlags					ends



Library:	grobj.def

n	GrObjBodyPasteCallBackStruct

GrObjBodyPasteCallBackStruct				struct

GOBPCBS_message				word
GOBPCBS_optr				optr

GrObjBodyPasteCallBackStruct				ends



Library:	grobj.def

n	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

n	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

n	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

n	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

n	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

n	GrObjDuplicateControlFeatures

GrObjDuplicateControlFeatures   record

GODCF_DUPLICATE : 1

GODCF_DUPLICATE_IN_PLACE : 1

GrObjDuplicateControlFeatures   end



Library:	grobj.def

n	GrObjDuplicateControlToolboxFeatures

GrObjDuplicateControlToolboxFeatures    record

GODCTF_DUPLICATE : 1

GODCTF_DUPLICATE_IN_PLACE : 1

GrObjDuplicateControlToolboxFeatures    end



Library:	

n	GrObjEntryPointRelocation

GrObjEntryPointRelocation				struct

GOEPR_fullRelocation				EntryPointRelocation
GOEPR_grObjEntryPoint				word

GrObjEntryPointRelocation				ends



Library:	grobj.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	GrObjHandleAnchorData

GrObjHandleAnchorData			struct

GOHAD_anchor			PointDWFixed
GOHAD_handle			GrObjHandleSpecification
align			word

GrObjHandleAnchorData			ends



Library:	grobj.def

n	GrObjHandleSpecification

GrObjHandleSpecification			record

GOHS_HANDLE_LEFT				:1
GOHS_HANDLE_TOP				:1
GOHS_HANDLE_RIGHT				:1
GOHS_HANDLE_BOTTOM				:1

GrObjHandleSpecification			end



Library:	grobj.def

n	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

n	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

n	GrObjLineAttrElementType

GrObjLineAttrElementType			etype byte

GOLAET_BASE				enum GrObjLineAttrElementType

;GrObjBaseLineAttrElement



Library:	grobj.def

n	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

n	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 change attributes

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

n	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

n	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

n	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

n	GrObjNotifyAreaAttrChange

GrObjNotifyAreaAttrChange				struct

GNAAC_areaAttr				GrObjBaseAreaAttrElement
GNAAC_areaAttrDiffs				GrObjBaseAreaAttrDiffs

GrObjNotifyAreaAttrChange				ends



Library:	grobj.def

n	GrObjNotifyCurrentTool

GrObjNotifyCurrentTool			struct

GONCT_toolClass				fptr.ClassStruct
GONCT_specInitData				word

GrObjNotifyCurrentTool			ends



Library:	grobj.def

n	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

n	GrObjNotifyLineAttrChange

GrObjNotifyLineAttrChange				struct

GNLAC_lineAttr				GrObjBaseLineAttrElement
GNLAC_lineAttrDiffs				GrObjBaseLineAttrDiffs

GrObjNotifyLineAttrChange				ends



Library:	grobj.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	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

n	GrObjScaleData

GrObjScaleData		struct

GOSD_xScale		WWFixed
GOSD_yScale		WWFixed

GrObjScaleData		ends



Library:	grobj.def

n	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

n	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

n	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

n	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

n	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

n	GrObjSkewControlFeatures

GrObjSkewControlFeatures			record

GOSCF_LEFT				:1
GOSCF_RIGHT				:1
GOSCF_UP				:1
GOSCF_DOWN				:1
GOSCF_CUSTOM_SKEW				:1

GrObjSkewControlFeatures			end



Library:	grobj.def

n	GrObjSkewData

GrObjSkewData		struct

GOSD_xDegrees			WWFixed
GOSD_yDegress			WWFixed

GrObjSkewData		ends



Library:	grobj.def

n	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

n	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

n	GrObjStylePrivateData

GrObjStylePrivateData			struct

GSPD_flags			GrObjStyleFlags
GSPD_unused			byte 2 dup (0)

GrObjStylePrivateData			ends



Library:	grobj.def

n	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

n	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

n	GrObjTiledDataFlags

GrObjTiledDataFlags			record

			:7
GOTDF_VAR_DATA			:1

GrObjTiledDataFlags			end



Library:	grobj.def

n	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

n	GrObjTransferDataDirectory

GrObjTransferDataDirectory				struct

GOTDD_tiledDataFlags				GrObjTiledDataFlags
GOTDD_protocol				byte

GrObjTransferDataDirectory				ends



Library:	grobj.def

n	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

n	GrObjTransMatrix

GrObjTransMatrix		struct

GTM_e11			WWFixed
GTM_e12			WWFixed
GTM_e21			WWFixed
GTM_e22			WWFixed

GrObjTransMatrix		ends



Library:	grobj.def

n	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

n	GrObjUndoAppType

GrObjUndoAppType		struct

GOUAT_freeMessage				word
GOUAT_undoMessage				word

GrObjUndoAppType		ends



Library:	grobj.def

n	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

n	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

n	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

n	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

n	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

n	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_PAGE			: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

n	GSElemInfo

GSElemInfo		struct

GSEI_size			word
GSEI_play			nptr
GSEI_kern			fptr

GSElemInfo		ends



Library:	gstring.def

n	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

n	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

n	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

n	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

n	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

n	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

n	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			enum GStringType				; static memory (read only)

GST_PATH			enum GStringType				; write to a path (&store in an lmem 
							; chunk). INTERNAL ONLY!



Library:	gstring.def

n	GTCFeatures

GTCFeatures		record

GTCF_TOOL_DIALOG			:1

GTCFeatures		end



Library:	Objects/gToolCC.def

n	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

n	Guide

Guide	struct

Guide_location			DWFixed

Guide	ends



Library:	ruler.def

n	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

n	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
Figure 12-0

Display 12-0

SwatDisplay 12-0

Table 12-0
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"
