X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Fmainpanel.cpp;h=8c3718b9176fa025bcda7087633cf8357a10522e;hb=02c9a9779954d993cb73fe5f7a72b0847e87f633;hp=7e68c03d87ae7e6393d8b338510abedfe16851f9;hpb=6c61179fe09af2f5366d50f10aadbf5f83438087;p=r2c2.git diff --git a/source/engineer/mainpanel.cpp b/source/engineer/mainpanel.cpp index 7e68c03..8c3718b 100644 --- a/source/engineer/mainpanel.cpp +++ b/source/engineer/mainpanel.cpp @@ -1,10 +1,20 @@ +/* $Id$ + +This file is part of the MSP Märklin suite +Copyright © 2006-2009 Mikkosoft Productions, Mikko Rasa +Distributed under the GPL +*/ + #include #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) { @@ -13,7 +23,7 @@ MainPanel::MainPanel(Engineer &e, GLtk::Resources &r): GLtk::Button *btn; add(*(btn=new GLtk::Button(res, "Off"))); - btn->set_geometry(GLtk::Geometry(10, 50, 40, 25)); + btn->set_geometry(GLtk::Geometry(10, 53, 40, 25)); btn->set_style("red"); btn->signal_clicked.connect(sigc::mem_fun(this, &MainPanel::power_off)); @@ -22,7 +32,7 @@ MainPanel::MainPanel(Engineer &e, GLtk::Resources &r): ind_off->set_style("red"); add(*(btn=new GLtk::Button(res, "On"))); - btn->set_geometry(GLtk::Geometry(50, 50, 40, 25)); + btn->set_geometry(GLtk::Geometry(50, 53, 40, 25)); btn->set_style("green"); btn->signal_clicked.connect(sigc::mem_fun(this, &MainPanel::power_on)); @@ -31,18 +41,29 @@ MainPanel::MainPanel(Engineer &e, GLtk::Resources &r): ind_on->set_style("green"); add(*(btn=new GLtk::Button(res, "Quit"))); - btn->set_geometry(GLtk::Geometry(150, 50, 40, 25)); + btn->set_geometry(GLtk::Geometry(150, 53, 40, 25)); btn->set_style("red"); 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() @@ -61,10 +82,19 @@ void MainPanel::power_off() 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); +}