+void TrainPanel::edit_clicked()
+{
+ TrainProperties *dialog = new TrainProperties(engineer, res, &train);
+ 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 TrainPanel::route_clicked()
+{
+ RouteSelect *dialog = new RouteSelect(engineer, res, train);
+ 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 TrainPanel::forward_toggled(bool value)
+{
+ train.set_reverse(!value);
+}
+
+void TrainPanel::func_toggled(bool value, unsigned func)