v0.2.1 c0399be

gtkeventcontrollerkey.go RawHistoryFolder

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/glib"
13	"github.com/bnema/puregotk/v4/gobject"
14	"github.com/bnema/puregotk/v4/gobject/types"
15)
16
17type EventControllerKeyClass struct {
18	_ structs.HostLayout
19}
20
21func (x *EventControllerKeyClass) GoPointer() uintptr {
22	return uintptr(unsafe.Pointer(x))
23}
24
25// Provides access to key events.
26type EventControllerKey struct {
27	EventController
28}
29
30var xEventControllerKeyGLibType func() types.GType
31
32func EventControllerKeyGLibType() types.GType {
33	return xEventControllerKeyGLibType()
34}
35
36func EventControllerKeyNewFromInternalPtr(ptr uintptr) *EventControllerKey {
37	cls := &EventControllerKey{}
38	cls.Ptr = ptr
39	return cls
40}
41
42var xNewEventControllerKey func() uintptr
43
44// Creates a new event controller that will handle key events.
45func NewEventControllerKey() *EventControllerKey {
46	var cls *EventControllerKey
47
48	cret := xNewEventControllerKey()
49
50	if cret == 0 {
51		return nil
52	}
53	cls = &EventControllerKey{}
54	cls.Ptr = cret
55	return cls
56}
57
58var xEventControllerKeyForward func(uintptr, uintptr) bool
59
60// Forwards the current event of this @controller to a @widget.
61//
62// This function can only be used in handlers for the
63// [signal@Gtk.EventControllerKey::key-pressed],
64// [signal@Gtk.EventControllerKey::key-released]
65// or [signal@Gtk.EventControllerKey::modifiers] signals.
66func (x *EventControllerKey) Forward(WidgetVar *Widget) bool {
67
68	cret := xEventControllerKeyForward(x.GoPointer(), WidgetVar.GoPointer())
69	return cret
70}
71
72var xEventControllerKeyGetGroup func(uintptr) uint
73
74// Gets the key group of the current event of this @controller.
75//
76// See [method@Gdk.KeyEvent.get_layout].
77func (x *EventControllerKey) GetGroup() uint {
78
79	cret := xEventControllerKeyGetGroup(x.GoPointer())
80	return cret
81}
82
83var xEventControllerKeyGetImContext func(uintptr) uintptr
84
85// Gets the input method context of the key @controller.
86func (x *EventControllerKey) GetImContext() *IMContext {
87	var cls *IMContext
88
89	cret := xEventControllerKeyGetImContext(x.GoPointer())
90
91	if cret == 0 {
92		return nil
93	}
94	gobject.IncreaseRef(cret)
95	cls = &IMContext{}
96	cls.Ptr = cret
97	return cls
98}
99
100var xEventControllerKeySetImContext func(uintptr, uintptr)
101
102// Sets the input method context of the key @controller.
103func (x *EventControllerKey) SetImContext(ImContextVar *IMContext) {
104
105	xEventControllerKeySetImContext(x.GoPointer(), ImContextVar.GoPointer())
106
107}
108
109func (c *EventControllerKey) GoPointer() uintptr {
110	if c == nil {
111		return 0
112	}
113	return c.Ptr
114}
115
116func (c *EventControllerKey) SetGoPointer(ptr uintptr) {
117	c.Ptr = ptr
118}
119
120// Emitted whenever the input method context filters away
121// a keypress and prevents the @controller receiving it.
122//
123// See [method@Gtk.EventControllerKey.set_im_context] and
124// [method@Gtk.IMContext.filter_keypress].
125func (x *EventControllerKey) ConnectImUpdate(cb *func(EventControllerKey)) uint {
126	cbPtr := uintptr(unsafe.Pointer(cb))
127	if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
128		handlerID := gobject.SignalConnect(x.GoPointer(), "im-update", cbRefPtr)
129		glib.SaveHandlerMapping(handlerID, cbPtr)
130		return handlerID
131	}
132
133	fcb := func(clsPtr uintptr) {
134		fa := EventControllerKey{}
135		fa.Ptr = clsPtr
136		cbFn := *cb
137
138		cbFn(fa)
139
140	}
141	cbRefPtr := purego.NewCallback(fcb)
142	glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
143	handlerID := gobject.SignalConnect(x.GoPointer(), "im-update", cbRefPtr)
144	glib.SaveHandlerMapping(handlerID, cbPtr)
145	return handlerID
146}
147
148// Emitted whenever a key is pressed.
149func (x *EventControllerKey) ConnectKeyPressed(cb *func(EventControllerKey, uint, uint, gdk.ModifierType) bool) uint {
150	cbPtr := uintptr(unsafe.Pointer(cb))
151	if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
152		handlerID := gobject.SignalConnect(x.GoPointer(), "key-pressed", cbRefPtr)
153		glib.SaveHandlerMapping(handlerID, cbPtr)
154		return handlerID
155	}
156
157	fcb := func(clsPtr uintptr, KeyvalVarp uint, KeycodeVarp uint, StateVarp gdk.ModifierType) bool {
158		fa := EventControllerKey{}
159		fa.Ptr = clsPtr
160		cbFn := *cb
161
162		return cbFn(fa, KeyvalVarp, KeycodeVarp, StateVarp)
163
164	}
165	cbRefPtr := purego.NewCallback(fcb)
166	glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
167	handlerID := gobject.SignalConnect(x.GoPointer(), "key-pressed", cbRefPtr)
168	glib.SaveHandlerMapping(handlerID, cbPtr)
169	return handlerID
170}
171
172// Emitted whenever a key is released.
173func (x *EventControllerKey) ConnectKeyReleased(cb *func(EventControllerKey, uint, uint, gdk.ModifierType)) uint {
174	cbPtr := uintptr(unsafe.Pointer(cb))
175	if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
176		handlerID := gobject.SignalConnect(x.GoPointer(), "key-released", cbRefPtr)
177		glib.SaveHandlerMapping(handlerID, cbPtr)
178		return handlerID
179	}
180
181	fcb := func(clsPtr uintptr, KeyvalVarp uint, KeycodeVarp uint, StateVarp gdk.ModifierType) {
182		fa := EventControllerKey{}
183		fa.Ptr = clsPtr
184		cbFn := *cb
185
186		cbFn(fa, KeyvalVarp, KeycodeVarp, StateVarp)
187
188	}
189	cbRefPtr := purego.NewCallback(fcb)
190	glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
191	handlerID := gobject.SignalConnect(x.GoPointer(), "key-released", cbRefPtr)
192	glib.SaveHandlerMapping(handlerID, cbPtr)
193	return handlerID
194}
195
196// Emitted whenever the state of modifier keys and pointer buttons change.
197func (x *EventControllerKey) ConnectModifiers(cb *func(EventControllerKey, gdk.ModifierType) bool) uint {
198	cbPtr := uintptr(unsafe.Pointer(cb))
199	if cbRefPtr, ok := glib.GetCallback(cbPtr); ok {
200		handlerID := gobject.SignalConnect(x.GoPointer(), "modifiers", cbRefPtr)
201		glib.SaveHandlerMapping(handlerID, cbPtr)
202		return handlerID
203	}
204
205	fcb := func(clsPtr uintptr, StateVarp gdk.ModifierType) bool {
206		fa := EventControllerKey{}
207		fa.Ptr = clsPtr
208		cbFn := *cb
209
210		return cbFn(fa, StateVarp)
211
212	}
213	cbRefPtr := purego.NewCallback(fcb)
214	glib.SaveCallbackWithClosure(cbPtr, cbRefPtr, cb)
215	handlerID := gobject.SignalConnect(x.GoPointer(), "modifiers", cbRefPtr)
216	glib.SaveHandlerMapping(handlerID, cbPtr)
217	return handlerID
218}
219
220func init() {
221	core.SetPackageName("GTK", "gtk4")
222	core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
223	var libs []uintptr
224	for _, libPath := range core.GetPaths("GTK") {
225		lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
226		if err != nil {
227			panic(err)
228		}
229		libs = append(libs, lib)
230	}
231
232	core.PuregoSafeRegister(&xEventControllerKeyGLibType, libs, "gtk_event_controller_key_get_type")
233
234	core.PuregoSafeRegister(&xNewEventControllerKey, libs, "gtk_event_controller_key_new")
235
236	core.PuregoSafeRegister(&xEventControllerKeyForward, libs, "gtk_event_controller_key_forward")
237	core.PuregoSafeRegister(&xEventControllerKeyGetGroup, libs, "gtk_event_controller_key_get_group")
238	core.PuregoSafeRegister(&xEventControllerKeyGetImContext, libs, "gtk_event_controller_key_get_im_context")
239	core.PuregoSafeRegister(&xEventControllerKeySetImContext, libs, "gtk_event_controller_key_set_im_context")
240
241}

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