From a2d46a8266947917bb8f55a8c3e86cfe6108d84d Mon Sep 17 00:00:00 2001 From: Shish Date: Sat, 6 Sep 2014 11:45:12 +0100 Subject: [PATCH 1/2] GdkEventMask types --- gdk/gdk.go | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/gdk/gdk.go b/gdk/gdk.go index 453baf3..a45171d 100644 --- a/gdk/gdk.go +++ b/gdk/gdk.go @@ -35,6 +35,7 @@ func init() { {glib.Type(C.gdk_colorspace_get_type()), marshalColorspace}, {glib.Type(C.gdk_interp_type_get_type()), marshalInterpType}, {glib.Type(C.gdk_pixbuf_alpha_mode_get_type()), marshalPixbufAlphaMode}, + {glib.Type(C.gdk_event_type_get_type()), marshalEventMask}, // Objects/Interfaces {glib.Type(C.gdk_device_get_type()), marshalDevice}, @@ -147,6 +148,41 @@ const ( SELECTION_TYPE_STRING Atom = 31 ) +// EventMask is a representation of GDK's GdkEventMask. +type EventMask int + +const ( + EXPOSURE_MASK EventMask = C.GDK_EXPOSURE_MASK + POINTER_MOTION_MASK EventMask = C.GDK_POINTER_MOTION_MASK + POINTER_MOTION_HINT_MASK EventMask = C.GDK_POINTER_MOTION_HINT_MASK + BUTTON_MOTION_MASK EventMask = C.GDK_BUTTON_MOTION_MASK + BUTTON1_MOTION_MASK EventMask = C.GDK_BUTTON1_MOTION_MASK + BUTTON2_MOTION_MASK EventMask = C.GDK_BUTTON2_MOTION_MASK + BUTTON3_MOTION_MASK EventMask = C.GDK_BUTTON3_MOTION_MASK + BUTTON_PRESS_MASK EventMask = C.GDK_BUTTON_PRESS_MASK + BUTTON_RELEASE_MASK EventMask = C.GDK_BUTTON_RELEASE_MASK + KEY_PRESS_MASK EventMask = C.GDK_KEY_PRESS_MASK + KEY_RELEASE_MASK EventMask = C.GDK_KEY_RELEASE_MASK + ENTER_NOTIFY_MASK EventMask = C.GDK_ENTER_NOTIFY_MASK + LEAVE_NOTIFY_MASK EventMask = C.GDK_LEAVE_NOTIFY_MASK + FOCUS_CHANGE_MASK EventMask = C.GDK_FOCUS_CHANGE_MASK + STRUCTURE_MASK EventMask = C.GDK_STRUCTURE_MASK + PROPERTY_CHANGE_MASK EventMask = C.GDK_PROPERTY_CHANGE_MASK + VISIBILITY_NOTIFY_MASK EventMask = C.GDK_VISIBILITY_NOTIFY_MASK + PROXIMITY_IN_MASK EventMask = C.GDK_PROXIMITY_IN_MASK + PROXIMITY_OUT_MASK EventMask = C.GDK_PROXIMITY_OUT_MASK + SUBSTRUCTURE_MASK EventMask = C.GDK_SUBSTRUCTURE_MASK + SCROLL_MASK EventMask = C.GDK_SCROLL_MASK + TOUCH_MASK EventMask = C.GDK_TOUCH_MASK + SMOOTH_SCROLL_MASK EventMask = C.GDK_SMOOTH_SCROLL_MASK + ALL_EVENTS_MASK EventMask = C.GDK_ALL_EVENTS_MASK +) + +func marshalEventMask(p uintptr) (interface{}, error) { + c := C.g_value_get_enum((*C.GValue)(unsafe.Pointer(p))) + return EventMask(c), nil +} + /* * GdkAtom */ @@ -521,6 +557,12 @@ func (v *Event) free() { C.gdk_event_free(v.native()) } +// GetCoords is a wrapper around gdk_event_get_coords(). +func (v *Event) GetCoords(x_win *float64, y_win *float64) bool { + ok := C.gdk_event_get_coords(v.native(), (*C.gdouble)(x_win), (*C.gdouble)(y_win)) + return bool(ok == 1) +} + /* * GdkPixbuf */ From 5c0b345384c670420b0d7dd15939a40145f2db8c Mon Sep 17 00:00:00 2001 From: Shish Date: Sat, 6 Sep 2014 12:00:37 +0100 Subject: [PATCH 2/2] use gdk.EventMask rather than int for Widget.AddEvents() --- gtk/gtk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/gtk.go b/gtk/gtk.go index 5d7177f..927ea4b 100644 --- a/gtk/gtk.go +++ b/gtk/gtk.go @@ -8251,7 +8251,7 @@ func (v *Widget) GetEvents() int { } // AddEvents is a wrapper around gtk_widget_add_events(). -func (v *Widget) AddEvents(events int) { +func (v *Widget) AddEvents(events gdk.EventMask) { C.gtk_widget_add_events(v.native(), C.gint(events)) }