GEOS SDK TechDocs
|
|
5.4 Replacing Default Triggers
The
GenClass
attribute GA_SIGNAL_INTERACTION_COMPLETE is used to indicate that a response trigger completes a single user interaction within the dialog that contains it. Depending on the context (modality, type, hints) of the dialog, the Specific UI may or may not dismiss the dialog box.
For example, the "Yes" trigger (IC_YES) in a GIT_AFFIRMATION dialog might dismiss a dialog if the trigger is also marked GA_SIGNAL_INTERACTION_COMPLETE because the user has given the dialog final information. An "Apply" trigger (IC_APPLY) marked GA_SIGNAL_INTERACTION_COMPLETE might not dismiss its dialog because it might be useful to use the dialog to repeatedly apply different properties. This behavior depends on the Specific UI.
All standard response triggers provided by the Specific UI with the various
GenInteractionType
, except for the IC_RESET trigger), have GA_SIGNAL_INTERACTION_COMPLETE set. The IC_RESET trigger normally does not indicate the end of user interaction with the dialog and thus should not dismiss the dialog under any circumstances.
In OSF/Motif, a trigger marked GA_SIGNAL_INTERACTION_COMPLETE will dismiss the dialog containing the trigger if the dialog is not of
GenInteractionType
GIT_PROPERTIES or GIT_COMMAND, or if the dialog is modal. A non-modal GIT_PROPERTIES or GIT_COMMAND dialog is not dismissed when its response triggers are activated. If you do wish to dismiss the dialog in such cases, you can mark the dialog box with
HINT_INTERACTION_SINGLE_USAGE
. This hint tells the Specific UI that it expects the user will only use the dialog box once each time it is brought up. You may also want to do this if the dialog box is infrequently used.
Similarly,
HINT_INTERACTION_FREQUENT_USAGE
allows a dialog to stay up even if one of its GA_SIGNAL_INTERACTION_COMPLETE triggers would normally bring it down. In most cases, however, it is advisable to remove the GA_SIGNAL_INTERACTION_COMPLETE attribute on whichever triggers should not dismiss the Interaction. This is preferred over adding
HINT_INTERACTION_FREQUENT_USAGE
because the Specific UI may ignore the hint, but it cannot ignore the state of its GA_SIGNAL_INTERACTION_COMPLETE bit.
When using
HINT_INTERACTION_FREQUENT_USAGE
, you should ensure that the dialog is dismissed. In most cases, this can be done by sending
MSG_GEN_GUP_INTERACTION_COMMAND
with IC_DISMISS to the Interaction. This can be done in an action handler for a response trigger.
GEOS SDK TechDocs
|
|
5.4 Replacing Default Triggers