]> git.tdb.fi Git - r2c2.git/blobdiff - source/designer/designer.cpp
Generalize TrackProperties to all object types
[r2c2.git] / source / designer / designer.cpp
index 30b022f8597e12e8e539d6b247d8e38d92728b9c..a59b3a12dd127839616a13190ceb51b7ee345b4f 100644 (file)
@@ -28,6 +28,7 @@
 #include "manipulator.h"
 #include "measure.h"
 #include "movetool.h"
+#include "objectproperties.h"
 #include "objectselecttool.h"
 #include "rotatetool.h"
 #include "routebar.h"
@@ -35,7 +36,6 @@
 #include "slopetool.h"
 #include "svgexporter.h"
 #include "trackbar.h"
-#include "trackproperties.h"
 #include "zonebar.h"
 #include "zoneproperties.h"
 
@@ -189,38 +189,38 @@ void Designer::quit()
        exit(0);
 }
 
-void Designer::new_track()
+void Designer::new_object()
 {
        use_select_tool();
 
        mode = CATALOGUE;
-       lbl_status->set_text("Select new track or press Esc to cancel");
+       lbl_status->set_text("Select new object or press Esc to cancel");
 }
 
-void Designer::erase_tracks()
+void Designer::erase_objects()
 {
        use_select_tool();
 
-       set<Track *> tracks = selection.get_objects<Track>();
+       set<Object *> objects = selection.get_objects();
        selection.clear();
-       for(set<Track *>::iterator i=tracks.begin(); i!=tracks.end(); ++i)
+       for(set<Object *>::iterator i=objects.begin(); i!=objects.end(); ++i)
        {
                overlay->clear(layout_3d->get_3d(**i));
                delete *i;
        }
 }
 
-void Designer::track_properties()
+void Designer::object_properties()
 {
        use_select_tool();
        if(selection.empty())
                return;
 
-       TrackProperties *track_prop = new TrackProperties(selection);
-       root.add(*track_prop);
-       root_layout->set_gravity(*track_prop, 0, 0);
+       ObjectProperties *dlg = new ObjectProperties(selection);
+       root.add(*dlg);
+       root_layout->set_gravity(*dlg, 0, 0);
 
-       track_prop->signal_response.connect(sigc::mem_fun(this, &Designer::track_properties_response));
+       dlg->signal_response.connect(sigc::mem_fun(this, &Designer::object_properties_response));
 }
 
 void Designer::extend_track()
@@ -360,7 +360,7 @@ void Designer::key_press(unsigned key)
        if(key==Msp::Input::KEY_N && shift)
                use_tool_with_selected_objects<ExtendTool>();
        else if(key==Msp::Input::KEY_N)
-               new_track();
+               new_object();
        else if(key==Msp::Input::KEY_G)
                use_tool_with_selected_objects<MoveTool>();
        else if(key==Msp::Input::KEY_R)
@@ -393,7 +393,7 @@ void Designer::key_press(unsigned key)
                        use_select_tool();
        }
        else if(key==Msp::Input::KEY_X)
-               erase_tracks();
+               erase_objects();
        else if(key==Msp::Input::KEY_F && shift)
        {
                const set<Track *> &tracks = selection.get_objects<Track>();
@@ -427,7 +427,7 @@ void Designer::key_press(unsigned key)
        else if(key==Msp::Input::KEY_V)
                svg_export();
        else if(key==Msp::Input::KEY_P)
-               track_properties();
+               object_properties();
 }
 
 template<typename T>
@@ -516,17 +516,17 @@ void Designer::update_track_icon(Track3D &track)
        if(track.get_track().get_flex())
                overlay->add_graphic(track, "flex");
 
-       if(unsigned sid = track.get_track().get_sensor_id())
+       if(unsigned saddr = track.get_track().get_sensor_address())
        {
                overlay->add_graphic(track, "sensor");
-               overlay->set_label(track, lexical_cast<string>(sid));
+               overlay->set_label(track, lexical_cast<string>(saddr));
        }
-       else if(unsigned tid = track.get_track().get_turnout_id())
+       else if(unsigned taddr = track.get_track().get_turnout_address())
        {
-               if(tid<0x800)
+               if(taddr<0x800)
                {
                        overlay->add_graphic(track, "turnout");
-                       overlay->set_label(track, lexical_cast<string>(tid));
+                       overlay->set_label(track, lexical_cast<string>(taddr));
                }
        }
 }
@@ -536,7 +536,7 @@ void Designer::tool_status(const string &status)
        lbl_status->set_text(status);
 }
 
-void Designer::track_properties_response(int)
+void Designer::object_properties_response(int)
 {
        const set<Track *> &tracks = selection.get_objects<Track>();
        for(set<Track *>::const_iterator i=tracks.begin(); i!=tracks.end(); ++i)
@@ -566,10 +566,10 @@ string Designer::tooltip(int x, int y)
                {
                        if(mode!=CATALOGUE && abs(track->get_tilt()).radians()>1e-4)
                                info += format(" (slope %.1f%%)", abs(tan(track->get_tilt())*100));
-                       if(track->get_turnout_id())
-                               info += format(" (turnout %d)", track->get_turnout_id());
-                       else if(track->get_sensor_id())
-                               info += format(" (sensor %d)", track->get_sensor_id());
+                       if(track->get_turnout_address())
+                               info += format(" (turnout %d)", track->get_turnout_address());
+                       else if(track->get_sensor_address())
+                               info += format(" (sensor %d)", track->get_sensor_address());
                }
                return info;
        }
@@ -594,8 +594,8 @@ void Designer::show_route(const Route &route)
                Track3D &t3d = layout_3d->get_3d(**i);
                Path3D *path = new Path3D(t3d);
                path->set_color(GL::Color(0.5, 0.8, 1.0));
-               if(unsigned tid = (*i)->get_turnout_id())
-                       path->set_path(route.get_turnout(tid));
+               if(unsigned taddr = (*i)->get_turnout_address())
+                       path->set_path(route.get_turnout(taddr));
        }
 }