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 get_or_create_layout();
13 GLtk::Label *lbl_message = &add_new<GLtk::Label>();
15 vector<GLtk::Button *> buttons;
16 for(unsigned i=0; i<5; ++i)
18 string text = format("Button %d", i+1);
19 GLtk::Button *btn = &add_new<GLtk::Button>(text);
20 btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(lbl_message, &GLtk::Label::set_text), text+" was clicked"));
21 buttons.push_back(btn);
24 layout->add_constraint(*btn, GLtk::Layout::COPY_WIDTH, *buttons[0]);
25 layout->add_constraint(*btn, GLtk::Layout::COPY_HEIGHT, *buttons[0]);
29 layout->add_constraint(*btn, GLtk::Layout::RIGHT_OF, *buttons[i-1]);
30 layout->add_constraint(*btn, GLtk::Layout::ALIGN_TOP, *buttons[i-1]);
34 layout->add_constraint(*btn, GLtk::Layout::BELOW, *buttons[i-1]);
35 layout->add_constraint(*btn, GLtk::Layout::ALIGN_LEFT, *buttons[i-1]);
40 layout->add_constraint(*buttons[0], GLtk::Layout::BELOW, *lbl_message);
42 GLtk::Button *btn = &add_new<GLtk::Button>("A big one");
43 btn->signal_clicked.connect(sigc::bind(sigc::mem_fun(lbl_message, &GLtk::Label::set_text), "The big button was clicked"));
44 buttons.push_back(btn);
45 layout->add_constraint(*btn, GLtk::Layout::ALIGN_TOP, *buttons[0]);
46 layout->add_constraint(*btn, GLtk::Layout::ALIGN_BOTTOM, *buttons[1]);
47 layout->add_constraint(*btn, GLtk::Layout::ALIGN_LEFT, *buttons[3]);
48 layout->add_constraint(*btn, GLtk::Layout::ALIGN_RIGHT, *buttons[4]);