#include <string>
-#include <gtkmm2ext/stateful_button.h>
-#include "binding_proxy.h"
+#include "pbd/signals.h"
+
+#include "gtkmm2ext/visibility.h"
+#include "gtkmm2ext/stateful_button.h"
+#include "gtkmm2ext/binding_proxy.h"
namespace PBD {
class Controllable;
}
-class BindableToggleButton : public Gtkmm2ext::StatefulToggleButton
+class LIBGTKMM2EXT_API BindableToggleButton : public Gtkmm2ext::StatefulToggleButton
{
public:
BindableToggleButton (const std::string &label)
: Gtkmm2ext::StatefulToggleButton (label) {}
+ BindableToggleButton () {}
virtual ~BindableToggleButton() {}
}
boost::shared_ptr<PBD::Controllable> get_controllable() { return binding_proxy.get_controllable(); }
- void set_controllable (boost::shared_ptr<PBD::Controllable> c) { binding_proxy.set_controllable (c); }
-
+ void set_controllable (boost::shared_ptr<PBD::Controllable> c);
+ void watch ();
+
+ protected:
+ void controllable_changed ();
+ PBD::ScopedConnection watch_connection;
+
private:
BindingProxy binding_proxy;
};
-class BindableButton : public Gtkmm2ext::StatefulButton
+class LIBGTKMM2EXT_API BindableButton : public Gtkmm2ext::StatefulButton
{
public:
BindableButton (boost::shared_ptr<PBD::Controllable> c) : binding_proxy (c) {}