[wxruby-users] lose focus event?

Alex Fenton
Mon, 21 Jan 2008 00:07:29 -0000

Hi David

David Morton wrote:
> I see that event firing, but it appears global, firing for everything
> that loses focus.  I''ve tried to identify what object was
responsible
> via #get_event_object, #get_id, and  #id, but no luck so far.  How do
> I associate it with the combo box?
>
FocusEvents aren''t CommandEvents, so they don''t
"bubble" upwards to
parent widgets. So I think you need to call the evt_kill_focus method on
each ComboBox instance. Have a look at the event handling tutorial in
the main API docs for more info.

get_event_object should return the widget that triggered any event.

>       cbo = ComboBox.new(helloframe,
>                          :pos =>Point.new(10,10),
>                          :choices => ["foo","bar"],
>                          :value => "asdasd",
>                          :style => CB_SORT)
>       helloframe.show()
>       evt_set_focus() {|w|
>         # how do I tie this to cbo ?
>         }
>     end
try:
cbo.evt_set_focus { ... }

Note that there''s a bug on OS X that means ComboBoxes aren''t
firing
evt_kill_focus for some reason. But it should work fine on Windows or Linux.

hth
alex