]> git.tdb.fi Git - r2c2.git/blob - source/engineer/trainpanel.cpp
Initial revision
[r2c2.git] / source / engineer / trainpanel.cpp
1 #include <msp/gltk/button.h>
2 #include "trainpanel.h"
3
4 using namespace Msp;
5 using namespace Marklin;
6
7 TrainPanel::TrainPanel(Engineer &e, const GLtk::Resources &r, Train &t):
8         Panel(r),
9         engineer(e),
10         train(t)
11 {
12         set_size(200, 100);
13
14         add(*(lbl_name=new GLtk::Label(res, "Train 1")));
15         lbl_name->set_style("digital");
16         lbl_name->set_geometry(GLtk::Geometry(10, geom.h-34, 140, 24));
17
18         GLtk::Button *btn;
19
20         add(*(btn=new GLtk::Button(res, "Name")));
21         btn->set_geometry(GLtk::Geometry(150, geom.h-34, 40, 24));
22
23         add(*(sld_speed=new GLtk::HSlider(res)));
24         sld_speed->set_geometry(GLtk::Geometry(10, geom.h-49, 180, 10));
25         sld_speed->set_range(0, 14);
26         sld_speed->set_step(1);
27         sld_speed->signal_value_changed.connect(sigc::mem_fun(this, &TrainPanel::speed_slider_changed));
28
29         add(*(btn=new GLtk::Button(res, "Place")));
30         btn->set_geometry(GLtk::Geometry(150, geom.h-75, 40, 24));
31 }
32
33 void TrainPanel::speed_slider_changed(double v)
34 {
35         train.set_speed(static_cast<unsigned>(v));
36 }