]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/trainpanel.h
Add a UI for editing train timetables
[r2c2.git] / source / engineer / trainpanel.h
index d8b1ab0bae0b4f63ccdb62a4b6083deb714c2870..2f1453fcbaf00746e5aa4f8aa90a52cde109d025 100644 (file)
@@ -1,22 +1,24 @@
 /* $Id$
 
 This file is part of the MSP Märklin suite
-Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
+Copyright © 2006-2010  Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
 
 #ifndef TRAINPANEL_H_
 #define TRAINPANEL_H_
 
+#include <sigc++/trackable.h>
 #include <msp/gltk/hslider.h>
 #include <msp/gltk/label.h>
 #include <msp/gltk/panel.h>
 #include <msp/gltk/toggle.h>
+#include "libmarklin/route.h"
 #include "libmarklin/train.h"
 
 class Engineer;
 
-class TrainPanel: public Msp::GLtk::Panel
+class TrainPanel: public Msp::GLtk::Panel, public sigc::trackable
 {
 private:
        Engineer &engineer;
@@ -25,20 +27,29 @@ private:
        Msp::GLtk::Label *lbl_name;
        Msp::GLtk::HSlider *sld_speed;
        Msp::GLtk::Label *lbl_speed;
+       Msp::GLtk::Label *lbl_route;
        Msp::GLtk::Label *lbl_status;
        Msp::GLtk::Toggle *tgl_forward;
        std::map<unsigned, Msp::GLtk::Toggle *> tgl_funcs;
+       sigc::connection pick_conn;
 
 public:
        TrainPanel(Engineer &, const Msp::GLtk::Resources &, Marklin::Train &);
 private:
        void speed_slider_changed(double);
-       void train_speed_changed(unsigned);
-       void loco_function_changed(unsigned, bool);
+       void train_control_changed(const std::string &, float);
+       void train_function_changed(unsigned, bool);
+       void train_route_changed(const Marklin::Route *);
        void train_status_changed(const std::string &);
        void place_clicked();
+       void edit_clicked();
+       void route_clicked();
+       void goto_clicked();
+       void timetable_clicked();
        void forward_toggled(bool);
        void func_toggled(bool, unsigned);
+       void place(Marklin::Track *, unsigned);
+       void go_to(Marklin::Track *, unsigned);
 };
 
 #endif