3.7 Structures T-U


Tab		struct
	T_position		word			; Position of tab (pixels * 8)
	T_attr			TabAttributes	; Tab attributes.
	T_grayScreen	SysDrawMask		; Gray screen for tab lines
	T_lineWidth		byte			; Width of line before (after) tab
									; 0 = none, units are pixels * 8
	T_lineSpacing	byte			; Space between tab and line
									; 0 = none, units are pixels * 8
	T_anchor		word			; Anchor character.
Tab		ends

Library: text.def


TabAttributes			record
	TA_LEADER		TabLeader:3
	TA_TYPE			TabType:2
TabAttributes			end

Library: text.def


TabLeader			etype byte
	TL_NONE		enum TabLeader
	TL_DOT		enum TabLeader
	TL_LINE		enum TabLeader
	TL_BULLET	enum TabLeader

Library: text.def


TabReference		record
	TR_TYPE				TabReferenceType:1	; Type of reference.
	TR_REF_NUMBER		:7					; Reference number
TabReference		end

Library: text.def


TabReferenceType		etype byte
	TRT_RULER	enum TabReferenceType	; Reference is into the ruler.
	TRT_OTHER	enum TabReferenceType

Library: text.def


TabType	etype byte
	TT_LEFT				enum TabType
	TT_CENTER			enum TabType
	TT_RIGHT			enum TabType
	TT_ANCHORED			enum TabType

Library: text.def


TargetLevel		etype word
	TL_TARGET					enum TargetLevel, 0
	TL_CONTENT					enum TargetLevel
	TL_GENERIC_OBJECTS			enum TargetLevel, 1000
	TL_GEN_SYSTEM		 		enum TargetLevel
	TL_GEN_FIELD				enum TargetLevel
	TL_GEN_APPLICATION			enum TargetLevel
	TL_GEN_PRIMARY 				enum TargetLevel
	TL_GEN_DISPLAY_CTRL	 		enum TargetLevel
	TL_GEN_DISPLAY		 		enum TargetLevel
	TL_GEN_VIEW					enum TargetLevel
	; Place PC/GEOS library extensions here 
	TL_LIBRARY_LEVELS	enum TargetLevel, 2000
	TL_APPLICATION_OBJECTS	enum TargetLevel, 3000

Final target object. (Currently, just text objects, such as VisText, GenTextDisplay or GenText).

Content within view (generic, visual, or whatever).


The system object itself.

Field within system.

Application within field.

Primary within application.

Display control within primary.

Display within display control.

View within display.

Library: Objects/genC.def


TargetReference			struct
	TR_object		optr	; OD of node/leaf in target hierarchy
	TR_class		fptr	; class of above object
TargetReference			ends

Library: Objects/gViewC.def


TCCFeatures		record
TCCFeatures		end

Library: Objects/Text/tCtrlC.def


TCCToolboxFeatures		record
TCCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


TCFeatures		record
	TCF_LIST			:1
	TCF_TYPE			:1
	TCF_LINE			:1
TCFeatures		end

Library: Objects/Text/tCtrlC.def


TCToolboxFeatures		record
TCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


TempGenControlInstance			struct
	TGCI_interactibleFlags			GenControlInteractibleFlags
	TGCI_childBlock					hptr
	TGCI_toolBlock					hptr
	TGCI_toolParent					optr
	TGCI_features					word
	TGCI_toolboxFeatures			word
	TGCI_activeNotificationList		GCNListType
	TGCI_upToDate					GenControlInteractibleFlags
TempGenControlInstance			ends

TGCI_interactableFlags holds the current status of various portions of the controller (the entire controller object itself, its associated toolbox, or its associated “normal” UI). These flags define which portions of the controller are interactable by the user. These bits may be changed by the default handlers for MSG_GEN_CONTROL_NOTIFY_INTERACTABLE and MSG_GEN_CONTROL_NOTIFY_NOT_INTERACTABLE only. If any bits become set, the controller adds itself to the notification list, so that it will be able to update the interactable areas. The controller then remains on the lists until all bits become clear.

TGCI_toolParent stores the object passed to the MSG_GEN_CONTROL_GENERATE_TOOLBOX_UI method. This object is the object that the tools were added to at that point.

TGCI_upToDate holds the status of the GenControlInteractableFlags in TGCI_interactibleFlags at the point that the last notification update came in. This defines what portions of the controller’s UI were up to date at that last notification period. This way, if some part of the UI becomes non-interactable, then interactable again before another update, we can detect this scenario and avoid a redundant update.

Library: Objects/gCtrlC.def


TempGenToolControlInstance				struct
	TGTCI_curController			optr
	TGTCI_features				word
	TGTCI_required				word
	TGTCI_allowed				word
	TGTCI_curToolGroup			optr
	TGTCI_toolGroupVisible		byte
TempGenToolControlInstance				ends

TGTCI_curController stores the optr of the controller whose tool options and placement location are currently being displayed for editing by the user.

TGTCI_features stores the mask of currently active features.

TGTCI_required stores the mask of features which must always be active, i.e. can’t be “hidden” by the user.

TGTCI_allowed stores the mask of features which controller and application together will allow the user to access. Bits set here but not in “TGTCI_features” will appear in the “hidden” list.

TGTCI_curToolGroup stores the currently selected tool group.

TGTCI_toolGroupVisible stores a non-zero value if a tool group list is visible. If visible, all tool groups are highlighted, and the current one “selected” to bring it to the attention of the user.

Library: Objects/gToolCC.def


TempImportExportData			struct
	TIED_formatUI			optr	; OD of duplicated format UI
	TIED_formatLibrary		hptr	; handle of library for above
TempImportExportData			ends

Library: impex.def


TempMetaGCNData		struct
	TMGCND_listOfLists		lptr.GCNListOfListsHeader
	TMGCND_flags			TempMetaGCNFlags
TempMetaGCNData		ends

TMGCND_listOfLists stores the chunk handle holding the GCN list of lists.

Library: Objects/metaC.def


TempMetaGCNFlags		record
	TMGCNF_RELOCATED		:1		; set if relocated
TempMetaGCNFlags		end

Library: Objects/metaC.def


TempPrintCtrlInstance			struct
	TPCI_currentSummons			optr	; currently active summons
	TPCI_progressBox			optr	; OD of progress dialog box
	TPCI_jobParHandle			hptr	; memory handle to JobParamters
	TPCI_fileHandle				word	; file handle (if printing)
	TPCI_gstringHandle			word	; gstring handle (if printing)
	TPCI_printBlockHan			word	; the printer block handle
	TPCI_attrs					PrintControlAttrs
	TPCI_status					PrintStatusFlags
	TPCI_holdUpCompletionCount 	byte	; Number of things not wanting the message 
										; stored in TEMP_PRINT_COMPLETION_EVENT to 
										; be sent out just yet. TempPrintCtrlInstance			ends

Library: spool.def


TestRectReturnType			etype byte
	TRRT_OUT			enum TestRectReturnType
	TRRT_PARTIAL		enum TestRectReturnType
	TRRT_IN				enum TestRectReturnType

Library: graphics.def


TextArrayType		etype byte
	TAT_CHAR_ATTRS			enum TextArrayType
	TAT_PARA_ATTRS			enum TextArrayType
	TAT_GRAPHICS			enum TextArrayType
	TAT_TYPES				enum TextArrayType

Library: Objects/vTextC.def


TextAttr		struct
	TA_color		ColorQuad			; RGB values or index
	TA_mask			SystemDrawMask		; draw mask
	TA_pattern		GraphicPattern		; pattern
	TA_styleSet		TextStyle			; text style bits to set
	TA_styleClear	TextStyle			; text style bits to clear
	TA_modeSet		TextMode			; text mode bits to set
	TA_modeClear	TextMode			; text mode bits to clear
	TA_spacePad		WBFixed				; space padding
	TA_font			FontID 				; typeface
	TA_size			WBFixed				; point size
	TA_trackKern	sword				; track kerning
	TA_fontWeight	FontWeight			; weight of font
	TA_fontWidth	FontWidth			; width of font
	align			word
TextAttr		ends

This structure is used with GrSetTextAttr and GrDrawTextField.

Library: graphics.def


TextClipboardOption			etype word
	TCO_COPY						enum TextClipboardOption
	TCO_RETURN_TRANSFER_FORMAT		enum TextClipboardOption
	TCO_RETURN_TRANSFER_ITEM		enum TextClipboardOption
	TCO_RETURN_NOTHING				enum TextClipboardOption

Library: Objects/vTextC.def


TextColors		struc
	TC_unselectedColor		byte
	TC_selectedColor		byte
TextColors		ends

Library: genC.def


TextElementArrayHeader		struct
	TEAH_meta			ElementArrayHeader
	TEAH_arrayType		TextArrayType
	TEAH_unused			byte
TextElementArrayHeader		ends

Library: Objects/vTextC.def


TextFocusFlags	record		;Record passed in BP
							; Set if an editable text object has the focus
							; Set if the object is run by the UI thread
TextFocusFlags end

Library: vTextC.def


TextGuardianFlags		record
TextGuardianFlags		end

If true then text object will not shrink below the desiredMinHeight while it is being edited or when some attribute changes.

If true then text object will not expand above the desiredMaxHeight while it is being edited or when some attribute changes.

If true, text object can grow beyond desiredMaxHeight during editing, but when the object stops being edited it will shrink back to desiredMaxHeight. This flag is meaningless if TGF_ENFORCE_DESIRED_MAX_HEIGHT is not set.

If true, then during resize don’t allow text object to become shorter than is necessary to display all the text.

If true then when the text object loses the edit grab shrink the width to minimum needed to hold the text. Used when user clicks and releases in the same spot to create.

Library: grobj.def


TextLargeRunArrayHeader			struct
	TLRAH_meta				HugeArrayDirectory
	TLRAH_elementVMBlock	word		; Element block (or null)
TextLargeRunArrayHeader			ends

This structure stores a generic array of runs in the large text format.

Library: Objects/vTextC.def


TextMetricStyles		struct
	TMS_styleCallBack		fptr.far		;style callback routine
	;	PASS:		ss:bx	= TOC_vars
	;				di		= Offset into the field
	;				ds		= Segment address of old text pointer
	;	RETURN:		TMS_textAttr set
	;				ds:si	= Pointer to the text
	;				cx		= Number of characters in this style
	;	DESTROYED:			nothing
	TMS_graphicCallBack		fptr.far		;graphic callback routine
	;	PASS:		ss:bx	= LICL_vars
	;				di		= Offset into field
	;				ds		= Segment address of text pointer
	;	RETURN:		cx		= Height of the graphic of graphic
	;							at current position
	;				dx		= Width of the graphic
	;	DESTROYED:			nothing
	TMS_fieldStart			dword
	TMS_sizeSoFar			WBFixed
	TMS_lastCharWidth		WBFixed
	TMS_textAttr			TextAttr
	TMS_fontHandle			hptr.FontBuf
	TMS_trackKernValue		BBFixed
	TMS_flags				TMSFlags
	TMS_gstateHandle		hptr.GState
	TMS_gstateSegment		word
	TMS_styleHeight			WBFixed
	TMS_styleBaseline		WBFixed
TextMetricStyles		ends

Library: text.def


TextMode		record
	TM_DRAW_CONTROL_CHARS		:1	; Does the following mapping when drawing
									; text:
									; C_SPACE		 -> C_CNTR_DOT
									; C_CR			 -> C_PARAGRAPH
									; C_TAB			 -> C_LOGICAL_NOT
	TM_TRACK_KERN				:1	;internal only - not settable
	TM_PAIR_KERN				:1	;internal only - not settable
	TM_PAD_SPACES				:1	;internal only - not settable
TextMode		end

Library: graphics.def


TextReference		struct
	TR_type		TextReferenceType
	TR_ref		TextReferenceUnion
TextReference		ends

Library: Objects/vTextC.def


TextReferenceBlock			struct
	TRB_handle			hptr.char
TextReferenceBlock			ends

This structure corresponds to a TextReferenceType of TRT_BLOCK. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRB_handle stores the handle of the text buffer. No entries need to be filled in to allocate a destination buffer. The heap allocation request will be made with the HAF_NO_ERR flag. If VTGRF_RESIZE is passed then either the passed block or the allocated block will be resized to accommodate the text.

Library: Object/vTextC.def


TextReferenceBlockChunk			struct
	TRBC_ref		optr.char
TextReferenceBlockChunk			ends

This structure corresponds to a TextReferenceType of TRT_OPTR. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRBC_ref stores the optr to a text buffer (a group of character)s. The handle field of TRBC_ref must be filled in.

It is assumed that the LMem heap will be able to accommodate this allocation. The caller is responsible for ensuring that this is the case.

If VTGRF_RESIZE is passed then either the passed block or the allocated block will be resized to accommodate the text.

Library: Objects/vTextC.def


TextReferenceDBItem			struct
	TRDBI_file		hptr
	TRDBI_item		word
	TRDBI_group		word
TextReferenceDBItem			ends

This structure corresponds to a TextReferenceType of TRT_DB_ITEM. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRDBI__file stores the VM file associated with this DB item.

TRDBI_item stores the DB item itself.

TRDBI_group stores the DB group the item belongs to.

Both TRDBI_file and TRDBI_group must be filled in if you want a VM block to be allocated.

If the TRDBI_group field is set to DB_UNGROUPED then the item will be allocated ungrouped. TRDBI_group will hold the group in which the item was allocated on return.

If VTGRF_RESIZE is passed then either the passed block or the allocated block will be resized to accommodate the text.

Library: Objects/vTextC.def


TextReferenceHugeArray			struct
	TRHA_file			hptr
	TRHA_array			word
TextReferenceHugeArray			ends

This structure corresponds to a TextReferenceType of TRT_HUGE_ARRAY. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRHA_file stores the VM file associated with this huge array.

TRHA_array stores the Huge Array.

The TRHA_file field must be set if you want a huge-array to be allocated.

If VTGRF_RESIZE is passed then either the passed block or the allocated block will be resized to accommodate the text.

Library: Objects/vTextC.def


TextReferencePointer			struct
	TRP_pointer			fptr.char
TextReferencePointer			ends

This structure corresponds to a TextReferenceType of TRT_POINTER. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRP_pointer stores the pointer to the text. This field must be filled in.

VTGRF_RESIZE has no meaning with this sort of reference. VTGRF_ALLOCATE and VTGRF_ALLOCATE_ALWAYS are not valid flags to pass with this type of text reference.

This reference is the safest way to copy text out of a text object. Since the caller allocates the block it can also handle errors in the allocation.

Library: Objects/vTextC.def


TextReferenceSegmentChunk				struct
	TRSC_chunk				word
	TRSC_segment			word
TextReferenceSegmentChunk				ends

This structure corresponds to a TextReferenceType of TRT_SEGMENT_CHUNK. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRSC_segment stores the segment address of the text chunk. TRSC_chunk stores the chunk offset to the text.

It is assumed that the LMem heap will be able to accommodate this allocation. The caller is responsible for ensuring that this is the case.

If VTGRF_RESIZE is passed then either the passed block or the allocated block will be resized to accommodate the text.

Library: Objects/vTextC.def


TextReferenceType		etype word, 0, 2
	TRT_POINTER				enum	TextReferenceType
	TRT_SEGMENT_CHUNK		enum	TextReferenceType
	TRT_OPTR				enum	TextReferenceType
	TRT_BLOCK				enum	TextReferenceType
	TRT_VM_BLOCK			enum	TextReferenceType
	TRT_DB_ITEM				enum	TextReferenceType
	TRT_HUGE_ARRAY			enum	TextReferenceType

Library: Objects/vTextC.def


TextReferenceUnion			union
	TRU_pointer			TextReferencePointer
	TRU_segChunk		TextReferenceSegmentChunk
	TRU_blockChunk		TextReferenceBlockChunk
	TRU_block			TextReferenceBlock
	TRU_vmBlock			TextReferenceVMBlock
	TRU_dbItem			TextReferenceDBItem
	TRU_hugeArray		TextReferenceHugeArray
TextReferenceUnion			end

Library: Objects/vTextC.def


TextReferenceVMBlock			struct
	TRVMB_file			hptr
	TRVMB_block			word
TextReferenceVMBlock			ends

This structure corresponds to a TextReferenceType of TRT_VM_BLOCK. It is used with MSG_VIS_TEXT_REPLACE_TEXT and MSG_VIS_TEXT_GET_TEXT_RANGE to reference text used by those messages.

TRVMB_file stores the VM file associated with this VM block. This entry must be filled in if you want a VM block to be allocated.

TRVMB_block stores the VM block itself.

If VTGRF_RESIZE is passed then either the passed block or the allocated block will be resized to accommodate the text.

Library: Objects/vTextC.def


TextRulerAction		etype byte
	TRA_NULL				enum TextRulerAction
	TRA_MOVE_TAB			enum TextRulerAction
	TRA_COPY_TAB			enum TextRulerAction
	TRA_MOVE_MARGIN			enum TextRulerAction

Library: Objects/Text/tCtrlC.def


TextRulerControlAttributes		record
TextRulerControlAttributes		end

Library: Objects/Text/tCtrlC.def


TextRulerFlags		record
TextRulerFlags		end

Library: Objects/Text/tCtrlC.def


TextRunArrayElement			struct
	TRAE_position	WordAndAHalf <>		; Position for start of run
	TRAE_token		word				; Token for run
TextRunArrayElement			ends

This structure stores an element in an array of text runs.

Library: Objects/vTextC.def


TextRunArrayHeader		struct
	TRAH_meta				ChunkArrayHeader
	TRAH_elementVMBlock		word		; Element block
	TRAH_elmentArray		lptr		; ChunkHandle of element array
TextRunArrayHeader		ends

This structure stores the header of an array of runs (for non-LARGE text objects).

Library: Objects/vTextC.def


TextSearchInHugeArrayFrame				struct
	TSIHAF_str1Size				dword (?)
	TSIHAF_curOffset			dword (?)
	TSIHAF_endOffset			dword (?)
	TSIHAF_searchFlags			SearchOptions
	TSIHAF_hugeArrayVMFile		hptr
	TSIHAF_hugeArrayVMBlock		hptr
TextSearchInHugeArrayFrame				ends

TSIHAF_str1Size stores the total length of the string to search (str1).

TSIHAF_curOffset stores the offset (from the start of str1) to the first character to check.

TSIHAF_endOffset stores the offset (from the start of str1) to the last character to check. The text search will only match words that start at less than or equal to the character position in TSIHAF_endOffset. To check to the start of a string (backward searches only) pass 0:0. To check to the end of a string (forward searches only) pass TSIHAF_str1Size-1.

TSIHAF_hugeArrayVMFile and TSIHAF_hugeArrayVMBlock store the file and block handles for the huge array we will be extracting text from.

Library: Objects/vTextC.def


TextStyle		record
						:1	; Do not use this bit.
	TS_BOLD				:1
TextStyle		end

Library: graphics.def


TextStyleElementHeader			struct
	TSEH_meta				NameArrayElement
	TSEH_baseStyle			word
	TSEH_flags				StyleElementFlags
	TSEH_reserved			byte 6 dup (?)
	TSEH_privateData		TextStylePrivateData
	TSEH_charAttrToken		word
	TSEH_paraAttrToken		word
	TSEH_name				label char
TextStyleElementHeader			ends

Library: Objects/vTextC.def


TextStyleFlags		record
TextStyleFlags		end

Library: Objects/vTextC.def


TextStylePrivateData			struct
	TSPD_flags			TextStyleFlags
	TSPD_unused			byte 2 dup (0)
TextStylePrivateData			ends

Library: Objects/vTextC.def


TextTransferBlockHeader				struct
	TTBH_meta						VMChainTree
	TTBH_reservedOther				word 20 dup (0)

	TTBH_firstVM		label word
	TTBH_text						dword		;huge array ID
	TTBH_charAttrRuns				dword		;huge array ID
	TTBH_paraAttrRuns				dword		;huge array ID
	TTBH_typeRuns					dword		;huge array ID
	TTBH_graphicRuns				dword		;huge array ID

	TTBH_firstLMem		label word
	TTBH_charAttrElements			dword		;VM block handle
	TTBH_paraAttrElements			dword		;VM block handle
	TTBH_typeElements				dword		;VM block handle
	TTBH_graphicElements 			dword		;VM block handle
	TTBH_styles						dword		;VM block handle
	TTBH_names						dword		;VM block handle
	TTBH_pageSetup					dword		;VM block handle
	TTBH_lastLMem		label word

	TTBH_reservedVM					dword 10 dup (0)
TextTransferBlockHeader				ends

Library: Objects/vTextC.def


TFStyleRun		struct
	TFSR_count			word	?		; character count
	TFSR_attr			TextAttr <>		; text attributes
TFStyleRun		ends

Library: gstring.def


THCFeatures		record
THCFeatures		end

Library: Objects/Text/tCtrlC.def


THCToolboxFeatures		record
THCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


ThreadException		etype word, 0, 4
	TE_DIVIDE_BY_ZERO		enum ThreadException
	TE_OVERFLOW				enum ThreadException
	TE_BOUND				enum ThreadException
	TE_FPU_EXCEPTION		enum ThreadException
	TE_SINGLE_STEP			enum ThreadException
	TE_BREAKPOINT			enum ThreadException

Library: thread.def


ThreadGetInfoType		etype word, 0, 2
	TGIT_PRIORITY_AND_USAGE			enum ThreadGetInfoType
	TGIT_THREAD_HANDLE				enum ThreadGetInfoType
	TGIT_QUEUE_HANDLE				enum ThreadGetInfoType

Library: thread.def


ThreadModifyFlags		record
ThreadModifyFlags		end

Library: thread.def


ThreadPriority		etype byte
	PRIORITY_TIME_CRITICAL		enum ThreadPriority, 0
	PRIORITY_HIGH				enum ThreadPriority, 64		;IM
	PRIORITY_UI					enum ThreadPriority, 96		;UI
	PRIORITY_FOCUS				enum ThreadPriority, 128	;FOCUS
	PRIORITY_STANDARD			enum ThreadPriority, 160	;STD
	PRIORITY_LOW				enum ThreadPriority, 192	;BACKGROUND
	PRIORITY_LOWEST				enum ThreadPriority, 255	;Used by kernel

Library: thread.def


ThreePointArcParams				struct
	TPAP_close			ArcCloseType	; how the arc should be closed
	TPAP_point1			PointWWFixed	; Point #1 (start of arc)
	TPAP_point2			PointWWFixed	; Point #2 (a non-terminal point on the 
										; arc)
	TPAP_point3			PointWWFixed	; Point #3 (end of arc)
ThreePointArcParams				ends

Library: graphics.def


ThreePointArcToParams			struct
	TPATP_close			ArcCloseType	; how the arc should be closed
	TPATP_point2		PointWWFixed	; Point #2 (a non-terminal point on the 
										; arc)
	TPATP_point3		 PointWWFixed	; Point #3 (end of arc)
ThreePointArcToParams			ends

Library: graphics.def


ThreePointRelArcToParams			struct
	TPRATP_close 		ArcCloseType	; how the arc should be closed
	TPRATP_delta2 		PointWWFixed	; delta to Point #2 
	TPRATP_delta3 		PointWWFixed	; delta to Point #3 
ThreePointRelArcToParams			ends

Library: graphics.def


TimerType		etype word, 0, 2
	TIMER_ROUTINE_ONE_SHOT 				enum TimerType
	TIMER_EVENT_ONE_SHOT 				enum TimerType
	TIMER_EVENT_REAL_TIME				enum TimerType

Library: timer.def


TMSFlags		record
	TMSF_IS_BREAK_CHARACTER		:1	;TRUE: Last char was a break character.
	TMSF_IS_OPTIONAL_HYPHEN		:1	;TRUE: Break is an optional hyphen.
	TMSF_PAD_SPACES				:1	;TRUE: AddWidth should pad spaces.
	TMSF_UPDATE_SIZE_ONLY		:1	;TRUE: AddWidth only updates size.
	TMSF_OPT_HYPHENS			1	;TRUE: deal with optional hyphens.
	TMSF_NEGATIVE_KERNING		:1	;TRUE: last char on line was negatively 
	TMSF_EXTENDS_ABOVE			:1	;TRUE: last char on line has tall accent.
	TMSF_EXTENDS_BELOW			:1	;TRUE: last char on line has large 
	TMSF_STYLE_CHANGED			:1	;TRUE: style changed, update line height.
								:7	;Yes, I want an entire word...
TMSFlags		end

Library: text.def


TocCategoryStruct			struct
	TCS_tokenChars		TokenChars <>
	TCS_files			dbptr <>		; file name array
	TCS_devices			dbptr <>
TocCategoryStruct			ends

This is the element structure for each element in the categories array.

TCS_devices stores the device name array (if and only if TCF_EXTENDED_DEVICE_DRIVERS is set).

Library: config.def


TocDeviceStruct			struct
	TDS_driver		word		; element in driver array
	TDS_info		word		; extra word of info (depends on device type).
	TDS_name		label char
TocDeviceStruct			ends

Library: config.def


TocDiskStruct		struct
	TDSS_volumeName			VolumeName
	TDSS_mediaType			MediaType
	TDSS_name				label char
TocDiskStruct		ends

Library: config.def


TOC_ext	struct
	; Entries that are passed
	TOCE_areaToFill			sword
	TOCE_hyphenCallback		dword
	;PASS:		ss:bp		= pointer to TOC_vars structure on stack.
	;			di			= Offset to the position where we would split the 
	;						word
	;			TOCI_lastWordStart =
	;						Offset in the text where the word to break starts
	;			TOCI_lastWordPos =
	;						Position (distance from left edge of the field) 
	;						where the word to break starts
	;RETURN:	TOCI_suggestedHyphen =
	;						The offset to the character to break the word at.				
	;						Zero to break at the start of the word.
	;			TOCI_suggestedHyphenPos =
	;						The position (distance from left edge of the 
	;						field) where the hyphen starts.
	;			TOCE_hyphenWidth =
	;						Width of the hyphen that was placed at the end of
	;						the line.
	;DESTROYED:	nothing
	TOCE_tabCallback		dword
	;PASS:		ds:si		= pointer to text
	;			ss:bp		= TOC_vars
	;			ss:bx		= LICL_vars
	;RETURN:	carry set if there is no tabstop within the margins.
	;			TOCE_areaToFill set correctly.
	;DESTROYED:	nothing
	TOCE_heightCallback		dword
	;PASSED:	ss:bp		= TOC_vars
	;			ax.bl		= Line height for new characters (WBFixed)
	;RETURN:	nothing
	;DESTROYED:	nothing
	TOCE_passBack			word
	TOCE_anchorChar			word
	; Entries that are passed and returned
	TOCE_flags				TOCFlags
	TOCE_lineHeight			WBFixed
	TOCE_lineBLO			WBFixed
	TOCE_lineFlags			LineFlags
	; Entries that are returned
	TOCE_otherFlags			TOCOtherFlags
	TOCE_nSpaces			sword
	TOCE_nExtraSpaces		sword
	TOCE_widthToAnchor		sword
	TOCE_nChars				sword
	TOCE_break				sword
	TOCE_hyphenWidth		WBFixed
	TOCE_fieldWidth			BFixed
	TOCE_justWidth			sword
TOC_ext	ends

This structure contains some fields which are passed to GrTextObjCalc by the application along with some fields which are returned.

TOCE_areaToFill stores the width of the area we are trying to fit the field to.

TOCE_hyphenCallback stores the address of the callback routine to perform automatic hyphenation. (The callback’s parameters are listed in the structure display.)

TOCE_tabCallback stores the address of the callback routine to call when a TAB character is encountered. (The callback’s parameters are listed in the structure display.)

TOCE_heightCallback stores the address of the callback routine to call when the line height changes. (The callback’s parameters are listed in the structure display.)

TOCE_passBack stores a custom word of data to allow applications to pass data to their callbacks.

TOCE_anchorChar stores the anchor character to look for if the current field is associated with an anchored tab-stop.

TOCE_flags stores the TOCFlags that are both passed and returned.

TOCE_lineHeight should store the current value of the line height (at the time this stack frame is passed in). If a line would grow taller as a result of adding the new field, then this value is returned to reflect the new height.

TOCE_lineBLO stores the current value of the lines baseline-offset (at the time this stack frame is passed in). A line height is determined by its ascent and descent. To compute these values we need the baseline.

TOCE_lineFlags stores the LineFlags for the current line based on the previous calculations and the current calculations.

TOCE_otherFlags stores some optimization flags which decide whether an optimized redraw is possible after a text change.

TOCE_nSpaces stores the number of spaces in the line which can be padded for full justification.

TOCE_nExtraSpaces stores the number of spaces after the word-break. These spaces are on the line but shouldn’t be considered for full justification.

TOCE_widthToAnchor stores the amount of the field which falls before the anchor character.

TOCE_nChars stores the number of characters in the field which fit in the area.

TOCE_break stores the position of the break in the text.

TOCE_hyphenWidth stores the width of the generated hyphen at the end of the line.

TOCE_fieldWidth stores the width of the field up to the word-break.

TOCE_justWidth stores the amount of the field which should be considered for justification. This value doesn’t include the spaces at the end of the line.

Library: text.def


TocFileStruct		struct
	TFS_sourceDisk		word			; Disk token
	TFS_release			ReleaseNumber <>
	TFS_name			label char
TocFileStruct		ends

Library: config.def


TOCFlags		record
	TOCF_NO_WORD_WRAP			:1	; PASS: Set - word-wrap should be done
	TOCF_AUTO_HYPHENATE			:1	; PASS: Set - attempt auto hyphenation

	TOCF_FOUND_ANCHOR			:1	; RET: Set - an anchor character was found
	TOCF_IS_HARD_HYPHEN			:1	; RET: Set - break is a hard or opt hyphen
	TOCF_FOUND_BREAK			:1	; RET: Set - an auto-hyphen position was 
									; found
	TOCF_LINE_TERMINATED		:1	; RET: Set - last field on line
	TOCF_ONE_TAB_TOO_LARGE		:1	; RET: Set - tab couldn't be handled
	TOCF_OPT_HYPHEN_TOO_WIDE	:1	; RET: Set - optional hyphen too wide to 
									; fit
TOCFlags		end

Library: text.def


TOC_int	struct
	TOCI_style					TextMetricStyles
	TOCI_currentHgt				WBFixed		; Height of the field
	TOCI_currentBlo				WBFixed		; Baseline of the field
	TOCI_lastWordStart			word		; Position in text of last word start.
	TOCI_lastWordPos			WBFixed		; Position of last word start.
	TOCI_lastWordEndPos			word		; Position of last word end.
	TOCI_lastHyphen				word		; Position of last usable hyphen.
	TOCI_lastHyphenPos			WBFixed		; Position of last soft/hard hyphen.
	TOCI_tallCharHeightPos 		word		; Position of tall character with an
											; important height value.
	TOCI_tallCharHeight			WBFixed		; Height of tall char.
	TOCI_tallCharBaselinePos	word		; Position of tall character with an
											; important baseline value.
	TOCI_tallCharBaseline		WBFixed		; Baseline of tall char.
	TOCI_suggestedHyphen 		word		; Position of suggested hyphen in text
	TOCI_suggestedHyphenPos 	WBFixed		; Position of suggested hyphen on line
	align						word
TOC_int	ends

This structure stores fields which are internal to GrTextObjCalc. All fields are initialized and used inside GrTextObjCalc.

Library: text.def


TocMap	struct
	TM_disks			dbptr
	TM_categories		dbptr
TocMap	ends

This structure is the map item of the TOC file.

Library: config.def


TOCOtherFlags		record
	TOCOF_IS_FIRST_FIELD	:1	; PASS: Set - This is the first field on the 
								; line
	TOCOF_PREV_CHAR_KERNED	:1	; HACK added by jim 4/27/92 so kernel will 
								; make
	TOCOF_LAST_BREAK_KERNED	:1	; HACK added by jim 4/27/92 so kernel will 
								; make
TOCOtherFlags		end

Library: text.def


TocUpdateCategoryFlags record
	; Files being enumerated are assumed to be extended device drivers.

	; The TUCP_fileArrayElementSize field will be
	; used when creating the files array. Otherwise, each element
	; of the files array will be of size TocFileStruct. NOTE: If
	; this flag is used, the data structure used for each file
	; element MUST contain TocFileStruct as its first element.

	; TUCP_addCallback contains a fptr to a callback
	; routine that will be called when a file is added to the
	; files array.

	; Don't actually scan the directory, because it doesn't exist.
	; Just create the category, and leave it empty.

TocUpdateCategoryFlags end

Library: config.def


TocUpdateCategoryParams struct
	TUCP_flags						TocUpdateCategoryFlags
	TUCP_tokenChars					TokenChars
	TUCP_fileArrayElementSize		byte
	TUCP_addCallback				fptr.far
	;		PASS:		ds:si - filename to add
	;					di - VM handle of SortedNameArray
	;							(pass to TocSortedNameArrayAdd)
	;		RETURN:		carry CLEAR if new element added,
	;					ax - element number
	;					carry SET if add aborted
	;		CAN DESTROY: bx,cx,dx
	align   word
TocUpdateCategoryParams ends



TOC_vars		struct
	TOCV_int		TOC_int
	TOCV_ext		TOC_ext
	align			word
TOC_vars		ends

This structure is passed to GrTextObjCalc and consists of external parameters (TOC_ext) and internal variables (TOC_int).

Library: text.def


ToggleState		record
ToggleState		end



TokenDBItem		struct
	TDBI_group		word
	TDBI_item		word
TokenDBItem		ends

This structure defines the identifier for a token database item.

Library: token.def


TokenEntry		struct
	TE_type				TokenIndexType
	TE_token			GeodeToken <>
	TE_monikerList		TokenDBItem <>
	TE_flags			TokenFlags
	TE_release			ReleaseNumber <>
	TE_protocol			ProtocolNumber <>
TokenEntry		ends

This structure stores a token entry, which is used in the index (map item) of the token database.

TE_type specifies the type of index entry that this token entry corresponds to.

TE_token specifies the GeodeToken for this file.

TE_monikerList stores the list of monikers for this token. This entry points to a chunk containing the item numbers of the chunks of the token.

TE_flags stores the TokenFlags of the token, which contain the token’s relocation status.

TE_release stores the ReleaseNumber of the token database.

TE_protocol stores the ProtocolNumber of the token database.

Library: token.def


TokenError				etype	word, 1

Library: token.def


TokenFlags		record
	TF_UNUSED				:15
TokenFlags		end

Library: token.def


TokenMonikerInfo		struct
	TMI_moniker		TokenDBItem <>
	TMI_fileFlag	word			; 0 if token is in shared
									; token DB file
									; non-0 if it's in local file
TokenMonikerInfo		ends

The TokenMonikerInfo structure is used by applications which call TokenLookupMoniker, store the information returned, and later use it to call TokenLockTokenMoniker.

Library: token.def


TokenRangeFlags record
TokenRangeFlags end

Library: token.def


ToolboxInfo		struct
	TI_object		optr
	TI_name			optr
ToolboxInfo		ends

TI_object stores the optr of the GenInteraction under which tools may be placed (This optr is unrelocated! Use the UN_OPTR macro in assembly).

TI_name stores the null-terminated string name for the above tool location (This optr is also unrelocated. Use UN_OPTR macro in assembly).

Library: Objects/gToolCC.def


ToolGroupHighlightType				etype byte
	TGHT_INACTIVE_HIGHLIGHT		enum ToolGroupHighlightType
	TGHT_ACTIVE_HIGHLIGHT		enum ToolGroupHighlightType
	TGHT_NO_HIGHLIGHT			enum ToolGroupHighlightType

Library: Objects/gToolGC.def


ToolGroupInfo		struct
	TGI_object			optr
ToolGroupInfo		ends

TGI_object stores the GenToolGroup that this tool control will operate on. (This optr is unrelocated! Use the UN_OPTR macro in assembly).

Library: Objects/gToolCC.def


TrackScrollingParams			struct
	TSP_action				ScrollAction
	TSP_flags				ScrollFlags		;scroll flags
	TSP_caller				optr 			;object to return args to
	; Only one set of these are sent via a MSG_META_CONTENT_TRACK_SCROLLING. The
	; relative values (xChange, yChange) are sent on the relative scrolls --
	; absolute values (newOriginX, newOriginY) are sent on the absolute scrolls.
	; To play it safe, your handler should call GenSetupTrackingArgs, which will
	; fill in all of these.
	TSP_change				PointDWord		;proposed change
	TSP_newOrigin			PointDWord		;proposed new origin
	; These arguments are NOT sent via MSG_META_CONTENT_TRACK_SCROLLING. If you 
	; want to have these (and you probably will), your handler should call 
	; GenSetupTrackingArgs, which will fill in all of these.
	TSP_oldOrigin			PointDWord		;old origin
	TSP_viewWidth			sword			;view width
	TSP_viewHeight			sword			;view height
TrackScrollingParams			ends

TSP_action stores the action taking place. Drags don’t require the return message; in fact, return methods will be ignored for drags.

Library: Objects/gViewC.def


TransferFileHeader			struct
	TFH_normalItem		word	; VM block handle of normal transfer item
TransferFileHeader			ends

This structure defines the map block of the transfer VM file, this is saved out in the UI’s transfer VM file when the system is shutdown. The VM block handles must be valid handles for this VM transfer file.

Library: Objects/clipbrd.def


TransFlags		record
TransFlags		end

Library: tmatrix.def


TransMatrix			struct
	TM_e11		WWFixed <0,1>
	TM_e12		WWFixed <0,0>
	TM_e21		WWFixed <0,0>
	TM_e22		WWFixed <0,1>
	TM_e31		DWFixed <0,0>
	TM_e32		DWFixed <0,0>
TransMatrix			ends

This structure stores the transformation matrix used within the GEOS graphics system. This matrix has six variable elements. (The last column of the 3x3 transformation matrix is the identity column [0 0 1].)

This TransMatrix is initially set to the identity matrix.

TM_e11 stores the value (32 bit WWFixed) at row 1, column 1.

TM_e12 stores the value (32 bit WWFixed) at row 1, column 2.

TM_e21 stores the value (32 bit WWFixed) at row 2, column 1.

TM_e22 stores the value (32 bit WWFixed) at row 2, column 2.

TM_e31 stores the value (48 bit DWFixed) at row 3, column 1.

TM_e32 stores the value (48 bit DWFixed) at row 3, column 2.

Library: graphics.def


TravelingObjectReference			struct
	TIR_travelingObject			optr
	TIR_parent					lptr
	TIR_compChildFlags			CompChildFlags
TravelingObjectReference			ends

TIR_travelingObject stores the optr of the object which should be kept moving to the top GenDisplay. This optr should be stored in unrelocated for. (e.g. in assembly):

TIR_parent stores the optr of the object within the GenDisplay under which the traveling object should be added.

TIR_compChildFlags stores the CompChildFlags to use when adding the traveling object below the parent.

Library: Objects/gDispC.def


TravelOption		etype word, 0
	TO_NULL					enum TravelOption
	TO_SELF					enum TravelOption
	TO_OBJ_BLOCK_OUTPUT		enum TravelOption
	TO_PROCESS				enum TravelOption

No object to deliver message to, the event should be destroyed.

No additional UI behavior requested – allow MetaClass handler to dispatch event if possible, else destroy it.

Sends event to Object Block output, if any, otherwise destroys the event.

Sends event to the process owning the UI block.

Library: Objects/metaC.def


TRCCFeatures		record
TRCCFeatures		end

Library: Objects/Text/tCtrlC.def


TRCCToolboxFeatures			record
TRCCToolboxFeatures			end

Library: Objects/Text/tCtrlC.def


TSCFeatures		record
	TSCF_BOLD				:1
TSCFeatures		end

Library: Objects/Text/tCtrlC.def


TSCToolboxFeatures		record
TSCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


TVTNCPIData			struct
	TVTNCPID_handle		word
	TVTNCPID_id			word
TVTNCPIData			ends

Library: vTextC.def


UChar	etype byte
	UC_NULL				enum UChar, 0x0		;NULL
	UC_QUICK_COPY		enum UChar, 0x1		;unnecessary -- should remove!
	UC_BUTTON_EVENT		enum UChar, 0x2		;send on a button event

Library: uiInputC.def


UIButtonFlags		record
UIButtonFlags		end

Set if working in no-keyboard mode (i.e. pen system). Can be used by UI and applications to provide extensions to easy simplify usage. This is exclusive of UIBF_KEYBOARD_ONLY below.

Determines which FOCUS model to use:
If true: “explicit focus” - must press mouse button over window to give window keyboard focus.
If false: “pointer focus” or “real estate model” - window underneath mouse pointer is automatically given keyboard focus, after a delay in some UIs.

Set if the SELECT function always raises the window underneath the pointer to the front, whether in the visible region of the window, or inside a view that is inside the window. If false, the SELECT function within a view will not bring that window to the front.

Set if SELECT and FEATURES buttons are swapped so that SELECT opens a menu, while FEATURES executes the default menu item.

Set if working in keyboard only mode. Can be used by UI and applications to provide extensions to easy simplify keyboard usage. This is exclusive of UIBF_NO_KEYBOARD above.

Applies only in “explicit focus” model - otherwise known as “click to type.” Set if mouse press event which brings window to front should also be sent onto gadget.

Set if specific UI should run in compatibility mode.

Set if the text cursor should blink.

Library: Objects/uiInputC.def


UIExpressOptions		record
	UIEO_RETURN_TO_DEFAULT_LAUNCHER :1	; Set to have a "Return to <default
										; launcher>" button in the Express Menu
	UIEO_GEOS_TASKS_LIST		:1		; Set for list of currently running GEOS 
										; applications
	UIEO_DESK_ACCESSORY_LIST	:1		; Set for list of desk accessories 
										; (applications in World/Desk Accessories
										; directory)
	UIEO_MAIN_APPS_LIST			:1		; Set for list of applications in World 
										; directory
	UIEO_OTHER_APPS_LIST		:1		; Set for hierarchial list of applications 
										; in subdirectories below World directory.
	UIEO_CONTROL_PANEL			:1		; Set for control panel area.
	UIEO_DOS_TASKS_LIST			:1		; Set for list of available DOS tasks.
	UIEO_UTILITIES_PANEL		:1		; Set for utilities panel area.
	UIEO_EXIT_TO_DOS			:1		; Set for Exit to DOS trigger.
	UIEO_POSITION				UIExpressPositions:3
										; Position of Express menu.
UIExpressOptions		end

Library: ui.def


UIExpressPositions		etype word
	UIEP_NONE				enum UIExpressPositions
	UIEP_TOP_PRIMARY		enum UIExpressPositions
	UIEP_LOWER_LEFT			enum UIExpressPositions

Library: ui.def

#### UIFunctionsActive
	UIFunctionsActive		record
	UIFA_SELECT		:1	; Basic mouse function
	UIFA_MOVE_COPY	:1	; Direct action (move/copy, "quick transfer" if 
						; between applications)
	UIFA_FEATURES	:1	; Popup menu, special UI capabilities.
	UIFA_CONSTRAIN	:1	; Set if modifier(s) designated as "constrain" 
						; are pressed. This flag will change with the 
						; state of the modifier. Note that it may 
						; generally NOT be used when the target object 
						; can infer a meaning to "Extend" or "Toggle" 
						; selection. (i.e. should only be used w/SELECT 
						; function on things like object control points).
	; User "preferences" Meaning varies with active function. NOTE:
	; 1) requests followed by (D) are updated every event holding this
	; info (Dynamic)
	;					A			B		C
	; SELECT:			Toggle		Extend
	; MOVE_COPY:		Move(D)		Copy(D)
	; FEATURES:			Popup		Pan
	;					menu		View
	UIFA_IN			:1	; Set if point (cx, dx) is inside the visual 
						; bounds of the object
UIFunctionsActive		end

Library: Objects/uiInput.def


UIHelpOptions		record
UIHelpOptions		end

Set to not add help buttons to various dialog boxes. Usually used on small screen devices where screen space is at a premium, or on a device that has a dedicated help button already. Default interpretation: false (i.e., help buttons appear).

Library: ui.def


UIInterfaceLevel		etype word
	UIIL_INTRODUCTORY		enum UIInterfaceLevel
	UIIL_BEGINNING			enum UIInterfaceLevel
	UIIL_INTERMEDIATE		enum UIInterfaceLevel
	UIIL_ADVANCED			enum UIInterfaceLevel
	UIIL_GURU				enum UIInterfaceLevel

This level is designed for the first-time user, or those who just use computers infrequently. Complex models & all but the most basic features are shunned in favor of metaphors & functionality that is easy to grasp. Ease of learning and the absence of anything that isn’t immediately obvious are the most important considerations of interfaces presented at this level, with a focus towards providing a pleasant experience. Ease of quick results is very important, however prefabricated & limited in scope (remember PrintShop?).

Default behavior:
In this mode, the UI protects the user from the concepts of “running” applications and “open” documents by letting them just switch to whatever application and document they wish to use. The UI takes care of managing the running status of applications and open status of documents transparently, in the background. Applications generally come up maximized, and have no window controls whatsoever (the exception here is desk accessories, which float on top and may be moved and dismissed by the user). Only one document at a time may be worked on, and it generally appears in a display which is permanently maximized. Applications where the user typically uses only one data file (Address book) won’t have a “File” menu at all. Applications designed for creation of new files will have only “New…” & “Switch to…” options, & will automatically fetch and place files in a single directory. Keyboard shortcuts and mnemonic navigation are turned off (excepting keyboard only systems) Application menu structures in general are kept to a minimum, and advanced features are kept completely hidden, not even accessible through the “Options” menu.

This level is designed for those who feel comfortable with the basic operation of their computer, how it works, what modules exist within it, etc. and wish to gain access to more of its capability, or need to solve a particular problem or need for something other than a canned solution. This level adds in a number; of useful features to UI-provided menus, and results in applications offering “options” to turn on all but the most advanced or short-cut oriented capabilities within them. Ease of Learning remains the most important aspect of the interface, and probability of successful usage the most important goal. We’re trying to get the user to be able to actually accomplish things here, all on their own, with a low risk of failure. Time to task completion is not an issue so long as the user is able to figure out what the model is, how to use it, and is able to actually complete whatever it is they’re trying to do. This may be accomplished via more verbose, or scripted dialogs, as opposed to the “set everything at once” type of dialogs seen at higher levels. The computer should detect abnormal or dangerous situations & help the user to avoid costly mistakes. Dangerous actions should be undoable. Options that trade performance against safety or recoverability will be tilted towards recoverability.

Default behavior:
In this mode, the document control adds “New..”, “Switch to…”, “Quick Backup”, and variety of other capabilities. Applications offer a way to access most of their features. The application launch & document models remain “transparent”. applications continue to run full-screen. Files created by the user remain in one directory.

This level is designed for people familiar with the capabilities of the software, & who are now willing to learn a few things that might not otherwise be obvious in order to speed up their ability to get things done.

Default behavior:
Here we introduce the user to the concepts of “running applications” and “open documents”, and add in easy to understand “power” features that makes it easier to get things done. The user must open and close applications and documents to manage accessibility and performance. Application windows start out overlapping (except on machines with small screens).Adds window min/max/restore capability, pinned menus. Systems with both mice and keyboards get keyboard accelerators and mnemonic navigation. The system allows only one instance of any given application to be running, but allows multiple documents to be open within that application.

This level is designed for the people who use their computer day in, day out, and know GEOS like the back of their hand. All the bells and whistles available are offered here, though still organized intelligently with the degree of accessibility set by the user – a technical writer may live in his Word Processor, for instance, but venture into other applications only infrequently - they shouldn’t all look like the cockpits of 727’s. A reduction in the number of steps necessary to complete common tasks, & the speed in which this can be done becomes very important. The key phrases here are “powerful”, “well designed”, and “intelligent”.

Default behavior:
The UI offers the possibility of multiple instances of a given application, dialog-clarified. The notion of hierarchical storage of document files is introduced.

Same as “UIIL_ADVANCED” level, but minus protective warning dialogs that might be annoying to someone who never makes mistakes. Options that trade performance against safety or recoverability are tilted towards performance.

Library: ui.def


UIInterfaceOptions		record
UIInterfaceOptions		end

Set if the options menu should exist.

True to not allow GIV_POPOUT GenInteractions to pop in and out. False to allow pop in and pop out behavior.

Library: ui.def


UILaunchModel		etype word
	UILM_TRANSPARENT				enum UILaunchModel
	UILM_GURU						enum UILaunchModel

“Transparent” application launch mode is one in which the user doesn’t have to understand the concepts of a “running app”, as the system takes care of launching and shutting down applications in the background to manage memory effectively.

-> Express menu is really just a “startup” or “switch to” menu

-> applications are shut down in background, and reloaded when switched to

-> Single instance limit on any given application.

-> Application windows are full screen (except for those marked as Desk Accessories, which float on top, and would not be managed transparently, i.e. would have to stay in memory until exited).

-> Minimize/Maximize/Restore/Close features of full-screen main Primary windows removed-

-> “Exit” item is eliminated from File menu.

-> Default mode for UIIL_INTRODUCTORY.

The following levels are all user-controlled, meaning that the user has to understand the concept of a running application, & must manage how many applications are running themselves.

-> Express menu allows switching between currently running applications.

-> By default, application windows are not maximized on launch, and are movable and resizable. This could be “fine tuned” by using window options above, however.

This mode allows only a single instance of any one given application to be running at a time.

-> Single instance limit on given application.

-> If application or document is double-clicked on, and an instance of the application is already running, that instance would be brought to the top (and any document opened/switched to within it, depending on the doc model).

-> Default mode for UIIL_INTERMEDIATE.

-> If application or document double-clicked on, and an instance of the application is already running, a dialog would come up asking if one of the already running applications should be used, or whether a new instance should be created.

-> Default mode for UIIL_ADVANCED.

-> Like GEOS V1.2 – the system does nothing to protect the user, so double-clicking on an application just launches another instance.

-> Default mode for UIIL_GURU.

Library: ui.def


UILaunchOptions record
	UILO_DESK_ACCESSORIES	:1 	;TRUE if the desk accessory mode is
				 				; supported (default = TRUE)
	UILO_CLOSABLE_APPS		:1 	;Set if all apps should be closable.
								; This allows the user to close apps
								; even when in transparent mode.
UILaunchOptions end

Library: ui.def


UIWindowOptions		record
	UIWO_WINDOW_MENU									:1
UIWindowOptions		end

If set, applications by default would come up maximized. (applications marked as desk accessories would override this behavior). Default interpretation under Motif: True if running on a small screen (less than 512 pixels in x, or 320 pixels in y), or if on keyboard-only machine, or if InterfaceLevel < UIIL_INTERMEDIATE, or if LaunchMode = UILM_TRANSPARENT.

This is a screen space saving measure-if set, the header and menu areas of maximized windows is combined, such that only the window gadgetry, window menu and menus are left, i.e. the title string is eliminated. Default interpretation under Motif: True if running on a small screen (less than 512 pixels in x, or 320 pixels in y).

If false, window gadgetry and menu items for minimizing, maximizing, and restoring would disappear from primary windows. Default interpretation under Motif: Always false if LaunchMode = UILM_TRANSPARENT, else true if InterfaceLevel >= UIIL_INTERMEDIATE.

If true, a window menu for keyboard control of min/max/restore/move/resize features will be provided. If false, only a “close” icon will appear in this space. Default interpretation: True if keyboardOnly = true.

True to allow “pinnable” menus. Default interpretation under Motif: True if InterfaceLevel >= UIIL_INTERMEDIATE.

True to allow keyboard accelerators, keyboard navigation Default interpretation under Motif: True if keyboard-only machine or InterfaceLevel >= UIIL_INTERMEDIATE.

True to allow menu bar to pop-out into a dialog box. This should only be allowed in very specific situations, because the specific UI will not always provide gadgetry to restore the menu bar if the dialog is closed. Default interpretation under Motif: True if running on a small screen (less than 512 pixels in x, or 320 pixels in y).

Library: ui.def


UIWindowOptionsInteger			record
	UIWOI_MASK				UIWindowOptions:8
	UIWOI_OPTIONS			UIWindowOptions:8
UIWindowOptionsInteger			end

UIWOI_MASK Mask of which UIWindowOptions in UIWOI_value have meaning. (If zero, user has made no preference for that specific option, and the default behavior should be used).

Actual UIWindowOptions to use (if mask bit above is set for any given bit).

Library: ui.def


UndoActionDataFlags			struct
	UADF_flags			dword
	UADF_extraFlags		word
UndoActionDataFlags			ends

Library: Objects/gProcC.def


UndoActionDataOptr			struct
	UADO_optr			optr
UndoActionDataOptr			ends

Library: Objects/gProcC.def


UndoActionDataPtr		struct
	UADP_ptr		fptr
	UADP_size		word
UndoActionDataPtr		ends

Library: Objects/gProcC.def


UndoActionDataType		etype word, 0, 2
	UADT_FLAGS			enum UndoActionDataType
	UADT_PTR			enum UndoActionDataType
	UADT_VM_CHAIN			enum UndoActionDataType
	UADT_OPTR			enum UndoActionDataType

The passed data is of type UndoActionFlags.

The passed data is of type UndoActionDataPtr.

The passed data is of type UndoActionVMChain.

This is not a valid type to pass to MSG_GEN_PROCESS_ADD_ACTION; it is used by the undo code when playing back an action of type UADT_PTR.

If MSG_GEN_PROCESS_UNDO_ADD_ACTION is called with an action of type UADT_PTR, if the action is played back, the data will be returned to the object with type UADT_OPTR (via MSG_META_UNDO). Calling MSG_GEN_PROCESS_ADD_ACTION can cause previously-sent actions to move, so the optr should be re-dereferenced after sending this message.

Library: Objects/gProcC.def


UndoActionDataUnion			union
	UADU_flags			UndoActionDataFlags
	UADU_ptr			UndoActionDataPtr
	UADU_vmChain		UndoActionDataVMChain
	UADU_optr			UndoActionDataOptr
UndoActionDataUnion			ends

Library: Object/gProcC.def


UndoActionDataVMChain			struct
	UADVMC_vmChain			dword
	UADVMC_file				hptr
UndoActionDataVMChain			ends

This structure is filled in by the undo code for MSG_META_UNDO. VM Chains passed to MSG_GEN_PROCESS_UNDO_ADD_ACTION should lie in the undo file (which can be obtained by sending MSG_GEN_PROCESS_UNDO_GET_FILE).

Library: Objects/gProcC.def


UndoActionStruct		struct
	UAS_dataType			UndoActionDataType
	UAS_data				UndoActionDataUnion
	UAS_appType				dword
UndoActionStruct		ends

UAS_dataType stores the type of data passed in UndoActionDataUnion.

UAS_data stores the data to be stored with the action.

UAS_appType stores two extra words of data to be sent with MSG_META_CLIPBOARD_UNDO that indicate the type of action we are undoing.

Library: Objects/gProcC.def


UndoDescription		etype byte
	UD_UNDO				enum UndoDescription
	UD_REDO				enum UndoDescription
	UD_NOT_UNDOABLE		enum UndoDescription

Passed in NotifyUndoStateChange if there is an active undo chain.

Passed in NotifyUndoStateChange if there is an active redo chain.

Passed in NotifyUndoStateChange if the last action was not undoable. Must pass 0:0 as title.

Library: Objects/gEditCC.def


UpdateUIDataBlk		struct
	UUIDB_formatDataVMFileHan	word
	UUIDB_formatDataVMBlkHan	word
	UUIDB_curFormatToken		FormatIdType	;Current format token
UpdateUIDataBlk		ends

Library: math.def


UpdateWindowFlags		record
UpdateWindowFlags		end

Set if MSG_META_UPDATE_WINDOW is being sent because application is attaching.

Set if MSG_META_UPDATE_WINDOW is being sent because application is detaching.

Set if application is restoring from state (will only be set if UWF_ATTACHING is also set, i.e. application is attaching).

Set if MSG_META_UPDATE_WINDOW is sent to this object because this object was on the GenApplication’s GAGCNLT_WINDOWS GCN list, and not from a subsequent “build-on-demand” request. (This will only be set if UWF_ATTACHING is also set, i.e. application is attaching)

Library: Objects/metaC.def


UserDoDialogStruct			struct
	UDDS_callingThread				hptr
	UDDS_semaphore					hptr
	UUDS_response					word
	UUDS_complete					word
	UUDS_boxRunByCurrentThread		word
	UUDS_dialog						optr
	UUDS_queue						hptr
UserDoDialogStruct			ends


UDDS_callingThread stores the handle of the thread that is waiting for this dialog to come down. If 0, the thread has no event queue, and is instead blocking on UDDS_semaphore.

UDDS_semaphore stores the handle of a the semaphore that a non-event-driven thread is blocking on. See note above.

UDDS_response stores the response value returned by the dialog to UserDoDialog. It is most often a value from the enumerated type InteractionCommand.

UDDS_complete is set non-zero upon dialog completion. UDDS_reponse should be set before UDDS_complete is set non-zero.

UDDS_boxRunByCurrentThread is set non-zero if the box is run by the current thread.

UDDS_dialog stores the optr of the dialog that is currently up. This optr is needed internally by UserDoDialog for loop dispatching mode, to help ascertain which events should be dispatched and which saved off.

UDDS_queue stores the backed up queue of events arriving for the thread, but not dispatched due to the determination that they weren’t relevant to the dialog’s operation. These are reinserted into the queue upon completion of the dialog.

Library: Objects/gInterC.def


UtilAsciiToHexError			etype word
	UATH_CONVERT_OVERFLOW				enum UtilAsciiToHexError

Library: system.def


UtilHexToAsciiFlags			record
UtilHexToAsciiFlags			end

Library: system.def

Structures S-S <– Table of Contents    –> Structures V-Z