Menus and Dialog Boxes: 5.2 Interaction Commands: Dialog Control

Up: GEOS SDK TechDocs | Up | Prev: 5.1 InteractionCommand Types | Next: 5.3 Standard Response Triggers
MSG_GEN_GUP_INTERACTION_COMMAND, MSG_GEN_INTERACTION_ACTIVATE_COMMAND

There are two ways of delivering an InteractionCommand to an Interaction. The first is through the GenClass message MSG_GEN_GUP_INTERACTION_COMMAND . In most cases, this is the message you will use to deliver commands to your dialog boxes. For example, you may send MSG_GEN_GUP_INTERACTION_COMMAND with IC_DISMISS to dismiss a dialog box. The second involves sending MSG_GEN_INTERACTION_ACTIVATE_COMMAND with one of the specified InteractionCommand types.

The system sends this message whenever the user activates a response trigger with null action fields. The system will pass the command in ATTR_GEN_TRIGGER_INTERACTION_COMMAND vardata with the message up the generic tree until handled by the first GIV_DIALOG Interaction. Handling may include unblocking and returning a UserDoDialog() response value, applying or resetting properties, and dismissing, depending on the InteractionCommand . Note that if an action is specified in the trigger's instance data, MSG_GEN_GUP_INTERACTION_COMMAND will not be sent--the specified action will instead.

In OSF/Motif, dialogs perform the following default activity with their various InteractionCommand s:

IC_DISMISS
This command dismisses the dialog, resets gadgets if GIT_PROPERTIES and modal (i.e. "Cancel" trigger).
IC_APPLY
This command applies gadgets (whether or not GIT_PROPERTIES), then unblocks and returns a UserDoDialog() value if needed.
IC_RESET
This command resets gadgets (whether or not GIT_PROPERTIES), then unblocks and returns a UserDoDialog() value if needed.
IC_INTERACTION_COMPLETE
This command dismisses, depending on dialog context, the dialog box and unblocks and returns a UserDoDialog() value if needed.

All other InteractionCommands will just unblock and return a UserDoDialog() value if needed.

GIV_DIALOG GenInteractions are the most likely recipients of any InteractionCommand s. Popup Interactions only support IC_DISMISS and IC_INTERACTION_COMPLETE and will pass other InteractionCommand s up the generic tree. Any other Interactions (e.g. sub-groups) will always pass MSG_GEN_GUP_INTERACTION_COMMAND up the generic tree.

MSG_GEN_INTERACTION_ACTIVATE_COMMAND is a higher-level function. When sent to a dialog GenInteraction with a relevant InteractionCommand , it will find the standard trigger for that InteractionCommand and activate it. This can be a Specific UI-supplied trigger or a replacement trigger supplied by the application. If no such trigger exists, the message sends MSG_GEN_GUP_INTERACTION_COMMAND to perform the default handling. This message is only supported by dialog Interactions.

MSG_GEN_INTERACTION_ACTIVATE_COMMAND

void	MSG_GEN_INTERACTION_ACTIVATE_COMMAND(
        word	command);

This message activates a GenTrigger having the passed command in its ATTR_GEN_TRIGGER_INTERACTION_COMMAND; if no such trigger exists, this message calls MSG_GEN_GUP_INTERACTION_COMMAND to the Interaction itself with the supplied command value. Note that InteractionCommand type IC_INTERACTION_COMPLETE should not be used as this is a notification rather than a command.

Source: Unrestricted.

Destination: Any non GIT_ORGANIZATIONAL GenInteraction object.

Parameters: command InteractionCommand to activate (except IC_INTERACTION_COMPLETE and IC_NULL).

Return: Nothing.

Interception: May be intercepted to change or supplement default functionality of standard or custom interaction commands. Standard response triggers will use this message, so intercepting this message will allow changing the default behavior of these triggers without having to replace them with your own triggers.


Up: GEOS SDK TechDocs | Up | Prev: 5.1 InteractionCommand Types | Next: 5.3 Standard Response Triggers