X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Ftraindialog.cpp;h=6aa469a37bc7edc85403c694c2b321f9c2e51186;hb=9e96d36a21c24befc88c7bf9c1014c22169e3a6a;hp=350fbf063f81f6fcf76761001eb35f7fc63b7afc;hpb=a88f197f8e2ab347531ba5a4aad3113518259ec6;p=r2c2.git diff --git a/source/engineer/traindialog.cpp b/source/engineer/traindialog.cpp index 350fbf0..6aa469a 100644 --- a/source/engineer/traindialog.cpp +++ b/source/engineer/traindialog.cpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include #include "libr2c2/aicontrol.h" @@ -9,6 +10,7 @@ #include "libr2c2/trainstatus.h" #include "controlpanel.h" #include "routerpanel.h" +#include "timetablepanel.h" #include "traindialog.h" #include "vehiclespanel.h" @@ -31,6 +33,9 @@ TrainDialog::TrainDialog(Engineer &e, R2C2::Train &t): btn_expand->signal_clicked.connect(sigc::mem_fun(this, &TrainDialog::expand_clicked)); lbl_speed = dynamic_cast(get_item(widgets, "lbl_speed")); sld_speed = dynamic_cast(get_item(widgets, "sld_speed")); + float max_speed = train.get_maximum_speed(); + if(max_speed>0) + sld_speed->set_range(0, max_speed*3.6/train.get_layout().get_catalogue().get_scale()); sld_speed->signal_value_changed.connect(sigc::mem_fun(this, &TrainDialog::ui_speed_changed)); tgl_forward = dynamic_cast(get_item(widgets, "tgl_forward")); tgl_forward->signal_toggled.connect(sigc::mem_fun(this, &TrainDialog::ui_forward_toggled)); @@ -56,6 +61,11 @@ TrainDialog::TrainDialog(Engineer &e, R2C2::Train &t): panels.push_back(pnl); dynamic_cast(get_item(widgets, "tgl_router"))->signal_toggled.connect(sigc::bind(sigc::mem_fun(this, &TrainDialog::toggle_panel), pnl)); + pnl_expander->add(*(pnl = new TimetablePanel(engineer, train))); + pnl->set_visible(false); + panels.push_back(pnl); + dynamic_cast(get_item(widgets, "tgl_timetable"))->signal_toggled.connect(sigc::bind(sigc::mem_fun(this, &TrainDialog::toggle_panel), pnl)); + AIControl *control = train.get_ai_of_type(); if(!control) control = new AIControl(train); @@ -124,13 +134,15 @@ void TrainDialog::ui_forward_toggled(bool value) void TrainDialog::expand_clicked() { - pnl_expander->set_visible(!pnl_expander->is_visible()); - btn_expand->set_style(pnl_expander->is_visible() ? "arrow_up" : "arrow_down"); - GLtk::Geometry ageom = geom; - ageom.h = 0; - layout->autosize(ageom); - ageom.y = geom.y+geom.h-ageom.h; - set_geometry(ageom); + set_expanded(!pnl_expander->is_visible()); +} + +void TrainDialog::set_expanded(bool e) +{ + pnl_expander->set_visible(e); + btn_expand->set_style(e ? "arrow_up" : "arrow_down"); + signal_autosize_changed.emit(); + find_ancestor()->get_layout()->update(); } void TrainDialog::toggle_panel(bool show, GLtk::Panel *panel)