along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- $Id$
*/
#ifndef __bindable_button_h__
#include <string>
-#include <gtkmm2ext/stateful_button.h>
+#include "pbd/signals.h"
+#include "gtkmm2ext/stateful_button.h"
#include "binding_proxy.h"
namespace PBD {
class BindableToggleButton : public Gtkmm2ext::StatefulToggleButton
{
public:
- BindableToggleButton (PBD::Controllable& c) : binding_proxy (c) {}
-
- explicit BindableToggleButton (PBD::Controllable& c, const std::string &label)
- : Gtkmm2ext::StatefulToggleButton (label), binding_proxy (c) {}
+ BindableToggleButton (const std::string &label)
+ : Gtkmm2ext::StatefulToggleButton (label) {}
+ BindableToggleButton () {}
virtual ~BindableToggleButton() {}
return true;
}
}
+
+ boost::shared_ptr<PBD::Controllable> get_controllable() { return binding_proxy.get_controllable(); }
+ 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
{
public:
- BindableButton (PBD::Controllable& c) : binding_proxy (c) {}
-
- explicit BindableButton (PBD::Controllable& c, const std::string &label)
- : Gtkmm2ext::StatefulButton (label), binding_proxy (c) {}
-
+ BindableButton (boost::shared_ptr<PBD::Controllable> c) : binding_proxy (c) {}
~BindableButton() {}
bool on_button_press_event (GdkEventButton *ev) {
}
}
+ 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); }
+
private:
BindingProxy binding_proxy;
};