]> git.tdb.fi Git - r2c2.git/blob - source/designer/toolbar.cpp
Avoid arriving too early if there's an unexpected stop on the last route
[r2c2.git] / source / designer / toolbar.cpp
1 #include <msp/gltk/row.h>
2 #include "toolbar.h"
3
4 using namespace std;
5 using namespace Msp;
6
7 Toolbar::Toolbar(const string &name):
8         expanded(true)
9 {
10         set_focusable(false);
11         set_layout(new GLtk::Layout);
12         GLtk::Row row(*layout);
13         layout->set_margin(GLtk::Sides(6, 10));
14         layout->set_column_spacing(10);
15
16         add(*(lbl_title = new GLtk::Label(name)));
17
18         add(*(btn_expand = new GLtk::Button));
19         btn_expand->set_style("arrow_left");
20         btn_expand->set_tooltip("Collapse toolbar");
21         btn_expand->signal_clicked.connect(sigc::mem_fun(this, &Toolbar::expand_clicked));
22
23         add(*(pnl_content = new GLtk::Panel));
24         pnl_content->set_style("group");
25         GLtk::Layout *content_layout = new GLtk::Layout;
26         // XXX This needs to get deleted somehow
27         new GLtk::Row(*content_layout);
28         pnl_content->set_layout(content_layout);
29         content_layout->set_margin(0);
30 }
31
32 void Toolbar::expand(bool e)
33 {
34         expanded = e;
35         btn_expand->set_style(expanded ? "arrow_left" : "arrow_right");
36         btn_expand->set_tooltip(expanded ? "Collapse toolbar" : "Expand toolbar");
37         pnl_content->set_visible(expanded);
38         signal_autosize_changed.emit();
39
40         signal_expanded.emit(expanded);
41 }
42
43 void Toolbar::expand_clicked()
44 {
45         expand(!expanded);
46 }