/*
- 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(); }
};
}