Skip to content
This repository was archived by the owner on Aug 13, 2019. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions gdk/gdk.go
Original file line number Diff line number Diff line change
Expand Up @@ -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},
Expand Down Expand Up @@ -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
*/
Expand Down Expand Up @@ -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
*/
Expand Down
2 changes: 1 addition & 1 deletion gtk/gtk.go
Original file line number Diff line number Diff line change
Expand Up @@ -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))
}

Expand Down