#define __binding_proxy__
#include <string>
-
-#include <gtkmm2ext/popup.h>
#include <boost/shared_ptr.hpp>
+#include "pbd/signals.h"
+
+#include "gtkmm2ext/visibility.h"
+#include "gtkmm2ext/popup.h"
+
namespace PBD {
class Controllable;
}
-class BindingProxy : public sigc::trackable
+class LIBGTKMM2EXT_API BindingProxy : public sigc::trackable
{
public:
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);
+ static bool is_bind_action (GdkEventButton *);
bool button_press_handler (GdkEventButton *);
- boost::shared_ptr<PBD::Controllable> get_controllable() { return controllable; }
+ boost::shared_ptr<PBD::Controllable> get_controllable() const { return controllable; }
+ void set_controllable (boost::shared_ptr<PBD::Controllable>);
protected:
Gtkmm2ext::PopUp* prompter;
boost::shared_ptr<PBD::Controllable> controllable;
- guint bind_button;
- guint bind_statemask;
- sigc::connection learning_connection;
+
+ static guint bind_button;
+ static guint bind_statemask;
+
+ PBD::ScopedConnection learning_connection;
void learning_finished ();
bool prompter_hiding (GdkEventAny *);
};