X-Git-Url: http://git.tdb.fi/?p=libs%2Fgltk.git;a=blobdiff_plain;f=examples%2Fwidgetdemo%2Fwidgetdemo.cpp;fp=examples%2Fwidgetdemo%2Fwidgetdemo.cpp;h=1332ee1ffee363edc1e2597180728666a690f48c;hp=b1482e72ae93f10c9652f5cadacdc954e6afbaae;hb=3ac64a18ea1825174b84adb8570368df51e66231;hpb=72de2dce79c76da9931e6bc80e59743526cc18fe diff --git a/examples/widgetdemo/widgetdemo.cpp b/examples/widgetdemo/widgetdemo.cpp index b1482e7..1332ee1 100644 --- a/examples/widgetdemo/widgetdemo.cpp +++ b/examples/widgetdemo/widgetdemo.cpp @@ -25,11 +25,11 @@ WidgetDemo::WidgetDemo(int, char **): root.add(selector); root_layout.set_expand(selector, false, true); - add_demo("Button", new ButtonDemo); - add_demo("Dialog", new DialogDemo); - add_demo("Dropdown", new DropdownDemo); - add_demo("Entry", new EntryDemo); - add_demo("Toggle", new ToggleDemo); + add_demo("Button"); + add_demo("Dialog"); + add_demo("Dropdown"); + add_demo("Entry"); + add_demo("Toggle"); view.set_content(&root); } @@ -46,14 +46,15 @@ void WidgetDemo::tick() view.render(); } -void WidgetDemo::add_demo(const string &title, GLtk::Panel *demo) +template +void WidgetDemo::add_demo(const string &title) { GLtk::Layout &root_layout = root.get_or_create_layout(); - demo->set_visible(false); - root.add(*demo); - root_layout.add_constraint(*demo, GLtk::Layout::RIGHT_OF, selector); - root_layout.set_expand(*demo, true, true); + T &demo = root.add_new(); + demo.set_visible(false); + root_layout.add_constraint(demo, GLtk::Layout::RIGHT_OF, selector); + root_layout.set_expand(demo, true, true); - selector.add_demo(title, demo); + selector.add_demo(title, &demo); }