Older Newer
Fri, 06 Dec 2019 03:10:47 . . . . SyneRyder [First function definition]


Changes by last author:

Added:
= clearDialogEvent =

== Syntax ==

int clearDialogEvent(int state)

== Arguments ==

:state

::An integer of bitwise flags of events to disable. Set to 1 to disable Init events, 2 to disable Cancel events, 4 to disable Keypress events.

== Return ==

Always returns true.

== Description ==

Disables certain dialog events from being processed / triggered in your own FilterMeister code. You might use this function to stop keypresses from being processed by your code, or to let FilterMeister process all cancel events internally.

== Comment ==

Note that clearDialogEvent can only disable / deregister / clear events. To enable an event & process it, you must use setDialogEvent.

There appears to be a bug in Beta 9g and possibly newer FilterMeister versions that prevents FME_CANCEL events from being processed in code, regardless of whether clearDialogEvent was called or not.

== Example ==

<code>

ctl[0]: CHECKBOX, "Enable Init Events"

ctl[1]: CHECKBOX, "Enable Cancel Events"

ctl[2]: CHECKBOX, "Enable Keypress Events"

ctl[4]: STATICTEXT, ""

ctl[5]: STATICTEXT, ""

OnCtl(n): {

if (e == FME_INIT) {

Info("The Init event was intercepted.");

return true;

}

if (e == FME_CANCEL) {

Info("Cancel event was intercepted!");

return true;

}

if (e == FME_KEYDOWN) {

printf("Key down!");

return true;

}

if (n >= 0 && n<=2 && e == FME_CLICKED) {

int statevalue = ctl(0)*1 + ctl(1)*2 + ctl(2)*4;

// Enable events we turned on

setDialogEvent( statevalue );

sprintf(str1, "setDialogEvent(%d) called", statevalue);

setCtlText(4, str1);

// Clear events that we turned off

clearDialogEvent( statevalue ^ 7); // Use bitwise XOR

sprintf(str2, "clearDialogEvent(%d) called", statevalue ^ 7);

setCtlText(5, str2);

}

return false;

}

</code>

== See Also ==

setDialogEvent, FME_INIT, FME_CANCEL, FME_KEYDOWN, FME_KEYUP