GEOS SDK TechDocs
|
|
9 Setting Sizes
|
11 Focus Modifications
MSG_GEN_APPLY, MSG_GEN_PRE_APPLY, MSG_GEN_POST_APPLY, MSG_GEN_RESET, MSG_GEN_MAKE_APPLYABLE, MSG_GEN_MAKE_NOT_APPLYABLE, MSG_GEN_ACTIVATE, MSG_GEN_ACTIVATE_INTERACTION_DEFAULT
These messages only affect objects which contain properties. These property gadgets (such as GenItemGroups, GenValues, GenTexts, etc.) typically operate in one of two modes: immediate or delayed .
If an object is operating in immediate mode, any changes in the object's state will cause an immediate change to occur in the application (through the sending of an apply message in the object's instance data). For example, if a GenBooleanGroup is operating in immediate mode, every time the user makes a selection within the BooleanGroup, those changes will be applied to the application immediately, as they occur.
If instead an object is operating in delayed mode, any changes in the object's state will not be sent out immediately. They will only be sent out at a later time when the object receives instructions to apply its changes. The UI asks a generic object to apply its changes with
MSG_GEN_APPLY
.
Typically, each properties gadget operating in delayed mode has a modified state, indicating whether the object has changed since it last applied its changes. Upon receiving
MSG_GEN_APPLY
, the object checks whether it has been modified; if it has, it will send out its apply message in the object's instance data. Either you or the system may send out
MSG_GEN_APPLY
to force a properties gadget to apply its changes. Sending out
MSG_GEN_APPLY
clears any modified states associated with a properties gadget (after those properties are applied, of course).
If
MSG_GEN_APPLY
is sent to either a dialog GenInteraction or another GenInteraction within that dialog, it will be propagated to all property gadgets within that Interaction. In this manner, you can apply multiple properties within a dialog box all at once. A GIT_PROPERTIES GenInteraction automatically sends out
MSG_GEN_APPLY
upon receiving
MSG_GEN_GUP_INTERACTION_COMMAND
with the
InteractionCommand
IC_APPLY. (This is typically through an "Apply" trigger in the dialog box.) The dialog will also send
MSG_GEN_PRE_APPLY
and
MSG_GEN_POST_APPLY
messages before and after the apply, respectively.
MSG_GEN_RESET
also exhibits this automatic propagation behavior; if this message is sent to a dialog GenInteraction, it will be sent to all property gadgets within that Interaction. However, generic property gadgets provide no default handling for
MSG_GEN_RESET
. If you wish for an object to reset its properties upon receiving
MSG_GEN_RESET
, you must subclass the object and handle this message yourself. A GIT_PROPERTIES GenInteraction automatically sends out
MSG_GEN_RESET
upon receiving
MSG_GEN_GUP_INTERACTION_COMMAND
with the
InteractionCommand
IC_RESET. (This is typically through a "Reset" trigger in the dialog box.)
MSG_GEN_MAKE_APPLYABLE
instructs an object to enable any apply and reset mechanisms that may be disabled. The object must be in delayed mode.
MSG_GEN_MAKE_NOT_APPLYABLE
instructs an object to disable any apply and reset mechanisms. The object must be in delayed mode.
MSG_GEN_ACTIVATE
activates a generic object as if it had been activated by the user through the specific UI. For example, sending a GenTrigger
MSG_GEN_ACTIVATE
will cause the trigger to send out its action message in the same manner as if the user had clicked on the trigger.
MSG_GEN_ACTIVATE_INTERACTION_DEFAULT
sends a
MSG_GEN_ACTIVATE
to the object marked as the default within a GenInteraction. This message travels up the generic tree to the first independently-displayable object (usually a dialog box) and then activates the default object for that windowed object.
void MSG_GEN_APPLY();
This message is sent to property gadgets to cause them to dispatch their "apply" message and at the same time reset any modified states associated with that object. If this message is sent to a GenInteraction within a dialog box, the GenInteraction will propagate this message to all of its children.
This message may be sent by a GIT_PROPERTIES Interaction upon receipt of
MSG_GEN_GUP_INTERACTION_COMMAND
with IC_APPLY. You may send this message yourself if you wish for changes in state within the dialog box to be reflected in your application.
Source: Usually a GIT_PROPERTIES Interaction (with an IC_APPLY trigger). You may send this message yourself to force generic objects to apply their changes.
Destination: Any GenInteraction within a dialog box, or any gadget with properties (GenItemGroup, GenValue, etc.).
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
Boolean MSG_GEN_PRE_APPLY();
A properties dialog will send this message before
MSG_GEN_APPLY
. Geodes may use this to do validation of settings or to prepare for applying of changes.
Source: Normally sent by properties dialog before sending
MSG_GEN_APPLY
.
Destination: Same as
MSG_GEN_APPLY
.
Parameters: None.
Return: Return true if error.
Interception: Must be intercepted to handle properties validation.
void MSG_GEN_POST_APPLY();
A properties dialog will send this message after
MSG_GEN_APPLY
. This can be used to clean up after application of changes.
Source: Normally sent by properties dialog after sending
MSG_GEN_APPLY
.
Destination: Same as
MSG_GEN_APPLY
.
Parameters: None.
Return: Nothing.
Interception: Can be intercepted to handle clean up work after
MSG_GEN_APPLY
.
void MSG_GEN_RESET();
This message, if sent to a GenInteraction within a GIT_PROPERTIES dialog box, will propagate to all children below the receiving Interaction. This message provides a convenient means to reset properties within gadgets. There is no default handling of
MSG_GEN_RESET
by generic objects. You must provide the reset behavior yourself by subclassing individual objects.
Source: Usually a GIT_PROPERTIES GenInteraction (with an IC_RESET trigger), or your application.
Destination: Any GenInteraction within a dialog box, or any gadget subclassed to handle
MSG_GEN_RESET
.
Parameters: None.
Return: Nothing.
Interception: Your subclassed generic object should intercept this message to provide its own custom reset behavior.
void MSG_GEN_MAKE_APPLYABLE();
This message is typically sent to a dialog GenInteraction
to enable its default "apply" and "reset" buttons. This message also sets up the proper user and actual states for the object. This message is useful in the implementation of custom gadgets.
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object. (This message is only meaningful for objects within a GIT_PROPERTIES GenInteraction, however.)
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_MAKE_NOT_APPLYABLE();
This message is typically sent to a dialog GenInteraction
to disable its default "apply" and "reset" buttons. This message is useful in the implementation of custom gadgets.
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object. (This message is only meaningful for objects within a GIT_PROPERTIES GenInteraction, however.)
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
void MSG_GEN_ACTIVATE();
This message manually activates an object as if the user had activated it in the manner defined by the specific UI. For example, this message may activate GenTriggers without use of the mouse. This message causes all normal visual cues associated with the activation.
Source: Unrestricted.
Destination: Usually sent by an object to itself.
Parameters: None.
Return: Nothing.
Interception: Generally not intercepted.
Boolean MSG_GEN_ACTIVATE_INTERACTION_DEFAULT();
This message acts on a default exclusive object within a window, forcing that object to activate as in
MSG_GEN_ACTIVATE
. This message travels up the visible tree to the first WIN_GROUP (windowed) object and sends a
MSG_GEN_ACTIVATE
to the default object selected there. (This default object is typically marked with the hint
HINT_DEFAULT_DEFAULT_ACTION
.)
Source: Unrestricted.
Destination: Any GS_USABLE
GenClass
object (usually within a dialog box).
Parameters: None.
Return: Will return true if the object was activated, false if it was not.
Interception: Generally not intercepted.
GEOS SDK TechDocs
|
|
9 Setting Sizes
|
11 Focus Modifications