#include <gtkmm2ext/utils.h>
#include <gtkmm2ext/click_box.h>
+#include "pbd/controllable.h"
+
using namespace std;
using namespace Gtk;
using namespace Gtkmm2ext;
bool
ClickBox::button_press_handler (GdkEventButton* ev)
{
+ if (_binding_proxy.button_press_handler (ev)) {
+ return true;
+ }
add_modal_grab();
AutoSpin::button_press (ev);
return true;
set_label ();
}
+bool
+ClickBox::on_enter_notify_event (GdkEventCrossing* ev)
+{
+ boost::shared_ptr<PBD::Controllable> c (_binding_proxy.get_controllable ());
+ if (c) {
+ PBD::Controllable::GUIFocusChanged (boost::weak_ptr<PBD::Controllable> (c));
+ }
+ return false;
+}
+
+bool
+ClickBox::on_leave_notify_event (GdkEventCrossing* ev)
+{
+ if (_binding_proxy.get_controllable()) {
+ PBD::Controllable::GUIFocusChanged (boost::weak_ptr<PBD::Controllable> ());
+ }
+ return false;
+}
#include <string>
#include <gtkmm.h>
-#include "gtkmm2ext/visibility.h"
#include "gtkmm2ext/auto_spin.h"
+#include "gtkmm2ext/binding_proxy.h"
+#include "gtkmm2ext/visibility.h"
+
+namespace PBD {
+ class Controllable;
+}
namespace Gtkmm2ext {
*/
void set_printer (sigc::slot<bool, char *, Gtk::Adjustment &>);
+ void set_controllable (boost::shared_ptr<PBD::Controllable> c) {
+ _binding_proxy.set_controllable (c);
+ }
+
protected:
bool on_expose_event (GdkEventExpose*);
+ bool on_enter_notify_event (GdkEventCrossing* ev);
+ bool on_leave_notify_event (GdkEventCrossing* ev);
+
+ BindingProxy _binding_proxy;
private:
Glib::RefPtr<Pango::Layout> layout;