]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/mainpanel.cpp
Major architecture rework
[r2c2.git] / source / engineer / mainpanel.cpp
index 08348d713a91982902c9122067f6d6b017732801..197c1a4bc9cbbe970605fb988800b7159eb78cf8 100644 (file)
@@ -1,13 +1,15 @@
 /* $Id$
 
 This file is part of the MSP Märklin suite
-Copyright © 2006-2008 Mikkosoft Productions, Mikko Rasa
+Copyright © 2006-2010  Mikkosoft Productions, Mikko Rasa
 Distributed under the GPL
 */
 
 #include <msp/gltk/button.h>
+#include "libmarklin/driver.h"
 #include "engineer.h"
 #include "mainpanel.h"
+#include "trainproperties.h"
 
 using namespace std;
 using namespace Msp;
@@ -52,12 +54,13 @@ MainPanel::MainPanel(Engineer &e, GLtk::Resources &r):
        lbl_status->set_geometry(GLtk::Geometry(10, 10, 180, 24));
        lbl_status->set_style("digital");
 
-       if(engineer.get_control().get_power())
+       Marklin::Driver &driver = engineer.get_layout().get_driver();
+       if(driver.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));
+       driver.signal_power.connect(sigc::mem_fun(this, &MainPanel::power_event));
 }
 
 void MainPanel::set_status_text(const string &txt)
@@ -67,21 +70,20 @@ void MainPanel::set_status_text(const string &txt)
 
 void MainPanel::power_on()
 {
-       engineer.get_control().set_power(true);
-       ind_on->set_active(true);
-       ind_off->set_active(false);
+       engineer.get_layout().get_driver().set_power(true);
 }
 
 void MainPanel::power_off()
 {
-       engineer.get_control().set_power(false);
-       ind_on->set_active(false);
-       ind_off->set_active(true);
+       engineer.get_layout().get_driver().set_power(false);
 }
 
 void MainPanel::new_loc()
 {
-       engineer.add_train();
+       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()