r274@gandalf: fugalh | 2006-08-07 19:53:48 -0600
[ardour.git] / libs / ardour / ardour / state_manager.h
index faedc120ee34afb1bbd269b7dca14a29580c1853..99bfcfc3ceed22055d93be3a364791deab644db6 100644 (file)
@@ -3,6 +3,7 @@
 
 #include <list>
 #include <string>
+#include <set>
 
 #include <sigc++/signal.h>
 
@@ -12,7 +13,6 @@ namespace ARDOUR {
 
 typedef uint32_t state_id_t;
 
-
 class StateManager : public sigc::trackable
 {
   public:
@@ -35,7 +35,15 @@ class StateManager : public sigc::trackable
 
        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;