+/* $Id$
+
+This file is part of the MSP Märklin suite
+Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa
+Distributed under the GPL
+*/
+
#include <msp/gltk/button.h>
#include "engineer.h"
#include "mainpanel.h"
+#include "trainproperties.h"
+using namespace std;
using namespace Msp;
MainPanel::MainPanel(Engineer &e, GLtk::Resources &r):
+ Widget(r),
Panel(r),
engineer(e)
{
btn->signal_clicked.connect(sigc::mem_fun(this, &MainPanel::quit));
add(*(btn=new GLtk::Button(res, "+Loc")));
- btn->set_geometry(GLtk::Geometry(10, 10, 40, 25));
+ btn->set_geometry(GLtk::Geometry(90, 53, 40, 25));
btn->signal_clicked.connect(sigc::mem_fun(this, &MainPanel::new_loc));
+ add(*(lbl_status=new GLtk::Label(res)));
+ lbl_status->set_geometry(GLtk::Geometry(10, 10, 180, 24));
+ lbl_status->set_style("digital");
+
if(engineer.get_control().get_power())
ind_on->set_active(true);
else
ind_off->set_active(true);
+
+ engineer.get_control().signal_power_event.connect(sigc::mem_fun(this, &MainPanel::power_event));
+}
+
+void MainPanel::set_status_text(const string &txt)
+{
+ lbl_status->set_text(txt);
}
void MainPanel::power_on()
void MainPanel::new_loc()
{
- engineer.add_train(0);
+ TrainProperties *dialog = new TrainProperties(engineer, res, 0);
+ engineer.get_root().add(*dialog);
+ dialog->set_position(geom.x+geom.w, geom.y+geom.h-dialog->get_geometry().h);
+ dialog->set_visible(true);
}
void MainPanel::quit()
{
engineer.quit();
}
+
+void MainPanel::power_event(bool p)
+{
+ ind_on->set_active(p);
+ ind_off->set_active(!p);
+}