v0.2.1 c0399be

gtkfilelauncher.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/gio"
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 FileLauncherClass struct {
18	_ structs.HostLayout
19
20	ParentClass gobject.ObjectClass
21}
22
23func (x *FileLauncherClass) GoPointer() uintptr {
24	return uintptr(unsafe.Pointer(x))
25}
26
27// Asynchronous API to open a file with an application.
28//
29// `GtkFileLauncher` collects the arguments that are needed to open the file.
30//
31// Depending on system configuration, user preferences and available APIs, this
32// may or may not show an app chooser dialog or launch the default application
33// right away.
34//
35// The operation is started with the [method@Gtk.FileLauncher.launch] function.
36//
37// To launch uris that don't represent files, use [class@Gtk.UriLauncher].
38type FileLauncher struct {
39	gobject.Object
40}
41
42var xFileLauncherGLibType func() types.GType
43
44func FileLauncherGLibType() types.GType {
45	return xFileLauncherGLibType()
46}
47
48func FileLauncherNewFromInternalPtr(ptr uintptr) *FileLauncher {
49	cls := &FileLauncher{}
50	cls.Ptr = ptr
51	return cls
52}
53
54var xNewFileLauncher func(uintptr) uintptr
55
56// Creates a new `GtkFileLauncher` object.
57func NewFileLauncher(FileVar gio.File) *FileLauncher {
58	var cls *FileLauncher
59
60	cret := xNewFileLauncher(FileVar.GoPointer())
61
62	if cret == 0 {
63		return nil
64	}
65	cls = &FileLauncher{}
66	cls.Ptr = cret
67	return cls
68}
69
70var xFileLauncherGetAlwaysAsk func(uintptr) bool
71
72// Returns whether to ask the user which app to use.
73func (x *FileLauncher) GetAlwaysAsk() bool {
74
75	cret := xFileLauncherGetAlwaysAsk(x.GoPointer())
76	return cret
77}
78
79var xFileLauncherGetFile func(uintptr) uintptr
80
81// Gets the file that will be opened.
82func (x *FileLauncher) GetFile() *gio.FileBase {
83	var cls *gio.FileBase
84
85	cret := xFileLauncherGetFile(x.GoPointer())
86
87	if cret == 0 {
88		return nil
89	}
90	gobject.IncreaseRef(cret)
91	cls = &gio.FileBase{}
92	cls.Ptr = cret
93	return cls
94}
95
96var xFileLauncherGetWritable func(uintptr) bool
97
98// Returns whether to make the file writable for the handler.
99func (x *FileLauncher) GetWritable() bool {
100
101	cret := xFileLauncherGetWritable(x.GoPointer())
102	return cret
103}
104
105var xFileLauncherLaunch func(uintptr, uintptr, uintptr, uintptr, uintptr)
106
107// Launches an application to open the file.
108//
109// This may present an app chooser dialog to the user.
110func (x *FileLauncher) Launch(ParentVar *Window, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr) {
111
112	var CallbackVarRef uintptr
113	if CallbackVar != nil {
114		CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
115		if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
116			CallbackVarRef = cbRefPtr
117		} else {
118			fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
119				cbFn := *CallbackVar
120				cbFn(arg0, arg1, arg2)
121			}
122			CallbackVarRef = purego.NewCallback(fcb)
123			glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
124		}
125	}
126
127	xFileLauncherLaunch(x.GoPointer(), ParentVar.GoPointer(), CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
128
129}
130
131var xFileLauncherLaunchFinish func(uintptr, uintptr, **glib.Error) bool
132
133// Finishes the [method@Gtk.FileLauncher.launch] call and
134// returns the result.
135func (x *FileLauncher) LaunchFinish(ResultVar gio.AsyncResult) (bool, error) {
136	var cerr *glib.Error
137
138	cret := xFileLauncherLaunchFinish(x.GoPointer(), ResultVar.GoPointer(), &cerr)
139	if cerr == nil {
140		return cret, nil
141	}
142	return cret, cerr
143
144}
145
146var xFileLauncherOpenContainingFolder func(uintptr, uintptr, uintptr, uintptr, uintptr)
147
148// Launches a file manager to show the file in its parent directory.
149//
150// This is only supported for native files. It will fail if @file
151// is e.g. a http:// uri.
152func (x *FileLauncher) OpenContainingFolder(ParentVar *Window, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr) {
153
154	var CallbackVarRef uintptr
155	if CallbackVar != nil {
156		CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
157		if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
158			CallbackVarRef = cbRefPtr
159		} else {
160			fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
161				cbFn := *CallbackVar
162				cbFn(arg0, arg1, arg2)
163			}
164			CallbackVarRef = purego.NewCallback(fcb)
165			glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
166		}
167	}
168
169	xFileLauncherOpenContainingFolder(x.GoPointer(), ParentVar.GoPointer(), CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
170
171}
172
173var xFileLauncherOpenContainingFolderFinish func(uintptr, uintptr, **glib.Error) bool
174
175// Finishes the [method@Gtk.FileLauncher.open_containing_folder]
176// call and returns the result.
177func (x *FileLauncher) OpenContainingFolderFinish(ResultVar gio.AsyncResult) (bool, error) {
178	var cerr *glib.Error
179
180	cret := xFileLauncherOpenContainingFolderFinish(x.GoPointer(), ResultVar.GoPointer(), &cerr)
181	if cerr == nil {
182		return cret, nil
183	}
184	return cret, cerr
185
186}
187
188var xFileLauncherSetAlwaysAsk func(uintptr, bool)
189
190// Sets whether to always ask the user which app to use.
191//
192// If false, the file might be opened with a default app
193// or the previous choice.
194func (x *FileLauncher) SetAlwaysAsk(AlwaysAskVar bool) {
195
196	xFileLauncherSetAlwaysAsk(x.GoPointer(), AlwaysAskVar)
197
198}
199
200var xFileLauncherSetFile func(uintptr, uintptr)
201
202// Sets the file that will be opened.
203func (x *FileLauncher) SetFile(FileVar gio.File) {
204
205	xFileLauncherSetFile(x.GoPointer(), FileVar.GoPointer())
206
207}
208
209var xFileLauncherSetWritable func(uintptr, bool)
210
211// Sets whether to make the file writable for the handler.
212func (x *FileLauncher) SetWritable(WritableVar bool) {
213
214	xFileLauncherSetWritable(x.GoPointer(), WritableVar)
215
216}
217
218func (c *FileLauncher) GoPointer() uintptr {
219	if c == nil {
220		return 0
221	}
222	return c.Ptr
223}
224
225func (c *FileLauncher) SetGoPointer(ptr uintptr) {
226	c.Ptr = ptr
227}
228
229// SetPropertyAlwaysAsk sets the "always-ask" property.
230// Whether to ask the user to choose an app for opening the file. If `FALSE`,
231// the file might be opened with a default app or the previous choice.
232func (x *FileLauncher) SetPropertyAlwaysAsk(value bool) {
233	var v gobject.Value
234	v.Init(gobject.TypeBooleanVal)
235	v.SetBoolean(value)
236	x.SetProperty("always-ask", &v)
237}
238
239// GetPropertyAlwaysAsk gets the "always-ask" property.
240// Whether to ask the user to choose an app for opening the file. If `FALSE`,
241// the file might be opened with a default app or the previous choice.
242func (x *FileLauncher) GetPropertyAlwaysAsk() bool {
243	var v gobject.Value
244	x.GetProperty("always-ask", &v)
245	return v.GetBoolean()
246}
247
248// SetPropertyWritable sets the "writable" property.
249// Whether to make the file writable for the handler.
250func (x *FileLauncher) SetPropertyWritable(value bool) {
251	var v gobject.Value
252	v.Init(gobject.TypeBooleanVal)
253	v.SetBoolean(value)
254	x.SetProperty("writable", &v)
255}
256
257// GetPropertyWritable gets the "writable" property.
258// Whether to make the file writable for the handler.
259func (x *FileLauncher) GetPropertyWritable() bool {
260	var v gobject.Value
261	x.GetProperty("writable", &v)
262	return v.GetBoolean()
263}
264
265func init() {
266	core.SetPackageName("GTK", "gtk4")
267	core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
268	var libs []uintptr
269	for _, libPath := range core.GetPaths("GTK") {
270		lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
271		if err != nil {
272			panic(err)
273		}
274		libs = append(libs, lib)
275	}
276
277	core.PuregoSafeRegister(&xFileLauncherGLibType, libs, "gtk_file_launcher_get_type")
278
279	core.PuregoSafeRegister(&xNewFileLauncher, libs, "gtk_file_launcher_new")
280
281	core.PuregoSafeRegister(&xFileLauncherGetAlwaysAsk, libs, "gtk_file_launcher_get_always_ask")
282	core.PuregoSafeRegister(&xFileLauncherGetFile, libs, "gtk_file_launcher_get_file")
283	core.PuregoSafeRegister(&xFileLauncherGetWritable, libs, "gtk_file_launcher_get_writable")
284	core.PuregoSafeRegister(&xFileLauncherLaunch, libs, "gtk_file_launcher_launch")
285	core.PuregoSafeRegister(&xFileLauncherLaunchFinish, libs, "gtk_file_launcher_launch_finish")
286	core.PuregoSafeRegister(&xFileLauncherOpenContainingFolder, libs, "gtk_file_launcher_open_containing_folder")
287	core.PuregoSafeRegister(&xFileLauncherOpenContainingFolderFinish, libs, "gtk_file_launcher_open_containing_folder_finish")
288	core.PuregoSafeRegister(&xFileLauncherSetAlwaysAsk, libs, "gtk_file_launcher_set_always_ask")
289	core.PuregoSafeRegister(&xFileLauncherSetFile, libs, "gtk_file_launcher_set_file")
290	core.PuregoSafeRegister(&xFileLauncherSetWritable, libs, "gtk_file_launcher_set_writable")
291
292}

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