add missing files
[ardour.git] / libs / pbd / pbd / stateful_diff_command.h
index 43efed445d988208d450052ea3d824ba7ad2dbc0..2a213d7a17e7fcea73be991cf6d3316e2d921727 100644 (file)
@@ -27,7 +27,8 @@
 namespace PBD
 {
 
-class Stateful;        
+class StatefulDestructible;    
+class PropertyList;
 
 /** A Command which stores its action as the differences between the before and after
  *  state of a Stateful object.
@@ -35,19 +36,20 @@ class Stateful;
 class StatefulDiffCommand : public Command
 {
 public:
-       StatefulDiffCommand (boost::shared_ptr<Stateful>);
-       StatefulDiffCommand (boost::shared_ptr<Stateful>, XMLNode const &);
+       StatefulDiffCommand (boost::shared_ptr<StatefulDestructible>);
+       StatefulDiffCommand (boost::shared_ptr<StatefulDestructible>, XMLNode const &);
        ~StatefulDiffCommand ();
 
        void operator() ();
        void undo ();
-
+        
        XMLNode& get_state ();
 
+       bool empty () const;
+
 private:
        boost::weak_ptr<Stateful> _object; ///< the object in question
-       XMLNode* _before; ///< XML node containing the previous values of XML properties which changed
-       XMLNode* _after; ///< XML node containing the new values of XML properties which changed
+        PBD::PropertyList* _changes; ///< property changes to execute this command
 };
 
 };