#define __binding_proxy__
#include <string>
-
#include <gtkmm2ext/popup.h>
+#include <boost/shared_ptr.hpp>
+#include "pbd/signals.h"
namespace PBD {
class Controllable;
class BindingProxy : public sigc::trackable
{
public:
- BindingProxy (PBD::Controllable&);
- virtual ~BindingProxy() {}
+ BindingProxy (boost::shared_ptr<PBD::Controllable>);
+ BindingProxy ();
+ virtual ~BindingProxy();
void set_bind_button_state (guint button, guint statemask);
void get_bind_button_state (guint &button, guint &statemask);
bool button_press_handler (GdkEventButton *);
- protected:
+ boost::shared_ptr<PBD::Controllable> get_controllable() const { return controllable; }
+ void set_controllable (boost::shared_ptr<PBD::Controllable>);
- Gtkmm2ext::PopUp prompter;
- PBD::Controllable& controllable;
+ protected:
+ Gtkmm2ext::PopUp* prompter;
+ boost::shared_ptr<PBD::Controllable> controllable;
guint bind_button;
guint bind_statemask;
-
+ PBD::ScopedConnection learning_connection;
+ void learning_finished ();
bool prompter_hiding (GdkEventAny *);
};