1// Package adw was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package adw
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/glib"
12 "github.com/bnema/puregotk/v4/gobject"
13 "github.com/bnema/puregotk/v4/gobject/types"
14 "github.com/bnema/puregotk/v4/gtk"
15)
16
17type SwipeTrackerClass struct {
18 _ structs.HostLayout
19
20 ParentClass gobject.ObjectClass
21}
22
23func (x *SwipeTrackerClass) GoPointer() uintptr {
24 return uintptr(unsafe.Pointer(x))
25}
26
27// A swipe tracker used in [class@Carousel], [class@NavigationView] and
28// [class@OverlaySplitView].
29//
30// The `AdwSwipeTracker` object can be used for implementing widgets with swipe
31// gestures. It supports touch-based swipes, pointer dragging, and touchpad
32// scrolling.
33//
34// The widgets will probably want to expose the [property@SwipeTracker:enabled]
35// property. If they expect to use horizontal orientation,
36// [property@SwipeTracker:reversed] can be used for supporting RTL text
37// direction.
38type SwipeTracker struct {
39 gobject.Object
40}
41
42var xSwipeTrackerGLibType func() types.GType
43
44func SwipeTrackerGLibType() types.GType {
45 return xSwipeTrackerGLibType()
46}
47
48func SwipeTrackerNewFromInternalPtr(ptr uintptr) *SwipeTracker {
49 cls := &SwipeTracker{}
50 cls.Ptr = ptr
51 return cls
52}
53
54var xNewSwipeTracker func(uintptr) uintptr
55
56// Creates a new `AdwSwipeTracker` for @widget.
57func NewSwipeTracker(SwipeableVar Swipeable) *SwipeTracker {
58 var cls *SwipeTracker
59
60 cret := xNewSwipeTracker(SwipeableVar.GoPointer())
61
62 if cret == 0 {
63 return nil
64 }
65 cls = &SwipeTracker{}
66 cls.Ptr = cret
67 return cls
68}
69
70var xSwipeTrackerGetAllowLongSwipes func(uintptr) bool
71
72// Gets whether to allow swiping for more than one snap point at a time.
73func (x *SwipeTracker) GetAllowLongSwipes() bool {
74
75 cret := xSwipeTrackerGetAllowLongSwipes(x.GoPointer())
76 return cret
77}
78
79var xSwipeTrackerGetAllowMouseDrag func(uintptr) bool
80
81// Gets whether @self can be dragged with mouse pointer.
82func (x *SwipeTracker) GetAllowMouseDrag() bool {
83
84 cret := xSwipeTrackerGetAllowMouseDrag(x.GoPointer())
85 return cret
86}
87
88var xSwipeTrackerGetAllowWindowHandle func(uintptr) bool
89
90// Gets whether to allow touchscreen swiping from `GtkWindowHandle`.
91func (x *SwipeTracker) GetAllowWindowHandle() bool {
92
93 cret := xSwipeTrackerGetAllowWindowHandle(x.GoPointer())
94 return cret
95}
96
97var xSwipeTrackerGetEnabled func(uintptr) bool
98
99// Gets whether @self is enabled.
100func (x *SwipeTracker) GetEnabled() bool {
101
102 cret := xSwipeTrackerGetEnabled(x.GoPointer())
103 return cret
104}
105
106var xSwipeTrackerGetLowerOvershoot func(uintptr) bool
107
108// Gets whether to allow swiping past the first available snap point.
109func (x *SwipeTracker) GetLowerOvershoot() bool {
110
111 cret := xSwipeTrackerGetLowerOvershoot(x.GoPointer())
112 return cret
113}
114
115var xSwipeTrackerGetReversed func(uintptr) bool
116
117// Gets whether @self is reversing the swipe direction.
118func (x *SwipeTracker) GetReversed() bool {
119
120 cret := xSwipeTrackerGetReversed(x.GoPointer())
121 return cret
122}
123
124var xSwipeTrackerGetSwipeable func(uintptr) uintptr
125
126// Get the widget @self is attached to.
127func (x *SwipeTracker) GetSwipeable() *SwipeableBase {
128 var cls *SwipeableBase
129
130 cret := xSwipeTrackerGetSwipeable(x.GoPointer())
131
132 if cret == 0 {
133 return nil
134 }
135 gobject.IncreaseRef(cret)
136 cls = &SwipeableBase{}
137 cls.Ptr = cret
138 return cls
139}
140
141var xSwipeTrackerGetUpperOvershoot func(uintptr) bool
142
143// Gets whether to allow swiping past the last available snap point.
144func (x *SwipeTracker) GetUpperOvershoot() bool {
145
146 cret := xSwipeTrackerGetUpperOvershoot(x.GoPointer())
147 return cret
148}
149
150var xSwipeTrackerSetAllowLongSwipes func(uintptr, bool)
151
152// Sets whether to allow swiping for more than one snap point at a time.
153//
154// If the value is `FALSE`, each swipe can only move to the adjacent snap
155// points.
156func (x *SwipeTracker) SetAllowLongSwipes(AllowLongSwipesVar bool) {
157
158 xSwipeTrackerSetAllowLongSwipes(x.GoPointer(), AllowLongSwipesVar)
159
160}
161
162var xSwipeTrackerSetAllowMouseDrag func(uintptr, bool)
163
164// Sets whether @self can be dragged with mouse pointer.
165func (x *SwipeTracker) SetAllowMouseDrag(AllowMouseDragVar bool) {
166
167 xSwipeTrackerSetAllowMouseDrag(x.GoPointer(), AllowMouseDragVar)
168
169}
170
171var xSwipeTrackerSetAllowWindowHandle func(uintptr, bool)
172
173// Sets whether to allow touchscreen swiping from `GtkWindowHandle`.
174//
175// Setting it to `TRUE` will make dragging the window impossible.
176func (x *SwipeTracker) SetAllowWindowHandle(AllowWindowHandleVar bool) {
177
178 xSwipeTrackerSetAllowWindowHandle(x.GoPointer(), AllowWindowHandleVar)
179
180}
181
182var xSwipeTrackerSetEnabled func(uintptr, bool)
183
184// Sets whether @self is enabled.
185//
186// When it's not enabled, no events will be processed. Usually widgets will want
187// to expose this via a property.
188func (x *SwipeTracker) SetEnabled(EnabledVar bool) {
189
190 xSwipeTrackerSetEnabled(x.GoPointer(), EnabledVar)
191
192}
193
194var xSwipeTrackerSetLowerOvershoot func(uintptr, bool)
195
196// Sets whether to allow swiping past the first available snap point.
197func (x *SwipeTracker) SetLowerOvershoot(OvershootVar bool) {
198
199 xSwipeTrackerSetLowerOvershoot(x.GoPointer(), OvershootVar)
200
201}
202
203var xSwipeTrackerSetReversed func(uintptr, bool)
204
205// Sets whether to reverse the swipe direction.
206//
207// If the swipe tracker is horizontal, it can be used for supporting RTL text
208// direction.
209func (x *SwipeTracker) SetReversed(ReversedVar bool) {
210
211 xSwipeTrackerSetReversed(x.GoPointer(), ReversedVar)
212
213}
214
215var xSwipeTrackerSetUpperOvershoot func(uintptr, bool)
216
217// Sets whether to allow swiping past the last available snap point.
218func (x *SwipeTracker) SetUpperOvershoot(OvershootVar bool) {
219
220 xSwipeTrackerSetUpperOvershoot(x.GoPointer(), OvershootVar)
221
222}
223
224var xSwipeTrackerShiftPosition func(uintptr, float64)
225
226// Moves the current progress value by @delta.
227//
228// This can be used to adjust the current position if snap points move during
229// the gesture.
230func (x *SwipeTracker) ShiftPosition(DeltaVar float64) {
231
232 xSwipeTrackerShiftPosition(x.GoPointer(), DeltaVar)
233
234}
235
236func (c *SwipeTracker) GoPointer() uintptr {
237 if c == nil {
238 return 0
239 }
240 return c.Ptr
241}
242
243func (c *SwipeTracker) SetGoPointer(ptr uintptr) {
244 c.Ptr = ptr
245}
246
247// SetPropertyAllowLongSwipes sets the "allow-long-swipes" property.
248// Whether to allow swiping for more than one snap point at a time.
249//
250// If the value is `FALSE`, each swipe can only move to the adjacent snap
251// points.
252func (x *SwipeTracker) SetPropertyAllowLongSwipes(value bool) {
253 var v gobject.Value
254 v.Init(gobject.TypeBooleanVal)
255 v.SetBoolean(value)
256 x.SetProperty("allow-long-swipes", &v)
257}
258
259// GetPropertyAllowLongSwipes gets the "allow-long-swipes" property.
260// Whether to allow swiping for more than one snap point at a time.
261//
262// If the value is `FALSE`, each swipe can only move to the adjacent snap
263// points.
264func (x *SwipeTracker) GetPropertyAllowLongSwipes() bool {
265 var v gobject.Value
266 x.GetProperty("allow-long-swipes", &v)
267 return v.GetBoolean()
268}
269
270// SetPropertyAllowMouseDrag sets the "allow-mouse-drag" property.
271// Whether to allow dragging with mouse pointer.
272func (x *SwipeTracker) SetPropertyAllowMouseDrag(value bool) {
273 var v gobject.Value
274 v.Init(gobject.TypeBooleanVal)
275 v.SetBoolean(value)
276 x.SetProperty("allow-mouse-drag", &v)
277}
278
279// GetPropertyAllowMouseDrag gets the "allow-mouse-drag" property.
280// Whether to allow dragging with mouse pointer.
281func (x *SwipeTracker) GetPropertyAllowMouseDrag() bool {
282 var v gobject.Value
283 x.GetProperty("allow-mouse-drag", &v)
284 return v.GetBoolean()
285}
286
287// SetPropertyAllowWindowHandle sets the "allow-window-handle" property.
288// Whether to allow touchscreen swiping from `GtkWindowHandle`.
289//
290// This will make dragging the window impossible.
291func (x *SwipeTracker) SetPropertyAllowWindowHandle(value bool) {
292 var v gobject.Value
293 v.Init(gobject.TypeBooleanVal)
294 v.SetBoolean(value)
295 x.SetProperty("allow-window-handle", &v)
296}
297
298// GetPropertyAllowWindowHandle gets the "allow-window-handle" property.
299// Whether to allow touchscreen swiping from `GtkWindowHandle`.
300//
301// This will make dragging the window impossible.
302func (x *SwipeTracker) GetPropertyAllowWindowHandle() bool {
303 var v gobject.Value
304 x.GetProperty("allow-window-handle", &v)
305 return v.GetBoolean()
306}
307
308// SetPropertyEnabled sets the "enabled" property.
309// Whether the swipe tracker is enabled.
310//
311// When it's not enabled, no events will be processed. Usually widgets will
312// want to expose this via a property.
313func (x *SwipeTracker) SetPropertyEnabled(value bool) {
314 var v gobject.Value
315 v.Init(gobject.TypeBooleanVal)
316 v.SetBoolean(value)
317 x.SetProperty("enabled", &v)
318}
319
320// GetPropertyEnabled gets the "enabled" property.
321// Whether the swipe tracker is enabled.
322//
323// When it's not enabled, no events will be processed. Usually widgets will
324// want to expose this via a property.
325func (x *SwipeTracker) GetPropertyEnabled() bool {
326 var v gobject.Value
327 x.GetProperty("enabled", &v)
328 return v.GetBoolean()
329}
330
331// SetPropertyLowerOvershoot sets the "lower-overshoot" property.
332// Whether to allow swiping past the first available snap point.
333func (x *SwipeTracker) SetPropertyLowerOvershoot(value bool) {
334 var v gobject.Value
335 v.Init(gobject.TypeBooleanVal)
336 v.SetBoolean(value)
337 x.SetProperty("lower-overshoot", &v)
338}
339
340// GetPropertyLowerOvershoot gets the "lower-overshoot" property.
341// Whether to allow swiping past the first available snap point.
342func (x *SwipeTracker) GetPropertyLowerOvershoot() bool {
343 var v gobject.Value
344 x.GetProperty("lower-overshoot", &v)
345 return v.GetBoolean()
346}
347
348// SetPropertyReversed sets the "reversed" property.
349// Whether to reverse the swipe direction.
350//
351// If the swipe tracker is horizontal, it can be used for supporting RTL text
352// direction.
353func (x *SwipeTracker) SetPropertyReversed(value bool) {
354 var v gobject.Value
355 v.Init(gobject.TypeBooleanVal)
356 v.SetBoolean(value)
357 x.SetProperty("reversed", &v)
358}
359
360// GetPropertyReversed gets the "reversed" property.
361// Whether to reverse the swipe direction.
362//
363// If the swipe tracker is horizontal, it can be used for supporting RTL text
364// direction.
365func (x *SwipeTracker) GetPropertyReversed() bool {
366 var v gobject.Value
367 x.GetProperty("reversed", &v)
368 return v.GetBoolean()
369}
370
371// SetPropertyUpperOvershoot sets the "upper-overshoot" property.
372// Whether to allow swiping past the last available snap point.
373func (x *SwipeTracker) SetPropertyUpperOvershoot(value bool) {
374 var v gobject.Value
375 v.Init(gobject.TypeBooleanVal)
376 v.SetBoolean(value)
377 x.SetProperty("upper-overshoot", &v)
378}
379
380// GetPropertyUpperOvershoot gets the "upper-overshoot" property.
381// Whether to allow swiping past the last available snap point.
382func (x *SwipeTracker) GetPropertyUpperOvershoot() bool {
383 var v gobject.Value
384 x.GetProperty("upper-overshoot", &v)
385 return v.GetBoolean()
386}
387
388// This signal is emitted right before a swipe will be started, after the
389// drag threshold has been passed.
390func (x *SwipeTracker) ConnectBeginSwipe(cb *func(SwipeTracker)) uint {
391 cbPtr := uintptr(unsafe.Pointer(cb))
392 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
393 handlerID := gobject.SignalConnect(x.GoPointer(), "begin-swipe", cbRefPtr)
394 glib.SaveHandlerMapping(handlerID, cbPtr)
395 return handlerID
396 }
397
398 fcb := func(clsPtr uintptr) {
399 fa := SwipeTracker{}
400 fa.Ptr = clsPtr
401 cbFn := *cb
402
403 cbFn(fa)
404
405 }
406 cbRefPtr := purego.NewCallback(fcb)
407 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
408 handlerID := gobject.SignalConnect(x.GoPointer(), "begin-swipe", cbRefPtr)
409 glib.SaveHandlerMapping(handlerID, cbPtr)
410 return handlerID
411}
412
413// This signal is emitted as soon as the gesture has stopped.
414//
415// The user is expected to animate the deceleration from the current progress
416// value to @to with an animation using @velocity as the initial velocity,
417// provided in pixels per second. [class@SpringAnimation] is usually a good
418// fit for this.
419func (x *SwipeTracker) ConnectEndSwipe(cb *func(SwipeTracker, float64, float64)) uint {
420 cbPtr := uintptr(unsafe.Pointer(cb))
421 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
422 handlerID := gobject.SignalConnect(x.GoPointer(), "end-swipe", cbRefPtr)
423 glib.SaveHandlerMapping(handlerID, cbPtr)
424 return handlerID
425 }
426
427 fcb := func(clsPtr uintptr, VelocityVarp float64, ToVarp float64) {
428 fa := SwipeTracker{}
429 fa.Ptr = clsPtr
430 cbFn := *cb
431
432 cbFn(fa, VelocityVarp, ToVarp)
433
434 }
435 cbRefPtr := purego.NewCallback(fcb)
436 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
437 handlerID := gobject.SignalConnect(x.GoPointer(), "end-swipe", cbRefPtr)
438 glib.SaveHandlerMapping(handlerID, cbPtr)
439 return handlerID
440}
441
442// This signal is emitted when a possible swipe is detected.
443//
444// The @direction value can be used to restrict the swipe to a certain
445// direction.
446func (x *SwipeTracker) ConnectPrepare(cb *func(SwipeTracker, NavigationDirection)) uint {
447 cbPtr := uintptr(unsafe.Pointer(cb))
448 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
449 handlerID := gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
450 glib.SaveHandlerMapping(handlerID, cbPtr)
451 return handlerID
452 }
453
454 fcb := func(clsPtr uintptr, DirectionVarp NavigationDirection) {
455 fa := SwipeTracker{}
456 fa.Ptr = clsPtr
457 cbFn := *cb
458
459 cbFn(fa, DirectionVarp)
460
461 }
462 cbRefPtr := purego.NewCallback(fcb)
463 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
464 handlerID := gobject.SignalConnect(x.GoPointer(), "prepare", cbRefPtr)
465 glib.SaveHandlerMapping(handlerID, cbPtr)
466 return handlerID
467}
468
469// This signal is emitted every time the progress value changes.
470func (x *SwipeTracker) ConnectUpdateSwipe(cb *func(SwipeTracker, float64)) uint {
471 cbPtr := uintptr(unsafe.Pointer(cb))
472 if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
473 handlerID := gobject.SignalConnect(x.GoPointer(), "update-swipe", cbRefPtr)
474 glib.SaveHandlerMapping(handlerID, cbPtr)
475 return handlerID
476 }
477
478 fcb := func(clsPtr uintptr, ProgressVarp float64) {
479 fa := SwipeTracker{}
480 fa.Ptr = clsPtr
481 cbFn := *cb
482
483 cbFn(fa, ProgressVarp)
484
485 }
486 cbRefPtr := purego.NewCallback(fcb)
487 glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
488 handlerID := gobject.SignalConnect(x.GoPointer(), "update-swipe", cbRefPtr)
489 glib.SaveHandlerMapping(handlerID, cbPtr)
490 return handlerID
491}
492
493// Retrieves the orientation of the @orientable.
494func (x *SwipeTracker) GetOrientation() gtk.Orientation {
495
496 cret := gtk.XGtkOrientableGetOrientation(x.GoPointer())
497 return cret
498}
499
500// Sets the orientation of the @orientable.
501func (x *SwipeTracker) SetOrientation(OrientationVar gtk.Orientation) {
502
503 gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar)
504
505}
506
507func init() {
508 core.SetPackageName("ADW", "libadwaita-1")
509 core.SetSharedLibraries("ADW", []string{"libadwaita-1.so.0"})
510 var libs []uintptr
511 for _, libPath := range core.GetPaths("ADW") {
512 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
513 if err != nil {
514 panic(err)
515 }
516 libs = append(libs, lib)
517 }
518
519 core.PuregoSafeRegister(&xSwipeTrackerGLibType, libs, "adw_swipe_tracker_get_type")
520
521 core.PuregoSafeRegister(&xNewSwipeTracker, libs, "adw_swipe_tracker_new")
522
523 core.PuregoSafeRegister(&xSwipeTrackerGetAllowLongSwipes, libs, "adw_swipe_tracker_get_allow_long_swipes")
524 core.PuregoSafeRegister(&xSwipeTrackerGetAllowMouseDrag, libs, "adw_swipe_tracker_get_allow_mouse_drag")
525 core.PuregoSafeRegister(&xSwipeTrackerGetAllowWindowHandle, libs, "adw_swipe_tracker_get_allow_window_handle")
526 core.PuregoSafeRegister(&xSwipeTrackerGetEnabled, libs, "adw_swipe_tracker_get_enabled")
527 core.PuregoSafeRegister(&xSwipeTrackerGetLowerOvershoot, libs, "adw_swipe_tracker_get_lower_overshoot")
528 core.PuregoSafeRegister(&xSwipeTrackerGetReversed, libs, "adw_swipe_tracker_get_reversed")
529 core.PuregoSafeRegister(&xSwipeTrackerGetSwipeable, libs, "adw_swipe_tracker_get_swipeable")
530 core.PuregoSafeRegister(&xSwipeTrackerGetUpperOvershoot, libs, "adw_swipe_tracker_get_upper_overshoot")
531 core.PuregoSafeRegister(&xSwipeTrackerSetAllowLongSwipes, libs, "adw_swipe_tracker_set_allow_long_swipes")
532 core.PuregoSafeRegister(&xSwipeTrackerSetAllowMouseDrag, libs, "adw_swipe_tracker_set_allow_mouse_drag")
533 core.PuregoSafeRegister(&xSwipeTrackerSetAllowWindowHandle, libs, "adw_swipe_tracker_set_allow_window_handle")
534 core.PuregoSafeRegister(&xSwipeTrackerSetEnabled, libs, "adw_swipe_tracker_set_enabled")
535 core.PuregoSafeRegister(&xSwipeTrackerSetLowerOvershoot, libs, "adw_swipe_tracker_set_lower_overshoot")
536 core.PuregoSafeRegister(&xSwipeTrackerSetReversed, libs, "adw_swipe_tracker_set_reversed")
537 core.PuregoSafeRegister(&xSwipeTrackerSetUpperOvershoot, libs, "adw_swipe_tracker_set_upper_overshoot")
538 core.PuregoSafeRegister(&xSwipeTrackerShiftPosition, libs, "adw_swipe_tracker_shift_position")
539
540}