#define TRAINDIALOG_H_
#include <msp/gltk/button.h>
-#include <msp/gltk/dialog.h>
#include <msp/gltk/hslider.h>
#include <msp/gltk/label.h>
#include <msp/gltk/toggle.h>
#include "libr2c2/train.h"
+#include "dynamicdialog.h"
class Engineer;
-class TrainDialog: public Msp::GLtk::Dialog, public sigc::trackable
+class TrainDialog: public DynamicDialog, public sigc::trackable
{
+public:
+ class StateLoader: public Msp::DataFile::DerivedObjectLoader<TrainDialog, DynamicDialog::StateLoader>
+ {
+ public:
+ StateLoader(TrainDialog &);
+
+ private:
+ void expanded(bool);
+ };
+
private:
Engineer &engineer;
R2C2::Train &train;
TrainDialog(Engineer &, R2C2::Train &);
private:
+ virtual void autosize_special(const Msp::GLtk::Part &, Msp::GLtk::Geometry &) const;
+
void ai_event(R2C2::TrainAI &, const R2C2::TrainAI::Message &);
void update_speed_display(float);
void ui_speed_changed(double);
void update_forward(bool);
void ui_forward_toggled(bool);
void expand_clicked();
+ void set_expanded(bool);
void toggle_panel(bool, Msp::GLtk::Panel *);
+
+public:
+ virtual bool save_state(Msp::DataFile::Statement &) const;
};
#endif