4 #include <msp/gltk/button.h>
5 #include <msp/gltk/hslider.h>
6 #include <msp/gltk/label.h>
7 #include <msp/gltk/toggle.h>
8 #include "libr2c2/train.h"
9 #include "dynamicdialog.h"
13 class TrainDialog: public DynamicDialog, public sigc::trackable
16 class StateLoader: public Msp::DataFile::DerivedObjectLoader<TrainDialog, DynamicDialog::StateLoader>
19 StateLoader(TrainDialog &);
28 Msp::GLtk::Label *lbl_title;
29 Msp::GLtk::Button *btn_expand;
30 Msp::GLtk::Label *lbl_speed;
31 Msp::GLtk::Slider *sld_speed;
32 Msp::GLtk::Toggle *tgl_forward;
33 Msp::GLtk::Label *lbl_status;
34 Msp::GLtk::Panel *pnl_expander;
35 std::list<Msp::GLtk::Panel *> panels;
39 TrainDialog(Engineer &, R2C2::Train &);
42 virtual void autosize_special(const Msp::GLtk::Part &, Msp::GLtk::Geometry &) const;
44 void ai_event(R2C2::TrainAI &, const R2C2::TrainAI::Message &);
45 void update_speed_display(float);
46 void ui_speed_changed(double);
47 void update_forward(bool);
48 void ui_forward_toggled(bool);
49 void expand_clicked();
50 void set_expanded(bool);
51 void toggle_panel(bool, Msp::GLtk::Panel *);
54 virtual bool save_state(Msp::DataFile::Statement &) const;