]> git.tdb.fi Git - r2c2.git/blob - source/engineer/trainpanel.h
63e6e734bf8bb12ef665199bbdf7aba1f39a0abd
[r2c2.git] / source / engineer / trainpanel.h
1 #ifndef TRAINPANEL_H_
2 #define TRAINPANEL_H_
3
4 #include <msp/gltk/hslider.h>
5 #include <msp/gltk/indicator.h>
6 #include <msp/gltk/label.h>
7 #include <msp/gltk/panel.h>
8 #include "libmarklin/train.h"
9
10 class Engineer;
11
12 class TrainPanel: public Msp::GLtk::Panel
13 {
14 private:
15         Engineer &engineer;
16         Marklin::Train &train;
17         Msp::GLtk::Label *lbl_addr;
18         Msp::GLtk::Label *lbl_name;
19         Msp::GLtk::HSlider *sld_speed;
20         Msp::GLtk::Label *lbl_speed;
21         Msp::GLtk::Label *lbl_status;
22         std::map<unsigned, Msp::GLtk::Indicator *> ind_funcs;
23
24 public:
25         TrainPanel(Engineer &, const Msp::GLtk::Resources &, Marklin::Train &);
26 private:
27         void speed_slider_changed(double);
28         void loco_speed_changed(unsigned);
29         void loco_function_changed(unsigned, bool);
30         void train_status_changed(const std::string &);
31         void place_clicked();
32         void func_clicked(unsigned);
33 };
34
35 #endif