X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fengineer%2Ftraindialog.h;h=64ddb96a05851b308bbc5a5784a329dbae1d981b;hb=abed4a255060d5a233ec0ac2dd60af9132e29201;hp=e862487baa3665dcb570e80ec636169a50ce9411;hpb=b261812f040caed52bc3de783e8bcb86b222a9ed;p=r2c2.git diff --git a/source/engineer/traindialog.h b/source/engineer/traindialog.h index e862487..64ddb96 100644 --- a/source/engineer/traindialog.h +++ b/source/engineer/traindialog.h @@ -2,16 +2,26 @@ #define TRAINDIALOG_H_ #include -#include #include #include #include #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 + { + public: + StateLoader(TrainDialog &); + + private: + void expanded(bool); + }; + private: Engineer &engineer; R2C2::Train &train; @@ -29,13 +39,19 @@ public: 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