]> git.tdb.fi Git - libs/gltk.git/blobdiff - examples/widgetdemo/toggledemo.cpp
Rework how widget ownership works in Container
[libs/gltk.git] / examples / widgetdemo / toggledemo.cpp
index cc928a0fafe66ad40c6039a25bcba2b5679146e2..2cb6df53735b1028b6a3689667cbfe62f653df4c 100644 (file)
@@ -7,16 +7,14 @@ using namespace Msp;
 
 ToggleDemo::ToggleDemo()
 {
-       set_layout(new GLtk::Layout);
+       get_or_create_layout();
 
-       GLtk::Label *lbl = new GLtk::Label("Standalone toggles:");
-       add(*lbl);
+       GLtk::Label *lbl = &add_new<GLtk::Label>("Standalone toggles:");
 
        GLtk::Widget *prev = lbl;
        for(unsigned i=0; i<4; ++i)
        {
-               GLtk::Toggle *tgl = new GLtk::Toggle(format("Toggle %d", i+1));
-               add(*tgl);
+               GLtk::Toggle *tgl = &add_new<GLtk::Toggle>(format("Toggle %d", i+1));
 
                layout->add_constraint(*tgl, GLtk::Layout::BELOW, *prev);
                layout->add_constraint(*tgl, GLtk::Layout::ALIGN_LEFT, *prev);
@@ -27,27 +25,24 @@ ToggleDemo::ToggleDemo()
 
        for(unsigned i=0; i<2; ++i)
        {
-               GLtk::Panel *group = new GLtk::Panel;
-               add(*group);
+               GLtk::Panel *group = &add_new<GLtk::Panel>();
                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);
+               GLtk::Layout &group_layout = group->get_or_create_layout();
 
-               lbl = new GLtk::Label(format("Group %d:", i+1));
-               group->add(*lbl);
+               lbl = &group->add_new<GLtk::Label>(format("Group %d:", i+1));
 
                prev = lbl;
                for(unsigned j=0; j<4; ++j)
                {
-                       GLtk::Toggle *tgl = new GLtk::Toggle(format("Option %d", j+1));
+                       GLtk::Toggle *tgl = &group->add_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);
+                       group_layout.add_constraint(*tgl, GLtk::Layout::BELOW, *prev);
+                       group_layout.add_constraint(*tgl, GLtk::Layout::ALIGN_LEFT, *prev);
+                       group_layout.add_constraint(*tgl, GLtk::Layout::ALIGN_RIGHT, *prev);
 
                        prev = tgl;
                }