]> git.tdb.fi Git - r2c2.git/blob - source/engineer/dynamicdialog.h
Persist most dialogs across runs
[r2c2.git] / source / engineer / dynamicdialog.h
1 #ifndef DYNAMICDIALOG_H_
2 #define DYNAMICDIALOG_H_
3
4 #include <msp/gltk/dialog.h>
5
6 class UserInterface;
7
8 class DynamicDialog: public Msp::GLtk::Dialog
9 {
10 public:
11         class StateLoader: public Msp::DataFile::ObjectLoader<DynamicDialog>
12         {
13         public:
14                 StateLoader(DynamicDialog &);
15
16         private:
17                 void position(float, float);
18         };
19
20 protected:
21         UserInterface &ui;
22
23         DynamicDialog(UserInterface &);
24 public:
25         virtual ~DynamicDialog();
26
27         virtual void update() { };
28         virtual bool save_state(Msp::DataFile::Statement &) const { return false; }
29 protected:
30         void save_position(std::list<Msp::DataFile::Statement> &) const;
31 };
32
33 #endif