3.8 Structures V-Z


VarDataCHandler

VarDataCHandler     struct
    VDCH_dataType           word
    VDCH_handler            fptr.far
VarDataCHandler     ends

This structure is used as an entry in a class’ vardata handler table. Usually, several of these structures will make up a table. For each entry within this table, specific vardata routines will call the VDCH_handler routine with the VDCH_dataType.

Library: object.def


VarDataEntry

VarDataEntry        struct
    VDE_dataType            word
    VDE_entrySize           word
    VDE_extraData           label byte
VarDataEntry        ends

This structure stores a vardata entry within an object.

VDE_dataType stores the vardata data type, a unique identifier.

VDE_entrySize stores the size of the vardata if it contains extra data; otherwise, this field is left null.

VDE_extraData marks the start of the extra data within the vardata entry.

Library: object.def


VarDataFlags

VarDataFlags        record
                        :14
    VDF_EXTRA_DATA      :1      ; set if data entry has extra data
    VDF_SAVE_TO_STATE   :1      ; set if this data entry should be
                                ; saved to state file
VarDataFlags        end

Library: object.def


VarDataHandler

VarDataHandler      struct
    VDH_dataType        word        ; data type for this handler
    VDH_handler         nptr.far    ; handler routine
VarDataHandler      ends

This structure defines a handler in a VarDataHandlerTable.

Library: object.def


VarGeoData

VarGeoData      struct
    VGD_lineWidth           word
    VGD_centerOffset        word
    VGD_secondWidth         word
VarGeoData      ends

Library: Objects/visC.def


VarObjRelocation

VarObjRelocation        struct
    VOR_type        VarObjRelocationType
    VOR_offset      word
VarObjRelocation        ends

Library: object.def


VarObjRelocationType

VarObjRelocationType            record
    VORT_DATA_TYPE      :14     ; high 14 bits of VarData type constant.
    VORT_RELOC_TYPE     ObjRelocationType:2
VarObjRelocationType            end

Library: object.def


VChar

VChar   etype byte
    VC_NULL             enum VChar, 0x0     ;NULL
    VC_CTRL_A           enum VChar, 0x1     ;<ctrl>-A
    VC_CTRL_B           enum VChar, 0x2     ;<ctrl>-B
    VC_CTRL_C           enum VChar, 0x3     ;<ctrl>-C
    VC_CTRL_D           enum VChar, 0x4     ;<ctrl>-D
    VC_CTRL_E           enum VChar, 0x5     ;<ctrl>-E
    VC_CTRL_F           enum VChar, 0x6     ;<ctrl>-F
    VC_CTRL_G           enum VChar, 0x7     ;<ctrl>-G
    VC_CTRL_H           enum VChar, 0x8     ;<ctrl>-H
    VC_CTRL_I           enum VChar, 0x9     ;<ctrl>-I
    VC_CTRL_J           enum VChar, 0xa     ;<ctrl>-J
    VC_CTRL_K           enum VChar, 0xb     ;<ctrl>-K
    VC_CTRL_L           enum VChar, 0xc     ;<ctrl>-L
    VC_CTRL_M           enum VChar, 0xd     ;<ctrl>-M
    VC_CTRL_N           enum VChar, 0xe     ;<ctrl>-N
    VC_CTRL_O           enum VChar, 0xf     ;<ctrl>-O
    VC_CTRL_P           enum VChar, 0x10    ;<ctrl>-P
    VC_CTRL_Q           enum VChar, 0x11    ;<ctrl>-Q
    VC_CTRL_R           enum VChar, 0x12    ;<ctrl>-R
    VC_CTRL_S           enum VChar, 0x13    ;<ctrl>-S
    VC_CTRL_T           enum VChar, 0x14    ;<ctrl>-T
    VC_CTRL_U           enum VChar, 0x15    ;<ctrl>-U
    VC_CTRL_V           enum VChar, 0x16    ;<ctrl>-V
    VC_CTRL_W           enum VChar, 0x17    ;<ctrl>-W
    VC_CTRL_X           enum VChar, 0x18    ;<ctrl>-X
    VC_CTRL_Y           enum VChar, 0x19    ;<ctrl>-Y
    VC_CTRL_Z           enum VChar, 0x1a    ;<ctrl>-Z
    VC_ESCAPE           enum VChar, 0x1b    ;ESC

    ; Extended keyboard codes -- those normally in ASCII ctrl set
    ; CTRL <key> sequences pressed by user will also be mapped here.

    VC_BACKSPACE        = VC_CTRL_H
    VC_TAB              = VC_CTRL_I
    VC_LF               = VC_CTRL_J
    VC_ENTER            = VC_CTRL_M
    VC_BLANK            enum VChar, 0x20    ;space

    ; Numeric keypad keys

    VC_NUMPAD_ENTER     enum VChar, 0xd     ;* only on PS/2 keyboards
    VC_NUMPAD_DIV       enum VChar, '/'     ;* only on PS/2 keyboards
    VC_NUMPAD_MULT      enum VChar, '*'
    VC_NUMPAD_PLUS      enum VChar, '+'
    VC_NUMPAD_MINUS     enum VChar, '-'
    VC_NUMPAD_PERIOD    enum VChar, '.'
    VC_NUMPAD_0         enum VChar, '0'
    VC_NUMPAD_1         enum VChar, '1'
    VC_NUMPAD_2         enum VChar, '2'
    VC_NUMPAD_3         enum VChar, '3'
    VC_NUMPAD_4         enum VChar, '4'
    VC_NUMPAD_5         enum VChar, '5'
    VC_NUMPAD_6         enum VChar, '6'
    VC_NUMPAD_7         enum VChar, '7'
    VC_NUMPAD_8         enum VChar, '8'
    VC_NUMPAD_9         enum VChar, '9'

    ; Extended keyboard codes -- non-ASCII

    VC_F1               enum VChar, 0x80    ; Function keys
    VC_F2               enum VChar, 0x81
    VC_F3               enum VChar, 0x82
    VC_F4               enum VChar, 0x83
    VC_F5               enum VChar, 0x84
    VC_F6               enum VChar, 0x85
    VC_F7               enum VChar, 0x86
    VC_F8               enum VChar, 0x87
    VC_F9               enum VChar, 0x88
    VC_F10              enum VChar, 0x89
    VC_F11              enum VChar, 0x8a    ;* only on PS/2 keyboards
    VC_F12              enum VChar, 0x8b    ;* only on PS/2 keyboards
    VC_F13              enum VChar, 0x8c    ;* non-standard key
    VC_F14              enum VChar, 0x8d    ;* non-standard key
    VC_F15              enum VChar, 0x8e    ;* non-standard key
    VC_F16              enum VChar, 0x8f    ;* non-standard key

    VC_UP               enum VChar, 0x90    ;Cursor keys
    VC_DOWN             enum VChar, 0x91
    VC_RIGHT            enum VChar, 0x92
    VC_LEFT             enum VChar, 0x93
    VC_HOME             enum VChar, 0x94    ;Scroll commands
    VC_END              enum VChar, 0x95
    VC_PREVIOUS         enum VChar, 0x96
    VC_NEXT             enum VChar, 0x97
    VC_INS              enum VChar, 0x98    ;INS
    VC_DEL              enum VChar, 0x9a    ;DEL

    VC_PRINTSCREEN      enum VChar, 0x9b    ;* from <shift>-NUMPAD_MULT
                                            ;Appears as key only on PS/2
    VC_PAUSE            enum VChar, 0x9c    ;* from <ctrl>-NUMLOCK
                                            ; Appears as key only on PS/2
    VC_BREAK            enum VChar, 0x9e    ;* from <ctrl>- or <alt>-combo
                                            ; with various keys
    VC_SYSTEMRESET      enum VChar, 0x9f    ; <ctrl>-<alt>-<del> combo

    ; Joystick control keys (0xa0 - 0xa9)

    VC_JOYSTICK_0       enum VChar, 0xa0    ; joystick 0 degrees
    VC_JOYSTICK_45      enum VChar, 0xa1    ; joystick 45 degrees
    VC_JOYSTICK_90      enum VChar, 0xa2    ; joystick 90 degrees
    VC_JOYSTICK_135     enum VChar, 0xa3    ; joystick 135 degrees
    VC_JOYSTICK_180     enum VChar, 0xa4    ; joystick 180 degrees
    VC_JOYSTICK_225     enum VChar, 0xa5    ; joystick 225 degrees
    VC_JOYSTICK_270     enum VChar, 0xa6    ; joystick 270 degrees
    VC_JOYSTICK_315     enum VChar, 0xa7    ; joystick 315 degrees
    VC_FIRE_BUTTON_1    enum VChar, 0xa8    ; fire button #1
    VC_FIRE_BUTTON_2    enum VChar, 0xa9    ; fire button #2

    ; Shift Keys (0xe0 - 0xe7)

    VC_LALT             enum VChar, 0xe0
    VC_RALT             enum VChar, 0xe1
    VC_LCTRL            enum VChar, 0xe2
    VC_RCTRL            enum VChar, 0xe3
    VC_LSHIFT           enum VChar, 0xe4
    VC_RSHIFT           enum VChar, 0xe5
    VC_SYSREQ           enum VChar, 0xe6    ; * Not on base PC keyboard.
                                            ; On PS/2 keyboards, is
                                            ; accessed via ALT PRINTSCREEN
    VC_ALT_GR           enum VChar, 0xe7

    ; Toggle state keys (0xe8 - 0xef)

    VC_CAPSLOCK         enum VChar, 0xe8
    VC_NUMLOCK          enum VChar, 0xe9
    VC_SCROLLLOCK       enum VChar, 0xea

    ; Extended state keys (0xf0 - 0xf7)

    ; Invalid key

    VC_INVALID_KEY      enum VChar, 0xff

The previous represent the low byte of the character value only when the high byte is CS_CONTROL.

Library: input.def


VCR_param

VCR_param       struct
    VCR_routine         dword
    VCR_BP_param            word
    VCR_DX_param            word
    VCR_CX_param            word
VCR_param       ends

This structure stores stack parameters used in MSG_VIS_CALL_ROUTINE.

Library: Objects/visC.def


ViewCommandType

ViewCommandType     etype   word
    VCT_ZOOM_IN         enum ViewCommandType    ;no other data
    VCT_ZOOM_OUT        enum ViewCommandType    ;no other data
    VCT_SET_SCALE       enum ViewCommandType    ;data is scale %

Library: ui.def


ViewSize

ViewSize        etype word, 8000h
VS_TYPICAL  enum ViewSize       ;choose size typical of the specific UI
VS_SMALL    enum ViewSize       ;choose a small size
VS_LARGE    enum ViewSize       ;choose a large size

Library: Objects/gViewC.def


ViewTargetInfo

ViewTargetInfo          struct
    VTI_target  TargetReference     ; Final target object within content
    VTI_content TargetReference     ; The content object itself
ViewTargetInfo          ends

Library: Objects/gViewC.def


VisAddRectFlags

VisAddRectFlags     record
    VARF_NOT_IF_ALREADY_INVALID     :1
    VARF_ONLY_REDRAW_MARGINS        :1
    VARF_UPDATE_WILL_HAPPEN         :1
                                    :5
VisAddRectFlags     end

VARF_NOT_IF_ALREADY_INVALID
Don’t invalidate the rectangle if any node going up to the win group has its image or window marked invalid.

VARF_ONLY_REDRAW_MARGINS
This flag indicates that the object is invalidating old bounds, and can optimize invalidation if desired by splitting the message into four, one for each margin, in some cases.

VARF_UPDATE_WILL_HAPPEN
The caller knows of an impending update, so adding the rectangle to the update region rather than invalidating is a reasonable (and fast) thing to do.

Library: Objects/visC.def


VisAddRectParams

VisAddRectParams        struct
    VARP_bounds     Rectangle           ;rect to invalidate
    VARP_flags      VisAddRectFlags
    VARP_unused     byte                ;word align
VisAddRectParams        ends

Library: Objects/visC.def


VisAttrs

VisAttrs    record
    VA_VISIBLE                  :1
    VA_FULLY_ENABLED            :1
    VA_MANAGED                  :1
    VA_DRAWABLE                 :1
    VA_DETECTABLE               :1
    VA_BRANCH_NOT_MINIMIZABLE   :1
    VA_OLD_BOUNDS_SAVED         :1
    VA_REALIZED                 :1
VisAttrs    end

VA_VISIBLE
This attribute is for WIN_GROUP’s only. (Ignored if non-WIN_GROUP object) Set if object may be visually built out, meaning that it is allowed to be linked visually into a composite, and if that composite is realized, then it would be made visible, too.

VA_FULLY_ENABLED
Flag to tell whether a vis object is enabled or not. If cleared visual objects typically don’t allow clicks and are drawn in a 50% pattern, even if they’re not generic. Set by MSG_SPEC_BUILD, MSG_SPEC_NOTIFY_ENABLED, and MSG_SPEC_NOTIFY_NOT_ENABLED in generic objects.

VA_MANAGED
Set if object is managed, that is, space is reserved for it in the composite via the geometry manager. Set if no space should be allocated for it. A message will allow this status to change, & if the window on which this object is placed is realized, then we must have the geometry manager redo the geometry.

VA_DRAWABLE
Set if object is drawn, set if invisible. A message will allow setting of this flag. If the window on which this object resides is realized when this happens, the bounding box of the object will be invalidated on that window.

VA_DETECTABLE
Set if object might respond to mouse, ptr, kbd,etc. data. set if composite shouldn’t bother to send such data onto the child. This bit will only be tested when a composite is passing a message down to its children. Display only objects should have this bit clear. The message allowing changing of this bit will not change any grab in progress on the object. Note that a window composite may not have this bit clear. Basically, we can’t avoid an implied grab to a window.

VA_BRANCH_NOT_MINIMIZABLE
For Generic objects only (Would be a SpecAttrs if room). Used to keep modal windows up on screen even if they are generic children of a primary which is minimized.

VA_OLD_BOUNDS_SAVED
(Would be in optFlags or geoFlags if room). Flag to keep track of whether old bounds have been saved for the object by the geometry manager for use by the invalidation mechanism. Bounds are kept in variable data type VVDT_OLD_BOUNDS.

VA_REALIZED
Set by default VisOpen and VisClose messages to indicate if object is realized (visible within a window) onscreen or not. Is also used to ensure that all objects receive a VisOpen, even if the visible part of the tree has just been added to a branch that is already realized, & then updated - this should all be done in one operation, without delaying the update - and the top object of the branch to be realized should be marked as “WINDOW_INVALID”, even if it is a non-windowed object, as the MSG_UPDATE_WINDOWS will follow the path bits & figure out that the object needs to be sent a MSG_VIS_OPEN. May not be set by MSG_VIS_SET_ATTR.

Library: Objects/visC.def


VisCompGeoAttrs

VisCompGeoAttrs     record
    VCGA_ORIENT_CHILDREN_VERTICALLY         :1
    VCGA_INCLUDE_ENDS_IN_CHILD_SPACING      :1
    VCGA_ALLOW_CHILDREN_TO_WRAP             :1
    VCGA_ONE_PASS_OPTIMIZATION              :1
    VCGA_CUSTOM_MANAGE_CHILDREN             :1
    VCGA_HAS_MINIMUM_SIZE                   :1
    VCGA_WRAP_AFTER_CHILD_COUNT             :1
    VCGA_ONLY_DRAW_IN_MARGINS               :1
VisCompGeoAttrs     end

VCGA_ORIENT_CHILDREN_VERTICALLY
Place the composite’s children vertically, rather than horizontally.

VCGA_INCLUDE_ENDS_IN_CHILD_SPACING
When used with full justification, divides the spacing up so that there is as much space allocated before the first child and after the last child as there are between the children. An example of this is a motif reply bar. When this is clear, there is no space allocated at the ends of the composite.

VCGA_ALLOW_CHILDREN_TO_WRAP
Allows children to wrap if their combined lengths will not allow them to fit inside the bounds of this object’s parent. The composite will keep within the bounds of its parent and wrap the children as necessary. When this is clear, the children will force the composite to be as big as needed to fit the children on one line (unless, of course, the CAN_TRUNCATE_WIDTH_TO_FIT_PARENT flags are set.)

VCGA_ONE_PASS_OPTIMIZATION
This is an optimization which speeds up the geometry manager, only making one pass of sizing the children and using the sum of the sizes as the size of the composite. In order to use this flag, you must be sure that the children don’t want to wrap, and are always one size, regardless of the size of the parent, such as buttons in a horizontal composite.

VCGA_CUSTOM_MANAGE_CHILDREN
Don’t use the geometry manager to manage the children. This allows you to set up the sizes and positions of the children without the need of the geometry manager. If this flag is set, the composite will be default return its current size when asked to calculate its size, like a simple non-composite object.

VCGA_HAS_MINIMUM_SIZE
Geometry manager will send a MSG_VIS_COMP_GET_MIN_SIZE to this object if this flag is set, and always make the composite at least as big as that.

VCGA_WRAP_AFTER_CHILD_COUNT
Used in conjunction with VCGA_ALLOW_CHILDREN_TO_WRAP. If set, composite will wrap after a certain number of children, the number being obtained from a MSG_VIS_COMP_GET_CHILD_WRAP_COUNT.

VCGA_ONLY_DRAWS_IN_MARGINS
This flag can be set by a composite to optimize invalidation. If set, a composite whose image is invalid will only have its margins invalidated. Any visual child below it will have to have its image invalid in order to get invalidated. To get proper invalidations, the composite cannot draw anything inside its margins (that isn’t the color of the background).

Library: Objects/vCompC.def


VisCompGeoDimensionAttrs

VisCompGeoDimensionAttrs            record
    VCGDA_WIDTH_JUSTIFICATION           WidthJustification:2
    VCGDA_EXPAND_WIDTH_TO_FIT_PARENT    :1
    VCGDA_DIVIDE_WIDTH_EQUALLY          :1
    VCGDA_HEIGHT_JUSTIFICATION          HeightJustification:2
    VCGDA_EXPAND_HEIGHT_TO_FIT_PARENT   :1
    VCGDA_DIVIDE_HEIGHT_EQUALLY         :1
VisCompGeoDimensionAttrs            end

VCGDA_WIDTH_JUSTIFICATION
Horizontal justifications for placing the children. Note that horizontal full justification is only meaningful if the composite is oriented horizontally.

VCGDA_EXPAND_WIDTH_TO_FIT_PARENT
Composite will try to expand to fill the available width of the parent. By default, a composite will only be as wide as its children require.

VCGDA_DIVIDE_WIDTH_EQUALLY
Will attempt to divide width equally among its manageable children if oriented horizontally. Does not guarantee that the children can cooperate (the size can only be suggested).

VCGDA_HEIGHT_JUSTIFICATION
Vertical justifications for placing the children. Note that vertical full justification is only meaningful if the composite is oriented vertically.

VCGDA_EXPAND_HEIGHT_TO_FIT_PARENT
Composite will try to expand to fill the available height of the parent. By default, a composite will only be as tall as its children require.

VCGDA_DIVIDE_HEIGHT_EQUALLY
Will attempt to divide height equally among its manageable children if oriented horizontally. Does not guarantee that the children can cooperate (the size can only be suggested).

Library: Objects/vCompC.def


VisCompSpacingMarginsInfo

VisCompSpacingMarginsInfo               record
    VCSMI_USE_THIS_INFO             :1
    VCSMI_LEFT_MARGIN               :3
    VCSMI_TOP_MARGIN                :3
    VCSMI_RIGHT_MARGIN              :3
    VCSMI_BOTTOM_MARGIN             :3
    VCSMI_CHILD_SPACING             :3
VisCompSpacingMarginsInfo               end

VCSMI_USE_THIS_INFO
VisCompCalcNewSize uses this info for the composite’s spacing and margins. If zero, will send MSG_VIS_COMP_GET_CHILD_SPACING and MSG_VIS_COMP_GET_MARGINS to get the information it needs.

VCSMI_LEFT_MARGIN

VCSMI_TOP_MARGIN

VCSMI_RIGHT_MARGIN

VCSMI_BOTTOM_MARGIN
Margins to use when doing geometry, rather than sending a MSG_VIS_COMP_GET_MARGINS.

VCSMI_CHILD_SPACING
Spacing (both between children and between wrapped lines) to use in lieu of MSG_VIS_COMP_GET_CHILD_SPACING.

Library: Objects/vCompC.def


VisContentAttrs

VisContentAttrs     record
    VCNA_SAMW_WIDTH_AS_VIEW                         :1
    VCNA_SAME_HEIGHT_AS_VIEW                        :1
    VCNA_LARGE_DOCUMENT_MODEL                       :1
    VCNA_WINDOW_COORDINATE_MOUSE_EVENTS             :1
    VCNA_ACTIVE_MOUSE_GRAB_REQUIRES_LARGE_EVENTS    :1
    VCNA_VIEW_DOC_BOUNDS_SET_MANUALLY               :1
    VCNA_VIEW_DOES_NOT_WIN_SCROLL                   :1
                                                    :1
VisContentAttrs     end

VCNA_SAME_WIDTH_AS_VIEW
Set if the content’s width should just follow the subview’s window width, if possible. You want to set this if the view is not supposed to be horizontally scrollable.

VCNA_SAME_HEIGHT_AS_VIEW
Set if the content’s height should just follow the subview’s window height, if possible. You want to set this if the view is not supposed to be vertically scrollable.

VCNA_LARGE_DOCUMENT_MODEL
Set if using a large document model, in which this object will be a large (32-bit) VisContent. Effects:

Bounds are larger than the graphics space under this model, so the 16-bit Visible bounds of this object are meaningless. The application must initialize the GenView, or use MSG_GEN_VIEW_SET_DOC_SIZE, to set the view’s document size.

If no active mouse grab: Incoming mouse events are converted into 32-bit LARGE mouse events & sent to the VisContent, where the default handler will send them on to the first visible child, thereby providing correct behavior for the single-child case. Applications having multiple visible layers (32-bit children of VisContents) must intercept these messages & direct them to the correct layer.

MSG_VIS_DRAW is by default sent on to the first visible child, thereby providing correct behavior for the single-child case. Applications having multiple visible layers (32-bit children of VisContents) must intercept this message & direct it to the correct layer(s).

VCNA_WINDOW_COORDINATE_MOUSE_EVENTS
Required if VCNA_LARGE is set. Support for this bit requires a VisContentClass object. Set if the GenView associated with this content has been set up to send mouse events in window coordinates, instead of document coordinates (For either 32-bit support capability or fractional mouse position capability). Indicates that the VisContent will need to convert the coordinates to document coordinates before sending them on. This is done via the equation:

Doc Coords = (Win Coords/Scale Factor) + Doc Origin

VCNA_ACTIVE_MOUSE_GRAB_REQUIRES_LARGE_EVENTS
This bit only used by VisContentClass objects. Set/cleared by MSG_VIS_VUP_ALTER_INPUT_FLOW routine to indicate whether the current mouse grab wishes to receive LARGE mouse events in place of the standard ones. Note that this mechanism may be used even when the bit VCNA_LARGE is not set.

VCNA_VIEW_DOC_BOUNDS_SET_MANUALLY
Not often used, this will prevent the content from automatically sending off its size to the view on geometry updates. The view’s document bounds must be set some other way. Setting VCNA_LARGE_DOCUMENT_MODEL will also cause this behavior.

VCNA_VIEW_DOES_NOT_WIN_SCROLL
Set to indicate that the view does not actually scroll its window, it just sends origin messages to the content when the user interacts with the scrollbar. Visual invalidation will use this flag to invalidate the correct region of the content. Should be set whenever ATTR_GEN_VIEW_DO_NOT_WIN_SCROLL is set in the view.

Library: Objects/vCntC.def


VisGeoAttrs

VisGeoAttrs     record
    ;
    ; Geometry state flags
    ;
    VGA_GEOMETRY_CALCULATED             :1
    VGA_NO_SIZE_HINTS                   :1
    ;
    ; Miscellaneous flags
    ;
    VGA_NOTIFY_GEOMETRY_INVALID         :1
    VGA_DONT_CENTER                     :1
    VGA_USE_VIS_SET_POSITION            :1
    VGA_USE_VIS_CENTER                  :1
    VGA_ONLY_RECALC_SIZE_WHEN_INVALID   :1
    VGA_ALWAYS_RECALC_SIZE              :1
VisGeoAttrs     end

VGA_GEOMETRY_CALCULATED
Set in an after the first time an object’s geometry has been calculated. This is used by the specific UI size hint handlers to figure out whether an initial size hint should be applied to an object or not. This is set at the time an object’s size and position has been completely determined. It can be cleared if need be.

VGA_NO_SIZE_HINTS
Specific attribute only: if set, we have checked to see if the object has one or more of HINT_INITIAL_SIZE, HINT_MINIMUM_SIZE, HINT_MAXIMUM_SIZE, HINT_FIXED_SIZE set, and it doesn’t. We clear this flag if one of the desired size methods are called.

VGA_NOTIFY_GEOMETRY_VALID
If set, geometry manager will notify object when its geometry messages have all been finished and its geometry is valid.

VGA_DONT_CENTER
Allows an object to individually override the parent composite’s centering along its width. Will appear on the top (of a horizontal composite, left edge if vertical) instead.

VGA_USE_VIS_SET_POSITION
All objects that don’t use the default Vis or VisComp handlers for MSG_VIS_SET_POSITION and MSG_VIS_POSITION_BRANCH should set this flag. It’s an optimization that allows static calls to the geometry manager.

VGA_USE_VIS_CENTER
If set, geometry manager uses standard vis or visComp center message to calculate the object’s center.

VGA_ONLY_RECALC_SIZE_WHEN_INVALID
Set this if your object wants its message called the first time after its geometry is invalid, and then always return the current size. Example: buttons in a horizontal composite.

VGA_ALWAYS_RECALC_SIZE
If set, doesn’t do optimizations to calculate the size of this object. May be needed for composites that expand to fit and center their children to match their parent, or some other obscure cases where the size might change from one call to another.

Library: Objects/visC.def


VisInputFlowGrabFlags

VisInputFlowGrabFlags           record
    VIFGF_NOT_HERE      :1
                        :1
    VIFGF_FORCE         :1
    VIFGF_GRAB          :1
    VIFGF_KBD           :1
    VIFGF_MOUSE         :1
    VIFGF_LARGE         :1
    VIFGF_PTR           :1
VisInputFlowGrabFlags           end

VIFGF_NOT_HERE
This flag 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_VIS_VUP_ALTER_INPUT_FLOW 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.

VIFGF_FORCE
If VIFGF_GRAB is set and GrabType = VIFGT_ACTIVE, set to force grab away from current owner, clear if we should leave any current owner alone.

VIFGF_GRAB
Set to grab, clear to release. Note 1: object must be passed in release case as well as grab. Release will not occur unless object matches. Note 2: Only one obj may have the active grab at any one time, whereas any number of objects may add themselves to a passive list.

VIFGF_KBD
Set to grab/release kbd (keyboard).

VIFGF_MOUSE
Set to grab/release mouse.

VIFGF_LARGE
If VIFGF_MOUSE and VIFGF_GRAB: LARGE mouse events requested

VIFGF_PTR
If VIFGF_MOUSE, set if ptr events need to be sent.

Library: Objects/visC.def


VisInputFlowGrabType

VisInputFlowGrabType            etype byte
    VIFGT_ACTIVE            enum VisInputFlowGrabType
    VIFGT_PRE_PASSIVE       enum VisInputFlowGrabType
    VIFGT_POST_PASSIVE      enum VisInputFlowGrabType

Library: Objects/visC.def


VisLargeTextAttrs

VisLargeTextAttrs       record
    VLTA_EXACT_HEIGHT       :1
                            :15
VisLargeTextAttrs       end

Library: Objects/vLTextC.def


VisLargeTextDisplayModes

VisLargeTextDisplayModes            etype word
    VLTDM_PAGE                  enum VisLargeTextDisplayModes
    ;
    ; In page mode the values stored in the region array are used.
    ;
    VLTDM_CONDENSED             enum VisLargeTextDisplayModes
    ;
    ; In condensed mode all text regions are put vertically one after the
    ; other. Calculated fields are:
    ; - VLTRAE_spatialPosition
    ;   The x position is taken from vardata. The y position is the
    ;   sum of the region heights (VLTRAE_size.XYS_height) for all
    ;   preceding regions plus the offset stored in vardata plus the
    ;   page spacing stored in vardata.
    ;
    VLTDM_GALLEY                enum VisLargeTextDisplayModes
    ;
    ; In galley mode all text regions are put vertically one after the
    ; other as in condensed mode, except that the computed heights are
    ; used (so that the regions are jammed right next to each other).
    ; Calculated fields are:
    ; - VLTRAE_spatialPosition
    ;   The x position is taken from vardata. The y position is the
    ;   sum of the region calculated heights (VLTRAE_calcHeight) for all
    ;   preceding regions plus the offset stored in vardata plus the
    ;   page spacing stored in vardata.
    ; - VLTRAE_size.XYS_height
    ;   Taken from VLTRAE_calcHeight when being used to clear
    ;
    VLTDM_DRAFT_WITH_STYLES     enum VisLargeTextDisplayModes
    VLTDM_DRAFT_WITHOUT_STYLES  enum VisLargeTextDisplayModes
    ;
    ; In draft mode all text regions are forced to a standard size and are
    ; then put one after the other as in galley mode. Calculated fields
    ; are:
    ; - VLTRAE_spatialPosition
    ;   Same as galley mode
    ; - VLTRAE_size
    ;   Taken from VTDMD_draftRegionSize
    ; - VLTRAE_region
    ;   Always 0 (rectangular region)

Library: Objects/vLTextC.def


VisLargeTextFlags

VisLargeTextFlags       record
    VLTF_HEIGHT_NOTIFY_PENDING      :1
                                    :15
VisLargeTextFlags       end

Library: Objects/vLTextC.def


VisLargeTextRegionArrayElement

VisLargeTextRegionArrayElement          struct
    VLTRAE_charCount            dword       ;# characters in region
    VLTRAE_lineCount            dword       ;# lines in region
    VLTRAE_section              word        ;section number
    VLTRAE_spatialPosition      PointDWord  ;position (in 32 bit space)
    VLTRAE_size                 XYSize      ;region size
    VLTRAE_calcHeight           WBFixed     ;computed height of text
    VLTRAE_region               dword       ;db item containing region or
                                            ;0 for rectangular
    VLTRAE_flags                VisLargeTextRegionFlags
    VLTRAE_reserved             byte 3 dup (?)
VisLargeTextRegionArrayElement          ends

Library: Objects/vLTextC.def


VisLargeTextRegionFlags

VisLargeTextRegionFlags         record
    VLTRF_ENDED_BY_COLUMN_BREAK     :1
    VLTRF_EMPTY                     :1
                                    :14
VisLargeTextRegionFlags         end

Library: Objects/vLTextC.def


VisMoniker

VisMoniker      struct
    VM_type         VisMonikerType <>
    VM_width        word
    VM_data         label VisMonikerText
VisMoniker      ends

This structure defines a visual moniker. Individual monikers can be combined into a list using a VisMonikerList structure.

VM_type stores the type of vis moniker. The low byte of the record determines whether this is a moniker or a list of monikers.

VM_width stores the cached width of the moniker. This value will be calculated if this entry is null and if VMLET_GSTRING bit is not set. (The cached height is kept with the gstring.)

VM_data stores the start of the visual moniker data. If VMLET_GSTRING bit set in VM_type is set then a VisMonikerGString structure starts here. Otherwise a VisMonikerText structure starts here.

Library: Objects/visC.def


VisMonikerCachedWidth

VisMonikerCachedWidth   record
    VMCW_HINTED             :1 ;If set then low 15 bits are cache info
    VMCW_BERKELEY_9         :7 ;Cached width for Berkeley 9
    VMCW_BERKELEY_10        :8 ;Cached width for Berkeley 10
VisMonikerCachedWidth   end

Library: visC.def


VisMonikerDataType

VisMonikerDataType      etype byte
    VMDT_NULL               enum VisMonikerDataType
    VMDT_VIS_MONIKER        enum VisMonikerDataType
    VMDT_TEXT               enum VisMonikerDataType
    VMDT_GSTRING            enum VisMonikerDataType
    VMDT_TOKEN              enum VisMonikerDataType

VMDT_NULL
Indicates that there is no source. MSG_GEN_REPLACE_VIS_MONIKER will just free current vis moniker. Not valid for MSG_VIS_CREATE_VIS_MONIKER and MSG_GEN_CREATE_VIS_MONIKER. CVMF_source, RVMF_source, CVMF_length, RVMF_length, CVMF_width, CVMF_height, RVMF_width, and RVMF_height are unused.

VMDT_VIS_MONIKER
Indicates that source is a complete VisMoniker structure. CVMF_length and RVMF_length indicate the size of the complete VisMoniker structure. CVMF_width, CVMF_height, RVMF_width, and RVMF_height are unused.

VMDT_TEXT
source is a text string. If null-terminated, CVMF_length and RVMF_length should be zero. Otherwise, CVMF_length and RVMF_length indicate the length of the text string. A VisMoniker structure will be created for the text string. CVMF_width, CVMF_height, RVMF_width, and RVMF_height are unused.

VMDT_GSTRING
Indicates that source is a graphics string. If CVMF_length and RVMF_length are 0, the gstring length will be determined by scanning the graphics string for GR_END_STRING. Otherwise, CVMF_length and RVMF_length indicate the length of the graphics string. CVMF_width, CVMF_height, RVMF_width and RVMF_height indicate the width and height of the graphics string. If either is zero, the width and height will be computed by examining the string. A VisMoniker structure will be created for the graphics string.

VMDT_TOKEN
Indicates that source is a GeodeToken. CVMF_length, RVMF_length, CVMF_width, CVMF_height, RVMF_width, and RVMF_height are unused. The destination object must be usable to use this data type because the specific UI must decide which moniker to choose from the moniker in the Token Database.

Library: Objects/visC.def


VisMonikerGString

VisMonikerGString       struct
    VMGS_height             word        ;cached gstring height
    VMGS_gstring            label byte  ;start of gstring
VisMonikerGString       ends

This structure defines the data at VM_data within a visual moniker if the visual moniker is a graphics string.

Library: Objects/visC.def


VisMonikerListEntry

VisMonikerListEntry         struct
    VMLE_type           VisMonikerListEntryType <>
    VMLE_moniker        optr
VisMonikerListEntry         ends

This structure is used for elements in a VisMonikerList. The list consists of any number of these elements inside a chunk.

VMLE_type stores the type of moniker. This type is used during a moniker search to find a desired moniker.

VMLE_moniker stores the optr of the moniker.

Library: Objects/visC.def


VisMonikerListEntryType

VisMonikerListEntryType             record
                                :2
    VMLET_GS_SIZE               DisplaySize:2
    VMLET_STYLE                 VMStyle:4
    ;
    ; bits below must match VisMonikerType
    ;
    VMLET_MONIKER_LIST          :1
    VMLET_GSTRING               :1
    VMLET_GS_ASPECT_RATIO       DisplayAspectRatio:2
    VMLET_GS_COLOR              DisplayClass:4
VisMonikerListEntryType             end

VMLET_GS_SIZE
If is a GString, size of moniker.

VMLET_STYLE
Style of this moniker

VMLET_MONIKER_LIST
The UIC compiler always sets this if flag, indicating that this record is within a VisMonikerListElement, not the actual VisMoniker itself.

VMLET_GSTRING
TRUE if this moniker is a graphics string VisMonikerGString). If false, this moniker is text (VisMonikerText).

VMLET_GS_ASPECT_RATIO
If is a GString, aspect ratio of GString.

VMLET_GS_COLOR
If is a GString, color requirements of GString.

Library: Objects/visC.def


VisMonikerSearchFlags

VisMonikerSearchFlags           record
    VMSF_STYLE              VMStyle:4
                            :1
    VMSF_COPY_CHUNK         :1
    VMSF_REPLACE_LIST       :1
    VMSF_GSTRING            :1
                            :8          ; Internal use only
VisMonikerSearchFlags           end

VMSF_STYLE Preferred style of moniker

VMSF_COPY_CHUNK True to copy the VisMoniker chunk into the specified object block, if the search is successful, and the moniker is not in that block already.

VMSF_REPLACE_LIST True to replace to VisMonikerList chunk with the VisMoniker, if the search is successful. The idea is that the chunk handle for the list now points to the moniker.

VMSF_GSTRING True if a gstring moniker is expected (i.e. a VisMonikerGString), false if a text moniker is expected (i.e. a VisMonikerText).

Library: Objects/visC.def


VisMonikerSourceType

VisMonikerSourceType            etype byte
    VMST_FPTR           enum VisMonikerSourceType
    VMST_OPTR           enum VisMonikerSourceType
    VMST_HPTR           enum VisMonikerSourceType

VMST_FPTR
Indicates source is referenced by a fptr. CVMF_source and RVMF_source fields are a fptr.

VMST_OPTR
Indicates source is referenced by a optr. CVMF_source and RVMF_source fields are an optr.

VMST_HPTR
Indicates source is referenced by a hptr and offset. CVMF_source and RVMF_source fields are a hptr and offset within the block.

Library: Objects/visC.def


VisMonikerText

VisMonikerText          struct
    VMT_mnemonicOffset      byte            ;offset to mnemonic, -1 if none
    VMT_text                label byte      ;start of null-terminated text
VisMonikerText          ends

This structure defines the data at VM_data within a VisMoniker for text monikers.

Library: Objects/visC.def


VisMonikerType

VisMonikerType      record
    VMT_MONIKER_LIST        :1
    VMT_GSTRING             :1
    VMT_GS_ASPECT_RATIO     DisplayAspectRatio:2
    VMT_GS_COLOR            DisplayClass:4
    VisMonikerType      end

VMT_MONIKER_LIST
The UIC compiler always clears this flag, indicating that this record is within a VisMoniker.

VMT_GSTRING
True if this moniker is a graphics string (VisMonikerGString). If false, this moniker is text (VisMonikerText).

VMT_GS_ASPECT_RATIO
If is a GString, aspect ratio of moniker.

VMT_GS_COLOR
Color requirements of GString.

Library: Objects/visC.def


VisMouseGrab

VisMouseGrab        struct
    VMG_object          optr
    VMG_gWin            hptr.Window <>
    VMG_translation     PointDWord
    VMG_flags           VisInputFlowGrabFlags
    VMG_unused          byte
VisMouseGrab        ends

This structure stores data associated with an object requesting a mouse grab. This structure is filled in by the handler for MSG_VIS_VUP_ALTER_INPUT_FLOW.

VMG_object stores the optr of the object having the mouse grab.

VMG_gWin stores the handle of the window that the object having grab resides in, or 0 if in same window as the VisContent.

VMG_translation stores the 32 bit translation to use for the grab, set by the handler for MSG_VIS_VUP_ALTER_INPUT_FLOW. This 32-bit translation, passed in VAIFD_translation in the above message, is set by large visible objects subclassing the message. Mouse event positions are adjusted by this amount before being sent out.

Library: Objects/vCntC.def


VisOptFlags

VisOptFlags         record
    VOF_GEOMETRY_INVALID        :1
    VOF_GEO_UPDATE_PATH         :1
    VOF_IMAGE_INVALID           :1
    VOF_IMAGE_UPDATE_PATH       :1
    VOF_WINDOW_INVALID          :1
    VOF_WINDOW_UPDATE_PATH      :1
    VOF_UPDATE_PENDING          :1
    VOF_UPDATING                :1
VisOptFlags         end

VOF_GEOMETRY_INVALID
Set by MSG_VIS_MARK_INVALID, which, if followed by a MSG_VIS_VUP_UPDATE_WIN_GROUP will insure that changes in the object bounds will be reflected in the window.

VOF_GEO_UPDATE_PATH
Set by MSG_VIS_MARK_INVALID to leave a trail to objects that have invalid geometry, for UPDATE_GEOMETRY to follow.

VOF_IMAGE_INVALID
Set by MSG_VIS_MARK_INVALID, which, if followed by a MSG_VIS_VUP_UPDATE_WIN_GROUP will insure that visual changes in the object will be reflected in the window.

VOF_IMAGE_UPDATE_PATH
Set by MSG_VIS_MARK_INVALID to leave a trail to objects that have invalid geometry, for UPDATE_WINDOWS_AND_IMAGE to follow.

VOF_WINDOW_INVALID
Set by MSG_VIS_MARK_INVALID, which, if followed by a MSG_VIS_VUP_UPDATE_WIN_GROUP will insure that changes in the window’s view will be reflected in the window. (valid for windows only)

VOF_WINDOW_UPDATE_PATH
Set by MSG_VIS_MARK_INVALID to leave a trail to windows that have invalid views, for UPDATE_WINDOWS_AND_IMAGE to follow. (valid for composites only).

VOF_UPDATE_PENDING
Used for Group windows only, indicates that a MSG_VIS_UPDATE_WIN_GROUP is still in the UI event queue for this window, and hasn’t arrived yet.

VOF_UPDATING
Set while updating visible branch, so we can give an error if we get into a nested update situation. Also may be useful for knowing how to update an object.

Library: Objects/visC.def


VisRulerAttributes

VisRulerAttributes      record
    VRA_IGNORE_ORIGIN       :1
    VRA_SHOW_GUIDES         :1
    VRA_SHOW_GRID           :1
    VRA_SHOW_MOUSE          :1
    VRA_HORIZONTAL          :1
    VRA_MASTER              :1
                            :2
VisRulerAttributes      end

Library: ruler.def


VisRulerConstrainStrategy

VisRulerConstrainStrategy               record
    VRCS_OVERRIDE                                   :1
                                                    :1
    VRCS_SET_REFERENCE                              :1
    VRCS_SNAP_TO_GRID_X_ABSOLUTE                    :1
    VRCS_SNAP_TO_GRID_Y_ABSOLUTE                    :1
    VRCS_SNAP_TO_GRID_X_RELATIVE                    :1
    VRCS_SNAP_TO_GRID_Y_RELATIVE                    :1
    VRCS_SNAP_TO_GUIDES_X                           :1
    VRCS_SNAP_TO_GUIDES_Y                           :1
    VRCS_CONSTRAIN_TO_HORIZONTAL_AXIS               :1
    VRCS_CONSTRAIN_TO_VERTICAL_AXIS                 :1
    VRCS_CONSTRAIN_TO_UNITY_SLOPE_AXIS              :1
    VRCS_CONSTRAIN_TO_NEGATIVE_UNITY_SLOPE_AXIS     :1
    VRCS_CONSTRAIN_TO_VECTOR                        :1
    VRCS_CONSTRAIN_TO_VECTOR_REFLECTION             :1
    VRCS_INTERNAL                                   :1
VisRulerConstrainStrategy               end

Library: ruler.def


VisRulerNotifyGuideChangeBlockHeader

VisRulerNotifyGuideChangeBlockHeader    struct
    VRNGCBH_header                  LMemBlockHeader
    VRNGCBH_vertGuideArray          word
    VRNGCBH_horizGuideArray         word
VisRulerNotifyGuideChangeBlockHeader    ends

Library: ruler.def


VisRulerType

VisRulerType        etype byte, 0
    VRT_INCHES          enum VisRulerType
    VRT_CENTIMETERS     enum VisRulerType
    VRT_POINTS          enum VisRulerType
    VRT_PICAS           enum VisRulerType
    VRT_CUSTOM          enum VisRulerType, 0xfd     ;custom ruler definition
    VRT_NONE            enum VisRulerType, 0xfe     ;no rulers
    VRT_DEFAULT         enum VisRulerType, 0xff     ;use system default

Library: ruler.def


VisTextAddNameParams

VisTextAddNameParams            struct
    VTANP_name          fptr.char       ; pointer to name
    VTANP_size          word            ; length of name (0 if null-terminated)
    VTANP_flags         NameArrayAddFlags
    VTANP_data          VisTextNameData
VisTextAddNameParams            ends

Library: Objects/vTextC.def


VisTextCachedRunInfo

VisTextCachedRunInfo            struct
    VTCRI_lastCharAttrRun           dword
    VTCRI_lastParaAttrRun           dword
    VTCRI_lastTypeRun               dword
    VTCRI_lastGraphicRun            dword
VisTextCachedRunInfo            ends

Library: Objects/vTextC.def


VisTextCachedUndoInfo

VisTextCachedUndoInfo           struct
    VTCUI_vmChain           dword
    VTCUI_file              hptr
VisTextCachedUndoInfo           ends

Library: Objects/vTextC.def


VisTextCharAttr

VisTextCharAttr     struct
    VTCA_meta               StyleSheetElementHeader
    VTCA_fontID             FontID
    VTCA_pointSize          WBFixed
    VTCA_textStyles         TextStyle
    VTCA_color              ColorQuad
    VTCA_trackKerning       sword
    VTCA_fontWeight         byte
    VTCA_fontWidth          byte
    VTCA_extendedStyles     VisTextExtendedStyles
    VTCA_grayScreen         SystemDrawMask          ; foreground gray screen
    VTCA_pattern            GraphicPattern          ; Foreground pattern
    VTCA_bgColor            ColorQuad               ; Background color
    VTCA_bgGrayScreen       SystemDrawMask          ; Background gray screen
    VTCA_bgPattern          GraphicPattern          ; Background pattern
    VTCA_reserved           byte 7 dup (0)
VisTextCharAttr     ends

Library: Objects/Text/tCommon.def


VisTextCharAttrDiffs

VisTextCharAttrDiffs            struct
    VTCAD_diffs             VisTextCharAttrFlags
    VTCAD_extendedStyles    VisTextExtendedStyles
    VTCAD_textStyles        TextStyle
    even
VisTextCharAttrDiffs            ends

Library: Objects/vTextC.def


VisTextCharAttrFlags

VisTextCharAttrFlags            record
    VTCAF_MULTIPLE_FONT_IDS         :1  ;Set if more than one font
    VTCAF_MULTIPLE_POINT_SIZES      :1  ;Set if more than one point size
    VTCAF_MULTIPLE_COLORS           :1  ;Set if more than one color
    VTCAF_MULTIPLE_GRAY_SCREENS     :1  ;Set if more than one gray screen
    VTCAF_MULTIPLE_PATTERNS         :1  ;Set if more than one hatch
    VTCAF_MULTIPLE_TRACK_KERNINGS   :1  ;Set if more than 
                                        ; one track kerning
    VTCAF_MULTIPLE_FONT_WEIGHTS     :1  ;Set if more than one font weight
    VTCAF_MULTIPLE_FONT_WIDTHS      :1  ;Set if more than one font width
    VTCAF_MULTIPLE_BG_COLORS        :1  ;Set if more than one bg color
    VTCAF_MULTIPLE_BG_GRAY_SCREENS  :1  ;Set if more than one bg gray screen
    VTCAF_MULTIPLE_BG_PATTERNS      :1  ;Set if more than one bg hatch
    VTCAF_MULTIPLE_STYLES           :1  ;Set if more than one (ssheet) style
                                    :4
VisTextCharAttrFlags            end

Library: Objects/vTextC.def


VisTextClearAllTabsParams

VisTextClearAllTabsParams               struct
    VTCATP_range            VisTextRange
VisTextClearAllTabsParams               ends

Library: Objects/vTextC.def


VisTextClearTabParams

VisTextClearTabParams           struct
    VTCTP_range         VisTextRange
    VTCTP_position      word            ; In units of points * 8
VisTextClearTabParams           ends

Library: Objects/vTextC.def


VisTextContextType

VisTextContextType      etype byte
    VTCT_TEXT               enum VisTextContextType
    VTCT_CATEGORY           enum VisTextContextType
    VTCT_QUESTION           enum VisTextContextType
    VTCT_ANSWER             enum VisTextContextType
    VTCT_DEFINITION         enum VisTextContextType
    VTCT_FILE               enum VisTextContextType, 255

Library: Objects/vTextC.def


VisTextCursorPositionChange

VisTextCursorPositionChange     struct
    VTCPC_lineNumber        dword
    VTCPC_rowNumber         dword
VisTextCursorPositionChange     ends

Library: Objects/vTextC.def


VisTextCustomFilterData

VisTextCustomFilterData         struct
    VTCFD_startOfRange              word
    VTCFD_endOfRange                word
VisTextCustomFilterData         ends

Library: Objects/vTextC.def


VisTextDefaultCharAttr

VisTextDefaultCharAttr          record
    VTDCA_UNDERLINE     :1
    VTDCA_BOLD          :1
    VTDCA_ITALIC        :1
                        :1
    VTDCA_COLOR         Color:4
    VTDCA_SIZE          VisTextDefaultSize:3
    VTDCA_FONT          VisTextDefaultFont:5
VisTextDefaultCharAttr          end

Library: Objects/Text/tCommon.def


VisTextDefaultDefaultTab

VisTextDefaultDefaultTab            etype byte
    VTDDT_NONE          enum VisTextDefaultDefaultTab
    VTDDT_HALF_INCH     enum VisTextDefaultDefaultTab
    VTDDT_INCH          enum VisTextDefaultDefaultTab
    VTDDT_CENTIMETER    enum VisTextDefaultDefaultTab

Library: Objects/Text/tCommon.def


VisTextDefaultFont

VisTextDefaultFont      etype byte
    VTDF_BERKELEY               enum VisTextDefaultFont ;Bitmap font
    VTDF_CHICAGO                enum VisTextDefaultFont ;Bitmap font
    VTDF_BISON                  enum VisTextDefaultFont ;Bitmap font
    VTDF_WINDOWS                enum VisTextDefaultFont ;Bitmap font
    VTDF_LED                    enum VisTextDefaultFont ;Bitmap font
    VTDF_ROMA                   enum VisTextDefaultFont ;Bitmap font
    VTDF_UNIVERSITY             enum VisTextDefaultFont ;Bitmap font

    VTDF_URW_ROMAN              enum VisTextDefaultFont ;Nimbus-Q font
    VTDF_URW_SANS               enum VisTextDefaultFont ;Nimbus-Q font
    VTDF_URW_MONO               enum VisTextDefaultFont ;Nimbus-Q font
    VTDF_URW_SYMBOLPS           enum VisTextDefaultFont ;Nimbus-Q font
    VTDF_CENTURY_SCHOOLBOOK     enum VisTextDefaultFont ;Nimbus-Q font

Library: Objects/Text/tCommon.def


VisTextDefaultParaAttr

VisTextDefaultParaAttr          record
    VTDPA_JUSTIFICATION     Justification:2
    VTDPA_DEFAULT_TABS      VisTextDefaultDefaultTab:2
    VTDPA_LEFT_MARGIN       :4          ;In units of half inches
    VTDPA_PARA_MARGIN       :4          ;In units of half inches
    VTDPA_RIGHT_MARGIN      :4          ;In units of half inches -- 0 means
                                        ;VIS_TEXT_MAX_PARA_ATTR_SIZE
VisTextDefaultParaAttr          end

Library: Objects/Text/tCommon.def


VisTextDefaultSize

VisTextDefaultSize      etype byte
    VTDS_8      enum VisTextDefaultSize
    VTDS_9      enum VisTextDefaultSize
    VTDS_10     enum VisTextDefaultSize
    VTDS_12     enum VisTextDefaultSize
    VTDS_14     enum VisTextDefaultSize
    VTDS_18     enum VisTextDefaultSize
    VTDS_24     enum VisTextDefaultSize
    VTDS_36     enum VisTextDefaultSize

Library: Objects/Text/tCommon.def


VisTextDropCapInfo

VisTextDropCapInfo          record
    VTDCI_CHAR_COUNT    :4 = 1-1    ; # characters for drop cap charAttr
    VTDCI_LINE_COUNT    :4 = 3-1    ; # lines for drop cap
    VTDCI_POSITION      :4 = 1-1    ; 0 is full drop cap
                                    ; lineCount-1 is full tall cap
                        :4
VisTextDropCapInfo          end

Library: Objects/Text/tCommon.def


VisTextExtendedFilterType

VisTextExtendedFilterType               etype byte
    VTEFT_REPLACE_PARAMS            enum VisTextExtendedFilterType
    VTEFT_CHARACTER_LEVELER_LEVEL   enum VisTextExtendedFilterType
    VTEFT_BEFORE_AFTER              enum VisTextExtendedFilterType

VTEFT_REPLACE_PARAMS
This causes MSG_VIS_TEXT_FILTER_VIA_REPLACE_PARAMS to be sent.

VTEFT_CHARACTER_LEVELER_LEVEL
This causes MSG_VIS_TEXT_FILTER_VIA_CHARACTER to be sent.

VTEFT_BEFORE_AFTER
This causes MSG_VIS_TEXT_FILTER_VIA_BEFORE_AFTER to be sent.

Library: Objects/vTextC.def


VisTextExtendedStyles

VisTextExtendedStyles           record
    VTES_BOXED              :1
    VTES_BUTTON             :1
    VTES_INDEX              :1      ; text should be indexed
    VTES_ALL_CAP            :1
    VTES_SMALL_CAP          :1
    VTES_HIDDEN             :1
    VTES_CHANGE_BAR         :1
    VTES_BACKGROUND_COLOR   :1
                            :8
VisTextExtendedStyles           end

Library: Objects/Text/tCommon.def


VisTextFeatures

VisTextFeatures     record
    VTF_NO_WORD_WRAPPING            :1  ; Set: no word-wrapping is desired.
    VTF_AUTO_HYPHENATE              :1  ; Set: if we want to auto hyphenate.
    VTF_ALLOW_SMART_QUOTES          :1  ; Set: allows smart quotes if they 
                                        ; are enabled.
    VTF_ALLOW_UNDO                  :1  ; Set: allows undo in this object
    VTF_SHOW_HIDDEN_TEXT            :1  ; Set: Show text marked as hidden
                                        ; *** Not implemented ***
    VTF_OUTLINE_MODE                :1  ; Set: show text in outline mode
                                        ; *** Not implemented ***
    VTF_DONT_SHOW_SOFT_PAGE_BREAKS  :1  ; Set: don't display soft (non
                                        ; C_PAGE_BREAK) page breaks
                                        ; *** Not implemented ***
    VTF_DONT_SHOW_GRAPHICS          :1  ; Draw graphics as gray rectangles
                                        ; *** Not implemented ***
    VTF_TRANSPARENT                 :1  ; Set: don't use wash color on DRAW
    VTF_USE_50_PCT_TEXT_MASK        :1  ; Set: force 50% draw mask for  
                                        ; drawing, ignoring char attr runs. 
                                        ; Used by specific GenText objects.
                                    :6
VisTextFeatures     end

Library: Objects/vTextC.def


VisTextFilters

VisTextFilters      record
    VTF_NO_SPACES       :1          ;no spaces allowed
    VTF_NO_TABS         :1          ;no tabs
    VTF_UPCASE_CHARS    :1          ;make uppercase
    VTF_FILTER_CLASS    VisTextFilterClass:5    ;filter classes
                                    ;(keep in low bits!)
VisTextFilters      end

Library: Objects/vTextC.def


VisTextFilterClass

VisTextFilterClass      etype byte
    VTFC_NO_FILTER              enum VisTextFilterClass ;no filter
    VTFC_ALPHA                  enum VisTextFilterClass ;alpha chars only
    VTFC_NUMERIC                enum VisTextFilterClass ;numeric only
    VTFC_SIGNED_NUMERIC         enum VisTextFilterClass ;signed numeric
    VTFC_SIGNED_DECIMAL         enum VisTextFilterClass ;numeric, with decimal
    VTFC_FLOAT_DECIMAL          enum VisTextFilterClass ;numeric,decimal,e,E
    VTFC_ALPHA_NUMERIC          enum VisTextFilterClass ;alphanumeric
    VTFC_FILENAMES              enum VisTextFilterClass ;legal PCGEOS filenames
    VTFC_DOS_FILENAMES          enum VisTextFilterClass ;legal DOS filenames
    VTFC_DOS_PATH               enum VisTextFilterClass ;legal DOS path
    VTFC_DATE                   enum VisTextFilterClass ;legal date
    VTFC_TIME                   enum VisTextFilterClass ;legal time
    VTFC_DASHED_ALPHA_NUMERIC   enum VisTextFilterClass ;alphanumeric plus '-'
    VTFC_NORMAL_ASCII           enum VisTextFilterClass ;normal ascii chars
    VTFC_DOS_VOLUME_NAMES       enum VisTextFilterClass ;legal DOS volume names
    VTFC_DOS_CHARACTER_SET      enum VisTextFilterClass ;DOS character set
    VTFC_ALLOW_COLUMN_BREAKS    enum VisTextFilterClass ;Allow column-breaks

Library: Objects/vTextC.def


VisTextFindNameParams

VisTextFindNameParams           struct
    VTFNP_name      fptr.char           ; pointer to name to find
    VTFNP_size      word                ; length of name (0 if null-terminated)
    VTFNP_data      fptr.VisTextNameData ; buffer for data (0 if none)
VisTextFindNameParams           ends

This structure is passed with MSG_VIS_TEXT_FIND_NAME.

Library: Objects/vTextC.def


VisTextFollowHyperlinkParams

VisTextFollowHyperlinkParams                struct
    VTFHLP_range    VisTextRange    ; range of characters in the selection
VisTextFollowHyperlinkParams                ends

Library: Objects/vTextC.def


VisTextGenerateNotifyParams

VisTextGenerateNotifyParams             struct
    VTGNP_notificationTypes     VisTextNotificationFlags
    VTGNP_sendFlags             VisTextNotifySendFlags
    VTGNP_notificationBlocks    hptr 16 dup (?)
VisTextGenerateNotifyParams             ends

Library: Objects/vTextC.def


VisTextGetAttrFlags

VisTextGetAttrFlags         record
    VTGAF_MERGE_WITH_PASSED     :1  ;If set then merge the attributes for
                                    ;this object with the passed attributes
                                :15
VisTextGetAttrFlags         end

Library: Objects/vTextC.def


VisTextGetAttrParams

VisTextGetAttrParams            struct
    VTGAP_range     VisTextRange
    VTGAP_attr      fptr                ; attribute structure
    VTGAP_return    fptr                ; diff structure
    VTGAP_flags     VisTextGetAttrFlags
VisTextGetAttrParams            ends

Library: Objects/vTextC.def


VisTextGetGraphicAtPositionParams

VisTextGetGraphicAtPositionParams                   struct
    VTGGAPP_position                dword
    VTGGAPP_retPtr                  fptr.VisTextGraphic
VisTextGetGraphicAtPositionParams                   ends

Library: Objects/vTextC.def


VisTextGetLineInfoParameters

VisTextGetLineInfoParameters                struct
    VTGLIP_buffer   fptr.LineInfo   ;pointer to buffer to store results
    VTGLIP_bsize    word            ; size of buffer
    VTGLIP_line     dword           ; specific line that we're interested in
VisTextGetLineInfoParameters                ends

This structure is passed with MSG_VIS_TEXT_GET_LINE_INFO. That method fills in the buffer specified by VTGLIP_buffer with a LineInfo structure followed by a variable number of FieldInfo structures.

Library: Objects/vTextC.def


VisTextGetLineOffsetAndFlagsParameters

VisTextGetLineOffsetAndFlagsParameters struct
    VTGLOAFP_line       dword           ; line to get information about
    ;
    ; The following entries are filled in by the handler for 
    ; MSG_VIS_TEXT_GET_LINE_OFFSET_AND_FLAGS.
    ;
    VTGLOAFP_offset     dword           ; offset to line start
    VTGLOAFP_flags      LineFlags       ; LineFlags
VisTextGetLineOffsetAndFlagsParameters ends

Library: Objects/vTextC.def


VisTextGetRunBoundsParams

VisTextGetRunBoundsParams       struct
    VTGRBP_position dword               ; Position to check for run around
    VTGRBP_type     word                ; Run offset
    VTGRBP_retVal   fptr.VisTextRange   ; Ptr to VisTextRange to fill 
                                        ; in with the bounds of the run
VisTextGetRunBoundsParams       ends

Library: Objects/vTextC.def


VisTextGetTextRangeFlags

VisTextGetTextRangeFlags            record
    VTGTRF_ALLOCATE         :1
    VTGTRF_ALLOCATE_ALWAYS  :1
    VTGTRF_RESIZE_DEST      :1
                            :5
VisTextGetTextRangeFlags            end

VTGTRF_ALLOCATE
If set, requests that the destination be allocated. Otherwise, use destination provided

VTGTRF_ALLOCATE_ALWAYS
If set, asks that destination be allocated even if there is no text to copy.

VTGTRF_RESIZE_DEST
If set, will resize the destination (if possible) so that it is just large enough to hold the text and no larger.

Library: Objects/vTextC.def


VisTextGetTextRangeParameters

VisTextGetTextRangeParameters                   struct
    VTGTRP_range            VisTextRange        ; range to get
    VTGTRP_textReference    TextReference       ; Reference to the text
    VTGTRP_flags            VisTextGetTextRangeFlags
    align                   word
VisTextGetTextRangeParameters                   ends

Library: Objects/vTextC.def


VisTextGraphic

VisTextGraphic          struct
    VTG_meta        RefElementHeader        ; basic element header
    VTG_vmChain     dword
    VTG_size        XYSizeis var
    VTG_type        VisTextGraphicType
    VTG_flags       VisTextGraphicFlags
    VTG_reserved    byte 4 dup (?)
    VTG_data        VisTextGraphicData
VisTextGraphic          ends

This structure defines a text graphic element.

VTG_vmChain stores a dword value to pass to VMChain routines. If only the low word is zero, then the high word is a VM handle. If both words are non-zero, the dword specifies a DB item; the high word specifies the DB group, the low word specifies the DB item itself. If the high word is zero, then the low word is an LMemChunk. If both words are zero, then there is no data.

VTG_size stores the size of the graphic. If this value is zero, then the graphic’s size is determined dynamically.

Library: Objects/vTextC.def


VisTextGraphicData

VisTextGraphicData          union
    VTGD_gstring        VisTextGraphicGString
    VTGD_variable       VisTextGraphicVariable
    VTGD_opaque         VisTextGraphicOpaque
VisTextGraphicData          end

Library: Objects/vTextC.def


VisTextGraphicFlags

VisTextGraphicFlags     record
    VTGF_DRAW_FROM_BASELINE :1  ;If set then draw from baseline else
                                ;draw from top
    VTGF_HANDLES_POINTER    :1  ;Graphic can deal with pointer messages
                            :14
VisTextGraphicFlags     end

Library: Objects/vTextC.def


VisTextGraphicGString

VisTextGraphicGString           struct
    VTGG_tmatrix            TransMatrix
    VTGG_drawOffset         XYOffset
VisTextGraphicGString           ends

Library: Objects/vTextC.def


VisTextGraphicType

VisTextGraphicType      etype byte
    VTGT_GSTRING            enum VisTextGraphicType
    VTGT_VARIABLE           enum VisTextGraphicType

Library: Objects/vTextC.def


VisTextGraphicVariable

VisTextGraphicVariable          struct
    VTGV_manufacturerID ManufacturerID
    VTGV_type           VisTextVariableType
    VTGV_privateData    byte (VIS_TEXT_GRAPHIC_OPAQUE_SIZE-4) dup (?)
VisTextGraphicVariable          ends

Library: Objects/vTextC.def


VisTextHWRFlags

VisTextHWRFlags     record
    VTHWRF_NO_CONTEXT               :1
    VTHWRF_USE_PASSED_CONTEXT       :1
                                    :14
VisTextHWRFlags     end

VTHWRF_NO_CONTEXT
This is sent when the ink is being quick-copied to the object, or in other cases where the user did not draw the ink on top of the object, and so the position of the object is not useful information for the recognizer.

Library:


VisTextHyphenationInfo

VisTextHyphenationInfo          record
    VTHI_HYPHEN_MAX_LINES           :4 = 3-1
    VTHI_HYPHEN_SHORTEST_WORD       :4 = 5-1
    VTHI_HYPHEN_SHORTEST_PREFIX     :4 = 3-1
    VTHI_HYPHEN_SHORTEST_SUFFIX     :4 = 3-1
VisTextHyphenationInfo          end

Library: Objects/Text/tCommon.def


VisTextIntFlags

VisTextIntFlags     record
    VTIF_HAS_LINES              :1  ;Object has valid line structures.
    VTIF_SUSPENDED              :1  ;Set if calculation suspended
    VTIF_UPDATE_PENDING         :1  ;Update is about to be delivered.
    VTIF_ACTIVE_SEARCH_SPELL    ActiveSearchSpellType:2
                                    ;Set if a search/spell session is in 
                                    ;progress.
    VTIF_HILITED                :1  ;Set: We have drawn the hilite.
    VTIF_ADJUST_TYPE            AdjustType:2
                                    ; How to adjust the selection.
VisTextIntFlags     end

Library: Objects/vTextC.def


VisTextIntSelFlags

VisTextIntSelFlags      record
    VTISF_IS_TARGET             :1  ; Set if the object is the target.
    VTISF_IS_FOCUS              :1  ; Set if the object is the focus.
    VTISF_CURSOR_ON             :1  ; Set if the cursor is drawn.
    VTISF_CURSOR_ENABLED        :1  ; Set if the cursor is enabled.
    VTISF_DOING_SELECTION       :1  ; Set if we are doing some selection.
                                    ; (Basically if the mouse is down).
    VTISF_DOING_DRAG_SELECTION  :1  ; Set if we have positioned the cursor.
                                    ; (also doubles as flag that indicates
                                    ; we are doing quick-transfer feedback)
    VTISF_SELECTION_TYPE        SelectionType:2
VisTextIntSelFlags      end

Library: Objects/vTextC.def


VisTextKeepInfo

VisTextKeepInfo     record
    VTKI_TOP_LINES      :4      ; # lines at start of PP to keep together
    VTKI_BOTTOM_LINES   :4      ; # lines at end of PP to keep together
VisTextKeepInfo     end

Library: Objects/Text/tCommon.def


VisTextKeyFunction

VisTextKeyFunction      etype word, 0, 6
    VTKF_FORWARD_LINE                       enum    VisTextKeyFunction
    VTKF_BACKWARD_LINE                      enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_FORWARD_LINE         enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_BACKWARD_LINE        enum    VisTextKeyFunction
    VTKF_FORWARD_CHAR                       enum    VisTextKeyFunction
    VTKF_BACKWARD_CHAR                      enum    VisTextKeyFunction
    VTKF_FORWARD_WORD                       enum    VisTextKeyFunction
    VTKF_BACKWARD_WORD                      enum    VisTextKeyFunction
    VTKF_FORWARD_PARAGRAPH                  enum    VisTextKeyFunction
    VTKF_BACKWARD_PARAGRAPH                 enum    VisTextKeyFunction
    VTKF_START_OF_LINE                      enum    VisTextKeyFunction
    VTKF_END_OF_LINE                        enum    VisTextKeyFunction
    VTKF_START_OF_TEXT                      enum    VisTextKeyFunction
    VTKF_END_OF_TEXT                        enum    VisTextKeyFunction
    VTKF_SELECT_WORD                        enum    VisTextKeyFunction

        ;==========================================
        ; None of the following entries are supported:
        ;   VTKF_SELECT_LINE
        ;   VTKF_SELECT_PARAGRAPH
        ;   VTKF_SELECT_OBJECT
        ;
    VTKF_SELECT_LINE                        enum    VisTextKeyFunction
    VTKF_SELECT_PARAGRAPH                   enum    VisTextKeyFunction
    VTKF_SELECT_OBJECT                      enum    VisTextKeyFunction
        ;==========================================
    VTKF_SELECT_ADJUST_FORWARD_CHAR         enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_BACKWARD_CHAR        enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_FORWARD_WORD         enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_BACKWARD_WORD        enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_FORWARD_PARAGRAPH    enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_BACKWARD_PARAGRAPH   enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_TO_START             enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_TO_END               enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_START_OF_LINE        enum    VisTextKeyFunction
    VTKF_SELECT_ADJUST_END_OF_LINE          enum    VisTextKeyFunction
    VTKF_DELETE_BACKWARD_CHAR               enum    VisTextKeyFunction
    VTKF_DELETE_BACKWARD_WORD               enum    VisTextKeyFunction
    VTKF_DELETE_BACKWARD_LINE               enum    VisTextKeyFunction
    VTKF_DELETE_BACKWARD_PARAGRAPH          enum    VisTextKeyFunction
    VTKF_DELETE_TO_START                    enum    VisTextKeyFunction
    VTKF_DELETE_CHAR                        enum    VisTextKeyFunction
    VTKF_DELETE_WORD                        enum    VisTextKeyFunction
    VTKF_DELETE_LINE                        enum    VisTextKeyFunction
    VTKF_DELETE_PARAGRAPH                   enum    VisTextKeyFunction
    VTKF_DELETE_TO_END                      enum    VisTextKeyFunction
    VTKF_DELETE_EVERYTHING                  enum    VisTextKeyFunction
    VTKF_DESELECT                           enum    VisTextKeyFunction
    VTKF_TOGGLE_OVERSTRIKE_MODE             enum    VisTextKeyFunction
    VTKF_TOGGLE_SMART_QUOTES                enum    VisTextKeyFunction

Library: Objects/vTextC.def


VisTextLoadFromDBWithStylesParams

VisTextLoadFromDBWithStylesParams       struct
    VTLFDBWSP_params    fptr.StyleSheetParams
    VTLFDBWSP_dbItem    dword               ; DB item to load from
    VTLFDBWSP_file      hptr                ; file handle (or 0)
VisTextLoadFromDBWithStylesParams       ends

Library: Objects/vTextC.def


VisTextMaxParaAttr

VisTextMaxParaAttr      struct
    VTMPA_paraAttr          VisTextParaAttr
    VTMPA_tabs              Tab VIS_TEXT_MAX_TABS dup (<>)
VisTextMaxParaAttr      ends

Library: Objects/Text/tCommon.def


VisTextMinimumDimensionsParameters

VisTextMinimumDimensionsParameters  struc
    VTMDP_height            WBFixed
    VTMDP_width             WBFixed
VisTextMinimumDimensionsParameters  ends

Library: Objects/vTextC.def


VisTextMoveTabParams

VisTextMoveTabParams            struct
    VTMTP_range             VisTextRange
    VTMTP_destPosition      word            ; in units of points * 8
    VTMTP_sourcePosition    word            ; in units of points * 8
VisTextMoveTabParams            ends

Library: Objects/vTextC.def


VisTextNameArrayElement

VisTextNameArrayElement         struc
    VTNAE_meta          NameArrayElement
    VTNAE_data          VisTextNameData
VisTextNameArrayElement         ends

Library: Objects/vTextC.def


VisTextNameCommonParams

VisTextNameCommonParams         struct
    VTNCP_data      VisTextNameData
    VTNCP_index     word            ; index of name
    VTNCP_object    optr            ; optr of text or list object
VisTextNameCommonParams         ends

Library: Objects/vTextC.def


VisTextNameData

VisTextNameData     struct
    VTND_type           VisTextNameType
    VTND_contextType    VisTextContextType
    VTND_file           word                ; token of file
    VTND_helpText       DBGroupAndItem      ; help text
VisTextNameData     ends

Library: Objects/vTextC.def


VisTextNameType

VisTextNameType     etype byte
    VTNT_CONTEXT        enum VisTextNameType
    VTNT_FILE           enum VisTextNameType

Library: Objects/vTextC.def


VisTextNotificationFlags

VisTextNotificationFlags            record
    VTNF_SELECT_STATE           :1
    VTNF_CHAR_ATTR              :1
    VTNF_PARA_ATTR              :1
    VTNF_TYPE                   :1
    VTNF_SELECTION              :1
    VTNF_COUNT                  :1
    VTNF_STYLE_SHEET            :1
    VTNF_STYLE                  :1
    VTNF_SEARCH_ENABLE          :1
    VTNF_SPELL_ENABLE           :1
    VTNF_NAME                   :1
    VTNF_CURSOR_POSITION        :1
                                :4
VisTextNotificationFlags            end

Library: Objects/vTextC.def


VisTextNotifyCharAttrChange

VisTextNotifyCharAttrChange             struct
    VTNCAC_charAttr             VisTextCharAttr
    VTNCAC_charAttrToken        word
    VTNCAC_charAttrDiffs        VisTextCharAttrDiffs
VisTextNotifyCharAttrChange             ends

Library: Objects/vTextC.def


VisTextNotifyCountChange

VisTextNotifyCountChange            struct
    VTNCC_charCount             dword
    VTNCC_wordCount             dword
    VTNCC_lineCount             dword
    VTNCC_paraCount             dword
VisTextNotifyCountChange            ends

Library: Objects/vTextC.def

VisTextNotifyNameChange

VisTextNotifyNameChange         struct
    VTNNC_count         word
VisTextNotifyNameChange         ends

Library: Objects/vTextC.def


VisTextNotifyParaAttrChange

VisTextNotifyParaAttrChange             struct
    VTNPAC_paraAttr                 VisTextMaxParaAttr
    VTNPAC_paraAttrToken            word
    VTNPAC_paraAttrDiffs            VisTextParaAttrDiffs
    VTNPAC_regionOffset             sdword
    VTNPAC_regionWidth              sword
    VTNPAC_selectedTab              word
VisTextNotifyParaAttrChange             ends

Library: Objects/vTextC.def


VisTextNotifySelectionChange

VisTextNotifySelectionChange                struct
    VTNSC_selectStart           dword
    VTNSC_selectEnd             dword
    VTNSC_lineNumber            dword
    VTNSC_lineStart             dword
    VTNSC_region                word
    VTNSC_regionStartLine       dword
    VTNSC_regionStartOffset     dword
VisTextNotifySelectionChange                ends

Library: Objects/vTextC.def


VisTextNotifySendFlags

VisTextNotifySendFlags          record
    VTNSF_UPDATE_APP_TARGET_GCN_LISTS       :1
    VTNSF_NULL_STATUS                       :1
    VTNSF_STRUCTURE_INITIALIZED             :1
    VTNSF_SEND_AFTER_GENERATION             :1
    VTNSF_SEND_ONLY                         :1
    VTNSF_RELAYED_TO_LIKE_TEXT_OBJECTS      :1
                                            :10
VisTextNotifySendFlags          end

VTNSF_UPDATE_APP_TARGET_GCN_LISTS
Set if pertinent Application Target GCN Lists should be updated with changes in status.

VTNSF_NULL_STATUS
Send notification of null status, for all notification types (used only to notify GCN Lists of loss of eligibility to update, i.e. lost target). The text output will always be sent only meaningful info.

VTNSF_STRUCTURE_INITIALIZED
Set if the rest of the VisTextGenerateNotifyParams structure is initialized.

VTNSF_SEND_AFTER_GENERATION
Set to send the notifications after generating them.

VTNSF_SEND_ONLY
Set to send the notifications only.

VTNSF_RELAYED_TO_LIKE_TEXT_OBJECTS
Set if the message has been registered with the object responsible for relaying the message to multiple text objects.

Library: Objects/vTextC.def


VisTextNotifyTypeChange

VisTextNotifyTypeChange         struct
    VTNTC_type              VisTextType
    VTNTC_typeToken         word
    VTNTC_typeDiffs         VisTextTypeDiffs
    VTNTC_index             VisTextType
VisTextNotifyTypeChange         ends

Library: Objects/vTextC.def


VisTextNumberType

VisTextNumberType       etype word
    VTNT_NUMBER                 enum VisTextNumberType
    VTNT_LETTER_UPPER_A         enum VisTextNumberType
    VTNT_LETTER_LOWER_A         enum VisTextNumberType
    VTNT_ROMAN_NUMERAL_UPPER    enum VisTextNumberType
    VTNT_ROMAN_NUMERAL_LOWER    enum VisTextNumberType

Library: Objects/Text/tCommon.def


#### VisTextParaAttr
VisTextParaAttr     struct
    VTPA_meta                   StyleSheetElementHeader
    VTPA_borderFlags            VisTextParaBorderFlags  ; border type
    VTPA_borderColor            ColorQuad               ; color for borders
    VTPA_attributes             VisTextParaAttrAttributes ; other attributes
    VTPA_leftMargin             word
    VTPA_rightMargin            word
    VTPA_paraMargin             word
    VTPA_lineSpacing            BBFixed <>              ; 1.0 is default
    VTPA_leading                word                    ; 13.3 is default
    VTPA_spaceOnTop             word                    ; 0.0 is default
    VTPA_spaceOnBottom          word                    ; 0.0 is default
    VTPA_bgColor                ColorQuad
    VTPA_numberOfTabs           byte
    VTPA_borderWidth            byte                    ; in points * 8
    VTPA_borderSpacing          byte                    ; in points * 8
    VTPA_borderShadow           byte                    ; in points * 8
    VTPA_borderGrayScreen       SystemDrawMask
    VTPA_bgGrayScreen           SystemDrawMask
    VTPA_borderPattern          GraphicPattern
    VTPA_defaultTabs            word                    ; spacing for default tabs
    VTPA_startingParaNumber     word
    VTPA_prependChars           char 4 dup (0)
    VTPA_hyphenationInfo        VisTextHyphenationInfo
    VTPA_keepInfo               VisTextKeepInfo
    VTPA_dropCapInfo            VisTextDropCapInfo
    VTPA_nextStyle              word
    VTPA_language               StandardLanguage
    VTPA_reserved               byte 15 dup (0)
    VTPA_tabList                label byte
VisTextParaAttr     ends

Library: Objects/Text/tCommon.def


VisTextParaAttrAttributes

VisTextParaAttrAttributes               record
    VTPAA_JUSTIFICATION             Justification:2
    VTPAA_KEEP_PARA_WITH_NEXT       :1
    VTPAA_KEEP_PARA_TOGETHER        :1          ;Don't break up paragraph
    VTPAA_ALLOW_AUTO_HYPHENATION    :1          ;Use VisTextHyphenationInfo
    VTPAA_DISABLE_WORD_WRAP         :1
    VTPAA_COLUMN_BREAK_BEFORE       :1
    VTPAA_PARA_NUMBER_TYPE          VisTextNumberType:3
    VTPAA_DROP_CAP                  :1          ;Use VisTextDropCapInfo
    VTPAA_KEEP_LINES                :1          ;Use VisTextKeepInfo
                                    :4
VisTextParaAttrAttributes               end

Library: Objects/Text/tCommon.def


VisTextParaAttrBorderFlags

VisTextParaAttrBorderFlags          record
    VTPABF_MULTIPLE_BORDER_LEFT         :1      ;Match with VTPBF_LEFT
    VTPABF_MULTIPLE_BORDER_TOP          :1      ;Match with VTPBF_TOP
    VTPABF_MULTIPLE_BORDER_RIGHT        :1      ;Match with VTPBF_RIGHT
    VTPABF_MULTIPLE_BORDER_BOTTOM       :1      ;Match with VTPBF_BOTTOM
    VTPABF_MULTIPLE_BORDER_DOUBLES      :1      ;Match with VTPBF_DOUBLE
    VTPABF_MULTIPLE_BORDER_DRAW_INNERS  :1      ;Match with VTPBF_DRAW_INNER
    VTPABF_MULTIPLE_BORDER_ANCHORS      :1
    VTPABF_MULTIPLE_BORDER_WIDTHS       :1
    VTPABF_MULTIPLE_BORDER_SPACINGS     :1
    VTPABF_MULTIPLE_BORDER_SHADOWS      :1
    VTPABF_MULTIPLE_BORDER_COLORS       :1
    VTPABF_MULTIPLE_BORDER_GRAY_SCREENS :1
    VTPABF_MULTIPLE_BORDER_PATTERNS     :1
                                        :3
VisTextParaAttrBorderFlags          end

Library: Objects/vTextC.def


VisTextParaAttrDiffs

VisTextParaAttrDiffs            struct
    VTPAD_diffs             VisTextParaAttrFlags
    VTPAD_diffs2            VisTextParaAttrFlags2
    VTPAD_borderDiffs       VisTextParaAttrBorderFlags
    VTPAD_attributes        VisTextParaAttrAttributes
    VTPAD_hyphenationInfo   VisTextHyphenationInfo
    VTPAD_keepInfo          VisTextKeepInfo
    VTPAD_dropCapInfo       VisTextDropCapInfo
    even
VisTextParaAttrDiffs            ends

Library: Objects/vTextC.def


VisTextParaAttrFlags

VisTextParaAttrFlags            record
    VTPAF_MULTIPLE_LEFT_MARGINS             :1
    VTPAF_MULTIPLE_RIGHT_MARGINS            :1
    VTPAF_MULTIPLE_PARA_MARGINS             :1
    VTPAF_MULTIPLE_LINE_SPACINGS            :1
    VTPAF_MULTIPLE_DEFAULT_TABS             :1
    VTPAF_MULTIPLE_TOP_SPACING              :1
    VTPAF_MULTIPLE_BOTTOM_SPACING           :1
    VTPAF_MULTIPLE_LEADINGS                 :1
    VTPAF_MULTIPLE_BG_COLORS                :1
    VTPAF_MULTIPLE_BG_GRAY_SCREENS          :1
    VTPAF_MULTIPLE_BG_PATTERNS              :1
    VTPAF_MULTIPLE_TAB_LISTS                :1
    VTPAF_MULTIPLE_STYLES                   :1
    VTPAF_MULTIPLE_PREPEND_CHARS            :1
    VTPAF_MULTIPLE_STARTING_PARA_NUMBERS    :1
    VTPAF_MULTIPLE_NEXT_STYLES              :1
VisTextParaAttrFlags            end

Library: Objects/vTextC.def


VisTextParaAttrFlags2

VisTextParaAttrFlags2           record
    VTPAF2_MULTIPLE_LANGUAGES       :1
                                    :15
VisTextParaAttrFlags2           end

Library: Objects/vTextC.def


VisTextParaBorderFlags

VisTextParaBorderFlags          record
    VTPBF_LEFT              :1      ;Set if a border on the left
    VTPBF_TOP               :1      ;Set if a border on the top
    VTPBF_RIGHT             :1      ;Set if a border on the right
    VTPBF_BOTTOM            :1      ;Set if a border on the bottom
    VTPBF_DOUBLE            :1      ;Draw two line border
    VTPBF_DRAW_INNER_LINES  :1      ;Draw lines between bordered paragraphs
    VTPBF_SHADOW            :1      ;Set to use shadow
                            :7
    VTPBF_ANCHOR            ShadowAnchor:2
VisTextParaBorderFlags          end

Library: tCommon.def


VisTextRange

VisTextRange        struct
    VTR_start   dword       ; start of range
    VTR_end     dword       ; end of range
VisTextRange        ends

Library: Objects/Text/tCommon.def


VisTextRangeContext

VisTextRangeContext         record
    VTRC_PARAGRAPH_CHANGE           :1  ;Change done on paragraph level.
    VTRC_CHAR_ATTR_CHANGE           :1  ; Used for a charAttr change (include 
                                        ; last CR, don't include next CR).
    VTRC_PARA_ATTR_BORDER_CHANGE    :1  ;Used for a paraAttr change.
                                        ;including a border.
                                    :13
VisTextRangeContext         end

Library: Objects/vTextC.def


VisTextReplaceFlags

VisTextReplaceFlags         record
    VTRF_FILTER                     :1      ;Set to filter replacement
    VTRF_KEYBOARD_INPUT             :1      ;Set if data is coming from the 
                                            ; keyboard input    
    VTRF_USER_MODIFICATION          :1      ;Set if replace is due to a user 
                                            ;action
    VTRF_UNDO                       :1      ;Set if replace is due to an undo
    VTRF_DO_NOT_SEND_CONTEXT_UPDATE :1      ;Set if this is part of a
                                            ; multi-part replace, and so the
                                            ; text object should not send a 
                                            ; context update (used internally
                                            ; to the text object only)
                                    :11
VisTextReplaceFlags         end

Library: Objects/vTextC.def


VisTextReplaceParameters

VisTextReplaceParameters            struct
    VTRP_range                  VisTextRange
    VTRP_insCount               dword           ; number of characters to 
                                                ; insert
    VTRP_textReference          TextReference   ; reference to text to insert
    VTRP_flags                  VisTextReplaceFlags
    align                       word
VisTextReplaceParameters            ends

This structure is passed with MSG_VIS_TEXT_REPLACE.

Library: Objects/vTextC.def


VisTextReplaceWithHWRParams

VisTextReplaceWithHWRParams             struct
    VTRWHWRP_range              VisTextRange
    VTRWHWRP_flags              VisTextHWRFlags
    VTRWHWRP_ink                hptr.InkHeader
    VTRWHWRP_context            HWRContext
VisTextReplaceWithHWRParams             ends

Library: Objects/vTextC.def


VisTextSaveDBFlags

VisTextSaveDBFlags          record
    VTSDBF_TEXT         :1                  ;set if text is saved 
                                            ; (0 means null text)
    VTSDBF_CHAR_ATTR    VisTextSaveType:2
    VTSDBF_PARA_ATTR    VisTextSaveType:2
    VTSDBF_TYPE         VisTextSaveType:2
    VTSDBF_GRAPHIC      VisTextSaveType:2
    VTSDBF_STYLE        :1
    VTSDBF_REGION       :1                  ;not currently implemented
    VTSDBF_NAME         :1
                        :4
VisTextSaveDBFlags          end

Library: Objects/vTextC.def


VisTextSaveStyleSheetParams

VisTextSaveStyleSheetParams     struct
    VTSSSP_common               StyleSheetParams
    VTSSSP_graphicsElements     word        ;VM block of graphics elements
    VTSSSP_treeBlock            word
    VTSSSP_graphicTreeOffset    word        ;offset in treeBlock
VisTextSaveStyleSheetParams     ends

Library: Objects/vTextC.def


VisTextSaveToDBWithStylesParams

VisTextSaveToDBWithStylesParams         struct
    VTSTDBWSP_params    fptr.VisTextSaveStyleSheetParams
    VTSTDBWSP_dbItem    dword
    VTSTDBWSP_flags     VisTextSaveDBFlags
    VTSTDBWSP_xferFile  word
VisTextSaveToDBWithStylesParams         ends

VTSTDBWSP_dbItem stores the DB item to save the text to.

Library: Objects/vTextC.def


VisTextSaveType

VisTextSaveType     etype byte
    VTST_NONE               enum VisTextSaveType    ;nothing saved
    VTST_SINGLE_CHUNK       enum VisTextSaveType    ;single attr structure
    VTST_RUNS_ONLY          enum VisTextSaveType
    VTST_RUNS_AND_ELEMENTS  enum VisTextSaveType

Library: Objects/vTextC.def


VisTextSetBorderBitsParams

VisTextSetBorderBitsParams              struct
    VTSBBP_range                VisTextRange
    VTSBBP_bitsToSet            VisTextParaBorderFlags
    VTSBBP_bitsToClear          VisTextParaBorderFlags
VisTextSetBorderBitsParams              ends

Library: Objects/vTextC.def


VisTextSetBorderWidthParams

VisTextSetBorderWidthParams         struct
    VTSBWP_range            VisTextRange
    VTSBWP_width            byte
    even
VisTextSetBorderWidthParams         ends

Library: Objects/vTextC.def


VisTextSetCharAttrByDefaultParams

VisTextSetCharAttrByDefaultParams           struct
    VTSCABDP_range              VisTextRange
    VTSCABDP_charAttr           VisTExtDefaultCharAttr
VisTextSetCharAttrByDefaultParams           ends

Library: Objects/vTextC.def


VisTextSetCharAttrByTokenParams

VisTextSetCharAttrByTokenParams                 struct
    VTSCABTP_range                  VisTextRange
    VTSCABTP_charAttr               word
VisTextSetCharAttrByTokenParams                 ends

Library: Objects/vTextC.def


VisTextSetCharAttrParams

VisTextSetCharAttrParams            struct
    VTSCAP_range            VisTextRange
VTSCAP_charAttr             fptr.VisTextCharAttr
VisTextSetCharAttrParams            ends

Library: Objects/vTextC.def


VisTextSetColorParams

VisTextSetColorParams           struct
    VTSCP_range         VisTextRange
    VTSCP_color         ColorQuad
VisTextSetColorParams           ends

Library: Objects/vTextC.def


VisTextSetContextFlags

VisTextSetContextFlags          record
                    :7
    VTCF_TOKEN      :1      ;TRUE: context and hyperlink are tokens
VisTextSetContextFlags          end

Library: Objects/vTextC.def


VisTextSetContextParams

VisTextSetContextParams         struct
    VTSCXP_range            VisTextRange
    VTSCXP_context          word
    VTSCXP_flags            VisTextSetContextFlags
    even
VisTextSetContextParams         ends

Library: Objects/vTextC.def


VisTextSetDefaultTabsParams

VisTextSetDefaultTabsParams             struct
    VTSDTP_range                VisTextRange
    VTSDTP_defaultTabs          word
VisTextSetDefaultTabsParams             ends

Library: Objects/vTextC.def


VisTextSetDropCapPParams

VisTextSetDropCapPParams            struct
    VTSDCP_range                VisTextRange
    VTSDCP_bitsToSet            word
    VTSDCP_bitsToClear          word
VisTextSetDropCapPParams            ends

Library: Objects/vTextC.def


VisTextSetFontIDParams

VisTextSetFontIDParams          struct
    VTSFIDP_range           VisTextRange
    VTSFIDP_fontID          FontID
VisTextSetFontIDParams          ends

Library: Objects/vTextC.def


VisTextSetFontWeightParams

VisTextSetFontWeightParams              struct
    VTSFWP_range                VisTextRange
    VTSFWP_fontWeight           byte
    even
VisTextSetFontWeightParams              ends

Library: Objects/vTextC.def


VisTextSetFontWidthParams

VisTextSetFontWidthParams               struct
    VTSFWIP_range               VisTextRange
    VTSFWIP_fontWidth           byte
    even
VisTextSetFontWidthParams               ends

Library: Objects/vTextC.def


VisTextSetGrayScreenParams

VisTextSetGrayScreenParams              struct
    VTSGSP_range                VisTextRange
    VTSGSP_grayScreen           SystemDrawMask
    even
VisTextSetGrayScreenParams              ends

Library: Objects/vTextC.def


VisTextSetHyperlinkParams

VisTextSetHyperlinkParams               struct
    VTSHLP_range                VisTextRange
    VTSHLP_context              word
    VTSHLP_file                 word
    VTSHLP_flags                VisTextSetContextFlags
    even
VisTextSetHyperlinkParams               ends

Library: Objects/vTextC.def


VisTextSetHyphenationPParams

VisTextSetHyphenationPParams                struct
    VTSHP_range                 VisTextRange
    VTSHP_bitsToSet             VisTextHyphenationInfo
    VTSHP_bitsToClear           VisTextHyphenationInfo
VisTextSetHyphenationPParams                ends

Library: Objects/vTextC.def


VisTextSetKeepPParams

VisTextSetKeepPParams           struct
    VTSKP_range             VisTextRange
    VTSKP_bitsToSet         word
    VTSKP_bitsToClear       word
    VisTextSetKeepPParams           ends

Library: Objects/vTextC.def


VisTextSetLargerPointSizeParams

VisTextSetLargerPointSizeParams                 struct
    VTSLPSP_range                   VisTextRange
    VTSLPSP_maximumSize             word
VisTextSetLargerPointSizeParams                 ends

Library: Objects/vTextC.def


VisTextSetLeadingParams

VisTextSetLeadingParams         struct
    VTSLP_range             VisTextRange
    VTSLP_leading           word
VisTextSetLeadingParams         ends

Library: Objects/vTextC.def


VisTextSetLineSpacingParams

VisTextSetLineSpacingParams             struct
    VTSLSP_range                    VisTextRange
    VTSLSP_lineSpacing              BBFixed
VisTextSetLineSpacingParams             ends

Library: Objects/vTextC.def


VisTextSetMarginParams

VisTextSetMarginParams          struct
    VTSMP_range             VisTextRange
    VTSMP_position          word
VisTextSetMarginParams          ends

Library: Objects/vTextC.def


VisTextSetParaAttrAttributesParams

VisTextSetParaAttrAttributesParams      struct
    VTSPAAP_range                   VisTextRange
    VTSPAAP_bitsToSet               VisTextParaAttrAttributes
    VTSPAAP_bitsToClear             VisTextParaAttrAttributes
VisTextSetParaAttrAttributesParams      ends

Library: Objects/vTextC.def


VisTextSetParaAttrByDefaultParams

VisTextSetParaAttrByDefaultParams                   struct
    VTSPABDP_range                  VisTextRange
    VTSPABDP_paraAttr               VisTextDefaultParaAttr
VisTextSetParaAttrByDefaultParams                   ends

Library: Objects/vTextC.def


VisTextSetParaAttrByTokenParams

VisTextSetParaAttrByTokenParams                 struct
    VTSPABTP_range                  VisTextRange
    VTSPABTP_paraAttr               word
VisTextSetParaAttrByTokenParams                 ends

Library: Objects/vTextC.def


VisTextSetParaAttrParams

VisTextSetParaAttrParams            struct
    VTSPAP_range                VisTextRange
    VTSPAP_paraAttr             fptr.VisTextParaAttr
VisTextSetParaAttrParams            ends

Library: Objects/vTextC.def


VisTextSetParagraphNumberParams

VisTextSetParagraphNumberParams                 struct
    VTSPNP_range                        VisTextRange
    VTSPNP_startingParaNumber           word
VisTextSetParagraphNumberParams                 ends

Library: Objects/vTextC.def


VisTextSetPatternParams

VisTextSetPatternParams         struct
    VTSHAP_range            VisTextRange
    VTSHAP_hatch            GraphicPattern
VisTextSetPatternParams         ends

Library: Objects/vTextC.def


VisTextSetPointSizeParams

VisTextSetPointSizeParams               struct
    VTSPSP_range                VisTextRange
    VTSPSP_pointSize            WWFixed
VisTextSetPointSizeParams               ends

Library: Objects/vTextC.def


VisTextSetPrependCharsParams

VisTextSetPrependCharsParams                struct
    VTSPCP_range            VisTextRange
    VTSPCP_chars            char 4 dup (0)
VisTextSetPrependCharsParams                ends

Library: Objects/vTextC.def


VisTextSetSmallerPointSizeParams

VisTextSetSmallerPointSizeParams                    struct
    VTSSPSP_range                   VisTextRange
    VTSSPSP_minimumSize             word
VisTextSetSmallerPointSizeParams                    ends

Library: Objects/vTextC.def


VisTextSpaceOnTBParams

VisTextSpaceOnTBParams          struct
    VTSSOTBP_range          VisTextRange
    VTSSOTBP_spacing        BBFixed
VisTextSpaceOnTBParams          ends

Library: Objects/vTextC.def


VisTextSetTabParams

VisTextSetTabParams         struct
    VTSTP_range         VisTextRange
    VTSTP_tab           Tab
VisTextSetTabParams         ends

Library: Objects/vTextC.def


VisTextSetTextStyleParams

VisTextSetTextStyleParams               struct
    VTSTSP_range                    VisTextRange
    VTSTSP_styleBitsToSet           word
    VTSTSP_styleBitsToClear         word
    VTSTSP_extendedBitsToSet        word
    VTSTSP_extendedBitsToClear      word
VisTextSetTextStyleParams               ends

Library: Objects/vTextC.def


VisTextSetTrackKerningParams

VisTextSetTrackKerningParams                struct
    VTSTKP_range                    VisTextRange
    VTSTKP_trackKerning             BBFixed
    even
VisTextSetTrackKerningParams                ends

Library: Objects/vTextC.def


VisTextShowSelectionArgs

VisTextShowSelectionArgs            struct
    VTSSA_params            MakeRectVisibleParams
    VTSSA_flags             VisTextShowSelectionFlags
VisTextShowSelectionArgs            ends

Library: Objects/vTextC.def


VisTextShowSelectionFlags

VisTextShowSelectionFlags               record
    VTSSF_DRAGGING          :1
                            :15
VisTextShowSelectionFlags               end

Library: Objects/vTextC.def


VisTextStates

VisTextStates       record
    VTS_EDITABLE                        :1  ; Set: text is editable.
    VTS_SELECTABLE                      :1  ; Set: text is selectable.
    VTS_TARGETABLE                      :1  ; Set: object is targetable.
    VTS_ONE_LINE                        :1  ; Set: object is limited to one 
                                            ; line.
    VTS_SUBCLASS_VIRT_PHYS_TRANSLATION  :1  ; Set: send virtual to physical
                                            ; charAttr/paraAttr translation
                                            ; messages to self (for subclass)
    VTS_OVERSTRIKE_MODE                 :1  ; Set: Overstrike mode (not 
                                            ; insert mode)
    VTS_USER_MODIFIED                   :1  ; Set: text has changed.
                                        :1
VisTextStates       end

Library: Objects/vTextC.def


VisTextStorageFlags

VisTextStorageFlags         record
    VTSF_LARGE                      :1
    VTSF_MULTIPLE_CHAR_ATTRS        :1
    VTSF_MULTIPLE_PARA_ATTRS        :1
    VTSF_TYPES                      :1
    VTSF_GRAPHICS                   :1
    VTSF_DEFAULT_CHAR_ATTR          :1
    VTSF_DEFAULT_PARA_ATTR          :1
    VTSF_STYLES                     :1
VisTextStorageFlags         end

VTSF_LARGE
If set: this object uses the large storage format and the bits below are unused. If clear: this object uses the model storage format are the bits below are used.

VTSF_MULTIPLE_CHAR_ATTRS
If set: VTI_charAttrRuns = check handle of charAttr runs. If not set:

if (VTTF_defaultCharAttr) VTI_charAttrRuns is a VisTextDefaultCharAttrs. else VTI_charAttrRuns = chunk handle of charAttr.

VTSF_MULTIPLE_PARA_ATTRS
If set: VTI_paraAttrRuns = check handle of paraAttr runs. If not set:

if (VTI_paraAttrRuns != 0) VTI_paraAttrRuns = chunk handle of paraAttr. else use default paraAttr.

Library: Objects/Text/tCommon.def


VisTextSubstAttrTokenParams

VisTextSubstAttrTokenParams         struct
    VTSATP_oldToken                     word
    VTSATP_newToken                     word
    VTSATP_runOffset                    word
    VTSATP_updateRefFlag                word
    VTSATP_relayedToLikeTextObjects     word
    VTSATP_recalcFlag                   fptr.word
VisTextSubstAttrTokenParams         ends

Library: Objects/vTextC.def


VisTextSuspendData

VisTextSuspendData      struct
    VTSD_count              word
    VTSD_recalcRange        VisTextRange    ; range to recalculate
    VTSD_selectRange        VisTextRange    ; range to select
    VTSD_notifications      word                
    VTSD_needsRecalc        BooleanByte
VisTextSuspendData      ends

Library: Objects/vTextC.def


VisTextType

VisTextType     struct
    VTT_meta                RefElementHeader
    VTT_hyperlinkName       word        ; name array element (-1 if none)
    VTT_hyperlinkFile       word        ; name array element (-1 if none)
    VTT_context             word        ; name array element (-1 if none)
    VTT_unused              byte 1 dup (0)
VisTextType     ends

Library: Objects/vTextC.def


VisTextTypeDiffs

VisTextTypeDiffs        record
    VTTD_MULTIPLE_HYPERLINKS    :1
    VTTD_MULTIPLE_CONTEXTS      :1
                                :14
VisTextTypeDiffs        end

Library: Objects/vTextC.def


VisTextVariableType

VisTextVariableType         etype word
    VTVT_PAGE_NUMBER                    enum VisTextVariableType
        ; private data: first word is VisTextNumberType
        ; vm chain: unused
    VTVT_PAGE_NUMBER_IN_SECTION         enum VisTextVariableType
        ; private data: first word is VisTextNumberType
        ; vm chain: unused
    VTVT_NUMBER_OF_PAGES                enum VisTextVariableType
        ; private data: first word is VisTextNumberType
        ; vm chain: unused
    VTVT_NUMBER_OF_PAGES_IN_SECTION     enum VisTextVariableType
        ; private data: first word is VisTextNumberType
        ; vm chain: unused
    VTVT_SECTION_NUMBER                 enum VisTextVariableType
        ; private data: first word is VisTextNumberType
        ; vm chain: unused
    VTVT_NUMBER_OF_SECTIONS             enum VisTextVariableType
        ; private data: first word is VisTextNumberType
        ; vm chain: unused
    VTVT_CREATION_DATE_TIME             enum VisTextVariableType
        ; private data: first word is DateTimeFormat
        ; vm chain: unused
        ; available only for large text objects
    VTVT_MODIFICATION_DATE_TIME         enum VisTextVariableType
        ; private data: first word is DateTimeFormat
        ; vm chain: unused
        ; available only for large text objects
    VTVT_CURRENT_DATE_TIME              enum VisTextVariableType
        ; private data: first word is DateTimeFormat
        ; vm chain: unused
        ; available only for large text objects
    VTVT_STORED_DATE_TIME               enum VisTextVariableType
        ; private data: first word is DateTimeFormat, 2nd is FileDate, 3d
        ; is FileTime
        ; vm chain: unused

Library: geoworks.def


VisTypeFlags

VisTypeFlags        record
    VTF_IS_COMPOSITE                    :1
    VTF_IS_WINDOW                       :1
    VTF_IS_PORTAL                       :1
    VTF_IS_WIN_GROUP                    :1
    VTF_IS_CONTENT                      :1
    VTF_IS_INPUT_NODE                   :1
    VTF_IS_GEN                          :1
    VTF_CHILDREN_OUTSIDE_PORTAL_WIN     :1
VisTypeFlags        end

VTF_IS_COMPOSITE
Set if object is a VisCompClass and therefore can have children (although, of course, a composite may at times have no children).

VTF_IS_WINDOW
Set if IS_COMPOSITE and creates a window with the window system in order to display itself and children in. If set, then the assumption is made that the window is the size of VI_bounds and therefore messages like MSG_VIS_DRAW and MSG_META_BUTTON that traverse all children skip children with this bit set. Also, the routine that returns the window handle that a visible object sits on will return this object’s VCI_window if this bit is set. Note that this flag differs subtly from the VTF_IS_PORTAL flag described below.

VTF_IS_PORTAL
Set if object has its own window, which is stored elsewhere. Any visible children appear in that window. Object still may have portions which appear in its parents window. An example is the display control object, which manages several child windows inside its own window area. Its border is drawn in the parent window, and its own window is then inset one pixel from its bounds.

The flag has several effects:

  • it causes UPDATE_WINDOWS and CLOSE_WIN messages to be sent to the object.

  • the optimizations made for VTF_IS_WINDOW are not done. This object gets a MSG_VIS_DRAW and a MSG_META_BUTTON from its parent.

  • only one of the flags VTF_IS_WINDOW and VTF_IS_PORTAL can be set at a time.

VTF_IS_WIN_GROUP
Set for top visible object in a visible branch, which makes that branch a realizable entity. Visual updates happen on whole WIN_GROUP’s. VTF_IS_WINDOW and VTF_IS_COMPOSITE must be set.

VTF_IS_CONTENT
Set if the object is basically the output descriptor of another window object. VTF_IS_WINDOW and VTF_IS_WIN_GROUP must also be set. Has a few subtle differences from a win group, one being that a Win is expected to be stuffed in by the “parent” object.

VTF_IS_INPUT_NODE Set if this object controls input flow for either Kbd or Mouse, such as VisContentClass. MSG_VIS_VUP_ALTER_INPUT_FLOW’s are sent directly to objects having this bit set, unless there is a need for them actually to VUP up through each object (as is the case for mouse grabs in a 32-bit content model).

VTF_IS_GEN
Set if object has a Generic master part. This flag must be set for the object to handle “SpecClass” messages such as MSG_SPEC_BUILD. For optimization reasons, their is no SpecClass subclassed off of VisClass, but one can think of it that way.

VTF_CHILDREN_OUTSIDE_PORTAL_WIN
Only if VTF_IS_PORTAL is set, means that visible children lie in the portal’s parent window areas, rather than in the window created by the portal object itself, thus they keep the portal’s parent window in the their instance data. An example of this is the pane, whose visual children lie around the outside of the pane’s own created window. A display control, by contrast, has its visual children reside inside its window and thus would not have this flag set.

Library: Objects/visC.def


VisUpdateImageFlags

VisUpdateImageFlags         record
    VUIF_ALREADY_INVALIDATED    :1
    VUIF_SEND_TO_ALL_CHILDREN   :1
    VUIF_JUST_OPENED            :1
                                :5
VisUpdateImageFlags         end

VUIF_ALREADY_INVALIDATED
Set if we no longer need to invalidate things, until we hit a window at some point. If a VisComp object’s image is invalidated, it will sometimes set this flag before broadcasting the message to its children so they’ll know not to invalidate themselves.

VUIF_SEND_TO_ALL_CHILDREN
Set if we need to send the invalidation message to all children, regardless of what the path bit is. This is for cases where a composite object is invalid, but only invalidates its margins to minimize invalidation, and then only children whose geometry is invalid will be invalidated further.

VUIF_JUST_OPENED
Internal flag.

Library: Objects/visC.def


VisUpdateMode

VisUpdateMode       etype byte
    VUM_MANUAL                  enum VisUpdateMode  ;don't update. 
    VUM_NOW                     enum VisUpdateMode  ;update NOW.
    VUM_DELAYED_VIA_UI_QUEUE    enum VisUpdateMode  ;delayed until UI queue 
                                                    ;empty
    VUM_DELAYED_VIA_APP_QUEUE   enum VisUpdateMode  ;delayed until APP queue 
                                                    ;empty

Library: Objects/visC.def


VisUpwardQueryType

VisUpwardQueryType      etype word
    SPEC_VIS_QUERY_START    equ 2000    ; offset to first specific UI query type
    APP_VIS_QUERY_START     equ 4000    ; offset to first app UI query type

    VUQ_DISPLAY_SCHEME      enum VisUpwardQueryType
    ; Context:      May be used when drawing part of a visible tree
    ; Source:       Any VisClass object
    ; Destination:  Typically handled by the field object
    ; Interception: It would be unusual to intercept this, as long as there is
    ;               a single video mode per field.
    ;
    ; Pass:         cx      - VUQ_DISPLAY_SCHEME
    ; Return:
    ;               carry   - set if VUP message found routine to process
    ;                           request
    ;
    ;   ax, cx, dx, bp      - display scheme
    ;
    VUQ_VIDEO_DRIVER        enum VisUpwardQueryType
    ;
    ; Used to fetch the handle of the video driver which is in
    ; use for this location in the visible tree.
    ;
    ; Context:      Might be used when drawing part of a visible tree
    ; Source:       Any VisClass object
    ; Destination:  Typically handled by the field object
    ; Interception: It would be unusual to intercept this, as long as there is
    ;               a single video mode per field.
    ;
    ; Pass:         cx      - VUQ_VIDEO_DRIVER
    ; Return:
    ;               carry   - set if VUP message found routine to process 
    ;                           request
    ;               ax      - handle of video driver
    ;       cx, dx, bp      - destroyed

Library: Objects/visC.def


VisWardMouseEventType

VisWardMouseEventType           etype byte, 0
    VWMET_SMALL         enum VisWardMouseEventType
    VWMET_LARGE         enum VisWardMouseEventType

Library: grobj.def


VisWardToolActiveStatus

VisWardToolActiveStatus         etype byte, 0
    VWTAS_ACTIVE            enum VisWardToolActiveStatus
    VWTAS_INACTIVE          enum VisWardToolActiveStatus

Library: grobj.def


VMAccessFlags

VMAccessFlags       record
    VMAF_FORCE_READ_ONLY                    :1
    VMAF_FORCE_READ_WRITE                   :1
    VMAF_ALLOW_SHARED_MEMORY                :1
    VMAF_FORCE_DENY_WRITE                   :1
    VMAF_DISALLOW_SHARED_MULTIPLE           :1
    VMAF_USE_BLOCK_LEVEL_SYNHRONIZATION     :1
    VMAF_FORCE_SHARED_MULTIPLE              :1
    <internal>                              :1
VMAccessFlags       end

VMAF_FORCE_READ_ONLY
If set then force the file to be opened read only, even if the default would be to open the file read/write.

VMAF_FORCE_READ_WRITE
If set then force the file to be opened read-write, even if the default would be to open the file read-only.

VMAF_ALLOW_SHARED_MEMORY
If set then use shared memory locally (unless otherwise impossible).

VMAF_FORCE_DENY_WRITE
If set then open file deny write.

VMAF_DISALLOW_SHARED_MULTIPLE
If set then files with the SHARED_MULTIPLE attribute cannot be opened.

VMAF_USE_BLOCK_LEVEL_SYNCHRONIZATION
If set then block the block level synchronization of the VM code is assumed to be sufficient and the {Start/End}Exclusive mechanism is not used. This is primarily intended for system software.

VMAF_FORCE_SHARED_MULTIPLE
If set, the file is opened as if it had the SHARED_MULTIPLE attribute even if it didn’t. This is useful for data VM files that need to always be opened as if SHARED_MULTIPLE were set, even when they’re first created. Without this, there’s a nasty race condition following the creation where the creator has to mark the file SHARED_MULTIPLE, close it, and reopen it again.

Library: vm.def


VMAttributes

VMAttributes        record
    VMA_SYNC_UPDATE                 :1
    VMA_BACKUP                      :1
    VMA_OBJECT_RELOC                :1
                                    :1
    VMA_NOTIFY_DIRTY                :1
    VMA_NO_DISCARD_IF_IN_USE        :1
    VMA_COMPACT_OBJ_BLOCK           :1
    VMA_SINGLE_THREAD_ACCESS        :1
VMAttributes        end

VMA_SYNC_UPDATE
Allow synchronous updates only. Tells the system that it should not do asynchronous updates of the VM file. Clean VM blocks may always be discarded. Asynchronous updates are active by default

VMA_BACKUP
Maintain a backup copy of all data. The file can be returned to its backup state by calling VMRevert. The current state is made the backup by calling VMSave.

VMA_OBJECT_RELOC
Use the built-in object relocation routines

VMA_NOTIFY_DIRTY
Notify all processes that have the file open the first time a block becomes dirty after a VMOpen, VMUpdate, VMSave, or VMRevert.

VMA_NO_DISCARD_IF_IN_USE
Do not discard LMem blocks of type LMEM_TYPE_OBJ_BLOCK if OLMBH_inUseCount is non-zero

VMA_COMPACT_OBJ_BLOCK
If set, do a compaction when doing a unreloc before write (object blocks only) - allows generic objects in a VM file.

VMA_SINGLE_THREAD_ACCESS
If set then only a single thread will access the file, allowing optimizations in VMLock.

Library: vm.def


VMChainLink     struct
    VMCL_next       word
VMChainLink     ends

Library: vm.def


VMChainTree

VMChainTree     struct
    VMCT_meta           VMChainLink
    VMCT_offset         nptr        ;offset to first chain
    VMCT_count          word        ;number of chains
VMChainTree     ends

Library: vm.def


VMLinkAndGrObjRelocation

VMLinkAndGrObjRelocation            struct
    VMLAGOR_link                VMChainLink
    VMLAGOR_relocation          GrObjEntryPointRelocation
VMLinkAndGrObjRelocation            ends

Library: grobj.def


VMOpenType

VMOpenType      etype byte
    VMO_OPEN            enum VMOpenType ; Open existing
    VMO_TEMP_FILE       enum VMOpenType ; Create temp file -- name is 
                                        ; directory
    VMO_CREATE          enum VMOpenType ; Create or open existing
    VMO_CREATE_ONLY     enum VMOpenType ; Create, give error if already 
                                        ; exists
    VMO_CREATE_TRUNCATE enum VMOpenType ; Create, truncate any existing 
                                        ;file

Library: vm.def


VMOperation

VMOperation     etype word
    VMO_READ        enum VMOperation    ;default state -- allows
                                        ;readers not to modify the file
    VMO_INTERNAL    enum VMOperation
    VMO_SAVE        enum VMOperation
    VMO_SAVE_AS     enum VMOperation
    VMO_REVERT      enum VMOperation
    VMO_UPDATE      enum VMOperation
    VMO_WRITE       enum VMOperation    ;for apps that don't want
                                        ;their own special codes
    VMO_FIRST_APP_CODE  enum VMOperation, 0x8000

Library: vm.def


VMRelocType

VMRelocType     etype word
    VMRT_UNRELOCATE_BEFORE_WRITE        enum VMRelocType
    VMRT_RELOCATE_AFTER_READ            enum VMRelocType
    VMRT_RELOCATE_AFTER_WRITE           enum VMRelocType
    VMRT_RELOCATE_FROM_RESOURCE         enum VMRelocType
    VMRT_UNRELOCATE_FROM_RESOURCE       enum VMRelocType

Library: vm.def


VMStartExclusiveReturnValue

VMStartExclusiveReturnValue             etype word
    VMSERV_NO_CHANGES           enum VMStartExclusiveReturnValue
    VMSERV_CHANGES              enum VMStartExclusiveReturnValue
    VMSERV_TIMEOUT              enum VMStartExclusiveReturnValue

Library: vm.def


VMStatus

VMStatus        etype word, 256
    VM_OPEN_OK_READ_ONLY                enum VMStatus
    VM_OPEN_OK_TEMPLATE                 enum VMStatus
    VM_OPEN_OK_READ_WRITE_NOT_SHARED    enum VMStatus
    VM_OPEN_OK_READ_WRITE_SINGLE        enum VMStatus
    VM_OPEN_OK_READ_WRITE_MULTIPLE      enum VMStatus
    VM_OPEN_OK_BLOCK_LEVEL              enum VMStatus
    VM_CREATE_OK                        enum VMStatus

    ;   VM error codes

    VM_FILE_EXISTS                      enum VMStatus
    VM_FILE_NOT_FOUND                   enum VMStatus
    VM_SHARING_DENIED                   enum VMStatus
    VM_OPEN_INVALID_VM_FILE             enum VMStatus
    VM_CANNOT_CREATE                    enum VMStatus
    VM_TRUNCATE_FAILED                  enum VMStatus
    VM_WRITE_PROTECTED                  enum VMStatus
    VM_CANNOT_OPEN_SHARED_MULTIPLE      enum VMStatus
    VM_FILE_FORMAT_MISMATCH             enum VMStatus

    ;   VMUpdate status codes

    VM_UPDATE_NOTHING_DIRTY             enum VMStatus
    VM_UPDATE_INSUFFICIENT_DISK_SPACE   enum VMStatus
    VM_UPDATE_BLOCK_WAS_LOCKED          enum VMStatus

Library: vm.def


VMStyle

VMStyle etype byte
    VMS_TEXT            enum VMStyle    ; normal text moniker
    VMS_ABBREV_TEXT     enum VMStyle    ; abbreviated text moniker i.e. a 
                                        ; short textual description rather 
                                        ; than the full title. Used for 
                                        ; name under icon of an iconified
                                        ; primary.
    VMS_GRAPHIC_TEXT    enum VMStyle    ; textual gstring
    VMS_ICON            enum VMStyle    ; normal gstring moniker
    VMS_TOOL            enum VMStyle    ; moniker for a tool, normally 
                                        ; smaller than a standard moniker

Library: Objects/visC.def


VupAlterInputFlowData

VupAlterInputFlowData           struct
    VAIFD_flags             VisInputFlowGrabFlags
    VAIFD_grabType          VisInputFlowGrabType
    VAIFD_object            optr
    VAIFD_gWin              hptr.Window
    VAIFD_translation       PointDWord
VupAlterInputFlowData           ends

VAIFD_gWin stores the window that the grabbing object is in (for mouse grabs only).

VAIFD_translation stores any additional 32-bit translation that should be applied to all mouse data (for mouse grabs only).

Library: Objects/visC.def


Warnings

Warnings        etype word, 0

Library: ec.def


WBFixed

WBFixed struct
    WBF_frac        byte        ;8 bits fraction
    WBF_int         word        ;16 bits integer
WBFixed ends

Library: geos.def


WidthJustification

WidthJustification      etype byte
    WJ_LEFT_JUSTIFY_CHILDREN                    enum WidthJustification
    WJ_RIGHT_JUSTIFY_CHILDREN                   enum WidthJustification
    WJ_CENTER_CHILDREN_HORIZONTALLY             enum WidthJustification
    WJ_FULL_JUSTIFY_CHILDREN_HORIZONTALLY       enum WidthJustification

Library: Objects/vCompC.def


WildCard

WildCard    etype byte
    WC_MATCH_SINGLE_CHAR            enum WildCard, 0x10
    WC_MATCH_MULTIPLE_CHARS         enum WildCard, 0x11
    WC_MATCH_WHITESPACE_CHAR        enum WildCard, 0x12

Library: Objects/vTextC.def


WinColorFlags

WinColorFlags       record
    WCF_RGB             :1
    WCF_TRASNPARENT     :1
    WCF_PLAIN           :1
                        :2
    WCF_MAP_MODE        :3
WinColorFlags       end

WCF_RGB
Set if using RGB colors, clear for indexed.

WCF_TRANSPARENT
Indicates window does not have a background color, & that owner must draw entire contents of window.

WCF_PLAIN
Indicates window is one color only and therefore the window system may perform all draw operations for it. (No MSG_META_EXPOSED’s are sent)

WCF_MAP_MODE
Graphics color mapping mode.

Library: win.def


WinConstrainType

WinConstrainType        etype byte
    WCT_NONE                            enum WinConstrainType
    WCT_KEEP_PARTIALLY_VISIBLE          enum WinConstrainType
    WCT_KEEP_VISIBLE                    enum WinConstrainType
    WCT_KEEP_VISIBLE_WITH_MARGIN        enum WinConstrainType

WCT_NONE
Do not constrain window to parent. Allow complete clipping of window area by parent window.

WCT_KEEP_PARTIALLY_VISIBLE
Ensure that this window is at least partially visible within its parent at all times. In Motif, this means make sure the title bar is accessible.

WCT_KEEP_VISIBLE
Ensure that this window is completely visible within its parent at all times.

WCT_KEEP_VISIBLE_WITH_MARGIN

Library: Objects/visC.def


WinError

WinError        etype word, 0, 1
    WE_COORD_OVERFLOW       enum WinError   ; 16-bit coordinate overflow
    WE_WINDOW_CLOSING       enum WinError   ; window is closing
    WE_GSTRING_PASSED       enum WinError   ; gstring handle passed

Library: win.def


WinInfoType

WinInfoType     etype word, 0, 2
    WIT_PRIVATE_DATA        enum WinInfoType
    WIT_COLOR               enum WinInfoType
    WIT_INPUT_OBJ           enum WinInfoType
    WIT_EXPOSURE_OBJ        enum WinInfoType
    WIT_STRATEGY            enum WinInfoType
    WIT_FLAGS               enum WinInfoType
    WIT_LAYER_ID            enum WinInfoType
    WIT_PARENT_WIN          enum WinInfoType
    WIT_FIRST_CHILD_WIN     enum WinInfoType
    WIT_LAST_CHILD_WIN      enum WinInfoType
    WIT_PREV_SIBLING_WIN    enum WinInfoType
    WIT_NEXT_SIBLING_WIN    enum WinInfoType
    WIT_PRIORITY            enum WinInfoType

Library: win.def


WinInvalFlag

WinInvalFlag        etype byte, 0, 1
    WIF_INVALIDATE          enum WinInvalFlag   ; -invalidate the win
    WIF_DONT_INVALIDATE     enum WinInvalFlag   ; -don't

Library: win.def


WinPassFlags

WinPassFlags        record
    WPF_CREATE_GSTATE           :1
    WPF_ROOT                    :1
    WPF_SAVE_UNDER              :1
    WPF_INIT_EXCLUDED           :1
    WPF_PLACE_BEHIND            :1
    WPF_PLACE_LAYER_BEHIND      :1
    WPF_LAYER                   :1
    WPF_ABS                     :1
    WPF_PRIORITY                WinPriorityData:8
WinPassFlags        end

The flags are listed below. Following the description of each flag, the list of routines which respect the flag are listed in parentheses.

WPF_CREATE_GSTATE
Set if a gstate should be created along with window (WinOpen).

WPF_ROOT
Set if creating a root window (WinOpen).

WPF_SAVE_UNDER
Set if window should be created w/save under (WinOpen).

WPF_INIT_EXCLUDED
Init as being the head of a branch which is excluded from being an implied window, and therefore won’t receive MSG_META_UNIV_ENTER, MSG_META_VIS_ENTER messages. (WinOpen).

WPF_PLACE_BEHIND
Indicates window should be placed behind other windows in its priority group. If clear, then window will be placed in front. (WinOpen, WinChangePriority).

WPF_PLACE_LAYER_BEHIND
Indicates whether layer should be placed behind other layers within its priority group. If clear, then layer will be placed in front. (WinOpen, WinChangePriority).

WPF_LAYER
Set if operation applies to all windows having layerID (WinChangePriority).

WPF_ABS
Whether size/offset passed is absolute or relative to current (WinScroll, WinMove, WinResize).

Library: win.def


WinPositionType

WinPositionType     etype byte
    WPT_AT_RATIO                    enum WinPositionType
    WPT_STAGGER                     enum WinPositionType
    WPT_CENTER                      enum WinPositionType
    WPT_TILED                       enum WinPositionType
    WPT_AT_MOUSE_POSITION           enum WinPositionType
    WPT_AS_REQUIRED                 enum WinPositionType
    WPT_AT_SPECIFIC_POSITION        enum WinPositionType

WPT_AT_RATIO
Place this window at the specified position relative to the parent window. The position information is initially placed in the R_left and R_top fields of the VI_bounds for the object, as the object is initialized. During building, this information is converted from a ratio to actual coordinates.

WPT_STAGGER
Stagger this window down and to the right of previously staggered windows on this parent object.

WPT_CENTER
Center this window on the parent window.

WPT_TILED
Tile this window with its siblings.

WPT_AT_MOUSE_POSITION
Place the top-left corner of this window where the mouse pointer is. If the system has no mouse, the window is centered on the parent window.

WPT_AS_REQUIRED
Reserved for specific-UI use.

WPT_AT_SPECIFIC_POSITION
Reserved for specific-UI use.

Library: Objects/visC.def


WinPosSizeFlag

WinPosSizeFlags     record
    WPSF_PERSIST                                :1
    WPSF_HINT_FOR_ICON                          :1
    WPSF_NEVER_SAVE_STATE                       :1
    WPSF_SHRINK_DESIRED_SIZE_TO_FIT_IN_PARENT   :1
                                                :4
    WPSF_CONSTRAIN_TYPE                         WinConstrainType:2
    WPSF_POSITION_TYPE                          WinPositionType:3
    WPSF_SIZE_TYPE                              WinSizeType:3
WinPosSizeFlags     end

WPSF_PERSIST
True for window to maintain its state (position, size, staggered slot #) when closed or detached. If false, the window will revert back to the specified position and size preferences (see below) when the window is re-opened. Note: could nuke this by adding HINT_DONT_PERSIST hint.

WPSF_HINT_FOR_ICON
True if this record is part of a hint for a GenPrimary or GenDisplay, and the hint is intended for the icon object. Note: could nuke this by creating separate hint.

WPSF_NEVER_SAVE_STATE
True for objects that never should have state saved when closed, such as menus. Overrides persist.

WPSF_SHRINK_DESIRED_SIZE_TO_FIT_IN_PARENT
Can be set true in objects where WPSF_SIZE_TYPE = WST_AS_DESIRED. After geometry has determined DESIRED size of window, if right side or bottom portion of window is not visible in parent window, this window will be resized to fit.

WPSF_CONSTRAIN_TYPE
Which constraint algorithm to use (keep inside, etc.).

WPSF_POSITION_TYPE
If window has not been moved/resized, this field indicates what position algorithm should be used.

WPSF_SIZE_TYPE
If false or window has not been moved/resized, this field indicates what sizing algorithm should be used.

Library: Objects/visC.def


WinPriority

WinPriority     etype byte
    WIN_PRIO_POPUP              enum WinPriority, 4
    WIN_PRIO_MODAL              enum WinPriority, 6
    WIN_PRIO_COMMAND            enum WinPriority, 10
    WIN_PRIO_STD                enum WinPriority, 12
    WIN_PRIO_ON_BOTTOM          enum WinPriority, 14

WIN_PRIO_POPUP
Stay-up mode or drag mode, temporary popup menus.

WIN_PRIO_MODAL
For modal dialog boxes.

WIN_PRIO_ON_TOP
For misc which is supposed to appear “on top” of rest of application.

WIN_PRIO_COMMAND
For Command windows, non-modal dialogs, torn-off menus.

WIN_PRIO_STD
Standard window priority.

WIN_PRIO_ON_BOTTOM
Window stays on bottom.

Library: win.def


WinPriorityData

WinPriorityData     record
    WPD_LAYER   LayerPriority   :4
    WPD_WIN     WinPriority     :4      ; priority value for window.
WinPriorityData     end

Library: win.def


WinPtrFlags

WinPtrFlags     record
    WPF_PTR_IN_UNIV     :1      ; pointer in universe of window. (RAW)
                                ; this is not synchronous with the UI 
                                ; thread
    WPF_PTR_IN_VIS      :1      ; pointer is in visible region of window 
                                ; (RAW) this is NOT synchronous with the 
                                ; UI thread
                        :6
WinPtrFlags     end

Library: win.def


WinRegFlags

WinRegFlags     record
    WRF_DELAYED_WASH        :1
    WRF_DELAYED_V           :1
    WRF_SIBLING_VALID       :1
    WRF_EXPOSE_PENDING      :1
    WRF_CLOSED              :1
    WRF_INVAL_TREE          :1
                            :2
WinRegFlags     end

WRF_DELAYED_WASH
Set if window has WRF_DELAYED_V set and the windowing system has delayed doing a was as a result. Will cause the fill to be done when the window block is V’d.

WRF_DELAYED_V
Set if window should not be V’d until validation operation is complete. Used to insure that no two V’d windows ever have overlapping W_maskReg’s at any one instant.

WRF_SIBLING_VALID
Set if parent window’s W_childReg contains running sum of regions of windows to the left of this one in the tree (W_siblingReg).

WRF_EXPOSE_PENDING
Means that a MSG_META_EXPOSED has been sent out, and neither GrBeginUpdate nor WinUpdateAck has been called yet.

WRF_CLOSED
Set if this window has been closed, but not yet freed.

WRF_INVAL_TREE
Set if this window is being invalidated from WinInvalTree and may need to redraw in its background color even if the entire window is already invalidated.

Library: win.def


WinSizeType

WinSizeType     etype byte
    WST_AS_RATIO_OF_PARENT              enum WinSizeType
    WST_AS_RATIO_OF_FIELD               enum WinSizeType
    WST_AS_DESIRED                      enum WinSizeType
    WST_EXTEND_TO_BOTTOM_RIGHT          enum WinSizeType
    WST_EXTEND_NEAR_BOTTOM_RIGHT        enum WinSizeType

WST_AS_RATIO_OF_PARENT
This can be used to open a window a specific size. The size information is initially placed in the R_right and R_bottom fields of the VI_bounds of the object, as the object is initialized. During building, this info is converted from a ratio to actually pixel-distance.

WST_AS_RATIO_OF_FIELD

WST_AS_DESIRED
Size the window according to its contents.

WST_EXTEND_TO_BOTTOM_RIGHT
This means size the window so that its bottom right corner is at the same position on the screen as the bottom right corner of the parent window.

WST_EXTEND_NEAR_BOTTOM_RIGHT
This means size the window so that its bottom right corner is a fixed margin away from the bottom right corner of the parent window. The margin is determined by the specific UI.

Library: Objects/visC.def


WordAndAHalf

WordAndAHalf        struct
    WAAH_low            word
    WAAH_high           byte
WordAndAHalf        ends

Library: geos.def


WWFixed

WWFixed struct
    WWF_frac        word        ;16 bits fraction
    WWF_int         word        ;16 bits integer
WWFixed ends

Library: geos.def


XYOffset

XYOffset        struct
    XYO_x   sword
    XYO_y   sword
XYOffset        ends

Library: graphics.def


XYSize

XYSize  struct
    XYS_width       word
    XYS_height      word
XYSize  ends

Library: graphics.def

Structures T-U <– Table of Contents