]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/trainpanel.h
Add locomotive types
[r2c2.git] / source / engineer / trainpanel.h
index d21e5618694c8fc69d86c69fc71d4b64cb76f5d9..63e6e734bf8bb12ef665199bbdf7aba1f39a0abd 100644 (file)
@@ -2,6 +2,7 @@
 #define TRAINPANEL_H_
 
 #include <msp/gltk/hslider.h>
+#include <msp/gltk/indicator.h>
 #include <msp/gltk/label.h>
 #include <msp/gltk/panel.h>
 #include "libmarklin/train.h"
@@ -10,19 +11,25 @@ class Engineer;
 
 class TrainPanel: public Msp::GLtk::Panel
 {
-public:
-       TrainPanel(Engineer &, const Msp::GLtk::Resources &, Marklin::Train &);
 private:
        Engineer &engineer;
        Marklin::Train &train;
        Msp::GLtk::Label *lbl_addr;
        Msp::GLtk::Label *lbl_name;
        Msp::GLtk::HSlider *sld_speed;
-       Marklin::Locomotive *loco;
        Msp::GLtk::Label *lbl_speed;
+       Msp::GLtk::Label *lbl_status;
+       std::map<unsigned, Msp::GLtk::Indicator *> ind_funcs;
 
+public:
+       TrainPanel(Engineer &, const Msp::GLtk::Resources &, Marklin::Train &);
+private:
        void speed_slider_changed(double);
        void loco_speed_changed(unsigned);
+       void loco_function_changed(unsigned, bool);
+       void train_status_changed(const std::string &);
+       void place_clicked();
+       void func_clicked(unsigned);
 };
 
 #endif