- measure=new Measure(*this);
- measure->signal_changed.connect(sigc::mem_fun(this, &Designer::measure_changed));
- measure->signal_done.connect(sigc::mem_fun(this, &Designer::measure_done));
+ // Setup UI
+ 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);
+ statusbar->set_size(window.get_width(), 20);
+ statusbar->set_focusable(false);
+
+ lbl_status = new GLtk::Label(ui_res);
+ statusbar->add(*lbl_status);
+ lbl_status->set_geometry(GLtk::Geometry(20, 2, 300, 16));
+
+ overlay = new Overlay3D(window, camera, ui_res.get_default_font());
+
+ const list<Track3D *> &tracks = layout_3d->get_tracks();
+ for(list<Track3D *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
+ update_track_icon(**i);
+
+ edit_route(0);