[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Widget event handlers

Joe Means wrote:
> In a widget program [TranslateAxies] I am writing I specify an event
> handler function for each widget that can generate an event.  I specify
> event handlers for each text and button widget but not for base and
> label widgets [no bases are resizeable].  No base widgets can be
> resized.  The GUI includes text boxes for user input.  When I ran the
> program initially, put text in any box and clicked enter,  I always got
> the error:
> Attempt to call undefined procedure/function: 'TRANSLATEAXIES_EVENT'.
> So I put a do-nothing procedure with this name in the
> TranslateAxies_EventCB file.  Now I do not get the error.  Also, all the
> text widgets and their event functions seem to run fine [when I click
> return after entering a value in the text field], because their values
> in the info structure are updated OK.
> It does not seem like I need this do-nothing proceedure.  Can anyone
> tell me why it is needed?
> Also, when I type text in a text widget it will not call the event
> function to update the value in the info structure if I click tab to
> move out of the field.  Why is this?

You probably use EVENT_FUNC and return the event at the end, in wich
case the next
eventhandler in the eventhandler-tree is called (and so on, earlier or
So use EVENT_PRO or don't return anything from
your EVENT_FUNC (even the latter is not best style, but works).

Regarding your second question, just set /ALL_EVENTS keyword in your 
widget_text function. Then the eventhandler is called after every change
in the widget, keeping your info structure always up to date.