1 #include <msp/gltk/button.h>
2 #include <msp/gltk/label.h>
3 #include <msp/strings/format.h>
4 #include "buttondemo.h"
9 ButtonDemo::ButtonDemo()
11 set_layout(new GLtk::Layout);
13 GLtk::Label *lbl_message = new GLtk::Label;
16 vector<GLtk::Button *> buttons;
17 for(unsigned i=0; i<5; ++i)
19 string text = format("Button %d", i+1);
20 GLtk::Button *btn = new GLtk::Button(text);
21 btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(lbl_message, &GLtk::Label::set_text), text+" was clicked"));
22 buttons.push_back(btn);
26 layout->add_constraint(*btn, GLtk::Layout::COPY_WIDTH, *buttons[0]);
27 layout->add_constraint(*btn, GLtk::Layout::COPY_HEIGHT, *buttons[0]);
31 layout->add_constraint(*btn, GLtk::Layout::RIGHT_OF, *buttons[i-1]);
32 layout->add_constraint(*btn, GLtk::Layout::ALIGN_TOP, *buttons[i-1]);
36 layout->add_constraint(*btn, GLtk::Layout::BELOW, *buttons[i-1]);
37 layout->add_constraint(*btn, GLtk::Layout::ALIGN_LEFT, *buttons[i-1]);
42 layout->add_constraint(*buttons[0], GLtk::Layout::BELOW, *lbl_message);
44 GLtk::Button *btn = new GLtk::Button("A big one");
45 btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(lbl_message, &GLtk::Label::set_text), "The big button was clicked"));
46 buttons.push_back(btn);
48 layout->add_constraint(*btn, GLtk::Layout::ALIGN_TOP, *buttons[0]);
49 layout->add_constraint(*btn, GLtk::Layout::ALIGN_BOTTOM, *buttons[1]);
50 layout->add_constraint(*btn, GLtk::Layout::ALIGN_LEFT, *buttons[3]);
51 layout->add_constraint(*btn, GLtk::Layout::ALIGN_RIGHT, *buttons[4]);