]> git.tdb.fi Git - r2c2.git/blobdiff - source/engineer/departuresdialog.h
Persist most dialogs across runs
[r2c2.git] / source / engineer / departuresdialog.h
index 3b7b2ce11fb6da9144f376da68e06dfac3976b8e..bbc8246bdfe46b79d612913af12336bd832f3c07 100644 (file)
@@ -1,13 +1,25 @@
 #ifndef DEPARTURESDIALOG_H_
 #define DEPARTURESDIALOG_H_
 
-#include <msp/gltk/dialog.h>
 #include <msp/gltk/dropdown.h>
 #include <msp/gltk/label.h>
 #include "libr2c2/departures.h"
+#include "dynamicdialog.h"
 
-class DeparturesDialog: public Msp::GLtk::Dialog
+class Engineer;
+
+class DeparturesDialog: public DynamicDialog
 {
+public:
+       class StateLoader: public Msp::DataFile::DerivedObjectLoader<DeparturesDialog, DynamicDialog::StateLoader>
+       {
+       public:
+               StateLoader(DeparturesDialog &);
+
+       private:
+               void group(const std::string &);
+       };
+
 private:
        struct Row
        {
@@ -29,13 +41,16 @@ private:
        std::vector<Row> rows;
 
 public:
-       DeparturesDialog(const R2C2::Layout &, const std::string & = std::string());
+       DeparturesDialog(Engineer &, const std::string & = std::string());
 
        void set_group(const std::string &);
 
 private:
        void group_selected(unsigned);
        void update_rows();
+
+public:
+       virtual bool save_state(Msp::DataFile::Statement &) const;
 };
 
 #endif