X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fmainpanel.cpp;h=197c1a4bc9cbbe970605fb988800b7159eb78cf8;hb=651698847d5293cfb15b6fb23a394701388c0151;hp=dd4d3f9e70e2512208de4a2c006e8353f83fedba;hpb=3e9c210ddc036cd015228504cc0803c909e27f84;p=r2c2.git diff --git a/source/engineer/mainpanel.cpp b/source/engineer/mainpanel.cpp index dd4d3f9..197c1a4 100644 --- a/source/engineer/mainpanel.cpp +++ b/source/engineer/mainpanel.cpp @@ -1,18 +1,21 @@ /* $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 +#include "libmarklin/driver.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) { @@ -51,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) @@ -66,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()