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.
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
};
};