3.4 Structures H-M


HandleUpdateMode

HandleUpdateMode		etype byte, 0
	HUM_NOW			enum HandleUpdateMode
	HUM_MANUAL		enum HandleUpdateMode

Library: grobj.def


HatchDash

HatchDash			struct
	HD_on		WWFixed		; length of dash to be drawn
	HD_off		WWFixed		; space to skip until next dash
HatchDash			ends

A HatchPattern consists of one or more HatchLine structures, which in turn may contain zero or more HatchDash structures.

Library: graphics.def


HatchLine

HatchLine		struct
	HL_origin			PointWWFixed			; origin of line
	HL_deltaX			WWFixed			; X offset to next line
	HL_deltaY			WWFixed			; Y offset to next line
	HL_angle			WWFixed			; angle at which line is to be drawn
	HL_color			ColorQuad		; color of line
	HL_numDashes		word			; number of dash pairs
	HL_dashData			label HatchDash	; array of pairs of on/off lengths
HatchLine		ends

Library: graphics.def


HatchPattern

HatchPattern			struct
	HP_numLines		word			; number of line records in this pattern
	HP_lineData		label HatchLine	; array of 1 or more hatch lines
HatchPattern			ends

A HatchPattern consists of one or more HatchLine structures, which in turn may contain zero or more HatchDash structures.

Library: graphics.def


HCFeatures

HCFeatures		record
	HCF_LIST		:1
HCFeatures		end

Library: Objects/Text/tCtrlC.def


HCToolboxFeatures

HCToolboxFeatures		record
	HCTF_TOGGLE		:1
HCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


HeapAllocFlags

HeapAllocFlags		record
	HAF_ZERO_INIT			:1	; Initialize new memory to 0
	HAF_LOCK				:1	; Return with block locked
	HAF_NO_ERR				:1	; Caller can't handle errors
	HAF_UI					:1	; If HAF_OBJECT_RESOURCE, set HM_otherInfo
								; to the handle of the UI as that's who's
								; to operate objects in the block
	HAF_READ_ONLY			:1	; Data in block will not/may not be
								; modified
	HAF_OBJECT_RESOURCE		:1	; Block contains objects
	HAF_CODE				:1	; Block contains executable code
	HAF_CONFORMING			:1	; Block contains code that may be executed
								; by a less privileged entity
HeapAllocFlags		end

Library: heap.def


HeapCongestion

HeapCongestion			etype word, 0, 2
	HC_SCRUBBING	enum HeapCongestion	;Heap is being scrubbed. Might be a 
										;good idea to free some things.
										;** Not currently used **
	HC_CONGESTED	enum HeapCongestion	; Couldn't nuke enough memory to
										;satisfy the heap scrubber.
	HC_DESPERATE	enum HeapCongestion	;Heap is perilously close to
										;overflowing. Nuke stuff *now*.

Library: heap.def


HeapFlags

HeapFlags		record
	HF_FIXED		:1	; Block won't ever move
	HF_SHARABLE		:1	; May be locked by other than owner
	HF_DISCARDABLE	:1	; May be discarded if space needed
	HF_SWAPABLE		:1	; May be swapped if space needed
	HF_LMEM			:1	; Managed by LMem module
	HF_DEBUG		:1	; Swat cares what happens to it -- DO NOT PASS
						; THIS FLAG. IT IS RESERVED FOR INTERNAL USE
						; BY THE DEBUGGER
	HF_DISCARDED	:1	; Discarded and must be brought in fresh from
						; executable/resource file
	HF_SWAPPED		:1	; Swapped to memory or disk.
HeapFlags		end

Library: heap.def


HeightJustification

HeightJustification			etype byte
	HJ_TOP_JUSTIFY_CHILDREN				enum HeightJustification
	HJ_BOTTOM_JUSTIFY_CHILDREN			enum HeightJustification
	HJ_CENTER_CHILDREN_VERTICALLY		enum HeightJustification
	HJ_FULL_JUSTIFY_CHILDREN_VERTICALLY	enum HeightJustification

Library: Objects/vCompC.def


HelpEntry

HelpEntry		struct
	HE_string		byte
HelpEntry		ends

This structure defines a help chunk.

Library: Objects/genC.def


HierarchicalGrab

HierarchicalGrab		struct
	HG_OD			optr
	HG_flags		HierarchicalGrabFlags <>
HierarchicalGrab		ends

Library: Objects/uiInputC.def


HierarchicalGrabFlags

HierarchicalGrabFlags			record
	HGF_SYS_EXCL			:1
	HGF_APP_EXCL			:1
	HGF_GRAB				:1
	HGF_OTHER_INFO			:12
HierarchicalGrabFlags			end

HGF_SYS_EXCL
Not passed anywhere, but stored in hierarchical grab structure, it indicates that the object has the exclusive within the System.

HGF_APP_EXCL
Not passed anywhere, but stored in hierarchical grab structure, it indicates that the object has the exclusive within the Application.

HGF_GRAB
This bit as passed to FlowAlterHierarchicalGrab indicates whether the object wishes to grab or release the exclusive it has within the node. Stored in a grab, it indicates that an object has the exclusive with the node (i.e. is redundant with the fact that there is an OD stored in the grab).

HGF_OTHER_INFO
Use defined by the type of HierarchicalGrab. This data is stored in the HG_flags field, whenever FlowAlterHierarchicalGrab is called to grab the exclusive for an object.

Library: uiInputC.def


HoldUpInputFlags

HoldUpInputFlags		record
	HUIF_FLUSHING_QUEUE				:1
	HUIF_HOLD_UP_MODE_DISABLED		:1
									:6
HoldUpInputFlags		end

HUIF_FLUSHING_QUEUE
Set if the HoldUpInputQueue is in the process of being flushed. Used to allow reentrant calls into FlowFlushHoldUpInputQueue.

HUIF_HOLD_UP_MODE_DISABLED
Set on call to FlowDisableHoldUpInput. Forces input data to flow normally until cleared. Used only by the system object when a system-modal dialog box is put on screen, to ensure that user can interact with it.

Library: uiInputC.def


HugeArrayDirectory

HugeArrayDirectory			struct
	HAD_header		LMemBlockHeader <>		; 
	HAD_data		word 					; VM block link to first data block
	HAD_dir			lptr.ChunkArrayHeader	; chunk handle to ChunkArray
	HAD_xdir		word 					; link to next dir block
	HAD_self		word 					; vm block handle of self
	HAD_size		word 					; element size, 0=variable
HugeArrayDirectory			ends

This structure is allocated at the beginning of the directory block.

Library: hugearr.def


HWRBoxData

HWRBoxData		struct
	HWRBD_mode			HWRMode
	HWRBD_top			sword
	HWRBD_bottom		sword
HWRBoxData		ends

Library: hwr.def


HWRContext

HWRContext		union
	HWRC_none		HWRNoneData
	HWRC_lined		HWRLineData
	HWRC_boxed		HWRBoxData
	HWRC_grid		HWRGridData
	HWRContext		end

Library: hwr.def


HWRGridData

HWRGridData		struct
	HWRGD_mode			HWRMode
	HWRGD_bounds		Rectangle
	HWRGD_xOffset		sword
	HWRGD_yOffset		sword
HWRGridData		ends

HWRGD_bounds stores the bounds of the grid area (in same coordinates as the ink data).

HWRGD_yOffset stores the X/Y offsets between grid lines.

Library: hwr.def


HWRLineData

HWRLineData		struct
	HWRLD_mode			HWRMode
	HWRLD_line			sword
HWRLineData		ends

Library: hwr.def


HWRMode

HWRMode	etype word
	HM_NONE		enum HWRMode
	; The user is writing in a multi-line object - no guidelines
	HM_LINE		enum HWRMode
	; The user has a reference line to write on
	HM_BOX		enum HWRMode
	; The user has a box to write into
	HM_GRID		enum HWRMode
	; The user has a grid to write chars into (one char per box)

Library: hwr.def


HWRNoneData

HWRNoneData		struct
	HWRND_mode		HWRMOde
HWRNoneData		ends

Library: hwr.def


HWRRoutine

HWRRoutine		etype word
	HWRR_BEGIN_INTERACTION					enum HWRRoutine
	HWRR_END_INTERACTION					enum HWRRoutine
	;
	;	Most HWR drivers can not handle multiple clients at once. Clients
	;	should call HWRR_BEGIN_INTERACTION before any other HWR calls, and
	;	HWRR_END_INTERACTION after their HWR calls.
	;
	;	NOTE: Assume that after you call HWRR_END_INTERACTION, all of the
	;	 parameters you've set up (points added, filters activated) will
	;	 be destroyed.
	;
	;	Pass: 		nothing
	;	Returns: 	HWRR_BEGIN_INTERACTION returns AX=0 to show that
	;				everything is fine, else there is an error.
	;		 		If HWRR_BEGIN_INTERACTION returns an error, do 
	;				not call HWRR_END_INTERACTION.
	;
	HWRR_RESET								enum HWRRoutine
	;
	;	Resets the library in preparation of sending a new set of ink data
	;	to it. This nukes all old points, and re-enables the entire 
	;	character set.
	;
	;	Pass: 		nothing
	;	Returns:	nothing
	;	Destroyed: 	nothing
	;
	HWRR_DISABLE_CHAR_RANGE					enum HWRRoutine
	;
	;	Disables the passed range of characters - this means that strokes
	;	will not be recognized as these characters.
	;
	;	Pass: (on stack)
	;
	;		word - first char in range to disable
	;		word - last char in range to disable
	;
	;	Return: nothing
	;
	HWRR_ENABLE_CHAR_RANGE					enum HWRRoutine
	;
	;	Enables the passed range of characters - this means that strokes
	;	can be recognized by these characters.
	;
	;	Pass: (on stack)
	;
	;		word - first char in range to disable
	;		word - last char in range to disable
	;
	;	Return: nothing
	;
	HWRR_SET_CHAR_FILTER_CALLBACK			enum HWRRoutine
	;
	;	Calls the passed callback routine with characters.
	;
	;	Pass: 		(push in this order)
	;				fptr to callback routine
	;				fptr to callback data
	;
	;	Return: 		nothing
	;
	;	Callback is passed (on stack):
	;
	;		word 		number of choices for character
	;		word 		offset of first point in char
	;		word		offset of last point in char
	;		fptr 		array of 16-bit characters
	;		fptr 		callback data
	;
	;	Callback should return:
	;
	;		AX = 	character chosen (it does not necessarily have to 
	;				be one of the characters in the passed array)
	;
	;	Callback can destroy: ax, bx, cx, dx
	;
	HWRR_SET_STRING_FILTER_CALLBACK			enum HWRRoutine
	;
	;	This allows the application to specify his own filter 	routine on
	;	an entire word basis (as opposed to a char by char basis)
	;
	;	NOTE: If the app specifies a "WHOLE_WORD" filter callback, it should
	;	 not also specify a "CHAR_FILTER" callback, as the "CHAR_FILTER"
	;	 callback will not be called.
	;
	;	Pass: 		(on stack - push in this order)
	;				fptr to callback routine
	;				fptr to callback data
	;
	;	Returns:	nothing
	;
	;	Callback routine is passed (on stack - pascal model):
	;
	;		word		number of characters recognized
	;		fptr		array of CharChoiceInformation structures
	;		fptr		callback data
	;
	;	Callback routine returns:
	;
	;		AX - handle of block containing null-terminated
	;		ink data
	;
	;	Callback routine can destroy:
	;
	;		AX, BX, CX, DX
	HWRR_ADD_POINT							enum HWRRoutine
	;
	;		This allows the application to add a point to the list of
	;		points being collected and recognized
	;
	;		Pass: (on stack)
	;				InkXCoord		;X coordinate
	;				word			;Y coordinate
	;				dword			;time stamp
	;								(normally passed as 0, but can be passed
	;								as an actual value for certain real-time
	;								applications, such as signature verification)
	;		Returns: nothing
	;
	HWRR_ADD_POINTS							enum HWRRoutine
	;
	;		This adds a bunch of points at once.
	;
	;		Pass: (on stack)
	;				word		num points
	;				fptr		array of InkPoint structures
	;		Return: nothing
	;
	HWRR_DO_GESTURE_RECOGNITION				enum HWRRoutine
	;
	;		Checks to see if the points are a single gesture.
	;
	;		Pass: nothing
	;		Return: AX <- return
	;
	HWRR_DO_SINGLE_CHAR_RECOGNITION			enum HWRRoutine
	;
	;		This returns a single char that was recognized from the ink input
	;
	;		Pass: nothing
	;		Return: AX <- character
	;
	HWRR_DO_MULTIPLE_CHAR_RECOGNITION		enum HWRRoutine
	;
	;		This returns a null-terminated string that was recognized from the
	;		input.
	;
	;		Pass: nothing
	;		Return: AX <- handle of block containing null-terminated ink data
	;
	HWRR_GET_HWR_MANUF_ID					enum HWRRoutine
	;
	;		Returns the manufacturer of the HWR. This may be useful if you want
	;		to call certain special features that only exist in certain drivers.
	;		(For example, if one was writing a signature verification application
	;		that required a specific HWR driver).
	;
	;		Pass: nothing
	;		Returns: AX - ManufacturerID
	;
	HWRR_SET_CONTEXT						enum HWRRoutine
	;
	;		Puts the hwr engine in line/grid/boxed mode.
	;
	;		Pass (on stack)
	;				fptr to HWRContext union
	HWRR_SET_LANGUAGE						enum HWRRoutine
	;
	;		Sets the default recognition language of the HWR
	;		Pass:	(push in this order)
	;				word - StandardLanguage
	;		Returns: nothing

Library: hwr.def


HyphenationPoints

HyphenationPoints			struct
	HP_wordLen			word
	HP_array			label byte
HyphenationPoints			ends

HP_array marks the start of a null-terminated array of hyphenation points.

Library: Objects/vTextC.def


HyphenFlags

HyphenFlags		record
	HF_AUTO_HYPHEN	:1		; set when auto-hyphen exists at EOL
HyphenFlags		end

Library: text.def


IACPConnectError

IACPConnectError		etype word, GeodeLoadError
	IACPCE_CANNOT_FIND_SERVER	enum IACPConnectError
	IACPCE_NO_SERVER			enum IACPConnectError

IACPCE_CANNOT_FIND_SERVER
Asked to start server w/o specifying location of app, and IACP was unable to find an application with the same token as the list.

IACPCE_NO_SERVER
Didn’t ask IACP to start server, and no server is registered for the list.

Library: iacp.def


IACPConnectFlags

IACPConnectFlags		record
											:10
	IACPCF_OBEY_LAUNCH_MODEL				:1
	IACPCF_CLIENT_OD_SPECIFIED				:1
	IACPCF_FIRST_ONLY						:1
	IACPCF_SERVER_MODE IACPServerMode		:3
IACPConnectFlags		end

IACPCF_OBEY_LAUNCH_MODEL
Set if IACP should obey any launch model for the field that would cause it to ask the user whether an existing server should be used, or a new one started. AppLaunchBlock must be passed with ALB_appMode set to MSG_GEN_PROCESS_OPEN_APPLICATION and IACPCF_SERVER_MODE set to IACPSM_USER_INTERACTIBLE.

IACPCF_CLIENT_OD_SPECIFIED
Set to indicate ^lcx:dx contains client OD for the IACP connection. If not set, the client OD is set to the application object of the process on whose thread the IACPConnect call is made.

IACPCF_FIRST_ONLY
Set to connect only to the first server on the list, else connects to all of them.

IACPCF_SERVER_MODE
Mode in which server is expected to be operating (IACPSM_IN_FLUX not allowed). Higher-numbered modes are expected to support requests for lower-numbered modes.

Library: iacp.def


IACPDocCloseAckParams

IACPDocCloseAckParams			struct
	IDCAP_docObj			optr
	IDCAP_connection		IACPConnection
	IDCAP_serverNum			word
	IDCAP_status			word			; DocQuitStatus
IACPDocCloseAckParams			ends

Library: iacp.def


IACPDocOpenAckParams

IACPDocOpenAckParams		struct
	IDOAP_docObj				optr
	IDOAP_connection			IACPConnection
	IDOAP_serverNum				word
IACPDocOpenAckParams		ends

IDOAP_docObj the optr of the document object managing the document.

IDOAP_connection stores the IACP connection over which the request to open was received.

IDOAP_serverNum stores the server number the document object’s GenApplication object is for that connection (0 if connection goes through some other object).

Library: iacp.def


IACPServerFlags

IACPServerFlags		record
	IACPSF_MULTIPLE_INSTANCES:1
	; Set if application may have multiple instances of itself launched
	:7
IACPServerFlags		end

Library: iacp.def


IACPServerMode

IACPServerMode etype	byte
	IACPSM_NOT_USER_INTERACTIBLE		enum IACPServerMode
	IACPSM_IN_FLUX						enum IACPServerMode
	IACPSM_USER_INTERACTIBLE			enum IACPServerMode

The mode in which an IACP server is operating. A user-interactable server is expected to cope with messages addressed to a non-user-interactable server, but the reverse is not true.

Library: iacp.def


IACPSide

IACPSide	etype word
	IACPS_CLIENT			enum IACPSide
	IACPS_SERVER			enum IACPSide

Specifies which side of an IACP connection is sending a message via IACPSendMessage.

Library: iacp.def


IEEE64

IEEE64		struct
	IEEE64_wd0		word
	IEEE64_wd1		word
	IEEE64_wd2		word
	IEEE64_wd3		word
IEEE64		ends

Library: math.def


ImageBitSize

ImageBitSize		etype byte
	IBS_1		enum ImageBitSize		; 1 to 1 mapping
	IBS_2		enum ImageBitSize		; 2 x 2 pixels
	IBS_4		enum ImageBitSize		; 4 x 4 pixels
	IBS_8		enum ImageBitSize		; 8 x 8 pixels
	IBS_16		enum ImageBitSize		; 16 x 16 pixels

Library: graphics.def


ImageFlags

ImageFlags		record
	IF_DRAW_IMAGE	:1,			; reserved for internal use (set to zero)
	IF_HUGE			:1,			; reserved for internal use (set to zero)
		:1,
	IF_IGNORE_MASK	:1			; set to draw all pixels, regardless of mask
	IF_BORDER		:1,			; set if border desired around each pixel
	IF_BITSIZE 		ImageBitSize:3	; size of each pixel
ImageFlags		end

Library: graphics.def


IMCFeatures

IMCFeatures		record
					:7
	IMCF_MAP		:1
IMCFeatures		end

Library: impex.def


ImpexDataClasses

ImpexDataClasses			record
	IDC_TEXT			:1
	IDC_GRAPHICS		:1
	IDC_SPREADSHEET		:1
	IDC_FONT			:1
						:12
ImpexDataClasses			end

Library: impex.def


ImpexFileSelectionData

ImpexFileSelectionData			struct
	IFSD_selection			FileLongName
	IFSD_path				PathName
	IFSD_disk				word
	IFSD_type				GenFileSelectorEntryFlags
ImpexFileSelectionData			ends

This structure is passed with MSG_IMPORT_EXPORT_FILE_SELECTION_INFO.

Library: impex.def


ImpexMapFileInfoHeader

ImpexMapFileInfoHeader			struc
	IMFTH_base				LMemBlockHeader
	IMFTH_fieldChunk		word
	IMFTH_numFields			word
	IMFIH_flag				DefaultFieldNameUsage
ImpexMapFileInfoHeader			ends

Library: impex.def


ImpexMapFlags

ImpexMapFlags			record
	IMF_IMPORT		:1
	IMF_EXPORT		:1
					:6
ImpexMapFlags			end

Library: impex.def


ImpexTranslationParams

ImpexTranslationParams			struct
	ITP_impexOD				optr	; OD of Import/ExportControl
	ITP_returnMsg			word	; message to return to above
	ITP_dataClass			word	; what class type (ImpexDataClasses)
	ITP_transferVMFile		hptr	; VM file w/ transfer format
	ITP_transferVMChain		dword	; VM chain w/ transfer format
	ITP_internal			dword	; two words of internal data
	ITP_manufacturerID 		ManufacturerID;
	ITP_clipboardFormat 	ClipboardItemFormat
ImpexTranslationParams			ends

Library: ieCommon.def


ImportControlAttrs

ImportControlAttrs		record
	ICA_IGNORE_INPUT			:1		; ignore input while import occurs.
	ICA_NON_DOCUMENT_IMPORT		:1		; non-document imports only
								:14
ImportControlAttrs		end

Library: impex.def


ImportControlFeatures

ImportControlFeatures		record
	IMPORTCF_PREVIEW_TRIGGER	:1		; not currently used
	IMPORTCF_IMPORT_TRIGGER		:1		; import trigger
	IMPORTCF_FORMAT_OPTIONS		:1		; import format UI parent,
										; under which is placed any
										; UI specific to the
										; currently selected format
	IMPORTCF_FILE_MASK			:1		; import file mask
	IMPORTCF_BASIC				:1		; import file selector,
										; import format list, and
										; import app UI parent, under
										; which is placed any UI
										; specific to the app
	IMPORTCF_GLYPH				:1		; glyph at top of import
										; dialog box
ImportControlFeatures		end

Library: impex.def


ImportControlToolboxFeatures

ImportControlToolboxFeatures				record
	IMPORTCTF_DIALOG_BOX				:1
ImportControlToolboxFeatures				end

Library: impex.def


InitFileCharConvert

InitFileCharConvert			etype byte
	IFCC_INTACT		enum InitFileCharConvert	; leave intact
	IFCC_UPCASE		enum InitFileCharConvert	; upcase all chars
	IFCC_DOWNCASE	enum InitFileCharConvert	; downcase all chars

Library: initfile.def


InitFileReadFlags

InitFileReadFlags		record
	IFRF_CHAR_CONVERT		InitFileCharConvert:2	; character conversion

	IFRF_READ_ALL			:1
	; Instructs the initfile routine to read from all the init files,
	; where appropriate. Only used in InitFileEnumStringSection,
	; which will enumerate over all string sections in all init files

	IFRF_FIRST_ONLY			:1
	; Read from the first init file only.

	IFRF_SIZE				:12						; size of buffer
InitFileReadFlags		end

Library: initfile.def


InkBackgroundType

InkBackgroundType		etype word, 0, 2
	IBT_NO_BACKGROUND				enum InkBackgroundType
	IBT_NARROW_LINED_PAPER			enum InkBackgroundType
	IBT_MEDIUM_LINED_PAPER			enum InkBackgroundType
	IBT_WIDE_LINED_PAPER			enum InkBackgroundType
	IBT_NARROW_STENO_PAPER			enum InkBackgroundType
	IBT_MEDIUM_STENO_PAPER			enum InkBackgroundType
	IBT_WIDE_STENO_PAPER			enum InkBackgroundType
	IBT_SMALL_GRID					enum InkBackgroundType
	IBT_MEDIUM_GRID					enum InkBackgroundType
	IBT_LARGE_GRID					enum InkBackgroundType
	IBT_SMALL_CROSS_SECTION			enum InkBackgroundType
	IBT_MEDIUM_CROSS_SECTION		enum InkBackgroundType
	IBT_LARGE_CROSS_SECTION			enum InkBackgroundType
	IBT_TO_DO_LIST					enum InkBackgroundType
	IBT_PHONE_MESSAGE				enum InkBackgroundType
	IBT_CUSTOM_BACKGROUND			enum InkBackgroundType

Library: pen.def


InkControlFeatures

InkControlFeatures		record
	ICF_PENCIL_TOOL				:1
	ICF_ERASER_TOOL				:1
	ICF_SELECTION_TOOL			:1
InkControlFeatures		end

Library: pen.def


InkControlToolboxFeatures

InkControlToolboxFeatures				record
	ICTF_PENCIL_TOOL				:1
	ICTF_ERASER_TOOL				:1
	ICTF_SELECTION_TOOL				:1
InkControlToolboxFeatures				end

Library: pen.def


InkDBFrame

InkDBFrame		struct
	IDBF_bounds				Rectangle
	IDBF_VMFile				hptr
	IDBF_DBGroupAndItem		DBGroupAndItem
	IDBF_DBExtra			word
InkDBFrame		ends

IDBF_bounds stores the bounds of the ink to write out. If you want all of the ink rather than a portion of it, pass <(0,0), (0xffff, 0xffff)> as the bounds.

IDBF_VMFile stores the VM File to write to or read from (depending on the operation).

IDBF_DBGroupAndItem stores the DB Item to save to or load from (or 0 to create a new one).

IDBF_DBExtra stores the extra space to skip at the start of the block.

Library: pen.def


InkDestinationInfo

InkDestinationInfo		struct
	IDI_destObj				optr
	IDI_gstate				hptr.GState
	IDI_brushSize			word
	IDI_gestureCallback		dword
InkDestinationInfo		ends

IDI_destObj stores the optr of the object that the ink should be sent to.

IDI_gstate stores the gstate to draw through. (This is optional, and can be set to 0 if ink can go all over the screen).

IDI_brushSize stores the width/height parameter of the ink lines (see GrBrushPolyline).Use 0 for default behavior.

IDI_gestureCallback stores the virtual far pointer to the callback routine.

Callback Routine Specifications:
Pass on stack: (Pascal calling convention):
fptr - arrayOfInkPoints
word - numPoints
word - numStrokes
numStrokes specifies the number of strokes entered by the user. If you only support single-stroke gestures, you can check this to quickly exit if the user has entered multiple strokes.
Return: ax Non-zero if the ink is a gesture

Library: Objects/uiInputC.def


InkDestinationInfoParams

InkDestinationInfoParams			struct
	IDIP_dest				optr
	IDIP_brushSize			word
	IDIP_color				Color
	IDIP_reserved1			byte
	IDIP_createGState		byte
	IDIP_reserved2			byte
InkDestinationInfoParams			ends

IDIP_dest and IDIP_brushSize are the same as the arguments passed to UserCreateInkDestinationInfo.

Library: Objects/gViewC.def


InkFlags

InkFlags	record
	IF_HAS_MOUSE_GRAB			:1
	IF_SELECTING				:1
	IF_HAS_TARGET				:1
	IF_HAS_SYS_TARGET			:1
	IF_DIRTY					:1
	IF_ONLY_CHILD_OF_CONTENT	:1
	IF_CONTROLLED				:1
	IF_INVALIDATE_ERASURES		:1
	IF_HAS_UNDO					:1
								:7
InkFlags	end

IF_HAS_MOUSE_GRAB
Set if the object has grabbed the mouse.

IF_SELECTING
Set if doing a selection.

IF_HAS_TARGET
Set if this object has the target.

IF_HAS_SYS_TARGET
Set if this object has the target.

IF_DIRTY
Set when we are dirty.

IF_ONLY_CHILD_OF_CONTENT
Set if this is the only child of a VisContent, in which case it should use some optimizations to reply to ink at the view level.

IF_CONTROLLED
Set if this object is to be used in conjunction with an InkControl object.

IF_INVALIDATE_ERASURES
Set if we should invalidate the bounds of all erasures, in case there is a subclass that needs to redraw the background.

IF_HAS_UNDO
Set if this object should be undoable.

Library: pen.def


InkGrab

InkGrab		struct
	IG_OD		optr
	IG_gState	hptr
InkGrab		ends

This structure is used by the ink code within the Flow object.

Library: Objects/uiInputC.def


InkHeader

InkHeader		struct
	IH_count			word
	IH_bounds			Rectangle
	IH_destination		optr
	IH_reserved			dword
	IH_data				label Point
InkHeader		ends

This structure defines the data block format for the GWNT_INK notification type.

IH_count stores the number of ink points collected.

IH_bounds stores the bounds of the ink on the screen.

IH_destination stores the optr of the destination object for the ink. Objects can use this to determine whether the ink was sent to them directly, or just because it overlapped the screen. This field is set by the flow object.

IH_reserved is reserved for future use.

Library: Input.def


InkPoint

InkPoint		struct
	IP_x	InkXCoord
	IP_y	word
InkPoint		ends

Library: hwr.def


InkReturnValue

InkReturnValue		etype word
	IRV_NO_REPLY					enum InkReturnValue, 0
	IRV_NO_INK						enum InkReturnValue
	IRV_INK_WITH_STANDARD_OVERRIDE	enum InkReturnValue
	IRV_DESIRES_INK					enum InkReturnValue
	IRV_WAIT						enum InkReturnValue

IRV_NO_REPLY
VisComp objects use VisCallChildUnderPoint to send MSG_META_QUERY_IF_PRESS_IS_INK to its children, and VisCallChildUnderPoint returns this value (zero) if there was not child under the point. No object should actually return this value.

IRV_NO_INK
Return this if the object wants the MSG_META_START_SELECT to be passed on to it.

IRV_INK_WITH_STANDARD_OVERRIDE
Return this if the object normally wants ink (the text object does this), but the user can force mouse events instead by pressing the pen and holding for some user-adjustable amount of time).

IRV_DESIRES_INK
Return this if the object does not want the MSG_META_START_SELECT (it should be captured as ink).

IRV_WAIT
This should be the last item in the enumerated type for EC reasons.

Return this value if the object under the point is run by a different thread, and you want to hold up input (don’t do anything with the MSG_META_START_SELECT) until an object sends a MSG_GEN_APPLICATION_INK_QUERY_REPLY to the application object.

Library: uiInputC.def


InkStrokeSize

InkStrokeSize			struct
	ISS_width		byte
	ISS_height		byte
InkStrokeSize			ends

Library: pen.def


InkTool

InkTool	etype word, 0, 2
	IT_PENCIL		enum InkTool		;Default tool
	IT_ERASER		enum InkTool
	IT_SELECTOR		enum InkTool

Library: pen.def


InkXCoord

InkXCoord		record
	IXC_TERMINATE_STROKE	:1
	IXC_X_COORD				:15
InkXCoord		end

Library: hwr.def


InsertChildFlags

InsertChildFlags		record
	ICF_MARK_DIRTY	:1,					;Marks chunk and modified object as 
										; dirty
					:13,
	ICF_OPTIONS 	InsertChildOption:2	;Options for how to add the child
InsertChildFlags		end

Library: Objects/metaC.def


InsertChildOption

InsertChildOption		etype byte
	ICO_FIRST				enum InsertChildOption
	ICO_LAST				enum InsertChildOption
	ICO_BEFORE_REFERENCE	enum InsertChildOption
	ICO_AFTER_REFERENCE		enum InsertChildOption

Library: Objects/metaC.def


InsertDeleteSpaceParams

InsertDeleteSpaceParams			struct
	IDSP_position		PointDWFixed
	IDSP_space			PointDWFixed
	IDSP_type			InsertDeleteSpaceTypes
InsertDeleteSpaceParams			ends

Library: Objects/visC.def


InsertDeleteSpaceTypes

InsertDeleteSpaceTypes			record
															:11	
	IDST_MOVE_OBJECTS_INSIDE_DELETED_SPACE_BY_AMOUNT_DELETED :1
	IDST_MOVE_OBJECTS_INTERSECTING_DELETED_SPACE			:1
	IDST_RESIZE_OBJECTS_INTERSECTING_SPACE					:1
	IDST_DELETE_OBJECTS_SHRUNK_TO_ZERO_SIZE					:1
	IDST_MOVE_OBJECTS_BELOW_AND_RIGHT_OF_INSERT_POINT_OR_DELETED_SPACE :1
InsertDeleteSpaceTypes			end

IDST_MOVE_OBJECTS_INSIDE_DELETED_SPACE_BY_AMOUNT_DELETED
Move objects that are in the deleted space by the amount of space being deleted.

IDST_MOVE_OBJECTS_INTERSECTING_DELETED_SPACE
Move objects that intersect the deleted space so that their left and top are aligned with the left and top of the deleted space

IDST_RESIZE_OBJECTS_INTERSECTING_SPACE
If inserting space and line extending down and/or to right from insert point intersects object then add inserted space to size of object. If deleting space and deleted space intersects object then remove space from object. Object can be shrunk to zero width and height.

IDST_DELETE_OBJECTS_SHRUNK_TO_ZERO_SIZE
If object is shrunk to zero width OR height during delete space then delete it.

IDST_MOVE_OBJECTS_BELOW_AND_RIGHT_OF_INSERT_POINT_OR_DELET ED_SPACE
If inserting space and object is below and or to right of insert point then move object down and right the amount of inserted space. If deleting space and object is below or to right of deleted space then move object up and to left the amount of the deleted space. In most uses of this message, this bit will be set.

Library: Objects/visC.def


InstrumentPatch

InstrumentPatch		etype dword, 0, size InstrumentEnvelope
	; MIDI patch	1 - 8 = Piano
	IP_ACOUSTIC_GRAND_PIANO					enum InstrumentPatch
	IP_BRIGHT_ACOUSTIC_PIANO				enum InstrumentPatch
	IP_ELECTRIC_GRAND_PIANO					enum InstrumentPatch
	IP_HONKY_TONK_PIANO						enum InstrumentPatch
	IP_ELECTRIC_PIANO_1						enum InstrumentPatch
	IP_ELECTRIC_PIANO_2						enum InstrumentPatch
	IP_HARPSICORD							enum InstrumentPatch
	IP_CLAVICORD							enum InstrumentPatch
	; MIDI patch	9 - 16 = Chromatic Percussion
	IP_CELESTA								enum InstrumentPatch
	IP_GLOCKENSPIEL							enum InstrumentPatch
	IP_MUSIC_BOX							enum InstrumentPatch
	IP_VIBRAPHONE							enum InstrumentPatch
	IP_MARIMBA								enum InstrumentPatch
	IP_XYLOPHONE							enum InstrumentPatch
	IP_TUBULAR_BELLS						enum InstrumentPatch
	IP_DULCIMER								enum InstrumentPatch
	; MIDI patch	17 - 24 = Organ
	IP_DRAWBAR_ORGAN						enum InstrumentPatch
	IP_PERCUSSIVE_ORGAN						enum InstrumentPatch
	IP_ROCK_ORGAN							enum InstrumentPatch
	IP_CHURCH_ORGAN							enum InstrumentPatch
	IP_REED_ORGAN							enum InstrumentPatch
	IP_ACCORDIAN							enum InstrumentPatch
	IP_HARMONICA							enum InstrumentPatch
	IP_TANGO_ACCORDION						enum InstrumentPatch
	; MIDI patch	25 - 32 = Guitar
	IP_ACOUSTIC_NYLON_GUITAR				enum InstrumentPatch
	IP_ACOUSTIC_STEEL_GUITAR				enum InstrumentPatch
	IP_ELECTRIC_JAZZ_GUITAR					enum InstrumentPatch
	IP_ELECTRIC_CLEAN_GUITAR				enum InstrumentPatch
	IP_ELECTRIC_MUTED_GUITAR				enum InstrumentPatch
	IP_OVERDRIVEN_GUITAR					enum InstrumentPatch
	IP_DISTORTION_GUITAR					enum InstrumentPatch
	IP_GUITAR_HARMONICS						enum InstrumentPatch
	; MIDI patch	33 - 40 = Bass
	IP_ACOUSTIC_BASS						enum InstrumentPatch
	IP_ELECTRIC_FINGERED_BAS				enum InstrumentPatch
	IP_ELECTRIC_PICKED_BASS					enum InstrumentPatch
	IP_FRETLESS_BASS						enum InstrumentPatch
	IP_SLAP_BASS_1							enum InstrumentPatch
	IP_SLAP_BASS_2							enum InstrumentPatch
	IP_SYNTH_BASS_1							enum InstrumentPatch
	IP_SYNTH_BASS_2							enum InstrumentPatch
	; MIDI patch	41 - 48 = Strings
	IP_VIOLIN								enum InstrumentPatch
	IP_VIOLA								enum InstrumentPatch
	IP_CELLO								enum InstrumentPatch
	IP_CONTRABASS							enum InstrumentPatch
	IP_TREMELO_STRINGS						enum InstrumentPatch
	IP_PIZZICATO_STRINGS					enum InstrumentPatch
	IP_ORCHESTRAL_HARP						enum InstrumentPatch
	IP_TIMPANI								enum InstrumentPatch
	; MIDI patch	49 - 56 = Ensemble
	IP_STRING_ENSEMBLE_1					enum InstrumentPatch
	IP_STRING_ENSEMBLE_2					enum InstrumentPatch
	IP_SYNTH_STRINGS_1						enum InstrumentPatch
	IP_SYNTH_STRINGS_2						enum InstrumentPatch
	IP_CHIOR_AAHS							enum InstrumentPatch
	IP_VOICE_OOHS							enum InstrumentPatch
	IP_SYNTH_VOICE							enum InstrumentPatch
	IP_ORCHESTRA_HIT						enum InstrumentPatch
	; MIDI patch	57 - 64 = Brass
	IP_TRUMPET								enum InstrumentPatch
	IP_TROMBONE								enum InstrumentPatch
	IP_TUBA									enum InstrumentPatch
	IP_MUTED_TRUMPET						enum InstrumentPatch
	IP_FRENCH_HORN							enum InstrumentPatch
	IP_BRASS_SECTION						enum InstrumentPatch
	IP_SYNTH_BRASS_1						enum InstrumentPatch
	IP_SYNTH_BRASS_2						enum InstrumentPatch
	; MIDI patch	65 - 72 = Reed
	IP_SOPRANO_SAX							enum InstrumentPatch
	IP_ALTO_SAX								enum InstrumentPatch
	IP_TENOR_SAX							enum InstrumentPatch
	IP_BARITONE_SAX							enum InstrumentPatch
	IP_OBOE									enum InstrumentPatch
	IP_ENGLISH_HORN							enum InstrumentPatch
	IP_BASSOON								enum InstrumentPatch
	IP_CLARINET								enum InstrumentPatch
	; MIDI patch	73 - 80 = Pipe
	IP_PICCOLO								enum InstrumentPatch
	IP_FLUTE								enum InstrumentPatch
	IP_RECORDER								enum InstrumentPatch
	IP_PAN_FLUTE							enum InstrumentPatch
	IP_BLOWN_BOTTLE							enum InstrumentPatch
	IP_SHAKUHACHI							enum InstrumentPatch
	IP_WHISTLE								enum InstrumentPatch
	IP_OCARINA								enum InstrumentPatch
	; MIDI patch	81 - 88 = Synth Lead
	IP_LEAD_SQUARE							enum InstrumentPatch
	IP_LEAD_SAWTOOTH						enum InstrumentPatch
	IP_LEAD_CALLIOPE						enum InstrumentPatch
	IP_LEAD_CHIFF							enum InstrumentPatch
	IP_LEAD_CHARANG							enum InstrumentPatch
	IP_LEAD_VOICE							enum InstrumentPatch
	IP_LEAD_FIFTHS							enum InstrumentPatch
	IP_LEAD_BASS_LEAD						enum InstrumentPatch
	; MIDI patch	89 - 96 = Synth Pad
	IP_PAD_NEW_AGE							enum InstrumentPatch
	IP_PAD_WARM								enum InstrumentPatch
	IP_PAD_POLYSYNTH						enum InstrumentPatch
	IP_PAD_CHOIR							enum InstrumentPatch
	IP_PAD_BOWED							enum InstrumentPatch
	IP_PAD_METALLIC							enum InstrumentPatch
	IP_PAD_HALO								enum InstrumentPatch
	IP_PAD_SWEEP							enum InstrumentPatch
	; MIDI patch	97 - 104 = Synth Effects
	IP_FX_RAIN								enum InstrumentPatch
	IP_FX_SOUNDTRACK						enum InstrumentPatch
	IP_FX_CRYSTAL							enum InstrumentPatch
	IP_FX_ATMOSPHERE						enum InstrumentPatch
	IP_FX_BRIGHTNESS						enum InstrumentPatch
	IP_FX_GOBLINS							enum InstrumentPatch
	IP_FX_ECHOES							enum InstrumentPatch
	IP_FX_SCI_FI							enum InstrumentPatch
	; MIDI patch	105 - 112 = Ethnic
	IP_SITAR								enum InstrumentPatch
	IP_BANJO								enum InstrumentPatch
	IP_SHAMISEN								enum InstrumentPatch
	IP_KOTO									enum InstrumentPatch
	IP_KALIMBA								enum InstrumentPatch
	IP_BAG_PIPE								enum InstrumentPatch
	IP_FIDDLE								enum InstrumentPatch
	IP_SHANAI								enum InstrumentPatch
	; MIDI patch	113 - 120 = Percussive
	IP_TINKLE_BELL							enum InstrumentPatch
	IP_AGOGO								enum InstrumentPatch
	IP_STEEL_DRUMS							enum InstrumentPatch
	IP_WOODBLOCK							enum InstrumentPatch
	IP_TAIKO_DRUM							enum InstrumentPatch
	IP_MELODIC_TOM							enum InstrumentPatch
	IP_SYNTH_DRUM							enum InstrumentPatch
	IP_REVERSE_CYMBAL						enum InstrumentPatch
	; MIDI patch	132 - 128 = SoundEffects
	IP_GUITAR_FRET_NOISE					enum InstrumentPatch
	IP_BREATH_NOISE							enum InstrumentPatch
	IP_SEASHORE 							enum InstrumentPatch
	IP_BIRD_TWEET							enum InstrumentPatch
	IP_TELEPHONE_RING						enum InstrumentPatch
	IP_HELICOPTER							enum InstrumentPatch
	IP_APPLAUSE								enum InstrumentPatch
	IP_GUNSHOT								enum InstrumentPatch
	; MIDI Percussion Map (Channel 10)
	; Keys 35 - 42
	IP_ACOUSTIC_BASS_DRUM					enum InstrumentPatch
	IP_BASS_DRUM_1							enum InstrumentPatch
	IP_SIDE_STICK							enum InstrumentPatch
	IP_ACOUSTIC_SNARE						enum InstrumentPatch
	IP_HAND_CLAP							enum InstrumentPatch
	IP_ELECTRIC_SNARE						enum InstrumentPatch
	IP_LOW_FLOOR_TOM						enum InstrumentPatch
	IP_CLOSED_HI_HAT						enum InstrumentPatch
	; Keys 43 - 50
	IP_HIGH_FLOOR_TOM						enum InstrumentPatch
	IP_PEDAL_HI_HAT							enum InstrumentPatch
	IP_LOW_TOM								enum InstrumentPatch
	IP_OPEN_HI_HAT							enum InstrumentPatch
	IP_LOW_MID_TOM							enum InstrumentPatch
	IP_HI_MID_TOM							enum InstrumentPatch
	IP_CRASH_CYMBAL_1						enum InstrumentPatch
	IP_HIGH_TOM								enum InstrumentPatch
	; Keys 51 - 58
	IP_RIDE_CYMBAL_1						enum InstrumentPatch
	IP_CHINESE_CYMBAL						enum InstrumentPatch
	IP_RIDE_BELL							enum InstrumentPatch
	IP_TAMBOURINE							enum InstrumentPatch
	IP_SPLASH_CYMBAL						enum InstrumentPatch
	IP_COWBELL								enum InstrumentPatch
	IP_CRASH_CYMBAL_2						enum InstrumentPatch
	IP_VIBRASLAP							enum InstrumentPatch
	; Keys 59-66
	IP_RIDE_CYMBAL_2                        enum InstrumentPatch
	IP_HI_BONGO                             enum InstrumentPatch
	IP_LOW_BONGO                            enum InstrumentPatch
	IP_MUTE_HI_CONGA                        enum InstrumentPatch
	IP_OPEN_HI_CONGA                        enum InstrumentPatch
	IP_LOW_CONGA                            enum InstrumentPatch
	IP_HI_TIMBALE                           enum InstrumentPatch
	IP_LOW_TIMBALE                          enum InstrumentPatch
	; Keys 67 - 74
	IP_HIGH_AGOGO							enum InstrumentPatch
	IP_LOW_AGOGO							enum InstrumentPatch
	IP_CABASA								enum InstrumentPatch
	IP_MARACAS								enum InstrumentPatch
	IP_SHORT_WHISTLE						enum InstrumentPatch
	IP_LONG_WHISTLE							enum InstrumentPatch
	IP_SHORT_GUIRO							enum InstrumentPatch
	IP_LONG_GUIRO							enum InstrumentPatch
	; Keys 75 - 81
	IP_CLAVES								enum InstrumentPatch
	IP_HI_WOOD_BLOCK						enum InstrumentPatch
	IP_LOW_WOOD_BLOCK						enum InstrumentPatch
	IP_MUTE_CUICA							enum InstrumentPatch
	IP_OPEN_CUICA							enum InstrumentPatch
	IP_MUTE_TRIANGLE						enum InstrumentPatch
	IP_OPEN_TRIANGLE						enum InstrumentPatch

Library: sound.def


InteractionCommand

InteractionCommand		etype word
	IC_NULL						enum InteractionCommand
	IC_DISMISS					enum InteractionCommand
	IC_INTERACTION_COMPLETE 	enum InteractionCommand
	IC_APPLY					enum InteractionCommand
	IC_RESET					enum InteractionCommand
	IC_OK						enum InteractionCommand
	IC_YES						enum InteractionCommand
	IC_NO						enum InteractionCommand
	IC_STOP						enum InteractionCommand
	IC_EXIT						enum InteractionCommand
	IC_HELP						enum InteractionCommand

IC_NULL
Special interaction command for use with UserDoDialog and UserStandardDialog, et. al. When returned as the dialog response, this indicates that the interaction was terminated by the system (for example, the system shut down while the box was on-screen). This should not be sent with MSG_GEN_INTERACTION_ACTIVATE_COMMAND or MSG_GEN_GUP_INTERACTION_COMMAND.

IC_DISMISS
Dismisses interaction, making it non-visible. Will always cause window to come down, even overriding the user’s preference, such as having pinned the window.

IC_INTERACTION_COMPLETE
Notification to the GenInteraction that the user has completed one interaction. The specific UI must then decide whether the interaction should stay around to allow the user multiple interactions, or whether it should come down. Motif will dismiss the interaction if it is modal, or if HINT_INTERACTION_SINGLE_USAGE is set. OPEN LOOK dismisses unpinned interactions.This command is automatically sent as a side effect to the interaction, via MSG_GEN_GUP_INTERACTION_COMMAND, when a trigger with GA_SIGNAL_INTERACTION_COMPLETE set is activated and doesn’t send another MSG_GEN_GUP_INTERACTION_COMMAND as a result of being activated. Has no effect if the interaction has already been dismissed. This command is special in that a button may not be created for the sole purpose of activating this command. Because of this, IC_INTERACTION_COMPLETE may not be used with ATTR_GEN_TRIGGER_INTERACTION_COMMAND or MSG_GEN_INTERACTION_ACTIVATE_COMMAND. It can be used with MSG_GEN_GUP_INTERACTION_COMMAND.

IC_APPLY
Standard response for GIT_PROPERTIES. Applies properties. Causes MSG_GEN_APPLY to be sent to the UI gadgets under the GenInteraction.

IC_RESET
Standard response for GIT_PROPERTIES. Resets properties. Causes MSG_GEN_RESET to be sent to the UI gadgets under the GenInteraction.

IC_OK
Standard response for GIT_NOTIFICATION.

IC_YES
Standard response for GIT_AFFIRMATION.

IC_NO
Standard response for GIT_AFFIRMATION.

IC_STOP
Standard response for GIT_PROGRESS.

IC_EXIT
Special interaction command used to indicate that this GenTrigger exits the application. Motif has an “Exit” item in the “File” menu. This should only be used with ATTR_GEN_TRIGGER_INTERACTION_COMMAND, not with MSG_GEN_GUP_INTERACTION_COMMAND or MSG_GEN_INTERACTION_ACTIVATE_COMMAND. It is only supported for GenTriggers under GIV_POPUP GenInteractions.

IC_HELP
Special interaction command used to indicate that this GenTrigger brings up help. This should only be used with ATTR_GEN_TRIGGER_INTERACTION_COMMAND.

Library: Objects/gInterC.def

Library: netware.def


JCFeatures

JCFeatures		record
	JCF_LEFT		:1
	JCF_RIGHT		:1
	JCF_CENTER		:1
	JCF_FULL		:1
JCFeatures		end

Library: Objects/Text/tCtclC.def


JCToolboxFeatures

JCToolboxFeatures		record
	JCTF_LEFT		:1
	JCTF_RIGHT		:1
	JCTF_CENTER		:1
	JCTF_FULL		:1
JCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


JobStatus

JobStatus		struct
	; DO NOT CHANGE THE ORDER OF THESE FIRST FOUR ITEMS
	JS_fname			char 13 dup (?)
	JS_parent			char FILE_LONGNAME_LENGTH+1 dup (?)
	JS_documentName		char FILE_LONGNAME_LENGTH+1 dup (?)
	JS_numPages			word
	JS_time				SpoolTimeStruct <>
	JS_printing			byte
JobStatus		ends

This structure is returned by the SpoolJobsInfo library call.

JS_fname stores the standard DOS (8.3) spool filename.

JS_parent stores the parent application’s name.

JS_documentName stores the document name.

JS_numPages stores the number of pages in the document.

JS_time stores the time spooled.

JS_printing stores the status of printing in progress. (TRUE if we are printing.)

Library: spool.def


Justification

Justification		etype byte
	J_LEFT 				enum Justification
	J_RIGHT 			enum Justification
	J_CENTER 			enum Justification
	J_FULL 				enum Justification

Library: graphics.def


KbdGrab

KbdGrab		struct
	KG_OD			optr
	KG_unused		word
KbdGrab		ends

Library: Objects/uiInputC.def


KbdReturnFlags

KbdReturnFlags		record
	KRF_PREVENT_PASS_THROUGH		:1
	KRF_UNUSED						:15
KbdReturnFlags		end

Library: uiInputC.def


KeyboardOverride

KeyboardOverride		etype		word
	KO_NO_KEYBOARD 				enum	KeyboardOverride
	KO_KEYBOARD_REQUIRED 		enum	KeyboardOverride
	KO_KEYBOARD_EMBEDDED 		enum	KeyboardOverride

KO_NO_KEYBOARD
This forces the window to act as if none of the child objects accept text input - no floating keyboard will be made available.

KO_KEYBOARD_REQUIRED
This forces the window to act as if a child object required text input, so a floating keyboard will be brought on screen.

KO_KEYBOARD_EMBEDDED
If this is present, it means that the application is providing an keyboard directly inside the box - no floating keyboard is needed.

Library: genC.def


KeyboardShortcut

KeyboardShortcut		record
	KS_PHYSICAL		:1			;TRUE: match key, not character
	KS_ALT			:1			;TRUE: <ALT> must be pressed
	KS_CTRL			:1			;TRUE: <CTRL> must be pressed
	KS_SHIFT		:1			;TRUE: <SHIFT> must be pressed
	KS_CHAR			Chars:12	;character itself (Char or VChar)
KeyboardShortcut		end

Library: input.def


KeyboardType

KeyboardType			etype byte, 1, 1
	KT_NOT_EXTD		enum KeyboardType		;84-key PC/AT
	KT_EXTD			enum KeyboardType		;102-key PC/AT, PS/2
	KT_BOTH			enum KeyboardType		;does both (U.S. only)

Library: localize.def


KeyMapType

KeyMapType		etype word, 1, 1
	KEYMAP_US_EXTD				enum KeyMapType
	KEYMAP_US					enum KeyMapType
	KEYMAP_UK_EXTD				enum KeyMapType
	KEYMAP_UK					enum KeyMapType
	KEYMAP_GERMANY_EXTD			enum KeyMapType
	KEYMAP_GERMANY				enum KeyMapType
	KEYMAP_SPAIN_EXTD			enum KeyMapType
	KEYMAP_SPAIN				enum KeyMapType
	KEYMAP_DENMARK_EXTD			enum KeyMapType
	KEYMAP_DENMARK				enum KeyMapType
	KEYMAP_BELGIUM_EXTD			enum KeyMapType
	KEYMAP_BELGIUM				enum KeyMapType
	KEYMAP_CANADA_EXTD			enum KeyMapType
	KEYMAP_CANADA				enum KeyMapType
	KEYMAP_ITALY_EXTD			enum KeyMapType
	KEYMAP_ITALY				enum KeyMapType
	KEYMAP_LATIN_AMERICA_EXTD	enum KeyMapType
	KEYMAP_LATIN_AMERICA		enum KeyMapType
	KEYMAP_NETHERLANDS			enum KeyMapType
	KEYMAP_NETHERLANDS_EXTD		enum KeyMapType
	KEYMAP_NORWAY_EXTD			enum KeyMapType
	KEYMAP_NORWAY				enum KeyMapType
	KEYMAP_PORTUGAL_EXTD		enum KeyMapType
	KEYMAP_PORTUGAL				enum KeyMapType
	KEYMAP_SWEDEN_EXTD			enum KeyMapType
	KEYMAP_SWEDEN				enum KeyMapType
	KEYMAP_SWISS_FRENCH_EXTD	enum KeyMapType
	KEYMAP_SWISS_FRENCH			enum KeyMapType
	KEYMAP_SWISS_GERMAN_EXTD	enum KeyMapType
	KEYMAP_SWISS_GERMAN			enum KeyMapType
	KEYMAP_FRANCE_EXTD			enum KeyMapType
	KEYMAP_FRANCE				enum KeyMapType

Library: localize.def


LanguageDialect

LanguageDialect		record
						:8
	LD_DEFAULT			:1
	LD_ISE_BRITISH		:1
	LD_IZE_BRITISH		:1
	LD_AUSTRALIAN		:1
	LD_FINANCIAL		:1
	LD_LEGAL			:1
	LD_MEDICAL			:1
	LD_SCIENCE			:1
LanguageDialect		end

Library: sllang.def


LargeMouseData

LargeMouseData		struct
	; LMD_location must be first entry
	LMD_location				PointDWFixed
	LMD_buttonInfo				byte
	LMD_uiFunctionsActive		UIFunctionsActive
LargeMouseData		ends

LMD_location stores the mouse position in <32 bit integer>.<16 bit fraction> format.

LMD_buttonInfo stores ButtonInfo.

LMD_uiFunctionsActive stores additional data normally passed as part of mouse event in bp. The data normally provided by the bit UIFA_IN is not provided by GEOS for LARGE mouse events. The reason for this is that with small mouse events, VisCallChildUnderPoint can lock down each child, look at its bounds, & set UIFA_IN correctly. This is not possible with large objects, as the bounds information, if at all existent, is private to that object & not known by the Vis library. The bit will be unchanged from the state it holds going into the VisContentClass handler for the mouse event.

Library: Objects/uiInput.def


LASCFeatures

LASCFeatures		record
	LASCF_SINGLE				:1
	LASCF_ONE_AND_A_HALF		:1
	LASCF_DOUBLE				:1
	LASCF_TRIPLE				:1
	LASCF_CUSTOM				:1
LASCFeatures		end

Library: Objects/Text/tCtrlC.def


LASCToolboxFeatures

LASCToolboxFeatures			record
	LASCTF_SINGLE				:1
	LASCTF_ONE_AND_A_HALF		:1
	LASCTF_DOUBLE				:1
	LASCTF_TRIPLE				:1
LASCToolboxFeatures			end

Library: Objects/Text/tCtrlC.def


LayerPriority

LayerPriority		etype byte
	LAYER_PRIO_MODAL 		enum LayerPriority, 6	; For system-modal dialog 
													; boxes, when layer is on 
													; screen
	LAYER_PRIO_ON_TOP 		enum LayerPriority, 8	; For "screen-floating" 
													; boxes
	LAYER_PRIO_STD			enum LayerPriority, 12	; Standard layer priority
	LAYER_PRIO_ON_BOTTOM	enum LayerPriority, 14	; Window stays on bottom

Library: win.def


LibraryCallType

LibraryCallType		etype word
	LCT_ATTACH 					enum LibraryCallType
	LCT_DETACH 					enum LibraryCallType
	LCT_NEW_CLIENT				enum LibraryCallType
	LCT_NEW_CLIENT_THREAD		enum LibraryCallType
	LCT_CLIENT_THREAD_EXIT		enum LibraryCallType
	LCT_CLIENT_EXIT				enum LibraryCallType

Library: library.def


LineAttr

LineAttr		struct
	LA_colorFlag	ColorFlag CF_INDEX	; RGB or INDEX
	LA_color		RGBValue <0,0,0>	; RGB values or index
	LA_mask			SystemDrawMask		; draw mask
	LA_mapMode		ColorMapMode 		; color map mode
	LA_end			LineEnd				; end type
	LA_join			LineJoin			; join type
	LA_style		LineStyle			; style type
	LA_width		WWFixed				; line width
LineAttr		ends

This structure is used with GrSetLineAttr.

Library: graphics.def


LineEnd

LineEnd	etype byte
	LE_BUTTCAP 			enum LineEnd		; but cap
	LE_ROUNDCAP 		enum LineEnd		; round cap
	LE_SQUARECAP 		enum LineEnd		; square cap

Library: graphics.def


LineFlags

LineFlags		record
	LF_STARTS_PARAGRAPH				:1
	LF_ENDS_PARAGRAPH				:1
	LF_ENDS_IN_CR					:1
	LF_ENDS_IN_COLUMN_BREAK			:1
	LF_ENDS_IN_SECTION_BREAK		:1
	LF_ENDS_IN_NULL					:1
	LF_NEEDS_DRAW					:1
	LF_NEEDS_CALC					:1
	LF_ENDS_IN_AUTO_HYPHEN			:1
	LF_ENDS_IN_OPTIONAL_HYPHEN		:1
	LF_INTERACTS_ABOVE				:1
	LF_INTERACTS_BELOW				:1
	LF_LAST_CHAR_EXTENDS_RIGHT		:1
	LF_LAST_CHAR_KERNED				:1
	LF_CONTAINS_EXTENDED_STYLE		:1
									:1
LineFlags		end

LF_STARTS_PARAGRAPH
Set if line starts a paragraph.

LF_ENDS_PARAGRAPH
Set if line ends a paragraph.

LF_ENDS_IN_CR
Set if field ends in CR.

LF_ENDS_IN_COLUMN_BREAK
Set if line ends in a column break.

LF_ENDS_IN_SECTION_BREAK
Set if line ends in a section break.

LF_ENDS_IN_NULL
Set if line ends in NULL, last one in document.

LF_NEEDS_DRAW
Set if line needs redrawing.

LF_NEEDS_CALC
Set if line needs calculating.

LF_ENDS_IN_AUTO_HYPHEN
Set if line ends in a generated hyphen.

LF_ENDS_IN_OPTIONAL_HYPHEN
Set if line ends in an optional hyphen.

Sometimes characters in a line will extend outside the top and bottom bounds of the line. We mark these lines with these bits.

LF_INTERACTS_ABOVE
Set if line interacts with line above it.

LF_INTERACTS_BELOW
Set if line interacts with line below it.

When doing an optimized redraw of a line we draw the last field in the line if the field got longer. If the field got shorter we just clear from beyond the right edge of the field. There are a few situations where we can’t really do this:

  • Current last character on line extended to the right of its font box. (Italic characters are a good example of this).

  • The last character on the line was negatively kerned before we made the modification and is that is no longer the case (this character was removed).

We flag these two cases separately.

LF_LAST_CHAR_EXTENDS_RIGHT
Set if the last character on the line extends to the right of its font box.

LF_LAST_CHAR_KERNED
Set if the last character on the line is kerned. The only time we use this is to copy it into the next field.

Set by the application if the line contains styles which are not supported directly by the kernel. This allows applications to optimize line redraw by skipping over code which may attempt to draw attributes which don’t exist for the line.

LF_CONTAINS_EXTENDED_STYLE
Set if the line contains a non-kernel supported style.

Library: text.def


LineInfo

LineInfo		struct
	LI_flags			LineFlags
	LI_hgt				WBFixed
	LI_blo				WBFixed
	LI_adjustment		word
	LI_count			WordAndAHalf
	LI_spacePad			WBFixed
	LI_lineEnd			word
	LI_firstField		FieldInfo
LineInfo		ends

LI_flags stores miscellaneous line flags.

LI_hgt stores the height of the line (in points).

LI_blo stores the baseline offset (in points).

LI_adjustment stores the adjustment for justification.

LI_count stores the number of characters in the line. This is the sum of the field counts.

LI_spacePad stores the amount to pad last field to get full justification.

LI_lineEnd stores the rounded end-of-line position which indicates the end of the last non-white-space character.

LI_firstField stores the first field of the line. (At least one field is always present.)

Library: text.def


LineJoin

LineJoin		etype byte
	LJ_MITERED 				enum LineJoin		; miter join
	LJ_ROUND 				enum LineJoin		; round join
	LJ_BEVELED 				enum LineJoin		; beveled join

	LAST_LINE_JOIN_TYPE		= LJ_BEVELED

Library: graphics.def


LineStyle

LineStyle		etype byte
	LS_SOLID 		enum LineStyle		; ___________	(solid)
	LS_DASHED 		enum LineStyle		; _ _ _ _ _ _	(dashed)
	LS_DOTTED 		enum LineStyle		; . . . . . .	(dotted)
	LS_DASHDOT 		enum LineStyle		; _ . _ . _ . 	(dash-dot)
	LS_DASHDDOT 	enum LineStyle		; _ . . _ . .	(dash-double-dot)
LS_CUSTOM 		enum LineStyle

Library: graphics.def


LinkPart

LinkPart		struct
	LP_next			optr
LinkPart		ends

The low bit of the optr is clear to indicate a sibling optr; this bit is set to indicate that the optr links a parent. (If 0, then object is not in a composite.)

Library: Objects/metaC.def


LMemBlockHeader

LMemBlockHeader		struct
	LMBH_handle			hptr
	LMBH_offset			nptr.word
	LMBH_flags			LocalMemoryFlags <>
	LMBH_lmemType		LMemType LMEM_TYPE_GENERAL
	LMBH_blockSize		word
	LMBH_nHandles		word
	LMBH_freeList		lptr
	LMBH_totalFree		word
LMemBlockHeader		ends

This structure is found at the beginning of every block which contains an LMem heap. You can examine any of the fields (after having locked the block) but you should not change any of these fields yourself; they are managed by the LMem routines.

LMBH_handle stores the handle of this block.

LMBH_offset stores the offset from the beginning of the block to the beginning of the heap.

LMBH_flags stores the LocalMemoryFlags which describe the state of the local memory block.

LMBH_lmemType stores the type of LMem heap in use in this block.

LMBH_blockSize stores the total size of the block. This size may change in either direction as a result of chunk allocation and heap compaction.

LMBH_nHandles stores the number of handles available in the chunk handle table. Not all of these chunks are necessarily allocated as owned or free chunks. The table grows automatically when necessary.

LMBH_freeList stores the chunk handle of the first free chunk in the linked list of free chunks.

LMBH_totalFree stores the total amount of free space in the LMem heap.

Library: lmem.def


LMemType

LMemType		etype word
	LMEM_TYPE_GENERAL 				enum LMemType
	LMEM_TYPE_WINDOW 				enum LMemType
	LMEM_TYPE_OBJ_BLOCK 			enum LMemType
	LMEM_TYPE_GSTATE 				enum LMemType
	LMEM_TYPE_FONT_BLK 				enum LMemType
	LMEM_TYPE_GSTRING 				enum LMemType
	LMEM_TYPE_DB_ITEMS				enum LMemType

Library: lmem.def


LocalCmpStringsDosToGeosFlags

LocalCmpStringsDosToGeosFlags				record
										:6
	LCSDTG_NO_CONVERT_STRING_2			:1
	LCSDTGF_NO_CONVERT_STRING_1			:1
LocalCmpStringsDosToGeosFlags				end

Library: localize.def


LocalDistanceFlags

LocalDistanceFlags		record
	LDF_FULL_NAMES				:1
	LDF_PRINT_PLURAL_IF_NEEDED	:1
								:10
	LDF_PASSING_DECIMAL_PLACES	:1		; Internal
	LDF_DECIMAL_PLACES			:1		; Internal
LocalDistanceFlags		end

Library: localize.def


LocalMemoryFlags

LocalMemoryFlags		record
	LMF_HAS_FLAGS		:1		;True if block has a flags block
	LMF_IN_RESOURCE		:1		;True if block is just loaded from resource
	LMF_DETACHABLE		:1		;True if block is detachable
	LMF_DUPLICATED		:1		;True if block created by 
								;ObjDuplicateResource
	LMF_RELOCATED		:1		;True if block is being relocated
	LMF_AUTO_FREE		:1		;Indicates that block may be freed when 
								;in-use count hits 0.
	LMF_IN_LMEM_ALLOC	:1		;EC ONLY -- In the middle of an LMemAlloc,
								; do not try to do a ECLMemValidateHeap.
								;INTERNAL FLAG -- DO NOT MODIFY
	LMF_IS_VM			:1		;True if block is stored in VM file and 
								;should be marked dirty whenever a chunk 
								; is marked dirty.
	LMF_NO_HANDLES		:1		;Block does not have handles (malloc like)
	LMF_NO_ENLARGE		:1		;Do not enlarge block to try to alloc
	LMF_RETURN_ERRORS	:1		;Return errors when allocation impossible
						:1
						:1
	LMF_DEATH_COUNT		:3		;Means nothing if 0, else is # of death
								;methods left which must hit
								;BlockDeathCommon before it will destroy
								;the block. Used by MSG_FREE_DUPLICATE &
								;MSG_REMOVE_BLOCK
LocalMemoryFlags		end

Library: lmem.def


MakeRectVisibleFlags

MakeRectVisibleFlags			record
										:8
	MRVF_ALWAYS_SCROLL					:1
	MRVF_USE_MARGIN_FROM_TOP_LEFT		:1
										:6
MakeRectVisibleFlags			end

MRVF_ALWAYS_SCROLL
Set if we always want to do the scrolling, even if the object is already partly onscreen. Mostly only useful if an object is already barely onscreen and we want to center it.

MRVF_USE_MARGIN_FROM_TOP_LEFT
Ignore current placement of the object; margins are always calculated from the top or left edge of the view, regardless of the original position of the rectangle.

Library: Objects/gViewC.def


MakeRectVisibleMargin

MakeRectVisibleMargin			etype word
	MRVM_0_PERCENT 		enum MakeRectVisibleMargin, 0
	MRVM_25_PERCENT		enum MakeRectVisibleMargin, 0ffffh/4
	MRVM_50_PERCENT		enum MakeRectVisibleMargin, 0ffffh/2
	MRVM_75_PERCENT		enum MakeRectVisibleMargin, 0ffffh*3/4
	MRVM_100_PERCENT	enum MakeRectVisibleMargin, 0ffffh

How far to bring the rectangle onscreen. See comments for each constant. If you need to get more a precise percentage, multiply your percentage by 0ffffh and use that rather than one of these constants.

MRVM_0_PERCENT
Scroll the view just far enough to get the rectangle barely onscreen. If the rectangle is larger than the view, brings as much as possible onscreen. If MRVF_USE_MARGIN_FROM_TOP_LEFT is set, always brings the object to the top or left edge of the screen.

MRVM_25_PERCENT

MRVM_50_PERCENT
Centers the object onscreen.

MRVM_75_PERCENT

MRVM_100_PERCENT
Scrolls the rectangle all the way to the opposite edge of the screen from whence it came. Probably only useful if always using margin from top left, in order to bring something to the bottom edge of the screen.

Library: Objects/gViewC.def


MakeRectVisibleParams

MakeRectVisibleParams			struct
	MRVP_bounds			RectDWord
	MRVP_xMargin		MakeRectVisibleMargin
	MRVP_xFlags			MakeRectVisibleFlags
	MRVP_yMargin		MakeRectVisibleMArgin
	MRVP_yFlags			MakeRectVisibleFlags
MakeRectVisibleParams			ends

MRVP_bounds stores the bounds of the Rectangle to make visible. (This rectangle must be less than 65535 points high or wide.)

MRVP_xMargin stores how far to bring the Rectangle on screen.

Library: Objects/gViewC.def


ManufacturerID

ManufacturerID		etype word
	MANUFACTURER_ID_GEOWORKS		enum ManufacturerID

Library: geode.def


MapListBlockHeader

MapListBlockHeader		struct
	MLBH_base				LMemBlockHeader
	MLBH_numDestFields		word
	MLBH_chunk1				word
MapListBlockHeader		ends

Library: impex.def


MCFeatures

MCFeatures		record
	MCF_LEFT_MARGIN				:1
	MCF_PARA_MARGIN				:1
	MCF_RIGHT_MARGIN			:1
MCFeatures		end

Library: Objects/Text/tCtrlC.def


MCToolboxFeatures

MCToolboxFeatures		record
MCToolboxFeatures		end

Library: Objects/Text/tCtrlC.def


MeasurementType

MeasurementType		etype byte
	MEASURE_US 				enum MeasurementType
	MEASURE_METRIC 			enum MeasurementType

Library: localize.def


MediaType

MediaType		etype byte, 0
	MEDIA_NONEXISTENT		enum MediaType	; used as error value
	MEDIA_160K				enum MediaType
	MEDIA_180K				enum MediaType
	MEDIA_320K				enum MediaType
	MEDIA_360K				enum MediaType
	MEDIA_720K				enum MediaType
	MEDIA_1M2				enum MediaType
	MEDIA_1M44				enum MediaType
	MEDIA_2M88				enum MediaType
	MEDIA_FIXED_DISK		enum MediaType
	MEDIA_CUSTOM			enum MediaType
	MEDIA_SRAM 				enum MediaType
	MEDIA_ATA 				enum MediaType
	MEDIA_FLASH 			enum MediaType

Library: drive.def


MemGetInfoType

MemGetInfoType		etype word, 0, 2
	MGIT_SIZE						enum MemGetInfoType
	MGIT_FLAGS_AND_LOCK_COUNT		enum MemGetInfoType
	MGIT_OWNER_OR_VM_FILE_HANDLE	enum MemGetInfoType
	MGIT_ADDRESS					enum MemGetInfoType
	MGIT_OTHER_INFO					enum MemGetInfoType
	MGIT_EXEC_THREAD				enum MemGetInfoType

Library: heap.def


MenuSepFlags		record
	MSF_SEP				:1
	MSF_USABLE			:1
	MSF_FROM_CHILD		:1
						:5
MenuSepFlags		end

MSF_SEP
When recursing to lower objects in the menu, this is set when there is at least one usable object between this object and the separator drawn above it. When un-recursing (moving up the menu), this is set when there is at least one usable object between this object and the separator drawn below it.

MSF_USABLE
When recursing to lower objects in the menu, this is set when an object has at least one previous sibling which is GS_USABLE.

MSF_FROM_CHILD
Set when message is sent from a child to its visible parent, so the parent can distinguish from the case where it is called from its previous sibling or parent.

Library: Objects/visC.def


MessageError

MessageError		etype word
	MESSAGE_NO_ERROR 		enum MessageError
	MESSAGE_NO_HANDLES		enum MessageError	; short on handles and
												; MF_CAN_DISCARD_IF_DESPERATE
												; was passed

Library: object.def


MessageFlags

MessageFlags		record
	MF_CALL						:1
	MF_FORCE_QUEUE				:1
	MF_STACK					:1
								:1
	MF_CHECK_DUPLICATE			:1
	MF_CHECK_LAST_ONLY			:1
	MF_REPLACE					:1
	MF_CUSTOM					:1
	MF_FIXUP_DS					:1
	MF_FIXUP_ES					:1
	MF_DISCARD_IF_NO_MATCH		:1
	MF_MATCH_ALL				:1
	MF_INSERT_AT_FRONT			:1
	MF_CAN_DISCARD_IF_DESPERATE	:1
	MF_RECORD					:1
								:1
MessageFlags		end

Library: object.def


MetaAlterFTVMCExclFlags

MetaAlterFTVMCExclFlags		record
	MAEF_NOT_HERE				:1
	MAEF_SYS_EXCL				:1
	MAEF_APP_EXCL				:1
	MAEF_GRAB					:1
	MAEF_FOCUS					:1
	MAEF_TARGET					:1
	MAEF_MODEL					:1
								:6
	MAEF_MODAL					:1
	MAEF_OD_IS_WINDOW			:1
	MAEF_OD_IS_MENU_RELATED		:1
MetaAlterFTVMCExclFlags		end

MAEF_NOT_HERE
Overrides all other flags! Set if this request should not be honored here, but instead sent on up the hierarchy with this bit cleared. This bit exists for two reasons:

1) So that nodes can tell the difference between messages coming up from objects below & those requests which it has made for itself, which should be handled by the next node up.

2) Thus allowing MSG_META_MUP_ALTER_FTVMC_EXCL to be sent to the object making the request itself, thereby allowing nodes the freedom to direct the message in directions other than the visual hierarchy, if the next node is not in that direction.

MAEF_SYS_EXCL
Not passed, but this bit as stored in a HierarchicalGrab structure indicates whether the object has a system-wide exclusive.

MAEF_APP_EXCL
Not passed, but this bit as stored in a HierarchicalGrab structure indicates whether the object has an applications-wide exclusive.

MAEF_GRAB
Set to force grab exclusive, clear to release it.

MAEF_FOCUS
Set to grab/release focus.

MAEF_TARGET
Set to grab/release target.

MAEF_MODEL
Set to grab/release model.

MAEF_MODAL
Meaningful for focus grab only - set if object requesting grab is a modal dialog, or a derivative window that happens to have the same focus node above it as the modal dialog (such as a popup menu). If this bit is clear, but the application/field/system etc. is in a modal state, the requesting object’s optr will be saved away, but not granted the focus, until the current modal state within that focus node has been completed.

MAEF_OD_IS_WINDOW
Meaningful for focus grab only-whether object is a windowed object or not.

MAEF_OD_IS_MENU_RELATED
Meaningful for focus grab only-whether object is a specific UI menu-related object

Library: uiInputC.def


MetaBase

MetaBase		struct
	MB_class		fptr.ClassStruct		; Instance's class
MetaBase		ends

This base structure is defined so Esp can build on it for all other classes.

Library: Objects/metaC.def


MinIncrementType

MinIncrementType		union
	MIT_US			MinUSMeasure
	MIT_METRIC		MinMetricMeasure
	MIT_POINT		MinPointMeasure
	MIT_PICA		MinPicaMeasure
MinIncrementType		end

Library: ruler.def


MinMetricMeasure

MinMetricMeasure        etype byte, 0
	MMM_MILLIMETER 				enum	MinMetricMeasure
	MMM_HALF_CENTIMETER 		enum	MinMetricMeasure
	MMM_CENTIMETER 				enum	MinMetricMeasure

Library:


MinPicaMeasure

MinPicaMeasure		etype byte, 0
	MPM_PICA			enum MinPicaMeasure
	MPM_INCH			enum MinPicaMeasure

Library: ruler.def


MinPointMeasure

MinPointMeasure		etype byte, 0
	MPM_25_POINT			enum MinPointMeasure
	MPM_50_POINT			enum MinPointMeasure
	MPM_100_POINT			enum MinPointMeasure

Library: ruler.def


MinUSMeasure

MinUSMeasure		etype byte, 0
	MUSM_EIGHTH_INCH			enum MinUSMeasure
	MUSM_QUARTER_INCH			enum MinUSMeasure
	MUSM_HALF_INCH				enum MinUSMeasure
	MUSM_ONE_INCH				enum MinUSMeasure

Library: ruler.def


MixMode

MixMode	etype byte
	MM_CLEAR 		enum MixMode		; dest <- 0
	MM_COPY 		enum MixMode		; dest <- src
	MM_NOP 			enum MixMode		; dest <- dest
	MM_AND 			enum MixMode		; dest <- src AND dest
	MM_INVERT 		enum MixMode		; dest <- NOT dest
	MM_XOR 			enum MixMode		; dest <- src XOR dest
	MM_SET 			enum MixMode		; dest <- 1
	MM_OR 			enum MixMode		; dest <- src OR dest

	LAST_MIX_MODE	= MM_OR				; last legal draw mode

Library: graphics.def


MonikerGroupEntry

MonikerGroupEntry		struct
	MGE_type		VisMonikerListEntryType
	MGE_group		word
MonikerGroupEntry		ends

Library: token.def


MonikerMessageParams

MonikerMessageParams			struct
	MMP_xInset			word
	MMP_yInset			word
	MMP_xMaximum		word
	MMP_yMaximum		word
	MMP_gState			hptr.GState
	MMP_textHeight		word
	MMP_visMoniker		lptr.VisMoniker
	MMP_monikerFlags	DrawMonikerFlags
MonikerMessageParams			ends

MMP_xInset stores the horizontal inset to the start of where to draw the moniker if top or bottom justifying.

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

MMP_xMaximum and MMP_yMaximum store the maximum size of the moniker. If VMF_CLIP_TO_MAXIMUM_WIDTH is set in the MMP_monikerFlags, the moniker will be clipped to that width.

MMP_gState stores the gstate to use when drawing the moniker. (This gstate is typically passed into MSG_VIS_DRAW).

MMP_textHeight stores the height of the system text, which speeds up many moniker operations. If we happen to know the height of the system text, we should pass it here for speed, or else pass 0.

MMP_visMoniker stores the visual moniker itself. This moniker must be in the same block as the object.

MMP_monikerFlags stores justification information and miscellaneous flags used when drawing the moniker.

Library: Objects/visC.def


MouseGrab

MouseGrab		struct
	MG_OD			optr
	MG_gWin			hptr
MouseGrab		ends

This structure is similar to an ordinary “grab” except it additionally stores the window handle that mouse data should be translated into before sending.

Library: Objects/uiInputC.def


MouseReturnFlags

MouseReturnFlags		record
	MRF_PROCESSED					:1
	MRF_REPLAY						:1
	MRF_PREVENT_PASS_THROUGH		:1
	MRF_SET_POINTER_IMAGE			:1
	MRF_CLEAR_POINTER_IMAGE			:1
									:7
	MRF_INK_RETURN_VALUE			InkReturnValue:4
MouseReturnFlags		end

MRF_PROCESSED
To be set by any non-window objects which have had mouse events passed on down to them. Used by base window to determine if window background was hit, as opposed to any of its children. This should be returned set by any object finding the mouse within its bounds.

MRF_REPLAY
Will cause event to be played through implied grab if the active grab has gone from a valid grab to no grab, in the MSG_META_BUTTON routine which is returning this flag set. Normally used when a gadget releases the grab because the ptr is out of its range, & it wishes to have the event replayed to the implied grab. Note: in a pre passive button handler, this can be returned to cause the event to be re-sent to the pre-passive list.

MRF_PREVENT_PASS_THROUGH
Set by pre-passive button routines only, if event should NOT be passed through to active/implied mouse grab. Any grab in the pre-passive list may set this bit, & the effect will occur.

MRF_SET_POINTER_IMAGE
Causes the PIL_GADGET level cursor to be changed to cx:dx.

MRF_CLEAR_POINTER_IMAGE
Causes the PIL_GADGET level cursor to be reset to the default.

MRF_INK_RETURN_VALUE
This field is only filled in by handlers for MSG_META_QUERY_IF_PRESS_IS_INK.

Library: uiInputC.def

Structures G-G <– Table of Contents    –> Structures N-R