n	Tab

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

n	TabAttributes

TabAttributes		record

		:3
TA_LEADER		TabLeader:3
TA_TYPE		TabType:2

TabAttributes		end



Library:	text.def

n	TabLeader

TabLeader		etype byte

TL_NONE		enum TabLeader

TL_DOT		enum TabLeader

TL_LINE		enum TabLeader

TL_BULLET		enum TabLeader



Library:	text.def

n	TabReference

TabReference		record

TR_TYPE			TabReferenceType:1				; Type of reference.

TR_REF_NUMBER			:7				; Reference number

TabReference		end



Library:	text.def

n	TabReferenceType

TabReferenceType		etype byte

TRT_RULER		enum TabReferenceType					; Reference is into the ruler.

TRT_OTHER		enum TabReferenceType



Library:	text.def

n	TabType

TabType	etype byte

TT_LEFT			enum TabType

TT_CENTER			enum TabType

TT_RIGHT			enum TabType

TT_ANCHORED			enum TabType



Library:	text.def

n	TargetLevel

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



; EXPORTED FOR INDIVIDUAL APPLICATIONS

TL_APPLICATION_OBJECTS	enum TargetLevel, 3000

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

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

TL_GENERIC_OBJECTS

TL_GEN_SYSTEM
The system object itself.

TL_GEN_FIELD
Field within system.

TL_GEN_APPLICATION
Application within field.

TL_GEN_PRIMARY
Primary within application.

TL_GEN_DISPLAY_CTRL
Display control within primary.

TL_GEN_DISPLAY
Display within display control.

TL_GEN_VIEW
View within display.

Library:	Objects/genC.def

n	TargetReference

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

n	TCCFeatures

TCCFeatures		record

TCCF_CHARACTER			:1
TCCF_WORD			:1
TCCF_LINE			:1
TCCF_PARAGRAPH			:1
TCCF_RECALC			:1

TCCFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TCCToolboxFeatures

TCCToolboxFeatures		record

TCCToolboxFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TCFeatures

TCFeatures		record

TCF_LIST			:1
TCF_POSITION			:1
TCF_GRAY_SCREEN			:1
TCF_TYPE			:1
TCF_LEADER			:1
TCF_LINE			:1
TCF_CLEAR			:1
TCF_CLEAR_ALL			:1

TCFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TCToolboxFeatures

TCToolboxFeatures		record

TCToolboxFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TempGenControlInstance

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

n	TempGenToolControlInstance

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

n	TempImportExportData

TempImportExportData			struct

TIED_formatUI				optr		; OD of duplicated format UI

TIED_formatLibrary				hptr		; handle of library for above

TempImportExportData			ends



Library:	impex.def

n	TempMetaGCNData

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

n	TempMetaGCNFlags

TempMetaGCNFlags		record

TMGCNF_RELOCATED				:1		; set if relocated

				:7

TempMetaGCNFlags		end



Library:	Objects/metaC.def

n	TempPrintCtrlInstance

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

n	TestRectReturnType

TestRectReturnType		etype byte

TRRT_OUT			enum TestRectReturnType

TRRT_PARTIAL			enum TestRectReturnType

TRRT_IN			enum TestRectReturnType



Library:	graphics.def

n	TextArrayType

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

n	TextAttr

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

n	TextClipboardOption

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

n	TextColors

TextColors      struc

TC_unselectedColor      byte

TC_selectedColor        byte

TextColors      ends



Library:	genC.def

n	TextElementArrayHeader

TextElementArrayHeader			struct

TEAH_meta			ElementArrayHeader
TEAH_arrayType			TextArrayType
TEAH_unused			byte

TextElementArrayHeader			ends



Library:	Objects/vTextC.def

n	TextFocusFlags

TextFocusFlags record    ;Record passed in BP

TFF_EDITABLE_TEXT_OBJECT_HAS_FOCUS								:1

				; Set if an editable text object has the focus

TFF_OBJECT_RUN_BY_UI_THREAD								:1

				; Set if the object is run by the UI thread

								:14

TextFocusFlags end



Library:	vTextC.def

n	TextGuardianFlags

TextGuardianFlags		record

TGF_ENFORCE_DESIRED_MIN_HEIGHT												:1
TGF_ENFORCE_DESIRED_MAX_HEIGHT												:1
TGF_DISABLE_ENFORCED_DESIRED_MAX_HEIGHT_WHILE_EDITING			:1
TGF_ENFORCE_MIN_DISPLAY_SIZE												:1
TGF_SHRINK_WIDTH_TO_MIN_AFTER_EDIT												:1

TextGuardianFlags		end

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

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

TGF_DISABLE_ENFORCED_DESIRED_MAX_HEIGHT_WHILE_EDITING
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.

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

TGF_SHRINK_WIDTH_TO_MIN_AFTER_EDIT
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

n	TextLargeRunArrayHeader

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

n	TextMetricStyles

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

n	TextMode

TextMode		record

TM_DRAW_CONTROL_CHARS				:1		; Does the following mapping when drawing

						; text:

						; C_SPACE					 -> C_CNTR_DOT

						; C_NONBRKSPACE					 -> 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

TM_DRAW_BASE				:1

TM_DRAW_BOTTOM				:1

TM_DRAW_ACCENT				:1

TM_DRAW_OPTIONAL_HYPHENS				:1

TextMode		end



Library:	graphics.def

n	TextReference

TextReference		struct

TR_type		TextReferenceType
TR_ref		TextReferenceUnion

TextReference		ends



Library:	Objects/vTextC.def

n	TextReferenceBlock

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

n	TextReferenceBlockChunk

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

n	TextReferenceDBItem

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

n	TextReferenceHugeArray

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

n	TextReferencePointer

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

n	TextReferenceSegmentChunk

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

n	TextReferenceType

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

n	TextReferenceUnion

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

n	TextReferenceVMBlock

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

n	TextRulerAction

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

n	TextRulerControlAttributes

TextRulerControlAttributes				record

TRCA_ROUND				:1
TRCA_IGNORE_ORIGIN				:1
				:14

TextRulerControlAttributes				end



Library:	Objects/Text/tCtrlC.def

n	TextRulerFlags

TextRulerFlags		record

					:3
TRF_ALWAYS_MOVE_BOTH_MARGINS					:1
TRF_ROUND_COORDINATES					:1
TRF_OBJECT_SELECTED					:1
TRF_SELECTING					:1
TRF_DRAGGING					:1

TextRulerFlags		end



Library:	Objects/Text/tCtrlC.def

n	TextRunArrayElement

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

n	TextRunArrayHeader

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

n	TextSearchInHugeArrayFrame

TextSearchInHugeArrayFrame				struct

TSIHAF_str1Size				dword (?)
TSIHAF_curOffset				dword (?)
TSIHAF_endOffset				dword (?)
TSIHAF_searchFlags				SearchOptions
TSIHAF_hugeArrayVMFile				hptr
TSIHAF_hugeArrayVMBlock				hptr
even

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

n	TextStyle

TextStyle		record

			:1	; Do not use this bit.
TS_OUTLINE			:1
TS_BOLD			:1
TS_ITALIC			:1
TS_SUPERSCRIPT			:1
TS_SUBSCRIPT			:1
TS_STRIKE_THRU			:1
TS_UNDERLINE			:1

TextStyle		end



Library:	graphics.def

n	TextStyleElementHeader

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

n	TextStyleFlags

TextStyleFlags		record

TSF_APPLY_TO_SELECTION_ONLY					:1
TSF_POINT_SIZE_RELATIVE					:1
TSF_MARGINS_RELATIVE					:1
TSF_LEADING_RELATIVE					:1
					:12

TextStyleFlags		end



Library:	Objects/vTextC.def

n	TextStylePrivateData

TextStylePrivateData			struct

TSPD_flags			TextStyleFlags
TSPD_unused			byte 2 dup (0)

TextStylePrivateData			ends



Library:	Objects/vTextC.def

n	TextTransferBlockHeader

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

n	TFStyleRun

TFStyleRun		struct

TFSR_count			word	?	; character count

TFSR_attr			TextAttr <>		; text attributes

TFStyleRun		ends



Library:	gstring.def

n	THCFeatures

THCFeatures		record

THCF_FOLLOW_HYPERLINK				:1
THCF_SET_KYPERLINK				:1
THCF_SET_CONTEXT				:1
THCF_DEFINE_FILE				:1
THCF_DEFINE_CONTEXT				:1

THCFeatures		end



Library:	Objects/Text/tCtrlC.def

n	THCToolboxFeatures

THCToolboxFeatures		record

THCToolboxFeatures		end



Library:	Objects/Text/tCtrlC.def

n	ThreadException

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

n	ThreadGetInfoType

ThreadGetInfoType		etype word, 0, 2

TGIT_PRIORITY_AND_USAGE				enum ThreadGetInfoType

TGIT_THREAD_HANDLE				enum ThreadGetInfoType

TGIT_QUEUE_HANDLE				enum ThreadGetInfoType



Library:	thread.def

n	ThreadModifyFlags

ThreadModifyFlags		record

TMF_BASE_PRIO			:1
TMF_ZERO_USAGE			:1
			:6

ThreadModifyFlags		end



Library:	thread.def

n	ThreadPriority

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

n	ThreePointArcParams

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

n	ThreePointArcToParams

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

n	ThreePointRelArcToParams

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

n	TimerType

TimerType		etype word, 0, 2

TIMER_ROUTINE_ONE_SHOT 				enum TimerType

TIMER_ROUTINE_CONTINUAL 				enum TimerType

TIMER_EVENT_ONE_SHOT 				enum TimerType

TIMER_EVENT_CONTINUAL 				enum TimerType

TIMER_MS_ROUTINE_ONE_SHOT 				enum TimerType

TIMER_EVENT_REAL_TIME				enum TimerType



Library:	timer.def

n	TMSFlags

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 
						;kerned.

TMSF_EXTENDS_ABOVE				:1		;TRUE: last char on line has tall accent.

TMSF_EXTENDS_BELOW				:1		;TRUE: last char on line has large 
						;descender.

TMSF_STYLE_CHANGED				:1		;TRUE: style changed, update line height.

				:7		;Yes, I want an entire word...

TMSFlags		end



Library:	text.def

n	TocCategoryStruct

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

n	TocDeviceStruct

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

n	TocDiskStruct

TocDiskStruct		struct

TDSS_volumeName				VolumeName
TDSS_mediaType				MediaType
TDSS_name				label char

TocDiskStruct		ends



Library:	config.def

n	TOC_ext

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				WBFixed
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

n	TocFileStruct

TocFileStruct		struct

TFS_sourceDisk			word			; Disk token

TFS_release			ReleaseNumber <>
TFS_name			label char

TocFileStruct		ends



Library:	config.def

n	TOCFlags

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

n	TOC_int

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

n	TocMap

TocMap	struct

TM_disks		dbptr
TM_categories		dbptr

TocMap	ends

This structure is the map item of the TOC file.

Library:	config.def

n	TOCOtherFlags

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

				:5

TOCOtherFlags		end



Library:	text.def

n	TocUpdateCategoryFlags

TocUpdateCategoryFlags record

TUCF_EXTENDED_DEVICE_DRIVERS:1

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



TUCF_CUSTOM_FILES:1

; 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.



TUCF_ADD_CALLBACK:1

; TUCP_addCallback contains a fptr to a callback

; routine that will be called when a file is added to the

; files array.



TUCF_DIRECTORY_NOT_FOUND:1

; Don't actually scan the directory, because it doesn't exist.

; Just create the category, and leave it empty.



:12

TocUpdateCategoryFlags end



Library:	config.def

n	TocUpdateCategoryParams

TocUpdateCategoryParams struct

TUCP_flags                      TocUpdateCategoryFlags

TUCP_tokenChars                 TokenChars

TUCP_fileArrayElementSize       byte

TUCP_addCallback                fptr.far

; CALLBACK:

;       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









Library:	

n	TOC_vars

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

n	ToggleState

ToggleState		record

TS_CAPSLOCK			:1
TS_NUMLOCK			:1
TS_SCROLLLOCK			:1

ToggleState		end



Library:	

n	TokenDBItem

TokenDBItem		struct

TDBI_group		word
TDBI_item		word

TokenDBItem		ends

This structure defines the identifier for a token database item.

Library:	token.def

n	TokenEntry

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

n	TokenError

TokenError                                              etype   word, 1

BAD_PROTOCOL_IN_SHARED_TOKEN_DATABASE_FILE              enum    TokenError

ERROR_OPENING_SHARED_TOKEN_DATABASE_FILE                enum    TokenError

ERROR_OPENING_LOCAL_TOKEN_DATABASE_FILE                 enum    TokenError



Library:	token.def

n	TokenFlags

TokenFlags		record

TF_NEED_RELOCATION				:1
TF_UNUSED				:15

TokenFlags		end



Library:	token.def

n	TokenMonikerInfo

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

n	TokenRangeFlags

TokenRangeFlags record

TRF_ONLY_GSTRING				:1

TRF_ONLY_PASSED_MANUFID				:1

				:14

TokenRangeFlags end



Library:	token.def

n	ToolboxInfo

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

n	ToolGroupHighlightType

ToolGroupHighlightType			etype byte

TGHT_INACTIVE_HIGHLIGHT					enum ToolGroupHighlightType

TGHT_ACTIVE_HIGHLIGHT					enum ToolGroupHighlightType

TGHT_NO_HIGHLIGHT					enum ToolGroupHighlightType



Library:	Objects/gToolGC.def

n	ToolGroupInfo

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

n	TrackScrollingParams

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

; SA_SCROLL, SA_INC_FWD, SA_INC_BACK, SA_PAGE_FWD, SA_PAGE_BACK, SA_PAN. The

; 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

n	TransferFileHeader

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

n	TransFlags

TransFlags		record

TF_INV_VALID			:1

TF_ROTATED			:1
TF_SCALED			:1
TF_TRANSLATED			:1

TransFlags		end



Library:	tmatrix.def

n	TransMatrix

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

n	TravelingObjectReference

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

	UN_OPTR TUIToolbox3

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

n	TravelOption

TravelOption		etype word, 0

TO_NULL				enum TravelOption

TO_SELF				enum TravelOption

TO_OBJ_BLOCK_OUTPUT				enum TravelOption

TO_PROCESS				enum TravelOption

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

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

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

TO_PROCESS
Sends event to the process owning the UI block.

Library:	Objects/metaC.def

n	TRCCFeatures

TRCCFeatures		record

TRCCF_ROUND				:1
TRCCF_IGNORE_ORIGIN				:1

TRCCFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TRCCToolboxFeatures

TRCCToolboxFeatures			record

TRCCToolboxFeatures			end



Library:	Objects/Text/tCtrlC.def

n	TSCFeatures

TSCFeatures		record

TSCF_PLAIN				:1
TSCF_BOLD				:1
TSCF_ITALIC				:1
TSCF_UNDERLINE				:1
TSCF_STRIKE_THRU				:1
TSCF_SUBSCRIPT				:1
TSCF_SUPERSCRIPT				:1

TSCF_BOXED				:1

TSCF_BUTTON				:1

TSCF_INDEX				:1

TSCF_ALL_CAP				:1

TSCF_SMALL_CAP				:1

TSCFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TSCToolboxFeatures

TSCToolboxFeatures		record

TSCTF_PLAIN				:1
TSCTF_BOLD				:1
TSCTF_ITALIC				:1
TSCTF_UNDERLINE				:1
TSCTF_STRIKE_THRU				:1
TSCTF_SUBSCRIPT				:1
TSCTF_SUPERSCRIPT				:1

TSCTF_BOXED				:1

TSCTF_BUTTON				:1

TSCTF_INDEX				:1

TSCTF_ALL_CAP				:1

TSCTF_SMALL_CAP				:1

TSCToolboxFeatures		end



Library:	Objects/Text/tCtrlC.def

n	TVTNCPIData

TVTNCPIData     struct

        TVTNCPID_handle word

        TVTNCPID_id     word

TVTNCPIData     ends



Library:	vTextC.def

n	UChar

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

n	UIButtonFlags

UIButtonFlags		record

UIBF_NO_KEYBOARD					:1
UIBF_CLICK_TO_TYPE					:1
UIBF_SELECT_ALWAYS_RAISES					:1
UIBF_SELECT_DISPLAYS_MENU					:1
UIBF_KEYBOARD_ONLY					:1
UIBF_CLICK_GOES_THRU					:1
UIBF_SPECIFIC_UI_COMPATIBLE					:1
UIBF_BLINKING_CURSOR					:1

UIButtonFlags		end

UIBF_NO_KEYBOARD
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.

UIBF_CLICK_TO_TYPE
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.

UIBF_SELECT_ALWAYS_RAISES
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.

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

UIBF_KEYBOARD_ONLY
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.

UIBF_CLICK_GOES_THRU
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.

UIBF_SPECIFIC_UI_COMPATIBLE
Set if specific UI should run in compatibility mode.

UIBF_BLINKING_CURSOR
Set if the text cursor should blink.

Library:	Objects/uiInputC.def

n	UIExpressOptions

UIExpressOptions		record

				:4

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

n	UIExpressPositions

UIExpressPositions		etype word

UIEP_NONE				enum UIExpressPositions

UIEP_TOP_PRIMARY				enum UIExpressPositions

UIEP_LOWER_LEFT				enum UIExpressPositions



Library:	ui.def

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

UIFA_PREF_A			:1

UIFA_PREF_B			:1

UIFA_PREF_C			:1

; 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

n	UIHelpOptions

UIHelpOptions		record

				:15
UIHO_HIDE_HELP_BUTTONS				:1

UIHelpOptions		end

UIHO_HIDE_HELP_BUTTONS
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

n	UIInterfaceLevel

UIInterfaceLevel		etype word

UIIL_INTRODUCTORY				enum UIInterfaceLevel

UIIL_BEGINNING				enum UIInterfaceLevel

UIIL_INTERMEDIATE				enum UIInterfaceLevel

UIIL_ADVANCED				enum UIInterfaceLevel

UIIL_GURU				enum UIInterfaceLevel

UIIL_INTRODUCTORY
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.

UIIL_BEGINNING
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.

UIIL_INTERMEDIATE
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 
w/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.

UIIL_ADVANCED
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. 

UIIL_GURU	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

n	UIInterfaceOptions

UIInterfaceOptions		record

UIIO_OPTIONS_MENU								:1
UIIO_DISABLE_POPOUTS								:1

UIIO_ALLOW_INITIALLY_HIDDEN_MENU_BARS								:1
								:13

UIInterfaceOptions		end

UIIO_OPTIONS_MENU
Set if the options menu should exist.

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

Library:	ui.def

n	UILaunchModel

UILaunchModel		etype word

UILM_TRANSPARENT				enum UILaunchModel

UILM_SINGLE_INSTANCE				enum UILaunchModel

UILM_MULTIPLE_INSTANCES				enum UILaunchModel

UILM_GURU				enum UILaunchModel

UILM_TRANSPARENT
"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.

UILM_SINGLE_INSTANCE
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.

UILM_MULTIPLE_INSTANCES

	-> 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.

UILM_GURU
-> 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

n	UILaunchOptions

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.

				:14

UILaunchOptions end



Library:	ui.def

n	UIWindowOptions

UIWindowOptions		record

UIWO_MAXIMIZE_ON_STARTUP											:1
UIWO_COMBINE_HEADER_AND_MENU_IN_MAXIMIZED_WINDOWS											:1
UIWO_PRIMARY_MIN_MAX_RESTORE_CONTROLS											:1
UIWO_WINDOW_MENU											:1
UIWO_PINNABLE_MENUS											:1
UIWO_KBD_NAVIGATION											:1
UIWO_POPOUT_MENU_BAR											:1

UIWindowOptions		end

UIWO_MAXIMIZE_ON_STARTUP
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.

UIWO_COMBINE_HEADER_AND_MENU_IN_MAXIMIZED_WINDOWS
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).

UIWO_PRIMARY_MIN_MAX_RESTORE_CONTROLS
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.

UIWO_WINDOW_MENU
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.

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

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

UIWO_POPOUT_MENU_BAR
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

n	UIWindowOptionsInteger

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).

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

Library:	ui.def

n	UndoActionDataFlags

UndoActionDataFlags			struct

UADF_flags			dword
UADF_extraFlags			word

UndoActionDataFlags			ends



Library:	Objects/gProcC.def

n	UndoActionDataOptr

UndoActionDataOptr			struct

UADO_optr			optr

UndoActionDataOptr			ends



Library:	Objects/gProcC.def

n	UndoActionDataPtr

UndoActionDataPtr		struct

UADP_ptr		fptr
UADP_size		word

UndoActionDataPtr		ends



Library:	Objects/gProcC.def

n	UndoActionDataType

UndoActionDataType		etype word, 0, 2

UADT_FLAGS			enum UndoActionDataType

UADT_PTR			enum UndoActionDataType

UADT_VM_CHAIN			enum UndoActionDataType

UADT_OPTR			enum UndoActionDataType

UADT_FLAGS
The passed data is of type UndoActionFlags.

UADT_PTR
The passed data is of type UndoActionDataPtr.

UADT_VM_CHAIN
The passed data is of type UndoActionVMChain.

UADT_OPTR
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

n	UndoActionDataUnion

UndoActionDataUnion			union

UADU_flags			UndoActionDataFlags
UADU_ptr			UndoActionDataPtr
UADU_vmChain			UndoActionDataVMChain
UADU_optr			UndoActionDataOptr

UndoActionDataUnion			ends



Library:	Object/gProcC.def

n	UndoActionDataVMChain

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

n	UndoActionStruct

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

n	UndoDescription

UndoDescription		etype byte

UD_UNDO				enum UndoDescription

UD_REDO				enum UndoDescription

UD_NOT_UNDOABLE				enum UndoDescription

UD_UNDO	Passed in NotifyUndoStateChange if there is an active undo 
chain.

UD_REDO	Passed in NotifyUndoStateChange if there is an active 
*redo* chain.

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

Library:	Objects/gEditCC.def

n	UpdateUIDataBlk

UpdateUIDataBlk		struct

UUIDB_formatDataVMFileHan				word
UUIDB_formatDataVMBlkHan				word
UUIDB_curFormatToken				FormatIdType					;Current format token

UpdateUIDataBlk		ends



Library:	math.def

n	UpdateWindowFlags

UpdateWindowFlags		record

UWF_ATTACHING				:1
UWF_DETACHING				:1
UWF_RESTORING_FROM_STATE				:1
UWF_FROM_WINDOWS_LIST				:1
				:12

UpdateWindowFlags		end

UWF_ATTACHING
Set if MSG_META_UPDATE_WINDOW is being sent because 
application is attaching.

UWF_DETACHING
Set if MSG_META_UPDATE_WINDOW is being sent because 
application is detaching.

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

UWF_FROM_WINDOWS_LIST
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

n	UserDoDialogStruct

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

This structure is passed to 
MSG_GEN_INTERACTION_INITIATE_BLOCKING_THREAD_ON_RESPONSE.

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

n	UtilAsciiToHexError

UtilAsciiToHexError			etype word

UATH_NON_NUMERIC_DIGIT_IN_STRING							enum UtilAsciiToHexError

UATH_CONVERT_OVERFLOW							enum UtilAsciiToHexError



Library:	system.def

n	UtilHexToAsciiFlags

UtilHexToAsciiFlags			record

					:11

UHTAF_SBCS_STRING					:1

UHTAF_THOUSANDS_SEPARATORS					:1 

    UHTAF_SIGNED_VALUE					:1

UHTAF_INCLUDE_LEADING_ZEROS					:1
UHTAF_NULL_TERMINATE					:1

UtilHexToAsciiFlags			end



Library:	system.def
