diff options
Diffstat (limited to 'gtk2_ardour/selectable.h')
-rw-r--r-- | gtk2_ardour/selectable.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/gtk2_ardour/selectable.h b/gtk2_ardour/selectable.h index fdd6f7ff9f..b4be7090e2 100644 --- a/gtk2_ardour/selectable.h +++ b/gtk2_ardour/selectable.h @@ -21,7 +21,9 @@ #ifndef __ardour_gtk_selectable_h__ #define __ardour_gtk_selectable_h__ -class Selectable +#include <sigc++/signal.h> + +class Selectable : public virtual sigc::trackable { public: Selectable() { @@ -30,10 +32,20 @@ class Selectable virtual ~Selectable() {} - virtual void set_selected (bool) { - _selected = true; + virtual void set_selected (bool yn) { + if (yn != _selected) { + _selected = true; + Selected (_selected); /* EMIT_SIGNAL */ + } + } + + bool get_selected() const { + return _selected; } + /** Emitted when the selected status of this Selectable changes */ + sigc::signal<void, bool> Selected ; + protected: bool _selected; }; |