- set_pointer_focus(0, 0);
-}
-
-void Panel::key_press(unsigned key, unsigned mod, wchar_t ch)
-{
- if(input_focus)
- input_focus->key_press(key, mod, ch);
-}
-
-void Panel::key_release(unsigned key, unsigned mod)
-{
- if(input_focus)
- input_focus->key_release(key, mod);
-}
-
-void Panel::focus_out()
-{
- set_input_focus(0);
-}
-
-void Panel::child_hidden(Widget &wdg)
-{
- if(&wdg==pointer_focus)
- set_pointer_focus(0, 0);
-}
-
-void Panel::render_special(const Part &part) const
-{
- if(part.get_name()=="children")
- {
- for(ChildSeq::const_iterator i=children.begin(); i!=children.end(); ++i)
- if((*i)->is_visible())
- (*i)->render();
- }
-}
-
-void Panel::set_pointer_focus(Widget *wdg, int grab)
-{
- if(grab>0 && !wdg)
- throw InvalidParameterValue("Can't grab on null widget");
-
- if(wdg!=pointer_focus)
- {
- if(pointer_focus)
- pointer_focus->pointer_leave();
-
- pointer_focus=wdg;
-
- if(pointer_focus)
- pointer_focus->pointer_enter();
- }
-
- pointer_grab=grab;
-}
-
-void Panel::set_input_focus(Widget *wdg)
-{
- if(wdg!=input_focus)