[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
later
'TRANSLATEAXIES_EVENT').
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.
cheers,
marc