Tempo ramps - audio-locked meters have a bbt of 1|1|0
[ardour.git] / libs / pbd / pbd / destructible.h
index 827feb8fe5e759050800ea2ca324d726a52c29de..261697cafa05cbde4d94203b91c38eb9c7e7666e 100644 (file)
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 2000-2007 Paul Davis 
+    Copyright (C) 2000-2007 Paul Davis
 
     This program is free software; you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
 #ifndef __pbd_destructible_h__
 #define __pbd_destructible_h__
 
-#include <sigc++/signal.h>
+#include "pbd/signals.h"
+#include "pbd/libpbd_visibility.h"
 
 namespace PBD {
 
-/* be very very careful using this class. it does not inherit from sigc::trackable and thus
-   should only be used in multiple-inheritance situations involving another type
-   that does inherit from sigc::trackable (or sigc::trackable itself)
-*/
-
-class ThingWithGoingAway {
+class LIBPBD_API Destructible {
   public:
-       virtual ~ThingWithGoingAway () {}
-       sigc::signal<void> GoingAway;
-};
+        Destructible() {}
+       virtual ~Destructible () { Destroyed(); }
 
-class Destructible : public sigc::trackable, public ThingWithGoingAway {
-  public:
-       virtual ~Destructible () {}
-       void drop_references () const { GoingAway(); }
+       PBD::Signal0<void> Destroyed;
+       PBD::Signal0<void> DropReferences;
 
+       void drop_references () { DropReferences();  }
 };
 
 }