2 #include <msp/core/refptr.h>
31 void Panel::set_layout(Layout *l)
33 l->set_container(*this);
38 void Panel::autosize()
44 void Panel::render_special(const Part &part, GL::Renderer &renderer) const
46 if(part.get_name()=="children")
48 for(list<Container::Child *>::const_iterator i=children.begin(); i!=children.end(); ++i)
49 if((*i)->widget->is_visible())
50 (*i)->widget->render(renderer);
54 void Panel::on_geometry_change()
60 void Panel::on_child_added(Widget &wdg)
64 layout->add_widget(wdg);
65 signal_autosize_changed.emit();
69 void Panel::on_child_removed(Widget &wdg)
73 layout->remove_widget(wdg);
74 signal_autosize_changed.emit();
79 Panel::Loader::Loader(Panel &p, map<string, Widget *> &m):
84 add("button", &Loader::child<Button>);
85 add("dropdown", &Loader::child<Dropdown>);
86 add("entry", &Loader::child<Entry>);
87 add("hslider", &Loader::child<HSlider>);
88 add("indicator", &Loader::child<Indicator>);
89 add("label", &Loader::child<Label>);
90 add("list", &Loader::child<List>);
91 add("panel", &Loader::panel);
92 add("toggle", &Loader::child<Toggle>);
93 add("vslider", &Loader::child<VSlider>);
97 void Panel::Loader::child(const string &n)
99 RefPtr<T> chl = new T();
102 wdg_map[n] = chl.release();
105 void Panel::Loader::panel(const string &n)
107 RefPtr<Panel> p = new Panel();
108 load_sub(*p, wdg_map);
110 wdg_map[n] = p.release();