#include <msp/gltk/button.h>
+#include <msp/strings/formatter.h>
+#include "libmarklin/locomotive.h"
#include "trainpanel.h"
using namespace Msp;
{
set_size(200, 100);
- add(*(lbl_name=new GLtk::Label(res, "Train 1")));
+ add(*(lbl_name=new GLtk::Label(res, train.get_name())));
lbl_name->set_style("digital");
lbl_name->set_geometry(GLtk::Geometry(10, geom.h-34, 140, 24));
+ train.signal_name_changed.connect(sigc::mem_fun(lbl_name, &GLtk::Label::set_text));
GLtk::Button *btn;
sld_speed->set_step(1);
sld_speed->signal_value_changed.connect(sigc::mem_fun(this, &TrainPanel::speed_slider_changed));
- add(*(btn=new GLtk::Button(res, "Place")));
- btn->set_geometry(GLtk::Geometry(150, geom.h-75, 40, 24));
+ add(*(lbl_speed=new GLtk::Label(res, " 0")));
+ lbl_speed->set_style("digital");
+ lbl_speed->set_geometry(GLtk::Geometry(10, geom.h-75, 36, 24));
+ train.get_locomotive().signal_speed_changed.connect(sigc::mem_fun(this, &TrainPanel::loco_speed_changed));
}
void TrainPanel::speed_slider_changed(double v)
{
train.set_speed(static_cast<unsigned>(v));
}
+
+void TrainPanel::loco_speed_changed(unsigned speed)
+{
+ lbl_speed->set_text(format("%2d", speed));
+}