-void Panel::button_press(int x, int y, unsigned btn)
-{
- if(pointer_grabbed)
- {
- const Geometry &cgeom = pointer_focus->get_geometry();
- pointer_focus->button_press(x-cgeom.x, y-cgeom.y, btn);
- }
- else
- {
- if(Widget *wdg = get_child_at(x, y))
- {
- set_pointer_focus(wdg);
- if(wdg->is_focusable())
- set_input_focus(wdg);
- }
- Container::button_press(x, y, btn);
- }
-}
-
-void Panel::button_release(int x, int y, unsigned btn)
-{
- if(pointer_grabbed)
- {
- const Geometry &cgeom = pointer_focus->get_geometry();
- pointer_focus->button_release(x-cgeom.x, y-cgeom.y, btn);
- }
- else
- Container::button_release(x, y, btn);
-}
-
-void Panel::pointer_motion(int x, int y)
-{
- if(pointer_grabbed)
- {
- const Geometry &cgeom = pointer_focus->get_geometry();
- pointer_focus->pointer_motion(x-cgeom.x, y-cgeom.y);
- }
- else
- {
- set_pointer_focus(get_child_at(x, y));
- Container::pointer_motion(x, y);
- }
-}
-
-void Panel::pointer_leave()
-{
- Container::pointer_leave();
- set_pointer_focus(0);
-}
-
-void Panel::key_press(unsigned key, unsigned mod)
-{
- if(input_focus)
- input_focus->key_press(key, mod);
-}
-
-void Panel::key_release(unsigned key, unsigned mod)
-{
- if(input_focus)
- input_focus->key_release(key, mod);
-}
-
-void Panel::character(wchar_t ch)
-{
- if(input_focus)
- input_focus->character(ch);
-}
-
-void Panel::focus_out()
-{
- set_input_focus(0);
- Widget::focus_out();
-}
-