- DataFile::load(ui_res, "marklin.res");
- root = new GLtk::Root(ui_res, window);
- root->signal_key_press.connect(sigc::mem_fun(this, &Designer::key_press));
- root->signal_button_press.connect(sigc::mem_fun(this, &Designer::button_press));
- root->signal_pointer_motion.connect(sigc::mem_fun(this, &Designer::pointer_motion));
- root->signal_tooltip.connect(sigc::mem_fun(this, &Designer::tooltip));
-
- toolbar = new Toolbar(*this);
- root->add(*toolbar);
- toolbar->set_position(0, window.get_height()-toolbar->get_geometry().h);
- toolbar->set_focusable(false);
-
- GLtk::Panel *statusbar = new GLtk::Panel(ui_res);
- root->add(*statusbar);
+ root.signal_key_press.connect(sigc::mem_fun(this, &Designer::key_press));
+ root.signal_button_press.connect(sigc::mem_fun(this, &Designer::button_press));
+ root.signal_pointer_motion.connect(sigc::mem_fun(this, &Designer::pointer_motion));
+ root.signal_tooltip.connect(sigc::mem_fun(this, &Designer::tooltip));
+
+ toolbars.push_back(new Layoutbar(*this));
+ toolbars.push_back(new Trackbar(*this));
+ toolbars.push_back(new Routebar(*this));
+ toolbars.push_back(new Zonebar(*this));
+ for(vector<Toolbar *>::iterator i=toolbars.begin(); i!=toolbars.end(); ++i)
+ {
+ root.add(**i);
+ if(i!=toolbars.begin())
+ (*i)->expand(false);
+ (*i)->signal_expanded.connect(sigc::hide(sigc::mem_fun(this, &Designer::arrange_toolbars)));
+ }
+ arrange_toolbars();
+
+ GLtk::Panel *statusbar = new GLtk::Panel;
+ root.add(*statusbar);