1 #ifndef TRACKPROPERTIES_H_
2 #define TRACKPROPERTIES_H_
4 #include <msp/gltk/dialog.h>
5 #include <msp/gltk/entry.h>
6 #include "libr2c2/beamgate.h"
7 #include "libr2c2/signal.h"
8 #include "libr2c2/track.h"
12 class ObjectProperties: public Msp::GLtk::Dialog
20 virtual ~Properties() { }
22 virtual void apply() = 0;
25 class TurnoutProperties: public Properties
29 Msp::GLtk::Entry *ent_address;
32 TurnoutProperties(ObjectProperties &, R2C2::Track &);
37 class TrackCircuitProperties: public Properties
40 std::set<R2C2::Track *> tracks;
41 Msp::GLtk::Entry *ent_address;
44 TrackCircuitProperties(ObjectProperties &, const std::set<R2C2::Track *> &);
49 class SignalProperties: public Properties
53 Msp::GLtk::Entry *ent_address;
56 SignalProperties(ObjectProperties &, R2C2::Signal &);
61 class BeamGateProperties: public Properties
65 Msp::GLtk::Entry *ent_address;
68 BeamGateProperties(ObjectProperties &, R2C2::BeamGate &);
73 Properties *properties;
74 Msp::GLtk::Widget *prev_widget;
77 ObjectProperties(const Selection &);
80 Msp::GLtk::Entry *add_property(const std::string &, const std::string &, unsigned = 0);
82 virtual void on_response(int);