]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/traindialog.h
Persist most dialogs across runs
[r2c2.git] / source / engineer / traindialog.h
index 3d6d1438895544ba6bb8780823c8fc8fa3b81c08..64ddb96a05851b308bbc5a5784a329dbae1d981b 100644 (file)
@@ -2,16 +2,26 @@
 #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;
@@ -39,6 +49,9 @@ private:
        void expand_clicked();
        void set_expanded(bool);
        void toggle_panel(bool, Msp::GLtk::Panel *);
+
+public:
+       virtual bool save_state(Msp::DataFile::Statement &) const;
 };
 
 #endif