summaryrefslogtreecommitdiff
path: root/gtk2_ardour/selectable.h
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/selectable.h')
-rw-r--r--gtk2_ardour/selectable.h18
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;
};