#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
{
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 departure_added(const R2C2::Departures::Departure &);
- void departure_removed(const R2C2::Departures::Departure &);
void update_rows();
+
+public:
+ virtual bool save_state(Msp::DataFile::Statement &) const;
};
#endif