1 #include <msp/gl/framebuffer.h>
2 #include <msp/gltk/layout.h>
3 #include "buttondemo.h"
4 #include "dialogdemo.h"
5 #include "dropdowndemo.h"
7 #include "toggledemo.h"
8 #include "widgetdemo.h"
13 WidgetDemo::WidgetDemo(int, char **):
17 resources("basic.skin"),
18 root(resources, window)
20 window.set_title("GLtk widget demo");
21 window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &WidgetDemo::exit), 0));
23 GLtk::Layout &root_layout = root.get_or_create_layout();
26 root_layout.set_expand(selector, false, true);
28 add_demo<ButtonDemo>("Button");
29 add_demo<DialogDemo>("Dialog");
30 add_demo<DropdownDemo>("Dropdown");
31 add_demo<EntryDemo>("Entry");
32 add_demo<ToggleDemo>("Toggle");
34 view.set_content(&root);
37 int WidgetDemo::main()
40 return Application::main();
43 void WidgetDemo::tick()
50 void WidgetDemo::add_demo(const string &title)
52 GLtk::Layout &root_layout = root.get_or_create_layout();
54 T &demo = root.add_new<T>();
55 demo.set_visible(false);
56 root_layout.add_constraint(demo, GLtk::Layout::RIGHT_OF, selector);
57 root_layout.set_expand(demo, true, true);
59 selector.add_demo(title, &demo);