GEOS SDK TechDocs
|
|
3.1 VI_bounds
|
3.3 VI_attrs
VI_typeFlags, MSG_VIS_SET_TYPE_FLAGS, MSG_VIS_GET_TYPE_FLAGS
The
VI_typeFlags
field is a bitfield record containing eight flags. These flags determine the type of the visible object and are used primarily by the UI and the windowing system. When used at all, these flags are typically set in the object's definition or when the object is first created, and they are rarely changed dynamically by an application. The eight flags in this record are listed below. The record is of type
VisTypeFlags
.
VisCompClass
rather than
VisClass
. This flag indicates the object may have children (normal
VisClass
objects can not have children). Because this is not the only difference between these classes, changing this flag can have unpredictable results.
VisCompClass
and not
VisClass
. If this flag is set, the UI will assume that the
VI_bounds
field of the object represents the current size of the window. Objects with the VTF_IS_WINDOW flag set are skipped by the normal input and output messages such as
MSG_VIS_DRAW
and
MSG_META_START_SELECT
; these messages will be passed directly to the object's appropriate child. VTF_IS_WINDOW and VTF_IS_PORTAL are mutually exclusive.
VisContentClass
(not for
VisClass
or
VisCompClass
). Note that if this is set, both VTF_IS_WINDOW and VTF_IS_WIN_GROUP must also be set.
MSG_VIS_VUP_ALTER_INPUT_FLOW
is sent directly to objects with this bit set unless there is a need for them to actually use the VUP mechanism, as is the case with mouse grabs in a 32-bit content. Similarly,
MSG_META_MUP_ALTER_FTVMC_EXCL
,
MSG_VIS_FUP_QUERY_FOCUS_EXCL
, and
MSG_VIS_VUP_QUERY_FOCUS_EXCL
are sent to the first visible object up the tree that either is a window group or has this bit set.
MSG_SPEC
. The only objects that will ever have this flag set are those in Specific UI libraries.
Although the
VI_typeFlags
record will rarely be changed at run-time, you can set new values by sending
MSG_VIS_SET_TYPE_FLAGS
to the visible object while it is realized. To retrieve the current type flags, send the object a
MSG_VIS_GET_TYPE_FLAGS
.
void MSG_VIS_SET_TYPE_FLAGS(
VisTypeFlags flagsToSet,
VisTypeFlags flagsToClear);
This message causes the object to set its
VI_typeFlags
field to the values passed. The
flagsToSet
parameter will be OR-ed with
VI_typeFlags
, and the
flagsToClear
parameter will be logically inverted and then AND-ed with the field. The clear operation will occur after the set. Therefore a flag set in both parameters will be cleared by this message.
Source: Unrestricted.
Destination: Any visible object; however, the object must not be realized when it receives the object.
Parameters:
flagsToSet
A record of
VisTypeFlags
indicating which flags are to be set for the object.
flagsToClear
VisTypeFlags
indicating which flags are to be cleared for the object (a flag set in
flagsToClear
will be cleared in
VI_typeFlags
).Return: Nothing.
Interception: Unlikely.
VisTypeFlags MSG_VIS_GET_TYPE_FLAGS();
This message returns a visible object's current
VI_typeFlags
field.
Source: Unrestricted.
Destination: Any visible object.
Parameters: None.
Return: A byte of
VisTypeFlags
representing the object's current
VI_typeFlags
field.
Interception: Unlikely.
GEOS SDK TechDocs
|
|
3.1 VI_bounds
|
3.3 VI_attrs