v0.2.1 c0399be

adw-swipe-tracker.go RawHistoryFolder

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}

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close