tweak transport bar spacing
[ardour.git] / libs / pbd / pbd / stateful.h
index e8ced2c2f0f0a4e093077beeec675c1944ba6fee..2d5b2a0990d03dffc9d3d3813168e3db2b1fdc63 100644 (file)
@@ -61,10 +61,14 @@ class Stateful {
         */
 
        void add_extra_xml (XMLNode&);
-       XMLNode *extra_xml (const std::string& str);
+       XMLNode *extra_xml (const std::string& str, bool add_if_missing = false);
+       void save_extra_xml (const XMLNode&);
 
        const PBD::ID& id() const { return _id; }
-        
+       bool set_id (const XMLNode&);
+       void set_id (const std::string&);
+       void reset_id ();
+
         /* history management */
 
        void clear_changes ();
@@ -101,11 +105,10 @@ class Stateful {
           of property values after either a PropertyList or XML 
           driven property change.
        */
-       virtual void post_set () { };
+       virtual void post_set (const PropertyChange&) { };
 
        XMLNode *_extra_xml;
        XMLNode *_instant_xml;
-       PBD::ID  _id;
         int32_t  _frozen;
        PBD::PropertyChange     _pending_changed;
         Glib::Mutex _lock;
@@ -119,6 +122,9 @@ class Stateful {
         */
         virtual void mid_thaw (const PropertyChange&) { }
         bool property_changes_suspended() const { return g_atomic_int_get (&_frozen) > 0; }
+
+  private:
+       PBD::ID  _id;
 };
 
 } // namespace PBD