// Package gtk was automatically generated by github.com/bnema/puregotk DO NOT EDIT package gtk import ( "structs" "unsafe" "github.com/ebitengine/purego" "github.com/bnema/puregotk/pkg/core" "github.com/bnema/puregotk/v4/glib" "github.com/bnema/puregotk/v4/gobject" "github.com/bnema/puregotk/v4/gobject/types" ) type EventControllerMotionClass struct { _ structs.HostLayout } func (x *EventControllerMotionClass) GoPointer() uintptr { return uintptr(unsafe.Pointer(x)) } // Tracks the pointer position. // // The event controller offers [signal@Gtk.EventControllerMotion::enter] // and [signal@Gtk.EventControllerMotion::leave] signals, as well as // [property@Gtk.EventControllerMotion:is-pointer] and // [property@Gtk.EventControllerMotion:contains-pointer] properties // which are updated to reflect changes in the pointer position as it // moves over the widget. type EventControllerMotion struct { EventController } var xEventControllerMotionGLibType func() types.GType func EventControllerMotionGLibType() types.GType { return xEventControllerMotionGLibType() } func EventControllerMotionNewFromInternalPtr(ptr uintptr) *EventControllerMotion { cls := &EventControllerMotion{} cls.Ptr = ptr return cls } var xNewEventControllerMotion func() uintptr // Creates a new event controller that will handle motion events. func NewEventControllerMotion() *EventControllerMotion { var cls *EventControllerMotion cret := xNewEventControllerMotion() if cret == 0 { return nil } cls = &EventControllerMotion{} cls.Ptr = cret return cls } var xEventControllerMotionContainsPointer func(uintptr) bool // Returns if a pointer is within @self or one of its children. func (x *EventControllerMotion) ContainsPointer() bool { cret := xEventControllerMotionContainsPointer(x.GoPointer()) return cret } var xEventControllerMotionIsPointer func(uintptr) bool // Returns if a pointer is within @self, but not one of its children. func (x *EventControllerMotion) IsPointer() bool { cret := xEventControllerMotionIsPointer(x.GoPointer()) return cret } func (c *EventControllerMotion) GoPointer() uintptr { if c == nil { return 0 } return c.Ptr } func (c *EventControllerMotion) SetGoPointer(ptr uintptr) { c.Ptr = ptr } // GetPropertyContainsPointer gets the "contains-pointer" property. // Whether the pointer is in the controllers widget or a descendant. // // See also [property@Gtk.EventControllerMotion:is-pointer]. // // When handling crossing events, this property is updated // before [signal@Gtk.EventControllerMotion::enter], but after // [signal@Gtk.EventControllerMotion::leave] is emitted. func (x *EventControllerMotion) GetPropertyContainsPointer() bool { var v gobject.Value x.GetProperty("contains-pointer", &v) return v.GetBoolean() } // GetPropertyIsPointer gets the "is-pointer" property. // Whether the pointer is in the controllers widget itself, // as opposed to in a descendent widget. // // See also [property@Gtk.EventControllerMotion:contains-pointer]. // // When handling crossing events, this property is updated // before [signal@Gtk.EventControllerMotion::enter], but after // [signal@Gtk.EventControllerMotion::leave] is emitted. func (x *EventControllerMotion) GetPropertyIsPointer() bool { var v gobject.Value x.GetProperty("is-pointer", &v) return v.GetBoolean() } // Signals that the pointer has entered the widget. func (x *EventControllerMotion) ConnectEnter(cb *func(EventControllerMotion, float64, float64)) uint { cbPtr := uintptr(unsafe.Pointer(cb)) if cbRefPtr, ok := glib.GetCallback(cbPtr); ok { handlerID := gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr) glib.SaveHandlerMapping(handlerID, cbPtr) return handlerID } fcb := func(clsPtr uintptr, XVarp float64, YVarp float64) { fa := EventControllerMotion{} fa.Ptr = clsPtr cbFn := *cb cbFn(fa, XVarp, YVarp) } cbRefPtr := purego.NewCallback(fcb) glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb) handlerID := gobject.SignalConnect(x.GoPointer(), "enter", cbRefPtr) glib.SaveHandlerMapping(handlerID, cbPtr) return handlerID } // Signals that the pointer has left the widget. func (x *EventControllerMotion) ConnectLeave(cb *func(EventControllerMotion)) uint { cbPtr := uintptr(unsafe.Pointer(cb)) if cbRefPtr, ok := glib.GetCallback(cbPtr); ok { handlerID := gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr) glib.SaveHandlerMapping(handlerID, cbPtr) return handlerID } fcb := func(clsPtr uintptr) { fa := EventControllerMotion{} fa.Ptr = clsPtr cbFn := *cb cbFn(fa) } cbRefPtr := purego.NewCallback(fcb) glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb) handlerID := gobject.SignalConnect(x.GoPointer(), "leave", cbRefPtr) glib.SaveHandlerMapping(handlerID, cbPtr) return handlerID } // Emitted when the pointer moves inside the widget. func (x *EventControllerMotion) ConnectMotion(cb *func(EventControllerMotion, float64, float64)) uint { cbPtr := uintptr(unsafe.Pointer(cb)) if cbRefPtr, ok := glib.GetCallback(cbPtr); ok { handlerID := gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr) glib.SaveHandlerMapping(handlerID, cbPtr) return handlerID } fcb := func(clsPtr uintptr, XVarp float64, YVarp float64) { fa := EventControllerMotion{} fa.Ptr = clsPtr cbFn := *cb cbFn(fa, XVarp, YVarp) } cbRefPtr := purego.NewCallback(fcb) glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb) handlerID := gobject.SignalConnect(x.GoPointer(), "motion", cbRefPtr) glib.SaveHandlerMapping(handlerID, cbPtr) return handlerID } func init() { core.SetPackageName("GTK", "gtk4") core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"}) var libs []uintptr for _, libPath := range core.GetPaths("GTK") { lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL) if err != nil { panic(err) } libs = append(libs, lib) } core.PuregoSafeRegister(&xEventControllerMotionGLibType, libs, "gtk_event_controller_motion_get_type") core.PuregoSafeRegister(&xNewEventControllerMotion, libs, "gtk_event_controller_motion_new") core.PuregoSafeRegister(&xEventControllerMotionContainsPointer, libs, "gtk_event_controller_motion_contains_pointer") core.PuregoSafeRegister(&xEventControllerMotionIsPointer, libs, "gtk_event_controller_motion_is_pointer") }