X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fengineer.cpp;h=87e3dda10003c7fd917dec1a94b619f2911ffb93;hb=190829464f446f211e4aff058bb555519a65c6ee;hp=9b49c847ca5a21ff11229f0bb42e5252f622b9fb;hpb=3bd82be700904d2c1428e6ba35642426c76beeaa;p=r2c2.git diff --git a/source/engineer/engineer.cpp b/source/engineer/engineer.cpp index 9b49c84..87e3dda 100644 --- a/source/engineer/engineer.cpp +++ b/source/engineer/engineer.cpp @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -49,6 +50,10 @@ Engineer::Engineer(int argc, char **argv): window.signal_close.connect(sigc::bind(sigc::mem_fun(this, &Engineer::exit), 0)); root = new GLtk::Root(ui_res, &window, &keyboard, &mouse); + GLtk::Layout *root_layout = new GLtk::Layout; + root->set_layout(root_layout); + root_layout->set_margin(GLtk::Sides()); + root_arrangement = new GLtk::FloatingArrangement(*root_layout); mouse.signal_button_press.connect(sigc::bind_return(sigc::mem_fun(this, &Engineer::button_press), false)); mouse.signal_axis_motion.connect(sigc::bind_return(sigc::mem_fun(this, &Engineer::axis_motion), false)); root->set_visible(true); @@ -76,7 +81,7 @@ Engineer::Engineer(int argc, char **argv): const set &tracks = layout.get_all(); for(set::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) if((*i)->get_type().is_turnout()) - new Path3D(layout_3d.get(**i)); + new Path3D(layout_3d.get_3d(**i)); if(FS::exists(options.state_fn)) DataFile::load(layout, options.state_fn); @@ -123,6 +128,7 @@ Engineer::~Engineer() } delete overlay; + delete root_arrangement; delete root; delete server; @@ -187,7 +193,7 @@ void Engineer::button_press(unsigned btn) Object *obj = pick_object(pointer); if(Track *track = dynamic_cast(obj)) { - if(track->get_turnout_id()) + if(track->get_turnout_address()) { Block &block = track->get_block(); if(block.get_train() && block.get_train()->is_block_critical(block)) @@ -204,14 +210,14 @@ void Engineer::button_press(unsigned btn) ++i; } track->set_active_path(i); - set_status(format("Turnout %d", track->get_turnout_id())); + set_status(format("Turnout %d", track->get_turnout_address())); } } - if(unsigned sid = track->get_sensor_id()) + if(unsigned saddr = track->get_sensor_address()) { if(options.simulate) - layout.get_driver().set_sensor(sid, !layout.get_driver().get_sensor(sid)); - set_status(format("Sensor %d", sid)); + layout.get_driver().set_sensor(saddr, !layout.get_driver().get_sensor(saddr)); + set_status(format("Sensor %d", saddr)); } } else if(Vehicle *veh = dynamic_cast(obj)) @@ -292,7 +298,7 @@ Object *Engineer::pick_object(const Vector &p) void Engineer::process_new_train(Train &train) { - Vehicle3D &loco3d = layout_3d.get(train.get_vehicle(0)); + Vehicle3D &loco3d = layout_3d.get_3d(train.get_vehicle(0)); overlay->set_label(loco3d, train.get_name()); train.signal_name_changed.connect(sigc::bind<0>(sigc::mem_fun(overlay, &Overlay3D::set_label), sigc::ref(loco3d))); }