#include <list>
#include <string>
+#include <set>
#include <sigc++/signal.h>
typedef uint32_t state_id_t;
-
class StateManager : public sigc::trackable
{
public:
state_id_t _current_state_id;
+ virtual bool should_save_state () const { return true; }
+
+ static void prohibit_save ();
+ static void allow_save (const char* why, bool dosave);
+
protected:
+ static bool _allow_save;
+ static sigc::signal<void,const char*> SaveAllowed;
+
StateMap states;
virtual Change restore_state (State&) = 0;