X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fdesigner%2Ftrackproperties.cpp;h=59ce75111c25a0c5e001f77d1da7c38711b63f5a;hb=fbab529c533b8a758fb9ce505eb8970cd037510c;hp=9753849eccf3aadae3b4d937e7dbb51e2baecc64;hpb=f950f5a77714a155e57c868101911e181a617818;p=r2c2.git diff --git a/source/designer/trackproperties.cpp b/source/designer/trackproperties.cpp index 9753849..59ce751 100644 --- a/source/designer/trackproperties.cpp +++ b/source/designer/trackproperties.cpp @@ -1,5 +1,7 @@ #include +#include #include +#include #include "libr2c2/track.h" #include "libr2c2/tracktype.h" #include "selection.h" @@ -12,56 +14,62 @@ using namespace R2C2; TrackProperties::TrackProperties(const Selection &s): selection(s) { - set_size(300, 110); + set_layout(new GLtk::Layout); + GLtk::Column col(*layout); - GLtk::Label *lbl; + GLtk::Label *lbl1, *lbl2; - add(*(lbl = new GLtk::Label("Track properties"))); - lbl->set_geometry(GLtk::Geometry(10, geom.h-30, geom.w-20, 20)); + add(*(lbl1 = new GLtk::Label("Track properties"))); + lbl1->set_style("title"); - add(*(lbl = new GLtk::Label("Turnout ID"))); - lbl->set_geometry(GLtk::Geometry(10, geom.h-65, 70, 20)); - - add(*(ent_turnout_id = new GLtk::Entry)); - ent_turnout_id->set_geometry(GLtk::Geometry(80, geom.h-65, 50, 20)); - - add(*(lbl = new GLtk::Label("Sensor ID"))); - lbl->set_geometry(GLtk::Geometry(150, geom.h-65, 70, 20)); + { + GLtk::Row row(*layout); + add(*(lbl1 = new GLtk::Label("Turnout address"))); + add(*(ent_turnout_addr = new GLtk::Entry)); + ent_turnout_addr->set_edit_size(5, 1); + } - add(*(ent_sensor_id = new GLtk::Entry)); - ent_sensor_id->set_geometry(GLtk::Geometry(220, geom.h-65, 50, 20)); + { + GLtk::Row row(*layout); + add(*(lbl2 = new GLtk::Label("Sensor address"))); + layout->add_constraint(*lbl1, GLtk::Layout::COPY_WIDTH, *lbl2); + add(*(ent_sensor_addr = new GLtk::Entry)); + ent_sensor_addr->set_edit_size(5, 1); + } GLtk::Button *btn; - add_button(*(btn = new GLtk::Button("Cncl")), 0); - btn->set_geometry(GLtk::Geometry(geom.w-90, 10, 40, 24)); - btn->set_style("red"); + { + GLtk::Row row(*layout); + row.split(); + add_button(*(btn = new GLtk::Button("Cncl")), 0); + btn->set_style("red"); - add_button(*(btn = new GLtk::Button("OK")), 1); - btn->set_geometry(GLtk::Geometry(geom.w-50, 10, 40, 24)); - btn->set_style("green"); + add_button(*(btn = new GLtk::Button("OK")), 1); + btn->set_style("green"); + } if(selection.size()==1) { - if(unsigned tid = selection.get_object()->get_turnout_id()) - ent_turnout_id->set_text(lexical_cast(tid)); + if(unsigned taddr = selection.get_object()->get_turnout_address()) + ent_turnout_addr->set_text(lexical_cast(taddr)); } const set &tracks = selection.get_objects(); - int sensor_id = -1; + int sensor_addr = -1; for(set::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) { - if(static_cast((*i)->get_sensor_id())!=sensor_id) + if(static_cast((*i)->get_sensor_address())!=sensor_addr) { - if(sensor_id==-1) - sensor_id = (*i)->get_sensor_id(); + if(sensor_addr==-1) + sensor_addr = (*i)->get_sensor_address(); else - sensor_id = -2; + sensor_addr = -2; } } - if(sensor_id>=0) - ent_sensor_id->set_text(lexical_cast(sensor_id)); + if(sensor_addr>=0) + ent_sensor_addr->set_text(lexical_cast(sensor_addr)); } void TrackProperties::on_response(int code) @@ -72,17 +80,17 @@ void TrackProperties::on_response(int code) { Track *track = selection.get_object(); if(track->get_type().is_turnout()) - track->set_turnout_id(lexical_cast(ent_turnout_id->get_text())); + track->set_turnout_address(lexical_cast(ent_turnout_addr->get_text())); } - string sensor_id_text = ent_sensor_id->get_text(); - if(!sensor_id_text.empty()) + string sensor_addr_text = ent_sensor_addr->get_text(); + if(!sensor_addr_text.empty()) { - unsigned sensor_id = lexical_cast(sensor_id_text); + unsigned sensor_addr = lexical_cast(sensor_addr_text); const set &tracks = selection.get_objects(); for(set::const_iterator i=tracks.begin(); i!=tracks.end(); ++i) if(!(*i)->get_type().is_turnout()) - (*i)->set_sensor_id(sensor_id); + (*i)->set_sensor_address(sensor_addr); } } }