- set_size(640, 40);
-
- GLtk::Button *btn;
- GLtk::Label *lbl;
-
- add(*(btn=new GLtk::Button("Load")));
- btn->set_geometry(GLtk::Geometry(5, 10, 40, 24));
- btn->set_tooltip("Load layout (not implemented)");
-
- add(*(btn=new GLtk::Button("Save")));
- btn->set_geometry(GLtk::Geometry(45, 10, 40, 24));
- btn->set_tooltip("Save current layout");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::save));
-
- add(*(btn=new GLtk::Button("Quit")));
- btn->set_geometry(GLtk::Geometry(85, 10, 40, 24));
- btn->set_style("red");
- btn->set_tooltip("Exit Designer");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::quit));
-
- add(*(btn=new GLtk::Button("+Trk")));
- btn->set_geometry(GLtk::Geometry(135, 10, 40, 24));
- btn->set_tooltip("Add a track piece");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::new_track));
-
- add(*(btn=new GLtk::Button("Trnt")));
- btn->set_geometry(GLtk::Geometry(175, 10, 40, 24));
- btn->set_tooltip("Set turnout ID of selected track");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::set_turnout_id));
-
- add(*(btn=new GLtk::Button("Sens")));
- btn->set_geometry(GLtk::Geometry(215, 10, 40, 24));
- btn->set_tooltip("Set sensor ID of selected tracks");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::set_sensor_id));
-
- add(*(lbl=new GLtk::Label("Routes:")));
- lbl->set_geometry(GLtk::Geometry(265, 22, 40, 13));
-
- add(*(drp_routes=new GLtk::Dropdown));
- drp_routes->set_geometry(GLtk::Geometry(265, 5, 250, 17));
- drp_routes->set_tooltip("Select route to edit");
- drp_routes->append("(new route)");
- drp_routes->signal_item_selected.connect(sigc::mem_fun(this, &Toolbar::route_selected));
-
- add(*(btn=new GLtk::Button("Del")));
- btn->set_geometry(GLtk::Geometry(515, 10, 40, 24));
- btn->set_tooltip("Delete the current route");
- btn->signal_clicked.connect(sigc::mem_fun(this, &Toolbar::delete_route_clicked));
-
- add(*(btn=new GLtk::Button("Name")));
- btn->set_geometry(GLtk::Geometry(555, 10, 40, 24));
- btn->set_tooltip("Rename the current route");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::rename_route));
-
- add(*(btn=new GLtk::Button("Add")));
- btn->set_geometry(GLtk::Geometry(595, 10, 40, 24));
- btn->set_tooltip("Add selected tracks to current route");
- btn->signal_clicked.connect(sigc::mem_fun(&designer, &Designer::add_selection_to_route));
-
- designer.get_layout().signal_route_added.connect(sigc::mem_fun(this, &Toolbar::route_added));
- designer.get_layout().signal_route_removed.connect(sigc::hide(sigc::mem_fun(this, &Toolbar::update_routes)));
-
- const set<Route *> &routes = designer.get_layout().get_routes();
- for(set<Route *>::const_iterator i=routes.begin(); i!=routes.end(); ++i)
- (*i)->signal_name_changed.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);