]> git.tdb.fi Git - r2c2.git/blob - source/engineer/trainproperties.cpp
Major code refactoring:
[r2c2.git] / source / engineer / trainproperties.cpp
1 #include <msp/gltk/button.h>
2 #include <msp/strings/lexicalcast.h>
3 #include "engineer.h"
4 #include "trainproperties.h"
5
6 using namespace Msp;
7 using namespace Marklin;
8
9 TrainProperties::TrainProperties(Engineer &e, GLtk::Resources &r, Train *t):
10         Panel(r),
11         engineer(e),
12         train(t)
13 {
14         set_size(200, 75);
15
16         add(*(ent_addr=new GLtk::Entry(res)));
17         ent_addr->set_geometry(GLtk::Geometry(10, geom.h-25, 40, 20));
18
19         add(*(ent_name=new GLtk::Entry(res, "Train")));
20         ent_name->set_geometry(GLtk::Geometry(10, geom.h-50, geom.w-20, 20));
21
22         GLtk::Button *btn;
23
24         add(*(btn=new GLtk::Button(res, "OK")));
25         btn->set_style("green");
26         btn->set_geometry(GLtk::Geometry(geom.w-40, 10, 30, 25));
27         btn->signal_clicked.connect(sigc::mem_fun(this, &TrainProperties::ok_clicked));
28
29         add(*(btn=new GLtk::Button(res, "Cncl")));
30         btn->set_style("red");
31         btn->set_geometry(GLtk::Geometry(geom.w-80, 10, 30, 25));
32 }
33
34 void TrainProperties::ok_clicked()
35 {
36         if(train)
37         {
38         }
39         else
40         {
41                 train=engineer.add_train(lexical_cast<unsigned>(ent_addr->get_text()));
42                 train->set_name(ent_name->get_text());
43         }
44         signal_ok.emit();
45 }