1// Package gtk was automatically generated by github.com/bnema/puregotk DO NOT EDIT
2package gtk
3
4import (
5 "unsafe"
6
7 "github.com/ebitengine/purego"
8
9 "github.com/bnema/puregotk/pkg/core"
10 "github.com/bnema/puregotk/v4/gio"
11 "github.com/bnema/puregotk/v4/glib"
12)
13
14var xShowUri func(uintptr, string, uint32)
15
16// This function launches the default application for showing
17// a given uri, or shows an error dialog if that fails.
18func ShowUri(ParentVar *Window, UriVar string, TimestampVar uint32) {
19
20 xShowUri(ParentVar.GoPointer(), UriVar, TimestampVar)
21
22}
23
24var xShowUriFull func(uintptr, string, uint32, uintptr, uintptr, uintptr)
25
26// This function launches the default application for showing
27// a given uri.
28//
29// The @callback will be called when the launch is completed.
30//
31// This is the recommended call to be used as it passes information
32// necessary for sandbox helpers to parent their dialogs properly.
33func ShowUriFull(ParentVar *Window, UriVar string, TimestampVar uint32, CancellableVar *gio.Cancellable, CallbackVar *gio.AsyncReadyCallback, UserDataVar uintptr) {
34
35 var CallbackVarRef uintptr
36 if CallbackVar != nil {
37 CallbackVarPtr := uintptr(unsafe.Pointer(CallbackVar))
38 if cbRefPtr, ok := glib.GetCallback(CallbackVarPtr); ok {
39 CallbackVarRef = cbRefPtr
40 } else {
41 fcb := func(arg0 uintptr, arg1 uintptr, arg2 uintptr) {
42 cbFn := *CallbackVar
43 cbFn(arg0, arg1, arg2)
44 }
45 CallbackVarRef = purego.NewCallback(fcb)
46 glib.SaveCallbackWithClosure(CallbackVarPtr, CallbackVarRef, CallbackVar)
47 }
48 }
49
50 xShowUriFull(ParentVar.GoPointer(), UriVar, TimestampVar, CancellableVar.GoPointer(), CallbackVarRef, UserDataVar)
51
52}
53
54var xShowUriFullFinish func(uintptr, uintptr, **glib.Error) bool
55
56// Finishes the gtk_show_uri() call and returns the result
57// of the operation.
58func ShowUriFullFinish(ParentVar *Window, ResultVar gio.AsyncResult) (bool, error) {
59 var cerr *glib.Error
60
61 cret := xShowUriFullFinish(ParentVar.GoPointer(), ResultVar.GoPointer(), &cerr)
62 if cerr == nil {
63 return cret, nil
64 }
65 return cret, cerr
66
67}
68
69func init() {
70 core.SetPackageName("GTK", "gtk4")
71 core.SetSharedLibraries("GTK", []string{"libgtk-4.so.1"})
72 var libs []uintptr
73 for _, libPath := range core.GetPaths("GTK") {
74 lib, err := purego.Dlopen(libPath, purego.RTLD_NOW|purego.RTLD_GLOBAL)
75 if err != nil {
76 panic(err)
77 }
78 libs = append(libs, lib)
79 }
80
81 core.PuregoSafeRegister(&xShowUri, libs, "gtk_show_uri")
82 core.PuregoSafeRegister(&xShowUriFull, libs, "gtk_show_uri_full")
83 core.PuregoSafeRegister(&xShowUriFullFinish, libs, "gtk_show_uri_full_finish")
84
85}