- set_size(370, 40);
-
- GLtk::Button *btn;
- GLtk::Label *lbl;
-
- add(*(btn=new GLtk::Button(res, "Load")));
- btn->set_geometry(GLtk::Geometry(5, 10, 40, 24));
-
- add(*(btn=new GLtk::Button(res, "Save")));
- btn->set_geometry(GLtk::Geometry(45, 10, 40, 24));
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::save));
-
- add(*(btn=new GLtk::Button(res, "Quit")));
- btn->set_geometry(GLtk::Geometry(85, 10, 40, 24));
- btn->set_style("red");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::quit));
-
- add(*(btn=new GLtk::Button(res, "Trnt")));
- btn->set_geometry(GLtk::Geometry(135, 10, 40, 24));
-
- add(*(btn=new GLtk::Button(res, "Sens")));
- btn->set_geometry(GLtk::Geometry(175, 10, 40, 24));
-
- add(*(lbl=new GLtk::Label(res, "Routes:")));
- lbl->set_geometry(GLtk::Geometry(225, 22, 40, 13));
-
- add(*(drp_routes=new GLtk::Dropdown(res)));
- drp_routes->set_geometry(GLtk::Geometry(225, 5, 100, 17));
- drp_routes->append("(new route)");
- drp_routes->signal_item_selected.connect(sigc::mem_fun(this, &Toolbar::route_selected));
-
- add(*(btn=new GLtk::Button(res, "AddT")));
- btn->set_geometry(GLtk::Geometry(325, 10, 40, 24));
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::add_selection_to_route));
-
- designer.get_layout()->signal_route_added.connect(sigc::hide(sigc::mem_fun(this, &Toolbar::update_routes)));
- designer.get_layout()->signal_route_removed.connect(sigc::hide(sigc::mem_fun(this, &Toolbar::update_routes)));
- update_routes();
+ set_focusable(false);
+ set_layout(new GLtk::Layout);
+ GLtk::Row row(*layout);
+ layout->set_margin(GLtk::Sides(6, 10));
+ layout->set_column_spacing(10);
+
+ add(*(lbl_title = new GLtk::Label(name)));
+
+ add(*(btn_expand = new GLtk::Button));
+ btn_expand->set_style("arrow_left");
+ btn_expand->set_tooltip("Collapse toolbar");
+ btn_expand->signal_clicked.connect(sigc::mem_fun(this, &Toolbar::expand_clicked));
+
+ add(*(pnl_content = new GLtk::Panel));
+ pnl_content->set_style("group");
+ GLtk::Layout *content_layout = new GLtk::Layout;
+ // XXX This needs to get deleted somehow
+ new GLtk::Row(*content_layout);
+ pnl_content->set_layout(content_layout);
+ content_layout->set_margin(0);