--- /dev/null
+#include <msp/gltk/label.h>
+#include <msp/gltk/toggle.h>
+#include <msp/strings/format.h>
+#include "toggledemo.h"
+
+using namespace Msp;
+
+ToggleDemo::ToggleDemo()
+{
+ set_layout(new GLtk::Layout);
+
+ GLtk::Label *lbl = new GLtk::Label("Standalone toggles:");
+ add(*lbl);
+
+ GLtk::Widget *prev = lbl;
+ for(unsigned i=0; i<4; ++i)
+ {
+ GLtk::Toggle *tgl = new GLtk::Toggle(format("Toggle %d", i+1));
+ add(*tgl);
+
+ layout->add_constraint(*tgl, GLtk::Layout::BELOW, *prev);
+ layout->add_constraint(*tgl, GLtk::Layout::ALIGN_LEFT, *prev);
+ layout->add_constraint(*tgl, GLtk::Layout::ALIGN_RIGHT, *prev);
+
+ prev = tgl;
+ }
+
+ for(unsigned i=0; i<2; ++i)
+ {
+ GLtk::Panel *group = new GLtk::Panel;
+ add(*group);
+ layout->add_constraint(*group, (i==0 ? GLtk::Layout::BELOW : GLtk::Layout::RIGHT_OF), *prev);
+ if(i>0)
+ layout->add_constraint(*group, GLtk::Layout::ALIGN_TOP, *prev);
+ group->set_layout(new GLtk::Layout);
+
+ lbl = new GLtk::Label(format("Group %d:", i+1));
+ group->add(*lbl);
+
+ prev = lbl;
+ for(unsigned j=0; j<4; ++j)
+ {
+ GLtk::Toggle *tgl = new GLtk::Toggle(format("Option %d", j+1));
+ tgl->set_style("option");
+ tgl->set_exclusive(true);
+ group->add(*tgl);
+
+ group->get_layout()->add_constraint(*tgl, GLtk::Layout::BELOW, *prev);
+ group->get_layout()->add_constraint(*tgl, GLtk::Layout::ALIGN_LEFT, *prev);
+ group->get_layout()->add_constraint(*tgl, GLtk::Layout::ALIGN_RIGHT, *prev);
+
+ prev = tgl;
+ }
+
+ prev = group;
+ }
+}