X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=examples%2Fwidgetdemo%2Fwidgetdemo.cpp;h=1332ee1ffee363edc1e2597180728666a690f48c;hb=HEAD;hp=fd52bf61f2d23098fcec77afa4a98a2872d0be3d;hpb=68c6a79c86c595fa2ec5a7109568d5baefc50afd;p=libs%2Fgltk.git diff --git a/examples/widgetdemo/widgetdemo.cpp b/examples/widgetdemo/widgetdemo.cpp index fd52bf6..1332ee1 100644 --- a/examples/widgetdemo/widgetdemo.cpp +++ b/examples/widgetdemo/widgetdemo.cpp @@ -1,6 +1,7 @@ #include #include #include "buttondemo.h" +#include "dialogdemo.h" #include "dropdowndemo.h" #include "entrydemo.h" #include "toggledemo.h" @@ -11,21 +12,26 @@ using namespace Msp; WidgetDemo::WidgetDemo(int, char **): window(800, 600), + gl_device(window), + view(window), resources("basic.skin"), root(resources, window) { window.set_title("GLtk widget demo"); window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &WidgetDemo::exit), 0)); - root.set_layout(new GLtk::Layout); + GLtk::Layout &root_layout = root.get_or_create_layout(); root.add(selector); - root.get_layout()->set_expand(selector, false, true); + root_layout.set_expand(selector, false, true); - add_demo("Button", new ButtonDemo); - 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); } int WidgetDemo::main() @@ -37,17 +43,18 @@ int WidgetDemo::main() void WidgetDemo::tick() { window.tick(); - GL::Framebuffer::system().clear(GL::COLOR_BUFFER_BIT); - root.render(); - window.swap_buffers(); + view.render(); } -void WidgetDemo::add_demo(const string &title, GLtk::Panel *demo) +template +void WidgetDemo::add_demo(const string &title) { - demo->set_visible(false); - root.add(*demo); - root.get_layout()->add_constraint(*demo, GLtk::Layout::RIGHT_OF, selector); - root.get_layout()->set_expand(*demo, true, true); + GLtk::Layout &root_layout = root.get_or_create_layout(); + + 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); }