1// Package gtk was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package gtk
3
4import (
5 "structs"
6 "unsafe"
7
8 "github.com/ebitengine/purego"
9
10 "github.com/bnema/puregotk/pkg/core"
11 "github.com/bnema/puregotk/v4/gdk"
12 "github.com/bnema/puregotk/v4/gobject"
13 "github.com/bnema/puregotk/v4/gobject/types"
14)
15
16type EventControllerClass struct {
17 _ structs.HostLayout
18}
19
20func (x *EventControllerClass) GoPointer() uintptr {
21 return uintptr(unsafe.Pointer(x))
22}
23
24// The base class for event controllers.
25//
26// These are ancillary objects associated to widgets, which react
27// to `GdkEvents`, and possibly trigger actions as a consequence.
28//
29// Event controllers are added to a widget with
30// [method@Gtk.Widget.add_controller]. It is rarely necessary to
31// explicitly remove a controller with [method@Gtk.Widget.remove_controller].
32//
33// See the chapter on [input handling](input-handling.html) for
34// an overview of the basic concepts, such as the capture and bubble
35// phases of event propagation.
36type EventController struct {
37 gobject.Object
38}
39
40var xEventControllerGLibType func() types.GType
41
42func EventControllerGLibType() types.GType {
43 return xEventControllerGLibType()
44}
45
46func EventControllerNewFromInternalPtr(ptr uintptr) *EventController {
47 cls := &EventController{}
48 cls.Ptr = ptr
49 return cls
50}
51
52var xEventControllerGetCurrentEvent func(uintptr) uintptr
53
54// Returns the event that is currently being handled by the controller.
55//
56// At other times, %NULL is returned.
57func (x *EventController) GetCurrentEvent() *gdk.Event {
58 var cls *gdk.Event
59
60 cret := xEventControllerGetCurrentEvent(x.GoPointer())
61
62 if cret == 0 {
63 return nil
64 }
65 gobject.IncreaseRef(cret)
66 cls = &gdk.Event{}
67 cls.Ptr = cret
68 return cls
69}
70
71var xEventControllerGetCurrentEventDevice func(uintptr) uintptr
72
73// Returns the device of the event that is currently being
74// handled by the controller.
75//
76// At other times, %NULL is returned.
77func (x *EventController) GetCurrentEventDevice() *gdk.Device {
78 var cls *gdk.Device
79
80 cret := xEventControllerGetCurrentEventDevice(x.GoPointer())
81
82 if cret == 0 {
83 return nil
84 }
85 gobject.IncreaseRef(cret)
86 cls = &gdk.Device{}
87 cls.Ptr = cret
88 return cls
89}
90
91var xEventControllerGetCurrentEventState func(uintptr) gdk.ModifierType
92
93// Returns the modifier state of the event that is currently being
94// handled by the controller.
95//
96// At other times, 0 is returned.
97func (x *EventController) GetCurrentEventState() gdk.ModifierType {
98
99 cret := xEventControllerGetCurrentEventState(x.GoPointer())
100 return cret
101}
102
103var xEventControllerGetCurrentEventTime func(uintptr) uint32
104
105// Returns the timestamp of the event that is currently being
106// handled by the controller.
107//
108// At other times, 0 is returned.
109func (x *EventController) GetCurrentEventTime() uint32 {
110
111 cret := xEventControllerGetCurrentEventTime(x.GoPointer())
112 return cret
113}
114
115var xEventControllerGetName func(uintptr) string
116
117// Gets the name of @controller.
118func (x *EventController) GetName() string {
119
120 cret := xEventControllerGetName(x.GoPointer())
121 return cret
122}
123
124var xEventControllerGetPropagationLimit func(uintptr) PropagationLimit
125
126// Gets the propagation limit of the event controller.
127func (x *EventController) GetPropagationLimit() PropagationLimit {
128
129 cret := xEventControllerGetPropagationLimit(x.GoPointer())
130 return cret
131}
132
133var xEventControllerGetPropagationPhase func(uintptr) PropagationPhase
134
135// Gets the propagation phase at which @controller handles events.
136func (x *EventController) GetPropagationPhase() PropagationPhase {
137
138 cret := xEventControllerGetPropagationPhase(x.GoPointer())
139 return cret
140}
141
142var xEventControllerGetWidget func(uintptr) uintptr
143
144// Returns the `GtkWidget` this controller relates to.
145func (x *EventController) GetWidget() *Widget {
146 var cls *Widget
147
148 cret := xEventControllerGetWidget(x.GoPointer())
149
150 if cret == 0 {
151 return nil
152 }
153 gobject.IncreaseRef(cret)
154 cls = &Widget{}
155 cls.Ptr = cret
156 return cls
157}
158
159var xEventControllerReset func(uintptr)
160
161// Resets the @controller to a clean state.
162func (x *EventController) Reset() {
163
164 xEventControllerReset(x.GoPointer())
165
166}
167
168var xEventControllerSetName func(uintptr, uintptr)
169
170// Sets a name on the controller that can be used for debugging.
171func (x *EventController) SetName(NameVar *string) {
172
173 NameVarPtr := core.GStrdupNullable(NameVar)
174 defer core.GFreeNullable(NameVarPtr)
175
176 xEventControllerSetName(x.GoPointer(), NameVarPtr)
177
178}
179
180var xEventControllerSetPropagationLimit func(uintptr, PropagationLimit)
181
182// Sets the event propagation limit on the event controller.
183//
184// If the limit is set to %GTK_LIMIT_SAME_NATIVE, the controller
185// won't handle events that are targeted at widgets on a different
186// surface, such as popovers.
187func (x *EventController) SetPropagationLimit(LimitVar PropagationLimit) {
188
189 xEventControllerSetPropagationLimit(x.GoPointer(), LimitVar)
190
191}
192
193var xEventControllerSetPropagationPhase func(uintptr, PropagationPhase)
194
195// Sets the propagation phase at which a controller handles events.
196//
197// If @phase is %GTK_PHASE_NONE, no automatic event handling will be
198// performed, but other additional gesture maintenance will.
199func (x *EventController) SetPropagationPhase(PhaseVar PropagationPhase) {
200
201 xEventControllerSetPropagationPhase(x.GoPointer(), PhaseVar)
202
203}
204
205var xEventControllerSetStaticName func(uintptr, uintptr)
206
207// Sets a name on the controller that can be used for debugging.
208func (x *EventController) SetStaticName(NameVar *string) {
209
210 NameVarPtr := core.GStrdupNullable(NameVar)
211 defer core.GFreeNullable(NameVarPtr)
212
213 xEventControllerSetStaticName(x.GoPointer(), NameVarPtr)
214
215}
216
217func (c *EventController) GoPointer() uintptr {
218 if c == nil {
219 return 0
220 }
221 return c.Ptr
222}
223
224func (c *EventController) SetGoPointer(ptr uintptr) {
225 c.Ptr = ptr
226}
227
228// SetPropertyName sets the "name" property.
229// The name for this controller, typically used for debugging purposes.
230func (x *EventController) SetPropertyName(value string) {
231 var v gobject.Value
232 v.Init(gobject.TypeStringVal)
233 v.SetString(&value)
234 x.SetProperty("name", &v)
235}
236
237// GetPropertyName gets the "name" property.
238// The name for this controller, typically used for debugging purposes.
239func (x *EventController) GetPropertyName() string {
240 var v gobject.Value
241 x.GetProperty("name", &v)
242 return v.GetString()
243}
244
245func init() {
246 core.SetPackageName("GTK", "gtk4")
247 core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
248 var libs []uintptr
249 for _, libPath := range core.GetPaths("GTK") {
250 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
251 if err != nil {
252 panic(err)
253 }
254 libs = append(libs, lib)
255 }
256
257 core.PuregoSafeRegister(&xEventControllerGLibType, libs, "gtk_event_controller_get_type")
258
259 core.PuregoSafeRegister(&xEventControllerGetCurrentEvent, libs, "gtk_event_controller_get_current_event")
260 core.PuregoSafeRegister(&xEventControllerGetCurrentEventDevice, libs, "gtk_event_controller_get_current_event_device")
261 core.PuregoSafeRegister(&xEventControllerGetCurrentEventState, libs, "gtk_event_controller_get_current_event_state")
262 core.PuregoSafeRegister(&xEventControllerGetCurrentEventTime, libs, "gtk_event_controller_get_current_event_time")
263 core.PuregoSafeRegister(&xEventControllerGetName, libs, "gtk_event_controller_get_name")
264 core.PuregoSafeRegister(&xEventControllerGetPropagationLimit, libs, "gtk_event_controller_get_propagation_limit")
265 core.PuregoSafeRegister(&xEventControllerGetPropagationPhase, libs, "gtk_event_controller_get_propagation_phase")
266 core.PuregoSafeRegister(&xEventControllerGetWidget, libs, "gtk_event_controller_get_widget")
267 core.PuregoSafeRegister(&xEventControllerReset, libs, "gtk_event_controller_reset")
268 core.PuregoSafeRegister(&xEventControllerSetName, libs, "gtk_event_controller_set_name")
269 core.PuregoSafeRegister(&xEventControllerSetPropagationLimit, libs, "gtk_event_controller_set_propagation_limit")
270 core.PuregoSafeRegister(&xEventControllerSetPropagationPhase, libs, "gtk_event_controller_set_propagation_phase")
271 core.PuregoSafeRegister(&xEventControllerSetStaticName, libs, "gtk_event_controller_set_static_name")
272
273}