#include <msp/core/maputils.h>
#include <msp/core/raii.h>
#include <msp/gltk/part.h>
+#include <msp/gltk/root.h>
#include <msp/gltk/stack.h>
#include <msp/strings/format.h>
#include "libr2c2/aicontrol.h"
#include "libr2c2/trainstatus.h"
#include "controlpanel.h"
#include "routerpanel.h"
+#include "timetablepanel.h"
#include "traindialog.h"
#include "vehiclespanel.h"
btn_expand->signal_clicked.connect(sigc::mem_fun(this, &TrainDialog::expand_clicked));
lbl_speed = dynamic_cast<GLtk::Label *>(get_item(widgets, "lbl_speed"));
sld_speed = dynamic_cast<GLtk::Slider *>(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<GLtk::Toggle *>(get_item(widgets, "tgl_forward"));
tgl_forward->signal_toggled.connect(sigc::mem_fun(this, &TrainDialog::ui_forward_toggled));
panels.push_back(pnl);
dynamic_cast<GLtk::Toggle *>(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<GLtk::Toggle *>(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<AIControl>();
if(!control)
control = new AIControl(train);
{
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);
+ signal_autosize_changed.emit();
+ find_ancestor<GLtk::Root>()->get_layout()->update();
}
void TrainDialog::toggle_panel(bool show, GLtk::Panel *panel)