= setDialogEvent =
== Syntax == int setDialogEvent(int state) == Arguments == :state ::An integer of bitwise flags of events to enable. Set to 1 to enable Init events, 2 to enable Cancel events, 4 to enable Keypress events. == Return == Always returns true. == Description == Enables certain dialog events to be processed / triggered in your own FilterMeister code. You can use this function to handle when keys are pressed while your filter dialog has user focus, to run some code when the filter is first initialized, or to run some code before the Cancel button/event is processed. == Comment == Note that setDialogEvent can only enable events, it cannot remove / deregister / clear them. To clear an event hook, you must use clearDialogEvent. (Behind the scenes, setDialogEvent does a bitwise-OR operation against the internal event state variable, to ensure that previously set bits enabling events remain enabled.) There appears to be a bug in Beta 9g and possibly newer FilterMeister versions that prevents FME_CANCEL events from being processed in code, even if you use this function to enabled Cancel events. == 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 == clearDialogEvent, FME_INIT, FME_CANCEL, FME_KEYDOWN, FME_KEYUP |