Fix restoration of key bindings assigned to Windows+key, bug #7037
[ardour.git] / libs / gtkmm2ext / gtkmm2ext / binding_proxy.h
index 348f9f26499c59eb405f85bc0e65b7a4fbea17d4..7108c46eb2b8af8c66c760b698c09f272511ae65 100644 (file)
 #define __binding_proxy__
 
 #include <string>
-#include <gtkmm2ext/popup.h>
 #include <boost/shared_ptr.hpp>
-#include <boost/signals2.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;
-       boost::signals2::scoped_connection learning_connection;
+
+       static guint bind_button;
+       static guint bind_statemask;
+
+       PBD::ScopedConnection learning_connection;
        void learning_finished ();
        bool prompter_hiding (GdkEventAny *);
 };