initial commit
- commit
- 7d292f29a68fd087b8058504ca73618ab33315eb
- author
- jwijenbergh · · 2023-06-17 08:52 UTC
- committer
- jwijenbergh · · 2023-08-15 10:50 UTC
- parent
- none (root commit)
- signature
- GPG Unverified
1A2298F6C34F96E5The key is unknown
696 files · +745353 -0
A LICENSE +21 -0
| @@ -0,0 +1,21 @@ | |||
| 1 | + | MIT License | |
| 2 | + | ||
| 3 | + | Copyright (c) 2023 Jeroen Wijenbergh | |
| 4 | + | ||
| 5 | + | Permission is hereby granted, free of charge, to any person obtaining a copy | |
| 6 | + | of this software and associated documentation files (the "Software"), to deal | |
| 7 | + | in the Software without restriction, including without limitation the rights | |
| 8 | + | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | |
| 9 | + | copies of the Software, and to permit persons to whom the Software is | |
| 10 | + | furnished to do so, subject to the following conditions: | |
| 11 | + | ||
| 12 | + | The above copyright notice and this permission notice shall be included in all | |
| 13 | + | copies or substantial portions of the Software. | |
| 14 | + | ||
| 15 | + | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | |
| 16 | + | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | |
| 17 | + | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | |
| 18 | + | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | |
| 19 | + | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | |
| 20 | + | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | |
| 21 | + | SOFTWARE. | |
A README.md +95 -0
| @@ -0,0 +1,95 @@ | |||
| 1 | + | # Puregotk | |
| 2 | + | ||
| 3 | + | > **_NOTE:_** This library is currently expiremental and needs thorough testing. Some APIs might be incorrectly exposed | |
| 4 | + | ||
| 5 | + | Autogenerated GTK4+Adwaita bindings for Go leveraging [purego](https://github.com/ebitengine/purego) | |
| 6 | + | ||
| 7 | + | # Motivation | |
| 8 | + | I created this library because I found that alternative libraries using Cgo had much too slow compilation speed. For my laptop around 15 minutes to build a simple example for [gotk3](https://github.com/gotk3/gotk3) and also [gotk4](https://github.com/diamondburned/gotk4). | |
| 9 | + | This is not a fault for these libraries as CGo compilation is just inherently slow in Go. In this project I want to test a new approach by levering purego which allows you to load libraries using dlopen without needing cgo. | |
| 10 | + | ||
| 11 | + | Compilation speed currently is around 40 seconds for me on basic examples. | |
| 12 | + | ||
| 13 | + | ## Advantages | |
| 14 | + | ||
| 15 | + | No Cgo needed, thus: | |
| 16 | + | * Easy cross compilation | |
| 17 | + | * No C toolchain needed | |
| 18 | + | * Much faster compile times than alternatives like [gotk3](https://github.com/gotk3/gotk3) & [gotk4](https://github.com/diamondburned/gotk4) | |
| 19 | + | ||
| 20 | + | ## Disadvantages | |
| 21 | + | ||
| 22 | + | Limitations of this library as compared to the alternatives using cgo: | |
| 23 | + | * Some APIs are not possible due to purego not currently supporting struct arguments (that are not pointers) | |
| 24 | + | * Currently only support for x86, for ARM I need to figure out how to get callbacks working in purego and contribute to purego | |
| 25 | + | ||
| 26 | + | # Planned features | |
| 27 | + | In order of priority: | |
| 28 | + | * General code cleanup | |
| 29 | + | * ARM support | |
| 30 | + | * Support for OS other than Linux (I only test on Linux currently) | |
| 31 | + | * GTK 3 support | |
| 32 | + | ||
| 33 | + | # Basic example | |
| 34 | + | ||
| 35 | + | ```go | |
| 36 | + | package main | |
| 37 | + | ||
| 38 | + | import ( | |
| 39 | + | "os" | |
| 40 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 41 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 42 | + | ) | |
| 43 | + | ||
| 44 | + | func main() { | |
| 45 | + | app := gtk.NewApplication("com.github.jwijenbergh.puregotk.gtk4.hello", gio.GApplicationFlagsNoneValue) | |
| 46 | + | defer app.Unref() | |
| 47 | + | app.ConnectActivate(func (_ gio.Application) { | |
| 48 | + | activate(app) | |
| 49 | + | }) | |
| 50 | + | ||
| 51 | + | if code := app.Run(len(os.Args), os.Args); code > 0 { | |
| 52 | + | os.Exit(code) | |
| 53 | + | } | |
| 54 | + | } | |
| 55 | + | ||
| 56 | + | func activate(app gtk.Application) { | |
| 57 | + | var window gtk.ApplicationWindow | |
| 58 | + | gtk.NewApplicationWindow(app).Cast(&window) | |
| 59 | + | window.SetTitle("purego") | |
| 60 | + | window.SetChild(gtk.NewLabel("Hello, World!")) | |
| 61 | + | window.SetDefaultSize(500, 500) | |
| 62 | + | window.Show() | |
| 63 | + | } | |
| 64 | + | ``` | |
| 65 | + | ||
| 66 | + | Save this to a main.go and then build & run with | |
| 67 | + | ||
| 68 | + | ```bash | |
| 69 | + | CGO_ENABLED=0 go run main.go | |
| 70 | + | ``` | |
| 71 | + | ||
| 72 | + | > **_NOTE:_** Passing CGO_ENABLED=0 is currently required | |
| 73 | + | ||
| 74 | + | # Generating the library | |
| 75 | + | This library is automatically generated by reading GIR files. | |
| 76 | + | ||
| 77 | + | To generate the library, run: | |
| 78 | + | ||
| 79 | + | ```bash | |
| 80 | + | ./gen.sh | |
| 81 | + | ``` | |
| 82 | + | ||
| 83 | + | In the root of the project. This needs: | |
| 84 | + | ||
| 85 | + | - Go >= 1.20 | |
| 86 | + | - [goimports](https://pkg.go.dev/golang.org/x/tools/cmd/goimports) | |
| 87 | + | ||
| 88 | + | # License | |
| 89 | + | ||
| 90 | + | [MIT](./LICENSE) | |
| 91 | + | ||
| 92 | + | # Acknowledgements | |
| 93 | + | * [Purego](https://github.com/ebitengine/purego) and the ebitengine team for their great work | |
| 94 | + | * [gotk4](https://github.com/diamondburned/gotk4) for some GIR type definitions | |
| 95 | + | * [gtk](https://gitlab.com/gnome/gtk) of course | |
A gen.go +47 -0
| @@ -0,0 +1,47 @@ | |||
| 1 | + | package main | |
| 2 | + | ||
| 3 | + | import ( | |
| 4 | + | "os" | |
| 5 | + | "path/filepath" | |
| 6 | + | "strings" | |
| 7 | + | "text/template" | |
| 8 | + | ||
| 9 | + | "github.com/jwijenbergh/puregotk/internal/gir/pass" | |
| 10 | + | "github.com/jwijenbergh/puregotk/internal/gir/util" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | //go:generate go run gen.go | |
| 14 | + | ||
| 15 | + | func main() { | |
| 16 | + | dir := "v4" | |
| 17 | + | os.RemoveAll(dir) | |
| 18 | + | var girs []string | |
| 19 | + | filepath.Walk("internal/gir/spec", func(path string, f os.FileInfo, err error) error { | |
| 20 | + | if !strings.HasSuffix(path, ".gir") { | |
| 21 | + | return nil | |
| 22 | + | } | |
| 23 | + | girs = append(girs, path) | |
| 24 | + | return nil | |
| 25 | + | }) | |
| 26 | + | p, err := pass.New(girs) | |
| 27 | + | if err != nil { | |
| 28 | + | panic(err) | |
| 29 | + | } | |
| 30 | + | // collect basic type info | |
| 31 | + | p.First() | |
| 32 | + | ||
| 33 | + | // Create the template | |
| 34 | + | gotemp, err := template.New("go").Funcs(template.FuncMap{"conv": util.ConvertArgs, "convc": util.ConvertArgsComma}).ParseFiles("templates/go") | |
| 35 | + | if err != nil { | |
| 36 | + | panic(err) | |
| 37 | + | } | |
| 38 | + | ||
| 39 | + | // Write go files by making the second pass | |
| 40 | + | p.Second(dir, gotemp) | |
| 41 | + | ||
| 42 | + | // Finally copy some extra code that we want in the API | |
| 43 | + | data, err := os.ReadFile("templates/gobject") | |
| 44 | + | if err == nil { | |
| 45 | + | os.WriteFile("v4/gobject/more.go", data, 0o644) | |
| 46 | + | } | |
| 47 | + | } | |
A gen.sh +18 -0
| @@ -0,0 +1,18 @@ | |||
| 1 | + | #!/usr/bin/env bash | |
| 2 | + | ||
| 3 | + | set -e | |
| 4 | + | ||
| 5 | + | echo "generating go files..." | |
| 6 | + | go generate | |
| 7 | + | ||
| 8 | + | tmp=$(mktemp -d) | |
| 9 | + | ||
| 10 | + | echo "making sure imports are correct..." | |
| 11 | + | GOPATH="$tmp" goimports --srcdir . -w v4 || { rm -r "$tmp"; exit 1; } | |
| 12 | + | rm -r "$tmp" | |
| 13 | + | ||
| 14 | + | echo "formatting files..." | |
| 15 | + | go fmt "github.com/jwijenbergh/puregotk/v4/..." | |
| 16 | + | ||
| 17 | + | echo "running go vet..." | |
| 18 | + | go vet ./v4/... | |
A go.mod +7 -0
| @@ -0,0 +1,7 @@ | |||
| 1 | + | module github.com/jwijenbergh/puregotk | |
| 2 | + | ||
| 3 | + | go 1.20 | |
| 4 | + | ||
| 5 | + | require github.com/jwijenbergh/purego v0.0.0-20230815104821-b26146068cfb | |
| 6 | + | ||
| 7 | + | require golang.org/x/sys v0.11.0 // indirect | |
A go.sum +4 -0 generated file: collapsed
A internal/core/core.go +138 -0
| @@ -0,0 +1,138 @@ | |||
| 1 | + | // package core implements core functionality for the generated files | |
| 2 | + | // this core lib is imported by the generated code | |
| 3 | + | package core | |
| 4 | + | ||
| 5 | + | import ( | |
| 6 | + | "bytes" | |
| 7 | + | "fmt" | |
| 8 | + | "os" | |
| 9 | + | "os/exec" | |
| 10 | + | "path/filepath" | |
| 11 | + | "strings" | |
| 12 | + | ||
| 13 | + | "github.com/jwijenbergh/purego" | |
| 14 | + | ) | |
| 15 | + | ||
| 16 | + | func PuregoSafeRegister(fptr interface{}, handle uintptr, name string) error { | |
| 17 | + | sym, err := purego.Dlsym(handle, name) | |
| 18 | + | if err != nil { | |
| 19 | + | return err | |
| 20 | + | } | |
| 21 | + | purego.RegisterFunc(fptr, sym) | |
| 22 | + | return nil | |
| 23 | + | } | |
| 24 | + | ||
| 25 | + | // paths to where the shared object files should be located | |
| 26 | + | // TODO: This needs to be split in architecture and more paths should be added | |
| 27 | + | var paths = []string{ | |
| 28 | + | "/usr/lib/x86_64-linux-gnu/", | |
| 29 | + | } | |
| 30 | + | ||
| 31 | + | // names is a lookup from library names to shared object filenames | |
| 32 | + | var names = map[string][]string{ | |
| 33 | + | "ADW": {"libadwaita-1.so"}, | |
| 34 | + | "CAIRO": {"libcairo.so"}, | |
| 35 | + | "GDK": {"libgtk-4.so"}, | |
| 36 | + | "GDKPIXBUF": {"libgdk_pixbuf-2.0.so"}, | |
| 37 | + | "GIO": {"libgio-2.0.so"}, | |
| 38 | + | "GLIB": {"libglib-2.0.so"}, | |
| 39 | + | "GMODULE": {"libgmodule-2.0.so"}, | |
| 40 | + | "GOBJECT": {"libgobject-2.0.so"}, | |
| 41 | + | "GRAPHENE": {"libgraphene-1.0.so"}, | |
| 42 | + | "GSK": {"libgtk-4.so"}, | |
| 43 | + | "GTK": {"libgtk-4.so"}, | |
| 44 | + | "PANGO": {"libpango-1.0.so"}, | |
| 45 | + | "PANGOCAIRO": {"libpangocairo-1.0.so"}, | |
| 46 | + | } | |
| 47 | + | ||
| 48 | + | // pkgConfNames is a lookup from library names to pkg-config library names | |
| 49 | + | // TODO: Get this from the package name in the gir files with a fallback to gtk's package name | |
| 50 | + | var pkgConfNames = map[string]string{ | |
| 51 | + | "ADW": "libadwaita-1", | |
| 52 | + | "CAIRO": "cairo", | |
| 53 | + | "GDK": "gtk4", | |
| 54 | + | "GDKPIXBUF": "gdk-pixbuf-2.0", | |
| 55 | + | "GIO": "gio-2.0", | |
| 56 | + | "GLIB": "glib-2.0", | |
| 57 | + | "GMODULE": "gmodule-2.0", | |
| 58 | + | "GOBJECT": "gobject-2.0", | |
| 59 | + | "GRAPHENE": "graphene-gobject-1.0", | |
| 60 | + | "GSK": "gtk4", | |
| 61 | + | "GTK": "gtk4", | |
| 62 | + | "PANGO": "pango", | |
| 63 | + | "PANGOCAIRO": "pangocairo", | |
| 64 | + | } | |
| 65 | + | ||
| 66 | + | // findSo tries to find a shared object from a path and a library name | |
| 67 | + | // It does this by mapping the library name to a suitable shared object filename and then trying some suffixes | |
| 68 | + | func findSo(path string, name string) string { | |
| 69 | + | for _, n := range names[name] { | |
| 70 | + | suffixes := []string{"", ".0", ".1", ".2"} | |
| 71 | + | fn := filepath.Join(path, n) | |
| 72 | + | for _, s := range suffixes { | |
| 73 | + | if _, err := os.Stat(fn + s); err == nil { | |
| 74 | + | return fn | |
| 75 | + | } | |
| 76 | + | } | |
| 77 | + | } | |
| 78 | + | return "" | |
| 79 | + | } | |
| 80 | + | ||
| 81 | + | // findPkgConf finds a shared object file with pkg-config | |
| 82 | + | // it does this by running pkg-config --libs-only-L libname | |
| 83 | + | // and then it loops over the directories returned and finds a suitable one | |
| 84 | + | func findPkgConf(name string) string { | |
| 85 | + | // try to get with pkg-config | |
| 86 | + | cmd := exec.Command("pkg-config", "--libs-only-L", pkgConfNames[name]) | |
| 87 | + | var out, outerr bytes.Buffer | |
| 88 | + | cmd.Stdout = &out | |
| 89 | + | cmd.Stderr = &outerr | |
| 90 | + | err := cmd.Run() | |
| 91 | + | if err != nil { | |
| 92 | + | fmt.Fprintf(os.Stderr, "pkg-config, failed with: %v and stderr: %s\n", err, outerr.String()) | |
| 93 | + | return "" | |
| 94 | + | } | |
| 95 | + | outs := strings.Split(out.String(), "-L") | |
| 96 | + | for _, v := range outs { | |
| 97 | + | c := strings.TrimSpace(v) | |
| 98 | + | if c == "" { | |
| 99 | + | continue | |
| 100 | + | } | |
| 101 | + | g := findSo(c, name) | |
| 102 | + | if g != "" { | |
| 103 | + | return g | |
| 104 | + | } | |
| 105 | + | } | |
| 106 | + | return "" | |
| 107 | + | } | |
| 108 | + | ||
| 109 | + | // GetPath gets a shared object file from a library name | |
| 110 | + | // it does it in the following order | |
| 111 | + | // see if PUREGOTK_LIBNAME_PATH is set | |
| 112 | + | // go over the hardcoded paths | |
| 113 | + | // find a library name with pkg-config | |
| 114 | + | // panic if failed | |
| 115 | + | // TODO: Hardcore a library shared object with linker -X flag | |
| 116 | + | // This is useful for packaging | |
| 117 | + | func GetPath(name string) string { | |
| 118 | + | // try to get from env var | |
| 119 | + | ev := fmt.Sprintf("PUREGOTK_%s_PATH", name) | |
| 120 | + | if v := os.Getenv(ev); v != "" { | |
| 121 | + | return v | |
| 122 | + | } | |
| 123 | + | ||
| 124 | + | // try to loop over paths | |
| 125 | + | for _, p := range paths { | |
| 126 | + | g := findSo(p, name) | |
| 127 | + | if g != "" { | |
| 128 | + | return g | |
| 129 | + | } | |
| 130 | + | ||
| 131 | + | } | |
| 132 | + | g := findPkgConf(name) | |
| 133 | + | if g != "" { | |
| 134 | + | return g | |
| 135 | + | } | |
| 136 | + | ||
| 137 | + | panic(fmt.Sprintf("Path for library: %s not found. Please set the path to this library shared object file manually with env variable: %s. Or make sure pkg-config is setup correctly", strings.ToLower(name), ev)) | |
| 138 | + | } | |
A internal/gir/pass/pass.go +303 -0
| @@ -0,0 +1,303 @@ | |||
| 1 | + | // package pass implements the first and second pass to go from gir files to go files | |
| 2 | + | // the first pass collects basic type information | |
| 3 | + | // the second pass uses the basic type information to go over the gir files again and convert it to go files | |
| 4 | + | package pass | |
| 5 | + | ||
| 6 | + | import ( | |
| 7 | + | "encoding/xml" | |
| 8 | + | "fmt" | |
| 9 | + | "os" | |
| 10 | + | "strings" | |
| 11 | + | "text/template" | |
| 12 | + | ||
| 13 | + | "github.com/jwijenbergh/puregotk/internal/gir/types" | |
| 14 | + | "github.com/jwijenbergh/puregotk/internal/gir/util" | |
| 15 | + | ) | |
| 16 | + | ||
| 17 | + | type Pass struct { | |
| 18 | + | Parsed []types.Repository | |
| 19 | + | Types types.KindMap | |
| 20 | + | } | |
| 21 | + | ||
| 22 | + | // New creates a new pass struct by parsing gir files in the string slice | |
| 23 | + | // This pass object will then be used to go over these files multiple times up until we have the full info to convert it to go files | |
| 24 | + | func New(files []string) (*Pass, error) { | |
| 25 | + | p := Pass{ | |
| 26 | + | Parsed: make([]types.Repository, len(files)), | |
| 27 | + | Types: make(types.KindMap), | |
| 28 | + | } | |
| 29 | + | for i, f := range files { | |
| 30 | + | b, err := os.ReadFile(f) | |
| 31 | + | if err != nil { | |
| 32 | + | return nil, err | |
| 33 | + | } | |
| 34 | + | var r types.Repository | |
| 35 | + | err = xml.Unmarshal(b, &r) | |
| 36 | + | if err != nil { | |
| 37 | + | return nil, err | |
| 38 | + | } | |
| 39 | + | p.Parsed[i] = r | |
| 40 | + | } | |
| 41 | + | return &p, nil | |
| 42 | + | } | |
| 43 | + | ||
| 44 | + | func (p *Pass) collectTypes(r types.Repository) { | |
| 45 | + | ns := r.Namespaces[0] | |
| 46 | + | for _, cls := range ns.Classes { | |
| 47 | + | p.Types.Add(ns.Name, cls.Name, types.ClassesType, cls) | |
| 48 | + | } | |
| 49 | + | for _, rec := range ns.Records { | |
| 50 | + | p.Types.Add(ns.Name, rec.Name, types.RecordsType, rec) | |
| 51 | + | } | |
| 52 | + | for _, en := range ns.Enums { | |
| 53 | + | // TODO: This probably shouldn't be aliastype, but we should make dedicated types | |
| 54 | + | p.Types.Add(ns.Name, en.Name, types.AliasType, en) | |
| 55 | + | } | |
| 56 | + | for _, cb := range ns.Callbacks { | |
| 57 | + | p.Types.Add(ns.Name, cb.Name, types.CallbackType, cb) | |
| 58 | + | } | |
| 59 | + | for _, b := range ns.Bitfields { | |
| 60 | + | // TODO: This probably shouldn't be aliastype, but we should make dedicated types | |
| 61 | + | p.Types.Add(ns.Name, b.Name, types.AliasType, b) | |
| 62 | + | } | |
| 63 | + | for _, inter := range ns.Interfaces { | |
| 64 | + | p.Types.Add(ns.Name, inter.Name, types.InterfacesType, inter) | |
| 65 | + | } | |
| 66 | + | } | |
| 67 | + | ||
| 68 | + | // First does a "first pass" meaning it collects basic type information for all the repositories | |
| 69 | + | func (p *Pass) First() { | |
| 70 | + | for _, r := range p.Parsed { | |
| 71 | + | p.collectTypes(r) | |
| 72 | + | } | |
| 73 | + | } | |
| 74 | + | ||
| 75 | + | func (p *Pass) writeGo(r types.Repository, gotemp *template.Template, dir string) { | |
| 76 | + | ns := r.Namespaces[0] | |
| 77 | + | ||
| 78 | + | aliases := make(map[string][]types.AliasTemplate) | |
| 79 | + | enums := make(map[string][]types.EnumTemplate) | |
| 80 | + | var files []string | |
| 81 | + | for _, el := range ns.Bitfields { | |
| 82 | + | temp := el.Template(ns.Name) | |
| 83 | + | fn := el.FilenameSafe() | |
| 84 | + | files = append(files, fn) | |
| 85 | + | enums[fn] = append(enums[fn], temp) | |
| 86 | + | } | |
| 87 | + | ||
| 88 | + | for _, el := range ns.Enums { | |
| 89 | + | temp := el.Template(ns.Name) | |
| 90 | + | fn := el.FilenameSafe() | |
| 91 | + | files = append(files, fn) | |
| 92 | + | enums[fn] = append(enums[fn], temp) | |
| 93 | + | } | |
| 94 | + | ||
| 95 | + | records := make(map[string][]types.RecordTemplate) | |
| 96 | + | recordLookup := make(map[string]bool) | |
| 97 | + | for _, rec := range ns.Records { | |
| 98 | + | name := util.SnakeToCamel(rec.Name) | |
| 99 | + | fields := make([]types.RecordField, len(rec.Fields)) | |
| 100 | + | fn := rec.FilenameSafe() | |
| 101 | + | files = append(files, fn) | |
| 102 | + | for _, f := range rec.Fields { | |
| 103 | + | _type := f.Translate(ns.Name, p.Types) | |
| 104 | + | if _type == "" { | |
| 105 | + | continue | |
| 106 | + | } | |
| 107 | + | fields = append(fields, types.RecordField{ | |
| 108 | + | Name: util.SnakeToCamel(f.Name), | |
| 109 | + | Type: _type, | |
| 110 | + | }) | |
| 111 | + | } | |
| 112 | + | records[fn] = append(records[fn], types.RecordTemplate{ | |
| 113 | + | Name: name, | |
| 114 | + | Doc: rec.Doc.StringSafe(), | |
| 115 | + | Fields: fields, | |
| 116 | + | }) | |
| 117 | + | recordLookup[name] = true | |
| 118 | + | } | |
| 119 | + | ||
| 120 | + | callbacks := make(map[string][]types.CallbackTemplate) | |
| 121 | + | // set every callback equal to uintptr as well | |
| 122 | + | for _, cb := range ns.Callbacks { | |
| 123 | + | fn := cb.FilenameSafe() | |
| 124 | + | files = append(files, fn) | |
| 125 | + | cbT := types.CallbackTemplate{ | |
| 126 | + | Doc: cb.Doc.StringSafe(), | |
| 127 | + | Name: cb.Name, | |
| 128 | + | Args: cb.Parameters.Template(ns.Name, "", p.Types), | |
| 129 | + | Ret: cb.ReturnValue.Template(ns.Name, "", p.Types), | |
| 130 | + | } | |
| 131 | + | callbacks[fn] = append(callbacks[fn], cbT) | |
| 132 | + | } | |
| 133 | + | ||
| 134 | + | interfaces := make(map[string][]types.InterfaceTemplate) | |
| 135 | + | for _, inter := range ns.Interfaces { | |
| 136 | + | fn := inter.FilenameSafe() | |
| 137 | + | files = append(files, fn) | |
| 138 | + | interfaces[fn] = append(interfaces[fn], types.ConvertInterface(ns.Name, "", inter, nil, p.Types)) | |
| 139 | + | } | |
| 140 | + | ||
| 141 | + | for _, union := range ns.Unions { | |
| 142 | + | fn := union.FilenameSafe() | |
| 143 | + | files = append(files, fn) | |
| 144 | + | name := util.SnakeToCamel(union.Name) | |
| 145 | + | interT := types.AliasTemplate{ | |
| 146 | + | Doc: union.Doc.StringSafe(), | |
| 147 | + | Name: name, | |
| 148 | + | // structs are not yet supported in CGO | |
| 149 | + | Value: "uintptr", | |
| 150 | + | } | |
| 151 | + | aliases[fn] = append(aliases[fn], interT) | |
| 152 | + | } | |
| 153 | + | ||
| 154 | + | for _, alias := range ns.Aliases { | |
| 155 | + | fn := alias.FilenameSafe() | |
| 156 | + | files = append(files, fn) | |
| 157 | + | typeName := alias.Type.Template(ns.Name, p.Types) | |
| 158 | + | if typeName == "" { | |
| 159 | + | typeName = "uintptr" | |
| 160 | + | } | |
| 161 | + | name := util.SnakeToCamel(alias.Name) | |
| 162 | + | aliasT := types.AliasTemplate{ | |
| 163 | + | Doc: alias.Doc.StringSafe(), | |
| 164 | + | Name: name, | |
| 165 | + | // structs are not yet supported in CGO | |
| 166 | + | Value: typeName, | |
| 167 | + | } | |
| 168 | + | aliases[fn] = append(aliases[fn], aliasT) | |
| 169 | + | } | |
| 170 | + | ||
| 171 | + | functions := make(map[string][]types.FuncTemplate) | |
| 172 | + | for _, f := range ns.Functions { | |
| 173 | + | name := util.SnakeToCamel(f.Name) | |
| 174 | + | if p.Types.Kind(ns.Name, name) != types.UnknownType { | |
| 175 | + | name = "New" + name | |
| 176 | + | } | |
| 177 | + | fn := f.FilenameSafe() | |
| 178 | + | files = append(files, fn) | |
| 179 | + | functions[fn] = append(functions[fn], types.FuncTemplate{ | |
| 180 | + | Name: name, | |
| 181 | + | CName: f.CIdentifier, | |
| 182 | + | Doc: f.Doc.StringSafe(), | |
| 183 | + | Args: f.Parameters.Template(ns.Name, "", p.Types), | |
| 184 | + | Ret: f.ReturnValue.Template(ns.Name, "", p.Types), | |
| 185 | + | }) | |
| 186 | + | } | |
| 187 | + | ||
| 188 | + | classes := make(map[string][]types.ClassTemplate) | |
| 189 | + | for _, cls := range ns.Classes { | |
| 190 | + | implemented := make(map[string]bool) | |
| 191 | + | constructors := make([]types.FuncTemplate, len(cls.Constructors)) | |
| 192 | + | fn := cls.FilenameSafe() | |
| 193 | + | files = append(files, fn) | |
| 194 | + | ||
| 195 | + | for i, c := range cls.Constructors { | |
| 196 | + | name := util.SnakeToCamel(c.Name) | |
| 197 | + | constructors[i] = types.FuncTemplate{ | |
| 198 | + | Name: name, | |
| 199 | + | CName: c.CIdentifier, | |
| 200 | + | Doc: c.Doc.StringSafe(), | |
| 201 | + | Args: c.Parameters.Template(ns.Name, "", p.Types), | |
| 202 | + | Ret: c.ReturnValue.Template(ns.Name, "", p.Types), | |
| 203 | + | } | |
| 204 | + | } | |
| 205 | + | signals := make([]types.SignalsTemplate, len(cls.Signals)) | |
| 206 | + | for i, s := range cls.Signals { | |
| 207 | + | signals[i] = types.SignalsTemplate{ | |
| 208 | + | Doc: s.Doc.StringSafe(), | |
| 209 | + | Name: util.DashToCamel(s.Name), | |
| 210 | + | CName: s.Name, | |
| 211 | + | Args: s.Parameters.Template(ns.Name, "", p.Types), | |
| 212 | + | Ret: s.ReturnValue.Template(ns.Name, "", p.Types), | |
| 213 | + | } | |
| 214 | + | } | |
| 215 | + | receivers := make([]types.FuncTemplate, len(cls.Methods)) | |
| 216 | + | for i, f := range cls.Methods { | |
| 217 | + | name := util.SnakeToCamel(f.Name) | |
| 218 | + | implemented[name] = true | |
| 219 | + | receivers[i] = types.FuncTemplate{ | |
| 220 | + | Doc: f.Doc.StringSafe(), | |
| 221 | + | Name: name, | |
| 222 | + | CName: f.CIdentifier, | |
| 223 | + | Args: f.Parameters.Template(ns.Name, "", p.Types), | |
| 224 | + | Ret: f.ReturnValue.Template(ns.Name, "", p.Types), | |
| 225 | + | } | |
| 226 | + | } | |
| 227 | + | var interfaces []types.InterfaceTemplate | |
| 228 | + | for _, impl := range cls.Implements { | |
| 229 | + | interfaces = append(interfaces, types.GetInterfaceFuncs(ns.Name, impl.Name, implemented, p.Types)) | |
| 230 | + | } | |
| 231 | + | classes[fn] = append(classes[fn], types.ClassTemplate{ | |
| 232 | + | Doc: cls.Doc.StringSafe(), | |
| 233 | + | Name: cls.Name, | |
| 234 | + | Parent: util.NormalizeNamespace(ns.Name, cls.Parent, true), | |
| 235 | + | Constructors: constructors, | |
| 236 | + | Receivers: receivers, | |
| 237 | + | Interfaces: interfaces, | |
| 238 | + | Signals: signals, | |
| 239 | + | }) | |
| 240 | + | } | |
| 241 | + | ||
| 242 | + | pkgName := strings.ToLower(ns.Name) | |
| 243 | + | for _, fn := range files { | |
| 244 | + | var includesSlice []string | |
| 245 | + | //includesSlice := make([]string, len(includes[fn])) | |
| 246 | + | //i := 0 | |
| 247 | + | //for k, v := range includes[fn] { | |
| 248 | + | // if v { | |
| 249 | + | // includesSlice[i] = k | |
| 250 | + | // } | |
| 251 | + | // i++ | |
| 252 | + | //} | |
| 253 | + | methods := 0 | |
| 254 | + | for _, i := range interfaces[fn] { | |
| 255 | + | for range i.Methods { | |
| 256 | + | methods += 1 | |
| 257 | + | } | |
| 258 | + | } | |
| 259 | + | for _, i := range classes[fn] { | |
| 260 | + | for range i.Constructors { | |
| 261 | + | methods += 1 | |
| 262 | + | } | |
| 263 | + | for range i.Receivers { | |
| 264 | + | methods += 1 | |
| 265 | + | } | |
| 266 | + | } | |
| 267 | + | // we do not need to add the length of interfaces in here | |
| 268 | + | // as they should only be loaded when there are classes | |
| 269 | + | needsInit := (len(functions[fn]) + methods) > 0 | |
| 270 | + | ||
| 271 | + | args := types.TemplateArg{ | |
| 272 | + | PkgName: pkgName, | |
| 273 | + | PkgEnv: strings.ToUpper(pkgName), | |
| 274 | + | NeedsInit: needsInit, | |
| 275 | + | Imports: includesSlice, | |
| 276 | + | Aliases: aliases[fn], | |
| 277 | + | Callbacks: callbacks[fn], | |
| 278 | + | Records: records[fn], | |
| 279 | + | Enums: enums[fn], | |
| 280 | + | Functions: functions[fn], | |
| 281 | + | Interfaces: interfaces[fn], | |
| 282 | + | Classes: classes[fn], | |
| 283 | + | } | |
| 284 | + | ||
| 285 | + | os.MkdirAll(fmt.Sprintf(dir+"/%s", pkgName), 0o755) | |
| 286 | + | ||
| 287 | + | f, err := os.Create(fmt.Sprintf(dir+"/%s/%s", pkgName, fn)) | |
| 288 | + | if err != nil { | |
| 289 | + | panic(err) | |
| 290 | + | } | |
| 291 | + | err = gotemp.Execute(f, args) | |
| 292 | + | if err != nil { | |
| 293 | + | panic(err) | |
| 294 | + | } | |
| 295 | + | ||
| 296 | + | } | |
| 297 | + | } | |
| 298 | + | ||
| 299 | + | func (p *Pass) Second(dir string, gotemp *template.Template) { | |
| 300 | + | for _, r := range p.Parsed { | |
| 301 | + | p.writeGo(r, gotemp, dir) | |
| 302 | + | } | |
| 303 | + | } | |
A internal/gir/spec/Adw-1.gir +29130 -0 large diff (29130 lines changed): collapsed
A internal/gir/spec/GLib-2.0.gir +83214 -0 large diff (83214 lines changed): collapsed
A internal/gir/spec/GModule-2.0.gir +522 -0
| @@ -0,0 +1,522 @@ | |||
| 1 | + | <?xml version="1.0"?> | |
| 2 | + | <!-- This file was automatically generated from C sources - DO NOT EDIT! | |
| 3 | + | To affect the contents of this file, edit the original C definitions, | |
| 4 | + | and/or use gtk-doc annotations. --> | |
| 5 | + | <repository version="1.2" | |
| 6 | + | xmlns="http://www.gtk.org/introspection/core/1.0" | |
| 7 | + | xmlns:c="http://www.gtk.org/introspection/c/1.0" | |
| 8 | + | xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> | |
| 9 | + | <include name="GLib" version="2.0"/> | |
| 10 | + | <package name="gmodule-2.0"/> | |
| 11 | + | <c:include name="gmodule.h"/> | |
| 12 | + | <namespace name="GModule" | |
| 13 | + | version="2.0" | |
| 14 | + | shared-library="libgmodule-2.0.so.0" | |
| 15 | + | c:identifier-prefixes="G" | |
| 16 | + | c:symbol-prefixes="g"> | |
| 17 | + | <record name="Module" c:type="GModule" disguised="1"> | |
| 18 | + | <doc xml:space="preserve" | |
| 19 | + | filename="gmodule-2.0.c" | |
| 20 | + | line="5">The #GModule struct is an opaque data structure to represent a | |
| 21 | + | [dynamically-loaded module][glib-Dynamic-Loading-of-Modules]. | |
| 22 | + | It should only be accessed via the following functions.</doc> | |
| 23 | + | <source-position filename="gmodule.h" line="65"/> | |
| 24 | + | <method name="close" c:identifier="g_module_close"> | |
| 25 | + | <doc xml:space="preserve" | |
| 26 | + | filename="gmodule-2.0.c" | |
| 27 | + | line="185">Closes a module.</doc> | |
| 28 | + | <source-position filename="gmodule.h" line="105"/> | |
| 29 | + | <return-value transfer-ownership="none"> | |
| 30 | + | <doc xml:space="preserve" | |
| 31 | + | filename="gmodule-2.0.c" | |
| 32 | + | line="191">%TRUE on success</doc> | |
| 33 | + | <type name="gboolean" c:type="gboolean"/> | |
| 34 | + | </return-value> | |
| 35 | + | <parameters> | |
| 36 | + | <instance-parameter name="module" transfer-ownership="none"> | |
| 37 | + | <doc xml:space="preserve" | |
| 38 | + | filename="gmodule-2.0.c" | |
| 39 | + | line="187">a #GModule to close</doc> | |
| 40 | + | <type name="Module" c:type="GModule*"/> | |
| 41 | + | </instance-parameter> | |
| 42 | + | </parameters> | |
| 43 | + | </method> | |
| 44 | + | <method name="make_resident" c:identifier="g_module_make_resident"> | |
| 45 | + | <doc xml:space="preserve" | |
| 46 | + | filename="gmodule-2.0.c" | |
| 47 | + | line="204">Ensures that a module will never be unloaded. | |
| 48 | + | Any future g_module_close() calls on the module will be ignored.</doc> | |
| 49 | + | <source-position filename="gmodule.h" line="109"/> | |
| 50 | + | <return-value transfer-ownership="none"> | |
| 51 | + | <type name="none" c:type="void"/> | |
| 52 | + | </return-value> | |
| 53 | + | <parameters> | |
| 54 | + | <instance-parameter name="module" transfer-ownership="none"> | |
| 55 | + | <doc xml:space="preserve" | |
| 56 | + | filename="gmodule-2.0.c" | |
| 57 | + | line="206">a #GModule to make permanently resident</doc> | |
| 58 | + | <type name="Module" c:type="GModule*"/> | |
| 59 | + | </instance-parameter> | |
| 60 | + | </parameters> | |
| 61 | + | </method> | |
| 62 | + | <method name="name" c:identifier="g_module_name"> | |
| 63 | + | <doc xml:space="preserve" | |
| 64 | + | filename="gmodule-2.0.c" | |
| 65 | + | line="213">Returns the filename that the module was opened with. | |
| 66 | + | ||
| 67 | + | If @module refers to the application itself, "main" is returned.</doc> | |
| 68 | + | <source-position filename="gmodule.h" line="123"/> | |
| 69 | + | <return-value transfer-ownership="none"> | |
| 70 | + | <doc xml:space="preserve" | |
| 71 | + | filename="gmodule-2.0.c" | |
| 72 | + | line="221">the filename of the module</doc> | |
| 73 | + | <type name="utf8" c:type="const gchar*"/> | |
| 74 | + | </return-value> | |
| 75 | + | <parameters> | |
| 76 | + | <instance-parameter name="module" transfer-ownership="none"> | |
| 77 | + | <doc xml:space="preserve" | |
| 78 | + | filename="gmodule-2.0.c" | |
| 79 | + | line="215">a #GModule</doc> | |
| 80 | + | <type name="Module" c:type="GModule*"/> | |
| 81 | + | </instance-parameter> | |
| 82 | + | </parameters> | |
| 83 | + | </method> | |
| 84 | + | <method name="symbol" c:identifier="g_module_symbol"> | |
| 85 | + | <doc xml:space="preserve" | |
| 86 | + | filename="gmodule-2.0.c" | |
| 87 | + | line="273">Gets a symbol pointer from a module, such as one exported | |
| 88 | + | by %G_MODULE_EXPORT. Note that a valid symbol can be %NULL.</doc> | |
| 89 | + | <source-position filename="gmodule.h" line="117"/> | |
| 90 | + | <return-value transfer-ownership="none"> | |
| 91 | + | <doc xml:space="preserve" | |
| 92 | + | filename="gmodule-2.0.c" | |
| 93 | + | line="282">%TRUE on success</doc> | |
| 94 | + | <type name="gboolean" c:type="gboolean"/> | |
| 95 | + | </return-value> | |
| 96 | + | <parameters> | |
| 97 | + | <instance-parameter name="module" transfer-ownership="none"> | |
| 98 | + | <doc xml:space="preserve" | |
| 99 | + | filename="gmodule-2.0.c" | |
| 100 | + | line="275">a #GModule</doc> | |
| 101 | + | <type name="Module" c:type="GModule*"/> | |
| 102 | + | </instance-parameter> | |
| 103 | + | <parameter name="symbol_name" transfer-ownership="none"> | |
| 104 | + | <doc xml:space="preserve" | |
| 105 | + | filename="gmodule-2.0.c" | |
| 106 | + | line="276">the name of the symbol to find</doc> | |
| 107 | + | <type name="utf8" c:type="const gchar*"/> | |
| 108 | + | </parameter> | |
| 109 | + | <parameter name="symbol" | |
| 110 | + | direction="out" | |
| 111 | + | caller-allocates="0" | |
| 112 | + | transfer-ownership="full" | |
| 113 | + | nullable="1"> | |
| 114 | + | <doc xml:space="preserve" | |
| 115 | + | filename="gmodule-2.0.c" | |
| 116 | + | line="277">returns the pointer to the symbol value</doc> | |
| 117 | + | <type name="gpointer" c:type="gpointer*"/> | |
| 118 | + | </parameter> | |
| 119 | + | </parameters> | |
| 120 | + | </method> | |
| 121 | + | <function name="build_path" c:identifier="g_module_build_path"> | |
| 122 | + | <doc xml:space="preserve" | |
| 123 | + | filename="gmodule-2.0.c" | |
| 124 | + | line="159">A portable way to build the filename of a module. The platform-specific | |
| 125 | + | prefix and suffix are added to the filename, if needed, and the result | |
| 126 | + | is added to the directory, using the correct separator character. | |
| 127 | + | ||
| 128 | + | The directory should specify the directory where the module can be found. | |
| 129 | + | It can be %NULL or an empty string to indicate that the module is in a | |
| 130 | + | standard platform-specific directory, though this is not recommended | |
| 131 | + | since the wrong module may be found. | |
| 132 | + | ||
| 133 | + | For example, calling g_module_build_path() on a Linux system with a | |
| 134 | + | @directory of `/lib` and a @module_name of "mylibrary" will return | |
| 135 | + | `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the | |
| 136 | + | directory it will return `\Windows\mylibrary.dll`.</doc> | |
| 137 | + | <source-position filename="gmodule.h" line="137"/> | |
| 138 | + | <return-value transfer-ownership="full"> | |
| 139 | + | <doc xml:space="preserve" | |
| 140 | + | filename="gmodule-2.0.c" | |
| 141 | + | line="180">the complete path of the module, including the standard library | |
| 142 | + | prefix and suffix. This should be freed when no longer needed</doc> | |
| 143 | + | <type name="utf8" c:type="gchar*"/> | |
| 144 | + | </return-value> | |
| 145 | + | <parameters> | |
| 146 | + | <parameter name="directory" | |
| 147 | + | transfer-ownership="none" | |
| 148 | + | nullable="1" | |
| 149 | + | allow-none="1"> | |
| 150 | + | <doc xml:space="preserve" | |
| 151 | + | filename="gmodule-2.0.c" | |
| 152 | + | line="161">the directory where the module is. This can be | |
| 153 | + | %NULL or the empty string to indicate that the standard platform-specific | |
| 154 | + | directories will be used, though that is not recommended</doc> | |
| 155 | + | <type name="utf8" c:type="const gchar*"/> | |
| 156 | + | </parameter> | |
| 157 | + | <parameter name="module_name" transfer-ownership="none"> | |
| 158 | + | <doc xml:space="preserve" | |
| 159 | + | filename="gmodule-2.0.c" | |
| 160 | + | line="164">the name of the module</doc> | |
| 161 | + | <type name="utf8" c:type="const gchar*"/> | |
| 162 | + | </parameter> | |
| 163 | + | </parameters> | |
| 164 | + | </function> | |
| 165 | + | <function name="error" c:identifier="g_module_error"> | |
| 166 | + | <doc xml:space="preserve" | |
| 167 | + | filename="gmodule-2.0.c" | |
| 168 | + | line="195">Gets a string describing the last module error.</doc> | |
| 169 | + | <source-position filename="gmodule.h" line="113"/> | |
| 170 | + | <return-value transfer-ownership="none"> | |
| 171 | + | <doc xml:space="preserve" | |
| 172 | + | filename="gmodule-2.0.c" | |
| 173 | + | line="200">a string describing the last module error</doc> | |
| 174 | + | <type name="utf8" c:type="const gchar*"/> | |
| 175 | + | </return-value> | |
| 176 | + | </function> | |
| 177 | + | <function name="error_quark" c:identifier="g_module_error_quark"> | |
| 178 | + | <return-value transfer-ownership="none"> | |
| 179 | + | <type name="GLib.Quark" c:type="GQuark"/> | |
| 180 | + | </return-value> | |
| 181 | + | </function> | |
| 182 | + | <function name="open" c:identifier="g_module_open" introspectable="0"> | |
| 183 | + | <doc xml:space="preserve" | |
| 184 | + | filename="gmodule-2.0.c" | |
| 185 | + | line="225">A thin wrapper function around g_module_open_full()</doc> | |
| 186 | + | <source-position filename="gmodule.h" line="95"/> | |
| 187 | + | <return-value> | |
| 188 | + | <doc xml:space="preserve" | |
| 189 | + | filename="gmodule-2.0.c" | |
| 190 | + | line="234">a #GModule on success, or %NULL on failure</doc> | |
| 191 | + | <type name="Module" c:type="GModule*"/> | |
| 192 | + | </return-value> | |
| 193 | + | <parameters> | |
| 194 | + | <parameter name="file_name" | |
| 195 | + | transfer-ownership="none" | |
| 196 | + | nullable="1" | |
| 197 | + | allow-none="1"> | |
| 198 | + | <doc xml:space="preserve" | |
| 199 | + | filename="gmodule-2.0.c" | |
| 200 | + | line="227">the name of the file containing the module, or %NULL | |
| 201 | + | to obtain a #GModule representing the main program itself</doc> | |
| 202 | + | <type name="utf8" c:type="const gchar*"/> | |
| 203 | + | </parameter> | |
| 204 | + | <parameter name="flags" transfer-ownership="none"> | |
| 205 | + | <doc xml:space="preserve" | |
| 206 | + | filename="gmodule-2.0.c" | |
| 207 | + | line="229">the flags used for opening the module. This can be the | |
| 208 | + | logical OR of any of the #GModuleFlags.</doc> | |
| 209 | + | <type name="ModuleFlags" c:type="GModuleFlags"/> | |
| 210 | + | </parameter> | |
| 211 | + | </parameters> | |
| 212 | + | </function> | |
| 213 | + | <function name="open_full" | |
| 214 | + | c:identifier="g_module_open_full" | |
| 215 | + | version="2.70" | |
| 216 | + | introspectable="0" | |
| 217 | + | throws="1"> | |
| 218 | + | <doc xml:space="preserve" | |
| 219 | + | filename="gmodule-2.0.c" | |
| 220 | + | line="238">Opens a module. If the module has already been opened, | |
| 221 | + | its reference count is incremented. | |
| 222 | + | ||
| 223 | + | First of all g_module_open_full() tries to open @file_name as a module. | |
| 224 | + | If that fails and @file_name has the ".la"-suffix (and is a libtool | |
| 225 | + | archive) it tries to open the corresponding module. If that fails | |
| 226 | + | and it doesn't have the proper module suffix for the platform | |
| 227 | + | (%G_MODULE_SUFFIX), this suffix will be appended and the corresponding | |
| 228 | + | module will be opened. If that fails and @file_name doesn't have the | |
| 229 | + | ".la"-suffix, this suffix is appended and g_module_open_full() tries to open | |
| 230 | + | the corresponding module. If eventually that fails as well, %NULL is | |
| 231 | + | returned.</doc> | |
| 232 | + | <source-position filename="gmodule.h" line="99"/> | |
| 233 | + | <return-value> | |
| 234 | + | <doc xml:space="preserve" | |
| 235 | + | filename="gmodule-2.0.c" | |
| 236 | + | line="259">a #GModule on success, or %NULL on failure</doc> | |
| 237 | + | <type name="Module" c:type="GModule*"/> | |
| 238 | + | </return-value> | |
| 239 | + | <parameters> | |
| 240 | + | <parameter name="file_name" | |
| 241 | + | transfer-ownership="none" | |
| 242 | + | nullable="1" | |
| 243 | + | allow-none="1"> | |
| 244 | + | <doc xml:space="preserve" | |
| 245 | + | filename="gmodule-2.0.c" | |
| 246 | + | line="240">the name of the file containing the module, or %NULL | |
| 247 | + | to obtain a #GModule representing the main program itself</doc> | |
| 248 | + | <type name="utf8" c:type="const gchar*"/> | |
| 249 | + | </parameter> | |
| 250 | + | <parameter name="flags" transfer-ownership="none"> | |
| 251 | + | <doc xml:space="preserve" | |
| 252 | + | filename="gmodule-2.0.c" | |
| 253 | + | line="242">the flags used for opening the module. This can be the | |
| 254 | + | logical OR of any of the #GModuleFlags</doc> | |
| 255 | + | <type name="ModuleFlags" c:type="GModuleFlags"/> | |
| 256 | + | </parameter> | |
| 257 | + | </parameters> | |
| 258 | + | </function> | |
| 259 | + | <function name="supported" c:identifier="g_module_supported"> | |
| 260 | + | <doc xml:space="preserve" | |
| 261 | + | filename="gmodule-2.0.c" | |
| 262 | + | line="264">Checks if modules are supported on the current platform.</doc> | |
| 263 | + | <source-position filename="gmodule.h" line="91"/> | |
| 264 | + | <return-value transfer-ownership="none"> | |
| 265 | + | <doc xml:space="preserve" | |
| 266 | + | filename="gmodule-2.0.c" | |
| 267 | + | line="269">%TRUE if modules are supported</doc> | |
| 268 | + | <type name="gboolean" c:type="gboolean"/> | |
| 269 | + | </return-value> | |
| 270 | + | </function> | |
| 271 | + | </record> | |
| 272 | + | <callback name="ModuleCheckInit" c:type="GModuleCheckInit"> | |
| 273 | + | <doc xml:space="preserve" | |
| 274 | + | filename="gmodule-2.0.c" | |
| 275 | + | line="14">Specifies the type of the module initialization function. | |
| 276 | + | If a module contains a function named g_module_check_init() it is called | |
| 277 | + | automatically when the module is loaded. It is passed the #GModule structure | |
| 278 | + | and should return %NULL on success or a string describing the initialization | |
| 279 | + | error.</doc> | |
| 280 | + | <source-position filename="gmodule.h" line="66"/> | |
| 281 | + | <return-value transfer-ownership="none"> | |
| 282 | + | <doc xml:space="preserve" | |
| 283 | + | filename="gmodule-2.0.c" | |
| 284 | + | line="24">%NULL on success, or a string describing the initialization error</doc> | |
| 285 | + | <type name="utf8" c:type="const gchar*"/> | |
| 286 | + | </return-value> | |
| 287 | + | <parameters> | |
| 288 | + | <parameter name="module" transfer-ownership="none"> | |
| 289 | + | <doc xml:space="preserve" | |
| 290 | + | filename="gmodule-2.0.c" | |
| 291 | + | line="16">the #GModule corresponding to the module which has just been loaded</doc> | |
| 292 | + | <type name="Module" c:type="GModule*"/> | |
| 293 | + | </parameter> | |
| 294 | + | </parameters> | |
| 295 | + | </callback> | |
| 296 | + | <enumeration name="ModuleError" | |
| 297 | + | version="2.70" | |
| 298 | + | c:type="GModuleError" | |
| 299 | + | glib:error-domain="g-module-error-quark"> | |
| 300 | + | <doc xml:space="preserve" | |
| 301 | + | filename="gmodule.h" | |
| 302 | + | line="73">Errors returned by g_module_open_full().</doc> | |
| 303 | + | <source-position filename="gmodule.h" line="86"/> | |
| 304 | + | <member name="failed" value="0" c:identifier="G_MODULE_ERROR_FAILED"> | |
| 305 | + | <doc xml:space="preserve" | |
| 306 | + | filename="gmodule.h" | |
| 307 | + | line="75">there was an error loading or opening a module file</doc> | |
| 308 | + | </member> | |
| 309 | + | <member name="check_failed" | |
| 310 | + | value="1" | |
| 311 | + | c:identifier="G_MODULE_ERROR_CHECK_FAILED"> | |
| 312 | + | <doc xml:space="preserve" | |
| 313 | + | filename="gmodule.h" | |
| 314 | + | line="76">a module returned an error from its `g_module_check_init()` function</doc> | |
| 315 | + | </member> | |
| 316 | + | </enumeration> | |
| 317 | + | <bitfield name="ModuleFlags" c:type="GModuleFlags"> | |
| 318 | + | <doc xml:space="preserve" | |
| 319 | + | filename="gmodule.h" | |
| 320 | + | line="44">Flags passed to g_module_open(). | |
| 321 | + | Note that these flags are not supported on all platforms.</doc> | |
| 322 | + | <source-position filename="gmodule.h" line="63"/> | |
| 323 | + | <member name="lazy" value="1" c:identifier="G_MODULE_BIND_LAZY"> | |
| 324 | + | <doc xml:space="preserve" | |
| 325 | + | filename="gmodule.h" | |
| 326 | + | line="46">specifies that symbols are only resolved when | |
| 327 | + | needed. The default action is to bind all symbols when the module | |
| 328 | + | is loaded.</doc> | |
| 329 | + | </member> | |
| 330 | + | <member name="local" value="2" c:identifier="G_MODULE_BIND_LOCAL"> | |
| 331 | + | <doc xml:space="preserve" | |
| 332 | + | filename="gmodule.h" | |
| 333 | + | line="49">specifies that symbols in the module should | |
| 334 | + | not be added to the global name space. The default action on most | |
| 335 | + | platforms is to place symbols in the module in the global name space, | |
| 336 | + | which may cause conflicts with existing symbols.</doc> | |
| 337 | + | </member> | |
| 338 | + | <member name="mask" value="3" c:identifier="G_MODULE_BIND_MASK"> | |
| 339 | + | <doc xml:space="preserve" | |
| 340 | + | filename="gmodule.h" | |
| 341 | + | line="53">mask for all flags.</doc> | |
| 342 | + | </member> | |
| 343 | + | </bitfield> | |
| 344 | + | <callback name="ModuleUnload" c:type="GModuleUnload"> | |
| 345 | + | <doc xml:space="preserve" | |
| 346 | + | filename="gmodule-2.0.c" | |
| 347 | + | line="28">Specifies the type of the module function called when it is unloaded. | |
| 348 | + | If a module contains a function named g_module_unload() it is called | |
| 349 | + | automatically when the module is unloaded. | |
| 350 | + | It is passed the #GModule structure.</doc> | |
| 351 | + | <source-position filename="gmodule.h" line="67"/> | |
| 352 | + | <return-value transfer-ownership="none"> | |
| 353 | + | <type name="none" c:type="void"/> | |
| 354 | + | </return-value> | |
| 355 | + | <parameters> | |
| 356 | + | <parameter name="module" transfer-ownership="none"> | |
| 357 | + | <doc xml:space="preserve" | |
| 358 | + | filename="gmodule-2.0.c" | |
| 359 | + | line="30">the #GModule about to be unloaded</doc> | |
| 360 | + | <type name="Module" c:type="GModule*"/> | |
| 361 | + | </parameter> | |
| 362 | + | </parameters> | |
| 363 | + | </callback> | |
| 364 | + | <function name="module_build_path" | |
| 365 | + | c:identifier="g_module_build_path" | |
| 366 | + | moved-to="Module.build_path"> | |
| 367 | + | <doc xml:space="preserve" | |
| 368 | + | filename="gmodule-2.0.c" | |
| 369 | + | line="159">A portable way to build the filename of a module. The platform-specific | |
| 370 | + | prefix and suffix are added to the filename, if needed, and the result | |
| 371 | + | is added to the directory, using the correct separator character. | |
| 372 | + | ||
| 373 | + | The directory should specify the directory where the module can be found. | |
| 374 | + | It can be %NULL or an empty string to indicate that the module is in a | |
| 375 | + | standard platform-specific directory, though this is not recommended | |
| 376 | + | since the wrong module may be found. | |
| 377 | + | ||
| 378 | + | For example, calling g_module_build_path() on a Linux system with a | |
| 379 | + | @directory of `/lib` and a @module_name of "mylibrary" will return | |
| 380 | + | `/lib/libmylibrary.so`. On a Windows system, using `\Windows` as the | |
| 381 | + | directory it will return `\Windows\mylibrary.dll`.</doc> | |
| 382 | + | <source-position filename="gmodule.h" line="137"/> | |
| 383 | + | <return-value transfer-ownership="full"> | |
| 384 | + | <doc xml:space="preserve" | |
| 385 | + | filename="gmodule-2.0.c" | |
| 386 | + | line="180">the complete path of the module, including the standard library | |
| 387 | + | prefix and suffix. This should be freed when no longer needed</doc> | |
| 388 | + | <type name="utf8" c:type="gchar*"/> | |
| 389 | + | </return-value> | |
| 390 | + | <parameters> | |
| 391 | + | <parameter name="directory" | |
| 392 | + | transfer-ownership="none" | |
| 393 | + | nullable="1" | |
| 394 | + | allow-none="1"> | |
| 395 | + | <doc xml:space="preserve" | |
| 396 | + | filename="gmodule-2.0.c" | |
| 397 | + | line="161">the directory where the module is. This can be | |
| 398 | + | %NULL or the empty string to indicate that the standard platform-specific | |
| 399 | + | directories will be used, though that is not recommended</doc> | |
| 400 | + | <type name="utf8" c:type="const gchar*"/> | |
| 401 | + | </parameter> | |
| 402 | + | <parameter name="module_name" transfer-ownership="none"> | |
| 403 | + | <doc xml:space="preserve" | |
| 404 | + | filename="gmodule-2.0.c" | |
| 405 | + | line="164">the name of the module</doc> | |
| 406 | + | <type name="utf8" c:type="const gchar*"/> | |
| 407 | + | </parameter> | |
| 408 | + | </parameters> | |
| 409 | + | </function> | |
| 410 | + | <function name="module_error" | |
| 411 | + | c:identifier="g_module_error" | |
| 412 | + | moved-to="Module.error"> | |
| 413 | + | <doc xml:space="preserve" | |
| 414 | + | filename="gmodule-2.0.c" | |
| 415 | + | line="195">Gets a string describing the last module error.</doc> | |
| 416 | + | <source-position filename="gmodule.h" line="113"/> | |
| 417 | + | <return-value transfer-ownership="none"> | |
| 418 | + | <doc xml:space="preserve" | |
| 419 | + | filename="gmodule-2.0.c" | |
| 420 | + | line="200">a string describing the last module error</doc> | |
| 421 | + | <type name="utf8" c:type="const gchar*"/> | |
| 422 | + | </return-value> | |
| 423 | + | </function> | |
| 424 | + | <function name="module_error_quark" | |
| 425 | + | c:identifier="g_module_error_quark" | |
| 426 | + | moved-to="Module.error_quark"> | |
| 427 | + | <return-value transfer-ownership="none"> | |
| 428 | + | <type name="GLib.Quark" c:type="GQuark"/> | |
| 429 | + | </return-value> | |
| 430 | + | </function> | |
| 431 | + | <function name="module_supported" | |
| 432 | + | c:identifier="g_module_supported" | |
| 433 | + | moved-to="Module.supported"> | |
| 434 | + | <doc xml:space="preserve" | |
| 435 | + | filename="gmodule-2.0.c" | |
| 436 | + | line="264">Checks if modules are supported on the current platform.</doc> | |
| 437 | + | <source-position filename="gmodule.h" line="91"/> | |
| 438 | + | <return-value transfer-ownership="none"> | |
| 439 | + | <doc xml:space="preserve" | |
| 440 | + | filename="gmodule-2.0.c" | |
| 441 | + | line="269">%TRUE if modules are supported</doc> | |
| 442 | + | <type name="gboolean" c:type="gboolean"/> | |
| 443 | + | </return-value> | |
| 444 | + | </function> | |
| 445 | + | <docsection name="modules"> | |
| 446 | + | <doc xml:space="preserve" | |
| 447 | + | filename="gmodule-2.0.c" | |
| 448 | + | line="79">These functions provide a portable way to dynamically load object files | |
| 449 | + | (commonly known as 'plug-ins'). The current implementation supports all | |
| 450 | + | systems that provide an implementation of dlopen() (e.g. Linux/Sun), as | |
| 451 | + | well as Windows platforms via DLLs. | |
| 452 | + | ||
| 453 | + | A program which wants to use these functions must be linked to the | |
| 454 | + | libraries output by the command `pkg-config --libs gmodule-2.0`. | |
| 455 | + | ||
| 456 | + | To use them you must first determine whether dynamic loading | |
| 457 | + | is supported on the platform by calling g_module_supported(). | |
| 458 | + | If it is, you can open a module with g_module_open(), | |
| 459 | + | find the module's symbols (e.g. function names) with g_module_symbol(), | |
| 460 | + | and later close the module with g_module_close(). | |
| 461 | + | g_module_name() will return the file name of a currently opened module. | |
| 462 | + | ||
| 463 | + | If any of the above functions fail, the error status can be found with | |
| 464 | + | g_module_error(). | |
| 465 | + | ||
| 466 | + | The #GModule implementation features reference counting for opened modules, | |
| 467 | + | and supports hook functions within a module which are called when the | |
| 468 | + | module is loaded and unloaded (see #GModuleCheckInit and #GModuleUnload). | |
| 469 | + | ||
| 470 | + | If your module introduces static data to common subsystems in the running | |
| 471 | + | program, e.g. through calling | |
| 472 | + | `g_quark_from_static_string ("my-module-stuff")`, | |
| 473 | + | it must ensure that it is never unloaded, by calling g_module_make_resident(). | |
| 474 | + | ||
| 475 | + | Example: Calling a function defined in a GModule | |
| 476 | + | |[<!-- language="C" --> | |
| 477 | + | // the function signature for 'say_hello' | |
| 478 | + | typedef void (* SayHelloFunc) (const char *message); | |
| 479 | + | ||
| 480 | + | gboolean | |
| 481 | + | just_say_hello (const char *filename, GError **error) | |
| 482 | + | { | |
| 483 | + | SayHelloFunc say_hello; | |
| 484 | + | GModule *module; | |
| 485 | + | ||
| 486 | + | module = g_module_open (filename, G_MODULE_BIND_LAZY); | |
| 487 | + | if (!module) | |
| 488 | + | { | |
| 489 | + | g_set_error (error, FOO_ERROR, FOO_ERROR_BLAH, | |
| 490 | + | "%s", g_module_error ()); | |
| 491 | + | return FALSE; | |
| 492 | + | } | |
| 493 | + | ||
| 494 | + | if (!g_module_symbol (module, "say_hello", (gpointer *)&say_hello)) | |
| 495 | + | { | |
| 496 | + | g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN, | |
| 497 | + | "%s: %s", filename, g_module_error ()); | |
| 498 | + | if (!g_module_close (module)) | |
| 499 | + | g_warning ("%s: %s", filename, g_module_error ()); | |
| 500 | + | return FALSE; | |
| 501 | + | } | |
| 502 | + | ||
| 503 | + | if (say_hello == NULL) | |
| 504 | + | { | |
| 505 | + | g_set_error (error, SAY_ERROR, SAY_ERROR_OPEN, | |
| 506 | + | "symbol say_hello is NULL"); | |
| 507 | + | if (!g_module_close (module)) | |
| 508 | + | g_warning ("%s: %s", filename, g_module_error ()); | |
| 509 | + | return FALSE; | |
| 510 | + | } | |
| 511 | + | ||
| 512 | + | // call our function in the module | |
| 513 | + | say_hello ("Hello world!"); | |
| 514 | + | ||
| 515 | + | if (!g_module_close (module)) | |
| 516 | + | g_warning ("%s: %s", filename, g_module_error ()); | |
| 517 | + | return TRUE; | |
| 518 | + | } | |
| 519 | + | ]|</doc> | |
| 520 | + | </docsection> | |
| 521 | + | </namespace> | |
| 522 | + | </repository> | |
A internal/gir/spec/GObject-2.0.gir +27133 -0 large diff (27133 lines changed): collapsed
A internal/gir/spec/Gdk-4.0.gir +31079 -0 large diff (31079 lines changed): collapsed
A internal/gir/spec/GdkPixbuf-2.0.gir +7353 -0 large diff (7353 lines changed): collapsed
A internal/gir/spec/Gio-2.0.gir +134893 -0 large diff (134893 lines changed): collapsed
A internal/gir/spec/Graphene-1.0.gir +13375 -0 large diff (13375 lines changed): collapsed
A internal/gir/spec/Gsk-4.0.gir +7181 -0 large diff (7181 lines changed): collapsed
A internal/gir/spec/Gtk-4.0.gir +167916 -0 large diff (167916 lines changed): collapsed
A internal/gir/spec/Pango-1.0.gir +22709 -0 large diff (22709 lines changed): collapsed
A internal/gir/spec/PangoCairo-1.0.gir +1136 -0
| @@ -0,0 +1,1136 @@ | |||
| 1 | + | <?xml version="1.0"?> | |
| 2 | + | <!-- This file was automatically generated from C sources - DO NOT EDIT! | |
| 3 | + | To affect the contents of this file, edit the original C definitions, | |
| 4 | + | and/or use gtk-doc annotations. --> | |
| 5 | + | <repository version="1.2" | |
| 6 | + | xmlns="http://www.gtk.org/introspection/core/1.0" | |
| 7 | + | xmlns:c="http://www.gtk.org/introspection/c/1.0" | |
| 8 | + | xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> | |
| 9 | + | <include name="GObject" version="2.0"/> | |
| 10 | + | <include name="Pango" version="1.0"/> | |
| 11 | + | <include name="cairo" version="1.0"/> | |
| 12 | + | <package name="pangocairo"/> | |
| 13 | + | <c:include name="pango/pangocairo.h"/> | |
| 14 | + | <namespace name="PangoCairo" | |
| 15 | + | version="1.0" | |
| 16 | + | shared-library="libpangocairo-1.0.so.0" | |
| 17 | + | c:identifier-prefixes="PangoCairo" | |
| 18 | + | c:symbol-prefixes="pango_cairo"> | |
| 19 | + | <function-macro name="FONT" | |
| 20 | + | c:identifier="PANGO_CAIRO_FONT" | |
| 21 | + | introspectable="0"> | |
| 22 | + | <source-position filename="../pango/pangocairo.h" line="49"/> | |
| 23 | + | <parameters> | |
| 24 | + | <parameter name="obj"> | |
| 25 | + | </parameter> | |
| 26 | + | </parameters> | |
| 27 | + | </function-macro> | |
| 28 | + | <function-macro name="FONT_MAP" | |
| 29 | + | c:identifier="PANGO_CAIRO_FONT_MAP" | |
| 30 | + | introspectable="0"> | |
| 31 | + | <source-position filename="../pango/pangocairo.h" line="72"/> | |
| 32 | + | <parameters> | |
| 33 | + | <parameter name="obj"> | |
| 34 | + | </parameter> | |
| 35 | + | </parameters> | |
| 36 | + | </function-macro> | |
| 37 | + | <interface name="Font" | |
| 38 | + | c:symbol-prefix="font" | |
| 39 | + | c:type="PangoCairoFont" | |
| 40 | + | version="1.18" | |
| 41 | + | glib:type-name="PangoCairoFont" | |
| 42 | + | glib:get-type="pango_cairo_font_get_type"> | |
| 43 | + | <doc xml:space="preserve" | |
| 44 | + | filename="../pango/pangocairo.h" | |
| 45 | + | line="30">`PangoCairoFont` is an interface exported by fonts for | |
| 46 | + | use with Cairo. | |
| 47 | + | ||
| 48 | + | The actual type of the font will depend on the particular | |
| 49 | + | font technology Cairo was compiled to use.</doc> | |
| 50 | + | <prerequisite name="Pango.Font"/> | |
| 51 | + | <method name="get_scaled_font" | |
| 52 | + | c:identifier="pango_cairo_font_get_scaled_font" | |
| 53 | + | version="1.18"> | |
| 54 | + | <doc xml:space="preserve" | |
| 55 | + | filename="../pango/pangocairo-font.c" | |
| 56 | + | line="138">Gets the `cairo_scaled_font_t` used by @font. | |
| 57 | + | The scaled font can be referenced and kept using | |
| 58 | + | cairo_scaled_font_reference().</doc> | |
| 59 | + | <source-position filename="../pango/pangocairo.h" line="133"/> | |
| 60 | + | <return-value transfer-ownership="none" nullable="1"> | |
| 61 | + | <doc xml:space="preserve" | |
| 62 | + | filename="../pango/pangocairo-font.c" | |
| 63 | + | line="146">the `cairo_scaled_font_t` | |
| 64 | + | used by @font</doc> | |
| 65 | + | <type name="cairo.ScaledFont" c:type="cairo_scaled_font_t*"/> | |
| 66 | + | </return-value> | |
| 67 | + | <parameters> | |
| 68 | + | <instance-parameter name="font" | |
| 69 | + | transfer-ownership="none" | |
| 70 | + | nullable="1" | |
| 71 | + | allow-none="1"> | |
| 72 | + | <doc xml:space="preserve" | |
| 73 | + | filename="../pango/pangocairo-font.c" | |
| 74 | + | line="140">a `PangoFont` from a `PangoCairoFontMap`</doc> | |
| 75 | + | <type name="Font" c:type="PangoCairoFont*"/> | |
| 76 | + | </instance-parameter> | |
| 77 | + | </parameters> | |
| 78 | + | </method> | |
| 79 | + | </interface> | |
| 80 | + | <interface name="FontMap" | |
| 81 | + | c:symbol-prefix="font_map" | |
| 82 | + | c:type="PangoCairoFontMap" | |
| 83 | + | version="1.10" | |
| 84 | + | glib:type-name="PangoCairoFontMap" | |
| 85 | + | glib:get-type="pango_cairo_font_map_get_type"> | |
| 86 | + | <doc xml:space="preserve" | |
| 87 | + | filename="../pango/pangocairo.h" | |
| 88 | + | line="57">`PangoCairoFontMap` is an interface exported by font maps for | |
| 89 | + | use with Cairo. | |
| 90 | + | ||
| 91 | + | The actual type of the font map will depend on the particular | |
| 92 | + | font technology Cairo was compiled to use.</doc> | |
| 93 | + | <prerequisite name="Pango.FontMap"/> | |
| 94 | + | <function name="get_default" | |
| 95 | + | c:identifier="pango_cairo_font_map_get_default" | |
| 96 | + | version="1.10"> | |
| 97 | + | <doc xml:space="preserve" | |
| 98 | + | filename="../pango/pangocairo-fontmap.c" | |
| 99 | + | line="151">Gets a default `PangoCairoFontMap` to use with Cairo. | |
| 100 | + | ||
| 101 | + | Note that the type of the returned object will depend on the | |
| 102 | + | particular font backend Cairo was compiled to use; you generally | |
| 103 | + | should only use the `PangoFontMap` and `PangoCairoFontMap` | |
| 104 | + | interfaces on the returned object. | |
| 105 | + | ||
| 106 | + | The default Cairo fontmap can be changed by using | |
| 107 | + | [method@PangoCairo.FontMap.set_default]. This can be used to | |
| 108 | + | change the Cairo font backend that the default fontmap uses | |
| 109 | + | for example. | |
| 110 | + | ||
| 111 | + | Note that since Pango 1.32.6, the default fontmap is per-thread. | |
| 112 | + | Each thread gets its own default fontmap. In this way, PangoCairo | |
| 113 | + | can be used safely from multiple threads.</doc> | |
| 114 | + | <source-position filename="../pango/pangocairo.h" line="110"/> | |
| 115 | + | <return-value transfer-ownership="none"> | |
| 116 | + | <doc xml:space="preserve" | |
| 117 | + | filename="../pango/pangocairo-fontmap.c" | |
| 118 | + | line="170">the default PangoCairo fontmap | |
| 119 | + | for the current thread. This object is owned by Pango and must | |
| 120 | + | not be freed.</doc> | |
| 121 | + | <type name="Pango.FontMap" c:type="PangoFontMap*"/> | |
| 122 | + | </return-value> | |
| 123 | + | </function> | |
| 124 | + | <function name="new" | |
| 125 | + | c:identifier="pango_cairo_font_map_new" | |
| 126 | + | version="1.10"> | |
| 127 | + | <doc xml:space="preserve" | |
| 128 | + | filename="../pango/pangocairo-fontmap.c" | |
| 129 | + | line="47">Creates a new `PangoCairoFontMap` object. | |
| 130 | + | ||
| 131 | + | A fontmap is used to cache information about available fonts, | |
| 132 | + | and holds certain global parameters such as the resolution. | |
| 133 | + | In most cases, you can use `func@PangoCairo.font_map_get_default] | |
| 134 | + | instead. | |
| 135 | + | ||
| 136 | + | Note that the type of the returned object will depend | |
| 137 | + | on the particular font backend Cairo was compiled to use; | |
| 138 | + | You generally should only use the `PangoFontMap` and | |
| 139 | + | `PangoCairoFontMap` interfaces on the returned object. | |
| 140 | + | ||
| 141 | + | You can override the type of backend returned by using an | |
| 142 | + | environment variable %PANGOCAIRO_BACKEND. Supported types, | |
| 143 | + | based on your build, are fc (fontconfig), win32, and coretext. | |
| 144 | + | If requested type is not available, NULL is returned. Ie. | |
| 145 | + | this is only useful for testing, when at least two backends | |
| 146 | + | are compiled in.</doc> | |
| 147 | + | <source-position filename="../pango/pangocairo.h" line="106"/> | |
| 148 | + | <return-value transfer-ownership="full"> | |
| 149 | + | <doc xml:space="preserve" | |
| 150 | + | filename="../pango/pangocairo-fontmap.c" | |
| 151 | + | line="69">the newly allocated `PangoFontMap`, | |
| 152 | + | which should be freed with g_object_unref().</doc> | |
| 153 | + | <type name="Pango.FontMap" c:type="PangoFontMap*"/> | |
| 154 | + | </return-value> | |
| 155 | + | </function> | |
| 156 | + | <function name="new_for_font_type" | |
| 157 | + | c:identifier="pango_cairo_font_map_new_for_font_type" | |
| 158 | + | version="1.18"> | |
| 159 | + | <doc xml:space="preserve" | |
| 160 | + | filename="../pango/pangocairo-fontmap.c" | |
| 161 | + | line="110">Creates a new `PangoCairoFontMap` object of the type suitable | |
| 162 | + | to be used with cairo font backend of type @fonttype. | |
| 163 | + | ||
| 164 | + | In most cases one should simply use [func@PangoCairo.FontMap.new], or | |
| 165 | + | in fact in most of those cases, just use [func@PangoCairo.FontMap.get_default].</doc> | |
| 166 | + | <source-position filename="../pango/pangocairo.h" line="108"/> | |
| 167 | + | <return-value transfer-ownership="full" nullable="1"> | |
| 168 | + | <doc xml:space="preserve" | |
| 169 | + | filename="../pango/pangocairo-fontmap.c" | |
| 170 | + | line="120">the newly allocated | |
| 171 | + | `PangoFontMap` of suitable type which should be freed with | |
| 172 | + | g_object_unref(), or %NULL if the requested cairo font backend | |
| 173 | + | is not supported / compiled in.</doc> | |
| 174 | + | <type name="Pango.FontMap" c:type="PangoFontMap*"/> | |
| 175 | + | </return-value> | |
| 176 | + | <parameters> | |
| 177 | + | <parameter name="fonttype" transfer-ownership="none"> | |
| 178 | + | <doc xml:space="preserve" | |
| 179 | + | filename="../pango/pangocairo-fontmap.c" | |
| 180 | + | line="112">desired #cairo_font_type_t</doc> | |
| 181 | + | <type name="cairo.FontType" c:type="cairo_font_type_t"/> | |
| 182 | + | </parameter> | |
| 183 | + | </parameters> | |
| 184 | + | </function> | |
| 185 | + | <method name="create_context" | |
| 186 | + | c:identifier="pango_cairo_font_map_create_context" | |
| 187 | + | version="1.10" | |
| 188 | + | introspectable="0" | |
| 189 | + | deprecated="1" | |
| 190 | + | deprecated-version="1.22"> | |
| 191 | + | <doc xml:space="preserve" | |
| 192 | + | filename="../pango/pangocairo-fontmap.c" | |
| 193 | + | line="267">Create a `PangoContext` for the given fontmap.</doc> | |
| 194 | + | <doc-deprecated xml:space="preserve">Use pango_font_map_create_context() instead.</doc-deprecated> | |
| 195 | + | <source-position filename="../pango/pangocairo.h" line="123"/> | |
| 196 | + | <return-value> | |
| 197 | + | <doc xml:space="preserve" | |
| 198 | + | filename="../pango/pangocairo-fontmap.c" | |
| 199 | + | line="273">the newly created context; free with g_object_unref().</doc> | |
| 200 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 201 | + | </return-value> | |
| 202 | + | <parameters> | |
| 203 | + | <instance-parameter name="fontmap" transfer-ownership="none"> | |
| 204 | + | <doc xml:space="preserve" | |
| 205 | + | filename="../pango/pangocairo-fontmap.c" | |
| 206 | + | line="269">a `PangoCairoFontMap`</doc> | |
| 207 | + | <type name="FontMap" c:type="PangoCairoFontMap*"/> | |
| 208 | + | </instance-parameter> | |
| 209 | + | </parameters> | |
| 210 | + | </method> | |
| 211 | + | <method name="get_font_type" | |
| 212 | + | c:identifier="pango_cairo_font_map_get_font_type" | |
| 213 | + | version="1.18"> | |
| 214 | + | <doc xml:space="preserve" | |
| 215 | + | filename="../pango/pangocairo-fontmap.c" | |
| 216 | + | line="287">Gets the type of Cairo font backend that @fontmap uses.</doc> | |
| 217 | + | <source-position filename="../pango/pangocairo.h" line="114"/> | |
| 218 | + | <return-value transfer-ownership="none"> | |
| 219 | + | <doc xml:space="preserve" | |
| 220 | + | filename="../pango/pangocairo-fontmap.c" | |
| 221 | + | line="293">the `cairo_font_type_t` cairo font backend type</doc> | |
| 222 | + | <type name="cairo.FontType" c:type="cairo_font_type_t"/> | |
| 223 | + | </return-value> | |
| 224 | + | <parameters> | |
| 225 | + | <instance-parameter name="fontmap" transfer-ownership="none"> | |
| 226 | + | <doc xml:space="preserve" | |
| 227 | + | filename="../pango/pangocairo-fontmap.c" | |
| 228 | + | line="289">a `PangoCairoFontMap`</doc> | |
| 229 | + | <type name="FontMap" c:type="PangoCairoFontMap*"/> | |
| 230 | + | </instance-parameter> | |
| 231 | + | </parameters> | |
| 232 | + | </method> | |
| 233 | + | <method name="get_resolution" | |
| 234 | + | c:identifier="pango_cairo_font_map_get_resolution" | |
| 235 | + | version="1.10"> | |
| 236 | + | <doc xml:space="preserve" | |
| 237 | + | filename="../pango/pangocairo-fontmap.c" | |
| 238 | + | line="247">Gets the resolution for the fontmap. | |
| 239 | + | ||
| 240 | + | See [method@PangoCairo.FontMap.set_resolution].</doc> | |
| 241 | + | <source-position filename="../pango/pangocairo.h" line="120"/> | |
| 242 | + | <return-value transfer-ownership="none"> | |
| 243 | + | <doc xml:space="preserve" | |
| 244 | + | filename="../pango/pangocairo-fontmap.c" | |
| 245 | + | line="255">the resolution in "dots per inch"</doc> | |
| 246 | + | <type name="gdouble" c:type="double"/> | |
| 247 | + | </return-value> | |
| 248 | + | <parameters> | |
| 249 | + | <instance-parameter name="fontmap" transfer-ownership="none"> | |
| 250 | + | <doc xml:space="preserve" | |
| 251 | + | filename="../pango/pangocairo-fontmap.c" | |
| 252 | + | line="249">a `PangoCairoFontMap`</doc> | |
| 253 | + | <type name="FontMap" c:type="PangoCairoFontMap*"/> | |
| 254 | + | </instance-parameter> | |
| 255 | + | </parameters> | |
| 256 | + | </method> | |
| 257 | + | <method name="set_default" | |
| 258 | + | c:identifier="pango_cairo_font_map_set_default" | |
| 259 | + | version="1.22"> | |
| 260 | + | <doc xml:space="preserve" | |
| 261 | + | filename="../pango/pangocairo-fontmap.c" | |
| 262 | + | line="190">Sets a default `PangoCairoFontMap` to use with Cairo. | |
| 263 | + | ||
| 264 | + | This can be used to change the Cairo font backend that the | |
| 265 | + | default fontmap uses for example. The old default font map | |
| 266 | + | is unreffed and the new font map referenced. | |
| 267 | + | ||
| 268 | + | Note that since Pango 1.32.6, the default fontmap is per-thread. | |
| 269 | + | This function only changes the default fontmap for | |
| 270 | + | the current thread. Default fontmaps of existing threads | |
| 271 | + | are not changed. Default fontmaps of any new threads will | |
| 272 | + | still be created using [func@PangoCairo.FontMap.new]. | |
| 273 | + | ||
| 274 | + | A value of %NULL for @fontmap will cause the current default | |
| 275 | + | font map to be released and a new default font map to be created | |
| 276 | + | on demand, using [func@PangoCairo.FontMap.new].</doc> | |
| 277 | + | <source-position filename="../pango/pangocairo.h" line="112"/> | |
| 278 | + | <return-value transfer-ownership="none"> | |
| 279 | + | <type name="none" c:type="void"/> | |
| 280 | + | </return-value> | |
| 281 | + | <parameters> | |
| 282 | + | <instance-parameter name="fontmap" | |
| 283 | + | transfer-ownership="none" | |
| 284 | + | nullable="1" | |
| 285 | + | allow-none="1"> | |
| 286 | + | <doc xml:space="preserve" | |
| 287 | + | filename="../pango/pangocairo-fontmap.c" | |
| 288 | + | line="192">The new default font map</doc> | |
| 289 | + | <type name="FontMap" c:type="PangoCairoFontMap*"/> | |
| 290 | + | </instance-parameter> | |
| 291 | + | </parameters> | |
| 292 | + | </method> | |
| 293 | + | <method name="set_resolution" | |
| 294 | + | c:identifier="pango_cairo_font_map_set_resolution" | |
| 295 | + | version="1.10"> | |
| 296 | + | <doc xml:space="preserve" | |
| 297 | + | filename="../pango/pangocairo-fontmap.c" | |
| 298 | + | line="223">Sets the resolution for the fontmap. | |
| 299 | + | ||
| 300 | + | This is a scale factor between | |
| 301 | + | points specified in a `PangoFontDescription` and Cairo units. The | |
| 302 | + | default value is 96, meaning that a 10 point font will be 13 | |
| 303 | + | units high. (10 * 96. / 72. = 13.3).</doc> | |
| 304 | + | <source-position filename="../pango/pangocairo.h" line="117"/> | |
| 305 | + | <return-value transfer-ownership="none"> | |
| 306 | + | <type name="none" c:type="void"/> | |
| 307 | + | </return-value> | |
| 308 | + | <parameters> | |
| 309 | + | <instance-parameter name="fontmap" transfer-ownership="none"> | |
| 310 | + | <doc xml:space="preserve" | |
| 311 | + | filename="../pango/pangocairo-fontmap.c" | |
| 312 | + | line="225">a `PangoCairoFontMap`</doc> | |
| 313 | + | <type name="FontMap" c:type="PangoCairoFontMap*"/> | |
| 314 | + | </instance-parameter> | |
| 315 | + | <parameter name="dpi" transfer-ownership="none"> | |
| 316 | + | <doc xml:space="preserve" | |
| 317 | + | filename="../pango/pangocairo-fontmap.c" | |
| 318 | + | line="226">the resolution in "dots per inch". (Physical inches aren't actually | |
| 319 | + | involved; the terminology is conventional.)</doc> | |
| 320 | + | <type name="gdouble" c:type="double"/> | |
| 321 | + | </parameter> | |
| 322 | + | </parameters> | |
| 323 | + | </method> | |
| 324 | + | </interface> | |
| 325 | + | <function-macro name="IS_FONT" | |
| 326 | + | c:identifier="PANGO_CAIRO_IS_FONT" | |
| 327 | + | introspectable="0"> | |
| 328 | + | <source-position filename="../pango/pangocairo.h" line="50"/> | |
| 329 | + | <parameters> | |
| 330 | + | <parameter name="obj"> | |
| 331 | + | </parameter> | |
| 332 | + | </parameters> | |
| 333 | + | </function-macro> | |
| 334 | + | <function-macro name="IS_FONT_MAP" | |
| 335 | + | c:identifier="PANGO_CAIRO_IS_FONT_MAP" | |
| 336 | + | introspectable="0"> | |
| 337 | + | <source-position filename="../pango/pangocairo.h" line="73"/> | |
| 338 | + | <parameters> | |
| 339 | + | <parameter name="obj"> | |
| 340 | + | </parameter> | |
| 341 | + | </parameters> | |
| 342 | + | </function-macro> | |
| 343 | + | <callback name="ShapeRendererFunc" c:type="PangoCairoShapeRendererFunc"> | |
| 344 | + | <doc xml:space="preserve" | |
| 345 | + | filename="../pango/pangocairo.h" | |
| 346 | + | line="80">Function type for rendering attributes of type %PANGO_ATTR_SHAPE | |
| 347 | + | with Pango's Cairo renderer.</doc> | |
| 348 | + | <source-position filename="../pango/pangocairo.h" line="94"/> | |
| 349 | + | <return-value transfer-ownership="none"> | |
| 350 | + | <type name="none" c:type="void"/> | |
| 351 | + | </return-value> | |
| 352 | + | <parameters> | |
| 353 | + | <parameter name="cr" transfer-ownership="none"> | |
| 354 | + | <doc xml:space="preserve" | |
| 355 | + | filename="../pango/pangocairo.h" | |
| 356 | + | line="82">a Cairo context with current point set to where the shape should | |
| 357 | + | be rendered</doc> | |
| 358 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 359 | + | </parameter> | |
| 360 | + | <parameter name="attr" transfer-ownership="none"> | |
| 361 | + | <doc xml:space="preserve" | |
| 362 | + | filename="../pango/pangocairo.h" | |
| 363 | + | line="84">the %PANGO_ATTR_SHAPE to render</doc> | |
| 364 | + | <type name="Pango.AttrShape" c:type="PangoAttrShape*"/> | |
| 365 | + | </parameter> | |
| 366 | + | <parameter name="do_path" transfer-ownership="none"> | |
| 367 | + | <doc xml:space="preserve" | |
| 368 | + | filename="../pango/pangocairo.h" | |
| 369 | + | line="85">whether only the shape path should be appended to current | |
| 370 | + | path of @cr and no filling/stroking done. This will be set | |
| 371 | + | to %TRUE when called from pango_cairo_layout_path() and | |
| 372 | + | pango_cairo_layout_line_path() rendering functions.</doc> | |
| 373 | + | <type name="gboolean" c:type="gboolean"/> | |
| 374 | + | </parameter> | |
| 375 | + | <parameter name="data" | |
| 376 | + | transfer-ownership="none" | |
| 377 | + | nullable="1" | |
| 378 | + | allow-none="1" | |
| 379 | + | closure="3"> | |
| 380 | + | <doc xml:space="preserve" | |
| 381 | + | filename="../pango/pangocairo.h" | |
| 382 | + | line="89">user data passed to pango_cairo_context_set_shape_renderer()</doc> | |
| 383 | + | <type name="gpointer" c:type="gpointer"/> | |
| 384 | + | </parameter> | |
| 385 | + | </parameters> | |
| 386 | + | </callback> | |
| 387 | + | <function name="context_get_font_options" | |
| 388 | + | c:identifier="pango_cairo_context_get_font_options" | |
| 389 | + | version="1.10"> | |
| 390 | + | <doc xml:space="preserve" | |
| 391 | + | filename="../pango/pangocairo-context.c" | |
| 392 | + | line="284">Retrieves any font rendering options previously set with | |
| 393 | + | [func@PangoCairo.context_set_font_options]. | |
| 394 | + | ||
| 395 | + | This function does not report options that are derived from | |
| 396 | + | the target surface by [func@update_context].</doc> | |
| 397 | + | <source-position filename="../pango/pangocairo.h" line="145"/> | |
| 398 | + | <return-value transfer-ownership="none" nullable="1"> | |
| 399 | + | <doc xml:space="preserve" | |
| 400 | + | filename="../pango/pangocairo-context.c" | |
| 401 | + | line="294">the font options previously set on the | |
| 402 | + | context, or %NULL if no options have been set. This value is | |
| 403 | + | owned by the context and must not be modified or freed.</doc> | |
| 404 | + | <type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/> | |
| 405 | + | </return-value> | |
| 406 | + | <parameters> | |
| 407 | + | <parameter name="context" transfer-ownership="none"> | |
| 408 | + | <doc xml:space="preserve" | |
| 409 | + | filename="../pango/pangocairo-context.c" | |
| 410 | + | line="286">a `PangoContext`, from a pangocairo font map</doc> | |
| 411 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 412 | + | </parameter> | |
| 413 | + | </parameters> | |
| 414 | + | </function> | |
| 415 | + | <function name="context_get_resolution" | |
| 416 | + | c:identifier="pango_cairo_context_get_resolution" | |
| 417 | + | version="1.10"> | |
| 418 | + | <doc xml:space="preserve" | |
| 419 | + | filename="../pango/pangocairo-context.c" | |
| 420 | + | line="205">Gets the resolution for the context. | |
| 421 | + | ||
| 422 | + | See [func@PangoCairo.context_set_resolution]</doc> | |
| 423 | + | <source-position filename="../pango/pangocairo.h" line="151"/> | |
| 424 | + | <return-value transfer-ownership="none"> | |
| 425 | + | <doc xml:space="preserve" | |
| 426 | + | filename="../pango/pangocairo-context.c" | |
| 427 | + | line="213">the resolution in "dots per inch". A negative value will | |
| 428 | + | be returned if no resolution has previously been set.</doc> | |
| 429 | + | <type name="gdouble" c:type="double"/> | |
| 430 | + | </return-value> | |
| 431 | + | <parameters> | |
| 432 | + | <parameter name="context" transfer-ownership="none"> | |
| 433 | + | <doc xml:space="preserve" | |
| 434 | + | filename="../pango/pangocairo-context.c" | |
| 435 | + | line="207">a `PangoContext`, from a pangocairo font map</doc> | |
| 436 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 437 | + | </parameter> | |
| 438 | + | </parameters> | |
| 439 | + | </function> | |
| 440 | + | <function name="context_get_shape_renderer" | |
| 441 | + | c:identifier="pango_cairo_context_get_shape_renderer" | |
| 442 | + | version="1.18" | |
| 443 | + | introspectable="0"> | |
| 444 | + | <doc xml:space="preserve" | |
| 445 | + | filename="../pango/pangocairo-context.c" | |
| 446 | + | line="380">Sets callback function for context to use for rendering attributes | |
| 447 | + | of type %PANGO_ATTR_SHAPE. | |
| 448 | + | ||
| 449 | + | See `PangoCairoShapeRendererFunc` for details. | |
| 450 | + | ||
| 451 | + | Retrieves callback function and associated user data for rendering | |
| 452 | + | attributes of type %PANGO_ATTR_SHAPE as set by | |
| 453 | + | [func@PangoCairo.context_set_shape_renderer], if any.</doc> | |
| 454 | + | <source-position filename="../pango/pangocairo.h" line="159"/> | |
| 455 | + | <return-value transfer-ownership="none" nullable="1"> | |
| 456 | + | <doc xml:space="preserve" | |
| 457 | + | filename="../pango/pangocairo-context.c" | |
| 458 | + | line="394">the shape rendering callback | |
| 459 | + | previously set on the context, or %NULL if no shape rendering callback | |
| 460 | + | have been set.</doc> | |
| 461 | + | <type name="ShapeRendererFunc" c:type="PangoCairoShapeRendererFunc"/> | |
| 462 | + | </return-value> | |
| 463 | + | <parameters> | |
| 464 | + | <parameter name="context" transfer-ownership="none"> | |
| 465 | + | <doc xml:space="preserve" | |
| 466 | + | filename="../pango/pangocairo-context.c" | |
| 467 | + | line="382">a `PangoContext`, from a pangocairo font map</doc> | |
| 468 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 469 | + | </parameter> | |
| 470 | + | <parameter name="data" | |
| 471 | + | transfer-ownership="none" | |
| 472 | + | nullable="1" | |
| 473 | + | allow-none="1"> | |
| 474 | + | <doc xml:space="preserve" | |
| 475 | + | filename="../pango/pangocairo-context.c" | |
| 476 | + | line="383">Pointer to `gpointer` to return user data</doc> | |
| 477 | + | <type name="gpointer" c:type="gpointer*"/> | |
| 478 | + | </parameter> | |
| 479 | + | </parameters> | |
| 480 | + | </function> | |
| 481 | + | <function name="context_set_font_options" | |
| 482 | + | c:identifier="pango_cairo_context_set_font_options" | |
| 483 | + | version="1.10"> | |
| 484 | + | <doc xml:space="preserve" | |
| 485 | + | filename="../pango/pangocairo-context.c" | |
| 486 | + | line="229">Sets the font options used when rendering text with this context. | |
| 487 | + | ||
| 488 | + | These options override any options that [func@update_context] | |
| 489 | + | derives from the target surface.</doc> | |
| 490 | + | <source-position filename="../pango/pangocairo.h" line="142"/> | |
| 491 | + | <return-value transfer-ownership="none"> | |
| 492 | + | <type name="none" c:type="void"/> | |
| 493 | + | </return-value> | |
| 494 | + | <parameters> | |
| 495 | + | <parameter name="context" transfer-ownership="none"> | |
| 496 | + | <doc xml:space="preserve" | |
| 497 | + | filename="../pango/pangocairo-context.c" | |
| 498 | + | line="231">a `PangoContext`, from a pangocairo font map</doc> | |
| 499 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 500 | + | </parameter> | |
| 501 | + | <parameter name="options" | |
| 502 | + | transfer-ownership="none" | |
| 503 | + | nullable="1" | |
| 504 | + | allow-none="1"> | |
| 505 | + | <doc xml:space="preserve" | |
| 506 | + | filename="../pango/pangocairo-context.c" | |
| 507 | + | line="232">a `cairo_font_options_t`, or %NULL to unset | |
| 508 | + | any previously set options. A copy is made.</doc> | |
| 509 | + | <type name="cairo.FontOptions" c:type="const cairo_font_options_t*"/> | |
| 510 | + | </parameter> | |
| 511 | + | </parameters> | |
| 512 | + | </function> | |
| 513 | + | <function name="context_set_resolution" | |
| 514 | + | c:identifier="pango_cairo_context_set_resolution" | |
| 515 | + | version="1.10"> | |
| 516 | + | <doc xml:space="preserve" | |
| 517 | + | filename="../pango/pangocairo-context.c" | |
| 518 | + | line="182">Sets the resolution for the context. | |
| 519 | + | ||
| 520 | + | This is a scale factor between points specified in a `PangoFontDescription` | |
| 521 | + | and Cairo units. The default value is 96, meaning that a 10 point font will | |
| 522 | + | be 13 units high. (10 * 96. / 72. = 13.3).</doc> | |
| 523 | + | <source-position filename="../pango/pangocairo.h" line="148"/> | |
| 524 | + | <return-value transfer-ownership="none"> | |
| 525 | + | <type name="none" c:type="void"/> | |
| 526 | + | </return-value> | |
| 527 | + | <parameters> | |
| 528 | + | <parameter name="context" transfer-ownership="none"> | |
| 529 | + | <doc xml:space="preserve" | |
| 530 | + | filename="../pango/pangocairo-context.c" | |
| 531 | + | line="184">a `PangoContext`, from a pangocairo font map</doc> | |
| 532 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 533 | + | </parameter> | |
| 534 | + | <parameter name="dpi" transfer-ownership="none"> | |
| 535 | + | <doc xml:space="preserve" | |
| 536 | + | filename="../pango/pangocairo-context.c" | |
| 537 | + | line="185">the resolution in "dots per inch". (Physical inches aren't actually | |
| 538 | + | involved; the terminology is conventional.) A 0 or negative value | |
| 539 | + | means to use the resolution from the font map.</doc> | |
| 540 | + | <type name="gdouble" c:type="double"/> | |
| 541 | + | </parameter> | |
| 542 | + | </parameters> | |
| 543 | + | </function> | |
| 544 | + | <function name="context_set_shape_renderer" | |
| 545 | + | c:identifier="pango_cairo_context_set_shape_renderer" | |
| 546 | + | version="1.18"> | |
| 547 | + | <doc xml:space="preserve" | |
| 548 | + | filename="../pango/pangocairo-context.c" | |
| 549 | + | line="344">Sets callback function for context to use for rendering attributes | |
| 550 | + | of type %PANGO_ATTR_SHAPE. | |
| 551 | + | ||
| 552 | + | See `PangoCairoShapeRendererFunc` for details.</doc> | |
| 553 | + | <source-position filename="../pango/pangocairo.h" line="154"/> | |
| 554 | + | <return-value transfer-ownership="none"> | |
| 555 | + | <type name="none" c:type="void"/> | |
| 556 | + | </return-value> | |
| 557 | + | <parameters> | |
| 558 | + | <parameter name="context" transfer-ownership="none"> | |
| 559 | + | <doc xml:space="preserve" | |
| 560 | + | filename="../pango/pangocairo-context.c" | |
| 561 | + | line="346">a `PangoContext`, from a pangocairo font map</doc> | |
| 562 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 563 | + | </parameter> | |
| 564 | + | <parameter name="func" | |
| 565 | + | transfer-ownership="none" | |
| 566 | + | nullable="1" | |
| 567 | + | allow-none="1" | |
| 568 | + | scope="notified" | |
| 569 | + | closure="2" | |
| 570 | + | destroy="3"> | |
| 571 | + | <doc xml:space="preserve" | |
| 572 | + | filename="../pango/pangocairo-context.c" | |
| 573 | + | line="347">Callback function for rendering attributes of | |
| 574 | + | type %PANGO_ATTR_SHAPE, or %NULL to disable shape rendering.</doc> | |
| 575 | + | <type name="ShapeRendererFunc" c:type="PangoCairoShapeRendererFunc"/> | |
| 576 | + | </parameter> | |
| 577 | + | <parameter name="data" | |
| 578 | + | transfer-ownership="none" | |
| 579 | + | nullable="1" | |
| 580 | + | allow-none="1"> | |
| 581 | + | <doc xml:space="preserve" | |
| 582 | + | filename="../pango/pangocairo-context.c" | |
| 583 | + | line="349">User data that will be passed to @func.</doc> | |
| 584 | + | <type name="gpointer" c:type="gpointer"/> | |
| 585 | + | </parameter> | |
| 586 | + | <parameter name="dnotify" | |
| 587 | + | transfer-ownership="none" | |
| 588 | + | nullable="1" | |
| 589 | + | allow-none="1" | |
| 590 | + | scope="async"> | |
| 591 | + | <doc xml:space="preserve" | |
| 592 | + | filename="../pango/pangocairo-context.c" | |
| 593 | + | line="350">Callback that will be called when the | |
| 594 | + | context is freed to release @data</doc> | |
| 595 | + | <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> | |
| 596 | + | </parameter> | |
| 597 | + | </parameters> | |
| 598 | + | </function> | |
| 599 | + | <function name="create_context" | |
| 600 | + | c:identifier="pango_cairo_create_context" | |
| 601 | + | version="1.22"> | |
| 602 | + | <doc xml:space="preserve" | |
| 603 | + | filename="../pango/pangocairo-context.c" | |
| 604 | + | line="424">Creates a context object set up to match the current transformation | |
| 605 | + | and target surface of the Cairo context. | |
| 606 | + | ||
| 607 | + | This context can then be | |
| 608 | + | used to create a layout using [ctor@Pango.Layout.new]. | |
| 609 | + | ||
| 610 | + | This function is a convenience function that creates a context using | |
| 611 | + | the default font map, then updates it to @cr. If you just need to | |
| 612 | + | create a layout for use with @cr and do not need to access `PangoContext` | |
| 613 | + | directly, you can use [func@create_layout] instead.</doc> | |
| 614 | + | <source-position filename="../pango/pangocairo.h" line="165"/> | |
| 615 | + | <return-value transfer-ownership="full"> | |
| 616 | + | <doc xml:space="preserve" | |
| 617 | + | filename="../pango/pangocairo-context.c" | |
| 618 | + | line="439">the newly created `PangoContext`</doc> | |
| 619 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 620 | + | </return-value> | |
| 621 | + | <parameters> | |
| 622 | + | <parameter name="cr" transfer-ownership="none"> | |
| 623 | + | <doc xml:space="preserve" | |
| 624 | + | filename="../pango/pangocairo-context.c" | |
| 625 | + | line="426">a Cairo context</doc> | |
| 626 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 627 | + | </parameter> | |
| 628 | + | </parameters> | |
| 629 | + | </function> | |
| 630 | + | <function name="create_layout" | |
| 631 | + | c:identifier="pango_cairo_create_layout" | |
| 632 | + | version="1.10"> | |
| 633 | + | <doc xml:space="preserve" | |
| 634 | + | filename="../pango/pangocairo-context.c" | |
| 635 | + | line="458">Creates a layout object set up to match the current transformation | |
| 636 | + | and target surface of the Cairo context. | |
| 637 | + | ||
| 638 | + | This layout can then be used for text measurement with functions | |
| 639 | + | like [method@Pango.Layout.get_size] or drawing with functions like | |
| 640 | + | [func@show_layout]. If you change the transformation or target | |
| 641 | + | surface for @cr, you need to call [func@update_layout]. | |
| 642 | + | ||
| 643 | + | This function is the most convenient way to use Cairo with Pango, | |
| 644 | + | however it is slightly inefficient since it creates a separate | |
| 645 | + | `PangoContext` object for each layout. This might matter in an | |
| 646 | + | application that was laying out large amounts of text.</doc> | |
| 647 | + | <source-position filename="../pango/pangocairo.h" line="167"/> | |
| 648 | + | <return-value transfer-ownership="full"> | |
| 649 | + | <doc xml:space="preserve" | |
| 650 | + | filename="../pango/pangocairo-context.c" | |
| 651 | + | line="475">the newly created `PangoLayout`</doc> | |
| 652 | + | <type name="Pango.Layout" c:type="PangoLayout*"/> | |
| 653 | + | </return-value> | |
| 654 | + | <parameters> | |
| 655 | + | <parameter name="cr" transfer-ownership="none"> | |
| 656 | + | <doc xml:space="preserve" | |
| 657 | + | filename="../pango/pangocairo-context.c" | |
| 658 | + | line="460">a Cairo context</doc> | |
| 659 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 660 | + | </parameter> | |
| 661 | + | </parameters> | |
| 662 | + | </function> | |
| 663 | + | <function name="error_underline_path" | |
| 664 | + | c:identifier="pango_cairo_error_underline_path" | |
| 665 | + | version="1.14"> | |
| 666 | + | <doc xml:space="preserve" | |
| 667 | + | filename="../pango/pangocairo-render.c" | |
| 668 | + | line="1244">Add a squiggly line to the current path in the specified cairo context that | |
| 669 | + | approximately covers the given rectangle in the style of an underline used | |
| 670 | + | to indicate a spelling error. | |
| 671 | + | ||
| 672 | + | The width of the underline is rounded to an integer number of up/down | |
| 673 | + | segments and the resulting rectangle is centered in the original rectangle.</doc> | |
| 674 | + | <source-position filename="../pango/pangocairo.h" line="212"/> | |
| 675 | + | <return-value transfer-ownership="none"> | |
| 676 | + | <type name="none" c:type="void"/> | |
| 677 | + | </return-value> | |
| 678 | + | <parameters> | |
| 679 | + | <parameter name="cr" transfer-ownership="none"> | |
| 680 | + | <doc xml:space="preserve" | |
| 681 | + | filename="../pango/pangocairo-render.c" | |
| 682 | + | line="1246">a Cairo context</doc> | |
| 683 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 684 | + | </parameter> | |
| 685 | + | <parameter name="x" transfer-ownership="none"> | |
| 686 | + | <doc xml:space="preserve" | |
| 687 | + | filename="../pango/pangocairo-render.c" | |
| 688 | + | line="1247">The X coordinate of one corner of the rectangle</doc> | |
| 689 | + | <type name="gdouble" c:type="double"/> | |
| 690 | + | </parameter> | |
| 691 | + | <parameter name="y" transfer-ownership="none"> | |
| 692 | + | <doc xml:space="preserve" | |
| 693 | + | filename="../pango/pangocairo-render.c" | |
| 694 | + | line="1248">The Y coordinate of one corner of the rectangle</doc> | |
| 695 | + | <type name="gdouble" c:type="double"/> | |
| 696 | + | </parameter> | |
| 697 | + | <parameter name="width" transfer-ownership="none"> | |
| 698 | + | <doc xml:space="preserve" | |
| 699 | + | filename="../pango/pangocairo-render.c" | |
| 700 | + | line="1249">Non-negative width of the rectangle</doc> | |
| 701 | + | <type name="gdouble" c:type="double"/> | |
| 702 | + | </parameter> | |
| 703 | + | <parameter name="height" transfer-ownership="none"> | |
| 704 | + | <doc xml:space="preserve" | |
| 705 | + | filename="../pango/pangocairo-render.c" | |
| 706 | + | line="1250">Non-negative height of the rectangle</doc> | |
| 707 | + | <type name="gdouble" c:type="double"/> | |
| 708 | + | </parameter> | |
| 709 | + | </parameters> | |
| 710 | + | </function> | |
| 711 | + | <function name="font_map_get_default" | |
| 712 | + | c:identifier="pango_cairo_font_map_get_default" | |
| 713 | + | moved-to="FontMap.get_default" | |
| 714 | + | version="1.10"> | |
| 715 | + | <doc xml:space="preserve" | |
| 716 | + | filename="../pango/pangocairo-fontmap.c" | |
| 717 | + | line="151">Gets a default `PangoCairoFontMap` to use with Cairo. | |
| 718 | + | ||
| 719 | + | Note that the type of the returned object will depend on the | |
| 720 | + | particular font backend Cairo was compiled to use; you generally | |
| 721 | + | should only use the `PangoFontMap` and `PangoCairoFontMap` | |
| 722 | + | interfaces on the returned object. | |
| 723 | + | ||
| 724 | + | The default Cairo fontmap can be changed by using | |
| 725 | + | [method@PangoCairo.FontMap.set_default]. This can be used to | |
| 726 | + | change the Cairo font backend that the default fontmap uses | |
| 727 | + | for example. | |
| 728 | + | ||
| 729 | + | Note that since Pango 1.32.6, the default fontmap is per-thread. | |
| 730 | + | Each thread gets its own default fontmap. In this way, PangoCairo | |
| 731 | + | can be used safely from multiple threads.</doc> | |
| 732 | + | <source-position filename="../pango/pangocairo.h" line="110"/> | |
| 733 | + | <return-value transfer-ownership="none"> | |
| 734 | + | <doc xml:space="preserve" | |
| 735 | + | filename="../pango/pangocairo-fontmap.c" | |
| 736 | + | line="170">the default PangoCairo fontmap | |
| 737 | + | for the current thread. This object is owned by Pango and must | |
| 738 | + | not be freed.</doc> | |
| 739 | + | <type name="Pango.FontMap" c:type="PangoFontMap*"/> | |
| 740 | + | </return-value> | |
| 741 | + | </function> | |
| 742 | + | <function name="font_map_new" | |
| 743 | + | c:identifier="pango_cairo_font_map_new" | |
| 744 | + | moved-to="FontMap.new" | |
| 745 | + | version="1.10"> | |
| 746 | + | <doc xml:space="preserve" | |
| 747 | + | filename="../pango/pangocairo-fontmap.c" | |
| 748 | + | line="47">Creates a new `PangoCairoFontMap` object. | |
| 749 | + | ||
| 750 | + | A fontmap is used to cache information about available fonts, | |
| 751 | + | and holds certain global parameters such as the resolution. | |
| 752 | + | In most cases, you can use `func@PangoCairo.font_map_get_default] | |
| 753 | + | instead. | |
| 754 | + | ||
| 755 | + | Note that the type of the returned object will depend | |
| 756 | + | on the particular font backend Cairo was compiled to use; | |
| 757 | + | You generally should only use the `PangoFontMap` and | |
| 758 | + | `PangoCairoFontMap` interfaces on the returned object. | |
| 759 | + | ||
| 760 | + | You can override the type of backend returned by using an | |
| 761 | + | environment variable %PANGOCAIRO_BACKEND. Supported types, | |
| 762 | + | based on your build, are fc (fontconfig), win32, and coretext. | |
| 763 | + | If requested type is not available, NULL is returned. Ie. | |
| 764 | + | this is only useful for testing, when at least two backends | |
| 765 | + | are compiled in.</doc> | |
| 766 | + | <source-position filename="../pango/pangocairo.h" line="106"/> | |
| 767 | + | <return-value transfer-ownership="full"> | |
| 768 | + | <doc xml:space="preserve" | |
| 769 | + | filename="../pango/pangocairo-fontmap.c" | |
| 770 | + | line="69">the newly allocated `PangoFontMap`, | |
| 771 | + | which should be freed with g_object_unref().</doc> | |
| 772 | + | <type name="Pango.FontMap" c:type="PangoFontMap*"/> | |
| 773 | + | </return-value> | |
| 774 | + | </function> | |
| 775 | + | <function name="font_map_new_for_font_type" | |
| 776 | + | c:identifier="pango_cairo_font_map_new_for_font_type" | |
| 777 | + | moved-to="FontMap.new_for_font_type" | |
| 778 | + | version="1.18"> | |
| 779 | + | <doc xml:space="preserve" | |
| 780 | + | filename="../pango/pangocairo-fontmap.c" | |
| 781 | + | line="110">Creates a new `PangoCairoFontMap` object of the type suitable | |
| 782 | + | to be used with cairo font backend of type @fonttype. | |
| 783 | + | ||
| 784 | + | In most cases one should simply use [func@PangoCairo.FontMap.new], or | |
| 785 | + | in fact in most of those cases, just use [func@PangoCairo.FontMap.get_default].</doc> | |
| 786 | + | <source-position filename="../pango/pangocairo.h" line="108"/> | |
| 787 | + | <return-value transfer-ownership="full" nullable="1"> | |
| 788 | + | <doc xml:space="preserve" | |
| 789 | + | filename="../pango/pangocairo-fontmap.c" | |
| 790 | + | line="120">the newly allocated | |
| 791 | + | `PangoFontMap` of suitable type which should be freed with | |
| 792 | + | g_object_unref(), or %NULL if the requested cairo font backend | |
| 793 | + | is not supported / compiled in.</doc> | |
| 794 | + | <type name="Pango.FontMap" c:type="PangoFontMap*"/> | |
| 795 | + | </return-value> | |
| 796 | + | <parameters> | |
| 797 | + | <parameter name="fonttype" transfer-ownership="none"> | |
| 798 | + | <doc xml:space="preserve" | |
| 799 | + | filename="../pango/pangocairo-fontmap.c" | |
| 800 | + | line="112">desired #cairo_font_type_t</doc> | |
| 801 | + | <type name="cairo.FontType" c:type="cairo_font_type_t"/> | |
| 802 | + | </parameter> | |
| 803 | + | </parameters> | |
| 804 | + | </function> | |
| 805 | + | <function name="glyph_string_path" | |
| 806 | + | c:identifier="pango_cairo_glyph_string_path" | |
| 807 | + | version="1.10"> | |
| 808 | + | <doc xml:space="preserve" | |
| 809 | + | filename="../pango/pangocairo-render.c" | |
| 810 | + | line="1173">Adds the glyphs in @glyphs to the current path in the specified | |
| 811 | + | cairo context. | |
| 812 | + | ||
| 813 | + | The origin of the glyphs (the left edge of the baseline) | |
| 814 | + | will be at the current point of the cairo context.</doc> | |
| 815 | + | <source-position filename="../pango/pangocairo.h" line="201"/> | |
| 816 | + | <return-value transfer-ownership="none"> | |
| 817 | + | <type name="none" c:type="void"/> | |
| 818 | + | </return-value> | |
| 819 | + | <parameters> | |
| 820 | + | <parameter name="cr" transfer-ownership="none"> | |
| 821 | + | <doc xml:space="preserve" | |
| 822 | + | filename="../pango/pangocairo-render.c" | |
| 823 | + | line="1175">a Cairo context</doc> | |
| 824 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 825 | + | </parameter> | |
| 826 | + | <parameter name="font" transfer-ownership="none"> | |
| 827 | + | <doc xml:space="preserve" | |
| 828 | + | filename="../pango/pangocairo-render.c" | |
| 829 | + | line="1176">a `PangoFont` from a `PangoCairoFontMap`</doc> | |
| 830 | + | <type name="Pango.Font" c:type="PangoFont*"/> | |
| 831 | + | </parameter> | |
| 832 | + | <parameter name="glyphs" transfer-ownership="none"> | |
| 833 | + | <doc xml:space="preserve" | |
| 834 | + | filename="../pango/pangocairo-render.c" | |
| 835 | + | line="1177">a `PangoGlyphString`</doc> | |
| 836 | + | <type name="Pango.GlyphString" c:type="PangoGlyphString*"/> | |
| 837 | + | </parameter> | |
| 838 | + | </parameters> | |
| 839 | + | </function> | |
| 840 | + | <function name="layout_line_path" | |
| 841 | + | c:identifier="pango_cairo_layout_line_path" | |
| 842 | + | version="1.10"> | |
| 843 | + | <doc xml:space="preserve" | |
| 844 | + | filename="../pango/pangocairo-render.c" | |
| 845 | + | line="1198">Adds the text in `PangoLayoutLine` to the current path in the | |
| 846 | + | specified cairo context. | |
| 847 | + | ||
| 848 | + | The origin of the glyphs (the left edge of the line) will be | |
| 849 | + | at the current point of the cairo context.</doc> | |
| 850 | + | <source-position filename="../pango/pangocairo.h" line="205"/> | |
| 851 | + | <return-value transfer-ownership="none"> | |
| 852 | + | <type name="none" c:type="void"/> | |
| 853 | + | </return-value> | |
| 854 | + | <parameters> | |
| 855 | + | <parameter name="cr" transfer-ownership="none"> | |
| 856 | + | <doc xml:space="preserve" | |
| 857 | + | filename="../pango/pangocairo-render.c" | |
| 858 | + | line="1200">a Cairo context</doc> | |
| 859 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 860 | + | </parameter> | |
| 861 | + | <parameter name="line" transfer-ownership="none"> | |
| 862 | + | <doc xml:space="preserve" | |
| 863 | + | filename="../pango/pangocairo-render.c" | |
| 864 | + | line="1201">a `PangoLayoutLine`</doc> | |
| 865 | + | <type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/> | |
| 866 | + | </parameter> | |
| 867 | + | </parameters> | |
| 868 | + | </function> | |
| 869 | + | <function name="layout_path" | |
| 870 | + | c:identifier="pango_cairo_layout_path" | |
| 871 | + | version="1.10"> | |
| 872 | + | <doc xml:space="preserve" | |
| 873 | + | filename="../pango/pangocairo-render.c" | |
| 874 | + | line="1221">Adds the text in a `PangoLayout` to the current path in the | |
| 875 | + | specified cairo context. | |
| 876 | + | ||
| 877 | + | The top-left corner of the `PangoLayout` will be at the | |
| 878 | + | current point of the cairo context.</doc> | |
| 879 | + | <source-position filename="../pango/pangocairo.h" line="208"/> | |
| 880 | + | <return-value transfer-ownership="none"> | |
| 881 | + | <type name="none" c:type="void"/> | |
| 882 | + | </return-value> | |
| 883 | + | <parameters> | |
| 884 | + | <parameter name="cr" transfer-ownership="none"> | |
| 885 | + | <doc xml:space="preserve" | |
| 886 | + | filename="../pango/pangocairo-render.c" | |
| 887 | + | line="1223">a Cairo context</doc> | |
| 888 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 889 | + | </parameter> | |
| 890 | + | <parameter name="layout" transfer-ownership="none"> | |
| 891 | + | <doc xml:space="preserve" | |
| 892 | + | filename="../pango/pangocairo-render.c" | |
| 893 | + | line="1224">a Pango layout</doc> | |
| 894 | + | <type name="Pango.Layout" c:type="PangoLayout*"/> | |
| 895 | + | </parameter> | |
| 896 | + | </parameters> | |
| 897 | + | </function> | |
| 898 | + | <function name="show_error_underline" | |
| 899 | + | c:identifier="pango_cairo_show_error_underline" | |
| 900 | + | version="1.14"> | |
| 901 | + | <doc xml:space="preserve" | |
| 902 | + | filename="../pango/pangocairo-render.c" | |
| 903 | + | line="1142">Draw a squiggly line in the specified cairo context that approximately | |
| 904 | + | covers the given rectangle in the style of an underline used to indicate a | |
| 905 | + | spelling error. | |
| 906 | + | ||
| 907 | + | The width of the underline is rounded to an integer | |
| 908 | + | number of up/down segments and the resulting rectangle is centered in the | |
| 909 | + | original rectangle.</doc> | |
| 910 | + | <source-position filename="../pango/pangocairo.h" line="191"/> | |
| 911 | + | <return-value transfer-ownership="none"> | |
| 912 | + | <type name="none" c:type="void"/> | |
| 913 | + | </return-value> | |
| 914 | + | <parameters> | |
| 915 | + | <parameter name="cr" transfer-ownership="none"> | |
| 916 | + | <doc xml:space="preserve" | |
| 917 | + | filename="../pango/pangocairo-render.c" | |
| 918 | + | line="1144">a Cairo context</doc> | |
| 919 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 920 | + | </parameter> | |
| 921 | + | <parameter name="x" transfer-ownership="none"> | |
| 922 | + | <doc xml:space="preserve" | |
| 923 | + | filename="../pango/pangocairo-render.c" | |
| 924 | + | line="1145">The X coordinate of one corner of the rectangle</doc> | |
| 925 | + | <type name="gdouble" c:type="double"/> | |
| 926 | + | </parameter> | |
| 927 | + | <parameter name="y" transfer-ownership="none"> | |
| 928 | + | <doc xml:space="preserve" | |
| 929 | + | filename="../pango/pangocairo-render.c" | |
| 930 | + | line="1146">The Y coordinate of one corner of the rectangle</doc> | |
| 931 | + | <type name="gdouble" c:type="double"/> | |
| 932 | + | </parameter> | |
| 933 | + | <parameter name="width" transfer-ownership="none"> | |
| 934 | + | <doc xml:space="preserve" | |
| 935 | + | filename="../pango/pangocairo-render.c" | |
| 936 | + | line="1147">Non-negative width of the rectangle</doc> | |
| 937 | + | <type name="gdouble" c:type="double"/> | |
| 938 | + | </parameter> | |
| 939 | + | <parameter name="height" transfer-ownership="none"> | |
| 940 | + | <doc xml:space="preserve" | |
| 941 | + | filename="../pango/pangocairo-render.c" | |
| 942 | + | line="1148">Non-negative height of the rectangle</doc> | |
| 943 | + | <type name="gdouble" c:type="double"/> | |
| 944 | + | </parameter> | |
| 945 | + | </parameters> | |
| 946 | + | </function> | |
| 947 | + | <function name="show_glyph_item" | |
| 948 | + | c:identifier="pango_cairo_show_glyph_item" | |
| 949 | + | version="1.22"> | |
| 950 | + | <doc xml:space="preserve" | |
| 951 | + | filename="../pango/pangocairo-render.c" | |
| 952 | + | line="1066">Draws the glyphs in @glyph_item in the specified cairo context, | |
| 953 | + | ||
| 954 | + | embedding the text associated with the glyphs in the output if the | |
| 955 | + | output format supports it (PDF for example), otherwise it acts | |
| 956 | + | similar to [func@show_glyph_string]. | |
| 957 | + | ||
| 958 | + | The origin of the glyphs (the left edge of the baseline) will | |
| 959 | + | be drawn at the current point of the cairo context. | |
| 960 | + | ||
| 961 | + | Note that @text is the start of the text for layout, which is then | |
| 962 | + | indexed by `glyph_item->item->offset`.</doc> | |
| 963 | + | <source-position filename="../pango/pangocairo.h" line="180"/> | |
| 964 | + | <return-value transfer-ownership="none"> | |
| 965 | + | <type name="none" c:type="void"/> | |
| 966 | + | </return-value> | |
| 967 | + | <parameters> | |
| 968 | + | <parameter name="cr" transfer-ownership="none"> | |
| 969 | + | <doc xml:space="preserve" | |
| 970 | + | filename="../pango/pangocairo-render.c" | |
| 971 | + | line="1068">a Cairo context</doc> | |
| 972 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 973 | + | </parameter> | |
| 974 | + | <parameter name="text" transfer-ownership="none"> | |
| 975 | + | <doc xml:space="preserve" | |
| 976 | + | filename="../pango/pangocairo-render.c" | |
| 977 | + | line="1069">the UTF-8 text that @glyph_item refers to</doc> | |
| 978 | + | <type name="utf8" c:type="const char*"/> | |
| 979 | + | </parameter> | |
| 980 | + | <parameter name="glyph_item" transfer-ownership="none"> | |
| 981 | + | <doc xml:space="preserve" | |
| 982 | + | filename="../pango/pangocairo-render.c" | |
| 983 | + | line="1070">a `PangoGlyphItem`</doc> | |
| 984 | + | <type name="Pango.GlyphItem" c:type="PangoGlyphItem*"/> | |
| 985 | + | </parameter> | |
| 986 | + | </parameters> | |
| 987 | + | </function> | |
| 988 | + | <function name="show_glyph_string" | |
| 989 | + | c:identifier="pango_cairo_show_glyph_string" | |
| 990 | + | version="1.10"> | |
| 991 | + | <doc xml:space="preserve" | |
| 992 | + | filename="../pango/pangocairo-render.c" | |
| 993 | + | line="1041">Draws the glyphs in @glyphs in the specified cairo context. | |
| 994 | + | ||
| 995 | + | The origin of the glyphs (the left edge of the baseline) will | |
| 996 | + | be drawn at the current point of the cairo context.</doc> | |
| 997 | + | <source-position filename="../pango/pangocairo.h" line="176"/> | |
| 998 | + | <return-value transfer-ownership="none"> | |
| 999 | + | <type name="none" c:type="void"/> | |
| 1000 | + | </return-value> | |
| 1001 | + | <parameters> | |
| 1002 | + | <parameter name="cr" transfer-ownership="none"> | |
| 1003 | + | <doc xml:space="preserve" | |
| 1004 | + | filename="../pango/pangocairo-render.c" | |
| 1005 | + | line="1043">a Cairo context</doc> | |
| 1006 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 1007 | + | </parameter> | |
| 1008 | + | <parameter name="font" transfer-ownership="none"> | |
| 1009 | + | <doc xml:space="preserve" | |
| 1010 | + | filename="../pango/pangocairo-render.c" | |
| 1011 | + | line="1044">a `PangoFont` from a `PangoCairoFontMap`</doc> | |
| 1012 | + | <type name="Pango.Font" c:type="PangoFont*"/> | |
| 1013 | + | </parameter> | |
| 1014 | + | <parameter name="glyphs" transfer-ownership="none"> | |
| 1015 | + | <doc xml:space="preserve" | |
| 1016 | + | filename="../pango/pangocairo-render.c" | |
| 1017 | + | line="1045">a `PangoGlyphString`</doc> | |
| 1018 | + | <type name="Pango.GlyphString" c:type="PangoGlyphString*"/> | |
| 1019 | + | </parameter> | |
| 1020 | + | </parameters> | |
| 1021 | + | </function> | |
| 1022 | + | <function name="show_layout" | |
| 1023 | + | c:identifier="pango_cairo_show_layout" | |
| 1024 | + | version="1.10"> | |
| 1025 | + | <doc xml:space="preserve" | |
| 1026 | + | filename="../pango/pangocairo-render.c" | |
| 1027 | + | line="1120">Draws a `PangoLayout` in the specified cairo context. | |
| 1028 | + | ||
| 1029 | + | The top-left corner of the `PangoLayout` will be drawn | |
| 1030 | + | at the current point of the cairo context.</doc> | |
| 1031 | + | <source-position filename="../pango/pangocairo.h" line="187"/> | |
| 1032 | + | <return-value transfer-ownership="none"> | |
| 1033 | + | <type name="none" c:type="void"/> | |
| 1034 | + | </return-value> | |
| 1035 | + | <parameters> | |
| 1036 | + | <parameter name="cr" transfer-ownership="none"> | |
| 1037 | + | <doc xml:space="preserve" | |
| 1038 | + | filename="../pango/pangocairo-render.c" | |
| 1039 | + | line="1122">a Cairo context</doc> | |
| 1040 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 1041 | + | </parameter> | |
| 1042 | + | <parameter name="layout" transfer-ownership="none"> | |
| 1043 | + | <doc xml:space="preserve" | |
| 1044 | + | filename="../pango/pangocairo-render.c" | |
| 1045 | + | line="1123">a Pango layout</doc> | |
| 1046 | + | <type name="Pango.Layout" c:type="PangoLayout*"/> | |
| 1047 | + | </parameter> | |
| 1048 | + | </parameters> | |
| 1049 | + | </function> | |
| 1050 | + | <function name="show_layout_line" | |
| 1051 | + | c:identifier="pango_cairo_show_layout_line" | |
| 1052 | + | version="1.10"> | |
| 1053 | + | <doc xml:space="preserve" | |
| 1054 | + | filename="../pango/pangocairo-render.c" | |
| 1055 | + | line="1098">Draws a `PangoLayoutLine` in the specified cairo context. | |
| 1056 | + | ||
| 1057 | + | The origin of the glyphs (the left edge of the line) will | |
| 1058 | + | be drawn at the current point of the cairo context.</doc> | |
| 1059 | + | <source-position filename="../pango/pangocairo.h" line="184"/> | |
| 1060 | + | <return-value transfer-ownership="none"> | |
| 1061 | + | <type name="none" c:type="void"/> | |
| 1062 | + | </return-value> | |
| 1063 | + | <parameters> | |
| 1064 | + | <parameter name="cr" transfer-ownership="none"> | |
| 1065 | + | <doc xml:space="preserve" | |
| 1066 | + | filename="../pango/pangocairo-render.c" | |
| 1067 | + | line="1100">a Cairo context</doc> | |
| 1068 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 1069 | + | </parameter> | |
| 1070 | + | <parameter name="line" transfer-ownership="none"> | |
| 1071 | + | <doc xml:space="preserve" | |
| 1072 | + | filename="../pango/pangocairo-render.c" | |
| 1073 | + | line="1101">a `PangoLayoutLine`</doc> | |
| 1074 | + | <type name="Pango.LayoutLine" c:type="PangoLayoutLine*"/> | |
| 1075 | + | </parameter> | |
| 1076 | + | </parameters> | |
| 1077 | + | </function> | |
| 1078 | + | <function name="update_context" | |
| 1079 | + | c:identifier="pango_cairo_update_context" | |
| 1080 | + | version="1.10"> | |
| 1081 | + | <doc xml:space="preserve" | |
| 1082 | + | filename="../pango/pangocairo-context.c" | |
| 1083 | + | line="158">Updates a `PangoContext` previously created for use with Cairo to | |
| 1084 | + | match the current transformation and target surface of a Cairo | |
| 1085 | + | context. | |
| 1086 | + | ||
| 1087 | + | If any layouts have been created for the context, it's necessary | |
| 1088 | + | to call [method@Pango.Layout.context_changed] on those layouts.</doc> | |
| 1089 | + | <source-position filename="../pango/pangocairo.h" line="138"/> | |
| 1090 | + | <return-value transfer-ownership="none"> | |
| 1091 | + | <type name="none" c:type="void"/> | |
| 1092 | + | </return-value> | |
| 1093 | + | <parameters> | |
| 1094 | + | <parameter name="cr" transfer-ownership="none"> | |
| 1095 | + | <doc xml:space="preserve" | |
| 1096 | + | filename="../pango/pangocairo-context.c" | |
| 1097 | + | line="160">a Cairo context</doc> | |
| 1098 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 1099 | + | </parameter> | |
| 1100 | + | <parameter name="context" transfer-ownership="none"> | |
| 1101 | + | <doc xml:space="preserve" | |
| 1102 | + | filename="../pango/pangocairo-context.c" | |
| 1103 | + | line="161">a `PangoContext`, from a pangocairo font map</doc> | |
| 1104 | + | <type name="Pango.Context" c:type="PangoContext*"/> | |
| 1105 | + | </parameter> | |
| 1106 | + | </parameters> | |
| 1107 | + | </function> | |
| 1108 | + | <function name="update_layout" | |
| 1109 | + | c:identifier="pango_cairo_update_layout" | |
| 1110 | + | version="1.10"> | |
| 1111 | + | <doc xml:space="preserve" | |
| 1112 | + | filename="../pango/pangocairo-context.c" | |
| 1113 | + | line="494">Updates the private `PangoContext` of a `PangoLayout` created with | |
| 1114 | + | [func@create_layout] to match the current transformation and target | |
| 1115 | + | surface of a Cairo context.</doc> | |
| 1116 | + | <source-position filename="../pango/pangocairo.h" line="169"/> | |
| 1117 | + | <return-value transfer-ownership="none"> | |
| 1118 | + | <type name="none" c:type="void"/> | |
| 1119 | + | </return-value> | |
| 1120 | + | <parameters> | |
| 1121 | + | <parameter name="cr" transfer-ownership="none"> | |
| 1122 | + | <doc xml:space="preserve" | |
| 1123 | + | filename="../pango/pangocairo-context.c" | |
| 1124 | + | line="496">a Cairo context</doc> | |
| 1125 | + | <type name="cairo.Context" c:type="cairo_t*"/> | |
| 1126 | + | </parameter> | |
| 1127 | + | <parameter name="layout" transfer-ownership="none"> | |
| 1128 | + | <doc xml:space="preserve" | |
| 1129 | + | filename="../pango/pangocairo-context.c" | |
| 1130 | + | line="497">a `PangoLayout`, from [func@create_layout]</doc> | |
| 1131 | + | <type name="Pango.Layout" c:type="PangoLayout*"/> | |
| 1132 | + | </parameter> | |
| 1133 | + | </parameters> | |
| 1134 | + | </function> | |
| 1135 | + | </namespace> | |
| 1136 | + | </repository> | |
A internal/gir/spec/cairo-1.0.gir +688 -0
| @@ -0,0 +1,688 @@ | |||
| 1 | + | <?xml version="1.0"?> | |
| 2 | + | <repository version="1.2" | |
| 3 | + | xmlns="http://www.gtk.org/introspection/core/1.0" | |
| 4 | + | xmlns:c="http://www.gtk.org/introspection/c/1.0" | |
| 5 | + | xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> | |
| 6 | + | <package name="cairo-gobject"/> | |
| 7 | + | <c:include name="cairo-gobject.h"/> | |
| 8 | + | <namespace name="cairo" version="1.0" | |
| 9 | + | shared-library="libcairo-gobject.so.2" | |
| 10 | + | c:identifier-prefixes="cairo" | |
| 11 | + | c:symbol-prefixes="cairo"> | |
| 12 | + | <record name="Context" c:type="cairo_t" foreign="1" | |
| 13 | + | glib:type-name="CairoContext" | |
| 14 | + | glib:get-type="cairo_gobject_context_get_type"/> | |
| 15 | + | <record name="Device" c:type="cairo_device_t" foreign="1" | |
| 16 | + | glib:type-name="CairoDevice" | |
| 17 | + | glib:get-type="cairo_gobject_device_get_type"/> | |
| 18 | + | <record name="Surface" c:type="cairo_surface_t" foreign="1" | |
| 19 | + | glib:type-name="CairoSurface" | |
| 20 | + | glib:get-type="cairo_gobject_surface_get_type"/> | |
| 21 | + | <record name="Matrix" c:type="cairo_matrix_t" foreign="1"/> | |
| 22 | + | <record name="Pattern" c:type="cairo_pattern_t" foreign="1" | |
| 23 | + | glib:type-name="CairoPattern" | |
| 24 | + | glib:get-type="cairo_gobject_pattern_get_type"/> | |
| 25 | + | <record name="Region" c:type="cairo_region_t" foreign="1" | |
| 26 | + | glib:type-name="CairoRegion" | |
| 27 | + | glib:get-type="cairo_gobject_region_get_type"/> | |
| 28 | + | <enumeration name="Status" c:type="cairo_status_t" | |
| 29 | + | glib:type-name="cairo_status_t" | |
| 30 | + | glib:get-type="cairo_gobject_status_get_type"> | |
| 31 | + | <member name="success" | |
| 32 | + | value="0" | |
| 33 | + | c:identifier="CAIRO_STATUS_SUCCESS"/> | |
| 34 | + | <member name="no_memory" | |
| 35 | + | value="1" | |
| 36 | + | c:identifier="CAIRO_STATUS_NO_MEMORY"/> | |
| 37 | + | <member name="invalid_restore" | |
| 38 | + | value="2" | |
| 39 | + | c:identifier="CAIRO_STATUS_INVALID_RESTORE"/> | |
| 40 | + | <member name="invalid_pop_group" | |
| 41 | + | value="3" | |
| 42 | + | c:identifier="CAIRO_STATUS_INVALID_POP_GROUP"/> | |
| 43 | + | <member name="no_current_point" | |
| 44 | + | value="4" | |
| 45 | + | c:identifier="CAIRO_STATUS_NO_CURRENT_POINT"/> | |
| 46 | + | <member name="invalid_matrix" | |
| 47 | + | value="5" | |
| 48 | + | c:identifier="CAIRO_STATUS_INVALID_MATRIX"/> | |
| 49 | + | <member name="invalid_status" | |
| 50 | + | value="6" | |
| 51 | + | c:identifier="CAIRO_STATUS_INVALID_STATUS"/> | |
| 52 | + | <member name="null_pointer" | |
| 53 | + | value="7" | |
| 54 | + | c:identifier="CAIRO_STATUS_NULL_POINTER"/> | |
| 55 | + | <member name="invalid_string" | |
| 56 | + | value="8" | |
| 57 | + | c:identifier="CAIRO_STATUS_INVALID_STRING"/> | |
| 58 | + | <member name="invalid_path_data" | |
| 59 | + | value="9" | |
| 60 | + | c:identifier="CAIRO_STATUS_INVALID_PATH_DATA"/> | |
| 61 | + | <member name="read_error" | |
| 62 | + | value="10" | |
| 63 | + | c:identifier="CAIRO_STATUS_READ_ERROR"/> | |
| 64 | + | <member name="write_error" | |
| 65 | + | value="11" | |
| 66 | + | c:identifier="CAIRO_STATUS_WRITE_ERROR"/> | |
| 67 | + | <member name="surface_finished" | |
| 68 | + | value="12" | |
| 69 | + | c:identifier="CAIRO_STATUS_SURFACE_FINISHED"/> | |
| 70 | + | <member name="surface_type_mismatch" | |
| 71 | + | value="13" | |
| 72 | + | c:identifier="CAIRO_STATUS_SURFACE_TYPE_MISMATCH"/> | |
| 73 | + | <member name="pattern_type_mismatch" | |
| 74 | + | value="14" | |
| 75 | + | c:identifier="CAIRO_STATUS_PATTERN_TYPE_MISMATCH"/> | |
| 76 | + | <member name="invalid_content" | |
| 77 | + | value="15" | |
| 78 | + | c:identifier="CAIRO_STATUS_INVALID_CONTENT"/> | |
| 79 | + | <member name="invalid_format" | |
| 80 | + | value="16" | |
| 81 | + | c:identifier="CAIRO_STATUS_INVALID_FORMAT"/> | |
| 82 | + | <member name="invalid_visual" | |
| 83 | + | value="17" | |
| 84 | + | c:identifier="CAIRO_STATUS_INVALID_VISUAL"/> | |
| 85 | + | <member name="file_not_found" | |
| 86 | + | value="18" | |
| 87 | + | c:identifier="CAIRO_STATUS_FILE_NOT_FOUND"/> | |
| 88 | + | <member name="invalid_dash" | |
| 89 | + | value="19" | |
| 90 | + | c:identifier="CAIRO_STATUS_INVALID_DASH"/> | |
| 91 | + | <member name="invalid_dsc_comment" | |
| 92 | + | value="20" | |
| 93 | + | c:identifier="CAIRO_STATUS_INVALID_DSC_COMMENT"/> | |
| 94 | + | <member name="invalid_index" | |
| 95 | + | value="21" | |
| 96 | + | c:identifier="CAIRO_STATUS_INVALID_INDEX"/> | |
| 97 | + | <member name="clip_not_representable" | |
| 98 | + | value="22" | |
| 99 | + | c:identifier="CAIRO_STATUS_CLIP_NOT_REPRESENTABLE"/> | |
| 100 | + | <member name="temp_file_error" | |
| 101 | + | value="23" | |
| 102 | + | c:identifier="CAIRO_STATUS_TEMP_FILE_ERROR"/> | |
| 103 | + | <member name="invalid_stride" | |
| 104 | + | value="24" | |
| 105 | + | c:identifier="CAIRO_STATUS_INVALID_STRIDE"/> | |
| 106 | + | <member name="font_type_mismatch" | |
| 107 | + | value="25" | |
| 108 | + | c:identifier="CAIRO_STATUS_FONT_TYPE_MISMATCH"/> | |
| 109 | + | <member name="user_font_immutable" | |
| 110 | + | value="26" | |
| 111 | + | c:identifier="CAIRO_STATUS_USER_FONT_IMMUTABLE"/> | |
| 112 | + | <member name="user_font_error" | |
| 113 | + | value="27" | |
| 114 | + | c:identifier="CAIRO_STATUS_USER_FONT_ERROR"/> | |
| 115 | + | <member name="negative_count" | |
| 116 | + | value="28" | |
| 117 | + | c:identifier="CAIRO_STATUS_NEGATIVE_COUNT"/> | |
| 118 | + | <member name="invalid_clusters" | |
| 119 | + | value="29" | |
| 120 | + | c:identifier="CAIRO_STATUS_INVALID_CLUSTERS"/> | |
| 121 | + | <member name="invalid_slant" | |
| 122 | + | value="30" | |
| 123 | + | c:identifier="CAIRO_STATUS_INVALID_SLANT"/> | |
| 124 | + | <member name="invalid_weight" | |
| 125 | + | value="31" | |
| 126 | + | c:identifier="CAIRO_STATUS_INVALID_WEIGHT"/> | |
| 127 | + | <member name="invalid_size" | |
| 128 | + | value="32" | |
| 129 | + | c:identifier="CAIRO_STATUS_INVALID_SIZE"/> | |
| 130 | + | <member name="user_font_not_implemented" | |
| 131 | + | value="33" | |
| 132 | + | c:identifier="CAIRO_STATUS_USER_FONT_NOT_IMPLEMENTED"/> | |
| 133 | + | <member name="device_type_mismatch" | |
| 134 | + | value="34" | |
| 135 | + | c:identifier="CAIRO_STATUS_DEVICE_TYPE_MISMATCH"/> | |
| 136 | + | <member name="device_error" | |
| 137 | + | value="35" | |
| 138 | + | c:identifier="CAIRO_STATUS_DEVICE_ERROR"/> | |
| 139 | + | <member name="invalid_mesh_construction" | |
| 140 | + | value="36" | |
| 141 | + | c:identifier="CAIRO_STATUS_INVALID_MESH_CONSTRUCTION"/> | |
| 142 | + | <member name="device_finished" | |
| 143 | + | value="37" | |
| 144 | + | c:identifier="CAIRO_STATUS_DEVICE_FINISHED"/> | |
| 145 | + | <member name="jbig2_global_missing" | |
| 146 | + | value="38" | |
| 147 | + | c:identifier="CAIRO_STATUS_JBIG2_GLOBAL_MISSING"/> | |
| 148 | + | </enumeration> | |
| 149 | + | <enumeration name="Content" c:type="cairo_content_t" | |
| 150 | + | glib:type-name="cairo_content_t" | |
| 151 | + | glib:get-type="cairo_gobject_content_get_type"> | |
| 152 | + | <member name="color" | |
| 153 | + | value="4096" | |
| 154 | + | c:identifier="CAIRO_CONTENT_COLOR"/> | |
| 155 | + | <member name="alpha" | |
| 156 | + | value="8192" | |
| 157 | + | c:identifier="CAIRO_CONTENT_ALPHA"/> | |
| 158 | + | <member name="color_alpha" | |
| 159 | + | value="12288" | |
| 160 | + | c:identifier="CAIRO_CONTENT_COLOR_ALPHA"/> | |
| 161 | + | </enumeration> | |
| 162 | + | <enumeration name="Operator" c:type="cairo_operator_t" | |
| 163 | + | glib:type-name="cairo_operator_t" | |
| 164 | + | glib:get-type="cairo_gobject_operator_get_type"> | |
| 165 | + | <member name="clear" | |
| 166 | + | value="0" | |
| 167 | + | c:identifier="CAIRO_OPERATOR_CLEAR"/> | |
| 168 | + | <member name="source" | |
| 169 | + | value="1" | |
| 170 | + | c:identifier="CAIRO_OPERATOR_SOURCE"/> | |
| 171 | + | <member name="over" | |
| 172 | + | value="2" | |
| 173 | + | c:identifier="CAIRO_OPERATOR_OVER"/> | |
| 174 | + | <member name="in" | |
| 175 | + | value="3" | |
| 176 | + | c:identifier="CAIRO_OPERATOR_IN"/> | |
| 177 | + | <member name="out" | |
| 178 | + | value="4" | |
| 179 | + | c:identifier="CAIRO_OPERATOR_OUT"/> | |
| 180 | + | <member name="atop" | |
| 181 | + | value="5" | |
| 182 | + | c:identifier="CAIRO_OPERATOR_ATOP"/> | |
| 183 | + | <member name="dest" | |
| 184 | + | value="6" | |
| 185 | + | c:identifier="CAIRO_OPERATOR_DEST"/> | |
| 186 | + | <member name="dest_over" | |
| 187 | + | value="7" | |
| 188 | + | c:identifier="CAIRO_OPERATOR_DEST_OVER"/> | |
| 189 | + | <member name="dest_in" | |
| 190 | + | value="8" | |
| 191 | + | c:identifier="CAIRO_OPERATOR_DEST_IN"/> | |
| 192 | + | <member name="dest_out" | |
| 193 | + | value="9" | |
| 194 | + | c:identifier="CAIRO_OPERATOR_DEST_OUT"/> | |
| 195 | + | <member name="dest_atop" | |
| 196 | + | value="10" | |
| 197 | + | c:identifier="CAIRO_OPERATOR_DEST_ATOP"/> | |
| 198 | + | <member name="xor" | |
| 199 | + | value="11" | |
| 200 | + | c:identifier="CAIRO_OPERATOR_XOR"/> | |
| 201 | + | <member name="add" | |
| 202 | + | value="12" | |
| 203 | + | c:identifier="CAIRO_OPERATOR_ADD"/> | |
| 204 | + | <member name="saturate" | |
| 205 | + | value="13" | |
| 206 | + | c:identifier="CAIRO_OPERATOR_SATURATE"/> | |
| 207 | + | <member name="multiply" | |
| 208 | + | value="14" | |
| 209 | + | c:identifier="CAIRO_OPERATOR_MULTIPLY"/> | |
| 210 | + | <member name="screen" | |
| 211 | + | value="15" | |
| 212 | + | c:identifier="CAIRO_OPERATOR_SCREEN"/> | |
| 213 | + | <member name="overlay" | |
| 214 | + | value="16" | |
| 215 | + | c:identifier="CAIRO_OPERATOR_OVERLAY"/> | |
| 216 | + | <member name="darken" | |
| 217 | + | value="17" | |
| 218 | + | c:identifier="CAIRO_OPERATOR_DARKEN"/> | |
| 219 | + | <member name="lighten" | |
| 220 | + | value="18" | |
| 221 | + | c:identifier="CAIRO_OPERATOR_LIGHTEN"/> | |
| 222 | + | <member name="color_dodge" | |
| 223 | + | value="19" | |
| 224 | + | c:identifier="CAIRO_OPERATOR_COLOR_DODGE"/> | |
| 225 | + | <member name="color_burn" | |
| 226 | + | value="20" | |
| 227 | + | c:identifier="CAIRO_OPERATOR_COLOR_BURN"/> | |
| 228 | + | <member name="hard_light" | |
| 229 | + | value="21" | |
| 230 | + | c:identifier="CAIRO_OPERATOR_HARD_LIGHT"/> | |
| 231 | + | <member name="soft_light" | |
| 232 | + | value="22" | |
| 233 | + | c:identifier="CAIRO_OPERATOR_SOFT_LIGHT"/> | |
| 234 | + | <member name="difference" | |
| 235 | + | value="23" | |
| 236 | + | c:identifier="CAIRO_OPERATOR_DIFFERENCE"/> | |
| 237 | + | <member name="exclusion" | |
| 238 | + | value="24" | |
| 239 | + | c:identifier="CAIRO_OPERATOR_EXCLUSION"/> | |
| 240 | + | <member name="hsl_hue" | |
| 241 | + | value="25" | |
| 242 | + | c:identifier="CAIRO_OPERATOR_HSL_HUE"/> | |
| 243 | + | <member name="hsl_saturation" | |
| 244 | + | value="26" | |
| 245 | + | c:identifier="CAIRO_OPERATOR_HSL_SATURATION"/> | |
| 246 | + | <member name="hsl_color" | |
| 247 | + | value="27" | |
| 248 | + | c:identifier="CAIRO_OPERATOR_HSL_COLOR"/> | |
| 249 | + | <member name="hsl_luminosity" | |
| 250 | + | value="28" | |
| 251 | + | c:identifier="CAIRO_OPERATOR_HSL_LUMINOSITY"/> | |
| 252 | + | </enumeration> | |
| 253 | + | <enumeration name="Antialias" c:type="cairo_antialias_t" | |
| 254 | + | glib:type-name="cairo_antialias_t" | |
| 255 | + | glib:get-type="cairo_gobject_antialias_get_type"> | |
| 256 | + | <member name="default" | |
| 257 | + | value="0" | |
| 258 | + | c:identifier="CAIRO_ANTIALIAS_DEFAULT"/> | |
| 259 | + | <member name="none" | |
| 260 | + | value="1" | |
| 261 | + | c:identifier="CAIRO_ANTIALIAS_NONE"/> | |
| 262 | + | <member name="gray" | |
| 263 | + | value="2" | |
| 264 | + | c:identifier="CAIRO_ANTIALIAS_GRAY"/> | |
| 265 | + | <member name="subpixel" | |
| 266 | + | value="3" | |
| 267 | + | c:identifier="CAIRO_ANTIALIAS_SUBPIXEL"/> | |
| 268 | + | <member name="fast" | |
| 269 | + | value="4" | |
| 270 | + | c:identifier="CAIRO_ANTIALIAS_FAST"/> | |
| 271 | + | <member name="good" | |
| 272 | + | value="5" | |
| 273 | + | c:identifier="CAIRO_ANTIALIAS_GOOD"/> | |
| 274 | + | <member name="best" | |
| 275 | + | value="6" | |
| 276 | + | c:identifier="CAIRO_ANTIALIAS_BEST"/> | |
| 277 | + | </enumeration> | |
| 278 | + | <enumeration name="FillRule" c:type="cairo_fill_rule_t" | |
| 279 | + | glib:type-name="cairo_fill_rule_t" | |
| 280 | + | glib:get-type="cairo_gobject_fill_rule_get_type"> | |
| 281 | + | <member name="winding" | |
| 282 | + | value="0" | |
| 283 | + | c:identifier="CAIRO_FILL_RULE_WINDING"/> | |
| 284 | + | <member name="even_odd" | |
| 285 | + | value="1" | |
| 286 | + | c:identifier="CAIRO_FILL_RULE_EVEN_ODD"/> | |
| 287 | + | </enumeration> | |
| 288 | + | <enumeration name="LineCap" c:type="cairo_line_cap_t" | |
| 289 | + | glib:type-name="cairo_line_cap_t" | |
| 290 | + | glib:get-type="cairo_gobject_line_cap_get_type"> | |
| 291 | + | <member name="butt" | |
| 292 | + | value="0" | |
| 293 | + | c:identifier="CAIRO_LINE_CAP_BUTT"/> | |
| 294 | + | <member name="round" | |
| 295 | + | value="1" | |
| 296 | + | c:identifier="CAIRO_LINE_CAP_ROUND"/> | |
| 297 | + | <member name="square" | |
| 298 | + | value="2" | |
| 299 | + | c:identifier="CAIRO_LINE_CAP_SQUARE"/> | |
| 300 | + | </enumeration> | |
| 301 | + | <enumeration name="LineJoin" c:type="cairo_line_join_t" | |
| 302 | + | glib:type-name="cairo_line_join_t" | |
| 303 | + | glib:get-type="cairo_gobject_line_join_get_type"> | |
| 304 | + | <member name="miter" | |
| 305 | + | value="0" | |
| 306 | + | c:identifier="CAIRO_LINE_JOIN_MITER"/> | |
| 307 | + | <member name="round" | |
| 308 | + | value="1" | |
| 309 | + | c:identifier="CAIRO_LINE_JOIN_ROUND"/> | |
| 310 | + | <member name="bevel" | |
| 311 | + | value="2" | |
| 312 | + | c:identifier="CAIRO_LINE_JOIN_BEVEL"/> | |
| 313 | + | </enumeration> | |
| 314 | + | <enumeration name="TextClusterFlags" c:type="cairo_text_cluster_flags_t" | |
| 315 | + | glib:type-name="cairo_text_cluster_flags_t" | |
| 316 | + | glib:get-type="cairo_gobject_text_cluster_flags_get_type"> | |
| 317 | + | <member name="backward" | |
| 318 | + | value="1" | |
| 319 | + | c:identifier="CAIRO_TEXT_CLUSTER_FLAG_BACKWARD"/> | |
| 320 | + | </enumeration> | |
| 321 | + | <enumeration name="FontSlant" c:type="cairo_font_slant_t" | |
| 322 | + | glib:type-name="cairo_font_slant_t" | |
| 323 | + | glib:get-type="cairo_gobject_font_slant_get_type"> | |
| 324 | + | <member name="normal" | |
| 325 | + | value="0" | |
| 326 | + | c:identifier="CAIRO_FONT_SLANT_NORMAL"/> | |
| 327 | + | <member name="italic" | |
| 328 | + | value="1" | |
| 329 | + | c:identifier="CAIRO_FONT_SLANT_ITALIC"/> | |
| 330 | + | <member name="oblique" | |
| 331 | + | value="2" | |
| 332 | + | c:identifier="CAIRO_FONT_SLANT_OBLIQUE"/> | |
| 333 | + | </enumeration> | |
| 334 | + | <enumeration name="FontWeight" c:type="cairo_font_weight_t" | |
| 335 | + | glib:type-name="cairo_font_weight_t" | |
| 336 | + | glib:get-type="cairo_gobject_font_weight_get_type"> | |
| 337 | + | <member name="normal" | |
| 338 | + | value="0" | |
| 339 | + | c:identifier="CAIRO_FONT_WEIGHT_NORMAL"/> | |
| 340 | + | <member name="bold" | |
| 341 | + | value="1" | |
| 342 | + | c:identifier="CAIRO_FONT_WEIGHT_BOLD"/> | |
| 343 | + | </enumeration> | |
| 344 | + | <enumeration name="SubpixelOrder" c:type="cairo_subpixel_order_t" | |
| 345 | + | glib:type-name="cairo_subpixel_order_t" | |
| 346 | + | glib:get-type="cairo_gobject_subpixel_order_get_type"> | |
| 347 | + | <member name="default" | |
| 348 | + | value="0" | |
| 349 | + | c:identifier="CAIRO_SUBPIXEL_ORDER_DEFAULT"/> | |
| 350 | + | <member name="rgb" | |
| 351 | + | value="1" | |
| 352 | + | c:identifier="CAIRO_SUBPIXEL_ORDER_RGB"/> | |
| 353 | + | <member name="bgr" | |
| 354 | + | value="2" | |
| 355 | + | c:identifier="CAIRO_SUBPIXEL_ORDER_BGR"/> | |
| 356 | + | <member name="vrgb" | |
| 357 | + | value="3" | |
| 358 | + | c:identifier="CAIRO_SUBPIXEL_ORDER_VRGB"/> | |
| 359 | + | <member name="vbgr" | |
| 360 | + | value="4" | |
| 361 | + | c:identifier="CAIRO_SUBPIXEL_ORDER_VBGR"/> | |
| 362 | + | </enumeration> | |
| 363 | + | <enumeration name="HintStyle" c:type="cairo_hint_style_t" | |
| 364 | + | glib:type-name="cairo_hint_style_t" | |
| 365 | + | glib:get-type="cairo_gobject_hint_style_get_type"> | |
| 366 | + | <member name="default" | |
| 367 | + | value="0" | |
| 368 | + | c:identifier="CAIRO_HINT_STYLE_DEFAULT"/> | |
| 369 | + | <member name="none" | |
| 370 | + | value="1" | |
| 371 | + | c:identifier="CAIRO_HINT_STYLE_NONE"/> | |
| 372 | + | <member name="slight" | |
| 373 | + | value="2" | |
| 374 | + | c:identifier="CAIRO_HINT_STYLE_SLIGHT"/> | |
| 375 | + | <member name="medium" | |
| 376 | + | value="3" | |
| 377 | + | c:identifier="CAIRO_HINT_STYLE_MEDIUM"/> | |
| 378 | + | <member name="full" | |
| 379 | + | value="4" | |
| 380 | + | c:identifier="CAIRO_HINT_STYLE_FULL"/> | |
| 381 | + | </enumeration> | |
| 382 | + | <enumeration name="HintMetrics" c:type="cairo_hint_metrics_t" | |
| 383 | + | glib:type-name="cairo_hint_metrics_t" | |
| 384 | + | glib:get-type="cairo_gobject_hint_metrics_get_type"> | |
| 385 | + | <member name="default" | |
| 386 | + | value="0" | |
| 387 | + | c:identifier="CAIRO_HINT_METRICS_DEFAULT"/> | |
| 388 | + | <member name="off" | |
| 389 | + | value="1" | |
| 390 | + | c:identifier="CAIRO_HINT_METRICS_OFF"/> | |
| 391 | + | <member name="on" | |
| 392 | + | value="2" | |
| 393 | + | c:identifier="CAIRO_HINT_METRICS_ON"/> | |
| 394 | + | </enumeration> | |
| 395 | + | <record name="FontOptions" c:type="cairo_font_options_t" foreign="1" | |
| 396 | + | glib:type-name="CairoFontOptions" | |
| 397 | + | glib:get-type="cairo_gobject_font_options_get_type"/> | |
| 398 | + | <enumeration name="FontType" c:type="cairo_font_type_t" | |
| 399 | + | glib:type-name="cairo_font_type_t" | |
| 400 | + | glib:get-type="cairo_gobject_font_type_get_type"> | |
| 401 | + | <member name="toy" | |
| 402 | + | value="0" | |
| 403 | + | c:identifier="CAIRO_FONT_TYPE_TOY"/> | |
| 404 | + | <member name="ft" | |
| 405 | + | value="1" | |
| 406 | + | c:identifier="CAIRO_FONT_TYPE_FT"/> | |
| 407 | + | <member name="win32" | |
| 408 | + | value="2" | |
| 409 | + | c:identifier="CAIRO_FONT_TYPE_WIN32"/> | |
| 410 | + | <member name="quartz" | |
| 411 | + | value="3" | |
| 412 | + | c:identifier="CAIRO_FONT_TYPE_QUARTZ"/> | |
| 413 | + | <member name="user" | |
| 414 | + | value="4" | |
| 415 | + | c:identifier="CAIRO_FONT_TYPE_USER"/> | |
| 416 | + | </enumeration> | |
| 417 | + | <enumeration name="PathDataType" c:type="cairo_path_data_type_t" | |
| 418 | + | glib:type-name="cairo_path_data_type_t" | |
| 419 | + | glib:get-type="cairo_gobject_path_data_type_get_type"> | |
| 420 | + | <member name="move_to" | |
| 421 | + | value="0" | |
| 422 | + | c:identifier="CAIRO_PATH_MOVE_TO"/> | |
| 423 | + | <member name="line_to" | |
| 424 | + | value="1" | |
| 425 | + | c:identifier="CAIRO_PATH_LINE_TO"/> | |
| 426 | + | <member name="curve_to" | |
| 427 | + | value="2" | |
| 428 | + | c:identifier="CAIRO_PATH_CURVE_TO"/> | |
| 429 | + | <member name="close_path" | |
| 430 | + | value="3" | |
| 431 | + | c:identifier="CAIRO_PATH_CLOSE_PATH"/> | |
| 432 | + | </enumeration> | |
| 433 | + | <enumeration name="DeviceType" c:type="cairo_device_type_t" | |
| 434 | + | glib:type-name="cairo_device_type_t" | |
| 435 | + | glib:get-type="cairo_gobject_device_type_get_type"> | |
| 436 | + | <member name="drm" | |
| 437 | + | value="0" | |
| 438 | + | c:identifier="CAIRO_DEVICE_TYPE_DRM"/> | |
| 439 | + | <member name="gl" | |
| 440 | + | value="1" | |
| 441 | + | c:identifier="CAIRO_DEVICE_TYPE_GL"/> | |
| 442 | + | <member name="script" | |
| 443 | + | value="2" | |
| 444 | + | c:identifier="CAIRO_DEVICE_TYPE_SCRIPT"/> | |
| 445 | + | <member name="xcb" | |
| 446 | + | value="3" | |
| 447 | + | c:identifier="CAIRO_DEVICE_TYPE_XCB"/> | |
| 448 | + | <member name="xlib" | |
| 449 | + | value="4" | |
| 450 | + | c:identifier="CAIRO_DEVICE_TYPE_XLIB"/> | |
| 451 | + | <member name="xml" | |
| 452 | + | value="5" | |
| 453 | + | c:identifier="CAIRO_DEVICE_TYPE_XML"/> | |
| 454 | + | <member name="cogl" | |
| 455 | + | value="6" | |
| 456 | + | c:identifier="CAIRO_DEVICE_TYPE_COGL"/> | |
| 457 | + | <member name="win32" | |
| 458 | + | value="7" | |
| 459 | + | c:identifier="CAIRO_DEVICE_TYPE_WIN32"/> | |
| 460 | + | <member name="invalid" | |
| 461 | + | value="-1" | |
| 462 | + | c:identifier="CAIRO_DEVICE_TYPE_INVALID"/> | |
| 463 | + | </enumeration> | |
| 464 | + | <enumeration name="SurfaceType" c:type="cairo_surface_type_t" | |
| 465 | + | glib:type-name="cairo_surface_type_t" | |
| 466 | + | glib:get-type="cairo_gobject_surface_type_get_type"> | |
| 467 | + | <member name="image" | |
| 468 | + | value="0" | |
| 469 | + | c:identifier="CAIRO_SURFACE_TYPE_IMAGE"/> | |
| 470 | + | <member name="pdf" | |
| 471 | + | value="1" | |
| 472 | + | c:identifier="CAIRO_SURFACE_TYPE_PDF"/> | |
| 473 | + | <member name="ps" | |
| 474 | + | value="2" | |
| 475 | + | c:identifier="CAIRO_SURFACE_TYPE_PS"/> | |
| 476 | + | <member name="xlib" | |
| 477 | + | value="3" | |
| 478 | + | c:identifier="CAIRO_SURFACE_TYPE_XLIB"/> | |
| 479 | + | <member name="xcb" | |
| 480 | + | value="4" | |
| 481 | + | c:identifier="CAIRO_SURFACE_TYPE_XCB"/> | |
| 482 | + | <member name="glitz" | |
| 483 | + | value="5" | |
| 484 | + | c:identifier="CAIRO_SURFACE_TYPE_GLITZ"/> | |
| 485 | + | <member name="quartz" | |
| 486 | + | value="6" | |
| 487 | + | c:identifier="CAIRO_SURFACE_TYPE_QUARTZ"/> | |
| 488 | + | <member name="win32" | |
| 489 | + | value="7" | |
| 490 | + | c:identifier="CAIRO_SURFACE_TYPE_WIN32"/> | |
| 491 | + | <member name="beos" | |
| 492 | + | value="8" | |
| 493 | + | c:identifier="CAIRO_SURFACE_TYPE_BEOS"/> | |
| 494 | + | <member name="directfb" | |
| 495 | + | value="9" | |
| 496 | + | c:identifier="CAIRO_SURFACE_TYPE_DIRECTFB"/> | |
| 497 | + | <member name="svg" | |
| 498 | + | value="10" | |
| 499 | + | c:identifier="CAIRO_SURFACE_TYPE_SVG"/> | |
| 500 | + | <member name="os2" | |
| 501 | + | value="11" | |
| 502 | + | c:identifier="CAIRO_SURFACE_TYPE_OS2"/> | |
| 503 | + | <member name="win32_printing" | |
| 504 | + | value="12" | |
| 505 | + | c:identifier="CAIRO_SURFACE_TYPE_WIN32_PRINTING"/> | |
| 506 | + | <member name="quartz_image" | |
| 507 | + | value="13" | |
| 508 | + | c:identifier="CAIRO_SURFACE_TYPE_QUARTZ_IMAGE"/> | |
| 509 | + | <member name="script" | |
| 510 | + | value="14" | |
| 511 | + | c:identifier="CAIRO_SURFACE_TYPE_SCRIPT"/> | |
| 512 | + | <member name="qt" | |
| 513 | + | value="15" | |
| 514 | + | c:identifier="CAIRO_SURFACE_TYPE_QT"/> | |
| 515 | + | <member name="recording" | |
| 516 | + | value="16" | |
| 517 | + | c:identifier="CAIRO_SURFACE_TYPE_RECORDING"/> | |
| 518 | + | <member name="vg" | |
| 519 | + | value="17" | |
| 520 | + | c:identifier="CAIRO_SURFACE_TYPE_VG"/> | |
| 521 | + | <member name="gl" | |
| 522 | + | value="18" | |
| 523 | + | c:identifier="CAIRO_SURFACE_TYPE_GL"/> | |
| 524 | + | <member name="drm" | |
| 525 | + | value="19" | |
| 526 | + | c:identifier="CAIRO_SURFACE_TYPE_DRM"/> | |
| 527 | + | <member name="tee" | |
| 528 | + | value="20" | |
| 529 | + | c:identifier="CAIRO_SURFACE_TYPE_TEE"/> | |
| 530 | + | <member name="xml" | |
| 531 | + | value="21" | |
| 532 | + | c:identifier="CAIRO_SURFACE_TYPE_XML"/> | |
| 533 | + | <member name="skia" | |
| 534 | + | value="22" | |
| 535 | + | c:identifier="CAIRO_SURFACE_TYPE_SKIA"/> | |
| 536 | + | <member name="subsurface" | |
| 537 | + | value="23" | |
| 538 | + | c:identifier="CAIRO_SURFACE_TYPE_SUBSURFACE"/> | |
| 539 | + | <member name="cogl" | |
| 540 | + | value="24" | |
| 541 | + | c:identifier="CAIRO_SURFACE_TYPE_COGL"/> | |
| 542 | + | </enumeration> | |
| 543 | + | <enumeration name="Format" c:type="cairo_format_t" | |
| 544 | + | glib:type-name="cairo_format_t" | |
| 545 | + | glib:get-type="cairo_gobject_format_get_type"> | |
| 546 | + | <member name="invalid" | |
| 547 | + | value="-1" | |
| 548 | + | c:identifier="CAIRO_FORMAT_INVALID"/> | |
| 549 | + | <member name="argb32" | |
| 550 | + | value="0" | |
| 551 | + | c:identifier="CAIRO_FORMAT_ARGB32"/> | |
| 552 | + | <member name="rgb24" | |
| 553 | + | value="1" | |
| 554 | + | c:identifier="CAIRO_FORMAT_RGB24"/> | |
| 555 | + | <member name="a8" | |
| 556 | + | value="2" | |
| 557 | + | c:identifier="CAIRO_FORMAT_A8"/> | |
| 558 | + | <member name="a1" | |
| 559 | + | value="3" | |
| 560 | + | c:identifier="CAIRO_FORMAT_A1"/> | |
| 561 | + | <member name="rgb16_565" | |
| 562 | + | value="4" | |
| 563 | + | c:identifier="CAIRO_FORMAT_RGB16_565"/> | |
| 564 | + | <member name="rgb30" | |
| 565 | + | value="5" | |
| 566 | + | c:identifier="CAIRO_FORMAT_RGB30"/> | |
| 567 | + | </enumeration> | |
| 568 | + | <enumeration name="PatternType" c:type="cairo_pattern_type_t" | |
| 569 | + | glib:type-name="cairo_pattern_type_t" | |
| 570 | + | glib:get-type="cairo_gobject_pattern_type_get_type"> | |
| 571 | + | <member name="solid" | |
| 572 | + | value="0" | |
| 573 | + | c:identifier="CAIRO_PATTERN_TYPE_SOLID"/> | |
| 574 | + | <member name="surface" | |
| 575 | + | value="1" | |
| 576 | + | c:identifier="CAIRO_PATTERN_TYPE_SURFACE"/> | |
| 577 | + | <member name="linear" | |
| 578 | + | value="2" | |
| 579 | + | c:identifier="CAIRO_PATTERN_TYPE_LINEAR"/> | |
| 580 | + | <member name="radial" | |
| 581 | + | value="3" | |
| 582 | + | c:identifier="CAIRO_PATTERN_TYPE_RADIAL"/> | |
| 583 | + | <member name="mesh" | |
| 584 | + | value="4" | |
| 585 | + | c:identifier="CAIRO_PATTERN_TYPE_MESH"/> | |
| 586 | + | <member name="raster_source" | |
| 587 | + | value="5" | |
| 588 | + | c:identifier="CAIRO_PATTERN_TYPE_RASTER_SOURCE"/> | |
| 589 | + | </enumeration> | |
| 590 | + | <enumeration name="Extend" c:type="cairo_extend_t" | |
| 591 | + | glib:type-name="cairo_extend_t" | |
| 592 | + | glib:get-type="cairo_gobject_extend_get_type"> | |
| 593 | + | <member name="none" | |
| 594 | + | value="0" | |
| 595 | + | c:identifier="CAIRO_EXTEND_NONE"/> | |
| 596 | + | <member name="repeat" | |
| 597 | + | value="1" | |
| 598 | + | c:identifier="CAIRO_EXTEND_REPEAT"/> | |
| 599 | + | <member name="reflect" | |
| 600 | + | value="2" | |
| 601 | + | c:identifier="CAIRO_EXTEND_REFLECT"/> | |
| 602 | + | <member name="pad" | |
| 603 | + | value="3" | |
| 604 | + | c:identifier="CAIRO_EXTEND_PAD"/> | |
| 605 | + | </enumeration> | |
| 606 | + | <enumeration name="Filter" c:type="cairo_filter_t" | |
| 607 | + | glib:type-name="cairo_filter_t" | |
| 608 | + | glib:get-type="cairo_gobject_filter_get_type"> | |
| 609 | + | <member name="fast" | |
| 610 | + | value="0" | |
| 611 | + | c:identifier="CAIRO_FILTER_FAST"/> | |
| 612 | + | <member name="good" | |
| 613 | + | value="1" | |
| 614 | + | c:identifier="CAIRO_FILTER_GOOD"/> | |
| 615 | + | <member name="best" | |
| 616 | + | value="2" | |
| 617 | + | c:identifier="CAIRO_FILTER_BEST"/> | |
| 618 | + | <member name="nearest" | |
| 619 | + | value="3" | |
| 620 | + | c:identifier="CAIRO_FILTER_NEAREST"/> | |
| 621 | + | <member name="bilinear" | |
| 622 | + | value="4" | |
| 623 | + | c:identifier="CAIRO_FILTER_BILINEAR"/> | |
| 624 | + | <member name="gaussian" | |
| 625 | + | value="5" | |
| 626 | + | c:identifier="CAIRO_FILTER_GAUSSIAN"/> | |
| 627 | + | </enumeration> | |
| 628 | + | <enumeration name="RegionOverlap" c:type="cairo_region_overlap_t" | |
| 629 | + | glib:type-name="cairo_region_overlap_t" | |
| 630 | + | glib:get-type="cairo_gobject_region_overlap_get_type"> | |
| 631 | + | <member name="in" | |
| 632 | + | value="0" | |
| 633 | + | c:identifier="CAIRO_REGION_OVERLAP_IN"/> | |
| 634 | + | <member name="out" | |
| 635 | + | value="1" | |
| 636 | + | c:identifier="CAIRO_REGION_OVERLAP_OUT"/> | |
| 637 | + | <member name="part" | |
| 638 | + | value="2" | |
| 639 | + | c:identifier="CAIRO_REGION_OVERLAP_PART"/> | |
| 640 | + | </enumeration> | |
| 641 | + | <record name="FontFace" c:type="cairo_font_face_t" foreign="1" | |
| 642 | + | glib:type-name="CairoFontFace" | |
| 643 | + | glib:get-type="cairo_gobject_font_face_get_type"/> | |
| 644 | + | <record name="ScaledFont" c:type="cairo_scaled_font_t" foreign="1" | |
| 645 | + | glib:type-name="CairoScaledFont" | |
| 646 | + | glib:get-type="cairo_gobject_scaled_font_get_type"/> | |
| 647 | + | <record name="Path" c:type="cairo_path_t" foreign="1"/> | |
| 648 | + | <record name="Rectangle" c:type="cairo_rectangle_t" | |
| 649 | + | glib:type-name="CairoRectangle" | |
| 650 | + | glib:get-type="cairo_gobject_rectangle_get_type"> | |
| 651 | + | <field name="x" writable="1"> | |
| 652 | + | <type name="gdouble" c:type="gdouble"/> | |
| 653 | + | </field> | |
| 654 | + | <field name="y" writable="1"> | |
| 655 | + | <type name="gdouble" c:type="gdouble"/> | |
| 656 | + | </field> | |
| 657 | + | <field name="width" writable="1"> | |
| 658 | + | <type name="gdouble" c:type="gdouble"/> | |
| 659 | + | </field> | |
| 660 | + | <field name="height" writable="1"> | |
| 661 | + | <type name="gdouble" c:type="gdouble"/> | |
| 662 | + | </field> | |
| 663 | + | </record> | |
| 664 | + | <record name="RectangleInt" c:type="cairo_rectangle_int_t" | |
| 665 | + | glib:type-name="CairoRectangleInt" | |
| 666 | + | glib:get-type="cairo_gobject_rectangle_int_get_type"> | |
| 667 | + | <field name="x" writable="1"> | |
| 668 | + | <type name="gint" c:type="gint"/> | |
| 669 | + | </field> | |
| 670 | + | <field name="y" writable="1"> | |
| 671 | + | <type name="gint" c:type="gint"/> | |
| 672 | + | </field> | |
| 673 | + | <field name="width" writable="1"> | |
| 674 | + | <type name="gint" c:type="gint"/> | |
| 675 | + | </field> | |
| 676 | + | <field name="height" writable="1"> | |
| 677 | + | <type name="gint" c:type="gint"/> | |
| 678 | + | </field> | |
| 679 | + | </record> | |
| 680 | + | <function name="image_surface_create" c:identifier="cairo_image_surface_create"> | |
| 681 | + | <return-value transfer-ownership="none"> | |
| 682 | + | <type name="none" c:type="void"/> | |
| 683 | + | </return-value> | |
| 684 | + | <parameters> | |
| 685 | + | </parameters> | |
| 686 | + | </function> | |
| 687 | + | </namespace> | |
| 688 | + | </repository> | |
A internal/gir/types/interface.go +52 -0
| @@ -0,0 +1,52 @@ | |||
| 1 | + | package types | |
| 2 | + | ||
| 3 | + | import ( | |
| 4 | + | "strings" | |
| 5 | + | ||
| 6 | + | "github.com/jwijenbergh/puregotk/internal/gir/util" | |
| 7 | + | ) | |
| 8 | + | ||
| 9 | + | func ConvertInterface(currns string, ins string, inter Interface, implemented map[string]bool, kinds KindMap) InterfaceTemplate { | |
| 10 | + | var methods []InterfaceFuncTemplate | |
| 11 | + | ||
| 12 | + | for _, m := range inter.Methods { | |
| 13 | + | name := util.SnakeToCamel(m.Name) | |
| 14 | + | if implemented != nil { | |
| 15 | + | v, ok := implemented[name] | |
| 16 | + | if v && ok { | |
| 17 | + | continue | |
| 18 | + | } | |
| 19 | + | } | |
| 20 | + | var newns string | |
| 21 | + | if ins != "" { | |
| 22 | + | newns = ins + "." | |
| 23 | + | } | |
| 24 | + | methods = append(methods, InterfaceFuncTemplate{ | |
| 25 | + | Namespace: newns, | |
| 26 | + | FullName: util.SnakeToCamel(m.CIdentifier), | |
| 27 | + | FuncTemplate: FuncTemplate{ | |
| 28 | + | Doc: m.Doc.StringSafe(), | |
| 29 | + | CName: m.CIdentifier, | |
| 30 | + | Name: name, | |
| 31 | + | Args: m.Parameters.Template(currns, ins, kinds), | |
| 32 | + | Ret: m.ReturnValue.Template(currns, ins, kinds), | |
| 33 | + | }, | |
| 34 | + | }) | |
| 35 | + | } | |
| 36 | + | name := util.SnakeToCamel(inter.Name) | |
| 37 | + | return InterfaceTemplate{ | |
| 38 | + | Name: name, | |
| 39 | + | Doc: inter.Doc.StringSafe(), | |
| 40 | + | Methods: methods, | |
| 41 | + | } | |
| 42 | + | } | |
| 43 | + | ||
| 44 | + | func GetInterfaceFuncs(ns string, name string, implemented map[string]bool, kinds KindMap) InterfaceTemplate { | |
| 45 | + | inter := kinds.MustInterface(ns, name) | |
| 46 | + | parts := strings.Split(name, ".") | |
| 47 | + | var ins string | |
| 48 | + | if len(parts) > 1 { | |
| 49 | + | ins = strings.ToLower(parts[0]) | |
| 50 | + | } | |
| 51 | + | return ConvertInterface(ns, ins, inter, implemented, kinds) | |
| 52 | + | } | |
A internal/gir/types/kind.go +51 -0
| @@ -0,0 +1,51 @@ | |||
| 1 | + | package types | |
| 2 | + | ||
| 3 | + | import "github.com/jwijenbergh/puregotk/internal/gir/util" | |
| 4 | + | ||
| 5 | + | type Kind int8 | |
| 6 | + | ||
| 7 | + | const ( | |
| 8 | + | UnknownType Kind = iota | |
| 9 | + | AliasType | |
| 10 | + | CallbackType | |
| 11 | + | ClassesType | |
| 12 | + | InterfacesType | |
| 13 | + | RecordsType | |
| 14 | + | OtherType | |
| 15 | + | ) | |
| 16 | + | ||
| 17 | + | type KindMap map[string]KindPair | |
| 18 | + | ||
| 19 | + | func (km KindMap) key(ns string, name string) string { | |
| 20 | + | return util.NormalizeNamespace(ns, name, false) | |
| 21 | + | } | |
| 22 | + | ||
| 23 | + | func (km KindMap) Add(ns string, name string, t Kind, v interface{}) { | |
| 24 | + | k := km.key(ns, name) | |
| 25 | + | km[k] = KindPair{ | |
| 26 | + | K: t, | |
| 27 | + | Value: v, | |
| 28 | + | } | |
| 29 | + | } | |
| 30 | + | ||
| 31 | + | func (km KindMap) pair(ns string, name string) KindPair { | |
| 32 | + | f := util.NormalizeNamespace(ns, name, false) | |
| 33 | + | return km[f] | |
| 34 | + | } | |
| 35 | + | ||
| 36 | + | func (km KindMap) Kind(ns string, name string) Kind { | |
| 37 | + | return km.pair(ns, name).K | |
| 38 | + | } | |
| 39 | + | ||
| 40 | + | func (km KindMap) MustInterface(ns string, name string) Interface { | |
| 41 | + | p := km.pair(ns, name) | |
| 42 | + | if p.K != InterfacesType { | |
| 43 | + | panic("value is not an interface") | |
| 44 | + | } | |
| 45 | + | return p.Value.(Interface) | |
| 46 | + | } | |
| 47 | + | ||
| 48 | + | type KindPair struct { | |
| 49 | + | K Kind | |
| 50 | + | Value interface{} | |
| 51 | + | } | |
A internal/gir/types/template.go +284 -0
| @@ -0,0 +1,284 @@ | |||
| 1 | + | package types | |
| 2 | + | ||
| 3 | + | import ( | |
| 4 | + | "fmt" | |
| 5 | + | "strings" | |
| 6 | + | ||
| 7 | + | "github.com/jwijenbergh/puregotk/internal/gir/util" | |
| 8 | + | ) | |
| 9 | + | ||
| 10 | + | type argsTemplate struct { | |
| 11 | + | // Names are the variables but just the names | |
| 12 | + | Names []string | |
| 13 | + | ||
| 14 | + | // Types are the variables but just the types | |
| 15 | + | Types []string | |
| 16 | + | ||
| 17 | + | // Call are the variables as given in a function call | |
| 18 | + | Call []string | |
| 19 | + | ||
| 20 | + | Full []string | |
| 21 | + | } | |
| 22 | + | ||
| 23 | + | type funcArgsTemplate struct { | |
| 24 | + | // Pure are the arguments as passed directly to PureGo | |
| 25 | + | // The pure Call is a special case that contains the arguments for a callback call | |
| 26 | + | Pure argsTemplate | |
| 27 | + | ||
| 28 | + | // API are the arguments as suitable for a Go API | |
| 29 | + | API argsTemplate | |
| 30 | + | } | |
| 31 | + | ||
| 32 | + | func (f *funcArgsTemplate) AddAPI(t string, n string, k Kind, ns string) { | |
| 33 | + | c := n | |
| 34 | + | stars := strings.Count(t, "*") | |
| 35 | + | gobjectNs := "gobject." | |
| 36 | + | if strings.ToLower(ns) == "gobject" { | |
| 37 | + | gobjectNs = "" | |
| 38 | + | } | |
| 39 | + | switch k { | |
| 40 | + | case CallbackType: | |
| 41 | + | c = fmt.Sprintf("purego.NewCallback(%s)", n) | |
| 42 | + | case ClassesType: | |
| 43 | + | if stars == 0 { | |
| 44 | + | c = n | |
| 45 | + | t = "uintptr" | |
| 46 | + | } else if stars > 1 { | |
| 47 | + | c = fmt.Sprintf("%sConvertPtr(%s)", gobjectNs, n) | |
| 48 | + | } else if stars == 1 { | |
| 49 | + | c = n + ".GoPointer()" | |
| 50 | + | } | |
| 51 | + | case InterfacesType: | |
| 52 | + | t = strings.TrimPrefix(t, "*") | |
| 53 | + | if stars == 0 { | |
| 54 | + | c = n | |
| 55 | + | t = "uintptr" | |
| 56 | + | } else if stars > 1 { | |
| 57 | + | c = fmt.Sprintf("%sConvertPtr(%s)", gobjectNs, n) | |
| 58 | + | } else if stars == 1 { | |
| 59 | + | c = n + ".GoPointer()" | |
| 60 | + | } | |
| 61 | + | } | |
| 62 | + | ||
| 63 | + | // special case for varargs | |
| 64 | + | if n == "varArgs" { | |
| 65 | + | c = n + "..." | |
| 66 | + | } | |
| 67 | + | f.API.Names = append(f.API.Names, n) | |
| 68 | + | f.API.Types = append(f.API.Types, t) | |
| 69 | + | f.API.Call = append(f.API.Call, c) | |
| 70 | + | f.API.Full = append(f.API.Full, n+" "+t) | |
| 71 | + | } | |
| 72 | + | ||
| 73 | + | func (f *funcArgsTemplate) AddPure(t string, n string, k Kind) { | |
| 74 | + | n += "p" | |
| 75 | + | c := n | |
| 76 | + | stars := strings.Count(t, "*") | |
| 77 | + | switch k { | |
| 78 | + | case RecordsType: | |
| 79 | + | if stars == 0 { | |
| 80 | + | t = "uintptr" | |
| 81 | + | } | |
| 82 | + | case CallbackType: | |
| 83 | + | t = "uintptr" | |
| 84 | + | case ClassesType: | |
| 85 | + | if stars == 0 { | |
| 86 | + | c = n | |
| 87 | + | t = "uintptr" | |
| 88 | + | } else { | |
| 89 | + | c = fmt.Sprintf("%sNewFromInternalPtr(%s)", strings.TrimPrefix(t, "*"), n) | |
| 90 | + | t = strings.Repeat("*", stars-1) + "uintptr" | |
| 91 | + | } | |
| 92 | + | case InterfacesType: | |
| 93 | + | if stars == 0 { | |
| 94 | + | c = n | |
| 95 | + | t = "uintptr" | |
| 96 | + | } else { | |
| 97 | + | c = fmt.Sprintf("%s{Ptr: %s}", t+"Base", n) | |
| 98 | + | t = strings.Repeat("*", stars-1) + "uintptr" | |
| 99 | + | } | |
| 100 | + | } | |
| 101 | + | f.Pure.Names = append(f.Pure.Names, n) | |
| 102 | + | f.Pure.Types = append(f.Pure.Types, t) | |
| 103 | + | f.Pure.Call = append(f.Pure.Call, c) | |
| 104 | + | f.Pure.Full = append(f.Pure.Full, n+" "+t) | |
| 105 | + | } | |
| 106 | + | ||
| 107 | + | func (f *funcArgsTemplate) Add(p Parameter, ins string, ns string, kinds KindMap) { | |
| 108 | + | // get the lookup namespace | |
| 109 | + | // as if the interface namespace is non-empty | |
| 110 | + | // means we can also lookup in the namespace of the interface | |
| 111 | + | lns := ns | |
| 112 | + | if ins != "" { | |
| 113 | + | lns = ins | |
| 114 | + | } | |
| 115 | + | goType := p.Translate(lns, kinds) | |
| 116 | + | kind := kinds.Kind(lns, goType) | |
| 117 | + | stars := strings.Count(goType, "*") | |
| 118 | + | goType = util.NormalizeNamespace(ns, goType, true) | |
| 119 | + | if kind != OtherType && kind != UnknownType { | |
| 120 | + | if ins != "" && strings.Count(goType, ".") < 1 { | |
| 121 | + | goType = ins + "." + goType | |
| 122 | + | } | |
| 123 | + | } | |
| 124 | + | if stars > 0 { | |
| 125 | + | goType = strings.Repeat("*", stars) + strings.ReplaceAll(goType, "*", "") | |
| 126 | + | } | |
| 127 | + | ||
| 128 | + | // Get a suitable variable name | |
| 129 | + | varName := p.VarName() | |
| 130 | + | ||
| 131 | + | f.AddAPI(goType, varName, kind, ns) | |
| 132 | + | f.AddPure(goType, varName, kind) | |
| 133 | + | } | |
| 134 | + | ||
| 135 | + | type CallbackTemplate struct { | |
| 136 | + | Doc string | |
| 137 | + | Name string | |
| 138 | + | Args funcArgsTemplate | |
| 139 | + | Ret funcRetTemplate | |
| 140 | + | } | |
| 141 | + | ||
| 142 | + | type AliasTemplate struct { | |
| 143 | + | // Name is the name of the alias given to the Go type declaration | |
| 144 | + | Name string | |
| 145 | + | ||
| 146 | + | // Doc is the documentation of the alias | |
| 147 | + | Doc string | |
| 148 | + | ||
| 149 | + | // Value is the value for the alias as a Go type | |
| 150 | + | Value string | |
| 151 | + | } | |
| 152 | + | ||
| 153 | + | type RecordField struct { | |
| 154 | + | // Name is the Go name of the field | |
| 155 | + | Name string | |
| 156 | + | ||
| 157 | + | // Type is the Go type of the field | |
| 158 | + | Type string | |
| 159 | + | } | |
| 160 | + | ||
| 161 | + | type RecordTemplate struct { | |
| 162 | + | // Name is the name of the record given to the Go type declaration | |
| 163 | + | Name string | |
| 164 | + | ||
| 165 | + | // Doc is the documentation of the alias | |
| 166 | + | Doc string | |
| 167 | + | ||
| 168 | + | // Fields is the list of record fields | |
| 169 | + | Fields []RecordField | |
| 170 | + | } | |
| 171 | + | ||
| 172 | + | type enumValues struct { | |
| 173 | + | // Doc is the documentation for the value | |
| 174 | + | Doc string | |
| 175 | + | // Name is the name of the enumeration value | |
| 176 | + | Name string | |
| 177 | + | // Value is the actual underlying value | |
| 178 | + | Value int | |
| 179 | + | } | |
| 180 | + | ||
| 181 | + | type EnumTemplate struct { | |
| 182 | + | // Name is the name of the enumeration declared as the Go type for the int | |
| 183 | + | Name string | |
| 184 | + | // Doc is the documentation for the enumeration | |
| 185 | + | Doc string | |
| 186 | + | // Values are the list of values for the enumeration | |
| 187 | + | Values []enumValues | |
| 188 | + | } | |
| 189 | + | ||
| 190 | + | type funcRetTemplate struct { | |
| 191 | + | // Raw is the raw value for the underlying purego function | |
| 192 | + | Raw string | |
| 193 | + | // Value is the underlying return value as a Go type | |
| 194 | + | Value string | |
| 195 | + | // Class indicates whether or not the return value is a class | |
| 196 | + | Class bool | |
| 197 | + | // RefSink indicates whether or not we should increase the reference count using obj.RefSink() | |
| 198 | + | RefSink bool | |
| 199 | + | } | |
| 200 | + | ||
| 201 | + | func (fr *funcRetTemplate) Instance() string { | |
| 202 | + | if strings.HasPrefix(fr.Value, "*") { | |
| 203 | + | return "&"+fr.Value[1:] | |
| 204 | + | } | |
| 205 | + | return fr.Value | |
| 206 | + | } | |
| 207 | + | ||
| 208 | + | type FuncTemplate struct { | |
| 209 | + | // Name is the name of the function declared as the Go function variable and public exposed API | |
| 210 | + | Name string | |
| 211 | + | // CName is the raw c name to be passed to purego register | |
| 212 | + | CName string | |
| 213 | + | // Doc is the documentation for the function | |
| 214 | + | Doc string | |
| 215 | + | // Args are the arguments | |
| 216 | + | Args funcArgsTemplate | |
| 217 | + | // Ret is the return argument | |
| 218 | + | Ret funcRetTemplate | |
| 219 | + | } | |
| 220 | + | ||
| 221 | + | type InterfaceFuncTemplate struct { | |
| 222 | + | Namespace string | |
| 223 | + | FullName string | |
| 224 | + | FuncTemplate | |
| 225 | + | } | |
| 226 | + | ||
| 227 | + | type SignalsTemplate struct { | |
| 228 | + | Doc string | |
| 229 | + | Name string | |
| 230 | + | CName string | |
| 231 | + | Args funcArgsTemplate | |
| 232 | + | Ret funcRetTemplate | |
| 233 | + | } | |
| 234 | + | ||
| 235 | + | type ClassTemplate struct { | |
| 236 | + | // Doc is the documentation for the class | |
| 237 | + | Doc string | |
| 238 | + | // Name is the name of the class that is given to the Go struct | |
| 239 | + | Name string | |
| 240 | + | // Parent is a non-empty string of the embedded parent struct | |
| 241 | + | Parent string | |
| 242 | + | // Constructors is the slice of functions that create the class struct | |
| 243 | + | Constructors []FuncTemplate | |
| 244 | + | // Receivers is the slice of functions that have value receivers to the struct | |
| 245 | + | Receivers []FuncTemplate | |
| 246 | + | // Interfaces are receiver methods that are implemented because it needs to satisfy a certain interface | |
| 247 | + | Interfaces []InterfaceTemplate | |
| 248 | + | // Signals are helpers for ConnectX receivers | |
| 249 | + | Signals []SignalsTemplate | |
| 250 | + | } | |
| 251 | + | ||
| 252 | + | type InterfaceTemplate struct { | |
| 253 | + | Doc string | |
| 254 | + | Name string | |
| 255 | + | // Methods is the methods that this interface defines | |
| 256 | + | Methods []InterfaceFuncTemplate | |
| 257 | + | } | |
| 258 | + | ||
| 259 | + | type TemplateArg struct { | |
| 260 | + | // PkgName is the name of the package, declared at the top-level | |
| 261 | + | PkgName string | |
| 262 | + | // PkgEnv is the name of the package in the load environment variable | |
| 263 | + | PkgEnv string | |
| 264 | + | // NeedsInit declares whether or not this file needs an init code to register functions with purego | |
| 265 | + | NeedsInit bool | |
| 266 | + | // Imports defines the package imports that we need | |
| 267 | + | // This does not include purego | |
| 268 | + | // As the template already includes that if `NeedsInit` is set to true | |
| 269 | + | Imports []string | |
| 270 | + | // Aliases are type aliases declared as type ... = ... | |
| 271 | + | Aliases []AliasTemplate | |
| 272 | + | // Aliases are structs that are not classes | |
| 273 | + | Records []RecordTemplate | |
| 274 | + | // Callbacks are functions that will be converted with purego to uintptr | |
| 275 | + | Callbacks []CallbackTemplate | |
| 276 | + | // Enums are enumerations declared as const ... .... = .... | |
| 277 | + | Enums []EnumTemplate | |
| 278 | + | // Functions are the Go function declarations | |
| 279 | + | Functions []FuncTemplate | |
| 280 | + | // Interfaces is the list of interfaces that this package implements | |
| 281 | + | Interfaces []InterfaceTemplate | |
| 282 | + | // Classes are the Go struct with receiver declarations | |
| 283 | + | Classes []ClassTemplate | |
| 284 | + | } | |
A internal/gir/types/types.go +698 -0
| @@ -0,0 +1,698 @@ | |||
| 1 | + | // package types implements types as found in gir XML files | |
| 2 | + | // NOTE: This was copied largely from (the type definitions) from | |
| 3 | + | package types | |
| 4 | + | ||
| 5 | + | import ( | |
| 6 | + | "encoding/xml" | |
| 7 | + | "strconv" | |
| 8 | + | "strings" | |
| 9 | + | ||
| 10 | + | "github.com/jwijenbergh/puregotk/internal/gir/util" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | // convList maps the given GIR primitive type to a Go builtin type. | |
| 14 | + | // See https://github.com/diamondburned/gotk4/blob/fd960d20b525a07580938d10a214336bafb47d12/gir/girgen/types/types.go#LL483C1-L512C2 | |
| 15 | + | var convList = map[string]string{ | |
| 16 | + | "none": "", | |
| 17 | + | "gboolean": "bool", | |
| 18 | + | "gfloat": "float32", | |
| 19 | + | "gdouble": "float64", | |
| 20 | + | // This was changed because e.g. the error code in a GError struct is a gint and it has to be an int32 | |
| 21 | + | // gint is a typedef to an int and on 32 and 64 bit systems a c int is 32 bits commonly, whereas in go an int is 32 bits on 32 bits systems and 64 bits on 64 bits systems | |
| 22 | + | // gotk4 seems to not cast these, see e.g. https://github.com/diamondburned/gotk4/blob/fd960d20b525a07580938d10a214336bafb47d12/gir/girgen/types/types.go#L473-L481 | |
| 23 | + | "gint": "int32", | |
| 24 | + | "gssize": "int", | |
| 25 | + | "gint8": "int8", | |
| 26 | + | "gint16": "int16", | |
| 27 | + | "gshort": "int16", | |
| 28 | + | "gint32": "int32", | |
| 29 | + | "glong": "int32", | |
| 30 | + | "int32": "int32", | |
| 31 | + | "gint64": "int64", | |
| 32 | + | "guint": "uint", | |
| 33 | + | "gsize": "uint", | |
| 34 | + | "guchar": "byte", | |
| 35 | + | "gchar": "byte", | |
| 36 | + | "guint8": "byte", // some weird cases | |
| 37 | + | "guint16": "uint16", | |
| 38 | + | "gushort": "uint16", | |
| 39 | + | "guint32": "uint32", | |
| 40 | + | "gulong": "uint32", | |
| 41 | + | "gunichar": "uint32", | |
| 42 | + | "guint64": "uint64", | |
| 43 | + | "guintptr": "uintptr", | |
| 44 | + | "utf8": "string", | |
| 45 | + | "filename": "string", | |
| 46 | + | ||
| 47 | + | // these are probably not correct but needed to compile | |
| 48 | + | "long double": "float64", | |
| 49 | + | "va_list": "[]interface{}", | |
| 50 | + | "gpointer": "uintptr", | |
| 51 | + | "GType": "[]interface{}", | |
| 52 | + | "const char*": "string", | |
| 53 | + | "char**": "[]string", | |
| 54 | + | // not exported | |
| 55 | + | "HarfBuzz.font_t": "uintptr", | |
| 56 | + | //"GLib.Quark": "byte", | |
| 57 | + | //"Allocation": "uintptr", | |
| 58 | + | } | |
| 59 | + | ||
| 60 | + | // Repository represents a GObject Introspection Repository, which contains the | |
| 61 | + | // includes, C includes and namespaces of a single gir file. | |
| 62 | + | type Repository struct { | |
| 63 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 repository"` | |
| 64 | + | ||
| 65 | + | Version string `xml:"version,attr"` | |
| 66 | + | CIdentifierPrefixes string `xml:"http://www.gtk.org/introspection/c/1.0 identifier-prefixes,attr"` | |
| 67 | + | CSymbolPrefixes string `xml:"http://www.gtk.org/introspection/c/1.0 symbol-prefixes,attr"` | |
| 68 | + | ||
| 69 | + | Includes []Include `xml:"http://www.gtk.org/introspection/core/1.0 include"` | |
| 70 | + | CIncludes []CInclude `xml:"http://www.gtk.org/introspection/c/1.0 include"` | |
| 71 | + | Packages []Package `xml:"http://www.gtk.org/introspection/core/1.0 package"` | |
| 72 | + | Namespaces []Namespace `xml:"http://www.gtk.org/introspection/core/1.0 namespace"` | |
| 73 | + | } | |
| 74 | + | ||
| 75 | + | // https://gitlab.gnome.org/GNOME/gobject-introspection/-/blob/master/docs/gir-1.2.rnc | |
| 76 | + | ||
| 77 | + | type Alias struct { | |
| 78 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 alias"` | |
| 79 | + | ||
| 80 | + | Name string `xml:"name,attr"` | |
| 81 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 82 | + | ||
| 83 | + | InfoAttrs | |
| 84 | + | InfoElements | |
| 85 | + | ||
| 86 | + | Type Type `xml:"http://www.gtk.org/introspection/core/1.0 type"` | |
| 87 | + | } | |
| 88 | + | ||
| 89 | + | type AnyType struct { | |
| 90 | + | // Possible variants. | |
| 91 | + | Type *Type `xml:"http://www.gtk.org/introspection/core/1.0 type"` | |
| 92 | + | Array *Array `xml:"http://www.gtk.org/introspection/core/1.0 array"` | |
| 93 | + | } | |
| 94 | + | ||
| 95 | + | func (a *AnyType) Translate(ns string, kinds KindMap) string { | |
| 96 | + | if a == nil { | |
| 97 | + | panic("unknown type found") | |
| 98 | + | } | |
| 99 | + | t := a.Type | |
| 100 | + | if t == nil { | |
| 101 | + | if a.Array == nil { | |
| 102 | + | return "" | |
| 103 | + | } | |
| 104 | + | if v, ok := convList[a.Array.CType]; ok { | |
| 105 | + | return v | |
| 106 | + | } | |
| 107 | + | return "uintptr" | |
| 108 | + | } | |
| 109 | + | return a.Type.Template(ns, kinds) | |
| 110 | + | } | |
| 111 | + | ||
| 112 | + | type Annotation struct { | |
| 113 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 attribute"` | |
| 114 | + | Name string `xml:"name,attr"` | |
| 115 | + | Value string `xml:"value,attr"` | |
| 116 | + | } | |
| 117 | + | ||
| 118 | + | type Array struct { | |
| 119 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 array"` | |
| 120 | + | Name string `xml:"name,attr"` | |
| 121 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 122 | + | Length *int `xml:"length,attr"` // ix of .Parameters | |
| 123 | + | ZeroTerminated *bool `xml:"zero-terminated,attr"` | |
| 124 | + | FixedSize int `xml:"fixed-size,attr"` | |
| 125 | + | Introspectable bool `xml:"introspectable,attr"` | |
| 126 | + | // Type is the array's inner type. | |
| 127 | + | Type *Type `xml:"http://www.gtk.org/introspection/core/1.0 type"` | |
| 128 | + | } | |
| 129 | + | ||
| 130 | + | // IsZeroTerminated returns true if the Array is zero-terminated. It accounts | |
| 131 | + | // for edge cases of the structure. | |
| 132 | + | func (a Array) IsZeroTerminated() bool { | |
| 133 | + | return a.Name == "" && (a.ZeroTerminated == nil || *a.ZeroTerminated) | |
| 134 | + | } | |
| 135 | + | ||
| 136 | + | type Bitfield struct { | |
| 137 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 bitfield"` | |
| 138 | + | ||
| 139 | + | Name string `xml:"name,attr"` // Go case | |
| 140 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 141 | + | GLibTypeName string `xml:"http://www.gtk.org/introspection/glib/1.0 type-name,attr"` | |
| 142 | + | GLibGetType string `xml:"http://www.gtk.org/introspection/glib/1.0 get-type,attr"` | |
| 143 | + | ||
| 144 | + | Members []Member `xml:"http://www.gtk.org/introspection/core/1.0 member"` | |
| 145 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 146 | + | ||
| 147 | + | InfoAttrs | |
| 148 | + | InfoElements | |
| 149 | + | } | |
| 150 | + | ||
| 151 | + | func (b *Bitfield) Template(ns string) EnumTemplate { | |
| 152 | + | els := make([]enumValues, len(b.Members)) | |
| 153 | + | for i, m := range b.Members { | |
| 154 | + | v, err := strconv.Atoi(m.Value) | |
| 155 | + | if err != nil { | |
| 156 | + | panic(err) | |
| 157 | + | } | |
| 158 | + | // + Value needed to get rid of duplicates | |
| 159 | + | els[i] = enumValues{ | |
| 160 | + | Doc: m.Doc.StringSafe(), | |
| 161 | + | Name: util.SnakeToCamel(util.RemoveSnakePrefix(strings.ToLower(m.CIdentifier), ns)) + "Value", | |
| 162 | + | Value: v, | |
| 163 | + | } | |
| 164 | + | } | |
| 165 | + | return EnumTemplate{ | |
| 166 | + | Name: util.SnakeToCamel(b.Name), | |
| 167 | + | Doc: b.Doc.StringSafe(), | |
| 168 | + | Values: els, | |
| 169 | + | } | |
| 170 | + | } | |
| 171 | + | ||
| 172 | + | type Signal struct { | |
| 173 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/glib/1.0 signal"` | |
| 174 | + | Name string `xml:"name,attr"` | |
| 175 | + | Detailed bool `xml:"detailed,attr"` | |
| 176 | + | When SignalWhen `xml:"when,attr"` | |
| 177 | + | Action bool `xml:"action,attr"` | |
| 178 | + | NoHooks bool `xml:"no-hooks,attr"` | |
| 179 | + | NoRecurse bool `xml:"no-recurse,attr"` | |
| 180 | + | InfoElements | |
| 181 | + | Parameters *Parameters `xml:"http://www.gtk.org/introspection/core/1.0 parameters"` | |
| 182 | + | ReturnValue *ReturnValue `xml:"http://www.gtk.org/introspection/core/1.0 return-value"` | |
| 183 | + | } | |
| 184 | + | ||
| 185 | + | type SignalWhen string | |
| 186 | + | ||
| 187 | + | const ( | |
| 188 | + | SignalWhenFirst = "first" | |
| 189 | + | SignalWhenLast = "last" | |
| 190 | + | SignalWhenCleanup = "cleanup" | |
| 191 | + | ) | |
| 192 | + | ||
| 193 | + | type SourcePosition struct { | |
| 194 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 source-position"` | |
| 195 | + | Filename string `xml:"filename,attr"` | |
| 196 | + | Line int `xml:"line,attr"` | |
| 197 | + | Column int `xml:"column,attr"` | |
| 198 | + | } | |
| 199 | + | ||
| 200 | + | type TransferOwnership struct { | |
| 201 | + | TransferOwnership string `xml:"transfer-ownership,attr"` | |
| 202 | + | } | |
| 203 | + | ||
| 204 | + | type Type struct { | |
| 205 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 type"` | |
| 206 | + | ||
| 207 | + | Name string `xml:"name,attr"` | |
| 208 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 209 | + | Introspectable *bool `xml:"introspectable,attr"` | |
| 210 | + | ||
| 211 | + | DocElements | |
| 212 | + | // Types is the type's inner types. | |
| 213 | + | Types []Type `xml:"http://www.gtk.org/introspection/core/1.0 type"` | |
| 214 | + | } | |
| 215 | + | ||
| 216 | + | func (typ *Type) IsIntrospectable() bool { | |
| 217 | + | return typ.Introspectable == nil || *typ.Introspectable | |
| 218 | + | } | |
| 219 | + | ||
| 220 | + | func (t *Type) Template(ns string, kinds KindMap) string { | |
| 221 | + | if v, ok := convList[t.Name]; ok { | |
| 222 | + | return v | |
| 223 | + | } | |
| 224 | + | ||
| 225 | + | _type := util.NormalizeNamespace(ns, t.Name, true) | |
| 226 | + | ||
| 227 | + | kind := kinds.Kind(ns, _type) | |
| 228 | + | // find the total pointer count | |
| 229 | + | count := strings.Count(t.CType, "*") | |
| 230 | + | w := strings.Trim(t.CType, "*") | |
| 231 | + | if w == "gpointer" { | |
| 232 | + | count += 1 | |
| 233 | + | } | |
| 234 | + | // set the same pointer types on the name | |
| 235 | + | if count > 0 && kind != CallbackType { | |
| 236 | + | _type = strings.Repeat("*", count) + _type | |
| 237 | + | } else if kind == RecordsType { | |
| 238 | + | // if it's not a pointer | |
| 239 | + | // then purego doesn't support it (struct by value is not supported | |
| 240 | + | // so return uintptr | |
| 241 | + | _type = "uintptr" | |
| 242 | + | } | |
| 243 | + | return _type | |
| 244 | + | } | |
| 245 | + | ||
| 246 | + | type Union struct { | |
| 247 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 union"` | |
| 248 | + | ||
| 249 | + | Name string `xml:"name,attr"` // Go case | |
| 250 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 251 | + | CSymbolPrefix string `xml:"http://www.gtk.org/introspection/c/1.0 symbol-prefix,attr"` | |
| 252 | + | GLibTypeName string `xml:"http://www.gtk.org/introspection/glib/1.0 type-name,attr"` | |
| 253 | + | GLibGetType string `xml:"http://www.gtk.org/introspection/glib/1.0 get-type,attr"` | |
| 254 | + | ||
| 255 | + | InfoAttrs | |
| 256 | + | InfoElements | |
| 257 | + | ||
| 258 | + | Fields []Field `xml:"http://www.gtk.org/introspection/core/1.0 field"` | |
| 259 | + | Constructors []Constructor `xml:"http://www.gtk.org/introspection/core/1.0 constructor"` | |
| 260 | + | Methods []Method `xml:"http://www.gtk.org/introspection/core/1.0 method"` | |
| 261 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 262 | + | Records []Record `xml:"http://www.gtk.org/introspection/core/1.0 record"` | |
| 263 | + | } | |
| 264 | + | ||
| 265 | + | type VarArgs struct { | |
| 266 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 varargs"` | |
| 267 | + | } | |
| 268 | + | ||
| 269 | + | type VirtualMethod struct { | |
| 270 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 virtual-method"` | |
| 271 | + | ||
| 272 | + | Invoker string `xml:"invoker,attr"` | |
| 273 | + | CallableAttrs | |
| 274 | + | } | |
| 275 | + | ||
| 276 | + | type Boxed struct{} | |
| 277 | + | ||
| 278 | + | type CInclude struct { | |
| 279 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/c/1.0 include"` | |
| 280 | + | Name string `xml:"name,attr"` | |
| 281 | + | } | |
| 282 | + | ||
| 283 | + | type CallableAttrs struct { | |
| 284 | + | Name string `xml:"name,attr"` | |
| 285 | + | CIdentifier string `xml:"http://www.gtk.org/introspection/c/1.0 identifier,attr"` | |
| 286 | + | ShadowedBy string `xml:"shadowed-by,attr"` | |
| 287 | + | Shadows string `xml:"shadows,attr"` | |
| 288 | + | Throws bool `xml:"throws,attr"` | |
| 289 | + | MovedTo string `xml:"moved-to,attr"` | |
| 290 | + | Parameters *Parameters `xml:"http://www.gtk.org/introspection/core/1.0 parameters"` | |
| 291 | + | ReturnValue *ReturnValue `xml:"http://www.gtk.org/introspection/core/1.0 return-value"` | |
| 292 | + | InfoAttrs | |
| 293 | + | InfoElements | |
| 294 | + | } | |
| 295 | + | ||
| 296 | + | type Callback struct { | |
| 297 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 callback"` | |
| 298 | + | CallableAttrs | |
| 299 | + | } | |
| 300 | + | ||
| 301 | + | type Class struct { | |
| 302 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 class"` | |
| 303 | + | Name string `xml:"name,attr"` | |
| 304 | + | Parent string `xml:"parent,attr"` | |
| 305 | + | Abstract bool `xml:"abstract,attr"` | |
| 306 | + | ||
| 307 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 308 | + | CSymbolPrefix string `xml:"http://www.gtk.org/introspection/c/1.0 symbol-prefix,attr"` | |
| 309 | + | ||
| 310 | + | GLibTypeName string `xml:"http://www.gtk.org/introspection/glib/1.0 type-name,attr"` | |
| 311 | + | GLibGetType string `xml:"http://www.gtk.org/introspection/glib/1.0 get-type,attr"` | |
| 312 | + | GLibTypeStruct string `xml:"http://www.gtk.org/introspection/glib/1.0 type-struct,attr"` | |
| 313 | + | ||
| 314 | + | InfoAttrs | |
| 315 | + | InfoElements | |
| 316 | + | ||
| 317 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 318 | + | Implements []Implements `xml:"http://www.gtk.org/introspection/core/1.0 implements"` | |
| 319 | + | Constructors []Constructor `xml:"http://www.gtk.org/introspection/core/1.0 constructor"` | |
| 320 | + | Methods []Method `xml:"http://www.gtk.org/introspection/core/1.0 method"` | |
| 321 | + | VirtualMethods []VirtualMethod `xml:"http://www.gtk.org/introspection/core/1.0 virtual-method"` | |
| 322 | + | Fields []Field `xml:"http://www.gtk.org/introspection/core/1.0 field"` | |
| 323 | + | Signals []Signal `xml:"http://www.gtk.org/introspection/glib/1.0 signal"` | |
| 324 | + | } | |
| 325 | + | ||
| 326 | + | type Constant struct { | |
| 327 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 constant"` | |
| 328 | + | Name string `xml:"name,attr"` | |
| 329 | + | Value string `xml:"value,attr"` | |
| 330 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 331 | + | ||
| 332 | + | Type Type `xml:"http://www.gtk.org/introspection/core/1.0 type"` | |
| 333 | + | ||
| 334 | + | InfoAttrs | |
| 335 | + | InfoElements | |
| 336 | + | } | |
| 337 | + | ||
| 338 | + | type Constructor struct { | |
| 339 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 constructor"` | |
| 340 | + | CallableAttrs | |
| 341 | + | } | |
| 342 | + | ||
| 343 | + | type Doc struct { | |
| 344 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 doc"` | |
| 345 | + | Filename string `xml:"filename,attr"` | |
| 346 | + | String string `xml:",innerxml"` | |
| 347 | + | Line int `xml:"line,attr"` | |
| 348 | + | } | |
| 349 | + | ||
| 350 | + | func (d *Doc) StringSafe() string { | |
| 351 | + | if d == nil { | |
| 352 | + | return "" | |
| 353 | + | } | |
| 354 | + | lines := strings.Split(d.String, "\n") | |
| 355 | + | for i, l := range lines { | |
| 356 | + | lines[i] = "// " + l | |
| 357 | + | } | |
| 358 | + | return strings.Join(lines, "\n") | |
| 359 | + | } | |
| 360 | + | ||
| 361 | + | type DocDeprecated struct { | |
| 362 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 doc-deprecated"` | |
| 363 | + | String string `xml:",innerxml"` | |
| 364 | + | } | |
| 365 | + | ||
| 366 | + | type DocElements struct { | |
| 367 | + | Doc *Doc | |
| 368 | + | DocDeprecated *DocDeprecated | |
| 369 | + | SourcePosition *SourcePosition | |
| 370 | + | } | |
| 371 | + | ||
| 372 | + | func (d *DocElements) FilenameSafe() string { | |
| 373 | + | if d == nil || (d.SourcePosition == nil && d.Doc == nil) { | |
| 374 | + | return "main.go" | |
| 375 | + | } | |
| 376 | + | if d.SourcePosition != nil { | |
| 377 | + | return util.TranslateFilename(d.SourcePosition.Filename) | |
| 378 | + | } | |
| 379 | + | return util.TranslateFilename(d.Doc.Filename) | |
| 380 | + | } | |
| 381 | + | ||
| 382 | + | type Enum struct { | |
| 383 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 enumeration"` | |
| 384 | + | ||
| 385 | + | Name string `xml:"name,attr"` // Go case | |
| 386 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 387 | + | GLibTypeName string `xml:"http://www.gtk.org/introspection/glib/1.0 type-name,attr"` | |
| 388 | + | GLibGetType string `xml:"http://www.gtk.org/introspection/glib/1.0 get-type,attr"` | |
| 389 | + | GLibErrorDomain string `xml:"http://www.gtk.org/introspection/glib/1.0 error-domain,attr"` | |
| 390 | + | ||
| 391 | + | Members []Member `xml:"http://www.gtk.org/introspection/core/1.0 member"` | |
| 392 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 393 | + | ||
| 394 | + | InfoAttrs | |
| 395 | + | InfoElements | |
| 396 | + | } | |
| 397 | + | ||
| 398 | + | func (e *Enum) Template(ns string) EnumTemplate { | |
| 399 | + | els := make([]enumValues, len(e.Members)) | |
| 400 | + | ||
| 401 | + | for i, m := range e.Members { | |
| 402 | + | v, err := strconv.Atoi(m.Value) | |
| 403 | + | if err != nil { | |
| 404 | + | panic(err) | |
| 405 | + | } | |
| 406 | + | id := strings.ToLower(m.CIdentifier) | |
| 407 | + | sID := util.RemoveSnakePrefix(id, ns) | |
| 408 | + | els[i] = enumValues{ | |
| 409 | + | Doc: m.Doc.StringSafe(), | |
| 410 | + | // + Value needed to get rid of duplicates | |
| 411 | + | Name: util.SnakeToCamel(sID) + "Value", | |
| 412 | + | Value: v, | |
| 413 | + | } | |
| 414 | + | } | |
| 415 | + | return EnumTemplate{ | |
| 416 | + | Name: util.SnakeToCamel(e.Name), | |
| 417 | + | Doc: e.Doc.StringSafe(), | |
| 418 | + | Values: els, | |
| 419 | + | } | |
| 420 | + | } | |
| 421 | + | ||
| 422 | + | type Field struct { | |
| 423 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 field"` | |
| 424 | + | Name string `xml:"name,attr"` | |
| 425 | + | Bits int `xml:"bits,attr"` | |
| 426 | + | Private bool `xml:"private,attr"` | |
| 427 | + | Writable bool `xml:"writable,attr"` // default false | |
| 428 | + | Readable *bool `xml:"readable,attr"` // default true | |
| 429 | + | AnyType | |
| 430 | + | Callback *Callback | |
| 431 | + | Doc *Doc | |
| 432 | + | } | |
| 433 | + | ||
| 434 | + | // IsReadable returns true if the field is readable. | |
| 435 | + | func (f Field) IsReadable() bool { | |
| 436 | + | return f.Readable == nil || *f.Readable | |
| 437 | + | } | |
| 438 | + | ||
| 439 | + | type Function struct { | |
| 440 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 441 | + | CallableAttrs | |
| 442 | + | } | |
| 443 | + | ||
| 444 | + | type Implements struct { | |
| 445 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 implements"` | |
| 446 | + | Name string `xml:"name,attr"` | |
| 447 | + | } | |
| 448 | + | ||
| 449 | + | type Include struct { | |
| 450 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 include"` | |
| 451 | + | Name string `xml:"name,attr"` | |
| 452 | + | Version string `xml:"version,attr"` | |
| 453 | + | } | |
| 454 | + | ||
| 455 | + | type InfoAttrs struct { | |
| 456 | + | Introspectable *bool `xml:"introspectable,attr"` // default true | |
| 457 | + | Deprecated bool `xml:"deprecated,attr"` | |
| 458 | + | DeprecatedVersion string `xml:"deprecated-version,attr"` | |
| 459 | + | Version string `xml:"version,attr"` | |
| 460 | + | Stability string `xml:"stability,attr"` | |
| 461 | + | } | |
| 462 | + | ||
| 463 | + | // IsIntrospectable returns true if the InfoAttrs indicates that the type is | |
| 464 | + | // introspectable. | |
| 465 | + | func (inf InfoAttrs) IsIntrospectable() bool { | |
| 466 | + | return inf.Introspectable == nil || *inf.Introspectable | |
| 467 | + | } | |
| 468 | + | ||
| 469 | + | type InfoElements struct { | |
| 470 | + | DocElements | |
| 471 | + | Annotations []Annotation `xml:"http://www.gtk.org/introspection/core/1.0 attribute"` | |
| 472 | + | } | |
| 473 | + | ||
| 474 | + | type InstanceParameter struct { | |
| 475 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 instance-parameter"` | |
| 476 | + | ParameterAttrs | |
| 477 | + | } | |
| 478 | + | ||
| 479 | + | type Interface struct { | |
| 480 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 interface"` | |
| 481 | + | Name string `xml:"name,attr"` | |
| 482 | + | ||
| 483 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 484 | + | CSymbolPrefix string `xml:"http://www.gtk.org/introspection/c/1.0 symbol-prefix,attr"` | |
| 485 | + | ||
| 486 | + | GLibTypeName string `xml:"http://www.gtk.org/introspection/glib/1.0 type-name,attr"` | |
| 487 | + | GLibGetType string `xml:"http://www.gtk.org/introspection/glib/1.0 get-type,attr"` | |
| 488 | + | GLibTypeStruct string `xml:"http://www.gtk.org/introspection/glib/1.0 type-struct,attr"` | |
| 489 | + | ||
| 490 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 491 | + | Methods []Method `xml:"http://www.gtk.org/introspection/core/1.0 method"` | |
| 492 | + | VirtualMethods []VirtualMethod `xml:"http://www.gtk.org/introspection/core/1.0 virtual-method"` | |
| 493 | + | Prerequisites []Prerequisite `xml:"http://www.gtk.org/introspection/core/1.0 prerequisite"` | |
| 494 | + | Signals []Signal `xml:"http://www.gtk.org/introspection/glib/1.0 signal"` | |
| 495 | + | ||
| 496 | + | InfoAttrs | |
| 497 | + | InfoElements | |
| 498 | + | } | |
| 499 | + | ||
| 500 | + | type Member struct { | |
| 501 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 member"` | |
| 502 | + | ||
| 503 | + | Names []xml.Attr `xml:"name,attr"` | |
| 504 | + | Value string `xml:"value,attr"` | |
| 505 | + | CIdentifier string `xml:"http://www.gtk.org/introspection/c/1.0 identifier,attr"` | |
| 506 | + | GLibNick string `xml:"http://www.gtk.org/introspection/glib/1.0 nick,attr"` | |
| 507 | + | ||
| 508 | + | InfoAttrs | |
| 509 | + | InfoElements | |
| 510 | + | } | |
| 511 | + | ||
| 512 | + | func (m Member) Name() string { | |
| 513 | + | return m.nameAttr(xml.Name{Local: "name"}) | |
| 514 | + | } | |
| 515 | + | ||
| 516 | + | func (m Member) GLibName() string { | |
| 517 | + | return m.nameAttr(xml.Name{Space: "http://www.gtk.org/introspection/glib/1.0", Local: "name"}) | |
| 518 | + | } | |
| 519 | + | ||
| 520 | + | func (m Member) nameAttr(name xml.Name) string { | |
| 521 | + | for _, attr := range m.Names { | |
| 522 | + | if attr.Name == name { | |
| 523 | + | return attr.Value | |
| 524 | + | } | |
| 525 | + | } | |
| 526 | + | return "" | |
| 527 | + | } | |
| 528 | + | ||
| 529 | + | type Method struct { | |
| 530 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 method"` | |
| 531 | + | CallableAttrs | |
| 532 | + | } | |
| 533 | + | ||
| 534 | + | type Namespace struct { | |
| 535 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 namespace"` | |
| 536 | + | ||
| 537 | + | Name string `xml:"name,attr"` | |
| 538 | + | Version string `xml:"version,attr"` | |
| 539 | + | CIdentifierPrefixes string `xml:"http://www.gtk.org/introspection/c/1.0 identifier-prefixes,attr"` | |
| 540 | + | CSymbolPrefixes string `xml:"http://www.gtk.org/introspection/c/1.0 symbol-prefixes,attr"` | |
| 541 | + | Prefix string `xml:"http://www.gtk.org/introspection/c/1.0 prefix,attr"` | |
| 542 | + | SharedLibrary string `xml:"shared-library,attr"` | |
| 543 | + | ||
| 544 | + | Aliases []Alias `xml:"http://www.gtk.org/introspection/core/1.0 alias"` | |
| 545 | + | Classes []Class `xml:"http://www.gtk.org/introspection/core/1.0 class"` | |
| 546 | + | Interfaces []Interface `xml:"http://www.gtk.org/introspection/core/1.0 interface"` | |
| 547 | + | Records []Record `xml:"http://www.gtk.org/introspection/core/1.0 record"` | |
| 548 | + | Enums []Enum `xml:"http://www.gtk.org/introspection/core/1.0 enumeration"` | |
| 549 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 550 | + | Unions []Union `xml:"http://www.gtk.org/introspection/core/1.0 union"` | |
| 551 | + | Bitfields []Bitfield `xml:"http://www.gtk.org/introspection/core/1.0 bitfield"` | |
| 552 | + | Callbacks []Callback `xml:"http://www.gtk.org/introspection/core/1.0 callback"` | |
| 553 | + | Constants []Constant `xml:"http://www.gtk.org/introspection/core/1.0 constant"` | |
| 554 | + | Annotations []Annotation `xml:"http://www.gtk.org/introspection/core/1.0 attribute"` | |
| 555 | + | Boxeds []Boxed `xml:"http://www.gtk.org/introspection/core/1.0 boxed"` | |
| 556 | + | } | |
| 557 | + | ||
| 558 | + | type Package struct { | |
| 559 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 package"` | |
| 560 | + | Name string `xml:"name,attr"` | |
| 561 | + | } | |
| 562 | + | ||
| 563 | + | type Parameter struct { | |
| 564 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 parameter"` | |
| 565 | + | ParameterAttrs | |
| 566 | + | } | |
| 567 | + | ||
| 568 | + | func (p *Parameter) Translate(ns string, kinds KindMap) string { | |
| 569 | + | if p.Name == "..." { | |
| 570 | + | return "...interface{}" | |
| 571 | + | } | |
| 572 | + | return p.AnyType.Translate(ns, kinds) | |
| 573 | + | } | |
| 574 | + | ||
| 575 | + | func (p *Parameter) VarName() string { | |
| 576 | + | snaked := util.SnakeToCamel(p.Name) | |
| 577 | + | if snaked == "..." { | |
| 578 | + | return "varArgs" | |
| 579 | + | } | |
| 580 | + | // avoid clash between same name of type and var | |
| 581 | + | // could also do first letter to lower? | |
| 582 | + | return snaked + "Var" | |
| 583 | + | } | |
| 584 | + | ||
| 585 | + | func (p *Parameters) Template(ns string, ifacens string, kinds KindMap) funcArgsTemplate { | |
| 586 | + | if p == nil { | |
| 587 | + | return funcArgsTemplate{} | |
| 588 | + | } | |
| 589 | + | params := p.Parameters | |
| 590 | + | if len(params) == 0 { | |
| 591 | + | return funcArgsTemplate{} | |
| 592 | + | } | |
| 593 | + | args := funcArgsTemplate{} | |
| 594 | + | for _, par := range params { | |
| 595 | + | args.Add(par, ifacens, ns, kinds) | |
| 596 | + | } | |
| 597 | + | return args | |
| 598 | + | } | |
| 599 | + | ||
| 600 | + | type ParameterAttrs struct { | |
| 601 | + | Name string `xml:"name,attr"` | |
| 602 | + | Direction string `xml:"direction,attr"` | |
| 603 | + | Scope string `xml:"scope,attr"` | |
| 604 | + | Closure *int `xml:"closure,attr"` | |
| 605 | + | Destroy *int `xml:"destroy,attr"` | |
| 606 | + | CallerAllocates bool `xml:"caller-allocates,attr"` | |
| 607 | + | Skip bool `xml:"skip,attr"` | |
| 608 | + | Optional bool `xml:"optional,attr"` | |
| 609 | + | Nullable bool `xml:"nullable,attr"` | |
| 610 | + | ||
| 611 | + | TransferOwnership | |
| 612 | + | AnyType | |
| 613 | + | Doc *Doc | |
| 614 | + | } | |
| 615 | + | ||
| 616 | + | type Parameters struct { | |
| 617 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 parameters"` | |
| 618 | + | InstanceParameter *InstanceParameter `xml:"http://www.gtk.org/introspection/core/1.0 instance-parameter"` | |
| 619 | + | Parameters []Parameter `xml:"http://www.gtk.org/introspection/core/1.0 parameter"` | |
| 620 | + | } | |
| 621 | + | ||
| 622 | + | type Prerequisite struct { | |
| 623 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 prerequisite"` | |
| 624 | + | Name string `xml:"name,attr"` | |
| 625 | + | } | |
| 626 | + | ||
| 627 | + | type Property struct{} | |
| 628 | + | ||
| 629 | + | type Record struct { | |
| 630 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 record"` | |
| 631 | + | Name string `xml:"name,attr"` | |
| 632 | + | CType string `xml:"http://www.gtk.org/introspection/c/1.0 type,attr"` | |
| 633 | + | GLibTypeName string `xml:"http://www.gtk.org/introspection/glib/1.0 type-name,attr"` | |
| 634 | + | GLibGetType string `xml:"http://www.gtk.org/introspection/glib/1.0 get-type,attr"` | |
| 635 | + | CSymbolPrefix string `xml:"http://www.gtk.org/introspection/c/1.0 symbol-prefix,attr"` | |
| 636 | + | GLibIsGTypeStructFor string `xml:"http://www.gtk.org/introspection/glib/1.0 is-gtype-struct-for,attr"` | |
| 637 | + | Disguised bool `xml:"disguised,attr"` | |
| 638 | + | Foreign bool `xml:"foreign,attr"` | |
| 639 | + | ||
| 640 | + | Fields []Field `xml:"http://www.gtk.org/introspection/core/1.0 field"` | |
| 641 | + | Functions []Function `xml:"http://www.gtk.org/introspection/core/1.0 function"` | |
| 642 | + | Unions []Union `xml:"http://www.gtk.org/introspection/core/1.0 union"` | |
| 643 | + | Methods []Method `xml:"http://www.gtk.org/introspection/core/1.0 method"` | |
| 644 | + | Constructors []Constructor `xml:"http://www.gtk.org/introspection/core/1.0 constructor"` | |
| 645 | + | Properties []Property `xml:"http://www.gtk.org/introspection/core/1.0 property"` | |
| 646 | + | ||
| 647 | + | InfoAttrs | |
| 648 | + | InfoElements | |
| 649 | + | } | |
| 650 | + | ||
| 651 | + | type ReturnValue struct { | |
| 652 | + | XMLName xml.Name `xml:"http://www.gtk.org/introspection/core/1.0 return-value"` | |
| 653 | + | Scope string `xml:"scope,attr"` | |
| 654 | + | Closure *int `xml:"closure,attr"` | |
| 655 | + | Destroy *int `xml:"destroy,attr"` | |
| 656 | + | Introspectable bool `xml:"introspectable,attr"` | |
| 657 | + | Nullable bool `xml:"nullable,attr"` | |
| 658 | + | Skip bool `xml:"skip,attr"` | |
| 659 | + | AllowNone bool `xml:"allow-none,attr"` | |
| 660 | + | TransferOwnership | |
| 661 | + | DocElements | |
| 662 | + | AnyType | |
| 663 | + | } | |
| 664 | + | ||
| 665 | + | func (r *ReturnValue) Template(ns string, ins string, kinds KindMap) funcRetTemplate { | |
| 666 | + | val := r.AnyType.Translate(ns, kinds) | |
| 667 | + | raw := val | |
| 668 | + | class := false | |
| 669 | + | lns := ns | |
| 670 | + | if ins != "" { | |
| 671 | + | lns = ins | |
| 672 | + | } | |
| 673 | + | kind := kinds.Kind(lns, raw) | |
| 674 | + | stars := strings.Count(val, "*") | |
| 675 | + | if kind != OtherType && kind != UnknownType { | |
| 676 | + | if ins != "" && strings.Count(val, ".") < 1 { | |
| 677 | + | val = ins + "." + val | |
| 678 | + | } | |
| 679 | + | } | |
| 680 | + | if stars > 0 { | |
| 681 | + | val = strings.Repeat("*", stars) + strings.ReplaceAll(val, "*", "") | |
| 682 | + | } | |
| 683 | + | switch kind { | |
| 684 | + | case ClassesType: | |
| 685 | + | raw = "uintptr" | |
| 686 | + | class = true | |
| 687 | + | case InterfacesType: | |
| 688 | + | raw = "uintptr" | |
| 689 | + | val += "Base" | |
| 690 | + | class = true | |
| 691 | + | } | |
| 692 | + | return funcRetTemplate{ | |
| 693 | + | Raw: raw, | |
| 694 | + | Value: val, | |
| 695 | + | Class: class, | |
| 696 | + | RefSink: r.TransferOwnership.TransferOwnership == "none", | |
| 697 | + | } | |
| 698 | + | } | |
A internal/gir/util/util.go +93 -0
| @@ -0,0 +1,93 @@ | |||
| 1 | + | // package util implements some utility functions for parsing/converting gir files | |
| 2 | + | // TODO: Maybe some of this can more easily be done with regexes? | |
| 3 | + | // | |
| 4 | + | // But using regexes introduces 2 problems :^) | |
| 5 | + | package util | |
| 6 | + | ||
| 7 | + | import ( | |
| 8 | + | "path/filepath" | |
| 9 | + | "strings" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | // delimToCamel to camel converts a string with parts separated by `delim` to CamelCase | |
| 13 | + | func delimToCamel(s string, delim string) string { | |
| 14 | + | var sb strings.Builder | |
| 15 | + | words := strings.Split(s, delim) | |
| 16 | + | for _, w := range words { | |
| 17 | + | sb.WriteString(strings.Title(w)) | |
| 18 | + | } | |
| 19 | + | return sb.String() | |
| 20 | + | } | |
| 21 | + | ||
| 22 | + | // SnakeToCamel converts hello_world to HelloWorld | |
| 23 | + | func SnakeToCamel(s string) string { | |
| 24 | + | return delimToCamel(s, "_") | |
| 25 | + | } | |
| 26 | + | ||
| 27 | + | // DashToCamel converts hello-world to HelloWorld | |
| 28 | + | func DashToCamel(s string) string { | |
| 29 | + | return delimToCamel(s, "-") | |
| 30 | + | } | |
| 31 | + | ||
| 32 | + | // RemoveSnakePrefix removes `prefix` from string `s` if that prefix ise separated with a _ | |
| 33 | + | // it removes lowercase or all u | |
| 34 | + | func RemoveSnakePrefix(s string, prefix string) string { | |
| 35 | + | parts := strings.Split(s, "_") | |
| 36 | + | if len(parts) <= 1 { | |
| 37 | + | return s | |
| 38 | + | } | |
| 39 | + | if strings.EqualFold(parts[0], prefix) { | |
| 40 | + | parts = parts[1:] | |
| 41 | + | } | |
| 42 | + | return strings.Join(parts, "_") | |
| 43 | + | } | |
| 44 | + | ||
| 45 | + | // ReplaceExtension replaces an extension from filename with ext | |
| 46 | + | // the extension is found by splitting on "." and taking the last part | |
| 47 | + | func ReplaceExtension(filename string, ext string) string { | |
| 48 | + | splt := strings.Split(filename, ".") | |
| 49 | + | if len(splt) == 1 { | |
| 50 | + | return filename | |
| 51 | + | } | |
| 52 | + | splt[len(splt)-1] = ext | |
| 53 | + | return strings.Join(splt, ".") | |
| 54 | + | } | |
| 55 | + | ||
| 56 | + | // NormalizeNamespace converts a type to one that always includes a lowercase namespace | |
| 57 | + | // if no namespace is found, it adds `ns`, unless if strip is True then namespaces always equaling `ns` will be removed | |
| 58 | + | func NormalizeNamespace(ns string, gotype string, strip bool) string { | |
| 59 | + | if ns == "" { | |
| 60 | + | return "" | |
| 61 | + | } | |
| 62 | + | gotype = strings.Trim(gotype, "*") | |
| 63 | + | splt := strings.Split(gotype, ".") | |
| 64 | + | if len(splt) <= 1 { | |
| 65 | + | splt = append([]string{ns}, splt...) | |
| 66 | + | } | |
| 67 | + | splt[0] = strings.ToLower(splt[0]) | |
| 68 | + | if strip && splt[0] == strings.ToLower(ns) { | |
| 69 | + | splt = splt[1:] | |
| 70 | + | } | |
| 71 | + | return strings.Join(splt, ".") | |
| 72 | + | } | |
| 73 | + | ||
| 74 | + | // TranslateFilename translates a file path by renaming the file to a go suitable file | |
| 75 | + | func TranslateFilename(filename string) string { | |
| 76 | + | if filename == "" { | |
| 77 | + | return "main.go" | |
| 78 | + | } | |
| 79 | + | ||
| 80 | + | b := filepath.Base(filename) | |
| 81 | + | return ReplaceExtension(b, "go") | |
| 82 | + | } | |
| 83 | + | ||
| 84 | + | func ConvertArgs(a []string) string { | |
| 85 | + | return strings.Join(a, ", ") | |
| 86 | + | } | |
| 87 | + | ||
| 88 | + | func ConvertArgsComma(a []string) string { | |
| 89 | + | if len(a) == 0 { | |
| 90 | + | return "" | |
| 91 | + | } | |
| 92 | + | return ", " + strings.Join(a, ", ") | |
| 93 | + | } | |
A shell.nix +26 -0
| @@ -0,0 +1,26 @@ | |||
| 1 | + | { pkgs ? import <nixpkgs> {} }: | |
| 2 | + | pkgs.mkShell { | |
| 3 | + | # nativeBuildInputs is usually what you want -- tools you need to run | |
| 4 | + | buildInputs = [ | |
| 5 | + | pkgs.go | |
| 6 | + | pkgs.godef | |
| 7 | + | pkgs.go-tools | |
| 8 | + | pkgs.vim | |
| 9 | + | pkgs.gofumpt | |
| 10 | + | pkgs.gopls | |
| 11 | + | pkgs.python3 | |
| 12 | + | pkgs.libadwaita.dev | |
| 13 | + | pkgs.python3.pkgs.pip | |
| 14 | + | pkgs.gotools | |
| 15 | + | ]; | |
| 16 | + | shellHook = '' | |
| 17 | + | # Tells pip to put packages into $PIP_PREFIX instead of the usual locations. | |
| 18 | + | # See https://pip.pypa.io/en/stable/user_guide/#environment-variables. | |
| 19 | + | export PIP_PREFIX=$(pwd)/_build/pip_packages | |
| 20 | + | export PYTHONPATH="$PIP_PREFIX/${pkgs.python3.sitePackages}:$PYTHONPATH" | |
| 21 | + | export PATH="$PIP_PREFIX/bin:$PATH" | |
| 22 | + | export GOPATH="$HOME/go" | |
| 23 | + | unset SOURCE_DATE_EPOCH | |
| 24 | + | ''; | |
| 25 | + | } | |
| 26 | + | ||
A templates/go +264 -0
| @@ -0,0 +1,264 @@ | |||
| 1 | + | // Package {{.PkgName}} was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package {{.PkgName}} | |
| 3 | + | ||
| 4 | + | {{ $NotGObject := ne .PkgName "gobject" }} | |
| 5 | + | ||
| 6 | + | {{if or .Imports .NeedsInit}} | |
| 7 | + | import ( | |
| 8 | + | {{if .NeedsInit}} | |
| 9 | + | "github.com/jwijenbergh/purego" | |
| 10 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 11 | + | {{end}} | |
| 12 | + | {{range .Imports -}} | |
| 13 | + | "github.com/jwijenbergh/puregotk/v4/{{.}}" | |
| 14 | + | {{end}} | |
| 15 | + | ) | |
| 16 | + | {{end}} | |
| 17 | + | ||
| 18 | + | {{$outer := .}} | |
| 19 | + | ||
| 20 | + | {{range .Callbacks -}} | |
| 21 | + | {{.Doc}} | |
| 22 | + | type {{.Name}} func({{ conv .Args.Pure.Types }}) {{.Ret.Raw}} | |
| 23 | + | {{end}} | |
| 24 | + | ||
| 25 | + | {{range .Records -}} | |
| 26 | + | {{.Doc}} | |
| 27 | + | type {{.Name}} struct { | |
| 28 | + | {{range .Fields}} | |
| 29 | + | {{.Name}} {{.Type}} | |
| 30 | + | {{end}} | |
| 31 | + | } | |
| 32 | + | {{end}} | |
| 33 | + | ||
| 34 | + | {{range .Interfaces -}} | |
| 35 | + | {{.Doc}} | |
| 36 | + | type {{.Name}} interface { | |
| 37 | + | GoPointer() uintptr | |
| 38 | + | SetGoPointer(uintptr) | |
| 39 | + | {{range .Methods -}} | |
| 40 | + | {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Value}} | |
| 41 | + | {{end}} | |
| 42 | + | } | |
| 43 | + | type {{.Name}}Base struct { | |
| 44 | + | Ptr uintptr | |
| 45 | + | } | |
| 46 | + | ||
| 47 | + | func (x *{{.Name}}Base) GoPointer() uintptr { | |
| 48 | + | return x.Ptr | |
| 49 | + | } | |
| 50 | + | ||
| 51 | + | func (x *{{.Name}}Base) SetGoPointer(ptr uintptr) { | |
| 52 | + | x.Ptr = ptr | |
| 53 | + | } | |
| 54 | + | ||
| 55 | + | {{$outer := .}} | |
| 56 | + | {{range .Methods -}} | |
| 57 | + | {{.Doc}} | |
| 58 | + | func (x *{{$outer.Name}}Base) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Value}} { | |
| 59 | + | {{if .Ret.Class}} | |
| 60 | + | {{.Name}}Ptr := {{.Namespace}}X{{.FullName}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 61 | + | if {{.Name}}Ptr == 0 { | |
| 62 | + | return nil | |
| 63 | + | } | |
| 64 | + | {{if .Ret.RefSink}} | |
| 65 | + | {{if $NotGObject}}gobject.{{end}}IncreaseRef({{.Name}}Ptr) | |
| 66 | + | {{end}} | |
| 67 | + | {{.Name}}Cls := {{.Ret.Instance}}{} | |
| 68 | + | {{.Name}}Cls.Ptr = {{.Name}}Ptr | |
| 69 | + | return {{.Name}}Cls | |
| 70 | + | {{else if .Ret.Value}} | |
| 71 | + | return {{.Namespace}}X{{.FullName}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 72 | + | {{else}} | |
| 73 | + | {{.Namespace}}X{{.FullName}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 74 | + | {{end}} | |
| 75 | + | } | |
| 76 | + | {{end}} | |
| 77 | + | ||
| 78 | + | {{range .Methods -}} | |
| 79 | + | var {{.Namespace}}X{{.FullName}} func(uintptr {{convc .Args.Pure.Types}}) {{.Ret.Raw}} | |
| 80 | + | {{end}} | |
| 81 | + | {{end}} | |
| 82 | + | ||
| 83 | + | {{range .Aliases -}} | |
| 84 | + | {{.Doc}} | |
| 85 | + | type {{.Name}} = {{.Value}} | |
| 86 | + | {{end}} | |
| 87 | + | ||
| 88 | + | {{range .Enums -}} | |
| 89 | + | {{.Doc}} | |
| 90 | + | type {{.Name}} int | |
| 91 | + | const ( | |
| 92 | + | {{$outer := .}} | |
| 93 | + | {{range .Values -}} | |
| 94 | + | {{.Doc}} | |
| 95 | + | {{.Name}} {{$outer.Name}} = {{.Value}} | |
| 96 | + | {{end}} | |
| 97 | + | ) | |
| 98 | + | {{end}} | |
| 99 | + | ||
| 100 | + | {{range .Functions -}} | |
| 101 | + | var x{{.Name}} func({{conv .Args.Pure.Types}}) {{.Ret.Raw}} | |
| 102 | + | ||
| 103 | + | {{.Doc}} | |
| 104 | + | func {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Value}} { | |
| 105 | + | {{if .Ret.Class}} | |
| 106 | + | {{.Name}}Ptr := x{{.Name}}({{conv .Args.API.Call}}) | |
| 107 | + | if {{.Name}}Ptr == 0 { | |
| 108 | + | return nil | |
| 109 | + | } | |
| 110 | + | {{if .Ret.RefSink}} | |
| 111 | + | {{if $NotGObject}}gobject.{{end}}IncreaseRef({{.Name}}Ptr) | |
| 112 | + | {{end}} | |
| 113 | + | {{.Name}}Cls := {{.Ret.Instance}}{} | |
| 114 | + | {{.Name}}Cls.Ptr = {{.Name}}Ptr | |
| 115 | + | return {{.Name}}Cls | |
| 116 | + | {{else if .Ret.Value}} | |
| 117 | + | return x{{.Name}}({{conv .Args.API.Call}}) | |
| 118 | + | {{else}} | |
| 119 | + | x{{.Name}}({{conv .Args.API.Call}}) | |
| 120 | + | {{end}} | |
| 121 | + | } | |
| 122 | + | {{end}} | |
| 123 | + | ||
| 124 | + | {{range .Classes -}} | |
| 125 | + | {{.Doc}} | |
| 126 | + | type {{.Name}} struct { | |
| 127 | + | {{.Parent}} | |
| 128 | + | {{if not .Parent}} | |
| 129 | + | Ptr uintptr | |
| 130 | + | {{end}} | |
| 131 | + | } | |
| 132 | + | ||
| 133 | + | {{$outer := .}} | |
| 134 | + | func {{.Name}}NewFromInternalPtr(ptr uintptr) *{{.Name}} { | |
| 135 | + | cls := &{{.Name}}{} | |
| 136 | + | cls.Ptr = ptr | |
| 137 | + | return cls | |
| 138 | + | } | |
| 139 | + | ||
| 140 | + | {{range .Constructors -}} | |
| 141 | + | var x{{.Name}}{{$outer.Name}} func({{conv .Args.Pure.Types}}) {{.Ret.Raw}} | |
| 142 | + | ||
| 143 | + | ||
| 144 | + | {{.Doc}} | |
| 145 | + | func {{.Name}}{{$outer.Name}}({{conv .Args.API.Full}}) {{.Ret.Value}} { | |
| 146 | + | {{.Name}}{{$outer.Name}}Ptr := x{{.Name}}{{$outer.Name}}({{conv .Args.API.Call}}) | |
| 147 | + | if {{.Name}}{{$outer.Name}}Ptr == 0 { | |
| 148 | + | return nil | |
| 149 | + | } | |
| 150 | + | {{if .Ret.RefSink}} | |
| 151 | + | {{if $NotGObject}}gobject.{{end}}IncreaseRef({{.Name}}{{$outer.Name}}Ptr) | |
| 152 | + | {{end}} | |
| 153 | + | {{.Name}}{{$outer.Name}}Cls := {{.Ret.Instance}}{} | |
| 154 | + | {{.Name}}{{$outer.Name}}Cls.Ptr = {{.Name}}{{$outer.Name}}Ptr | |
| 155 | + | return {{.Name}}{{$outer.Name}}Cls | |
| 156 | + | } | |
| 157 | + | {{end}} | |
| 158 | + | ||
| 159 | + | {{$outer := .}} | |
| 160 | + | {{range .Receivers -}} | |
| 161 | + | var x{{$outer.Name}}{{.Name}} func(uintptr {{convc .Args.Pure.Types}}) {{.Ret.Raw}} | |
| 162 | + | ||
| 163 | + | {{.Doc}} | |
| 164 | + | func (x *{{$outer.Name}}) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Value}} { | |
| 165 | + | {{if .Ret.Class}} | |
| 166 | + | {{.Name}}Ptr := x{{$outer.Name}}{{.Name}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 167 | + | if {{.Name}}Ptr == 0 { | |
| 168 | + | return nil | |
| 169 | + | } | |
| 170 | + | {{if .Ret.RefSink}} | |
| 171 | + | {{if $NotGObject}}gobject.{{end}}IncreaseRef({{.Name}}Ptr) | |
| 172 | + | {{end}} | |
| 173 | + | {{.Name}}Cls := {{.Ret.Instance}}{} | |
| 174 | + | {{.Name}}Cls.Ptr = {{.Name}}Ptr | |
| 175 | + | return {{.Name}}Cls | |
| 176 | + | {{else if .Ret.Value}} | |
| 177 | + | return x{{$outer.Name}}{{.Name}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 178 | + | {{else}} | |
| 179 | + | x{{$outer.Name}}{{.Name}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 180 | + | {{end}} | |
| 181 | + | } | |
| 182 | + | {{end}} | |
| 183 | + | ||
| 184 | + | func (c *{{.Name}}) GoPointer() uintptr { | |
| 185 | + | return c.Ptr | |
| 186 | + | } | |
| 187 | + | ||
| 188 | + | func (c *{{.Name}}) SetGoPointer(ptr uintptr) { | |
| 189 | + | c.Ptr = ptr | |
| 190 | + | } | |
| 191 | + | ||
| 192 | + | {{range .Signals -}} | |
| 193 | + | ||
| 194 | + | {{.Doc}} | |
| 195 | + | func (x *{{$outer.Name}}) Connect{{.Name}}(cb func({{$outer.Name}} {{convc .Args.API.Types}}) {{.Ret.Value}}) { | |
| 196 | + | fcb := func(clsPtr uintptr {{convc .Args.Pure.Full}}) {{.Ret.Raw}} { | |
| 197 | + | fa := {{$outer.Name}}{} | |
| 198 | + | fa.Ptr = clsPtr | |
| 199 | + | {{if .Ret.Class}} | |
| 200 | + | {{.Name}}Cls := cb(fa {{convc .Args.Pure.Call}}) | |
| 201 | + | return {{.Name}}Cls.Ptr | |
| 202 | + | {{else if .Ret.Value}} | |
| 203 | + | return cb(fa {{convc .Args.Pure.Call}}) | |
| 204 | + | {{else}} | |
| 205 | + | cb(fa {{convc .Args.Pure.Call}}) | |
| 206 | + | {{end}} | |
| 207 | + | } | |
| 208 | + | {{if $NotGObject}}gobject.{{end}}ObjectConnect(x.GoPointer(), "signal::{{.CName}}", purego.NewCallback(fcb)) | |
| 209 | + | } | |
| 210 | + | {{end}} | |
| 211 | + | ||
| 212 | + | {{range .Interfaces -}} | |
| 213 | + | {{range .Methods -}} | |
| 214 | + | {{.Doc}} | |
| 215 | + | func (x *{{$outer.Name}}) {{.Name}}({{conv .Args.API.Full}}) {{.Ret.Value}} { | |
| 216 | + | {{if .Ret.Class}} | |
| 217 | + | {{.Name}}Ptr := {{.Namespace}}X{{.FullName}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 218 | + | if {{.Name}}Ptr == 0 { | |
| 219 | + | return nil | |
| 220 | + | } | |
| 221 | + | {{if .Ret.RefSink}} | |
| 222 | + | {{if $NotGObject}}gobject.{{end}}IncreaseRef({{.Name}}Ptr) | |
| 223 | + | {{end}} | |
| 224 | + | {{.Name}}Cls := {{.Ret.Instance}}{} | |
| 225 | + | {{.Name}}Cls.Ptr = {{.Name}}Ptr | |
| 226 | + | return {{.Name}}Cls | |
| 227 | + | {{else if .Ret.Value}} | |
| 228 | + | return {{.Namespace}}X{{.FullName}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 229 | + | {{else}} | |
| 230 | + | {{.Namespace}}X{{.FullName}}(x.GoPointer() {{convc .Args.API.Call}}) | |
| 231 | + | {{end}} | |
| 232 | + | } | |
| 233 | + | {{end}} | |
| 234 | + | {{end}} | |
| 235 | + | ||
| 236 | + | {{end}} | |
| 237 | + | ||
| 238 | + | ||
| 239 | + | {{if .NeedsInit}} | |
| 240 | + | ||
| 241 | + | func init() { | |
| 242 | + | lib, err := purego.Dlopen(core.GetPath("{{.PkgEnv}}"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 243 | + | if err != nil { | |
| 244 | + | panic(err) | |
| 245 | + | } | |
| 246 | + | {{range .Functions -}} | |
| 247 | + | core.PuregoSafeRegister(&x{{.Name}}, lib, "{{.CName}}") | |
| 248 | + | {{end}} | |
| 249 | + | {{range .Classes -}} | |
| 250 | + | {{$cls := .}} | |
| 251 | + | {{range .Constructors -}} | |
| 252 | + | core.PuregoSafeRegister(&x{{.Name}}{{$cls.Name}}, lib, "{{.CName}}") | |
| 253 | + | {{end}} | |
| 254 | + | {{range .Receivers -}} | |
| 255 | + | core.PuregoSafeRegister(&x{{$cls.Name}}{{.Name}}, lib, "{{.CName}}") | |
| 256 | + | {{end}} | |
| 257 | + | {{end}} | |
| 258 | + | {{range .Interfaces -}} | |
| 259 | + | {{range .Methods -}} | |
| 260 | + | core.PuregoSafeRegister(&{{.Namespace}}X{{.FullName}}, lib, "{{.CName}}") | |
| 261 | + | {{end}} | |
| 262 | + | {{end}} | |
| 263 | + | } | |
| 264 | + | {{end}} | |
A templates/gobject +94 -0
| @@ -0,0 +1,94 @@ | |||
| 1 | + | package gobject | |
| 2 | + | ||
| 3 | + | import ( | |
| 4 | + | "os" | |
| 5 | + | "reflect" | |
| 6 | + | ||
| 7 | + | "github.com/jwijenbergh/purego" | |
| 8 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type Ptr interface { | |
| 12 | + | GoPointer() uintptr | |
| 13 | + | SetGoPointer(uintptr) | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | func ConvertPtr(a interface{}) *uintptr { | |
| 17 | + | if a == nil || (reflect.ValueOf(a).Kind() == reflect.Ptr && reflect.ValueOf(a).IsNil()) { | |
| 18 | + | return nil | |
| 19 | + | } | |
| 20 | + | ptr := reflect.ValueOf(a).Elem() | |
| 21 | + | v, ok := ptr.Interface().(Ptr); | |
| 22 | + | if !ok { | |
| 23 | + | panic("not valid") | |
| 24 | + | } | |
| 25 | + | g := v.GoPointer() | |
| 26 | + | return &g | |
| 27 | + | } | |
| 28 | + | ||
| 29 | + | func IncreaseRef(a uintptr) { | |
| 30 | + | xObjectRefSink(a) | |
| 31 | + | } | |
| 32 | + | ||
| 33 | + | func ObjectConnect(a uintptr, b string, c ...interface{}) uintptr { | |
| 34 | + | return xObjectConnect(a, b, c...) | |
| 35 | + | } | |
| 36 | + | ||
| 37 | + | func (o Object) Cast(v Ptr) { | |
| 38 | + | v.SetGoPointer(o.GoPointer()) | |
| 39 | + | } | |
| 40 | + | ||
| 41 | + | // NewCallback is an alias to purego.NewCallback | |
| 42 | + | func NewCallback(fn interface{}) uintptr { | |
| 43 | + | return purego.NewCallback(fn) | |
| 44 | + | } | |
| 45 | + | ||
| 46 | + | // types | |
| 47 | + | const ( | |
| 48 | + | TypeInvalidVal Type = 0 | |
| 49 | + | TypeNoneVal = 1 << 2 | |
| 50 | + | TypeInterfaceVal = 2 << 2 | |
| 51 | + | TypeCharVal = 3 << 2 | |
| 52 | + | TypeUcharVal = 4 << 2 | |
| 53 | + | TypeBooleanVal = 5 << 2 | |
| 54 | + | TypeIntVal = 6 << 2 | |
| 55 | + | TypeUintVal = 7 << 2 | |
| 56 | + | TypeLongVal = 8 << 2 | |
| 57 | + | TypeUlongVal = 9 << 2 | |
| 58 | + | TypeInt64Val = 10 << 2 | |
| 59 | + | TypeUint64Val = 11 << 2 | |
| 60 | + | TypeEnumVal = 12 << 2 | |
| 61 | + | TypeFlagsVal = 13 << 2 | |
| 62 | + | TypeFloatVal = 14 << 2 | |
| 63 | + | TypeDoubleVal = 15 << 2 | |
| 64 | + | TypeStringVal = 16 << 2 | |
| 65 | + | TypePointerVal = 17 << 2 | |
| 66 | + | TypeBoxedVal = 18 << 2 | |
| 67 | + | TypeParamVal = 19 << 2 | |
| 68 | + | TypeObjectVal = 20 << 2 | |
| 69 | + | TypeReservedGLibLastVal = 31 << 2 | |
| 70 | + | TypeReservedBseFirstVal = 32 << 2 | |
| 71 | + | TypeReservedBseLastVal = 48 << 2 | |
| 72 | + | TypeReservedUserFirstVal = 49 << 2 | |
| 73 | + | ) | |
| 74 | + | ||
| 75 | + | var xValueDupString func(*Value) string | |
| 76 | + | ||
| 77 | + | func (v *Value) String() string { | |
| 78 | + | return xValueDupString(v) | |
| 79 | + | } | |
| 80 | + | ||
| 81 | + | var xValueGetInt func(*Value) int | |
| 82 | + | ||
| 83 | + | func (v *Value) Int() int { | |
| 84 | + | return xValueGetInt(v) | |
| 85 | + | } | |
| 86 | + | ||
| 87 | + | func init() { | |
| 88 | + | lib, err := purego.Dlopen(os.Getenv("PUREGOTK_GTK_PATH"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 89 | + | if err != nil { | |
| 90 | + | panic(err) | |
| 91 | + | } | |
| 92 | + | core.PuregoSafeRegister(&xValueDupString, lib, "g_value_dup_string") | |
| 93 | + | core.PuregoSafeRegister(&xValueGetInt, lib, "g_value_get_int") | |
| 94 | + | } | |
A v4/adw/adw-about-window.go +1220 -0
| @@ -0,0 +1,1220 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gsk" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | type AboutWindowClass struct { | |
| 14 | + | ParentClass uintptr | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | var xShowAboutWindow func(uintptr, string, ...interface{}) | |
| 18 | + | ||
| 19 | + | // A convenience function for showing an application’s about window. | |
| 20 | + | func ShowAboutWindow(ParentVar *gtk.Window, FirstPropertyNameVar string, varArgs ...interface{}) { | |
| 21 | + | ||
| 22 | + | xShowAboutWindow(ParentVar.GoPointer(), FirstPropertyNameVar, varArgs...) | |
| 23 | + | ||
| 24 | + | } | |
| 25 | + | ||
| 26 | + | // A window showing information about the application. | |
| 27 | + | // | |
| 28 | + | // <picture> | |
| 29 | + | // | |
| 30 | + | // <source srcset="about-window-dark.png" media="(prefers-color-scheme: dark)"> | |
| 31 | + | // <img src="about-window.png" alt="about-window"> | |
| 32 | + | // | |
| 33 | + | // </picture> | |
| 34 | + | // | |
| 35 | + | // An about window is typically opened when the user activates the `About …` | |
| 36 | + | // item in the application's primary menu. All parts of the window are optional. | |
| 37 | + | // | |
| 38 | + | // ## Main page | |
| 39 | + | // | |
| 40 | + | // `AdwAboutWindow` prominently displays the application's icon, name, developer | |
| 41 | + | // name and version. They can be set with the [property@AboutWindow:application-icon], | |
| 42 | + | // [property@AboutWindow:application-name], | |
| 43 | + | // [property@AboutWindow:developer-name] and [property@AboutWindow:version] | |
| 44 | + | // respectively. | |
| 45 | + | // | |
| 46 | + | // ## What's New | |
| 47 | + | // | |
| 48 | + | // `AdwAboutWindow` provides a way for applications to display their release | |
| 49 | + | // notes, set with the [property@AboutWindow:release-notes] property. | |
| 50 | + | // | |
| 51 | + | // Release notes are formatted the same way as | |
| 52 | + | // [AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). | |
| 53 | + | // | |
| 54 | + | // The supported formatting options are: | |
| 55 | + | // | |
| 56 | + | // * Paragraph (`<p>`) | |
| 57 | + | // * Ordered list (`<ol>`), with list items (`<li>`) | |
| 58 | + | // * Unordered list (`<ul>`), with list items (`<li>`) | |
| 59 | + | // | |
| 60 | + | // Within paragraphs and list items, emphasis (`<em>`) and inline code | |
| 61 | + | // (`<code>`) text styles are supported. The emphasis is rendered in italic, | |
| 62 | + | // while inline code is shown in a monospaced font. | |
| 63 | + | // | |
| 64 | + | // Any text outside paragraphs or list items is ignored. | |
| 65 | + | // | |
| 66 | + | // Nested lists are not supported. | |
| 67 | + | // | |
| 68 | + | // Only one version can be shown at a time. By default, the displayed version | |
| 69 | + | // number matches [property@AboutWindow:version]. Use | |
| 70 | + | // [property@AboutWindow:release-notes-version] to override it. | |
| 71 | + | // | |
| 72 | + | // ## Details | |
| 73 | + | // | |
| 74 | + | // The Details page displays the application comments and links. | |
| 75 | + | // | |
| 76 | + | // The comments can be set with the [property@AboutWindow:comments] property. | |
| 77 | + | // Unlike [property@Gtk.AboutDialog:comments], this string can be long and | |
| 78 | + | // detailed. It can also contain links and Pango markup. | |
| 79 | + | // | |
| 80 | + | // To set the application website, use [property@AboutWindow:website]. | |
| 81 | + | // To add extra links below the website, use [method@AboutWindow.add_link]. | |
| 82 | + | // | |
| 83 | + | // If the Details page doesn't have any other content besides website, the | |
| 84 | + | // website will be displayed on the main page instead. | |
| 85 | + | // | |
| 86 | + | // ## Troubleshooting | |
| 87 | + | // | |
| 88 | + | // `AdwAboutWindow` displays the following two links on the main page: | |
| 89 | + | // | |
| 90 | + | // * Support Questions, set with the [property@AboutWindow:support-url] property, | |
| 91 | + | // * Report an Issue, set with the [property@AboutWindow:issue-url] property. | |
| 92 | + | // | |
| 93 | + | // Additionally, applications can provide debugging information. It will be | |
| 94 | + | // shown separately on the Troubleshooting page. Use the | |
| 95 | + | // [property@AboutWindow:debug-info] property to specify it. | |
| 96 | + | // | |
| 97 | + | // It's intended to be attached to issue reports when reporting issues against | |
| 98 | + | // the application. As such, it cannot contain markup or links. | |
| 99 | + | // | |
| 100 | + | // `AdwAboutWindow` provides a quick way to save debug information to a file. | |
| 101 | + | // When saving, [property@AboutWindow:debug-info-filename] would be used as | |
| 102 | + | // the suggested filename. | |
| 103 | + | // | |
| 104 | + | // ## Credits and Acknowledgements | |
| 105 | + | // | |
| 106 | + | // The Credits page has the following default sections: | |
| 107 | + | // | |
| 108 | + | // * Developers, set with the [property@AboutWindow:developers] property, | |
| 109 | + | // * Designers, set with the [property@AboutWindow:designers] property, | |
| 110 | + | // * Artists, set with the [property@AboutWindow:artists] property, | |
| 111 | + | // * Documenters, set with the [property@AboutWindow:documenters] property, | |
| 112 | + | // * Translators, set with the [property@AboutWindow:translator-credits] property. | |
| 113 | + | // | |
| 114 | + | // When setting translator credits, use the strings `"translator-credits"` or | |
| 115 | + | // `"translator_credits"` and mark them as translatable. | |
| 116 | + | // | |
| 117 | + | // The default sections that don't contain any names won't be displayed. | |
| 118 | + | // | |
| 119 | + | // The Credits page can also contain an arbitrary number of extra sections below | |
| 120 | + | // the default ones. Use [method@AboutWindow.add_credit_section] to add them. | |
| 121 | + | // | |
| 122 | + | // The Acknowledgements page can be used to acknowledge additional people and | |
| 123 | + | // organizations for their non-development contributions. Use | |
| 124 | + | // [method@AboutWindow.add_acknowledgement_section] to add sections to it. For | |
| 125 | + | // example, it can be used to list backers in a crowdfunded project or to give | |
| 126 | + | // special thanks. | |
| 127 | + | // | |
| 128 | + | // Each of the people or organizations can have an email address or a website | |
| 129 | + | // specified. To add a email address, use a string like | |
| 130 | + | // `Edgar Allan Poe <edgar@poe.com>`. To specify a website with a title, use a | |
| 131 | + | // string like `The GNOME Project https://www.gnome.org`: | |
| 132 | + | // | |
| 133 | + | // <picture> | |
| 134 | + | // | |
| 135 | + | // <source srcset="about-window-credits-dark.png" media="(prefers-color-scheme: dark)"> | |
| 136 | + | // <img src="about-window-credits.png" alt="about-window-credits"> | |
| 137 | + | // | |
| 138 | + | // </picture> | |
| 139 | + | // | |
| 140 | + | // ## Legal | |
| 141 | + | // | |
| 142 | + | // The Legal page displays the copyright and licensing information for the | |
| 143 | + | // application and other modules. | |
| 144 | + | // | |
| 145 | + | // The copyright string is set with the [property@AboutWindow:copyright] | |
| 146 | + | // property and should be a short string of one or two lines, for example: | |
| 147 | + | // `© 2022 Example`. | |
| 148 | + | // | |
| 149 | + | // Licensing information can be quickly set from a list of known licenses with | |
| 150 | + | // the [property@AboutWindow:license-type] property. If the application's | |
| 151 | + | // license is not in the list, [property@AboutWindow:license] can be used | |
| 152 | + | // instead. | |
| 153 | + | // | |
| 154 | + | // To add information about other modules, such as application dependencies or | |
| 155 | + | // data, use [method@AboutWindow.add_legal_section]. | |
| 156 | + | // | |
| 157 | + | // ## Constructing | |
| 158 | + | // | |
| 159 | + | // To make constructing an `AdwAboutWindow` as convenient as possible, you can | |
| 160 | + | // use the function [func@show_about_window] which constructs and shows a | |
| 161 | + | // window. | |
| 162 | + | // | |
| 163 | + | // ```c | |
| 164 | + | // static void | |
| 165 | + | // show_about (GtkApplication *app) | |
| 166 | + | // | |
| 167 | + | // { | |
| 168 | + | // const char *developers[] = { | |
| 169 | + | // "Angela Avery", | |
| 170 | + | // NULL | |
| 171 | + | // }; | |
| 172 | + | // | |
| 173 | + | // const char *designers[] = { | |
| 174 | + | // "GNOME Design Team", | |
| 175 | + | // NULL | |
| 176 | + | // }; | |
| 177 | + | // | |
| 178 | + | // adw_show_about_window (gtk_application_get_active_window (app), | |
| 179 | + | // "application-name", _("Example"), | |
| 180 | + | // "application-icon", "org.example.App", | |
| 181 | + | // "version", "1.2.3", | |
| 182 | + | // "copyright", "© 2022 Angela Avery", | |
| 183 | + | // "issue-url", "https://gitlab.gnome.org/example/example/-/issues/new", | |
| 184 | + | // "license-type", GTK_LICENSE_GPL_3_0, | |
| 185 | + | // "developers", developers, | |
| 186 | + | // "designers", designers, | |
| 187 | + | // "translator-credits", _("translator-credits"), | |
| 188 | + | // NULL); | |
| 189 | + | // } | |
| 190 | + | // | |
| 191 | + | // ``` | |
| 192 | + | // | |
| 193 | + | // ## CSS nodes | |
| 194 | + | // | |
| 195 | + | // `AdwAboutWindow` has a main CSS node with the name `window` and the | |
| 196 | + | // style class `.about`. | |
| 197 | + | type AboutWindow struct { | |
| 198 | + | Window | |
| 199 | + | } | |
| 200 | + | ||
| 201 | + | func AboutWindowNewFromInternalPtr(ptr uintptr) *AboutWindow { | |
| 202 | + | cls := &AboutWindow{} | |
| 203 | + | cls.Ptr = ptr | |
| 204 | + | return cls | |
| 205 | + | } | |
| 206 | + | ||
| 207 | + | var xNewAboutWindow func() uintptr | |
| 208 | + | ||
| 209 | + | // Creates a new `AdwAboutWindow`. | |
| 210 | + | func NewAboutWindow() *gtk.Widget { | |
| 211 | + | NewAboutWindowPtr := xNewAboutWindow() | |
| 212 | + | if NewAboutWindowPtr == 0 { | |
| 213 | + | return nil | |
| 214 | + | } | |
| 215 | + | ||
| 216 | + | gobject.IncreaseRef(NewAboutWindowPtr) | |
| 217 | + | ||
| 218 | + | NewAboutWindowCls := >k.Widget{} | |
| 219 | + | NewAboutWindowCls.Ptr = NewAboutWindowPtr | |
| 220 | + | return NewAboutWindowCls | |
| 221 | + | } | |
| 222 | + | ||
| 223 | + | var xAboutWindowAddAcknowledgementSection func(uintptr, string, uintptr) | |
| 224 | + | ||
| 225 | + | // Adds a section to the Acknowledgements page. | |
| 226 | + | // | |
| 227 | + | // This can be used to acknowledge additional people and organizations for their | |
| 228 | + | // non-development contributions - for example, backers in a crowdfunded | |
| 229 | + | // project. | |
| 230 | + | // | |
| 231 | + | // Each name may contain email addresses and URLs, see the introduction for more | |
| 232 | + | // details. | |
| 233 | + | // | |
| 234 | + | // See also: | |
| 235 | + | // | |
| 236 | + | // * [property@AboutWindow:developers] | |
| 237 | + | // * [property@AboutWindow:designers] | |
| 238 | + | // * [property@AboutWindow:artists] | |
| 239 | + | // * [property@AboutWindow:documenters] | |
| 240 | + | // * [property@AboutWindow:translator-credits] | |
| 241 | + | // * [method@AboutWindow.add_credit_section] | |
| 242 | + | func (x *AboutWindow) AddAcknowledgementSection(NameVar string, PeopleVar uintptr) { | |
| 243 | + | ||
| 244 | + | xAboutWindowAddAcknowledgementSection(x.GoPointer(), NameVar, PeopleVar) | |
| 245 | + | ||
| 246 | + | } | |
| 247 | + | ||
| 248 | + | var xAboutWindowAddCreditSection func(uintptr, string, uintptr) | |
| 249 | + | ||
| 250 | + | // Adds an extra section to the Credits page. | |
| 251 | + | // | |
| 252 | + | // Extra sections are displayed below the standard categories. | |
| 253 | + | // | |
| 254 | + | // Each name may contain email addresses and URLs, see the introduction for more | |
| 255 | + | // details. | |
| 256 | + | // | |
| 257 | + | // See also: | |
| 258 | + | // | |
| 259 | + | // * [property@AboutWindow:developers] | |
| 260 | + | // * [property@AboutWindow:designers] | |
| 261 | + | // * [property@AboutWindow:artists] | |
| 262 | + | // * [property@AboutWindow:documenters] | |
| 263 | + | // * [property@AboutWindow:translator-credits] | |
| 264 | + | // * [method@AboutWindow.add_acknowledgement_section] | |
| 265 | + | func (x *AboutWindow) AddCreditSection(NameVar string, PeopleVar uintptr) { | |
| 266 | + | ||
| 267 | + | xAboutWindowAddCreditSection(x.GoPointer(), NameVar, PeopleVar) | |
| 268 | + | ||
| 269 | + | } | |
| 270 | + | ||
| 271 | + | var xAboutWindowAddLegalSection func(uintptr, string, string, gtk.License, string) | |
| 272 | + | ||
| 273 | + | // Adds an extra section to the Legal page. | |
| 274 | + | // | |
| 275 | + | // Extra sections will be displayed below the application's own information. | |
| 276 | + | // | |
| 277 | + | // The parameters @copyright, @license_type and @license will be used to present | |
| 278 | + | // the it the same way as [property@AboutWindow:copyright], | |
| 279 | + | // [property@AboutWindow:license-type] and [property@AboutWindow:license] are | |
| 280 | + | // for the application's own information. | |
| 281 | + | // | |
| 282 | + | // See those properties for more details. | |
| 283 | + | // | |
| 284 | + | // This can be useful to attribute the application dependencies or data. | |
| 285 | + | // | |
| 286 | + | // Examples: | |
| 287 | + | // | |
| 288 | + | // ```c | |
| 289 | + | // adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), | |
| 290 | + | // | |
| 291 | + | // _("Copyright and a known license"), | |
| 292 | + | // "© 2022 Example", | |
| 293 | + | // GTK_LICENSE_LGPL_2_1, | |
| 294 | + | // NULL); | |
| 295 | + | // | |
| 296 | + | // adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), | |
| 297 | + | // | |
| 298 | + | // _("Copyright and custom license"), | |
| 299 | + | // "© 2022 Example", | |
| 300 | + | // GTK_LICENSE_CUSTOM, | |
| 301 | + | // "Custom license text"); | |
| 302 | + | // | |
| 303 | + | // adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), | |
| 304 | + | // | |
| 305 | + | // _("Copyright only"), | |
| 306 | + | // "© 2022 Example", | |
| 307 | + | // GTK_LICENSE_UNKNOWN, | |
| 308 | + | // NULL); | |
| 309 | + | // | |
| 310 | + | // adw_about_window_add_legal_section (ADW_ABOUT_WINDOW (about), | |
| 311 | + | // | |
| 312 | + | // _("Custom license only"), | |
| 313 | + | // NULL, | |
| 314 | + | // GTK_LICENSE_CUSTOM, | |
| 315 | + | // "Something completely custom here."); | |
| 316 | + | // | |
| 317 | + | // ``` | |
| 318 | + | func (x *AboutWindow) AddLegalSection(TitleVar string, CopyrightVar string, LicenseTypeVar gtk.License, LicenseVar string) { | |
| 319 | + | ||
| 320 | + | xAboutWindowAddLegalSection(x.GoPointer(), TitleVar, CopyrightVar, LicenseTypeVar, LicenseVar) | |
| 321 | + | ||
| 322 | + | } | |
| 323 | + | ||
| 324 | + | var xAboutWindowAddLink func(uintptr, string, string) | |
| 325 | + | ||
| 326 | + | // Adds an extra link to the Details page. | |
| 327 | + | // | |
| 328 | + | // Extra links are displayed under the comment and website. | |
| 329 | + | // | |
| 330 | + | // Underlines in @title will be interpreted as indicating a mnemonic. | |
| 331 | + | // | |
| 332 | + | // See [property@AboutWindow:website]. | |
| 333 | + | func (x *AboutWindow) AddLink(TitleVar string, UrlVar string) { | |
| 334 | + | ||
| 335 | + | xAboutWindowAddLink(x.GoPointer(), TitleVar, UrlVar) | |
| 336 | + | ||
| 337 | + | } | |
| 338 | + | ||
| 339 | + | var xAboutWindowGetApplicationIcon func(uintptr) string | |
| 340 | + | ||
| 341 | + | // Gets the name of the application icon for @self. | |
| 342 | + | func (x *AboutWindow) GetApplicationIcon() string { | |
| 343 | + | ||
| 344 | + | return xAboutWindowGetApplicationIcon(x.GoPointer()) | |
| 345 | + | ||
| 346 | + | } | |
| 347 | + | ||
| 348 | + | var xAboutWindowGetApplicationName func(uintptr) string | |
| 349 | + | ||
| 350 | + | // Gets the application name for @self. | |
| 351 | + | func (x *AboutWindow) GetApplicationName() string { | |
| 352 | + | ||
| 353 | + | return xAboutWindowGetApplicationName(x.GoPointer()) | |
| 354 | + | ||
| 355 | + | } | |
| 356 | + | ||
| 357 | + | var xAboutWindowGetArtists func(uintptr) uintptr | |
| 358 | + | ||
| 359 | + | // Gets the list of artists of the application. | |
| 360 | + | func (x *AboutWindow) GetArtists() uintptr { | |
| 361 | + | ||
| 362 | + | return xAboutWindowGetArtists(x.GoPointer()) | |
| 363 | + | ||
| 364 | + | } | |
| 365 | + | ||
| 366 | + | var xAboutWindowGetComments func(uintptr) string | |
| 367 | + | ||
| 368 | + | // Gets the comments about the application. | |
| 369 | + | func (x *AboutWindow) GetComments() string { | |
| 370 | + | ||
| 371 | + | return xAboutWindowGetComments(x.GoPointer()) | |
| 372 | + | ||
| 373 | + | } | |
| 374 | + | ||
| 375 | + | var xAboutWindowGetCopyright func(uintptr) string | |
| 376 | + | ||
| 377 | + | // Gets the copyright information for @self. | |
| 378 | + | func (x *AboutWindow) GetCopyright() string { | |
| 379 | + | ||
| 380 | + | return xAboutWindowGetCopyright(x.GoPointer()) | |
| 381 | + | ||
| 382 | + | } | |
| 383 | + | ||
| 384 | + | var xAboutWindowGetDebugInfo func(uintptr) string | |
| 385 | + | ||
| 386 | + | // Gets the debug information for @self. | |
| 387 | + | func (x *AboutWindow) GetDebugInfo() string { | |
| 388 | + | ||
| 389 | + | return xAboutWindowGetDebugInfo(x.GoPointer()) | |
| 390 | + | ||
| 391 | + | } | |
| 392 | + | ||
| 393 | + | var xAboutWindowGetDebugInfoFilename func(uintptr) string | |
| 394 | + | ||
| 395 | + | // Gets the debug information filename for @self. | |
| 396 | + | func (x *AboutWindow) GetDebugInfoFilename() string { | |
| 397 | + | ||
| 398 | + | return xAboutWindowGetDebugInfoFilename(x.GoPointer()) | |
| 399 | + | ||
| 400 | + | } | |
| 401 | + | ||
| 402 | + | var xAboutWindowGetDesigners func(uintptr) uintptr | |
| 403 | + | ||
| 404 | + | // Gets the list of designers of the application. | |
| 405 | + | func (x *AboutWindow) GetDesigners() uintptr { | |
| 406 | + | ||
| 407 | + | return xAboutWindowGetDesigners(x.GoPointer()) | |
| 408 | + | ||
| 409 | + | } | |
| 410 | + | ||
| 411 | + | var xAboutWindowGetDeveloperName func(uintptr) string | |
| 412 | + | ||
| 413 | + | // Gets the developer name for @self. | |
| 414 | + | func (x *AboutWindow) GetDeveloperName() string { | |
| 415 | + | ||
| 416 | + | return xAboutWindowGetDeveloperName(x.GoPointer()) | |
| 417 | + | ||
| 418 | + | } | |
| 419 | + | ||
| 420 | + | var xAboutWindowGetDevelopers func(uintptr) uintptr | |
| 421 | + | ||
| 422 | + | // Gets the list of developers of the application. | |
| 423 | + | func (x *AboutWindow) GetDevelopers() uintptr { | |
| 424 | + | ||
| 425 | + | return xAboutWindowGetDevelopers(x.GoPointer()) | |
| 426 | + | ||
| 427 | + | } | |
| 428 | + | ||
| 429 | + | var xAboutWindowGetDocumenters func(uintptr) uintptr | |
| 430 | + | ||
| 431 | + | // Gets the list of documenters of the application. | |
| 432 | + | func (x *AboutWindow) GetDocumenters() uintptr { | |
| 433 | + | ||
| 434 | + | return xAboutWindowGetDocumenters(x.GoPointer()) | |
| 435 | + | ||
| 436 | + | } | |
| 437 | + | ||
| 438 | + | var xAboutWindowGetIssueUrl func(uintptr) string | |
| 439 | + | ||
| 440 | + | // Gets the issue tracker URL for @self. | |
| 441 | + | func (x *AboutWindow) GetIssueUrl() string { | |
| 442 | + | ||
| 443 | + | return xAboutWindowGetIssueUrl(x.GoPointer()) | |
| 444 | + | ||
| 445 | + | } | |
| 446 | + | ||
| 447 | + | var xAboutWindowGetLicense func(uintptr) string | |
| 448 | + | ||
| 449 | + | // Gets the license for @self. | |
| 450 | + | func (x *AboutWindow) GetLicense() string { | |
| 451 | + | ||
| 452 | + | return xAboutWindowGetLicense(x.GoPointer()) | |
| 453 | + | ||
| 454 | + | } | |
| 455 | + | ||
| 456 | + | var xAboutWindowGetLicenseType func(uintptr) gtk.License | |
| 457 | + | ||
| 458 | + | // Gets the license type for @self. | |
| 459 | + | func (x *AboutWindow) GetLicenseType() gtk.License { | |
| 460 | + | ||
| 461 | + | return xAboutWindowGetLicenseType(x.GoPointer()) | |
| 462 | + | ||
| 463 | + | } | |
| 464 | + | ||
| 465 | + | var xAboutWindowGetReleaseNotes func(uintptr) string | |
| 466 | + | ||
| 467 | + | // Gets the release notes for @self. | |
| 468 | + | func (x *AboutWindow) GetReleaseNotes() string { | |
| 469 | + | ||
| 470 | + | return xAboutWindowGetReleaseNotes(x.GoPointer()) | |
| 471 | + | ||
| 472 | + | } | |
| 473 | + | ||
| 474 | + | var xAboutWindowGetReleaseNotesVersion func(uintptr) string | |
| 475 | + | ||
| 476 | + | // Gets the version described by the application's release notes. | |
| 477 | + | func (x *AboutWindow) GetReleaseNotesVersion() string { | |
| 478 | + | ||
| 479 | + | return xAboutWindowGetReleaseNotesVersion(x.GoPointer()) | |
| 480 | + | ||
| 481 | + | } | |
| 482 | + | ||
| 483 | + | var xAboutWindowGetSupportUrl func(uintptr) string | |
| 484 | + | ||
| 485 | + | // Gets the URL of the support page for @self. | |
| 486 | + | func (x *AboutWindow) GetSupportUrl() string { | |
| 487 | + | ||
| 488 | + | return xAboutWindowGetSupportUrl(x.GoPointer()) | |
| 489 | + | ||
| 490 | + | } | |
| 491 | + | ||
| 492 | + | var xAboutWindowGetTranslatorCredits func(uintptr) string | |
| 493 | + | ||
| 494 | + | // Gets the translator credits string. | |
| 495 | + | func (x *AboutWindow) GetTranslatorCredits() string { | |
| 496 | + | ||
| 497 | + | return xAboutWindowGetTranslatorCredits(x.GoPointer()) | |
| 498 | + | ||
| 499 | + | } | |
| 500 | + | ||
| 501 | + | var xAboutWindowGetVersion func(uintptr) string | |
| 502 | + | ||
| 503 | + | // Gets the version for @self. | |
| 504 | + | func (x *AboutWindow) GetVersion() string { | |
| 505 | + | ||
| 506 | + | return xAboutWindowGetVersion(x.GoPointer()) | |
| 507 | + | ||
| 508 | + | } | |
| 509 | + | ||
| 510 | + | var xAboutWindowGetWebsite func(uintptr) string | |
| 511 | + | ||
| 512 | + | // Gets the application website URL for @self. | |
| 513 | + | func (x *AboutWindow) GetWebsite() string { | |
| 514 | + | ||
| 515 | + | return xAboutWindowGetWebsite(x.GoPointer()) | |
| 516 | + | ||
| 517 | + | } | |
| 518 | + | ||
| 519 | + | var xAboutWindowSetApplicationIcon func(uintptr, string) | |
| 520 | + | ||
| 521 | + | // Sets the name of the application icon for @self. | |
| 522 | + | // | |
| 523 | + | // The icon is displayed at the top of the main page. | |
| 524 | + | func (x *AboutWindow) SetApplicationIcon(ApplicationIconVar string) { | |
| 525 | + | ||
| 526 | + | xAboutWindowSetApplicationIcon(x.GoPointer(), ApplicationIconVar) | |
| 527 | + | ||
| 528 | + | } | |
| 529 | + | ||
| 530 | + | var xAboutWindowSetApplicationName func(uintptr, string) | |
| 531 | + | ||
| 532 | + | // Sets the application name for @self. | |
| 533 | + | // | |
| 534 | + | // The name is displayed at the top of the main page. | |
| 535 | + | func (x *AboutWindow) SetApplicationName(ApplicationNameVar string) { | |
| 536 | + | ||
| 537 | + | xAboutWindowSetApplicationName(x.GoPointer(), ApplicationNameVar) | |
| 538 | + | ||
| 539 | + | } | |
| 540 | + | ||
| 541 | + | var xAboutWindowSetArtists func(uintptr, uintptr) | |
| 542 | + | ||
| 543 | + | // Sets the list of artists of the application. | |
| 544 | + | // | |
| 545 | + | // It will be displayed on the Credits page. | |
| 546 | + | // | |
| 547 | + | // Each name may contain email addresses and URLs, see the introduction for more | |
| 548 | + | // details. | |
| 549 | + | // | |
| 550 | + | // See also: | |
| 551 | + | // | |
| 552 | + | // * [property@AboutWindow:developers] | |
| 553 | + | // * [property@AboutWindow:designers] | |
| 554 | + | // * [property@AboutWindow:documenters] | |
| 555 | + | // * [property@AboutWindow:translator-credits] | |
| 556 | + | // * [method@AboutWindow.add_credit_section] | |
| 557 | + | // * [method@AboutWindow.add_acknowledgement_section] | |
| 558 | + | func (x *AboutWindow) SetArtists(ArtistsVar uintptr) { | |
| 559 | + | ||
| 560 | + | xAboutWindowSetArtists(x.GoPointer(), ArtistsVar) | |
| 561 | + | ||
| 562 | + | } | |
| 563 | + | ||
| 564 | + | var xAboutWindowSetComments func(uintptr, string) | |
| 565 | + | ||
| 566 | + | // Sets the comments about the application. | |
| 567 | + | // | |
| 568 | + | // Comments will be shown on the Details page, above links. | |
| 569 | + | // | |
| 570 | + | // Unlike [property@Gtk.AboutDialog:comments], this string can be long and | |
| 571 | + | // detailed. It can also contain links and Pango markup. | |
| 572 | + | func (x *AboutWindow) SetComments(CommentsVar string) { | |
| 573 | + | ||
| 574 | + | xAboutWindowSetComments(x.GoPointer(), CommentsVar) | |
| 575 | + | ||
| 576 | + | } | |
| 577 | + | ||
| 578 | + | var xAboutWindowSetCopyright func(uintptr, string) | |
| 579 | + | ||
| 580 | + | // Sets the copyright information for @self. | |
| 581 | + | // | |
| 582 | + | // This should be a short string of one or two lines, for example: | |
| 583 | + | // `© 2022 Example`. | |
| 584 | + | // | |
| 585 | + | // The copyright information will be displayed on the Legal page, before the | |
| 586 | + | // application license. | |
| 587 | + | // | |
| 588 | + | // [method@AboutWindow.add_legal_section] can be used to add copyright | |
| 589 | + | // information for the application dependencies or other components. | |
| 590 | + | func (x *AboutWindow) SetCopyright(CopyrightVar string) { | |
| 591 | + | ||
| 592 | + | xAboutWindowSetCopyright(x.GoPointer(), CopyrightVar) | |
| 593 | + | ||
| 594 | + | } | |
| 595 | + | ||
| 596 | + | var xAboutWindowSetDebugInfo func(uintptr, string) | |
| 597 | + | ||
| 598 | + | // Sets the debug information for @self. | |
| 599 | + | // | |
| 600 | + | // Debug information will be shown on the Troubleshooting page. It's intended | |
| 601 | + | // to be attached to issue reports when reporting issues against the | |
| 602 | + | // application. | |
| 603 | + | // | |
| 604 | + | // `AdwAboutWindow` provides a quick way to save debug information to a file. | |
| 605 | + | // When saving, [property@AboutWindow:debug-info-filename] would be used as | |
| 606 | + | // the suggested filename. | |
| 607 | + | // | |
| 608 | + | // Debug information cannot contain markup or links. | |
| 609 | + | func (x *AboutWindow) SetDebugInfo(DebugInfoVar string) { | |
| 610 | + | ||
| 611 | + | xAboutWindowSetDebugInfo(x.GoPointer(), DebugInfoVar) | |
| 612 | + | ||
| 613 | + | } | |
| 614 | + | ||
| 615 | + | var xAboutWindowSetDebugInfoFilename func(uintptr, string) | |
| 616 | + | ||
| 617 | + | // Sets the debug information filename for @self. | |
| 618 | + | // | |
| 619 | + | // It will be used as the suggested filename when saving debug information to a | |
| 620 | + | // file. | |
| 621 | + | // | |
| 622 | + | // See [property@AboutWindow:debug-info]. | |
| 623 | + | func (x *AboutWindow) SetDebugInfoFilename(FilenameVar string) { | |
| 624 | + | ||
| 625 | + | xAboutWindowSetDebugInfoFilename(x.GoPointer(), FilenameVar) | |
| 626 | + | ||
| 627 | + | } | |
| 628 | + | ||
| 629 | + | var xAboutWindowSetDesigners func(uintptr, uintptr) | |
| 630 | + | ||
| 631 | + | // Sets the list of designers of the application. | |
| 632 | + | // | |
| 633 | + | // It will be displayed on the Credits page. | |
| 634 | + | // | |
| 635 | + | // Each name may contain email addresses and URLs, see the introduction for more | |
| 636 | + | // details. | |
| 637 | + | // | |
| 638 | + | // See also: | |
| 639 | + | // | |
| 640 | + | // * [property@AboutWindow:developers] | |
| 641 | + | // * [property@AboutWindow:artists] | |
| 642 | + | // * [property@AboutWindow:documenters] | |
| 643 | + | // * [property@AboutWindow:translator-credits] | |
| 644 | + | // * [method@AboutWindow.add_credit_section] | |
| 645 | + | // * [method@AboutWindow.add_acknowledgement_section] | |
| 646 | + | func (x *AboutWindow) SetDesigners(DesignersVar uintptr) { | |
| 647 | + | ||
| 648 | + | xAboutWindowSetDesigners(x.GoPointer(), DesignersVar) | |
| 649 | + | ||
| 650 | + | } | |
| 651 | + | ||
| 652 | + | var xAboutWindowSetDeveloperName func(uintptr, string) | |
| 653 | + | ||
| 654 | + | // Sets the developer name for @self. | |
| 655 | + | // | |
| 656 | + | // The developer name is displayed on the main page, under the application name. | |
| 657 | + | // | |
| 658 | + | // If the application is developed by multiple people, the developer name can be | |
| 659 | + | // set to values like "AppName team", "AppName developers" or | |
| 660 | + | // "The AppName project", and the individual contributors can be listed on the | |
| 661 | + | // Credits page, with [property@AboutWindow:developers] and related properties. | |
| 662 | + | func (x *AboutWindow) SetDeveloperName(DeveloperNameVar string) { | |
| 663 | + | ||
| 664 | + | xAboutWindowSetDeveloperName(x.GoPointer(), DeveloperNameVar) | |
| 665 | + | ||
| 666 | + | } | |
| 667 | + | ||
| 668 | + | var xAboutWindowSetDevelopers func(uintptr, uintptr) | |
| 669 | + | ||
| 670 | + | // Sets the list of developers of the application. | |
| 671 | + | // | |
| 672 | + | // It will be displayed on the Credits page. | |
| 673 | + | // | |
| 674 | + | // Each name may contain email addresses and URLs, see the introduction for more | |
| 675 | + | // details. | |
| 676 | + | // | |
| 677 | + | // See also: | |
| 678 | + | // | |
| 679 | + | // * [property@AboutWindow:designers] | |
| 680 | + | // * [property@AboutWindow:artists] | |
| 681 | + | // * [property@AboutWindow:documenters] | |
| 682 | + | // * [property@AboutWindow:translator-credits] | |
| 683 | + | // * [method@AboutWindow.add_credit_section] | |
| 684 | + | // * [method@AboutWindow.add_acknowledgement_section] | |
| 685 | + | func (x *AboutWindow) SetDevelopers(DevelopersVar uintptr) { | |
| 686 | + | ||
| 687 | + | xAboutWindowSetDevelopers(x.GoPointer(), DevelopersVar) | |
| 688 | + | ||
| 689 | + | } | |
| 690 | + | ||
| 691 | + | var xAboutWindowSetDocumenters func(uintptr, uintptr) | |
| 692 | + | ||
| 693 | + | // Sets the list of documenters of the application. | |
| 694 | + | // | |
| 695 | + | // It will be displayed on the Credits page. | |
| 696 | + | // | |
| 697 | + | // Each name may contain email addresses and URLs, see the introduction for more | |
| 698 | + | // details. | |
| 699 | + | // | |
| 700 | + | // See also: | |
| 701 | + | // | |
| 702 | + | // * [property@AboutWindow:developers] | |
| 703 | + | // * [property@AboutWindow:designers] | |
| 704 | + | // * [property@AboutWindow:artists] | |
| 705 | + | // * [property@AboutWindow:translator-credits] | |
| 706 | + | // * [method@AboutWindow.add_credit_section] | |
| 707 | + | // * [method@AboutWindow.add_acknowledgement_section] | |
| 708 | + | func (x *AboutWindow) SetDocumenters(DocumentersVar uintptr) { | |
| 709 | + | ||
| 710 | + | xAboutWindowSetDocumenters(x.GoPointer(), DocumentersVar) | |
| 711 | + | ||
| 712 | + | } | |
| 713 | + | ||
| 714 | + | var xAboutWindowSetIssueUrl func(uintptr, string) | |
| 715 | + | ||
| 716 | + | // Sets the issue tracker URL for @self. | |
| 717 | + | // | |
| 718 | + | // The issue tracker link is displayed on the main page. | |
| 719 | + | func (x *AboutWindow) SetIssueUrl(IssueUrlVar string) { | |
| 720 | + | ||
| 721 | + | xAboutWindowSetIssueUrl(x.GoPointer(), IssueUrlVar) | |
| 722 | + | ||
| 723 | + | } | |
| 724 | + | ||
| 725 | + | var xAboutWindowSetLicense func(uintptr, string) | |
| 726 | + | ||
| 727 | + | // Sets the license for @self. | |
| 728 | + | // | |
| 729 | + | // This can be used to set a custom text for the license if it can't be set via | |
| 730 | + | // [property@AboutWindow:license-type]. | |
| 731 | + | // | |
| 732 | + | // When set, [property@AboutWindow:license-type] will be set to | |
| 733 | + | // `GTK_LICENSE_CUSTOM`. | |
| 734 | + | // | |
| 735 | + | // The license text will be displayed on the Legal page, below the copyright | |
| 736 | + | // information. | |
| 737 | + | // | |
| 738 | + | // License text can contain Pango markup and links. | |
| 739 | + | // | |
| 740 | + | // [method@AboutWindow.add_legal_section] can be used to add license information | |
| 741 | + | // for the application dependencies or other components. | |
| 742 | + | func (x *AboutWindow) SetLicense(LicenseVar string) { | |
| 743 | + | ||
| 744 | + | xAboutWindowSetLicense(x.GoPointer(), LicenseVar) | |
| 745 | + | ||
| 746 | + | } | |
| 747 | + | ||
| 748 | + | var xAboutWindowSetLicenseType func(uintptr, gtk.License) | |
| 749 | + | ||
| 750 | + | // Sets the license for @self from a list of known licenses. | |
| 751 | + | // | |
| 752 | + | // If the application's license is not in the list, | |
| 753 | + | // [property@AboutWindow:license] can be used instead. The license type will be | |
| 754 | + | // automatically set to `GTK_LICENSE_CUSTOM` in that case. | |
| 755 | + | // | |
| 756 | + | // If @license_type is `GTK_LICENSE_UNKNOWN`, no information will be displayed. | |
| 757 | + | // | |
| 758 | + | // If @license_type is different from `GTK_LICENSE_CUSTOM`. | |
| 759 | + | // [property@AboutWindow:license] will be cleared out. | |
| 760 | + | // | |
| 761 | + | // The license description will be displayed on the Legal page, below the | |
| 762 | + | // copyright information. | |
| 763 | + | // | |
| 764 | + | // [method@AboutWindow.add_legal_section] can be used to add license information | |
| 765 | + | // for the application dependencies or other components. | |
| 766 | + | func (x *AboutWindow) SetLicenseType(LicenseTypeVar gtk.License) { | |
| 767 | + | ||
| 768 | + | xAboutWindowSetLicenseType(x.GoPointer(), LicenseTypeVar) | |
| 769 | + | ||
| 770 | + | } | |
| 771 | + | ||
| 772 | + | var xAboutWindowSetReleaseNotes func(uintptr, string) | |
| 773 | + | ||
| 774 | + | // Sets the release notes for @self. | |
| 775 | + | // | |
| 776 | + | // Release notes are displayed on the the What's New page. | |
| 777 | + | // | |
| 778 | + | // Release notes are formatted the same way as | |
| 779 | + | // [AppStream descriptions](https://freedesktop.org/software/appstream/docs/chap-Metadata.html#tag-description). | |
| 780 | + | // | |
| 781 | + | // The supported formatting options are: | |
| 782 | + | // | |
| 783 | + | // * Paragraph (`<p>`) | |
| 784 | + | // * Ordered list (`<ol>`), with list items (`<li>`) | |
| 785 | + | // * Unordered list (`<ul>`), with list items (`<li>`) | |
| 786 | + | // | |
| 787 | + | // Within paragraphs and list items, emphasis (`<em>`) and inline code | |
| 788 | + | // (`<code>`) text styles are supported. The emphasis is rendered in italic, | |
| 789 | + | // while inline code is shown in a monospaced font. | |
| 790 | + | // | |
| 791 | + | // Any text outside paragraphs or list items is ignored. | |
| 792 | + | // | |
| 793 | + | // Nested lists are not supported. | |
| 794 | + | // | |
| 795 | + | // `AdwAboutWindow` displays the version above the release notes. If set, the | |
| 796 | + | // [property@AboutWindow:release-notes-version] of the property will be used | |
| 797 | + | // as the version; otherwise, [property@AboutWindow:version] is used. | |
| 798 | + | func (x *AboutWindow) SetReleaseNotes(ReleaseNotesVar string) { | |
| 799 | + | ||
| 800 | + | xAboutWindowSetReleaseNotes(x.GoPointer(), ReleaseNotesVar) | |
| 801 | + | ||
| 802 | + | } | |
| 803 | + | ||
| 804 | + | var xAboutWindowSetReleaseNotesVersion func(uintptr, string) | |
| 805 | + | ||
| 806 | + | // Sets the version described by the application's release notes. | |
| 807 | + | // | |
| 808 | + | // The release notes version is displayed on the What's New page, above the | |
| 809 | + | // release notes. | |
| 810 | + | // | |
| 811 | + | // If not set, [property@AboutWindow:version] will be used instead. | |
| 812 | + | // | |
| 813 | + | // For example, an application with the current version 2.0.2 might want to | |
| 814 | + | // keep the release notes from 2.0.0, and set the release notes version | |
| 815 | + | // accordingly. | |
| 816 | + | // | |
| 817 | + | // See [property@AboutWindow:release-notes]. | |
| 818 | + | func (x *AboutWindow) SetReleaseNotesVersion(VersionVar string) { | |
| 819 | + | ||
| 820 | + | xAboutWindowSetReleaseNotesVersion(x.GoPointer(), VersionVar) | |
| 821 | + | ||
| 822 | + | } | |
| 823 | + | ||
| 824 | + | var xAboutWindowSetSupportUrl func(uintptr, string) | |
| 825 | + | ||
| 826 | + | // Sets the URL of the support page for @self. | |
| 827 | + | // | |
| 828 | + | // The support page link is displayed on the main page. | |
| 829 | + | func (x *AboutWindow) SetSupportUrl(SupportUrlVar string) { | |
| 830 | + | ||
| 831 | + | xAboutWindowSetSupportUrl(x.GoPointer(), SupportUrlVar) | |
| 832 | + | ||
| 833 | + | } | |
| 834 | + | ||
| 835 | + | var xAboutWindowSetTranslatorCredits func(uintptr, string) | |
| 836 | + | ||
| 837 | + | // Sets the translator credits string. | |
| 838 | + | // | |
| 839 | + | // It will be displayed on the Credits page. | |
| 840 | + | // | |
| 841 | + | // This string should be `"translator-credits"` or `"translator_credits"` and | |
| 842 | + | // should be marked as translatable. | |
| 843 | + | // | |
| 844 | + | // The string may contain email addresses and URLs, see the introduction for | |
| 845 | + | // more details. | |
| 846 | + | // | |
| 847 | + | // See also: | |
| 848 | + | // | |
| 849 | + | // * [property@AboutWindow:developers] | |
| 850 | + | // * [property@AboutWindow:designers] | |
| 851 | + | // * [property@AboutWindow:artists] | |
| 852 | + | // * [property@AboutWindow:documenters] | |
| 853 | + | // * [method@AboutWindow.add_credit_section] | |
| 854 | + | // * [method@AboutWindow.add_acknowledgement_section] | |
| 855 | + | func (x *AboutWindow) SetTranslatorCredits(TranslatorCreditsVar string) { | |
| 856 | + | ||
| 857 | + | xAboutWindowSetTranslatorCredits(x.GoPointer(), TranslatorCreditsVar) | |
| 858 | + | ||
| 859 | + | } | |
| 860 | + | ||
| 861 | + | var xAboutWindowSetVersion func(uintptr, string) | |
| 862 | + | ||
| 863 | + | // Sets the version for @self. | |
| 864 | + | // | |
| 865 | + | // The version is displayed on the main page. | |
| 866 | + | // | |
| 867 | + | // If [property@AboutWindow:release-notes-version] is not set, the version will | |
| 868 | + | // also be displayed above the release notes on the What's New page. | |
| 869 | + | func (x *AboutWindow) SetVersion(VersionVar string) { | |
| 870 | + | ||
| 871 | + | xAboutWindowSetVersion(x.GoPointer(), VersionVar) | |
| 872 | + | ||
| 873 | + | } | |
| 874 | + | ||
| 875 | + | var xAboutWindowSetWebsite func(uintptr, string) | |
| 876 | + | ||
| 877 | + | // Sets the application website URL for @self. | |
| 878 | + | // | |
| 879 | + | // Website is displayed on the Details page, below comments, or on the main page | |
| 880 | + | // if the Details page doesn't have any other content. | |
| 881 | + | // | |
| 882 | + | // Applications can add other links below, see [method@AboutWindow.add_link]. | |
| 883 | + | func (x *AboutWindow) SetWebsite(WebsiteVar string) { | |
| 884 | + | ||
| 885 | + | xAboutWindowSetWebsite(x.GoPointer(), WebsiteVar) | |
| 886 | + | ||
| 887 | + | } | |
| 888 | + | ||
| 889 | + | func (c *AboutWindow) GoPointer() uintptr { | |
| 890 | + | return c.Ptr | |
| 891 | + | } | |
| 892 | + | ||
| 893 | + | func (c *AboutWindow) SetGoPointer(ptr uintptr) { | |
| 894 | + | c.Ptr = ptr | |
| 895 | + | } | |
| 896 | + | ||
| 897 | + | // Emitted when a URL is activated. | |
| 898 | + | // | |
| 899 | + | // Applications may connect to it to override the default behavior, which is | |
| 900 | + | // to call [func@Gtk.show_uri]. | |
| 901 | + | func (x *AboutWindow) ConnectActivateLink(cb func(AboutWindow, string) bool) { | |
| 902 | + | fcb := func(clsPtr uintptr, UriVarp string) bool { | |
| 903 | + | fa := AboutWindow{} | |
| 904 | + | fa.Ptr = clsPtr | |
| 905 | + | ||
| 906 | + | return cb(fa, UriVarp) | |
| 907 | + | ||
| 908 | + | } | |
| 909 | + | gobject.ObjectConnect(x.GoPointer(), "signal::activate-link", purego.NewCallback(fcb)) | |
| 910 | + | } | |
| 911 | + | ||
| 912 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 913 | + | func (x *AboutWindow) GetAccessibleRole() gtk.AccessibleRole { | |
| 914 | + | ||
| 915 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 916 | + | ||
| 917 | + | } | |
| 918 | + | ||
| 919 | + | // Resets the accessible @property to its default value. | |
| 920 | + | func (x *AboutWindow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 921 | + | ||
| 922 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 923 | + | ||
| 924 | + | } | |
| 925 | + | ||
| 926 | + | // Resets the accessible @relation to its default value. | |
| 927 | + | func (x *AboutWindow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 928 | + | ||
| 929 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 930 | + | ||
| 931 | + | } | |
| 932 | + | ||
| 933 | + | // Resets the accessible @state to its default value. | |
| 934 | + | func (x *AboutWindow) ResetState(StateVar gtk.AccessibleState) { | |
| 935 | + | ||
| 936 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 937 | + | ||
| 938 | + | } | |
| 939 | + | ||
| 940 | + | // Updates a list of accessible properties. | |
| 941 | + | // | |
| 942 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 943 | + | // value types of accessible properties. | |
| 944 | + | // | |
| 945 | + | // This function should be called by `GtkWidget` types whenever | |
| 946 | + | // an accessible property change must be communicated to assistive | |
| 947 | + | // technologies. | |
| 948 | + | // | |
| 949 | + | // Example: | |
| 950 | + | // ```c | |
| 951 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 952 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 953 | + | // | |
| 954 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 955 | + | // -1); | |
| 956 | + | // | |
| 957 | + | // ``` | |
| 958 | + | func (x *AboutWindow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 959 | + | ||
| 960 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 961 | + | ||
| 962 | + | } | |
| 963 | + | ||
| 964 | + | // Updates an array of accessible properties. | |
| 965 | + | // | |
| 966 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 967 | + | // property change must be communicated to assistive technologies. | |
| 968 | + | // | |
| 969 | + | // This function is meant to be used by language bindings. | |
| 970 | + | func (x *AboutWindow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 971 | + | ||
| 972 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 973 | + | ||
| 974 | + | } | |
| 975 | + | ||
| 976 | + | // Updates a list of accessible relations. | |
| 977 | + | // | |
| 978 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 979 | + | // relation change must be communicated to assistive technologies. | |
| 980 | + | // | |
| 981 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 982 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 983 | + | // | |
| 984 | + | // ```c | |
| 985 | + | // gtk_accessible_update_relation (accessible, | |
| 986 | + | // | |
| 987 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 988 | + | // ref1, NULL, | |
| 989 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 990 | + | // ref1, ref2, ref3, NULL, | |
| 991 | + | // -1); | |
| 992 | + | // | |
| 993 | + | // ``` | |
| 994 | + | func (x *AboutWindow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 995 | + | ||
| 996 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 997 | + | ||
| 998 | + | } | |
| 999 | + | ||
| 1000 | + | // Updates an array of accessible relations. | |
| 1001 | + | // | |
| 1002 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 1003 | + | // relation change must be communicated to assistive technologies. | |
| 1004 | + | // | |
| 1005 | + | // This function is meant to be used by language bindings. | |
| 1006 | + | func (x *AboutWindow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 1007 | + | ||
| 1008 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 1009 | + | ||
| 1010 | + | } | |
| 1011 | + | ||
| 1012 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 1013 | + | // documentation for the value types of accessible states. | |
| 1014 | + | // | |
| 1015 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 1016 | + | // state change must be communicated to assistive technologies. | |
| 1017 | + | // | |
| 1018 | + | // Example: | |
| 1019 | + | // ```c | |
| 1020 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 1021 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 1022 | + | // | |
| 1023 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 1024 | + | // -1); | |
| 1025 | + | // | |
| 1026 | + | // ``` | |
| 1027 | + | func (x *AboutWindow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 1028 | + | ||
| 1029 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 1030 | + | ||
| 1031 | + | } | |
| 1032 | + | ||
| 1033 | + | // Updates an array of accessible states. | |
| 1034 | + | // | |
| 1035 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 1036 | + | // state change must be communicated to assistive technologies. | |
| 1037 | + | // | |
| 1038 | + | // This function is meant to be used by language bindings. | |
| 1039 | + | func (x *AboutWindow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 1040 | + | ||
| 1041 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 1042 | + | ||
| 1043 | + | } | |
| 1044 | + | ||
| 1045 | + | // Gets the ID of the @buildable object. | |
| 1046 | + | // | |
| 1047 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 1048 | + | // of the <object> tag used to construct the @buildable. | |
| 1049 | + | func (x *AboutWindow) GetBuildableId() string { | |
| 1050 | + | ||
| 1051 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 1052 | + | ||
| 1053 | + | } | |
| 1054 | + | ||
| 1055 | + | // Returns the renderer that is used for this `GtkNative`. | |
| 1056 | + | func (x *AboutWindow) GetRenderer() *gsk.Renderer { | |
| 1057 | + | ||
| 1058 | + | GetRendererPtr := gtk.XGtkNativeGetRenderer(x.GoPointer()) | |
| 1059 | + | if GetRendererPtr == 0 { | |
| 1060 | + | return nil | |
| 1061 | + | } | |
| 1062 | + | ||
| 1063 | + | gobject.IncreaseRef(GetRendererPtr) | |
| 1064 | + | ||
| 1065 | + | GetRendererCls := &gsk.Renderer{} | |
| 1066 | + | GetRendererCls.Ptr = GetRendererPtr | |
| 1067 | + | return GetRendererCls | |
| 1068 | + | ||
| 1069 | + | } | |
| 1070 | + | ||
| 1071 | + | // Returns the surface of this `GtkNative`. | |
| 1072 | + | func (x *AboutWindow) GetSurface() *gdk.Surface { | |
| 1073 | + | ||
| 1074 | + | GetSurfacePtr := gtk.XGtkNativeGetSurface(x.GoPointer()) | |
| 1075 | + | if GetSurfacePtr == 0 { | |
| 1076 | + | return nil | |
| 1077 | + | } | |
| 1078 | + | ||
| 1079 | + | gobject.IncreaseRef(GetSurfacePtr) | |
| 1080 | + | ||
| 1081 | + | GetSurfaceCls := &gdk.Surface{} | |
| 1082 | + | GetSurfaceCls.Ptr = GetSurfacePtr | |
| 1083 | + | return GetSurfaceCls | |
| 1084 | + | ||
| 1085 | + | } | |
| 1086 | + | ||
| 1087 | + | // Retrieves the surface transform of @self. | |
| 1088 | + | // | |
| 1089 | + | // This is the translation from @self's surface coordinates into | |
| 1090 | + | // @self's widget coordinates. | |
| 1091 | + | func (x *AboutWindow) GetSurfaceTransform(XVar float64, YVar float64) { | |
| 1092 | + | ||
| 1093 | + | gtk.XGtkNativeGetSurfaceTransform(x.GoPointer(), XVar, YVar) | |
| 1094 | + | ||
| 1095 | + | } | |
| 1096 | + | ||
| 1097 | + | // Realizes a `GtkNative`. | |
| 1098 | + | // | |
| 1099 | + | // This should only be used by subclasses. | |
| 1100 | + | func (x *AboutWindow) Realize() { | |
| 1101 | + | ||
| 1102 | + | gtk.XGtkNativeRealize(x.GoPointer()) | |
| 1103 | + | ||
| 1104 | + | } | |
| 1105 | + | ||
| 1106 | + | // Unrealizes a `GtkNative`. | |
| 1107 | + | // | |
| 1108 | + | // This should only be used by subclasses. | |
| 1109 | + | func (x *AboutWindow) Unrealize() { | |
| 1110 | + | ||
| 1111 | + | gtk.XGtkNativeUnrealize(x.GoPointer()) | |
| 1112 | + | ||
| 1113 | + | } | |
| 1114 | + | ||
| 1115 | + | // Returns the display that this `GtkRoot` is on. | |
| 1116 | + | func (x *AboutWindow) GetDisplay() *gdk.Display { | |
| 1117 | + | ||
| 1118 | + | GetDisplayPtr := gtk.XGtkRootGetDisplay(x.GoPointer()) | |
| 1119 | + | if GetDisplayPtr == 0 { | |
| 1120 | + | return nil | |
| 1121 | + | } | |
| 1122 | + | ||
| 1123 | + | gobject.IncreaseRef(GetDisplayPtr) | |
| 1124 | + | ||
| 1125 | + | GetDisplayCls := &gdk.Display{} | |
| 1126 | + | GetDisplayCls.Ptr = GetDisplayPtr | |
| 1127 | + | return GetDisplayCls | |
| 1128 | + | ||
| 1129 | + | } | |
| 1130 | + | ||
| 1131 | + | // Retrieves the current focused widget within the root. | |
| 1132 | + | // | |
| 1133 | + | // Note that this is the widget that would have the focus | |
| 1134 | + | // if the root is active; if the root is not focused then | |
| 1135 | + | // `gtk_widget_has_focus (widget)` will be %FALSE for the | |
| 1136 | + | // widget. | |
| 1137 | + | func (x *AboutWindow) GetFocus() *gtk.Widget { | |
| 1138 | + | ||
| 1139 | + | GetFocusPtr := gtk.XGtkRootGetFocus(x.GoPointer()) | |
| 1140 | + | if GetFocusPtr == 0 { | |
| 1141 | + | return nil | |
| 1142 | + | } | |
| 1143 | + | ||
| 1144 | + | gobject.IncreaseRef(GetFocusPtr) | |
| 1145 | + | ||
| 1146 | + | GetFocusCls := >k.Widget{} | |
| 1147 | + | GetFocusCls.Ptr = GetFocusPtr | |
| 1148 | + | return GetFocusCls | |
| 1149 | + | ||
| 1150 | + | } | |
| 1151 | + | ||
| 1152 | + | // If @focus is not the current focus widget, and is focusable, sets | |
| 1153 | + | // it as the focus widget for the root. | |
| 1154 | + | // | |
| 1155 | + | // If @focus is %NULL, unsets the focus widget for the root. | |
| 1156 | + | // | |
| 1157 | + | // To set the focus to a particular widget in the root, it is usually | |
| 1158 | + | // more convenient to use [method@Gtk.Widget.grab_focus] instead of | |
| 1159 | + | // this function. | |
| 1160 | + | func (x *AboutWindow) SetFocus(FocusVar *gtk.Widget) { | |
| 1161 | + | ||
| 1162 | + | gtk.XGtkRootSetFocus(x.GoPointer(), FocusVar.GoPointer()) | |
| 1163 | + | ||
| 1164 | + | } | |
| 1165 | + | ||
| 1166 | + | func init() { | |
| 1167 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 1168 | + | if err != nil { | |
| 1169 | + | panic(err) | |
| 1170 | + | } | |
| 1171 | + | core.PuregoSafeRegister(&xShowAboutWindow, lib, "adw_show_about_window") | |
| 1172 | + | ||
| 1173 | + | core.PuregoSafeRegister(&xNewAboutWindow, lib, "adw_about_window_new") | |
| 1174 | + | ||
| 1175 | + | core.PuregoSafeRegister(&xAboutWindowAddAcknowledgementSection, lib, "adw_about_window_add_acknowledgement_section") | |
| 1176 | + | core.PuregoSafeRegister(&xAboutWindowAddCreditSection, lib, "adw_about_window_add_credit_section") | |
| 1177 | + | core.PuregoSafeRegister(&xAboutWindowAddLegalSection, lib, "adw_about_window_add_legal_section") | |
| 1178 | + | core.PuregoSafeRegister(&xAboutWindowAddLink, lib, "adw_about_window_add_link") | |
| 1179 | + | core.PuregoSafeRegister(&xAboutWindowGetApplicationIcon, lib, "adw_about_window_get_application_icon") | |
| 1180 | + | core.PuregoSafeRegister(&xAboutWindowGetApplicationName, lib, "adw_about_window_get_application_name") | |
| 1181 | + | core.PuregoSafeRegister(&xAboutWindowGetArtists, lib, "adw_about_window_get_artists") | |
| 1182 | + | core.PuregoSafeRegister(&xAboutWindowGetComments, lib, "adw_about_window_get_comments") | |
| 1183 | + | core.PuregoSafeRegister(&xAboutWindowGetCopyright, lib, "adw_about_window_get_copyright") | |
| 1184 | + | core.PuregoSafeRegister(&xAboutWindowGetDebugInfo, lib, "adw_about_window_get_debug_info") | |
| 1185 | + | core.PuregoSafeRegister(&xAboutWindowGetDebugInfoFilename, lib, "adw_about_window_get_debug_info_filename") | |
| 1186 | + | core.PuregoSafeRegister(&xAboutWindowGetDesigners, lib, "adw_about_window_get_designers") | |
| 1187 | + | core.PuregoSafeRegister(&xAboutWindowGetDeveloperName, lib, "adw_about_window_get_developer_name") | |
| 1188 | + | core.PuregoSafeRegister(&xAboutWindowGetDevelopers, lib, "adw_about_window_get_developers") | |
| 1189 | + | core.PuregoSafeRegister(&xAboutWindowGetDocumenters, lib, "adw_about_window_get_documenters") | |
| 1190 | + | core.PuregoSafeRegister(&xAboutWindowGetIssueUrl, lib, "adw_about_window_get_issue_url") | |
| 1191 | + | core.PuregoSafeRegister(&xAboutWindowGetLicense, lib, "adw_about_window_get_license") | |
| 1192 | + | core.PuregoSafeRegister(&xAboutWindowGetLicenseType, lib, "adw_about_window_get_license_type") | |
| 1193 | + | core.PuregoSafeRegister(&xAboutWindowGetReleaseNotes, lib, "adw_about_window_get_release_notes") | |
| 1194 | + | core.PuregoSafeRegister(&xAboutWindowGetReleaseNotesVersion, lib, "adw_about_window_get_release_notes_version") | |
| 1195 | + | core.PuregoSafeRegister(&xAboutWindowGetSupportUrl, lib, "adw_about_window_get_support_url") | |
| 1196 | + | core.PuregoSafeRegister(&xAboutWindowGetTranslatorCredits, lib, "adw_about_window_get_translator_credits") | |
| 1197 | + | core.PuregoSafeRegister(&xAboutWindowGetVersion, lib, "adw_about_window_get_version") | |
| 1198 | + | core.PuregoSafeRegister(&xAboutWindowGetWebsite, lib, "adw_about_window_get_website") | |
| 1199 | + | core.PuregoSafeRegister(&xAboutWindowSetApplicationIcon, lib, "adw_about_window_set_application_icon") | |
| 1200 | + | core.PuregoSafeRegister(&xAboutWindowSetApplicationName, lib, "adw_about_window_set_application_name") | |
| 1201 | + | core.PuregoSafeRegister(&xAboutWindowSetArtists, lib, "adw_about_window_set_artists") | |
| 1202 | + | core.PuregoSafeRegister(&xAboutWindowSetComments, lib, "adw_about_window_set_comments") | |
| 1203 | + | core.PuregoSafeRegister(&xAboutWindowSetCopyright, lib, "adw_about_window_set_copyright") | |
| 1204 | + | core.PuregoSafeRegister(&xAboutWindowSetDebugInfo, lib, "adw_about_window_set_debug_info") | |
| 1205 | + | core.PuregoSafeRegister(&xAboutWindowSetDebugInfoFilename, lib, "adw_about_window_set_debug_info_filename") | |
| 1206 | + | core.PuregoSafeRegister(&xAboutWindowSetDesigners, lib, "adw_about_window_set_designers") | |
| 1207 | + | core.PuregoSafeRegister(&xAboutWindowSetDeveloperName, lib, "adw_about_window_set_developer_name") | |
| 1208 | + | core.PuregoSafeRegister(&xAboutWindowSetDevelopers, lib, "adw_about_window_set_developers") | |
| 1209 | + | core.PuregoSafeRegister(&xAboutWindowSetDocumenters, lib, "adw_about_window_set_documenters") | |
| 1210 | + | core.PuregoSafeRegister(&xAboutWindowSetIssueUrl, lib, "adw_about_window_set_issue_url") | |
| 1211 | + | core.PuregoSafeRegister(&xAboutWindowSetLicense, lib, "adw_about_window_set_license") | |
| 1212 | + | core.PuregoSafeRegister(&xAboutWindowSetLicenseType, lib, "adw_about_window_set_license_type") | |
| 1213 | + | core.PuregoSafeRegister(&xAboutWindowSetReleaseNotes, lib, "adw_about_window_set_release_notes") | |
| 1214 | + | core.PuregoSafeRegister(&xAboutWindowSetReleaseNotesVersion, lib, "adw_about_window_set_release_notes_version") | |
| 1215 | + | core.PuregoSafeRegister(&xAboutWindowSetSupportUrl, lib, "adw_about_window_set_support_url") | |
| 1216 | + | core.PuregoSafeRegister(&xAboutWindowSetTranslatorCredits, lib, "adw_about_window_set_translator_credits") | |
| 1217 | + | core.PuregoSafeRegister(&xAboutWindowSetVersion, lib, "adw_about_window_set_version") | |
| 1218 | + | core.PuregoSafeRegister(&xAboutWindowSetWebsite, lib, "adw_about_window_set_website") | |
| 1219 | + | ||
| 1220 | + | } | |
A v4/adw/adw-action-row.go +524 -0
| @@ -0,0 +1,524 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type ActionRowClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | ||
| 15 | + | Padding uintptr | |
| 16 | + | } | |
| 17 | + | ||
| 18 | + | // A [class@Gtk.ListBoxRow] used to present actions. | |
| 19 | + | // | |
| 20 | + | // <picture> | |
| 21 | + | // | |
| 22 | + | // <source srcset="action-row-dark.png" media="(prefers-color-scheme: dark)"> | |
| 23 | + | // <img src="action-row.png" alt="action-row"> | |
| 24 | + | // | |
| 25 | + | // </picture> | |
| 26 | + | // | |
| 27 | + | // The `AdwActionRow` widget can have a title, a subtitle and an icon. The row | |
| 28 | + | // can receive additional widgets at its end, or prefix widgets at its start. | |
| 29 | + | // | |
| 30 | + | // It is convenient to present a preference and its related actions. | |
| 31 | + | // | |
| 32 | + | // `AdwActionRow` is unactivatable by default, giving it an activatable widget | |
| 33 | + | // will automatically make it activatable, but unsetting it won't change the | |
| 34 | + | // row's activatability. | |
| 35 | + | // | |
| 36 | + | // ## AdwActionRow as GtkBuildable | |
| 37 | + | // | |
| 38 | + | // The `AdwActionRow` implementation of the [iface@Gtk.Buildable] interface | |
| 39 | + | // supports adding a child at its end by specifying “suffix” or omitting the | |
| 40 | + | // “type” attribute of a <child> element. | |
| 41 | + | // | |
| 42 | + | // It also supports adding a child as a prefix widget by specifying “prefix” as | |
| 43 | + | // the “type” attribute of a <child> element. | |
| 44 | + | // | |
| 45 | + | // ## CSS nodes | |
| 46 | + | // | |
| 47 | + | // `AdwActionRow` has a main CSS node with name `row`. | |
| 48 | + | // | |
| 49 | + | // It contains the subnode `box.header` for its main horizontal box, and | |
| 50 | + | // `box.title` for the vertical box containing the title and subtitle labels. | |
| 51 | + | // | |
| 52 | + | // It contains subnodes `label.title` and `label.subtitle` representing | |
| 53 | + | // respectively the title label and subtitle label. | |
| 54 | + | type ActionRow struct { | |
| 55 | + | PreferencesRow | |
| 56 | + | } | |
| 57 | + | ||
| 58 | + | func ActionRowNewFromInternalPtr(ptr uintptr) *ActionRow { | |
| 59 | + | cls := &ActionRow{} | |
| 60 | + | cls.Ptr = ptr | |
| 61 | + | return cls | |
| 62 | + | } | |
| 63 | + | ||
| 64 | + | var xNewActionRow func() uintptr | |
| 65 | + | ||
| 66 | + | // Creates a new `AdwActionRow`. | |
| 67 | + | func NewActionRow() *gtk.Widget { | |
| 68 | + | NewActionRowPtr := xNewActionRow() | |
| 69 | + | if NewActionRowPtr == 0 { | |
| 70 | + | return nil | |
| 71 | + | } | |
| 72 | + | ||
| 73 | + | gobject.IncreaseRef(NewActionRowPtr) | |
| 74 | + | ||
| 75 | + | NewActionRowCls := >k.Widget{} | |
| 76 | + | NewActionRowCls.Ptr = NewActionRowPtr | |
| 77 | + | return NewActionRowCls | |
| 78 | + | } | |
| 79 | + | ||
| 80 | + | var xActionRowActivate func(uintptr) | |
| 81 | + | ||
| 82 | + | // Activates @self. | |
| 83 | + | func (x *ActionRow) Activate() { | |
| 84 | + | ||
| 85 | + | xActionRowActivate(x.GoPointer()) | |
| 86 | + | ||
| 87 | + | } | |
| 88 | + | ||
| 89 | + | var xActionRowAddPrefix func(uintptr, uintptr) | |
| 90 | + | ||
| 91 | + | // Adds a prefix widget to @self. | |
| 92 | + | func (x *ActionRow) AddPrefix(WidgetVar *gtk.Widget) { | |
| 93 | + | ||
| 94 | + | xActionRowAddPrefix(x.GoPointer(), WidgetVar.GoPointer()) | |
| 95 | + | ||
| 96 | + | } | |
| 97 | + | ||
| 98 | + | var xActionRowAddSuffix func(uintptr, uintptr) | |
| 99 | + | ||
| 100 | + | // Adds a suffix widget to @self. | |
| 101 | + | func (x *ActionRow) AddSuffix(WidgetVar *gtk.Widget) { | |
| 102 | + | ||
| 103 | + | xActionRowAddSuffix(x.GoPointer(), WidgetVar.GoPointer()) | |
| 104 | + | ||
| 105 | + | } | |
| 106 | + | ||
| 107 | + | var xActionRowGetActivatableWidget func(uintptr) uintptr | |
| 108 | + | ||
| 109 | + | // Gets the widget activated when @self is activated. | |
| 110 | + | func (x *ActionRow) GetActivatableWidget() *gtk.Widget { | |
| 111 | + | ||
| 112 | + | GetActivatableWidgetPtr := xActionRowGetActivatableWidget(x.GoPointer()) | |
| 113 | + | if GetActivatableWidgetPtr == 0 { | |
| 114 | + | return nil | |
| 115 | + | } | |
| 116 | + | ||
| 117 | + | gobject.IncreaseRef(GetActivatableWidgetPtr) | |
| 118 | + | ||
| 119 | + | GetActivatableWidgetCls := >k.Widget{} | |
| 120 | + | GetActivatableWidgetCls.Ptr = GetActivatableWidgetPtr | |
| 121 | + | return GetActivatableWidgetCls | |
| 122 | + | ||
| 123 | + | } | |
| 124 | + | ||
| 125 | + | var xActionRowGetIconName func(uintptr) string | |
| 126 | + | ||
| 127 | + | // Gets the icon name for @self. | |
| 128 | + | func (x *ActionRow) GetIconName() string { | |
| 129 | + | ||
| 130 | + | return xActionRowGetIconName(x.GoPointer()) | |
| 131 | + | ||
| 132 | + | } | |
| 133 | + | ||
| 134 | + | var xActionRowGetSubtitle func(uintptr) string | |
| 135 | + | ||
| 136 | + | // Gets the subtitle for @self. | |
| 137 | + | func (x *ActionRow) GetSubtitle() string { | |
| 138 | + | ||
| 139 | + | return xActionRowGetSubtitle(x.GoPointer()) | |
| 140 | + | ||
| 141 | + | } | |
| 142 | + | ||
| 143 | + | var xActionRowGetSubtitleLines func(uintptr) int32 | |
| 144 | + | ||
| 145 | + | // Gets the number of lines at the end of which the subtitle label will be | |
| 146 | + | // ellipsized. | |
| 147 | + | func (x *ActionRow) GetSubtitleLines() int32 { | |
| 148 | + | ||
| 149 | + | return xActionRowGetSubtitleLines(x.GoPointer()) | |
| 150 | + | ||
| 151 | + | } | |
| 152 | + | ||
| 153 | + | var xActionRowGetSubtitleSelectable func(uintptr) bool | |
| 154 | + | ||
| 155 | + | // Gets whether the user can copy the subtitle from the label | |
| 156 | + | func (x *ActionRow) GetSubtitleSelectable() bool { | |
| 157 | + | ||
| 158 | + | return xActionRowGetSubtitleSelectable(x.GoPointer()) | |
| 159 | + | ||
| 160 | + | } | |
| 161 | + | ||
| 162 | + | var xActionRowGetTitleLines func(uintptr) int32 | |
| 163 | + | ||
| 164 | + | // Gets the number of lines at the end of which the title label will be | |
| 165 | + | // ellipsized. | |
| 166 | + | func (x *ActionRow) GetTitleLines() int32 { | |
| 167 | + | ||
| 168 | + | return xActionRowGetTitleLines(x.GoPointer()) | |
| 169 | + | ||
| 170 | + | } | |
| 171 | + | ||
| 172 | + | var xActionRowRemove func(uintptr, uintptr) | |
| 173 | + | ||
| 174 | + | // Removes a child from @self. | |
| 175 | + | func (x *ActionRow) Remove(WidgetVar *gtk.Widget) { | |
| 176 | + | ||
| 177 | + | xActionRowRemove(x.GoPointer(), WidgetVar.GoPointer()) | |
| 178 | + | ||
| 179 | + | } | |
| 180 | + | ||
| 181 | + | var xActionRowSetActivatableWidget func(uintptr, uintptr) | |
| 182 | + | ||
| 183 | + | // Sets the widget to activate when @self is activated. | |
| 184 | + | // | |
| 185 | + | // The row can be activated either by clicking on it, calling | |
| 186 | + | // [method@ActionRow.activate], or via mnemonics in the title. | |
| 187 | + | // See the [property@PreferencesRow:use-underline] property to enable mnemonics. | |
| 188 | + | // | |
| 189 | + | // The target widget will be activated by emitting the | |
| 190 | + | // [signal@Gtk.Widget::mnemonic-activate] signal on it. | |
| 191 | + | func (x *ActionRow) SetActivatableWidget(WidgetVar *gtk.Widget) { | |
| 192 | + | ||
| 193 | + | xActionRowSetActivatableWidget(x.GoPointer(), WidgetVar.GoPointer()) | |
| 194 | + | ||
| 195 | + | } | |
| 196 | + | ||
| 197 | + | var xActionRowSetIconName func(uintptr, string) | |
| 198 | + | ||
| 199 | + | // Sets the icon name for @self. | |
| 200 | + | func (x *ActionRow) SetIconName(IconNameVar string) { | |
| 201 | + | ||
| 202 | + | xActionRowSetIconName(x.GoPointer(), IconNameVar) | |
| 203 | + | ||
| 204 | + | } | |
| 205 | + | ||
| 206 | + | var xActionRowSetSubtitle func(uintptr, string) | |
| 207 | + | ||
| 208 | + | // Sets the subtitle for @self. | |
| 209 | + | // | |
| 210 | + | // The subtitle is interpreted as Pango markup unless | |
| 211 | + | // [property@PreferencesRow:use-markup] is set to `FALSE`. | |
| 212 | + | func (x *ActionRow) SetSubtitle(SubtitleVar string) { | |
| 213 | + | ||
| 214 | + | xActionRowSetSubtitle(x.GoPointer(), SubtitleVar) | |
| 215 | + | ||
| 216 | + | } | |
| 217 | + | ||
| 218 | + | var xActionRowSetSubtitleLines func(uintptr, int32) | |
| 219 | + | ||
| 220 | + | // Sets the number of lines at the end of which the subtitle label will be | |
| 221 | + | // ellipsized. | |
| 222 | + | // | |
| 223 | + | // If the value is 0, the number of lines won't be limited. | |
| 224 | + | func (x *ActionRow) SetSubtitleLines(SubtitleLinesVar int32) { | |
| 225 | + | ||
| 226 | + | xActionRowSetSubtitleLines(x.GoPointer(), SubtitleLinesVar) | |
| 227 | + | ||
| 228 | + | } | |
| 229 | + | ||
| 230 | + | var xActionRowSetSubtitleSelectable func(uintptr, bool) | |
| 231 | + | ||
| 232 | + | // Sets whether the user can copy the subtitle from the label | |
| 233 | + | // | |
| 234 | + | // See also [property@Gtk.Label:selectable]. | |
| 235 | + | func (x *ActionRow) SetSubtitleSelectable(SubtitleSelectableVar bool) { | |
| 236 | + | ||
| 237 | + | xActionRowSetSubtitleSelectable(x.GoPointer(), SubtitleSelectableVar) | |
| 238 | + | ||
| 239 | + | } | |
| 240 | + | ||
| 241 | + | var xActionRowSetTitleLines func(uintptr, int32) | |
| 242 | + | ||
| 243 | + | // Sets the number of lines at the end of which the title label will be | |
| 244 | + | // ellipsized. | |
| 245 | + | // | |
| 246 | + | // If the value is 0, the number of lines won't be limited. | |
| 247 | + | func (x *ActionRow) SetTitleLines(TitleLinesVar int32) { | |
| 248 | + | ||
| 249 | + | xActionRowSetTitleLines(x.GoPointer(), TitleLinesVar) | |
| 250 | + | ||
| 251 | + | } | |
| 252 | + | ||
| 253 | + | func (c *ActionRow) GoPointer() uintptr { | |
| 254 | + | return c.Ptr | |
| 255 | + | } | |
| 256 | + | ||
| 257 | + | func (c *ActionRow) SetGoPointer(ptr uintptr) { | |
| 258 | + | c.Ptr = ptr | |
| 259 | + | } | |
| 260 | + | ||
| 261 | + | // This signal is emitted after the row has been activated. | |
| 262 | + | func (x *ActionRow) ConnectActivated(cb func(ActionRow)) { | |
| 263 | + | fcb := func(clsPtr uintptr) { | |
| 264 | + | fa := ActionRow{} | |
| 265 | + | fa.Ptr = clsPtr | |
| 266 | + | ||
| 267 | + | cb(fa) | |
| 268 | + | ||
| 269 | + | } | |
| 270 | + | gobject.ObjectConnect(x.GoPointer(), "signal::activated", purego.NewCallback(fcb)) | |
| 271 | + | } | |
| 272 | + | ||
| 273 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 274 | + | func (x *ActionRow) GetAccessibleRole() gtk.AccessibleRole { | |
| 275 | + | ||
| 276 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 277 | + | ||
| 278 | + | } | |
| 279 | + | ||
| 280 | + | // Resets the accessible @property to its default value. | |
| 281 | + | func (x *ActionRow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 282 | + | ||
| 283 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 284 | + | ||
| 285 | + | } | |
| 286 | + | ||
| 287 | + | // Resets the accessible @relation to its default value. | |
| 288 | + | func (x *ActionRow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 289 | + | ||
| 290 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 291 | + | ||
| 292 | + | } | |
| 293 | + | ||
| 294 | + | // Resets the accessible @state to its default value. | |
| 295 | + | func (x *ActionRow) ResetState(StateVar gtk.AccessibleState) { | |
| 296 | + | ||
| 297 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 298 | + | ||
| 299 | + | } | |
| 300 | + | ||
| 301 | + | // Updates a list of accessible properties. | |
| 302 | + | // | |
| 303 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 304 | + | // value types of accessible properties. | |
| 305 | + | // | |
| 306 | + | // This function should be called by `GtkWidget` types whenever | |
| 307 | + | // an accessible property change must be communicated to assistive | |
| 308 | + | // technologies. | |
| 309 | + | // | |
| 310 | + | // Example: | |
| 311 | + | // ```c | |
| 312 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 313 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 314 | + | // | |
| 315 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 316 | + | // -1); | |
| 317 | + | // | |
| 318 | + | // ``` | |
| 319 | + | func (x *ActionRow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 320 | + | ||
| 321 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 322 | + | ||
| 323 | + | } | |
| 324 | + | ||
| 325 | + | // Updates an array of accessible properties. | |
| 326 | + | // | |
| 327 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 328 | + | // property change must be communicated to assistive technologies. | |
| 329 | + | // | |
| 330 | + | // This function is meant to be used by language bindings. | |
| 331 | + | func (x *ActionRow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 332 | + | ||
| 333 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 334 | + | ||
| 335 | + | } | |
| 336 | + | ||
| 337 | + | // Updates a list of accessible relations. | |
| 338 | + | // | |
| 339 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 340 | + | // relation change must be communicated to assistive technologies. | |
| 341 | + | // | |
| 342 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 343 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 344 | + | // | |
| 345 | + | // ```c | |
| 346 | + | // gtk_accessible_update_relation (accessible, | |
| 347 | + | // | |
| 348 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 349 | + | // ref1, NULL, | |
| 350 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 351 | + | // ref1, ref2, ref3, NULL, | |
| 352 | + | // -1); | |
| 353 | + | // | |
| 354 | + | // ``` | |
| 355 | + | func (x *ActionRow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 356 | + | ||
| 357 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 358 | + | ||
| 359 | + | } | |
| 360 | + | ||
| 361 | + | // Updates an array of accessible relations. | |
| 362 | + | // | |
| 363 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 364 | + | // relation change must be communicated to assistive technologies. | |
| 365 | + | // | |
| 366 | + | // This function is meant to be used by language bindings. | |
| 367 | + | func (x *ActionRow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 368 | + | ||
| 369 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 370 | + | ||
| 371 | + | } | |
| 372 | + | ||
| 373 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 374 | + | // documentation for the value types of accessible states. | |
| 375 | + | // | |
| 376 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 377 | + | // state change must be communicated to assistive technologies. | |
| 378 | + | // | |
| 379 | + | // Example: | |
| 380 | + | // ```c | |
| 381 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 382 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 383 | + | // | |
| 384 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 385 | + | // -1); | |
| 386 | + | // | |
| 387 | + | // ``` | |
| 388 | + | func (x *ActionRow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 389 | + | ||
| 390 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 391 | + | ||
| 392 | + | } | |
| 393 | + | ||
| 394 | + | // Updates an array of accessible states. | |
| 395 | + | // | |
| 396 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 397 | + | // state change must be communicated to assistive technologies. | |
| 398 | + | // | |
| 399 | + | // This function is meant to be used by language bindings. | |
| 400 | + | func (x *ActionRow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 401 | + | ||
| 402 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 403 | + | ||
| 404 | + | } | |
| 405 | + | ||
| 406 | + | // Gets the action name for @actionable. | |
| 407 | + | func (x *ActionRow) GetActionName() string { | |
| 408 | + | ||
| 409 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 410 | + | ||
| 411 | + | } | |
| 412 | + | ||
| 413 | + | // Gets the current target value of @actionable. | |
| 414 | + | func (x *ActionRow) GetActionTargetValue() *glib.Variant { | |
| 415 | + | ||
| 416 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 417 | + | ||
| 418 | + | } | |
| 419 | + | ||
| 420 | + | // Specifies the name of the action with which this widget should be | |
| 421 | + | // associated. | |
| 422 | + | // | |
| 423 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 424 | + | // any previous action. | |
| 425 | + | // | |
| 426 | + | // Usually this function is used when the widget is located (or will be | |
| 427 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 428 | + | // | |
| 429 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 430 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 431 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 432 | + | // associated with the window. | |
| 433 | + | func (x *ActionRow) SetActionName(ActionNameVar string) { | |
| 434 | + | ||
| 435 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 436 | + | ||
| 437 | + | } | |
| 438 | + | ||
| 439 | + | // Sets the target of an actionable widget. | |
| 440 | + | // | |
| 441 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 442 | + | // @format_string and uses the result to call | |
| 443 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 444 | + | // | |
| 445 | + | // If you are setting a string-valued target and want to set | |
| 446 | + | // the action name at the same time, you can use | |
| 447 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 448 | + | func (x *ActionRow) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 449 | + | ||
| 450 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 451 | + | ||
| 452 | + | } | |
| 453 | + | ||
| 454 | + | // Sets the target value of an actionable widget. | |
| 455 | + | // | |
| 456 | + | // If @target_value is %NULL then the target value is unset. | |
| 457 | + | // | |
| 458 | + | // The target value has two purposes. First, it is used as the parameter | |
| 459 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 460 | + | // Second, it is used to determine if the widget should be rendered as | |
| 461 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 462 | + | // | |
| 463 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 464 | + | // with string state in a typical “radio button” situation. Each button | |
| 465 | + | // will be associated with the same action, but with a different target | |
| 466 | + | // value for that action. Clicking on a particular button will activate | |
| 467 | + | // the action with the target of that button, which will typically cause | |
| 468 | + | // the action’s state to change to that value. Since the action’s state | |
| 469 | + | // is now equal to the target value of the button, the button will now | |
| 470 | + | // be rendered as active (and the other buttons, with different targets, | |
| 471 | + | // rendered inactive). | |
| 472 | + | func (x *ActionRow) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 473 | + | ||
| 474 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 475 | + | ||
| 476 | + | } | |
| 477 | + | ||
| 478 | + | // Sets the action-name and associated string target value of an | |
| 479 | + | // actionable widget. | |
| 480 | + | // | |
| 481 | + | // @detailed_action_name is a string in the format accepted by | |
| 482 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 483 | + | func (x *ActionRow) SetDetailedActionName(DetailedActionNameVar string) { | |
| 484 | + | ||
| 485 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 486 | + | ||
| 487 | + | } | |
| 488 | + | ||
| 489 | + | // Gets the ID of the @buildable object. | |
| 490 | + | // | |
| 491 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 492 | + | // of the <object> tag used to construct the @buildable. | |
| 493 | + | func (x *ActionRow) GetBuildableId() string { | |
| 494 | + | ||
| 495 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 496 | + | ||
| 497 | + | } | |
| 498 | + | ||
| 499 | + | func init() { | |
| 500 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 501 | + | if err != nil { | |
| 502 | + | panic(err) | |
| 503 | + | } | |
| 504 | + | ||
| 505 | + | core.PuregoSafeRegister(&xNewActionRow, lib, "adw_action_row_new") | |
| 506 | + | ||
| 507 | + | core.PuregoSafeRegister(&xActionRowActivate, lib, "adw_action_row_activate") | |
| 508 | + | core.PuregoSafeRegister(&xActionRowAddPrefix, lib, "adw_action_row_add_prefix") | |
| 509 | + | core.PuregoSafeRegister(&xActionRowAddSuffix, lib, "adw_action_row_add_suffix") | |
| 510 | + | core.PuregoSafeRegister(&xActionRowGetActivatableWidget, lib, "adw_action_row_get_activatable_widget") | |
| 511 | + | core.PuregoSafeRegister(&xActionRowGetIconName, lib, "adw_action_row_get_icon_name") | |
| 512 | + | core.PuregoSafeRegister(&xActionRowGetSubtitle, lib, "adw_action_row_get_subtitle") | |
| 513 | + | core.PuregoSafeRegister(&xActionRowGetSubtitleLines, lib, "adw_action_row_get_subtitle_lines") | |
| 514 | + | core.PuregoSafeRegister(&xActionRowGetSubtitleSelectable, lib, "adw_action_row_get_subtitle_selectable") | |
| 515 | + | core.PuregoSafeRegister(&xActionRowGetTitleLines, lib, "adw_action_row_get_title_lines") | |
| 516 | + | core.PuregoSafeRegister(&xActionRowRemove, lib, "adw_action_row_remove") | |
| 517 | + | core.PuregoSafeRegister(&xActionRowSetActivatableWidget, lib, "adw_action_row_set_activatable_widget") | |
| 518 | + | core.PuregoSafeRegister(&xActionRowSetIconName, lib, "adw_action_row_set_icon_name") | |
| 519 | + | core.PuregoSafeRegister(&xActionRowSetSubtitle, lib, "adw_action_row_set_subtitle") | |
| 520 | + | core.PuregoSafeRegister(&xActionRowSetSubtitleLines, lib, "adw_action_row_set_subtitle_lines") | |
| 521 | + | core.PuregoSafeRegister(&xActionRowSetSubtitleSelectable, lib, "adw_action_row_set_subtitle_selectable") | |
| 522 | + | core.PuregoSafeRegister(&xActionRowSetTitleLines, lib, "adw_action_row_set_title_lines") | |
| 523 | + | ||
| 524 | + | } | |
A v4/adw/adw-animation-target.go +181 -0
| @@ -0,0 +1,181 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | // Prototype for animation targets based on user callbacks. | |
| 12 | + | type AnimationTargetFunc func(float64, uintptr) | |
| 13 | + | ||
| 14 | + | type AnimationTargetClass struct { | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | type CallbackAnimationTargetClass struct { | |
| 18 | + | } | |
| 19 | + | ||
| 20 | + | type PropertyAnimationTargetClass struct { | |
| 21 | + | } | |
| 22 | + | ||
| 23 | + | // Represents a value [class@Animation] can animate. | |
| 24 | + | type AnimationTarget struct { | |
| 25 | + | gobject.Object | |
| 26 | + | } | |
| 27 | + | ||
| 28 | + | func AnimationTargetNewFromInternalPtr(ptr uintptr) *AnimationTarget { | |
| 29 | + | cls := &AnimationTarget{} | |
| 30 | + | cls.Ptr = ptr | |
| 31 | + | return cls | |
| 32 | + | } | |
| 33 | + | ||
| 34 | + | func (c *AnimationTarget) GoPointer() uintptr { | |
| 35 | + | return c.Ptr | |
| 36 | + | } | |
| 37 | + | ||
| 38 | + | func (c *AnimationTarget) SetGoPointer(ptr uintptr) { | |
| 39 | + | c.Ptr = ptr | |
| 40 | + | } | |
| 41 | + | ||
| 42 | + | // An [class@AnimationTarget] that calls a given callback during the | |
| 43 | + | // animation. | |
| 44 | + | type CallbackAnimationTarget struct { | |
| 45 | + | AnimationTarget | |
| 46 | + | } | |
| 47 | + | ||
| 48 | + | func CallbackAnimationTargetNewFromInternalPtr(ptr uintptr) *CallbackAnimationTarget { | |
| 49 | + | cls := &CallbackAnimationTarget{} | |
| 50 | + | cls.Ptr = ptr | |
| 51 | + | return cls | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | var xNewCallbackAnimationTarget func(uintptr, uintptr, uintptr) uintptr | |
| 55 | + | ||
| 56 | + | // Creates a new `AdwAnimationTarget` that calls the given @callback during | |
| 57 | + | // the animation. | |
| 58 | + | func NewCallbackAnimationTarget(CallbackVar AnimationTargetFunc, UserDataVar uintptr, DestroyVar glib.DestroyNotify) *AnimationTarget { | |
| 59 | + | NewCallbackAnimationTargetPtr := xNewCallbackAnimationTarget(purego.NewCallback(CallbackVar), UserDataVar, purego.NewCallback(DestroyVar)) | |
| 60 | + | if NewCallbackAnimationTargetPtr == 0 { | |
| 61 | + | return nil | |
| 62 | + | } | |
| 63 | + | ||
| 64 | + | NewCallbackAnimationTargetCls := &AnimationTarget{} | |
| 65 | + | NewCallbackAnimationTargetCls.Ptr = NewCallbackAnimationTargetPtr | |
| 66 | + | return NewCallbackAnimationTargetCls | |
| 67 | + | } | |
| 68 | + | ||
| 69 | + | func (c *CallbackAnimationTarget) GoPointer() uintptr { | |
| 70 | + | return c.Ptr | |
| 71 | + | } | |
| 72 | + | ||
| 73 | + | func (c *CallbackAnimationTarget) SetGoPointer(ptr uintptr) { | |
| 74 | + | c.Ptr = ptr | |
| 75 | + | } | |
| 76 | + | ||
| 77 | + | // An [class@AnimationTarget] changing the value of a property of a | |
| 78 | + | // [class@GObject.Object] instance. | |
| 79 | + | type PropertyAnimationTarget struct { | |
| 80 | + | AnimationTarget | |
| 81 | + | } | |
| 82 | + | ||
| 83 | + | func PropertyAnimationTargetNewFromInternalPtr(ptr uintptr) *PropertyAnimationTarget { | |
| 84 | + | cls := &PropertyAnimationTarget{} | |
| 85 | + | cls.Ptr = ptr | |
| 86 | + | return cls | |
| 87 | + | } | |
| 88 | + | ||
| 89 | + | var xNewPropertyAnimationTarget func(uintptr, string) uintptr | |
| 90 | + | ||
| 91 | + | // Creates a new `AdwPropertyAnimationTarget` for the @property_name property on | |
| 92 | + | // @object. | |
| 93 | + | func NewPropertyAnimationTarget(ObjectVar *gobject.Object, PropertyNameVar string) *AnimationTarget { | |
| 94 | + | NewPropertyAnimationTargetPtr := xNewPropertyAnimationTarget(ObjectVar.GoPointer(), PropertyNameVar) | |
| 95 | + | if NewPropertyAnimationTargetPtr == 0 { | |
| 96 | + | return nil | |
| 97 | + | } | |
| 98 | + | ||
| 99 | + | NewPropertyAnimationTargetCls := &AnimationTarget{} | |
| 100 | + | NewPropertyAnimationTargetCls.Ptr = NewPropertyAnimationTargetPtr | |
| 101 | + | return NewPropertyAnimationTargetCls | |
| 102 | + | } | |
| 103 | + | ||
| 104 | + | var xNewForPspecPropertyAnimationTarget func(uintptr, uintptr) uintptr | |
| 105 | + | ||
| 106 | + | // Creates a new `AdwPropertyAnimationTarget` for the @pspec property on | |
| 107 | + | // @object. | |
| 108 | + | func NewForPspecPropertyAnimationTarget(ObjectVar *gobject.Object, PspecVar *gobject.ParamSpec) *AnimationTarget { | |
| 109 | + | NewForPspecPropertyAnimationTargetPtr := xNewForPspecPropertyAnimationTarget(ObjectVar.GoPointer(), PspecVar.GoPointer()) | |
| 110 | + | if NewForPspecPropertyAnimationTargetPtr == 0 { | |
| 111 | + | return nil | |
| 112 | + | } | |
| 113 | + | ||
| 114 | + | NewForPspecPropertyAnimationTargetCls := &AnimationTarget{} | |
| 115 | + | NewForPspecPropertyAnimationTargetCls.Ptr = NewForPspecPropertyAnimationTargetPtr | |
| 116 | + | return NewForPspecPropertyAnimationTargetCls | |
| 117 | + | } | |
| 118 | + | ||
| 119 | + | var xPropertyAnimationTargetGetObject func(uintptr) uintptr | |
| 120 | + | ||
| 121 | + | // Gets the object animated by @self. | |
| 122 | + | // | |
| 123 | + | // The `AdwPropertyAnimationTarget` instance does not hold a strong reference on | |
| 124 | + | // the object; make sure the object is kept alive throughout the target's | |
| 125 | + | // lifetime. | |
| 126 | + | func (x *PropertyAnimationTarget) GetObject() *gobject.Object { | |
| 127 | + | ||
| 128 | + | GetObjectPtr := xPropertyAnimationTargetGetObject(x.GoPointer()) | |
| 129 | + | if GetObjectPtr == 0 { | |
| 130 | + | return nil | |
| 131 | + | } | |
| 132 | + | ||
| 133 | + | gobject.IncreaseRef(GetObjectPtr) | |
| 134 | + | ||
| 135 | + | GetObjectCls := &gobject.Object{} | |
| 136 | + | GetObjectCls.Ptr = GetObjectPtr | |
| 137 | + | return GetObjectCls | |
| 138 | + | ||
| 139 | + | } | |
| 140 | + | ||
| 141 | + | var xPropertyAnimationTargetGetPspec func(uintptr) uintptr | |
| 142 | + | ||
| 143 | + | // Gets the `GParamSpec` of the property animated by @self. | |
| 144 | + | func (x *PropertyAnimationTarget) GetPspec() *gobject.ParamSpec { | |
| 145 | + | ||
| 146 | + | GetPspecPtr := xPropertyAnimationTargetGetPspec(x.GoPointer()) | |
| 147 | + | if GetPspecPtr == 0 { | |
| 148 | + | return nil | |
| 149 | + | } | |
| 150 | + | ||
| 151 | + | gobject.IncreaseRef(GetPspecPtr) | |
| 152 | + | ||
| 153 | + | GetPspecCls := &gobject.ParamSpec{} | |
| 154 | + | GetPspecCls.Ptr = GetPspecPtr | |
| 155 | + | return GetPspecCls | |
| 156 | + | ||
| 157 | + | } | |
| 158 | + | ||
| 159 | + | func (c *PropertyAnimationTarget) GoPointer() uintptr { | |
| 160 | + | return c.Ptr | |
| 161 | + | } | |
| 162 | + | ||
| 163 | + | func (c *PropertyAnimationTarget) SetGoPointer(ptr uintptr) { | |
| 164 | + | c.Ptr = ptr | |
| 165 | + | } | |
| 166 | + | ||
| 167 | + | func init() { | |
| 168 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 169 | + | if err != nil { | |
| 170 | + | panic(err) | |
| 171 | + | } | |
| 172 | + | ||
| 173 | + | core.PuregoSafeRegister(&xNewCallbackAnimationTarget, lib, "adw_callback_animation_target_new") | |
| 174 | + | ||
| 175 | + | core.PuregoSafeRegister(&xNewPropertyAnimationTarget, lib, "adw_property_animation_target_new") | |
| 176 | + | core.PuregoSafeRegister(&xNewForPspecPropertyAnimationTarget, lib, "adw_property_animation_target_new_for_pspec") | |
| 177 | + | ||
| 178 | + | core.PuregoSafeRegister(&xPropertyAnimationTargetGetObject, lib, "adw_property_animation_target_get_object") | |
| 179 | + | core.PuregoSafeRegister(&xPropertyAnimationTargetGetPspec, lib, "adw_property_animation_target_get_pspec") | |
| 180 | + | ||
| 181 | + | } | |
A v4/adw/adw-animation-util.go +39 -0
| @@ -0,0 +1,39 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 8 | + | ) | |
| 9 | + | ||
| 10 | + | var xGetEnableAnimations func(uintptr) bool | |
| 11 | + | ||
| 12 | + | // Checks whether animations are enabled for @widget. | |
| 13 | + | // | |
| 14 | + | // This should be used when implementing an animated widget to know whether to | |
| 15 | + | // animate it or not. | |
| 16 | + | func GetEnableAnimations(WidgetVar *gtk.Widget) bool { | |
| 17 | + | ||
| 18 | + | return xGetEnableAnimations(WidgetVar.GoPointer()) | |
| 19 | + | ||
| 20 | + | } | |
| 21 | + | ||
| 22 | + | var xLerp func(float64, float64, float64) float64 | |
| 23 | + | ||
| 24 | + | // Computes the linear interpolation between @a and @b for @t. | |
| 25 | + | func Lerp(AVar float64, BVar float64, TVar float64) float64 { | |
| 26 | + | ||
| 27 | + | return xLerp(AVar, BVar, TVar) | |
| 28 | + | ||
| 29 | + | } | |
| 30 | + | ||
| 31 | + | func init() { | |
| 32 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 33 | + | if err != nil { | |
| 34 | + | panic(err) | |
| 35 | + | } | |
| 36 | + | core.PuregoSafeRegister(&xGetEnableAnimations, lib, "adw_get_enable_animations") | |
| 37 | + | core.PuregoSafeRegister(&xLerp, lib, "adw_lerp") | |
| 38 | + | ||
| 39 | + | } | |
A v4/adw/adw-animation.go +307 -0
| @@ -0,0 +1,307 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type AnimationClass struct { | |
| 12 | + | } | |
| 13 | + | ||
| 14 | + | // Describes the possible states of an [class@Animation]. | |
| 15 | + | // | |
| 16 | + | // The state can be controlled with [method@Animation.play], | |
| 17 | + | // [method@Animation.pause], [method@Animation.resume], | |
| 18 | + | // [method@Animation.reset] and [method@Animation.skip]. | |
| 19 | + | type AnimationState int | |
| 20 | + | ||
| 21 | + | const ( | |
| 22 | + | ||
| 23 | + | // The animation hasn't started yet. | |
| 24 | + | AnimationIdleValue AnimationState = 0 | |
| 25 | + | // The animation has been paused. | |
| 26 | + | AnimationPausedValue AnimationState = 1 | |
| 27 | + | // The animation is currently playing. | |
| 28 | + | AnimationPlayingValue AnimationState = 2 | |
| 29 | + | // The animation has finished. | |
| 30 | + | AnimationFinishedValue AnimationState = 3 | |
| 31 | + | ) | |
| 32 | + | ||
| 33 | + | // A base class for animations. | |
| 34 | + | // | |
| 35 | + | // `AdwAnimation` represents an animation on a widget. It has a target that | |
| 36 | + | // provides a value to animate, and a state indicating whether the | |
| 37 | + | // animation hasn't been started yet, is playing, paused or finished. | |
| 38 | + | // | |
| 39 | + | // Currently there are two concrete animation types: | |
| 40 | + | // [class@TimedAnimation] and [class@SpringAnimation]. | |
| 41 | + | // | |
| 42 | + | // `AdwAnimation` will automatically skip the animation if | |
| 43 | + | // [property@Animation:widget] is unmapped, or if | |
| 44 | + | // [property@Gtk.Settings:gtk-enable-animations] is `FALSE`. | |
| 45 | + | // | |
| 46 | + | // The [signal@Animation::done] signal can be used to perform an action after | |
| 47 | + | // the animation ends, for example hiding a widget after animating its | |
| 48 | + | // [property@Gtk.Widget:opacity] to 0. | |
| 49 | + | // | |
| 50 | + | // `AdwAnimation` will be kept alive while the animation is playing. As such, | |
| 51 | + | // it's safe to create an animation, start it and immediately unref it: | |
| 52 | + | // A fire-and-forget animation: | |
| 53 | + | // | |
| 54 | + | // ```c | |
| 55 | + | // static void | |
| 56 | + | // animation_cb (double value, | |
| 57 | + | // | |
| 58 | + | // MyObject *self) | |
| 59 | + | // | |
| 60 | + | // { | |
| 61 | + | // // Do something with @value | |
| 62 | + | // } | |
| 63 | + | // | |
| 64 | + | // static void | |
| 65 | + | // my_object_animate (MyObject *self) | |
| 66 | + | // | |
| 67 | + | // { | |
| 68 | + | // AdwAnimationTarget *target = | |
| 69 | + | // adw_callback_animation_target_new ((AdwAnimationTargetFunc) animation_cb, | |
| 70 | + | // self, NULL); | |
| 71 | + | // g_autoptr (AdwAnimation) animation = | |
| 72 | + | // adw_timed_animation_new (widget, 0, 1, 250, target); | |
| 73 | + | // | |
| 74 | + | // adw_animation_play (animation); | |
| 75 | + | // } | |
| 76 | + | // | |
| 77 | + | // ``` | |
| 78 | + | // | |
| 79 | + | // If there's a chance the previous animation for the same target hasn't yet | |
| 80 | + | // finished, the previous animation should be stopped first, or the existing | |
| 81 | + | // `AdwAnimation` object can be reused. | |
| 82 | + | type Animation struct { | |
| 83 | + | gobject.Object | |
| 84 | + | } | |
| 85 | + | ||
| 86 | + | func AnimationNewFromInternalPtr(ptr uintptr) *Animation { | |
| 87 | + | cls := &Animation{} | |
| 88 | + | cls.Ptr = ptr | |
| 89 | + | return cls | |
| 90 | + | } | |
| 91 | + | ||
| 92 | + | var xAnimationGetFollowEnableAnimationsSetting func(uintptr) bool | |
| 93 | + | ||
| 94 | + | // Gets whether @self should be skipped when animations are globally disabled. | |
| 95 | + | func (x *Animation) GetFollowEnableAnimationsSetting() bool { | |
| 96 | + | ||
| 97 | + | return xAnimationGetFollowEnableAnimationsSetting(x.GoPointer()) | |
| 98 | + | ||
| 99 | + | } | |
| 100 | + | ||
| 101 | + | var xAnimationGetState func(uintptr) AnimationState | |
| 102 | + | ||
| 103 | + | // Gets the current value of @self. | |
| 104 | + | // | |
| 105 | + | // The state indicates whether @self is currently playing, paused, finished or | |
| 106 | + | // hasn't been started yet. | |
| 107 | + | func (x *Animation) GetState() AnimationState { | |
| 108 | + | ||
| 109 | + | return xAnimationGetState(x.GoPointer()) | |
| 110 | + | ||
| 111 | + | } | |
| 112 | + | ||
| 113 | + | var xAnimationGetTarget func(uintptr) uintptr | |
| 114 | + | ||
| 115 | + | // Gets the target @self animates. | |
| 116 | + | func (x *Animation) GetTarget() *AnimationTarget { | |
| 117 | + | ||
| 118 | + | GetTargetPtr := xAnimationGetTarget(x.GoPointer()) | |
| 119 | + | if GetTargetPtr == 0 { | |
| 120 | + | return nil | |
| 121 | + | } | |
| 122 | + | ||
| 123 | + | gobject.IncreaseRef(GetTargetPtr) | |
| 124 | + | ||
| 125 | + | GetTargetCls := &AnimationTarget{} | |
| 126 | + | GetTargetCls.Ptr = GetTargetPtr | |
| 127 | + | return GetTargetCls | |
| 128 | + | ||
| 129 | + | } | |
| 130 | + | ||
| 131 | + | var xAnimationGetValue func(uintptr) float64 | |
| 132 | + | ||
| 133 | + | // Gets the current value of @self. | |
| 134 | + | func (x *Animation) GetValue() float64 { | |
| 135 | + | ||
| 136 | + | return xAnimationGetValue(x.GoPointer()) | |
| 137 | + | ||
| 138 | + | } | |
| 139 | + | ||
| 140 | + | var xAnimationGetWidget func(uintptr) uintptr | |
| 141 | + | ||
| 142 | + | // Gets the widget @self was created for. | |
| 143 | + | // | |
| 144 | + | // It provides the frame clock for the animation. It's not strictly necessary | |
| 145 | + | // for this widget to be same as the one being animated. | |
| 146 | + | // | |
| 147 | + | // The widget must be mapped in order for the animation to work. If it's not | |
| 148 | + | // mapped, or if it gets unmapped during an ongoing animation, the animation | |
| 149 | + | // will be automatically skipped. | |
| 150 | + | func (x *Animation) GetWidget() *gtk.Widget { | |
| 151 | + | ||
| 152 | + | GetWidgetPtr := xAnimationGetWidget(x.GoPointer()) | |
| 153 | + | if GetWidgetPtr == 0 { | |
| 154 | + | return nil | |
| 155 | + | } | |
| 156 | + | ||
| 157 | + | gobject.IncreaseRef(GetWidgetPtr) | |
| 158 | + | ||
| 159 | + | GetWidgetCls := >k.Widget{} | |
| 160 | + | GetWidgetCls.Ptr = GetWidgetPtr | |
| 161 | + | return GetWidgetCls | |
| 162 | + | ||
| 163 | + | } | |
| 164 | + | ||
| 165 | + | var xAnimationPause func(uintptr) | |
| 166 | + | ||
| 167 | + | // Pauses a playing animation for @self. | |
| 168 | + | // | |
| 169 | + | // Does nothing if the current state of @self isn't `ADW_ANIMATION_PLAYING`. | |
| 170 | + | // | |
| 171 | + | // Sets [property@Animation:state] to `ADW_ANIMATION_PAUSED`. | |
| 172 | + | func (x *Animation) Pause() { | |
| 173 | + | ||
| 174 | + | xAnimationPause(x.GoPointer()) | |
| 175 | + | ||
| 176 | + | } | |
| 177 | + | ||
| 178 | + | var xAnimationPlay func(uintptr) | |
| 179 | + | ||
| 180 | + | // Starts the animation for @self. | |
| 181 | + | // | |
| 182 | + | // If the animation is playing, paused or has been completed, restarts it from | |
| 183 | + | // the beginning. This allows to easily play an animation regardless of whether | |
| 184 | + | // it's already playing or not. | |
| 185 | + | // | |
| 186 | + | // Sets [property@Animation:state] to `ADW_ANIMATION_PLAYING`. | |
| 187 | + | // | |
| 188 | + | // The animation will be automatically skipped if [property@Animation:widget] is | |
| 189 | + | // unmapped, or if [property@Gtk.Settings:gtk-enable-animations] is `FALSE`. | |
| 190 | + | // | |
| 191 | + | // As such, it's not guaranteed that the animation will actually run. For | |
| 192 | + | // example, when using [func@GLib.idle_add] and starting an animation | |
| 193 | + | // immediately afterwards, it's entirely possible that the idle callback will | |
| 194 | + | // run after the animation has already finished, and not while it's playing. | |
| 195 | + | func (x *Animation) Play() { | |
| 196 | + | ||
| 197 | + | xAnimationPlay(x.GoPointer()) | |
| 198 | + | ||
| 199 | + | } | |
| 200 | + | ||
| 201 | + | var xAnimationReset func(uintptr) | |
| 202 | + | ||
| 203 | + | // Resets the animation for @self. | |
| 204 | + | // | |
| 205 | + | // Sets [property@Animation:state] to `ADW_ANIMATION_IDLE`. | |
| 206 | + | func (x *Animation) Reset() { | |
| 207 | + | ||
| 208 | + | xAnimationReset(x.GoPointer()) | |
| 209 | + | ||
| 210 | + | } | |
| 211 | + | ||
| 212 | + | var xAnimationResume func(uintptr) | |
| 213 | + | ||
| 214 | + | // Resumes a paused animation for @self. | |
| 215 | + | // | |
| 216 | + | // This function must only be used if the animation has been paused with | |
| 217 | + | // [method@Animation.pause]. | |
| 218 | + | // | |
| 219 | + | // Sets [property@Animation:state] to `ADW_ANIMATION_PLAYING`. | |
| 220 | + | func (x *Animation) Resume() { | |
| 221 | + | ||
| 222 | + | xAnimationResume(x.GoPointer()) | |
| 223 | + | ||
| 224 | + | } | |
| 225 | + | ||
| 226 | + | var xAnimationSetFollowEnableAnimationsSetting func(uintptr, bool) | |
| 227 | + | ||
| 228 | + | // Sets whether to skip @self when animations are globally disabled. | |
| 229 | + | // | |
| 230 | + | // The default behavior is to skip the animation. Set to `FALSE` to disable this | |
| 231 | + | // behavior. | |
| 232 | + | // | |
| 233 | + | // This can be useful for cases where animation is essential, like spinners, or | |
| 234 | + | // in demo applications. Most other animations should keep it enabled. | |
| 235 | + | // | |
| 236 | + | // See [property@Gtk.Settings:gtk-enable-animations]. | |
| 237 | + | func (x *Animation) SetFollowEnableAnimationsSetting(SettingVar bool) { | |
| 238 | + | ||
| 239 | + | xAnimationSetFollowEnableAnimationsSetting(x.GoPointer(), SettingVar) | |
| 240 | + | ||
| 241 | + | } | |
| 242 | + | ||
| 243 | + | var xAnimationSetTarget func(uintptr, uintptr) | |
| 244 | + | ||
| 245 | + | // Sets the target @self animates to @target. | |
| 246 | + | func (x *Animation) SetTarget(TargetVar *AnimationTarget) { | |
| 247 | + | ||
| 248 | + | xAnimationSetTarget(x.GoPointer(), TargetVar.GoPointer()) | |
| 249 | + | ||
| 250 | + | } | |
| 251 | + | ||
| 252 | + | var xAnimationSkip func(uintptr) | |
| 253 | + | ||
| 254 | + | // Skips the animation for @self. | |
| 255 | + | // | |
| 256 | + | // If the animation hasn't been started yet, is playing, or is paused, instantly | |
| 257 | + | // skips the animation to the end and causes [signal@Animation::done] to be | |
| 258 | + | // emitted. | |
| 259 | + | // | |
| 260 | + | // Sets [property@Animation:state] to `ADW_ANIMATION_FINISHED`. | |
| 261 | + | func (x *Animation) Skip() { | |
| 262 | + | ||
| 263 | + | xAnimationSkip(x.GoPointer()) | |
| 264 | + | ||
| 265 | + | } | |
| 266 | + | ||
| 267 | + | func (c *Animation) GoPointer() uintptr { | |
| 268 | + | return c.Ptr | |
| 269 | + | } | |
| 270 | + | ||
| 271 | + | func (c *Animation) SetGoPointer(ptr uintptr) { | |
| 272 | + | c.Ptr = ptr | |
| 273 | + | } | |
| 274 | + | ||
| 275 | + | // This signal is emitted when the animation has been completed, either on its | |
| 276 | + | // own or via calling [method@Animation.skip]. | |
| 277 | + | func (x *Animation) ConnectDone(cb func(Animation)) { | |
| 278 | + | fcb := func(clsPtr uintptr) { | |
| 279 | + | fa := Animation{} | |
| 280 | + | fa.Ptr = clsPtr | |
| 281 | + | ||
| 282 | + | cb(fa) | |
| 283 | + | ||
| 284 | + | } | |
| 285 | + | gobject.ObjectConnect(x.GoPointer(), "signal::done", purego.NewCallback(fcb)) | |
| 286 | + | } | |
| 287 | + | ||
| 288 | + | func init() { | |
| 289 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 290 | + | if err != nil { | |
| 291 | + | panic(err) | |
| 292 | + | } | |
| 293 | + | ||
| 294 | + | core.PuregoSafeRegister(&xAnimationGetFollowEnableAnimationsSetting, lib, "adw_animation_get_follow_enable_animations_setting") | |
| 295 | + | core.PuregoSafeRegister(&xAnimationGetState, lib, "adw_animation_get_state") | |
| 296 | + | core.PuregoSafeRegister(&xAnimationGetTarget, lib, "adw_animation_get_target") | |
| 297 | + | core.PuregoSafeRegister(&xAnimationGetValue, lib, "adw_animation_get_value") | |
| 298 | + | core.PuregoSafeRegister(&xAnimationGetWidget, lib, "adw_animation_get_widget") | |
| 299 | + | core.PuregoSafeRegister(&xAnimationPause, lib, "adw_animation_pause") | |
| 300 | + | core.PuregoSafeRegister(&xAnimationPlay, lib, "adw_animation_play") | |
| 301 | + | core.PuregoSafeRegister(&xAnimationReset, lib, "adw_animation_reset") | |
| 302 | + | core.PuregoSafeRegister(&xAnimationResume, lib, "adw_animation_resume") | |
| 303 | + | core.PuregoSafeRegister(&xAnimationSetFollowEnableAnimationsSetting, lib, "adw_animation_set_follow_enable_animations_setting") | |
| 304 | + | core.PuregoSafeRegister(&xAnimationSetTarget, lib, "adw_animation_set_target") | |
| 305 | + | core.PuregoSafeRegister(&xAnimationSkip, lib, "adw_animation_skip") | |
| 306 | + | ||
| 307 | + | } | |
A v4/adw/adw-application-window.go +686 -0
| @@ -0,0 +1,686 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 11 | + | "github.com/jwijenbergh/puregotk/v4/gsk" | |
| 12 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 13 | + | ) | |
| 14 | + | ||
| 15 | + | type ApplicationWindowClass struct { | |
| 16 | + | ParentClass uintptr | |
| 17 | + | ||
| 18 | + | Padding uintptr | |
| 19 | + | } | |
| 20 | + | ||
| 21 | + | // A freeform application window. | |
| 22 | + | // | |
| 23 | + | // <picture> | |
| 24 | + | // | |
| 25 | + | // <source srcset="application-window-dark.png" media="(prefers-color-scheme: dark)"> | |
| 26 | + | // <img src="application-window.png" alt="application-window"> | |
| 27 | + | // | |
| 28 | + | // </picture> | |
| 29 | + | // | |
| 30 | + | // `AdwApplicationWindow` is a [class@Gtk.ApplicationWindow] subclass providing | |
| 31 | + | // the same features as [class@Window]. | |
| 32 | + | // | |
| 33 | + | // See [class@Window] for details. | |
| 34 | + | // | |
| 35 | + | // Using [property@Gtk.Application:menubar] is not supported and may result in | |
| 36 | + | // visual glitches. | |
| 37 | + | type ApplicationWindow struct { | |
| 38 | + | gtk.ApplicationWindow | |
| 39 | + | } | |
| 40 | + | ||
| 41 | + | func ApplicationWindowNewFromInternalPtr(ptr uintptr) *ApplicationWindow { | |
| 42 | + | cls := &ApplicationWindow{} | |
| 43 | + | cls.Ptr = ptr | |
| 44 | + | return cls | |
| 45 | + | } | |
| 46 | + | ||
| 47 | + | var xNewApplicationWindow func(uintptr) uintptr | |
| 48 | + | ||
| 49 | + | // Creates a new `AdwApplicationWindow` for @app. | |
| 50 | + | func NewApplicationWindow(AppVar *gtk.Application) *gtk.Widget { | |
| 51 | + | NewApplicationWindowPtr := xNewApplicationWindow(AppVar.GoPointer()) | |
| 52 | + | if NewApplicationWindowPtr == 0 { | |
| 53 | + | return nil | |
| 54 | + | } | |
| 55 | + | ||
| 56 | + | gobject.IncreaseRef(NewApplicationWindowPtr) | |
| 57 | + | ||
| 58 | + | NewApplicationWindowCls := >k.Widget{} | |
| 59 | + | NewApplicationWindowCls.Ptr = NewApplicationWindowPtr | |
| 60 | + | return NewApplicationWindowCls | |
| 61 | + | } | |
| 62 | + | ||
| 63 | + | var xApplicationWindowGetContent func(uintptr) uintptr | |
| 64 | + | ||
| 65 | + | // Gets the content widget of @self. | |
| 66 | + | // | |
| 67 | + | // This method should always be used instead of [method@Gtk.Window.get_child]. | |
| 68 | + | func (x *ApplicationWindow) GetContent() *gtk.Widget { | |
| 69 | + | ||
| 70 | + | GetContentPtr := xApplicationWindowGetContent(x.GoPointer()) | |
| 71 | + | if GetContentPtr == 0 { | |
| 72 | + | return nil | |
| 73 | + | } | |
| 74 | + | ||
| 75 | + | gobject.IncreaseRef(GetContentPtr) | |
| 76 | + | ||
| 77 | + | GetContentCls := >k.Widget{} | |
| 78 | + | GetContentCls.Ptr = GetContentPtr | |
| 79 | + | return GetContentCls | |
| 80 | + | ||
| 81 | + | } | |
| 82 | + | ||
| 83 | + | var xApplicationWindowSetContent func(uintptr, uintptr) | |
| 84 | + | ||
| 85 | + | // Sets the content widget of @self. | |
| 86 | + | // | |
| 87 | + | // This method should always be used instead of [method@Gtk.Window.set_child]. | |
| 88 | + | func (x *ApplicationWindow) SetContent(ContentVar *gtk.Widget) { | |
| 89 | + | ||
| 90 | + | xApplicationWindowSetContent(x.GoPointer(), ContentVar.GoPointer()) | |
| 91 | + | ||
| 92 | + | } | |
| 93 | + | ||
| 94 | + | func (c *ApplicationWindow) GoPointer() uintptr { | |
| 95 | + | return c.Ptr | |
| 96 | + | } | |
| 97 | + | ||
| 98 | + | func (c *ApplicationWindow) SetGoPointer(ptr uintptr) { | |
| 99 | + | c.Ptr = ptr | |
| 100 | + | } | |
| 101 | + | ||
| 102 | + | // Emits the #GActionGroup::action-added signal on @action_group. | |
| 103 | + | // | |
| 104 | + | // This function should only be called by #GActionGroup implementations. | |
| 105 | + | func (x *ApplicationWindow) ActionAdded(ActionNameVar string) { | |
| 106 | + | ||
| 107 | + | gio.XGActionGroupActionAdded(x.GoPointer(), ActionNameVar) | |
| 108 | + | ||
| 109 | + | } | |
| 110 | + | ||
| 111 | + | // Emits the #GActionGroup::action-enabled-changed signal on @action_group. | |
| 112 | + | // | |
| 113 | + | // This function should only be called by #GActionGroup implementations. | |
| 114 | + | func (x *ApplicationWindow) ActionEnabledChanged(ActionNameVar string, EnabledVar bool) { | |
| 115 | + | ||
| 116 | + | gio.XGActionGroupActionEnabledChanged(x.GoPointer(), ActionNameVar, EnabledVar) | |
| 117 | + | ||
| 118 | + | } | |
| 119 | + | ||
| 120 | + | // Emits the #GActionGroup::action-removed signal on @action_group. | |
| 121 | + | // | |
| 122 | + | // This function should only be called by #GActionGroup implementations. | |
| 123 | + | func (x *ApplicationWindow) ActionRemoved(ActionNameVar string) { | |
| 124 | + | ||
| 125 | + | gio.XGActionGroupActionRemoved(x.GoPointer(), ActionNameVar) | |
| 126 | + | ||
| 127 | + | } | |
| 128 | + | ||
| 129 | + | // Emits the #GActionGroup::action-state-changed signal on @action_group. | |
| 130 | + | // | |
| 131 | + | // This function should only be called by #GActionGroup implementations. | |
| 132 | + | func (x *ApplicationWindow) ActionStateChanged(ActionNameVar string, StateVar *glib.Variant) { | |
| 133 | + | ||
| 134 | + | gio.XGActionGroupActionStateChanged(x.GoPointer(), ActionNameVar, StateVar) | |
| 135 | + | ||
| 136 | + | } | |
| 137 | + | ||
| 138 | + | // Activate the named action within @action_group. | |
| 139 | + | // | |
| 140 | + | // If the action is expecting a parameter, then the correct type of | |
| 141 | + | // parameter must be given as @parameter. If the action is expecting no | |
| 142 | + | // parameters then @parameter must be %NULL. See | |
| 143 | + | // g_action_group_get_action_parameter_type(). | |
| 144 | + | // | |
| 145 | + | // If the #GActionGroup implementation supports asynchronous remote | |
| 146 | + | // activation over D-Bus, this call may return before the relevant | |
| 147 | + | // D-Bus traffic has been sent, or any replies have been received. In | |
| 148 | + | // order to block on such asynchronous activation calls, | |
| 149 | + | // g_dbus_connection_flush() should be called prior to the code, which | |
| 150 | + | // depends on the result of the action activation. Without flushing | |
| 151 | + | // the D-Bus connection, there is no guarantee that the action would | |
| 152 | + | // have been activated. | |
| 153 | + | // | |
| 154 | + | // The following code which runs in a remote app instance, shows an | |
| 155 | + | // example of a "quit" action being activated on the primary app | |
| 156 | + | // instance over D-Bus. Here g_dbus_connection_flush() is called | |
| 157 | + | // before `exit()`. Without g_dbus_connection_flush(), the "quit" action | |
| 158 | + | // may fail to be activated on the primary instance. | |
| 159 | + | // | |
| 160 | + | // |[<!-- language="C" --> | |
| 161 | + | // // call "quit" action on primary instance | |
| 162 | + | // g_action_group_activate_action (G_ACTION_GROUP (app), "quit", NULL); | |
| 163 | + | // | |
| 164 | + | // // make sure the action is activated now | |
| 165 | + | // g_dbus_connection_flush (...); | |
| 166 | + | // | |
| 167 | + | // g_debug ("application has been terminated. exiting."); | |
| 168 | + | // | |
| 169 | + | // exit (0); | |
| 170 | + | // ]| | |
| 171 | + | func (x *ApplicationWindow) ActivateAction(ActionNameVar string, ParameterVar *glib.Variant) { | |
| 172 | + | ||
| 173 | + | gio.XGActionGroupActivateAction(x.GoPointer(), ActionNameVar, ParameterVar) | |
| 174 | + | ||
| 175 | + | } | |
| 176 | + | ||
| 177 | + | // Request for the state of the named action within @action_group to be | |
| 178 | + | // changed to @value. | |
| 179 | + | // | |
| 180 | + | // The action must be stateful and @value must be of the correct type. | |
| 181 | + | // See g_action_group_get_action_state_type(). | |
| 182 | + | // | |
| 183 | + | // This call merely requests a change. The action may refuse to change | |
| 184 | + | // its state or may change its state to something other than @value. | |
| 185 | + | // See g_action_group_get_action_state_hint(). | |
| 186 | + | // | |
| 187 | + | // If the @value GVariant is floating, it is consumed. | |
| 188 | + | func (x *ApplicationWindow) ChangeActionState(ActionNameVar string, ValueVar *glib.Variant) { | |
| 189 | + | ||
| 190 | + | gio.XGActionGroupChangeActionState(x.GoPointer(), ActionNameVar, ValueVar) | |
| 191 | + | ||
| 192 | + | } | |
| 193 | + | ||
| 194 | + | // Checks if the named action within @action_group is currently enabled. | |
| 195 | + | // | |
| 196 | + | // An action must be enabled in order to be activated or in order to | |
| 197 | + | // have its state changed from outside callers. | |
| 198 | + | func (x *ApplicationWindow) GetActionEnabled(ActionNameVar string) bool { | |
| 199 | + | ||
| 200 | + | return gio.XGActionGroupGetActionEnabled(x.GoPointer(), ActionNameVar) | |
| 201 | + | ||
| 202 | + | } | |
| 203 | + | ||
| 204 | + | // Queries the type of the parameter that must be given when activating | |
| 205 | + | // the named action within @action_group. | |
| 206 | + | // | |
| 207 | + | // When activating the action using g_action_group_activate_action(), | |
| 208 | + | // the #GVariant given to that function must be of the type returned | |
| 209 | + | // by this function. | |
| 210 | + | // | |
| 211 | + | // In the case that this function returns %NULL, you must not give any | |
| 212 | + | // #GVariant, but %NULL instead. | |
| 213 | + | // | |
| 214 | + | // The parameter type of a particular action will never change but it is | |
| 215 | + | // possible for an action to be removed and for a new action to be added | |
| 216 | + | // with the same name but a different parameter type. | |
| 217 | + | func (x *ApplicationWindow) GetActionParameterType(ActionNameVar string) *glib.VariantType { | |
| 218 | + | ||
| 219 | + | return gio.XGActionGroupGetActionParameterType(x.GoPointer(), ActionNameVar) | |
| 220 | + | ||
| 221 | + | } | |
| 222 | + | ||
| 223 | + | // Queries the current state of the named action within @action_group. | |
| 224 | + | // | |
| 225 | + | // If the action is not stateful then %NULL will be returned. If the | |
| 226 | + | // action is stateful then the type of the return value is the type | |
| 227 | + | // given by g_action_group_get_action_state_type(). | |
| 228 | + | // | |
| 229 | + | // The return value (if non-%NULL) should be freed with | |
| 230 | + | // g_variant_unref() when it is no longer required. | |
| 231 | + | func (x *ApplicationWindow) GetActionState(ActionNameVar string) *glib.Variant { | |
| 232 | + | ||
| 233 | + | return gio.XGActionGroupGetActionState(x.GoPointer(), ActionNameVar) | |
| 234 | + | ||
| 235 | + | } | |
| 236 | + | ||
| 237 | + | // Requests a hint about the valid range of values for the state of the | |
| 238 | + | // named action within @action_group. | |
| 239 | + | // | |
| 240 | + | // If %NULL is returned it either means that the action is not stateful | |
| 241 | + | // or that there is no hint about the valid range of values for the | |
| 242 | + | // state of the action. | |
| 243 | + | // | |
| 244 | + | // If a #GVariant array is returned then each item in the array is a | |
| 245 | + | // possible value for the state. If a #GVariant pair (ie: two-tuple) is | |
| 246 | + | // returned then the tuple specifies the inclusive lower and upper bound | |
| 247 | + | // of valid values for the state. | |
| 248 | + | // | |
| 249 | + | // In any case, the information is merely a hint. It may be possible to | |
| 250 | + | // have a state value outside of the hinted range and setting a value | |
| 251 | + | // within the range may fail. | |
| 252 | + | // | |
| 253 | + | // The return value (if non-%NULL) should be freed with | |
| 254 | + | // g_variant_unref() when it is no longer required. | |
| 255 | + | func (x *ApplicationWindow) GetActionStateHint(ActionNameVar string) *glib.Variant { | |
| 256 | + | ||
| 257 | + | return gio.XGActionGroupGetActionStateHint(x.GoPointer(), ActionNameVar) | |
| 258 | + | ||
| 259 | + | } | |
| 260 | + | ||
| 261 | + | // Queries the type of the state of the named action within | |
| 262 | + | // @action_group. | |
| 263 | + | // | |
| 264 | + | // If the action is stateful then this function returns the | |
| 265 | + | // #GVariantType of the state. All calls to | |
| 266 | + | // g_action_group_change_action_state() must give a #GVariant of this | |
| 267 | + | // type and g_action_group_get_action_state() will return a #GVariant | |
| 268 | + | // of the same type. | |
| 269 | + | // | |
| 270 | + | // If the action is not stateful then this function will return %NULL. | |
| 271 | + | // In that case, g_action_group_get_action_state() will return %NULL | |
| 272 | + | // and you must not call g_action_group_change_action_state(). | |
| 273 | + | // | |
| 274 | + | // The state type of a particular action will never change but it is | |
| 275 | + | // possible for an action to be removed and for a new action to be added | |
| 276 | + | // with the same name but a different state type. | |
| 277 | + | func (x *ApplicationWindow) GetActionStateType(ActionNameVar string) *glib.VariantType { | |
| 278 | + | ||
| 279 | + | return gio.XGActionGroupGetActionStateType(x.GoPointer(), ActionNameVar) | |
| 280 | + | ||
| 281 | + | } | |
| 282 | + | ||
| 283 | + | // Checks if the named action exists within @action_group. | |
| 284 | + | func (x *ApplicationWindow) HasAction(ActionNameVar string) bool { | |
| 285 | + | ||
| 286 | + | return gio.XGActionGroupHasAction(x.GoPointer(), ActionNameVar) | |
| 287 | + | ||
| 288 | + | } | |
| 289 | + | ||
| 290 | + | // Lists the actions contained within @action_group. | |
| 291 | + | // | |
| 292 | + | // The caller is responsible for freeing the list with g_strfreev() when | |
| 293 | + | // it is no longer required. | |
| 294 | + | func (x *ApplicationWindow) ListActions() uintptr { | |
| 295 | + | ||
| 296 | + | return gio.XGActionGroupListActions(x.GoPointer()) | |
| 297 | + | ||
| 298 | + | } | |
| 299 | + | ||
| 300 | + | // Queries all aspects of the named action within an @action_group. | |
| 301 | + | // | |
| 302 | + | // This function acquires the information available from | |
| 303 | + | // g_action_group_has_action(), g_action_group_get_action_enabled(), | |
| 304 | + | // g_action_group_get_action_parameter_type(), | |
| 305 | + | // g_action_group_get_action_state_type(), | |
| 306 | + | // g_action_group_get_action_state_hint() and | |
| 307 | + | // g_action_group_get_action_state() with a single function call. | |
| 308 | + | // | |
| 309 | + | // This provides two main benefits. | |
| 310 | + | // | |
| 311 | + | // The first is the improvement in efficiency that comes with not having | |
| 312 | + | // to perform repeated lookups of the action in order to discover | |
| 313 | + | // different things about it. The second is that implementing | |
| 314 | + | // #GActionGroup can now be done by only overriding this one virtual | |
| 315 | + | // function. | |
| 316 | + | // | |
| 317 | + | // The interface provides a default implementation of this function that | |
| 318 | + | // calls the individual functions, as required, to fetch the | |
| 319 | + | // information. The interface also provides default implementations of | |
| 320 | + | // those functions that call this function. All implementations, | |
| 321 | + | // therefore, must override either this function or all of the others. | |
| 322 | + | // | |
| 323 | + | // If the action exists, %TRUE is returned and any of the requested | |
| 324 | + | // fields (as indicated by having a non-%NULL reference passed in) are | |
| 325 | + | // filled. If the action doesn't exist, %FALSE is returned and the | |
| 326 | + | // fields may or may not have been modified. | |
| 327 | + | func (x *ApplicationWindow) QueryAction(ActionNameVar string, EnabledVar bool, ParameterTypeVar **glib.VariantType, StateTypeVar **glib.VariantType, StateHintVar **glib.Variant, StateVar **glib.Variant) bool { | |
| 328 | + | ||
| 329 | + | return gio.XGActionGroupQueryAction(x.GoPointer(), ActionNameVar, EnabledVar, ParameterTypeVar, StateTypeVar, StateHintVar, StateVar) | |
| 330 | + | ||
| 331 | + | } | |
| 332 | + | ||
| 333 | + | // Adds an action to the @action_map. | |
| 334 | + | // | |
| 335 | + | // If the action map already contains an action with the same name | |
| 336 | + | // as @action then the old action is dropped from the action map. | |
| 337 | + | // | |
| 338 | + | // The action map takes its own reference on @action. | |
| 339 | + | func (x *ApplicationWindow) AddAction(ActionVar gio.Action) { | |
| 340 | + | ||
| 341 | + | gio.XGActionMapAddAction(x.GoPointer(), ActionVar.GoPointer()) | |
| 342 | + | ||
| 343 | + | } | |
| 344 | + | ||
| 345 | + | // A convenience function for creating multiple #GSimpleAction instances | |
| 346 | + | // and adding them to a #GActionMap. | |
| 347 | + | // | |
| 348 | + | // Each action is constructed as per one #GActionEntry. | |
| 349 | + | // | |
| 350 | + | // |[<!-- language="C" --> | |
| 351 | + | // static void | |
| 352 | + | // activate_quit (GSimpleAction *simple, | |
| 353 | + | // | |
| 354 | + | // GVariant *parameter, | |
| 355 | + | // gpointer user_data) | |
| 356 | + | // | |
| 357 | + | // { | |
| 358 | + | // exit (0); | |
| 359 | + | // } | |
| 360 | + | // | |
| 361 | + | // static void | |
| 362 | + | // activate_print_string (GSimpleAction *simple, | |
| 363 | + | // | |
| 364 | + | // GVariant *parameter, | |
| 365 | + | // gpointer user_data) | |
| 366 | + | // | |
| 367 | + | // { | |
| 368 | + | // g_print ("%s\n", g_variant_get_string (parameter, NULL)); | |
| 369 | + | // } | |
| 370 | + | // | |
| 371 | + | // static GActionGroup * | |
| 372 | + | // create_action_group (void) | |
| 373 | + | // | |
| 374 | + | // { | |
| 375 | + | // const GActionEntry entries[] = { | |
| 376 | + | // { "quit", activate_quit }, | |
| 377 | + | // { "print-string", activate_print_string, "s" } | |
| 378 | + | // }; | |
| 379 | + | // GSimpleActionGroup *group; | |
| 380 | + | // | |
| 381 | + | // group = g_simple_action_group_new (); | |
| 382 | + | // g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL); | |
| 383 | + | // | |
| 384 | + | // return G_ACTION_GROUP (group); | |
| 385 | + | // } | |
| 386 | + | // | |
| 387 | + | // ]| | |
| 388 | + | func (x *ApplicationWindow) AddActionEntries(EntriesVar uintptr, NEntriesVar int32, UserDataVar uintptr) { | |
| 389 | + | ||
| 390 | + | gio.XGActionMapAddActionEntries(x.GoPointer(), EntriesVar, NEntriesVar, UserDataVar) | |
| 391 | + | ||
| 392 | + | } | |
| 393 | + | ||
| 394 | + | // Looks up the action with the name @action_name in @action_map. | |
| 395 | + | // | |
| 396 | + | // If no such action exists, returns %NULL. | |
| 397 | + | func (x *ApplicationWindow) LookupAction(ActionNameVar string) *gio.ActionBase { | |
| 398 | + | ||
| 399 | + | LookupActionPtr := gio.XGActionMapLookupAction(x.GoPointer(), ActionNameVar) | |
| 400 | + | if LookupActionPtr == 0 { | |
| 401 | + | return nil | |
| 402 | + | } | |
| 403 | + | ||
| 404 | + | gobject.IncreaseRef(LookupActionPtr) | |
| 405 | + | ||
| 406 | + | LookupActionCls := &gio.ActionBase{} | |
| 407 | + | LookupActionCls.Ptr = LookupActionPtr | |
| 408 | + | return LookupActionCls | |
| 409 | + | ||
| 410 | + | } | |
| 411 | + | ||
| 412 | + | // Removes the named action from the action map. | |
| 413 | + | // | |
| 414 | + | // If no action of this name is in the map then nothing happens. | |
| 415 | + | func (x *ApplicationWindow) RemoveAction(ActionNameVar string) { | |
| 416 | + | ||
| 417 | + | gio.XGActionMapRemoveAction(x.GoPointer(), ActionNameVar) | |
| 418 | + | ||
| 419 | + | } | |
| 420 | + | ||
| 421 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 422 | + | func (x *ApplicationWindow) GetAccessibleRole() gtk.AccessibleRole { | |
| 423 | + | ||
| 424 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 425 | + | ||
| 426 | + | } | |
| 427 | + | ||
| 428 | + | // Resets the accessible @property to its default value. | |
| 429 | + | func (x *ApplicationWindow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 430 | + | ||
| 431 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 432 | + | ||
| 433 | + | } | |
| 434 | + | ||
| 435 | + | // Resets the accessible @relation to its default value. | |
| 436 | + | func (x *ApplicationWindow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 437 | + | ||
| 438 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 439 | + | ||
| 440 | + | } | |
| 441 | + | ||
| 442 | + | // Resets the accessible @state to its default value. | |
| 443 | + | func (x *ApplicationWindow) ResetState(StateVar gtk.AccessibleState) { | |
| 444 | + | ||
| 445 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 446 | + | ||
| 447 | + | } | |
| 448 | + | ||
| 449 | + | // Updates a list of accessible properties. | |
| 450 | + | // | |
| 451 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 452 | + | // value types of accessible properties. | |
| 453 | + | // | |
| 454 | + | // This function should be called by `GtkWidget` types whenever | |
| 455 | + | // an accessible property change must be communicated to assistive | |
| 456 | + | // technologies. | |
| 457 | + | // | |
| 458 | + | // Example: | |
| 459 | + | // ```c | |
| 460 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 461 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 462 | + | // | |
| 463 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 464 | + | // -1); | |
| 465 | + | // | |
| 466 | + | // ``` | |
| 467 | + | func (x *ApplicationWindow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 468 | + | ||
| 469 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 470 | + | ||
| 471 | + | } | |
| 472 | + | ||
| 473 | + | // Updates an array of accessible properties. | |
| 474 | + | // | |
| 475 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 476 | + | // property change must be communicated to assistive technologies. | |
| 477 | + | // | |
| 478 | + | // This function is meant to be used by language bindings. | |
| 479 | + | func (x *ApplicationWindow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 480 | + | ||
| 481 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 482 | + | ||
| 483 | + | } | |
| 484 | + | ||
| 485 | + | // Updates a list of accessible relations. | |
| 486 | + | // | |
| 487 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 488 | + | // relation change must be communicated to assistive technologies. | |
| 489 | + | // | |
| 490 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 491 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 492 | + | // | |
| 493 | + | // ```c | |
| 494 | + | // gtk_accessible_update_relation (accessible, | |
| 495 | + | // | |
| 496 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 497 | + | // ref1, NULL, | |
| 498 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 499 | + | // ref1, ref2, ref3, NULL, | |
| 500 | + | // -1); | |
| 501 | + | // | |
| 502 | + | // ``` | |
| 503 | + | func (x *ApplicationWindow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 504 | + | ||
| 505 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 506 | + | ||
| 507 | + | } | |
| 508 | + | ||
| 509 | + | // Updates an array of accessible relations. | |
| 510 | + | // | |
| 511 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 512 | + | // relation change must be communicated to assistive technologies. | |
| 513 | + | // | |
| 514 | + | // This function is meant to be used by language bindings. | |
| 515 | + | func (x *ApplicationWindow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 516 | + | ||
| 517 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 518 | + | ||
| 519 | + | } | |
| 520 | + | ||
| 521 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 522 | + | // documentation for the value types of accessible states. | |
| 523 | + | // | |
| 524 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 525 | + | // state change must be communicated to assistive technologies. | |
| 526 | + | // | |
| 527 | + | // Example: | |
| 528 | + | // ```c | |
| 529 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 530 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 531 | + | // | |
| 532 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 533 | + | // -1); | |
| 534 | + | // | |
| 535 | + | // ``` | |
| 536 | + | func (x *ApplicationWindow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 537 | + | ||
| 538 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 539 | + | ||
| 540 | + | } | |
| 541 | + | ||
| 542 | + | // Updates an array of accessible states. | |
| 543 | + | // | |
| 544 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 545 | + | // state change must be communicated to assistive technologies. | |
| 546 | + | // | |
| 547 | + | // This function is meant to be used by language bindings. | |
| 548 | + | func (x *ApplicationWindow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 549 | + | ||
| 550 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 551 | + | ||
| 552 | + | } | |
| 553 | + | ||
| 554 | + | // Gets the ID of the @buildable object. | |
| 555 | + | // | |
| 556 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 557 | + | // of the <object> tag used to construct the @buildable. | |
| 558 | + | func (x *ApplicationWindow) GetBuildableId() string { | |
| 559 | + | ||
| 560 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 561 | + | ||
| 562 | + | } | |
| 563 | + | ||
| 564 | + | // Returns the renderer that is used for this `GtkNative`. | |
| 565 | + | func (x *ApplicationWindow) GetRenderer() *gsk.Renderer { | |
| 566 | + | ||
| 567 | + | GetRendererPtr := gtk.XGtkNativeGetRenderer(x.GoPointer()) | |
| 568 | + | if GetRendererPtr == 0 { | |
| 569 | + | return nil | |
| 570 | + | } | |
| 571 | + | ||
| 572 | + | gobject.IncreaseRef(GetRendererPtr) | |
| 573 | + | ||
| 574 | + | GetRendererCls := &gsk.Renderer{} | |
| 575 | + | GetRendererCls.Ptr = GetRendererPtr | |
| 576 | + | return GetRendererCls | |
| 577 | + | ||
| 578 | + | } | |
| 579 | + | ||
| 580 | + | // Returns the surface of this `GtkNative`. | |
| 581 | + | func (x *ApplicationWindow) GetSurface() *gdk.Surface { | |
| 582 | + | ||
| 583 | + | GetSurfacePtr := gtk.XGtkNativeGetSurface(x.GoPointer()) | |
| 584 | + | if GetSurfacePtr == 0 { | |
| 585 | + | return nil | |
| 586 | + | } | |
| 587 | + | ||
| 588 | + | gobject.IncreaseRef(GetSurfacePtr) | |
| 589 | + | ||
| 590 | + | GetSurfaceCls := &gdk.Surface{} | |
| 591 | + | GetSurfaceCls.Ptr = GetSurfacePtr | |
| 592 | + | return GetSurfaceCls | |
| 593 | + | ||
| 594 | + | } | |
| 595 | + | ||
| 596 | + | // Retrieves the surface transform of @self. | |
| 597 | + | // | |
| 598 | + | // This is the translation from @self's surface coordinates into | |
| 599 | + | // @self's widget coordinates. | |
| 600 | + | func (x *ApplicationWindow) GetSurfaceTransform(XVar float64, YVar float64) { | |
| 601 | + | ||
| 602 | + | gtk.XGtkNativeGetSurfaceTransform(x.GoPointer(), XVar, YVar) | |
| 603 | + | ||
| 604 | + | } | |
| 605 | + | ||
| 606 | + | // Realizes a `GtkNative`. | |
| 607 | + | // | |
| 608 | + | // This should only be used by subclasses. | |
| 609 | + | func (x *ApplicationWindow) Realize() { | |
| 610 | + | ||
| 611 | + | gtk.XGtkNativeRealize(x.GoPointer()) | |
| 612 | + | ||
| 613 | + | } | |
| 614 | + | ||
| 615 | + | // Unrealizes a `GtkNative`. | |
| 616 | + | // | |
| 617 | + | // This should only be used by subclasses. | |
| 618 | + | func (x *ApplicationWindow) Unrealize() { | |
| 619 | + | ||
| 620 | + | gtk.XGtkNativeUnrealize(x.GoPointer()) | |
| 621 | + | ||
| 622 | + | } | |
| 623 | + | ||
| 624 | + | // Returns the display that this `GtkRoot` is on. | |
| 625 | + | func (x *ApplicationWindow) GetDisplay() *gdk.Display { | |
| 626 | + | ||
| 627 | + | GetDisplayPtr := gtk.XGtkRootGetDisplay(x.GoPointer()) | |
| 628 | + | if GetDisplayPtr == 0 { | |
| 629 | + | return nil | |
| 630 | + | } | |
| 631 | + | ||
| 632 | + | gobject.IncreaseRef(GetDisplayPtr) | |
| 633 | + | ||
| 634 | + | GetDisplayCls := &gdk.Display{} | |
| 635 | + | GetDisplayCls.Ptr = GetDisplayPtr | |
| 636 | + | return GetDisplayCls | |
| 637 | + | ||
| 638 | + | } | |
| 639 | + | ||
| 640 | + | // Retrieves the current focused widget within the root. | |
| 641 | + | // | |
| 642 | + | // Note that this is the widget that would have the focus | |
| 643 | + | // if the root is active; if the root is not focused then | |
| 644 | + | // `gtk_widget_has_focus (widget)` will be %FALSE for the | |
| 645 | + | // widget. | |
| 646 | + | func (x *ApplicationWindow) GetFocus() *gtk.Widget { | |
| 647 | + | ||
| 648 | + | GetFocusPtr := gtk.XGtkRootGetFocus(x.GoPointer()) | |
| 649 | + | if GetFocusPtr == 0 { | |
| 650 | + | return nil | |
| 651 | + | } | |
| 652 | + | ||
| 653 | + | gobject.IncreaseRef(GetFocusPtr) | |
| 654 | + | ||
| 655 | + | GetFocusCls := >k.Widget{} | |
| 656 | + | GetFocusCls.Ptr = GetFocusPtr | |
| 657 | + | return GetFocusCls | |
| 658 | + | ||
| 659 | + | } | |
| 660 | + | ||
| 661 | + | // If @focus is not the current focus widget, and is focusable, sets | |
| 662 | + | // it as the focus widget for the root. | |
| 663 | + | // | |
| 664 | + | // If @focus is %NULL, unsets the focus widget for the root. | |
| 665 | + | // | |
| 666 | + | // To set the focus to a particular widget in the root, it is usually | |
| 667 | + | // more convenient to use [method@Gtk.Widget.grab_focus] instead of | |
| 668 | + | // this function. | |
| 669 | + | func (x *ApplicationWindow) SetFocus(FocusVar *gtk.Widget) { | |
| 670 | + | ||
| 671 | + | gtk.XGtkRootSetFocus(x.GoPointer(), FocusVar.GoPointer()) | |
| 672 | + | ||
| 673 | + | } | |
| 674 | + | ||
| 675 | + | func init() { | |
| 676 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 677 | + | if err != nil { | |
| 678 | + | panic(err) | |
| 679 | + | } | |
| 680 | + | ||
| 681 | + | core.PuregoSafeRegister(&xNewApplicationWindow, lib, "adw_application_window_new") | |
| 682 | + | ||
| 683 | + | core.PuregoSafeRegister(&xApplicationWindowGetContent, lib, "adw_application_window_get_content") | |
| 684 | + | core.PuregoSafeRegister(&xApplicationWindowSetContent, lib, "adw_application_window_set_content") | |
| 685 | + | ||
| 686 | + | } | |
A v4/adw/adw-application.go +433 -0
| @@ -0,0 +1,433 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | type ApplicationClass struct { | |
| 14 | + | ParentClass uintptr | |
| 15 | + | ||
| 16 | + | Padding uintptr | |
| 17 | + | } | |
| 18 | + | ||
| 19 | + | // A base class for Adwaita applications. | |
| 20 | + | // | |
| 21 | + | // `AdwApplication` handles library initialization by calling [func@init] in the | |
| 22 | + | // default [signal@Gio.Application::startup] signal handler, in turn chaining up | |
| 23 | + | // as required by [class@Gtk.Application]. Therefore, any subclass of | |
| 24 | + | // `AdwApplication` should always chain up its `startup` handler before using | |
| 25 | + | // any Adwaita or GTK API. | |
| 26 | + | // | |
| 27 | + | // ## Automatic Resources | |
| 28 | + | // | |
| 29 | + | // `AdwApplication` will automatically load stylesheets located in the | |
| 30 | + | // application's resource base path (see | |
| 31 | + | // [method@Gio.Application.set_resource_base_path], if they're present. | |
| 32 | + | // | |
| 33 | + | // They can be used to add custom styles to the application, as follows: | |
| 34 | + | // | |
| 35 | + | // - `style.css` contains styles that are always present. | |
| 36 | + | // | |
| 37 | + | // - `style-dark.css` contains styles only used when | |
| 38 | + | // [property@StyleManager:dark] is `TRUE`. | |
| 39 | + | // | |
| 40 | + | // - `style-hc.css` contains styles used when the system high contrast | |
| 41 | + | // preference is enabled. | |
| 42 | + | // | |
| 43 | + | // - `style-hc-dark.css` contains styles used when the system high contrast | |
| 44 | + | // preference is enabled and [property@StyleManager:dark] is `TRUE`. | |
| 45 | + | type Application struct { | |
| 46 | + | gtk.Application | |
| 47 | + | } | |
| 48 | + | ||
| 49 | + | func ApplicationNewFromInternalPtr(ptr uintptr) *Application { | |
| 50 | + | cls := &Application{} | |
| 51 | + | cls.Ptr = ptr | |
| 52 | + | return cls | |
| 53 | + | } | |
| 54 | + | ||
| 55 | + | var xNewApplication func(string, gio.ApplicationFlags) uintptr | |
| 56 | + | ||
| 57 | + | // Creates a new `AdwApplication`. | |
| 58 | + | // | |
| 59 | + | // If `application_id` is not `NULL`, then it must be valid. See | |
| 60 | + | // [func@Gio.Application.id_is_valid]. | |
| 61 | + | // | |
| 62 | + | // If no application ID is given then some features (most notably application | |
| 63 | + | // uniqueness) will be disabled. | |
| 64 | + | func NewApplication(ApplicationIdVar string, FlagsVar gio.ApplicationFlags) *Application { | |
| 65 | + | NewApplicationPtr := xNewApplication(ApplicationIdVar, FlagsVar) | |
| 66 | + | if NewApplicationPtr == 0 { | |
| 67 | + | return nil | |
| 68 | + | } | |
| 69 | + | ||
| 70 | + | NewApplicationCls := &Application{} | |
| 71 | + | NewApplicationCls.Ptr = NewApplicationPtr | |
| 72 | + | return NewApplicationCls | |
| 73 | + | } | |
| 74 | + | ||
| 75 | + | var xApplicationGetStyleManager func(uintptr) uintptr | |
| 76 | + | ||
| 77 | + | // Gets the style manager for @self. | |
| 78 | + | // | |
| 79 | + | // This is a convenience property allowing to access `AdwStyleManager` through | |
| 80 | + | // property bindings or expressions. | |
| 81 | + | func (x *Application) GetStyleManager() *StyleManager { | |
| 82 | + | ||
| 83 | + | GetStyleManagerPtr := xApplicationGetStyleManager(x.GoPointer()) | |
| 84 | + | if GetStyleManagerPtr == 0 { | |
| 85 | + | return nil | |
| 86 | + | } | |
| 87 | + | ||
| 88 | + | gobject.IncreaseRef(GetStyleManagerPtr) | |
| 89 | + | ||
| 90 | + | GetStyleManagerCls := &StyleManager{} | |
| 91 | + | GetStyleManagerCls.Ptr = GetStyleManagerPtr | |
| 92 | + | return GetStyleManagerCls | |
| 93 | + | ||
| 94 | + | } | |
| 95 | + | ||
| 96 | + | func (c *Application) GoPointer() uintptr { | |
| 97 | + | return c.Ptr | |
| 98 | + | } | |
| 99 | + | ||
| 100 | + | func (c *Application) SetGoPointer(ptr uintptr) { | |
| 101 | + | c.Ptr = ptr | |
| 102 | + | } | |
| 103 | + | ||
| 104 | + | // Emits the #GActionGroup::action-added signal on @action_group. | |
| 105 | + | // | |
| 106 | + | // This function should only be called by #GActionGroup implementations. | |
| 107 | + | func (x *Application) ActionAdded(ActionNameVar string) { | |
| 108 | + | ||
| 109 | + | gio.XGActionGroupActionAdded(x.GoPointer(), ActionNameVar) | |
| 110 | + | ||
| 111 | + | } | |
| 112 | + | ||
| 113 | + | // Emits the #GActionGroup::action-enabled-changed signal on @action_group. | |
| 114 | + | // | |
| 115 | + | // This function should only be called by #GActionGroup implementations. | |
| 116 | + | func (x *Application) ActionEnabledChanged(ActionNameVar string, EnabledVar bool) { | |
| 117 | + | ||
| 118 | + | gio.XGActionGroupActionEnabledChanged(x.GoPointer(), ActionNameVar, EnabledVar) | |
| 119 | + | ||
| 120 | + | } | |
| 121 | + | ||
| 122 | + | // Emits the #GActionGroup::action-removed signal on @action_group. | |
| 123 | + | // | |
| 124 | + | // This function should only be called by #GActionGroup implementations. | |
| 125 | + | func (x *Application) ActionRemoved(ActionNameVar string) { | |
| 126 | + | ||
| 127 | + | gio.XGActionGroupActionRemoved(x.GoPointer(), ActionNameVar) | |
| 128 | + | ||
| 129 | + | } | |
| 130 | + | ||
| 131 | + | // Emits the #GActionGroup::action-state-changed signal on @action_group. | |
| 132 | + | // | |
| 133 | + | // This function should only be called by #GActionGroup implementations. | |
| 134 | + | func (x *Application) ActionStateChanged(ActionNameVar string, StateVar *glib.Variant) { | |
| 135 | + | ||
| 136 | + | gio.XGActionGroupActionStateChanged(x.GoPointer(), ActionNameVar, StateVar) | |
| 137 | + | ||
| 138 | + | } | |
| 139 | + | ||
| 140 | + | // Activate the named action within @action_group. | |
| 141 | + | // | |
| 142 | + | // If the action is expecting a parameter, then the correct type of | |
| 143 | + | // parameter must be given as @parameter. If the action is expecting no | |
| 144 | + | // parameters then @parameter must be %NULL. See | |
| 145 | + | // g_action_group_get_action_parameter_type(). | |
| 146 | + | // | |
| 147 | + | // If the #GActionGroup implementation supports asynchronous remote | |
| 148 | + | // activation over D-Bus, this call may return before the relevant | |
| 149 | + | // D-Bus traffic has been sent, or any replies have been received. In | |
| 150 | + | // order to block on such asynchronous activation calls, | |
| 151 | + | // g_dbus_connection_flush() should be called prior to the code, which | |
| 152 | + | // depends on the result of the action activation. Without flushing | |
| 153 | + | // the D-Bus connection, there is no guarantee that the action would | |
| 154 | + | // have been activated. | |
| 155 | + | // | |
| 156 | + | // The following code which runs in a remote app instance, shows an | |
| 157 | + | // example of a "quit" action being activated on the primary app | |
| 158 | + | // instance over D-Bus. Here g_dbus_connection_flush() is called | |
| 159 | + | // before `exit()`. Without g_dbus_connection_flush(), the "quit" action | |
| 160 | + | // may fail to be activated on the primary instance. | |
| 161 | + | // | |
| 162 | + | // |[<!-- language="C" --> | |
| 163 | + | // // call "quit" action on primary instance | |
| 164 | + | // g_action_group_activate_action (G_ACTION_GROUP (app), "quit", NULL); | |
| 165 | + | // | |
| 166 | + | // // make sure the action is activated now | |
| 167 | + | // g_dbus_connection_flush (...); | |
| 168 | + | // | |
| 169 | + | // g_debug ("application has been terminated. exiting."); | |
| 170 | + | // | |
| 171 | + | // exit (0); | |
| 172 | + | // ]| | |
| 173 | + | func (x *Application) ActivateAction(ActionNameVar string, ParameterVar *glib.Variant) { | |
| 174 | + | ||
| 175 | + | gio.XGActionGroupActivateAction(x.GoPointer(), ActionNameVar, ParameterVar) | |
| 176 | + | ||
| 177 | + | } | |
| 178 | + | ||
| 179 | + | // Request for the state of the named action within @action_group to be | |
| 180 | + | // changed to @value. | |
| 181 | + | // | |
| 182 | + | // The action must be stateful and @value must be of the correct type. | |
| 183 | + | // See g_action_group_get_action_state_type(). | |
| 184 | + | // | |
| 185 | + | // This call merely requests a change. The action may refuse to change | |
| 186 | + | // its state or may change its state to something other than @value. | |
| 187 | + | // See g_action_group_get_action_state_hint(). | |
| 188 | + | // | |
| 189 | + | // If the @value GVariant is floating, it is consumed. | |
| 190 | + | func (x *Application) ChangeActionState(ActionNameVar string, ValueVar *glib.Variant) { | |
| 191 | + | ||
| 192 | + | gio.XGActionGroupChangeActionState(x.GoPointer(), ActionNameVar, ValueVar) | |
| 193 | + | ||
| 194 | + | } | |
| 195 | + | ||
| 196 | + | // Checks if the named action within @action_group is currently enabled. | |
| 197 | + | // | |
| 198 | + | // An action must be enabled in order to be activated or in order to | |
| 199 | + | // have its state changed from outside callers. | |
| 200 | + | func (x *Application) GetActionEnabled(ActionNameVar string) bool { | |
| 201 | + | ||
| 202 | + | return gio.XGActionGroupGetActionEnabled(x.GoPointer(), ActionNameVar) | |
| 203 | + | ||
| 204 | + | } | |
| 205 | + | ||
| 206 | + | // Queries the type of the parameter that must be given when activating | |
| 207 | + | // the named action within @action_group. | |
| 208 | + | // | |
| 209 | + | // When activating the action using g_action_group_activate_action(), | |
| 210 | + | // the #GVariant given to that function must be of the type returned | |
| 211 | + | // by this function. | |
| 212 | + | // | |
| 213 | + | // In the case that this function returns %NULL, you must not give any | |
| 214 | + | // #GVariant, but %NULL instead. | |
| 215 | + | // | |
| 216 | + | // The parameter type of a particular action will never change but it is | |
| 217 | + | // possible for an action to be removed and for a new action to be added | |
| 218 | + | // with the same name but a different parameter type. | |
| 219 | + | func (x *Application) GetActionParameterType(ActionNameVar string) *glib.VariantType { | |
| 220 | + | ||
| 221 | + | return gio.XGActionGroupGetActionParameterType(x.GoPointer(), ActionNameVar) | |
| 222 | + | ||
| 223 | + | } | |
| 224 | + | ||
| 225 | + | // Queries the current state of the named action within @action_group. | |
| 226 | + | // | |
| 227 | + | // If the action is not stateful then %NULL will be returned. If the | |
| 228 | + | // action is stateful then the type of the return value is the type | |
| 229 | + | // given by g_action_group_get_action_state_type(). | |
| 230 | + | // | |
| 231 | + | // The return value (if non-%NULL) should be freed with | |
| 232 | + | // g_variant_unref() when it is no longer required. | |
| 233 | + | func (x *Application) GetActionState(ActionNameVar string) *glib.Variant { | |
| 234 | + | ||
| 235 | + | return gio.XGActionGroupGetActionState(x.GoPointer(), ActionNameVar) | |
| 236 | + | ||
| 237 | + | } | |
| 238 | + | ||
| 239 | + | // Requests a hint about the valid range of values for the state of the | |
| 240 | + | // named action within @action_group. | |
| 241 | + | // | |
| 242 | + | // If %NULL is returned it either means that the action is not stateful | |
| 243 | + | // or that there is no hint about the valid range of values for the | |
| 244 | + | // state of the action. | |
| 245 | + | // | |
| 246 | + | // If a #GVariant array is returned then each item in the array is a | |
| 247 | + | // possible value for the state. If a #GVariant pair (ie: two-tuple) is | |
| 248 | + | // returned then the tuple specifies the inclusive lower and upper bound | |
| 249 | + | // of valid values for the state. | |
| 250 | + | // | |
| 251 | + | // In any case, the information is merely a hint. It may be possible to | |
| 252 | + | // have a state value outside of the hinted range and setting a value | |
| 253 | + | // within the range may fail. | |
| 254 | + | // | |
| 255 | + | // The return value (if non-%NULL) should be freed with | |
| 256 | + | // g_variant_unref() when it is no longer required. | |
| 257 | + | func (x *Application) GetActionStateHint(ActionNameVar string) *glib.Variant { | |
| 258 | + | ||
| 259 | + | return gio.XGActionGroupGetActionStateHint(x.GoPointer(), ActionNameVar) | |
| 260 | + | ||
| 261 | + | } | |
| 262 | + | ||
| 263 | + | // Queries the type of the state of the named action within | |
| 264 | + | // @action_group. | |
| 265 | + | // | |
| 266 | + | // If the action is stateful then this function returns the | |
| 267 | + | // #GVariantType of the state. All calls to | |
| 268 | + | // g_action_group_change_action_state() must give a #GVariant of this | |
| 269 | + | // type and g_action_group_get_action_state() will return a #GVariant | |
| 270 | + | // of the same type. | |
| 271 | + | // | |
| 272 | + | // If the action is not stateful then this function will return %NULL. | |
| 273 | + | // In that case, g_action_group_get_action_state() will return %NULL | |
| 274 | + | // and you must not call g_action_group_change_action_state(). | |
| 275 | + | // | |
| 276 | + | // The state type of a particular action will never change but it is | |
| 277 | + | // possible for an action to be removed and for a new action to be added | |
| 278 | + | // with the same name but a different state type. | |
| 279 | + | func (x *Application) GetActionStateType(ActionNameVar string) *glib.VariantType { | |
| 280 | + | ||
| 281 | + | return gio.XGActionGroupGetActionStateType(x.GoPointer(), ActionNameVar) | |
| 282 | + | ||
| 283 | + | } | |
| 284 | + | ||
| 285 | + | // Checks if the named action exists within @action_group. | |
| 286 | + | func (x *Application) HasAction(ActionNameVar string) bool { | |
| 287 | + | ||
| 288 | + | return gio.XGActionGroupHasAction(x.GoPointer(), ActionNameVar) | |
| 289 | + | ||
| 290 | + | } | |
| 291 | + | ||
| 292 | + | // Lists the actions contained within @action_group. | |
| 293 | + | // | |
| 294 | + | // The caller is responsible for freeing the list with g_strfreev() when | |
| 295 | + | // it is no longer required. | |
| 296 | + | func (x *Application) ListActions() uintptr { | |
| 297 | + | ||
| 298 | + | return gio.XGActionGroupListActions(x.GoPointer()) | |
| 299 | + | ||
| 300 | + | } | |
| 301 | + | ||
| 302 | + | // Queries all aspects of the named action within an @action_group. | |
| 303 | + | // | |
| 304 | + | // This function acquires the information available from | |
| 305 | + | // g_action_group_has_action(), g_action_group_get_action_enabled(), | |
| 306 | + | // g_action_group_get_action_parameter_type(), | |
| 307 | + | // g_action_group_get_action_state_type(), | |
| 308 | + | // g_action_group_get_action_state_hint() and | |
| 309 | + | // g_action_group_get_action_state() with a single function call. | |
| 310 | + | // | |
| 311 | + | // This provides two main benefits. | |
| 312 | + | // | |
| 313 | + | // The first is the improvement in efficiency that comes with not having | |
| 314 | + | // to perform repeated lookups of the action in order to discover | |
| 315 | + | // different things about it. The second is that implementing | |
| 316 | + | // #GActionGroup can now be done by only overriding this one virtual | |
| 317 | + | // function. | |
| 318 | + | // | |
| 319 | + | // The interface provides a default implementation of this function that | |
| 320 | + | // calls the individual functions, as required, to fetch the | |
| 321 | + | // information. The interface also provides default implementations of | |
| 322 | + | // those functions that call this function. All implementations, | |
| 323 | + | // therefore, must override either this function or all of the others. | |
| 324 | + | // | |
| 325 | + | // If the action exists, %TRUE is returned and any of the requested | |
| 326 | + | // fields (as indicated by having a non-%NULL reference passed in) are | |
| 327 | + | // filled. If the action doesn't exist, %FALSE is returned and the | |
| 328 | + | // fields may or may not have been modified. | |
| 329 | + | func (x *Application) QueryAction(ActionNameVar string, EnabledVar bool, ParameterTypeVar **glib.VariantType, StateTypeVar **glib.VariantType, StateHintVar **glib.Variant, StateVar **glib.Variant) bool { | |
| 330 | + | ||
| 331 | + | return gio.XGActionGroupQueryAction(x.GoPointer(), ActionNameVar, EnabledVar, ParameterTypeVar, StateTypeVar, StateHintVar, StateVar) | |
| 332 | + | ||
| 333 | + | } | |
| 334 | + | ||
| 335 | + | // Adds an action to the @action_map. | |
| 336 | + | // | |
| 337 | + | // If the action map already contains an action with the same name | |
| 338 | + | // as @action then the old action is dropped from the action map. | |
| 339 | + | // | |
| 340 | + | // The action map takes its own reference on @action. | |
| 341 | + | func (x *Application) AddAction(ActionVar gio.Action) { | |
| 342 | + | ||
| 343 | + | gio.XGActionMapAddAction(x.GoPointer(), ActionVar.GoPointer()) | |
| 344 | + | ||
| 345 | + | } | |
| 346 | + | ||
| 347 | + | // A convenience function for creating multiple #GSimpleAction instances | |
| 348 | + | // and adding them to a #GActionMap. | |
| 349 | + | // | |
| 350 | + | // Each action is constructed as per one #GActionEntry. | |
| 351 | + | // | |
| 352 | + | // |[<!-- language="C" --> | |
| 353 | + | // static void | |
| 354 | + | // activate_quit (GSimpleAction *simple, | |
| 355 | + | // | |
| 356 | + | // GVariant *parameter, | |
| 357 | + | // gpointer user_data) | |
| 358 | + | // | |
| 359 | + | // { | |
| 360 | + | // exit (0); | |
| 361 | + | // } | |
| 362 | + | // | |
| 363 | + | // static void | |
| 364 | + | // activate_print_string (GSimpleAction *simple, | |
| 365 | + | // | |
| 366 | + | // GVariant *parameter, | |
| 367 | + | // gpointer user_data) | |
| 368 | + | // | |
| 369 | + | // { | |
| 370 | + | // g_print ("%s\n", g_variant_get_string (parameter, NULL)); | |
| 371 | + | // } | |
| 372 | + | // | |
| 373 | + | // static GActionGroup * | |
| 374 | + | // create_action_group (void) | |
| 375 | + | // | |
| 376 | + | // { | |
| 377 | + | // const GActionEntry entries[] = { | |
| 378 | + | // { "quit", activate_quit }, | |
| 379 | + | // { "print-string", activate_print_string, "s" } | |
| 380 | + | // }; | |
| 381 | + | // GSimpleActionGroup *group; | |
| 382 | + | // | |
| 383 | + | // group = g_simple_action_group_new (); | |
| 384 | + | // g_action_map_add_action_entries (G_ACTION_MAP (group), entries, G_N_ELEMENTS (entries), NULL); | |
| 385 | + | // | |
| 386 | + | // return G_ACTION_GROUP (group); | |
| 387 | + | // } | |
| 388 | + | // | |
| 389 | + | // ]| | |
| 390 | + | func (x *Application) AddActionEntries(EntriesVar uintptr, NEntriesVar int32, UserDataVar uintptr) { | |
| 391 | + | ||
| 392 | + | gio.XGActionMapAddActionEntries(x.GoPointer(), EntriesVar, NEntriesVar, UserDataVar) | |
| 393 | + | ||
| 394 | + | } | |
| 395 | + | ||
| 396 | + | // Looks up the action with the name @action_name in @action_map. | |
| 397 | + | // | |
| 398 | + | // If no such action exists, returns %NULL. | |
| 399 | + | func (x *Application) LookupAction(ActionNameVar string) *gio.ActionBase { | |
| 400 | + | ||
| 401 | + | LookupActionPtr := gio.XGActionMapLookupAction(x.GoPointer(), ActionNameVar) | |
| 402 | + | if LookupActionPtr == 0 { | |
| 403 | + | return nil | |
| 404 | + | } | |
| 405 | + | ||
| 406 | + | gobject.IncreaseRef(LookupActionPtr) | |
| 407 | + | ||
| 408 | + | LookupActionCls := &gio.ActionBase{} | |
| 409 | + | LookupActionCls.Ptr = LookupActionPtr | |
| 410 | + | return LookupActionCls | |
| 411 | + | ||
| 412 | + | } | |
| 413 | + | ||
| 414 | + | // Removes the named action from the action map. | |
| 415 | + | // | |
| 416 | + | // If no action of this name is in the map then nothing happens. | |
| 417 | + | func (x *Application) RemoveAction(ActionNameVar string) { | |
| 418 | + | ||
| 419 | + | gio.XGActionMapRemoveAction(x.GoPointer(), ActionNameVar) | |
| 420 | + | ||
| 421 | + | } | |
| 422 | + | ||
| 423 | + | func init() { | |
| 424 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 425 | + | if err != nil { | |
| 426 | + | panic(err) | |
| 427 | + | } | |
| 428 | + | ||
| 429 | + | core.PuregoSafeRegister(&xNewApplication, lib, "adw_application_new") | |
| 430 | + | ||
| 431 | + | core.PuregoSafeRegister(&xApplicationGetStyleManager, lib, "adw_application_get_style_manager") | |
| 432 | + | ||
| 433 | + | } | |
A v4/adw/adw-avatar.go +364 -0
| @@ -0,0 +1,364 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type AvatarClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | // A widget displaying an image, with a generated fallback. | |
| 17 | + | // | |
| 18 | + | // <picture> | |
| 19 | + | // | |
| 20 | + | // <source srcset="avatar-dark.png" media="(prefers-color-scheme: dark)"> | |
| 21 | + | // <img src="avatar.png" alt="avatar"> | |
| 22 | + | // | |
| 23 | + | // </picture> | |
| 24 | + | // | |
| 25 | + | // `AdwAvatar` is a widget that shows a round avatar. | |
| 26 | + | // | |
| 27 | + | // `AdwAvatar` generates an avatar with the initials of the | |
| 28 | + | // [property@Avatar:text] on top of a colored background. | |
| 29 | + | // | |
| 30 | + | // The color is picked based on the hash of the [property@Avatar:text]. | |
| 31 | + | // | |
| 32 | + | // If [property@Avatar:show-initials] is set to `FALSE`, | |
| 33 | + | // [property@Avatar:icon-name] or `avatar-default-symbolic` is shown instead of | |
| 34 | + | // the initials. | |
| 35 | + | // | |
| 36 | + | // Use [property@Avatar:custom-image] to set a custom image. | |
| 37 | + | // | |
| 38 | + | // ## CSS nodes | |
| 39 | + | // | |
| 40 | + | // `AdwAvatar` has a single CSS node with name `avatar`. | |
| 41 | + | type Avatar struct { | |
| 42 | + | gtk.Widget | |
| 43 | + | } | |
| 44 | + | ||
| 45 | + | func AvatarNewFromInternalPtr(ptr uintptr) *Avatar { | |
| 46 | + | cls := &Avatar{} | |
| 47 | + | cls.Ptr = ptr | |
| 48 | + | return cls | |
| 49 | + | } | |
| 50 | + | ||
| 51 | + | var xNewAvatar func(int32, string, bool) uintptr | |
| 52 | + | ||
| 53 | + | // Creates a new `AdwAvatar`. | |
| 54 | + | func NewAvatar(SizeVar int32, TextVar string, ShowInitialsVar bool) *gtk.Widget { | |
| 55 | + | NewAvatarPtr := xNewAvatar(SizeVar, TextVar, ShowInitialsVar) | |
| 56 | + | if NewAvatarPtr == 0 { | |
| 57 | + | return nil | |
| 58 | + | } | |
| 59 | + | ||
| 60 | + | gobject.IncreaseRef(NewAvatarPtr) | |
| 61 | + | ||
| 62 | + | NewAvatarCls := >k.Widget{} | |
| 63 | + | NewAvatarCls.Ptr = NewAvatarPtr | |
| 64 | + | return NewAvatarCls | |
| 65 | + | } | |
| 66 | + | ||
| 67 | + | var xAvatarDrawToTexture func(uintptr, int32) uintptr | |
| 68 | + | ||
| 69 | + | // Renders @self into a [class@Gdk.Texture] at @scale_factor. | |
| 70 | + | // | |
| 71 | + | // This can be used to export the fallback avatar. | |
| 72 | + | func (x *Avatar) DrawToTexture(ScaleFactorVar int32) *gdk.Texture { | |
| 73 | + | ||
| 74 | + | DrawToTexturePtr := xAvatarDrawToTexture(x.GoPointer(), ScaleFactorVar) | |
| 75 | + | if DrawToTexturePtr == 0 { | |
| 76 | + | return nil | |
| 77 | + | } | |
| 78 | + | ||
| 79 | + | DrawToTextureCls := &gdk.Texture{} | |
| 80 | + | DrawToTextureCls.Ptr = DrawToTexturePtr | |
| 81 | + | return DrawToTextureCls | |
| 82 | + | ||
| 83 | + | } | |
| 84 | + | ||
| 85 | + | var xAvatarGetCustomImage func(uintptr) uintptr | |
| 86 | + | ||
| 87 | + | // Gets the custom image paintable. | |
| 88 | + | func (x *Avatar) GetCustomImage() *gdk.PaintableBase { | |
| 89 | + | ||
| 90 | + | GetCustomImagePtr := xAvatarGetCustomImage(x.GoPointer()) | |
| 91 | + | if GetCustomImagePtr == 0 { | |
| 92 | + | return nil | |
| 93 | + | } | |
| 94 | + | ||
| 95 | + | gobject.IncreaseRef(GetCustomImagePtr) | |
| 96 | + | ||
| 97 | + | GetCustomImageCls := &gdk.PaintableBase{} | |
| 98 | + | GetCustomImageCls.Ptr = GetCustomImagePtr | |
| 99 | + | return GetCustomImageCls | |
| 100 | + | ||
| 101 | + | } | |
| 102 | + | ||
| 103 | + | var xAvatarGetIconName func(uintptr) string | |
| 104 | + | ||
| 105 | + | // Gets the name of an icon to use as a fallback. | |
| 106 | + | func (x *Avatar) GetIconName() string { | |
| 107 | + | ||
| 108 | + | return xAvatarGetIconName(x.GoPointer()) | |
| 109 | + | ||
| 110 | + | } | |
| 111 | + | ||
| 112 | + | var xAvatarGetShowInitials func(uintptr) bool | |
| 113 | + | ||
| 114 | + | // Gets whether initials are used instead of an icon on the fallback avatar. | |
| 115 | + | func (x *Avatar) GetShowInitials() bool { | |
| 116 | + | ||
| 117 | + | return xAvatarGetShowInitials(x.GoPointer()) | |
| 118 | + | ||
| 119 | + | } | |
| 120 | + | ||
| 121 | + | var xAvatarGetSize func(uintptr) int32 | |
| 122 | + | ||
| 123 | + | // Gets the size of the avatar. | |
| 124 | + | func (x *Avatar) GetSize() int32 { | |
| 125 | + | ||
| 126 | + | return xAvatarGetSize(x.GoPointer()) | |
| 127 | + | ||
| 128 | + | } | |
| 129 | + | ||
| 130 | + | var xAvatarGetText func(uintptr) string | |
| 131 | + | ||
| 132 | + | // Gets the text used to generate the fallback initials and color. | |
| 133 | + | func (x *Avatar) GetText() string { | |
| 134 | + | ||
| 135 | + | return xAvatarGetText(x.GoPointer()) | |
| 136 | + | ||
| 137 | + | } | |
| 138 | + | ||
| 139 | + | var xAvatarSetCustomImage func(uintptr, uintptr) | |
| 140 | + | ||
| 141 | + | // Sets the custom image paintable. | |
| 142 | + | // | |
| 143 | + | // Custom image is displayed instead of initials or icon. | |
| 144 | + | func (x *Avatar) SetCustomImage(CustomImageVar gdk.Paintable) { | |
| 145 | + | ||
| 146 | + | xAvatarSetCustomImage(x.GoPointer(), CustomImageVar.GoPointer()) | |
| 147 | + | ||
| 148 | + | } | |
| 149 | + | ||
| 150 | + | var xAvatarSetIconName func(uintptr, string) | |
| 151 | + | ||
| 152 | + | // Sets the name of an icon to use as a fallback. | |
| 153 | + | // | |
| 154 | + | // If no name is set, `avatar-default-symbolic` will be used. | |
| 155 | + | func (x *Avatar) SetIconName(IconNameVar string) { | |
| 156 | + | ||
| 157 | + | xAvatarSetIconName(x.GoPointer(), IconNameVar) | |
| 158 | + | ||
| 159 | + | } | |
| 160 | + | ||
| 161 | + | var xAvatarSetShowInitials func(uintptr, bool) | |
| 162 | + | ||
| 163 | + | // Sets whether to use initials instead of an icon on the fallback avatar. | |
| 164 | + | // | |
| 165 | + | // See [property@Avatar:icon-name] for how to change the fallback icon. | |
| 166 | + | func (x *Avatar) SetShowInitials(ShowInitialsVar bool) { | |
| 167 | + | ||
| 168 | + | xAvatarSetShowInitials(x.GoPointer(), ShowInitialsVar) | |
| 169 | + | ||
| 170 | + | } | |
| 171 | + | ||
| 172 | + | var xAvatarSetSize func(uintptr, int32) | |
| 173 | + | ||
| 174 | + | // Sets the size of the avatar. | |
| 175 | + | func (x *Avatar) SetSize(SizeVar int32) { | |
| 176 | + | ||
| 177 | + | xAvatarSetSize(x.GoPointer(), SizeVar) | |
| 178 | + | ||
| 179 | + | } | |
| 180 | + | ||
| 181 | + | var xAvatarSetText func(uintptr, string) | |
| 182 | + | ||
| 183 | + | // Sets the text used to generate the fallback initials and color. | |
| 184 | + | // | |
| 185 | + | // It's only used to generate the color if [property@Avatar:show-initials] is | |
| 186 | + | // `FALSE`. | |
| 187 | + | func (x *Avatar) SetText(TextVar string) { | |
| 188 | + | ||
| 189 | + | xAvatarSetText(x.GoPointer(), TextVar) | |
| 190 | + | ||
| 191 | + | } | |
| 192 | + | ||
| 193 | + | func (c *Avatar) GoPointer() uintptr { | |
| 194 | + | return c.Ptr | |
| 195 | + | } | |
| 196 | + | ||
| 197 | + | func (c *Avatar) SetGoPointer(ptr uintptr) { | |
| 198 | + | c.Ptr = ptr | |
| 199 | + | } | |
| 200 | + | ||
| 201 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 202 | + | func (x *Avatar) GetAccessibleRole() gtk.AccessibleRole { | |
| 203 | + | ||
| 204 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 205 | + | ||
| 206 | + | } | |
| 207 | + | ||
| 208 | + | // Resets the accessible @property to its default value. | |
| 209 | + | func (x *Avatar) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 210 | + | ||
| 211 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 212 | + | ||
| 213 | + | } | |
| 214 | + | ||
| 215 | + | // Resets the accessible @relation to its default value. | |
| 216 | + | func (x *Avatar) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 217 | + | ||
| 218 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 219 | + | ||
| 220 | + | } | |
| 221 | + | ||
| 222 | + | // Resets the accessible @state to its default value. | |
| 223 | + | func (x *Avatar) ResetState(StateVar gtk.AccessibleState) { | |
| 224 | + | ||
| 225 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 226 | + | ||
| 227 | + | } | |
| 228 | + | ||
| 229 | + | // Updates a list of accessible properties. | |
| 230 | + | // | |
| 231 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 232 | + | // value types of accessible properties. | |
| 233 | + | // | |
| 234 | + | // This function should be called by `GtkWidget` types whenever | |
| 235 | + | // an accessible property change must be communicated to assistive | |
| 236 | + | // technologies. | |
| 237 | + | // | |
| 238 | + | // Example: | |
| 239 | + | // ```c | |
| 240 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 241 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 242 | + | // | |
| 243 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 244 | + | // -1); | |
| 245 | + | // | |
| 246 | + | // ``` | |
| 247 | + | func (x *Avatar) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 248 | + | ||
| 249 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 250 | + | ||
| 251 | + | } | |
| 252 | + | ||
| 253 | + | // Updates an array of accessible properties. | |
| 254 | + | // | |
| 255 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 256 | + | // property change must be communicated to assistive technologies. | |
| 257 | + | // | |
| 258 | + | // This function is meant to be used by language bindings. | |
| 259 | + | func (x *Avatar) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 260 | + | ||
| 261 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 262 | + | ||
| 263 | + | } | |
| 264 | + | ||
| 265 | + | // Updates a list of accessible relations. | |
| 266 | + | // | |
| 267 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 268 | + | // relation change must be communicated to assistive technologies. | |
| 269 | + | // | |
| 270 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 271 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 272 | + | // | |
| 273 | + | // ```c | |
| 274 | + | // gtk_accessible_update_relation (accessible, | |
| 275 | + | // | |
| 276 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 277 | + | // ref1, NULL, | |
| 278 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 279 | + | // ref1, ref2, ref3, NULL, | |
| 280 | + | // -1); | |
| 281 | + | // | |
| 282 | + | // ``` | |
| 283 | + | func (x *Avatar) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 284 | + | ||
| 285 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 286 | + | ||
| 287 | + | } | |
| 288 | + | ||
| 289 | + | // Updates an array of accessible relations. | |
| 290 | + | // | |
| 291 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 292 | + | // relation change must be communicated to assistive technologies. | |
| 293 | + | // | |
| 294 | + | // This function is meant to be used by language bindings. | |
| 295 | + | func (x *Avatar) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 296 | + | ||
| 297 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 298 | + | ||
| 299 | + | } | |
| 300 | + | ||
| 301 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 302 | + | // documentation for the value types of accessible states. | |
| 303 | + | // | |
| 304 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 305 | + | // state change must be communicated to assistive technologies. | |
| 306 | + | // | |
| 307 | + | // Example: | |
| 308 | + | // ```c | |
| 309 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 310 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 311 | + | // | |
| 312 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 313 | + | // -1); | |
| 314 | + | // | |
| 315 | + | // ``` | |
| 316 | + | func (x *Avatar) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 317 | + | ||
| 318 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 319 | + | ||
| 320 | + | } | |
| 321 | + | ||
| 322 | + | // Updates an array of accessible states. | |
| 323 | + | // | |
| 324 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 325 | + | // state change must be communicated to assistive technologies. | |
| 326 | + | // | |
| 327 | + | // This function is meant to be used by language bindings. | |
| 328 | + | func (x *Avatar) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 329 | + | ||
| 330 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 331 | + | ||
| 332 | + | } | |
| 333 | + | ||
| 334 | + | // Gets the ID of the @buildable object. | |
| 335 | + | // | |
| 336 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 337 | + | // of the <object> tag used to construct the @buildable. | |
| 338 | + | func (x *Avatar) GetBuildableId() string { | |
| 339 | + | ||
| 340 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 341 | + | ||
| 342 | + | } | |
| 343 | + | ||
| 344 | + | func init() { | |
| 345 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 346 | + | if err != nil { | |
| 347 | + | panic(err) | |
| 348 | + | } | |
| 349 | + | ||
| 350 | + | core.PuregoSafeRegister(&xNewAvatar, lib, "adw_avatar_new") | |
| 351 | + | ||
| 352 | + | core.PuregoSafeRegister(&xAvatarDrawToTexture, lib, "adw_avatar_draw_to_texture") | |
| 353 | + | core.PuregoSafeRegister(&xAvatarGetCustomImage, lib, "adw_avatar_get_custom_image") | |
| 354 | + | core.PuregoSafeRegister(&xAvatarGetIconName, lib, "adw_avatar_get_icon_name") | |
| 355 | + | core.PuregoSafeRegister(&xAvatarGetShowInitials, lib, "adw_avatar_get_show_initials") | |
| 356 | + | core.PuregoSafeRegister(&xAvatarGetSize, lib, "adw_avatar_get_size") | |
| 357 | + | core.PuregoSafeRegister(&xAvatarGetText, lib, "adw_avatar_get_text") | |
| 358 | + | core.PuregoSafeRegister(&xAvatarSetCustomImage, lib, "adw_avatar_set_custom_image") | |
| 359 | + | core.PuregoSafeRegister(&xAvatarSetIconName, lib, "adw_avatar_set_icon_name") | |
| 360 | + | core.PuregoSafeRegister(&xAvatarSetShowInitials, lib, "adw_avatar_set_show_initials") | |
| 361 | + | core.PuregoSafeRegister(&xAvatarSetSize, lib, "adw_avatar_set_size") | |
| 362 | + | core.PuregoSafeRegister(&xAvatarSetText, lib, "adw_avatar_set_text") | |
| 363 | + | ||
| 364 | + | } | |
A v4/adw/adw-banner.go +412 -0
| @@ -0,0 +1,412 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type BannerClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | // A bar with contextual information. | |
| 17 | + | // | |
| 18 | + | // <picture> | |
| 19 | + | // | |
| 20 | + | // <source srcset="banner-dark.png" media="(prefers-color-scheme: dark)"> | |
| 21 | + | // <img src="banner.png" alt="banner"> | |
| 22 | + | // | |
| 23 | + | // </picture> | |
| 24 | + | // | |
| 25 | + | // Banners are hidden by default, use [property@Banner:revealed] to show them. | |
| 26 | + | // | |
| 27 | + | // Banners have a title, set with [property@Banner:title]. Titles can be marked | |
| 28 | + | // up with Pango markup, use [property@Banner:use-markup] to enable it. | |
| 29 | + | // | |
| 30 | + | // The title will be shown centered or left-aligned depending on available | |
| 31 | + | // space. | |
| 32 | + | // | |
| 33 | + | // Banners can optionally have a button with text on it, set through | |
| 34 | + | // [property@Banner:button-label]. The button can be used with a `GAction`, | |
| 35 | + | // or with the [signal@Banner::button-clicked] signal. | |
| 36 | + | // | |
| 37 | + | // ## CSS nodes | |
| 38 | + | // | |
| 39 | + | // `AdwBanner` has a main CSS node with the name `banner`. | |
| 40 | + | type Banner struct { | |
| 41 | + | gtk.Widget | |
| 42 | + | } | |
| 43 | + | ||
| 44 | + | func BannerNewFromInternalPtr(ptr uintptr) *Banner { | |
| 45 | + | cls := &Banner{} | |
| 46 | + | cls.Ptr = ptr | |
| 47 | + | return cls | |
| 48 | + | } | |
| 49 | + | ||
| 50 | + | var xNewBanner func(string) uintptr | |
| 51 | + | ||
| 52 | + | // Creates a new `AdwBanner`. | |
| 53 | + | func NewBanner(TitleVar string) *gtk.Widget { | |
| 54 | + | NewBannerPtr := xNewBanner(TitleVar) | |
| 55 | + | if NewBannerPtr == 0 { | |
| 56 | + | return nil | |
| 57 | + | } | |
| 58 | + | ||
| 59 | + | gobject.IncreaseRef(NewBannerPtr) | |
| 60 | + | ||
| 61 | + | NewBannerCls := >k.Widget{} | |
| 62 | + | NewBannerCls.Ptr = NewBannerPtr | |
| 63 | + | return NewBannerCls | |
| 64 | + | } | |
| 65 | + | ||
| 66 | + | var xBannerGetButtonLabel func(uintptr) string | |
| 67 | + | ||
| 68 | + | // Gets the button label for @self. | |
| 69 | + | func (x *Banner) GetButtonLabel() string { | |
| 70 | + | ||
| 71 | + | return xBannerGetButtonLabel(x.GoPointer()) | |
| 72 | + | ||
| 73 | + | } | |
| 74 | + | ||
| 75 | + | var xBannerGetRevealed func(uintptr) bool | |
| 76 | + | ||
| 77 | + | // Gets if a banner is revealed | |
| 78 | + | func (x *Banner) GetRevealed() bool { | |
| 79 | + | ||
| 80 | + | return xBannerGetRevealed(x.GoPointer()) | |
| 81 | + | ||
| 82 | + | } | |
| 83 | + | ||
| 84 | + | var xBannerGetTitle func(uintptr) string | |
| 85 | + | ||
| 86 | + | // Gets the title for @self. | |
| 87 | + | func (x *Banner) GetTitle() string { | |
| 88 | + | ||
| 89 | + | return xBannerGetTitle(x.GoPointer()) | |
| 90 | + | ||
| 91 | + | } | |
| 92 | + | ||
| 93 | + | var xBannerGetUseMarkup func(uintptr) bool | |
| 94 | + | ||
| 95 | + | // Gets whether to use Pango markup for the banner title. | |
| 96 | + | func (x *Banner) GetUseMarkup() bool { | |
| 97 | + | ||
| 98 | + | return xBannerGetUseMarkup(x.GoPointer()) | |
| 99 | + | ||
| 100 | + | } | |
| 101 | + | ||
| 102 | + | var xBannerSetButtonLabel func(uintptr, string) | |
| 103 | + | ||
| 104 | + | // Sets the button label for @self. | |
| 105 | + | // | |
| 106 | + | // If set to `""` or `NULL`, the button won't be shown. | |
| 107 | + | // | |
| 108 | + | // The button can be used with a `GAction`, or with the | |
| 109 | + | // [signal@Banner::button-clicked] signal. | |
| 110 | + | func (x *Banner) SetButtonLabel(LabelVar string) { | |
| 111 | + | ||
| 112 | + | xBannerSetButtonLabel(x.GoPointer(), LabelVar) | |
| 113 | + | ||
| 114 | + | } | |
| 115 | + | ||
| 116 | + | var xBannerSetRevealed func(uintptr, bool) | |
| 117 | + | ||
| 118 | + | // Sets whether a banner should be revealed | |
| 119 | + | func (x *Banner) SetRevealed(RevealedVar bool) { | |
| 120 | + | ||
| 121 | + | xBannerSetRevealed(x.GoPointer(), RevealedVar) | |
| 122 | + | ||
| 123 | + | } | |
| 124 | + | ||
| 125 | + | var xBannerSetTitle func(uintptr, string) | |
| 126 | + | ||
| 127 | + | // Sets the title for this banner. | |
| 128 | + | // | |
| 129 | + | // See also: [property@Banner:use-markup]. | |
| 130 | + | func (x *Banner) SetTitle(TitleVar string) { | |
| 131 | + | ||
| 132 | + | xBannerSetTitle(x.GoPointer(), TitleVar) | |
| 133 | + | ||
| 134 | + | } | |
| 135 | + | ||
| 136 | + | var xBannerSetUseMarkup func(uintptr, bool) | |
| 137 | + | ||
| 138 | + | // Sets whether to use Pango markup for the banner title. | |
| 139 | + | // | |
| 140 | + | // See also [func@Pango.parse_markup]. | |
| 141 | + | func (x *Banner) SetUseMarkup(UseMarkupVar bool) { | |
| 142 | + | ||
| 143 | + | xBannerSetUseMarkup(x.GoPointer(), UseMarkupVar) | |
| 144 | + | ||
| 145 | + | } | |
| 146 | + | ||
| 147 | + | func (c *Banner) GoPointer() uintptr { | |
| 148 | + | return c.Ptr | |
| 149 | + | } | |
| 150 | + | ||
| 151 | + | func (c *Banner) SetGoPointer(ptr uintptr) { | |
| 152 | + | c.Ptr = ptr | |
| 153 | + | } | |
| 154 | + | ||
| 155 | + | // This signal is emitted after the action button has been clicked. | |
| 156 | + | // | |
| 157 | + | // It can be used as an alternative to setting an action. | |
| 158 | + | func (x *Banner) ConnectButtonClicked(cb func(Banner)) { | |
| 159 | + | fcb := func(clsPtr uintptr) { | |
| 160 | + | fa := Banner{} | |
| 161 | + | fa.Ptr = clsPtr | |
| 162 | + | ||
| 163 | + | cb(fa) | |
| 164 | + | ||
| 165 | + | } | |
| 166 | + | gobject.ObjectConnect(x.GoPointer(), "signal::button-clicked", purego.NewCallback(fcb)) | |
| 167 | + | } | |
| 168 | + | ||
| 169 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 170 | + | func (x *Banner) GetAccessibleRole() gtk.AccessibleRole { | |
| 171 | + | ||
| 172 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 173 | + | ||
| 174 | + | } | |
| 175 | + | ||
| 176 | + | // Resets the accessible @property to its default value. | |
| 177 | + | func (x *Banner) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 178 | + | ||
| 179 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 180 | + | ||
| 181 | + | } | |
| 182 | + | ||
| 183 | + | // Resets the accessible @relation to its default value. | |
| 184 | + | func (x *Banner) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 185 | + | ||
| 186 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 187 | + | ||
| 188 | + | } | |
| 189 | + | ||
| 190 | + | // Resets the accessible @state to its default value. | |
| 191 | + | func (x *Banner) ResetState(StateVar gtk.AccessibleState) { | |
| 192 | + | ||
| 193 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 194 | + | ||
| 195 | + | } | |
| 196 | + | ||
| 197 | + | // Updates a list of accessible properties. | |
| 198 | + | // | |
| 199 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 200 | + | // value types of accessible properties. | |
| 201 | + | // | |
| 202 | + | // This function should be called by `GtkWidget` types whenever | |
| 203 | + | // an accessible property change must be communicated to assistive | |
| 204 | + | // technologies. | |
| 205 | + | // | |
| 206 | + | // Example: | |
| 207 | + | // ```c | |
| 208 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 209 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 210 | + | // | |
| 211 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 212 | + | // -1); | |
| 213 | + | // | |
| 214 | + | // ``` | |
| 215 | + | func (x *Banner) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 216 | + | ||
| 217 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 218 | + | ||
| 219 | + | } | |
| 220 | + | ||
| 221 | + | // Updates an array of accessible properties. | |
| 222 | + | // | |
| 223 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 224 | + | // property change must be communicated to assistive technologies. | |
| 225 | + | // | |
| 226 | + | // This function is meant to be used by language bindings. | |
| 227 | + | func (x *Banner) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 228 | + | ||
| 229 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 230 | + | ||
| 231 | + | } | |
| 232 | + | ||
| 233 | + | // Updates a list of accessible relations. | |
| 234 | + | // | |
| 235 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 236 | + | // relation change must be communicated to assistive technologies. | |
| 237 | + | // | |
| 238 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 239 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 240 | + | // | |
| 241 | + | // ```c | |
| 242 | + | // gtk_accessible_update_relation (accessible, | |
| 243 | + | // | |
| 244 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 245 | + | // ref1, NULL, | |
| 246 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 247 | + | // ref1, ref2, ref3, NULL, | |
| 248 | + | // -1); | |
| 249 | + | // | |
| 250 | + | // ``` | |
| 251 | + | func (x *Banner) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 252 | + | ||
| 253 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 254 | + | ||
| 255 | + | } | |
| 256 | + | ||
| 257 | + | // Updates an array of accessible relations. | |
| 258 | + | // | |
| 259 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 260 | + | // relation change must be communicated to assistive technologies. | |
| 261 | + | // | |
| 262 | + | // This function is meant to be used by language bindings. | |
| 263 | + | func (x *Banner) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 264 | + | ||
| 265 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 266 | + | ||
| 267 | + | } | |
| 268 | + | ||
| 269 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 270 | + | // documentation for the value types of accessible states. | |
| 271 | + | // | |
| 272 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 273 | + | // state change must be communicated to assistive technologies. | |
| 274 | + | // | |
| 275 | + | // Example: | |
| 276 | + | // ```c | |
| 277 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 278 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 279 | + | // | |
| 280 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 281 | + | // -1); | |
| 282 | + | // | |
| 283 | + | // ``` | |
| 284 | + | func (x *Banner) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 285 | + | ||
| 286 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 287 | + | ||
| 288 | + | } | |
| 289 | + | ||
| 290 | + | // Updates an array of accessible states. | |
| 291 | + | // | |
| 292 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 293 | + | // state change must be communicated to assistive technologies. | |
| 294 | + | // | |
| 295 | + | // This function is meant to be used by language bindings. | |
| 296 | + | func (x *Banner) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 297 | + | ||
| 298 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 299 | + | ||
| 300 | + | } | |
| 301 | + | ||
| 302 | + | // Gets the action name for @actionable. | |
| 303 | + | func (x *Banner) GetActionName() string { | |
| 304 | + | ||
| 305 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 306 | + | ||
| 307 | + | } | |
| 308 | + | ||
| 309 | + | // Gets the current target value of @actionable. | |
| 310 | + | func (x *Banner) GetActionTargetValue() *glib.Variant { | |
| 311 | + | ||
| 312 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 313 | + | ||
| 314 | + | } | |
| 315 | + | ||
| 316 | + | // Specifies the name of the action with which this widget should be | |
| 317 | + | // associated. | |
| 318 | + | // | |
| 319 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 320 | + | // any previous action. | |
| 321 | + | // | |
| 322 | + | // Usually this function is used when the widget is located (or will be | |
| 323 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 324 | + | // | |
| 325 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 326 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 327 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 328 | + | // associated with the window. | |
| 329 | + | func (x *Banner) SetActionName(ActionNameVar string) { | |
| 330 | + | ||
| 331 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 332 | + | ||
| 333 | + | } | |
| 334 | + | ||
| 335 | + | // Sets the target of an actionable widget. | |
| 336 | + | // | |
| 337 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 338 | + | // @format_string and uses the result to call | |
| 339 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 340 | + | // | |
| 341 | + | // If you are setting a string-valued target and want to set | |
| 342 | + | // the action name at the same time, you can use | |
| 343 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 344 | + | func (x *Banner) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 345 | + | ||
| 346 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 347 | + | ||
| 348 | + | } | |
| 349 | + | ||
| 350 | + | // Sets the target value of an actionable widget. | |
| 351 | + | // | |
| 352 | + | // If @target_value is %NULL then the target value is unset. | |
| 353 | + | // | |
| 354 | + | // The target value has two purposes. First, it is used as the parameter | |
| 355 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 356 | + | // Second, it is used to determine if the widget should be rendered as | |
| 357 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 358 | + | // | |
| 359 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 360 | + | // with string state in a typical “radio button” situation. Each button | |
| 361 | + | // will be associated with the same action, but with a different target | |
| 362 | + | // value for that action. Clicking on a particular button will activate | |
| 363 | + | // the action with the target of that button, which will typically cause | |
| 364 | + | // the action’s state to change to that value. Since the action’s state | |
| 365 | + | // is now equal to the target value of the button, the button will now | |
| 366 | + | // be rendered as active (and the other buttons, with different targets, | |
| 367 | + | // rendered inactive). | |
| 368 | + | func (x *Banner) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 369 | + | ||
| 370 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 371 | + | ||
| 372 | + | } | |
| 373 | + | ||
| 374 | + | // Sets the action-name and associated string target value of an | |
| 375 | + | // actionable widget. | |
| 376 | + | // | |
| 377 | + | // @detailed_action_name is a string in the format accepted by | |
| 378 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 379 | + | func (x *Banner) SetDetailedActionName(DetailedActionNameVar string) { | |
| 380 | + | ||
| 381 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 382 | + | ||
| 383 | + | } | |
| 384 | + | ||
| 385 | + | // Gets the ID of the @buildable object. | |
| 386 | + | // | |
| 387 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 388 | + | // of the <object> tag used to construct the @buildable. | |
| 389 | + | func (x *Banner) GetBuildableId() string { | |
| 390 | + | ||
| 391 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 392 | + | ||
| 393 | + | } | |
| 394 | + | ||
| 395 | + | func init() { | |
| 396 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 397 | + | if err != nil { | |
| 398 | + | panic(err) | |
| 399 | + | } | |
| 400 | + | ||
| 401 | + | core.PuregoSafeRegister(&xNewBanner, lib, "adw_banner_new") | |
| 402 | + | ||
| 403 | + | core.PuregoSafeRegister(&xBannerGetButtonLabel, lib, "adw_banner_get_button_label") | |
| 404 | + | core.PuregoSafeRegister(&xBannerGetRevealed, lib, "adw_banner_get_revealed") | |
| 405 | + | core.PuregoSafeRegister(&xBannerGetTitle, lib, "adw_banner_get_title") | |
| 406 | + | core.PuregoSafeRegister(&xBannerGetUseMarkup, lib, "adw_banner_get_use_markup") | |
| 407 | + | core.PuregoSafeRegister(&xBannerSetButtonLabel, lib, "adw_banner_set_button_label") | |
| 408 | + | core.PuregoSafeRegister(&xBannerSetRevealed, lib, "adw_banner_set_revealed") | |
| 409 | + | core.PuregoSafeRegister(&xBannerSetTitle, lib, "adw_banner_set_title") | |
| 410 | + | core.PuregoSafeRegister(&xBannerSetUseMarkup, lib, "adw_banner_set_use_markup") | |
| 411 | + | ||
| 412 | + | } | |
A v4/adw/adw-bin.go +244 -0
| @@ -0,0 +1,244 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type BinClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // A widget with one child. | |
| 16 | + | // | |
| 17 | + | // <picture> | |
| 18 | + | // | |
| 19 | + | // <source srcset="bin-dark.png" media="(prefers-color-scheme: dark)"> | |
| 20 | + | // <img src="bin.png" alt="bin"> | |
| 21 | + | // | |
| 22 | + | // </picture> | |
| 23 | + | // | |
| 24 | + | // The `AdwBin` widget has only one child, set with the [property@Bin:child] | |
| 25 | + | // property. | |
| 26 | + | // | |
| 27 | + | // It is useful for deriving subclasses, since it provides common code needed | |
| 28 | + | // for handling a single child widget. | |
| 29 | + | type Bin struct { | |
| 30 | + | gtk.Widget | |
| 31 | + | } | |
| 32 | + | ||
| 33 | + | func BinNewFromInternalPtr(ptr uintptr) *Bin { | |
| 34 | + | cls := &Bin{} | |
| 35 | + | cls.Ptr = ptr | |
| 36 | + | return cls | |
| 37 | + | } | |
| 38 | + | ||
| 39 | + | var xNewBin func() uintptr | |
| 40 | + | ||
| 41 | + | // Creates a new `AdwBin`. | |
| 42 | + | func NewBin() *gtk.Widget { | |
| 43 | + | NewBinPtr := xNewBin() | |
| 44 | + | if NewBinPtr == 0 { | |
| 45 | + | return nil | |
| 46 | + | } | |
| 47 | + | ||
| 48 | + | gobject.IncreaseRef(NewBinPtr) | |
| 49 | + | ||
| 50 | + | NewBinCls := >k.Widget{} | |
| 51 | + | NewBinCls.Ptr = NewBinPtr | |
| 52 | + | return NewBinCls | |
| 53 | + | } | |
| 54 | + | ||
| 55 | + | var xBinGetChild func(uintptr) uintptr | |
| 56 | + | ||
| 57 | + | // Gets the child widget of @self. | |
| 58 | + | func (x *Bin) GetChild() *gtk.Widget { | |
| 59 | + | ||
| 60 | + | GetChildPtr := xBinGetChild(x.GoPointer()) | |
| 61 | + | if GetChildPtr == 0 { | |
| 62 | + | return nil | |
| 63 | + | } | |
| 64 | + | ||
| 65 | + | gobject.IncreaseRef(GetChildPtr) | |
| 66 | + | ||
| 67 | + | GetChildCls := >k.Widget{} | |
| 68 | + | GetChildCls.Ptr = GetChildPtr | |
| 69 | + | return GetChildCls | |
| 70 | + | ||
| 71 | + | } | |
| 72 | + | ||
| 73 | + | var xBinSetChild func(uintptr, uintptr) | |
| 74 | + | ||
| 75 | + | // Sets the child widget of @self. | |
| 76 | + | func (x *Bin) SetChild(ChildVar *gtk.Widget) { | |
| 77 | + | ||
| 78 | + | xBinSetChild(x.GoPointer(), ChildVar.GoPointer()) | |
| 79 | + | ||
| 80 | + | } | |
| 81 | + | ||
| 82 | + | func (c *Bin) GoPointer() uintptr { | |
| 83 | + | return c.Ptr | |
| 84 | + | } | |
| 85 | + | ||
| 86 | + | func (c *Bin) SetGoPointer(ptr uintptr) { | |
| 87 | + | c.Ptr = ptr | |
| 88 | + | } | |
| 89 | + | ||
| 90 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 91 | + | func (x *Bin) GetAccessibleRole() gtk.AccessibleRole { | |
| 92 | + | ||
| 93 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 94 | + | ||
| 95 | + | } | |
| 96 | + | ||
| 97 | + | // Resets the accessible @property to its default value. | |
| 98 | + | func (x *Bin) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 99 | + | ||
| 100 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 101 | + | ||
| 102 | + | } | |
| 103 | + | ||
| 104 | + | // Resets the accessible @relation to its default value. | |
| 105 | + | func (x *Bin) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 106 | + | ||
| 107 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 108 | + | ||
| 109 | + | } | |
| 110 | + | ||
| 111 | + | // Resets the accessible @state to its default value. | |
| 112 | + | func (x *Bin) ResetState(StateVar gtk.AccessibleState) { | |
| 113 | + | ||
| 114 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 115 | + | ||
| 116 | + | } | |
| 117 | + | ||
| 118 | + | // Updates a list of accessible properties. | |
| 119 | + | // | |
| 120 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 121 | + | // value types of accessible properties. | |
| 122 | + | // | |
| 123 | + | // This function should be called by `GtkWidget` types whenever | |
| 124 | + | // an accessible property change must be communicated to assistive | |
| 125 | + | // technologies. | |
| 126 | + | // | |
| 127 | + | // Example: | |
| 128 | + | // ```c | |
| 129 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 130 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 131 | + | // | |
| 132 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 133 | + | // -1); | |
| 134 | + | // | |
| 135 | + | // ``` | |
| 136 | + | func (x *Bin) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 137 | + | ||
| 138 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 139 | + | ||
| 140 | + | } | |
| 141 | + | ||
| 142 | + | // Updates an array of accessible properties. | |
| 143 | + | // | |
| 144 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 145 | + | // property change must be communicated to assistive technologies. | |
| 146 | + | // | |
| 147 | + | // This function is meant to be used by language bindings. | |
| 148 | + | func (x *Bin) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 149 | + | ||
| 150 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 151 | + | ||
| 152 | + | } | |
| 153 | + | ||
| 154 | + | // Updates a list of accessible relations. | |
| 155 | + | // | |
| 156 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 157 | + | // relation change must be communicated to assistive technologies. | |
| 158 | + | // | |
| 159 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 160 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 161 | + | // | |
| 162 | + | // ```c | |
| 163 | + | // gtk_accessible_update_relation (accessible, | |
| 164 | + | // | |
| 165 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 166 | + | // ref1, NULL, | |
| 167 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 168 | + | // ref1, ref2, ref3, NULL, | |
| 169 | + | // -1); | |
| 170 | + | // | |
| 171 | + | // ``` | |
| 172 | + | func (x *Bin) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 173 | + | ||
| 174 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 175 | + | ||
| 176 | + | } | |
| 177 | + | ||
| 178 | + | // Updates an array of accessible relations. | |
| 179 | + | // | |
| 180 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 181 | + | // relation change must be communicated to assistive technologies. | |
| 182 | + | // | |
| 183 | + | // This function is meant to be used by language bindings. | |
| 184 | + | func (x *Bin) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 185 | + | ||
| 186 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 187 | + | ||
| 188 | + | } | |
| 189 | + | ||
| 190 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 191 | + | // documentation for the value types of accessible states. | |
| 192 | + | // | |
| 193 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 194 | + | // state change must be communicated to assistive technologies. | |
| 195 | + | // | |
| 196 | + | // Example: | |
| 197 | + | // ```c | |
| 198 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 199 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 200 | + | // | |
| 201 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 202 | + | // -1); | |
| 203 | + | // | |
| 204 | + | // ``` | |
| 205 | + | func (x *Bin) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 206 | + | ||
| 207 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 208 | + | ||
| 209 | + | } | |
| 210 | + | ||
| 211 | + | // Updates an array of accessible states. | |
| 212 | + | // | |
| 213 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 214 | + | // state change must be communicated to assistive technologies. | |
| 215 | + | // | |
| 216 | + | // This function is meant to be used by language bindings. | |
| 217 | + | func (x *Bin) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 218 | + | ||
| 219 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 220 | + | ||
| 221 | + | } | |
| 222 | + | ||
| 223 | + | // Gets the ID of the @buildable object. | |
| 224 | + | // | |
| 225 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 226 | + | // of the <object> tag used to construct the @buildable. | |
| 227 | + | func (x *Bin) GetBuildableId() string { | |
| 228 | + | ||
| 229 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 230 | + | ||
| 231 | + | } | |
| 232 | + | ||
| 233 | + | func init() { | |
| 234 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 235 | + | if err != nil { | |
| 236 | + | panic(err) | |
| 237 | + | } | |
| 238 | + | ||
| 239 | + | core.PuregoSafeRegister(&xNewBin, lib, "adw_bin_new") | |
| 240 | + | ||
| 241 | + | core.PuregoSafeRegister(&xBinGetChild, lib, "adw_bin_get_child") | |
| 242 | + | core.PuregoSafeRegister(&xBinSetChild, lib, "adw_bin_set_child") | |
| 243 | + | ||
| 244 | + | } | |
A v4/adw/adw-button-content.go +317 -0
| @@ -0,0 +1,317 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type ButtonContentClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // A helper widget for creating buttons. | |
| 16 | + | // | |
| 17 | + | // <picture> | |
| 18 | + | // | |
| 19 | + | // <source srcset="button-content-dark.png" media="(prefers-color-scheme: dark)"> | |
| 20 | + | // <img src="button-content.png" alt="button-content"> | |
| 21 | + | // | |
| 22 | + | // </picture> | |
| 23 | + | // | |
| 24 | + | // `AdwButtonContent` is a box-like widget with an icon and a label. | |
| 25 | + | // | |
| 26 | + | // It's intended to be used as a direct child of [class@Gtk.Button], | |
| 27 | + | // [class@Gtk.MenuButton] or [class@SplitButton], when they need to have both an | |
| 28 | + | // icon and a label, as follows: | |
| 29 | + | // | |
| 30 | + | // ```xml | |
| 31 | + | // <object class="GtkButton"> | |
| 32 | + | // | |
| 33 | + | // <property name="child"> | |
| 34 | + | // <object class="AdwButtonContent"> | |
| 35 | + | // <property name="icon-name">document-open-symbolic</property> | |
| 36 | + | // <property name="label" translatable="yes">_Open</property> | |
| 37 | + | // <property name="use-underline">True</property> | |
| 38 | + | // </object> | |
| 39 | + | // </property> | |
| 40 | + | // | |
| 41 | + | // </object> | |
| 42 | + | // ``` | |
| 43 | + | // | |
| 44 | + | // `AdwButtonContent` handles style classes and connecting the mnemonic to the | |
| 45 | + | // button automatically. | |
| 46 | + | // | |
| 47 | + | // ## CSS nodes | |
| 48 | + | // | |
| 49 | + | // ``` | |
| 50 | + | // buttoncontent | |
| 51 | + | // ├── image | |
| 52 | + | // ╰── label | |
| 53 | + | // ``` | |
| 54 | + | // | |
| 55 | + | // `AdwButtonContent`'s CSS node is called `buttoncontent`. It contains the | |
| 56 | + | // subnodes `image` and `label`. | |
| 57 | + | // | |
| 58 | + | // When inside a `GtkButton` or `AdwSplitButton`, the button will receive the | |
| 59 | + | // `.image-text-button` style class. When inside a `GtkMenuButton`, the | |
| 60 | + | // internal `GtkButton` will receive it instead. | |
| 61 | + | // | |
| 62 | + | // ## Accessibility | |
| 63 | + | // | |
| 64 | + | // `AdwButtonContent` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. | |
| 65 | + | type ButtonContent struct { | |
| 66 | + | gtk.Widget | |
| 67 | + | } | |
| 68 | + | ||
| 69 | + | func ButtonContentNewFromInternalPtr(ptr uintptr) *ButtonContent { | |
| 70 | + | cls := &ButtonContent{} | |
| 71 | + | cls.Ptr = ptr | |
| 72 | + | return cls | |
| 73 | + | } | |
| 74 | + | ||
| 75 | + | var xNewButtonContent func() uintptr | |
| 76 | + | ||
| 77 | + | // Creates a new `AdwButtonContent`. | |
| 78 | + | func NewButtonContent() *gtk.Widget { | |
| 79 | + | NewButtonContentPtr := xNewButtonContent() | |
| 80 | + | if NewButtonContentPtr == 0 { | |
| 81 | + | return nil | |
| 82 | + | } | |
| 83 | + | ||
| 84 | + | gobject.IncreaseRef(NewButtonContentPtr) | |
| 85 | + | ||
| 86 | + | NewButtonContentCls := >k.Widget{} | |
| 87 | + | NewButtonContentCls.Ptr = NewButtonContentPtr | |
| 88 | + | return NewButtonContentCls | |
| 89 | + | } | |
| 90 | + | ||
| 91 | + | var xButtonContentGetIconName func(uintptr) string | |
| 92 | + | ||
| 93 | + | // Gets the name of the displayed icon. | |
| 94 | + | func (x *ButtonContent) GetIconName() string { | |
| 95 | + | ||
| 96 | + | return xButtonContentGetIconName(x.GoPointer()) | |
| 97 | + | ||
| 98 | + | } | |
| 99 | + | ||
| 100 | + | var xButtonContentGetLabel func(uintptr) string | |
| 101 | + | ||
| 102 | + | // Gets the displayed label. | |
| 103 | + | func (x *ButtonContent) GetLabel() string { | |
| 104 | + | ||
| 105 | + | return xButtonContentGetLabel(x.GoPointer()) | |
| 106 | + | ||
| 107 | + | } | |
| 108 | + | ||
| 109 | + | var xButtonContentGetUseUnderline func(uintptr) bool | |
| 110 | + | ||
| 111 | + | // Gets whether an underline in the text indicates a mnemonic. | |
| 112 | + | func (x *ButtonContent) GetUseUnderline() bool { | |
| 113 | + | ||
| 114 | + | return xButtonContentGetUseUnderline(x.GoPointer()) | |
| 115 | + | ||
| 116 | + | } | |
| 117 | + | ||
| 118 | + | var xButtonContentSetIconName func(uintptr, string) | |
| 119 | + | ||
| 120 | + | // Sets the name of the displayed icon. | |
| 121 | + | // | |
| 122 | + | // If empty, the icon is not shown. | |
| 123 | + | func (x *ButtonContent) SetIconName(IconNameVar string) { | |
| 124 | + | ||
| 125 | + | xButtonContentSetIconName(x.GoPointer(), IconNameVar) | |
| 126 | + | ||
| 127 | + | } | |
| 128 | + | ||
| 129 | + | var xButtonContentSetLabel func(uintptr, string) | |
| 130 | + | ||
| 131 | + | // Sets the displayed label. | |
| 132 | + | func (x *ButtonContent) SetLabel(LabelVar string) { | |
| 133 | + | ||
| 134 | + | xButtonContentSetLabel(x.GoPointer(), LabelVar) | |
| 135 | + | ||
| 136 | + | } | |
| 137 | + | ||
| 138 | + | var xButtonContentSetUseUnderline func(uintptr, bool) | |
| 139 | + | ||
| 140 | + | // Sets whether an underline in the text indicates a mnemonic. | |
| 141 | + | // | |
| 142 | + | // The mnemonic can be used to activate the parent button. | |
| 143 | + | // | |
| 144 | + | // See [property@ButtonContent:label]. | |
| 145 | + | func (x *ButtonContent) SetUseUnderline(UseUnderlineVar bool) { | |
| 146 | + | ||
| 147 | + | xButtonContentSetUseUnderline(x.GoPointer(), UseUnderlineVar) | |
| 148 | + | ||
| 149 | + | } | |
| 150 | + | ||
| 151 | + | func (c *ButtonContent) GoPointer() uintptr { | |
| 152 | + | return c.Ptr | |
| 153 | + | } | |
| 154 | + | ||
| 155 | + | func (c *ButtonContent) SetGoPointer(ptr uintptr) { | |
| 156 | + | c.Ptr = ptr | |
| 157 | + | } | |
| 158 | + | ||
| 159 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 160 | + | func (x *ButtonContent) GetAccessibleRole() gtk.AccessibleRole { | |
| 161 | + | ||
| 162 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 163 | + | ||
| 164 | + | } | |
| 165 | + | ||
| 166 | + | // Resets the accessible @property to its default value. | |
| 167 | + | func (x *ButtonContent) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 168 | + | ||
| 169 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 170 | + | ||
| 171 | + | } | |
| 172 | + | ||
| 173 | + | // Resets the accessible @relation to its default value. | |
| 174 | + | func (x *ButtonContent) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 175 | + | ||
| 176 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 177 | + | ||
| 178 | + | } | |
| 179 | + | ||
| 180 | + | // Resets the accessible @state to its default value. | |
| 181 | + | func (x *ButtonContent) ResetState(StateVar gtk.AccessibleState) { | |
| 182 | + | ||
| 183 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 184 | + | ||
| 185 | + | } | |
| 186 | + | ||
| 187 | + | // Updates a list of accessible properties. | |
| 188 | + | // | |
| 189 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 190 | + | // value types of accessible properties. | |
| 191 | + | // | |
| 192 | + | // This function should be called by `GtkWidget` types whenever | |
| 193 | + | // an accessible property change must be communicated to assistive | |
| 194 | + | // technologies. | |
| 195 | + | // | |
| 196 | + | // Example: | |
| 197 | + | // ```c | |
| 198 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 199 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 200 | + | // | |
| 201 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 202 | + | // -1); | |
| 203 | + | // | |
| 204 | + | // ``` | |
| 205 | + | func (x *ButtonContent) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 206 | + | ||
| 207 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 208 | + | ||
| 209 | + | } | |
| 210 | + | ||
| 211 | + | // Updates an array of accessible properties. | |
| 212 | + | // | |
| 213 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 214 | + | // property change must be communicated to assistive technologies. | |
| 215 | + | // | |
| 216 | + | // This function is meant to be used by language bindings. | |
| 217 | + | func (x *ButtonContent) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 218 | + | ||
| 219 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 220 | + | ||
| 221 | + | } | |
| 222 | + | ||
| 223 | + | // Updates a list of accessible relations. | |
| 224 | + | // | |
| 225 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 226 | + | // relation change must be communicated to assistive technologies. | |
| 227 | + | // | |
| 228 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 229 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 230 | + | // | |
| 231 | + | // ```c | |
| 232 | + | // gtk_accessible_update_relation (accessible, | |
| 233 | + | // | |
| 234 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 235 | + | // ref1, NULL, | |
| 236 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 237 | + | // ref1, ref2, ref3, NULL, | |
| 238 | + | // -1); | |
| 239 | + | // | |
| 240 | + | // ``` | |
| 241 | + | func (x *ButtonContent) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 242 | + | ||
| 243 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 244 | + | ||
| 245 | + | } | |
| 246 | + | ||
| 247 | + | // Updates an array of accessible relations. | |
| 248 | + | // | |
| 249 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 250 | + | // relation change must be communicated to assistive technologies. | |
| 251 | + | // | |
| 252 | + | // This function is meant to be used by language bindings. | |
| 253 | + | func (x *ButtonContent) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 254 | + | ||
| 255 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 256 | + | ||
| 257 | + | } | |
| 258 | + | ||
| 259 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 260 | + | // documentation for the value types of accessible states. | |
| 261 | + | // | |
| 262 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 263 | + | // state change must be communicated to assistive technologies. | |
| 264 | + | // | |
| 265 | + | // Example: | |
| 266 | + | // ```c | |
| 267 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 268 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 269 | + | // | |
| 270 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 271 | + | // -1); | |
| 272 | + | // | |
| 273 | + | // ``` | |
| 274 | + | func (x *ButtonContent) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 275 | + | ||
| 276 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 277 | + | ||
| 278 | + | } | |
| 279 | + | ||
| 280 | + | // Updates an array of accessible states. | |
| 281 | + | // | |
| 282 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 283 | + | // state change must be communicated to assistive technologies. | |
| 284 | + | // | |
| 285 | + | // This function is meant to be used by language bindings. | |
| 286 | + | func (x *ButtonContent) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 287 | + | ||
| 288 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 289 | + | ||
| 290 | + | } | |
| 291 | + | ||
| 292 | + | // Gets the ID of the @buildable object. | |
| 293 | + | // | |
| 294 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 295 | + | // of the <object> tag used to construct the @buildable. | |
| 296 | + | func (x *ButtonContent) GetBuildableId() string { | |
| 297 | + | ||
| 298 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 299 | + | ||
| 300 | + | } | |
| 301 | + | ||
| 302 | + | func init() { | |
| 303 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 304 | + | if err != nil { | |
| 305 | + | panic(err) | |
| 306 | + | } | |
| 307 | + | ||
| 308 | + | core.PuregoSafeRegister(&xNewButtonContent, lib, "adw_button_content_new") | |
| 309 | + | ||
| 310 | + | core.PuregoSafeRegister(&xButtonContentGetIconName, lib, "adw_button_content_get_icon_name") | |
| 311 | + | core.PuregoSafeRegister(&xButtonContentGetLabel, lib, "adw_button_content_get_label") | |
| 312 | + | core.PuregoSafeRegister(&xButtonContentGetUseUnderline, lib, "adw_button_content_get_use_underline") | |
| 313 | + | core.PuregoSafeRegister(&xButtonContentSetIconName, lib, "adw_button_content_set_icon_name") | |
| 314 | + | core.PuregoSafeRegister(&xButtonContentSetLabel, lib, "adw_button_content_set_label") | |
| 315 | + | core.PuregoSafeRegister(&xButtonContentSetUseUnderline, lib, "adw_button_content_set_use_underline") | |
| 316 | + | ||
| 317 | + | } | |
A v4/adw/adw-carousel-indicator-dots.go +264 -0
| @@ -0,0 +1,264 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type CarouselIndicatorDotsClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // A dots indicator for [class@Carousel]. | |
| 16 | + | // | |
| 17 | + | // <picture> | |
| 18 | + | // | |
| 19 | + | // <source srcset="carousel-indicator-dots-dark.png" media="(prefers-color-scheme: dark)"> | |
| 20 | + | // <img src="carousel-indicator-dots.png" alt="carousel-indicator-dots"> | |
| 21 | + | // | |
| 22 | + | // </picture> | |
| 23 | + | // | |
| 24 | + | // The `AdwCarouselIndicatorDots` widget shows a set of dots for each page of a | |
| 25 | + | // given [class@Carousel]. The dot representing the carousel's active page is | |
| 26 | + | // larger and more opaque than the others, the transition to the active and | |
| 27 | + | // inactive state is gradual to match the carousel's position. | |
| 28 | + | // | |
| 29 | + | // See also [class@CarouselIndicatorLines]. | |
| 30 | + | // | |
| 31 | + | // ## CSS nodes | |
| 32 | + | // | |
| 33 | + | // `AdwCarouselIndicatorDots` has a single CSS node with name | |
| 34 | + | // `carouselindicatordots`. | |
| 35 | + | type CarouselIndicatorDots struct { | |
| 36 | + | gtk.Widget | |
| 37 | + | } | |
| 38 | + | ||
| 39 | + | func CarouselIndicatorDotsNewFromInternalPtr(ptr uintptr) *CarouselIndicatorDots { | |
| 40 | + | cls := &CarouselIndicatorDots{} | |
| 41 | + | cls.Ptr = ptr | |
| 42 | + | return cls | |
| 43 | + | } | |
| 44 | + | ||
| 45 | + | var xNewCarouselIndicatorDots func() uintptr | |
| 46 | + | ||
| 47 | + | // Creates a new `AdwCarouselIndicatorDots`. | |
| 48 | + | func NewCarouselIndicatorDots() *gtk.Widget { | |
| 49 | + | NewCarouselIndicatorDotsPtr := xNewCarouselIndicatorDots() | |
| 50 | + | if NewCarouselIndicatorDotsPtr == 0 { | |
| 51 | + | return nil | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | gobject.IncreaseRef(NewCarouselIndicatorDotsPtr) | |
| 55 | + | ||
| 56 | + | NewCarouselIndicatorDotsCls := >k.Widget{} | |
| 57 | + | NewCarouselIndicatorDotsCls.Ptr = NewCarouselIndicatorDotsPtr | |
| 58 | + | return NewCarouselIndicatorDotsCls | |
| 59 | + | } | |
| 60 | + | ||
| 61 | + | var xCarouselIndicatorDotsGetCarousel func(uintptr) uintptr | |
| 62 | + | ||
| 63 | + | // Gets the displayed carousel. | |
| 64 | + | func (x *CarouselIndicatorDots) GetCarousel() *Carousel { | |
| 65 | + | ||
| 66 | + | GetCarouselPtr := xCarouselIndicatorDotsGetCarousel(x.GoPointer()) | |
| 67 | + | if GetCarouselPtr == 0 { | |
| 68 | + | return nil | |
| 69 | + | } | |
| 70 | + | ||
| 71 | + | gobject.IncreaseRef(GetCarouselPtr) | |
| 72 | + | ||
| 73 | + | GetCarouselCls := &Carousel{} | |
| 74 | + | GetCarouselCls.Ptr = GetCarouselPtr | |
| 75 | + | return GetCarouselCls | |
| 76 | + | ||
| 77 | + | } | |
| 78 | + | ||
| 79 | + | var xCarouselIndicatorDotsSetCarousel func(uintptr, uintptr) | |
| 80 | + | ||
| 81 | + | // Sets the displayed carousel. | |
| 82 | + | func (x *CarouselIndicatorDots) SetCarousel(CarouselVar *Carousel) { | |
| 83 | + | ||
| 84 | + | xCarouselIndicatorDotsSetCarousel(x.GoPointer(), CarouselVar.GoPointer()) | |
| 85 | + | ||
| 86 | + | } | |
| 87 | + | ||
| 88 | + | func (c *CarouselIndicatorDots) GoPointer() uintptr { | |
| 89 | + | return c.Ptr | |
| 90 | + | } | |
| 91 | + | ||
| 92 | + | func (c *CarouselIndicatorDots) SetGoPointer(ptr uintptr) { | |
| 93 | + | c.Ptr = ptr | |
| 94 | + | } | |
| 95 | + | ||
| 96 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 97 | + | func (x *CarouselIndicatorDots) GetAccessibleRole() gtk.AccessibleRole { | |
| 98 | + | ||
| 99 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 100 | + | ||
| 101 | + | } | |
| 102 | + | ||
| 103 | + | // Resets the accessible @property to its default value. | |
| 104 | + | func (x *CarouselIndicatorDots) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 105 | + | ||
| 106 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 107 | + | ||
| 108 | + | } | |
| 109 | + | ||
| 110 | + | // Resets the accessible @relation to its default value. | |
| 111 | + | func (x *CarouselIndicatorDots) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 112 | + | ||
| 113 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 114 | + | ||
| 115 | + | } | |
| 116 | + | ||
| 117 | + | // Resets the accessible @state to its default value. | |
| 118 | + | func (x *CarouselIndicatorDots) ResetState(StateVar gtk.AccessibleState) { | |
| 119 | + | ||
| 120 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 121 | + | ||
| 122 | + | } | |
| 123 | + | ||
| 124 | + | // Updates a list of accessible properties. | |
| 125 | + | // | |
| 126 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 127 | + | // value types of accessible properties. | |
| 128 | + | // | |
| 129 | + | // This function should be called by `GtkWidget` types whenever | |
| 130 | + | // an accessible property change must be communicated to assistive | |
| 131 | + | // technologies. | |
| 132 | + | // | |
| 133 | + | // Example: | |
| 134 | + | // ```c | |
| 135 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 136 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 137 | + | // | |
| 138 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 139 | + | // -1); | |
| 140 | + | // | |
| 141 | + | // ``` | |
| 142 | + | func (x *CarouselIndicatorDots) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 143 | + | ||
| 144 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 145 | + | ||
| 146 | + | } | |
| 147 | + | ||
| 148 | + | // Updates an array of accessible properties. | |
| 149 | + | // | |
| 150 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 151 | + | // property change must be communicated to assistive technologies. | |
| 152 | + | // | |
| 153 | + | // This function is meant to be used by language bindings. | |
| 154 | + | func (x *CarouselIndicatorDots) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 155 | + | ||
| 156 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 157 | + | ||
| 158 | + | } | |
| 159 | + | ||
| 160 | + | // Updates a list of accessible relations. | |
| 161 | + | // | |
| 162 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 163 | + | // relation change must be communicated to assistive technologies. | |
| 164 | + | // | |
| 165 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 166 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 167 | + | // | |
| 168 | + | // ```c | |
| 169 | + | // gtk_accessible_update_relation (accessible, | |
| 170 | + | // | |
| 171 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 172 | + | // ref1, NULL, | |
| 173 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 174 | + | // ref1, ref2, ref3, NULL, | |
| 175 | + | // -1); | |
| 176 | + | // | |
| 177 | + | // ``` | |
| 178 | + | func (x *CarouselIndicatorDots) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 179 | + | ||
| 180 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 181 | + | ||
| 182 | + | } | |
| 183 | + | ||
| 184 | + | // Updates an array of accessible relations. | |
| 185 | + | // | |
| 186 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 187 | + | // relation change must be communicated to assistive technologies. | |
| 188 | + | // | |
| 189 | + | // This function is meant to be used by language bindings. | |
| 190 | + | func (x *CarouselIndicatorDots) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 191 | + | ||
| 192 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 193 | + | ||
| 194 | + | } | |
| 195 | + | ||
| 196 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 197 | + | // documentation for the value types of accessible states. | |
| 198 | + | // | |
| 199 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 200 | + | // state change must be communicated to assistive technologies. | |
| 201 | + | // | |
| 202 | + | // Example: | |
| 203 | + | // ```c | |
| 204 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 205 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 206 | + | // | |
| 207 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 208 | + | // -1); | |
| 209 | + | // | |
| 210 | + | // ``` | |
| 211 | + | func (x *CarouselIndicatorDots) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 212 | + | ||
| 213 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 214 | + | ||
| 215 | + | } | |
| 216 | + | ||
| 217 | + | // Updates an array of accessible states. | |
| 218 | + | // | |
| 219 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 220 | + | // state change must be communicated to assistive technologies. | |
| 221 | + | // | |
| 222 | + | // This function is meant to be used by language bindings. | |
| 223 | + | func (x *CarouselIndicatorDots) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 224 | + | ||
| 225 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 226 | + | ||
| 227 | + | } | |
| 228 | + | ||
| 229 | + | // Gets the ID of the @buildable object. | |
| 230 | + | // | |
| 231 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 232 | + | // of the <object> tag used to construct the @buildable. | |
| 233 | + | func (x *CarouselIndicatorDots) GetBuildableId() string { | |
| 234 | + | ||
| 235 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 236 | + | ||
| 237 | + | } | |
| 238 | + | ||
| 239 | + | // Retrieves the orientation of the @orientable. | |
| 240 | + | func (x *CarouselIndicatorDots) GetOrientation() gtk.Orientation { | |
| 241 | + | ||
| 242 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 243 | + | ||
| 244 | + | } | |
| 245 | + | ||
| 246 | + | // Sets the orientation of the @orientable. | |
| 247 | + | func (x *CarouselIndicatorDots) SetOrientation(OrientationVar gtk.Orientation) { | |
| 248 | + | ||
| 249 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 250 | + | ||
| 251 | + | } | |
| 252 | + | ||
| 253 | + | func init() { | |
| 254 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 255 | + | if err != nil { | |
| 256 | + | panic(err) | |
| 257 | + | } | |
| 258 | + | ||
| 259 | + | core.PuregoSafeRegister(&xNewCarouselIndicatorDots, lib, "adw_carousel_indicator_dots_new") | |
| 260 | + | ||
| 261 | + | core.PuregoSafeRegister(&xCarouselIndicatorDotsGetCarousel, lib, "adw_carousel_indicator_dots_get_carousel") | |
| 262 | + | core.PuregoSafeRegister(&xCarouselIndicatorDotsSetCarousel, lib, "adw_carousel_indicator_dots_set_carousel") | |
| 263 | + | ||
| 264 | + | } | |
A v4/adw/adw-carousel-indicator-lines.go +263 -0
| @@ -0,0 +1,263 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type CarouselIndicatorLinesClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // A lines indicator for [class@Carousel]. | |
| 16 | + | // | |
| 17 | + | // <picture> | |
| 18 | + | // | |
| 19 | + | // <source srcset="carousel-indicator-dots-lines.png" media="(prefers-color-scheme: dark)"> | |
| 20 | + | // <img src="carousel-indicator-lines.png" alt="carousel-indicator-lines"> | |
| 21 | + | // | |
| 22 | + | // </picture> | |
| 23 | + | // | |
| 24 | + | // The `AdwCarouselIndicatorLines` widget shows a set of lines for each page of | |
| 25 | + | // a given [class@Carousel]. The carousel's active page is shown as another line | |
| 26 | + | // that moves between them to match the carousel's position. | |
| 27 | + | // | |
| 28 | + | // See also [class@CarouselIndicatorDots]. | |
| 29 | + | // | |
| 30 | + | // ## CSS nodes | |
| 31 | + | // | |
| 32 | + | // `AdwCarouselIndicatorLines` has a single CSS node with name | |
| 33 | + | // `carouselindicatorlines`. | |
| 34 | + | type CarouselIndicatorLines struct { | |
| 35 | + | gtk.Widget | |
| 36 | + | } | |
| 37 | + | ||
| 38 | + | func CarouselIndicatorLinesNewFromInternalPtr(ptr uintptr) *CarouselIndicatorLines { | |
| 39 | + | cls := &CarouselIndicatorLines{} | |
| 40 | + | cls.Ptr = ptr | |
| 41 | + | return cls | |
| 42 | + | } | |
| 43 | + | ||
| 44 | + | var xNewCarouselIndicatorLines func() uintptr | |
| 45 | + | ||
| 46 | + | // Creates a new `AdwCarouselIndicatorLines`. | |
| 47 | + | func NewCarouselIndicatorLines() *gtk.Widget { | |
| 48 | + | NewCarouselIndicatorLinesPtr := xNewCarouselIndicatorLines() | |
| 49 | + | if NewCarouselIndicatorLinesPtr == 0 { | |
| 50 | + | return nil | |
| 51 | + | } | |
| 52 | + | ||
| 53 | + | gobject.IncreaseRef(NewCarouselIndicatorLinesPtr) | |
| 54 | + | ||
| 55 | + | NewCarouselIndicatorLinesCls := >k.Widget{} | |
| 56 | + | NewCarouselIndicatorLinesCls.Ptr = NewCarouselIndicatorLinesPtr | |
| 57 | + | return NewCarouselIndicatorLinesCls | |
| 58 | + | } | |
| 59 | + | ||
| 60 | + | var xCarouselIndicatorLinesGetCarousel func(uintptr) uintptr | |
| 61 | + | ||
| 62 | + | // Gets the displayed carousel. | |
| 63 | + | func (x *CarouselIndicatorLines) GetCarousel() *Carousel { | |
| 64 | + | ||
| 65 | + | GetCarouselPtr := xCarouselIndicatorLinesGetCarousel(x.GoPointer()) | |
| 66 | + | if GetCarouselPtr == 0 { | |
| 67 | + | return nil | |
| 68 | + | } | |
| 69 | + | ||
| 70 | + | gobject.IncreaseRef(GetCarouselPtr) | |
| 71 | + | ||
| 72 | + | GetCarouselCls := &Carousel{} | |
| 73 | + | GetCarouselCls.Ptr = GetCarouselPtr | |
| 74 | + | return GetCarouselCls | |
| 75 | + | ||
| 76 | + | } | |
| 77 | + | ||
| 78 | + | var xCarouselIndicatorLinesSetCarousel func(uintptr, uintptr) | |
| 79 | + | ||
| 80 | + | // Sets the displayed carousel. | |
| 81 | + | func (x *CarouselIndicatorLines) SetCarousel(CarouselVar *Carousel) { | |
| 82 | + | ||
| 83 | + | xCarouselIndicatorLinesSetCarousel(x.GoPointer(), CarouselVar.GoPointer()) | |
| 84 | + | ||
| 85 | + | } | |
| 86 | + | ||
| 87 | + | func (c *CarouselIndicatorLines) GoPointer() uintptr { | |
| 88 | + | return c.Ptr | |
| 89 | + | } | |
| 90 | + | ||
| 91 | + | func (c *CarouselIndicatorLines) SetGoPointer(ptr uintptr) { | |
| 92 | + | c.Ptr = ptr | |
| 93 | + | } | |
| 94 | + | ||
| 95 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 96 | + | func (x *CarouselIndicatorLines) GetAccessibleRole() gtk.AccessibleRole { | |
| 97 | + | ||
| 98 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 99 | + | ||
| 100 | + | } | |
| 101 | + | ||
| 102 | + | // Resets the accessible @property to its default value. | |
| 103 | + | func (x *CarouselIndicatorLines) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 104 | + | ||
| 105 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 106 | + | ||
| 107 | + | } | |
| 108 | + | ||
| 109 | + | // Resets the accessible @relation to its default value. | |
| 110 | + | func (x *CarouselIndicatorLines) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 111 | + | ||
| 112 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 113 | + | ||
| 114 | + | } | |
| 115 | + | ||
| 116 | + | // Resets the accessible @state to its default value. | |
| 117 | + | func (x *CarouselIndicatorLines) ResetState(StateVar gtk.AccessibleState) { | |
| 118 | + | ||
| 119 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 120 | + | ||
| 121 | + | } | |
| 122 | + | ||
| 123 | + | // Updates a list of accessible properties. | |
| 124 | + | // | |
| 125 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 126 | + | // value types of accessible properties. | |
| 127 | + | // | |
| 128 | + | // This function should be called by `GtkWidget` types whenever | |
| 129 | + | // an accessible property change must be communicated to assistive | |
| 130 | + | // technologies. | |
| 131 | + | // | |
| 132 | + | // Example: | |
| 133 | + | // ```c | |
| 134 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 135 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 136 | + | // | |
| 137 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 138 | + | // -1); | |
| 139 | + | // | |
| 140 | + | // ``` | |
| 141 | + | func (x *CarouselIndicatorLines) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 142 | + | ||
| 143 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 144 | + | ||
| 145 | + | } | |
| 146 | + | ||
| 147 | + | // Updates an array of accessible properties. | |
| 148 | + | // | |
| 149 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 150 | + | // property change must be communicated to assistive technologies. | |
| 151 | + | // | |
| 152 | + | // This function is meant to be used by language bindings. | |
| 153 | + | func (x *CarouselIndicatorLines) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 154 | + | ||
| 155 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 156 | + | ||
| 157 | + | } | |
| 158 | + | ||
| 159 | + | // Updates a list of accessible relations. | |
| 160 | + | // | |
| 161 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 162 | + | // relation change must be communicated to assistive technologies. | |
| 163 | + | // | |
| 164 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 165 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 166 | + | // | |
| 167 | + | // ```c | |
| 168 | + | // gtk_accessible_update_relation (accessible, | |
| 169 | + | // | |
| 170 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 171 | + | // ref1, NULL, | |
| 172 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 173 | + | // ref1, ref2, ref3, NULL, | |
| 174 | + | // -1); | |
| 175 | + | // | |
| 176 | + | // ``` | |
| 177 | + | func (x *CarouselIndicatorLines) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 178 | + | ||
| 179 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 180 | + | ||
| 181 | + | } | |
| 182 | + | ||
| 183 | + | // Updates an array of accessible relations. | |
| 184 | + | // | |
| 185 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 186 | + | // relation change must be communicated to assistive technologies. | |
| 187 | + | // | |
| 188 | + | // This function is meant to be used by language bindings. | |
| 189 | + | func (x *CarouselIndicatorLines) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 190 | + | ||
| 191 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 192 | + | ||
| 193 | + | } | |
| 194 | + | ||
| 195 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 196 | + | // documentation for the value types of accessible states. | |
| 197 | + | // | |
| 198 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 199 | + | // state change must be communicated to assistive technologies. | |
| 200 | + | // | |
| 201 | + | // Example: | |
| 202 | + | // ```c | |
| 203 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 204 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 205 | + | // | |
| 206 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 207 | + | // -1); | |
| 208 | + | // | |
| 209 | + | // ``` | |
| 210 | + | func (x *CarouselIndicatorLines) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 211 | + | ||
| 212 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 213 | + | ||
| 214 | + | } | |
| 215 | + | ||
| 216 | + | // Updates an array of accessible states. | |
| 217 | + | // | |
| 218 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 219 | + | // state change must be communicated to assistive technologies. | |
| 220 | + | // | |
| 221 | + | // This function is meant to be used by language bindings. | |
| 222 | + | func (x *CarouselIndicatorLines) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 223 | + | ||
| 224 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 225 | + | ||
| 226 | + | } | |
| 227 | + | ||
| 228 | + | // Gets the ID of the @buildable object. | |
| 229 | + | // | |
| 230 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 231 | + | // of the <object> tag used to construct the @buildable. | |
| 232 | + | func (x *CarouselIndicatorLines) GetBuildableId() string { | |
| 233 | + | ||
| 234 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 235 | + | ||
| 236 | + | } | |
| 237 | + | ||
| 238 | + | // Retrieves the orientation of the @orientable. | |
| 239 | + | func (x *CarouselIndicatorLines) GetOrientation() gtk.Orientation { | |
| 240 | + | ||
| 241 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 242 | + | ||
| 243 | + | } | |
| 244 | + | ||
| 245 | + | // Sets the orientation of the @orientable. | |
| 246 | + | func (x *CarouselIndicatorLines) SetOrientation(OrientationVar gtk.Orientation) { | |
| 247 | + | ||
| 248 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 249 | + | ||
| 250 | + | } | |
| 251 | + | ||
| 252 | + | func init() { | |
| 253 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 254 | + | if err != nil { | |
| 255 | + | panic(err) | |
| 256 | + | } | |
| 257 | + | ||
| 258 | + | core.PuregoSafeRegister(&xNewCarouselIndicatorLines, lib, "adw_carousel_indicator_lines_new") | |
| 259 | + | ||
| 260 | + | core.PuregoSafeRegister(&xCarouselIndicatorLinesGetCarousel, lib, "adw_carousel_indicator_lines_get_carousel") | |
| 261 | + | core.PuregoSafeRegister(&xCarouselIndicatorLinesSetCarousel, lib, "adw_carousel_indicator_lines_set_carousel") | |
| 262 | + | ||
| 263 | + | } | |
A v4/adw/adw-carousel.go +565 -0
| @@ -0,0 +1,565 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type CarouselClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | // A paginated scrolling widget. | |
| 17 | + | // | |
| 18 | + | // <picture> | |
| 19 | + | // | |
| 20 | + | // <source srcset="carousel-dark.png" media="(prefers-color-scheme: dark)"> | |
| 21 | + | // <img src="carousel.png" alt="carousel"> | |
| 22 | + | // | |
| 23 | + | // </picture> | |
| 24 | + | // | |
| 25 | + | // The `AdwCarousel` widget can be used to display a set of pages with | |
| 26 | + | // swipe-based navigation between them. | |
| 27 | + | // | |
| 28 | + | // [class@CarouselIndicatorDots] and [class@CarouselIndicatorLines] can be used | |
| 29 | + | // to provide page indicators for `AdwCarousel`. | |
| 30 | + | // | |
| 31 | + | // ## CSS nodes | |
| 32 | + | // | |
| 33 | + | // `AdwCarousel` has a single CSS node with name `carousel`. | |
| 34 | + | type Carousel struct { | |
| 35 | + | gtk.Widget | |
| 36 | + | } | |
| 37 | + | ||
| 38 | + | func CarouselNewFromInternalPtr(ptr uintptr) *Carousel { | |
| 39 | + | cls := &Carousel{} | |
| 40 | + | cls.Ptr = ptr | |
| 41 | + | return cls | |
| 42 | + | } | |
| 43 | + | ||
| 44 | + | var xNewCarousel func() uintptr | |
| 45 | + | ||
| 46 | + | // Creates a new `AdwCarousel`. | |
| 47 | + | func NewCarousel() *gtk.Widget { | |
| 48 | + | NewCarouselPtr := xNewCarousel() | |
| 49 | + | if NewCarouselPtr == 0 { | |
| 50 | + | return nil | |
| 51 | + | } | |
| 52 | + | ||
| 53 | + | gobject.IncreaseRef(NewCarouselPtr) | |
| 54 | + | ||
| 55 | + | NewCarouselCls := >k.Widget{} | |
| 56 | + | NewCarouselCls.Ptr = NewCarouselPtr | |
| 57 | + | return NewCarouselCls | |
| 58 | + | } | |
| 59 | + | ||
| 60 | + | var xCarouselAppend func(uintptr, uintptr) | |
| 61 | + | ||
| 62 | + | // Appends @child to @self. | |
| 63 | + | func (x *Carousel) Append(ChildVar *gtk.Widget) { | |
| 64 | + | ||
| 65 | + | xCarouselAppend(x.GoPointer(), ChildVar.GoPointer()) | |
| 66 | + | ||
| 67 | + | } | |
| 68 | + | ||
| 69 | + | var xCarouselGetAllowLongSwipes func(uintptr) bool | |
| 70 | + | ||
| 71 | + | // Gets whether to allow swiping for more than one page at a time. | |
| 72 | + | func (x *Carousel) GetAllowLongSwipes() bool { | |
| 73 | + | ||
| 74 | + | return xCarouselGetAllowLongSwipes(x.GoPointer()) | |
| 75 | + | ||
| 76 | + | } | |
| 77 | + | ||
| 78 | + | var xCarouselGetAllowMouseDrag func(uintptr) bool | |
| 79 | + | ||
| 80 | + | // Sets whether @self can be dragged with mouse pointer. | |
| 81 | + | func (x *Carousel) GetAllowMouseDrag() bool { | |
| 82 | + | ||
| 83 | + | return xCarouselGetAllowMouseDrag(x.GoPointer()) | |
| 84 | + | ||
| 85 | + | } | |
| 86 | + | ||
| 87 | + | var xCarouselGetAllowScrollWheel func(uintptr) bool | |
| 88 | + | ||
| 89 | + | // Gets whether @self will respond to scroll wheel events. | |
| 90 | + | func (x *Carousel) GetAllowScrollWheel() bool { | |
| 91 | + | ||
| 92 | + | return xCarouselGetAllowScrollWheel(x.GoPointer()) | |
| 93 | + | ||
| 94 | + | } | |
| 95 | + | ||
| 96 | + | var xCarouselGetInteractive func(uintptr) bool | |
| 97 | + | ||
| 98 | + | // Gets whether @self can be navigated. | |
| 99 | + | func (x *Carousel) GetInteractive() bool { | |
| 100 | + | ||
| 101 | + | return xCarouselGetInteractive(x.GoPointer()) | |
| 102 | + | ||
| 103 | + | } | |
| 104 | + | ||
| 105 | + | var xCarouselGetNPages func(uintptr) uint | |
| 106 | + | ||
| 107 | + | // Gets the number of pages in @self. | |
| 108 | + | func (x *Carousel) GetNPages() uint { | |
| 109 | + | ||
| 110 | + | return xCarouselGetNPages(x.GoPointer()) | |
| 111 | + | ||
| 112 | + | } | |
| 113 | + | ||
| 114 | + | var xCarouselGetNthPage func(uintptr, uint) uintptr | |
| 115 | + | ||
| 116 | + | // Gets the page at position @n. | |
| 117 | + | func (x *Carousel) GetNthPage(NVar uint) *gtk.Widget { | |
| 118 | + | ||
| 119 | + | GetNthPagePtr := xCarouselGetNthPage(x.GoPointer(), NVar) | |
| 120 | + | if GetNthPagePtr == 0 { | |
| 121 | + | return nil | |
| 122 | + | } | |
| 123 | + | ||
| 124 | + | gobject.IncreaseRef(GetNthPagePtr) | |
| 125 | + | ||
| 126 | + | GetNthPageCls := >k.Widget{} | |
| 127 | + | GetNthPageCls.Ptr = GetNthPagePtr | |
| 128 | + | return GetNthPageCls | |
| 129 | + | ||
| 130 | + | } | |
| 131 | + | ||
| 132 | + | var xCarouselGetPosition func(uintptr) float64 | |
| 133 | + | ||
| 134 | + | // Gets current scroll position in @self, unitless. | |
| 135 | + | // | |
| 136 | + | // 1 matches 1 page. Use [method@Carousel.scroll_to] for changing it. | |
| 137 | + | func (x *Carousel) GetPosition() float64 { | |
| 138 | + | ||
| 139 | + | return xCarouselGetPosition(x.GoPointer()) | |
| 140 | + | ||
| 141 | + | } | |
| 142 | + | ||
| 143 | + | var xCarouselGetRevealDuration func(uintptr) uint | |
| 144 | + | ||
| 145 | + | // Gets the page reveal duration, in milliseconds. | |
| 146 | + | func (x *Carousel) GetRevealDuration() uint { | |
| 147 | + | ||
| 148 | + | return xCarouselGetRevealDuration(x.GoPointer()) | |
| 149 | + | ||
| 150 | + | } | |
| 151 | + | ||
| 152 | + | var xCarouselGetScrollParams func(uintptr) *SpringParams | |
| 153 | + | ||
| 154 | + | // Gets the scroll animation spring parameters for @self. | |
| 155 | + | func (x *Carousel) GetScrollParams() *SpringParams { | |
| 156 | + | ||
| 157 | + | return xCarouselGetScrollParams(x.GoPointer()) | |
| 158 | + | ||
| 159 | + | } | |
| 160 | + | ||
| 161 | + | var xCarouselGetSpacing func(uintptr) uint | |
| 162 | + | ||
| 163 | + | // Gets spacing between pages in pixels. | |
| 164 | + | func (x *Carousel) GetSpacing() uint { | |
| 165 | + | ||
| 166 | + | return xCarouselGetSpacing(x.GoPointer()) | |
| 167 | + | ||
| 168 | + | } | |
| 169 | + | ||
| 170 | + | var xCarouselInsert func(uintptr, uintptr, int32) | |
| 171 | + | ||
| 172 | + | // Inserts @child into @self at position @position. | |
| 173 | + | // | |
| 174 | + | // If position is -1, or larger than the number of pages, | |
| 175 | + | // @child will be appended to the end. | |
| 176 | + | func (x *Carousel) Insert(ChildVar *gtk.Widget, PositionVar int32) { | |
| 177 | + | ||
| 178 | + | xCarouselInsert(x.GoPointer(), ChildVar.GoPointer(), PositionVar) | |
| 179 | + | ||
| 180 | + | } | |
| 181 | + | ||
| 182 | + | var xCarouselPrepend func(uintptr, uintptr) | |
| 183 | + | ||
| 184 | + | // Prepends @child to @self. | |
| 185 | + | func (x *Carousel) Prepend(ChildVar *gtk.Widget) { | |
| 186 | + | ||
| 187 | + | xCarouselPrepend(x.GoPointer(), ChildVar.GoPointer()) | |
| 188 | + | ||
| 189 | + | } | |
| 190 | + | ||
| 191 | + | var xCarouselRemove func(uintptr, uintptr) | |
| 192 | + | ||
| 193 | + | // Removes @child from @self. | |
| 194 | + | func (x *Carousel) Remove(ChildVar *gtk.Widget) { | |
| 195 | + | ||
| 196 | + | xCarouselRemove(x.GoPointer(), ChildVar.GoPointer()) | |
| 197 | + | ||
| 198 | + | } | |
| 199 | + | ||
| 200 | + | var xCarouselReorder func(uintptr, uintptr, int32) | |
| 201 | + | ||
| 202 | + | // Moves @child into position @position. | |
| 203 | + | // | |
| 204 | + | // If position is -1, or larger than the number of pages, @child will be moved | |
| 205 | + | // at the end. | |
| 206 | + | func (x *Carousel) Reorder(ChildVar *gtk.Widget, PositionVar int32) { | |
| 207 | + | ||
| 208 | + | xCarouselReorder(x.GoPointer(), ChildVar.GoPointer(), PositionVar) | |
| 209 | + | ||
| 210 | + | } | |
| 211 | + | ||
| 212 | + | var xCarouselScrollTo func(uintptr, uintptr, bool) | |
| 213 | + | ||
| 214 | + | // Scrolls to @widget. | |
| 215 | + | // | |
| 216 | + | // If @animate is `TRUE`, the transition will be animated. | |
| 217 | + | func (x *Carousel) ScrollTo(WidgetVar *gtk.Widget, AnimateVar bool) { | |
| 218 | + | ||
| 219 | + | xCarouselScrollTo(x.GoPointer(), WidgetVar.GoPointer(), AnimateVar) | |
| 220 | + | ||
| 221 | + | } | |
| 222 | + | ||
| 223 | + | var xCarouselSetAllowLongSwipes func(uintptr, bool) | |
| 224 | + | ||
| 225 | + | // Sets whether to allow swiping for more than one page at a time. | |
| 226 | + | // | |
| 227 | + | // If @allow_long_swipes is `FALSE`, each swipe can only move to the adjacent | |
| 228 | + | // pages. | |
| 229 | + | func (x *Carousel) SetAllowLongSwipes(AllowLongSwipesVar bool) { | |
| 230 | + | ||
| 231 | + | xCarouselSetAllowLongSwipes(x.GoPointer(), AllowLongSwipesVar) | |
| 232 | + | ||
| 233 | + | } | |
| 234 | + | ||
| 235 | + | var xCarouselSetAllowMouseDrag func(uintptr, bool) | |
| 236 | + | ||
| 237 | + | // Sets whether @self can be dragged with mouse pointer. | |
| 238 | + | // | |
| 239 | + | // If @allow_mouse_drag is `FALSE`, dragging is only available on touch. | |
| 240 | + | func (x *Carousel) SetAllowMouseDrag(AllowMouseDragVar bool) { | |
| 241 | + | ||
| 242 | + | xCarouselSetAllowMouseDrag(x.GoPointer(), AllowMouseDragVar) | |
| 243 | + | ||
| 244 | + | } | |
| 245 | + | ||
| 246 | + | var xCarouselSetAllowScrollWheel func(uintptr, bool) | |
| 247 | + | ||
| 248 | + | // Sets whether @self will respond to scroll wheel events. | |
| 249 | + | // | |
| 250 | + | // If @allow_scroll_wheel is `FALSE`, wheel events will be ignored. | |
| 251 | + | func (x *Carousel) SetAllowScrollWheel(AllowScrollWheelVar bool) { | |
| 252 | + | ||
| 253 | + | xCarouselSetAllowScrollWheel(x.GoPointer(), AllowScrollWheelVar) | |
| 254 | + | ||
| 255 | + | } | |
| 256 | + | ||
| 257 | + | var xCarouselSetInteractive func(uintptr, bool) | |
| 258 | + | ||
| 259 | + | // Sets whether @self can be navigated. | |
| 260 | + | // | |
| 261 | + | // This can be used to temporarily disable the carousel to only allow navigating | |
| 262 | + | // it in a certain state. | |
| 263 | + | func (x *Carousel) SetInteractive(InteractiveVar bool) { | |
| 264 | + | ||
| 265 | + | xCarouselSetInteractive(x.GoPointer(), InteractiveVar) | |
| 266 | + | ||
| 267 | + | } | |
| 268 | + | ||
| 269 | + | var xCarouselSetRevealDuration func(uintptr, uint) | |
| 270 | + | ||
| 271 | + | // Sets the page reveal duration, in milliseconds. | |
| 272 | + | // | |
| 273 | + | // Reveal duration is used when animating adding or removing pages. | |
| 274 | + | func (x *Carousel) SetRevealDuration(RevealDurationVar uint) { | |
| 275 | + | ||
| 276 | + | xCarouselSetRevealDuration(x.GoPointer(), RevealDurationVar) | |
| 277 | + | ||
| 278 | + | } | |
| 279 | + | ||
| 280 | + | var xCarouselSetScrollParams func(uintptr, *SpringParams) | |
| 281 | + | ||
| 282 | + | // Sets the scroll animation spring parameters for @self. | |
| 283 | + | // | |
| 284 | + | // The default value is equivalent to: | |
| 285 | + | // | |
| 286 | + | // ```c | |
| 287 | + | // adw_spring_params_new (1, 0.5, 500) | |
| 288 | + | // ``` | |
| 289 | + | func (x *Carousel) SetScrollParams(ParamsVar *SpringParams) { | |
| 290 | + | ||
| 291 | + | xCarouselSetScrollParams(x.GoPointer(), ParamsVar) | |
| 292 | + | ||
| 293 | + | } | |
| 294 | + | ||
| 295 | + | var xCarouselSetSpacing func(uintptr, uint) | |
| 296 | + | ||
| 297 | + | // Sets spacing between pages in pixels. | |
| 298 | + | func (x *Carousel) SetSpacing(SpacingVar uint) { | |
| 299 | + | ||
| 300 | + | xCarouselSetSpacing(x.GoPointer(), SpacingVar) | |
| 301 | + | ||
| 302 | + | } | |
| 303 | + | ||
| 304 | + | func (c *Carousel) GoPointer() uintptr { | |
| 305 | + | return c.Ptr | |
| 306 | + | } | |
| 307 | + | ||
| 308 | + | func (c *Carousel) SetGoPointer(ptr uintptr) { | |
| 309 | + | c.Ptr = ptr | |
| 310 | + | } | |
| 311 | + | ||
| 312 | + | // This signal is emitted after a page has been changed. | |
| 313 | + | // | |
| 314 | + | // It can be used to implement "infinite scrolling" by amending the pages | |
| 315 | + | // after every scroll. Note that an empty carousel is indicated by | |
| 316 | + | // `(int)index == -1`. | |
| 317 | + | func (x *Carousel) ConnectPageChanged(cb func(Carousel, uint)) { | |
| 318 | + | fcb := func(clsPtr uintptr, IndexVarp uint) { | |
| 319 | + | fa := Carousel{} | |
| 320 | + | fa.Ptr = clsPtr | |
| 321 | + | ||
| 322 | + | cb(fa, IndexVarp) | |
| 323 | + | ||
| 324 | + | } | |
| 325 | + | gobject.ObjectConnect(x.GoPointer(), "signal::page-changed", purego.NewCallback(fcb)) | |
| 326 | + | } | |
| 327 | + | ||
| 328 | + | // Gets the progress @self will snap back to after the gesture is canceled. | |
| 329 | + | func (x *Carousel) GetCancelProgress() float64 { | |
| 330 | + | ||
| 331 | + | return XAdwSwipeableGetCancelProgress(x.GoPointer()) | |
| 332 | + | ||
| 333 | + | } | |
| 334 | + | ||
| 335 | + | // Gets the swipe distance of @self. | |
| 336 | + | // | |
| 337 | + | // This corresponds to how many pixels 1 unit represents. | |
| 338 | + | func (x *Carousel) GetDistance() float64 { | |
| 339 | + | ||
| 340 | + | return XAdwSwipeableGetDistance(x.GoPointer()) | |
| 341 | + | ||
| 342 | + | } | |
| 343 | + | ||
| 344 | + | // Gets the current progress of @self. | |
| 345 | + | func (x *Carousel) GetProgress() float64 { | |
| 346 | + | ||
| 347 | + | return XAdwSwipeableGetProgress(x.GoPointer()) | |
| 348 | + | ||
| 349 | + | } | |
| 350 | + | ||
| 351 | + | // Gets the snap points of @self. | |
| 352 | + | // | |
| 353 | + | // Each snap point represents a progress value that is considered acceptable to | |
| 354 | + | // end the swipe on. | |
| 355 | + | func (x *Carousel) GetSnapPoints(NSnapPointsVar int32) uintptr { | |
| 356 | + | ||
| 357 | + | return XAdwSwipeableGetSnapPoints(x.GoPointer(), NSnapPointsVar) | |
| 358 | + | ||
| 359 | + | } | |
| 360 | + | ||
| 361 | + | // Gets the area @self can start a swipe from for the given direction and | |
| 362 | + | // gesture type. | |
| 363 | + | // | |
| 364 | + | // This can be used to restrict swipes to only be possible from a certain area, | |
| 365 | + | // for example, to only allow edge swipes, or to have a draggable element and | |
| 366 | + | // ignore swipes elsewhere. | |
| 367 | + | // | |
| 368 | + | // If not implemented, the default implementation returns the allocation of | |
| 369 | + | // @self, allowing swipes from anywhere. | |
| 370 | + | func (x *Carousel) GetSwipeArea(NavigationDirectionVar NavigationDirection, IsDragVar bool, RectVar *gdk.Rectangle) { | |
| 371 | + | ||
| 372 | + | XAdwSwipeableGetSwipeArea(x.GoPointer(), NavigationDirectionVar, IsDragVar, RectVar) | |
| 373 | + | ||
| 374 | + | } | |
| 375 | + | ||
| 376 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 377 | + | func (x *Carousel) GetAccessibleRole() gtk.AccessibleRole { | |
| 378 | + | ||
| 379 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 380 | + | ||
| 381 | + | } | |
| 382 | + | ||
| 383 | + | // Resets the accessible @property to its default value. | |
| 384 | + | func (x *Carousel) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 385 | + | ||
| 386 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 387 | + | ||
| 388 | + | } | |
| 389 | + | ||
| 390 | + | // Resets the accessible @relation to its default value. | |
| 391 | + | func (x *Carousel) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 392 | + | ||
| 393 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 394 | + | ||
| 395 | + | } | |
| 396 | + | ||
| 397 | + | // Resets the accessible @state to its default value. | |
| 398 | + | func (x *Carousel) ResetState(StateVar gtk.AccessibleState) { | |
| 399 | + | ||
| 400 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 401 | + | ||
| 402 | + | } | |
| 403 | + | ||
| 404 | + | // Updates a list of accessible properties. | |
| 405 | + | // | |
| 406 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 407 | + | // value types of accessible properties. | |
| 408 | + | // | |
| 409 | + | // This function should be called by `GtkWidget` types whenever | |
| 410 | + | // an accessible property change must be communicated to assistive | |
| 411 | + | // technologies. | |
| 412 | + | // | |
| 413 | + | // Example: | |
| 414 | + | // ```c | |
| 415 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 416 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 417 | + | // | |
| 418 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 419 | + | // -1); | |
| 420 | + | // | |
| 421 | + | // ``` | |
| 422 | + | func (x *Carousel) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 423 | + | ||
| 424 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 425 | + | ||
| 426 | + | } | |
| 427 | + | ||
| 428 | + | // Updates an array of accessible properties. | |
| 429 | + | // | |
| 430 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 431 | + | // property change must be communicated to assistive technologies. | |
| 432 | + | // | |
| 433 | + | // This function is meant to be used by language bindings. | |
| 434 | + | func (x *Carousel) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 435 | + | ||
| 436 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 437 | + | ||
| 438 | + | } | |
| 439 | + | ||
| 440 | + | // Updates a list of accessible relations. | |
| 441 | + | // | |
| 442 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 443 | + | // relation change must be communicated to assistive technologies. | |
| 444 | + | // | |
| 445 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 446 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 447 | + | // | |
| 448 | + | // ```c | |
| 449 | + | // gtk_accessible_update_relation (accessible, | |
| 450 | + | // | |
| 451 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 452 | + | // ref1, NULL, | |
| 453 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 454 | + | // ref1, ref2, ref3, NULL, | |
| 455 | + | // -1); | |
| 456 | + | // | |
| 457 | + | // ``` | |
| 458 | + | func (x *Carousel) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 459 | + | ||
| 460 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 461 | + | ||
| 462 | + | } | |
| 463 | + | ||
| 464 | + | // Updates an array of accessible relations. | |
| 465 | + | // | |
| 466 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 467 | + | // relation change must be communicated to assistive technologies. | |
| 468 | + | // | |
| 469 | + | // This function is meant to be used by language bindings. | |
| 470 | + | func (x *Carousel) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 471 | + | ||
| 472 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 473 | + | ||
| 474 | + | } | |
| 475 | + | ||
| 476 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 477 | + | // documentation for the value types of accessible states. | |
| 478 | + | // | |
| 479 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 480 | + | // state change must be communicated to assistive technologies. | |
| 481 | + | // | |
| 482 | + | // Example: | |
| 483 | + | // ```c | |
| 484 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 485 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 486 | + | // | |
| 487 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 488 | + | // -1); | |
| 489 | + | // | |
| 490 | + | // ``` | |
| 491 | + | func (x *Carousel) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 492 | + | ||
| 493 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 494 | + | ||
| 495 | + | } | |
| 496 | + | ||
| 497 | + | // Updates an array of accessible states. | |
| 498 | + | // | |
| 499 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 500 | + | // state change must be communicated to assistive technologies. | |
| 501 | + | // | |
| 502 | + | // This function is meant to be used by language bindings. | |
| 503 | + | func (x *Carousel) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 504 | + | ||
| 505 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 506 | + | ||
| 507 | + | } | |
| 508 | + | ||
| 509 | + | // Gets the ID of the @buildable object. | |
| 510 | + | // | |
| 511 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 512 | + | // of the <object> tag used to construct the @buildable. | |
| 513 | + | func (x *Carousel) GetBuildableId() string { | |
| 514 | + | ||
| 515 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 516 | + | ||
| 517 | + | } | |
| 518 | + | ||
| 519 | + | // Retrieves the orientation of the @orientable. | |
| 520 | + | func (x *Carousel) GetOrientation() gtk.Orientation { | |
| 521 | + | ||
| 522 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 523 | + | ||
| 524 | + | } | |
| 525 | + | ||
| 526 | + | // Sets the orientation of the @orientable. | |
| 527 | + | func (x *Carousel) SetOrientation(OrientationVar gtk.Orientation) { | |
| 528 | + | ||
| 529 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 530 | + | ||
| 531 | + | } | |
| 532 | + | ||
| 533 | + | func init() { | |
| 534 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 535 | + | if err != nil { | |
| 536 | + | panic(err) | |
| 537 | + | } | |
| 538 | + | ||
| 539 | + | core.PuregoSafeRegister(&xNewCarousel, lib, "adw_carousel_new") | |
| 540 | + | ||
| 541 | + | core.PuregoSafeRegister(&xCarouselAppend, lib, "adw_carousel_append") | |
| 542 | + | core.PuregoSafeRegister(&xCarouselGetAllowLongSwipes, lib, "adw_carousel_get_allow_long_swipes") | |
| 543 | + | core.PuregoSafeRegister(&xCarouselGetAllowMouseDrag, lib, "adw_carousel_get_allow_mouse_drag") | |
| 544 | + | core.PuregoSafeRegister(&xCarouselGetAllowScrollWheel, lib, "adw_carousel_get_allow_scroll_wheel") | |
| 545 | + | core.PuregoSafeRegister(&xCarouselGetInteractive, lib, "adw_carousel_get_interactive") | |
| 546 | + | core.PuregoSafeRegister(&xCarouselGetNPages, lib, "adw_carousel_get_n_pages") | |
| 547 | + | core.PuregoSafeRegister(&xCarouselGetNthPage, lib, "adw_carousel_get_nth_page") | |
| 548 | + | core.PuregoSafeRegister(&xCarouselGetPosition, lib, "adw_carousel_get_position") | |
| 549 | + | core.PuregoSafeRegister(&xCarouselGetRevealDuration, lib, "adw_carousel_get_reveal_duration") | |
| 550 | + | core.PuregoSafeRegister(&xCarouselGetScrollParams, lib, "adw_carousel_get_scroll_params") | |
| 551 | + | core.PuregoSafeRegister(&xCarouselGetSpacing, lib, "adw_carousel_get_spacing") | |
| 552 | + | core.PuregoSafeRegister(&xCarouselInsert, lib, "adw_carousel_insert") | |
| 553 | + | core.PuregoSafeRegister(&xCarouselPrepend, lib, "adw_carousel_prepend") | |
| 554 | + | core.PuregoSafeRegister(&xCarouselRemove, lib, "adw_carousel_remove") | |
| 555 | + | core.PuregoSafeRegister(&xCarouselReorder, lib, "adw_carousel_reorder") | |
| 556 | + | core.PuregoSafeRegister(&xCarouselScrollTo, lib, "adw_carousel_scroll_to") | |
| 557 | + | core.PuregoSafeRegister(&xCarouselSetAllowLongSwipes, lib, "adw_carousel_set_allow_long_swipes") | |
| 558 | + | core.PuregoSafeRegister(&xCarouselSetAllowMouseDrag, lib, "adw_carousel_set_allow_mouse_drag") | |
| 559 | + | core.PuregoSafeRegister(&xCarouselSetAllowScrollWheel, lib, "adw_carousel_set_allow_scroll_wheel") | |
| 560 | + | core.PuregoSafeRegister(&xCarouselSetInteractive, lib, "adw_carousel_set_interactive") | |
| 561 | + | core.PuregoSafeRegister(&xCarouselSetRevealDuration, lib, "adw_carousel_set_reveal_duration") | |
| 562 | + | core.PuregoSafeRegister(&xCarouselSetScrollParams, lib, "adw_carousel_set_scroll_params") | |
| 563 | + | core.PuregoSafeRegister(&xCarouselSetSpacing, lib, "adw_carousel_set_spacing") | |
| 564 | + | ||
| 565 | + | } | |
A v4/adw/adw-clamp-layout.go +150 -0
| @@ -0,0 +1,150 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 8 | + | ) | |
| 9 | + | ||
| 10 | + | type ClampLayoutClass struct { | |
| 11 | + | ParentClass uintptr | |
| 12 | + | } | |
| 13 | + | ||
| 14 | + | // A layout manager constraining its children to a given size. | |
| 15 | + | // | |
| 16 | + | // <picture> | |
| 17 | + | // | |
| 18 | + | // <source srcset="clamp-wide-dark.png" media="(prefers-color-scheme: dark)"> | |
| 19 | + | // <img src="clamp-wide.png" alt="clamp-wide"> | |
| 20 | + | // | |
| 21 | + | // </picture> | |
| 22 | + | // <picture> | |
| 23 | + | // | |
| 24 | + | // <source srcset="clamp-narrow-dark.png" media="(prefers-color-scheme: dark)"> | |
| 25 | + | // <img src="clamp-narrow.png" alt="clamp-narrow"> | |
| 26 | + | // | |
| 27 | + | // </picture> | |
| 28 | + | // | |
| 29 | + | // `AdwClampLayout` constraints the size of the widgets it contains to a given | |
| 30 | + | // maximum size. It will constrain the width if it is horizontal, or the height | |
| 31 | + | // if it is vertical. The expansion of the children from their minimum to their | |
| 32 | + | // maximum size is eased out for a smooth transition. | |
| 33 | + | // | |
| 34 | + | // If a child requires more than the requested maximum size, it will be | |
| 35 | + | // allocated the minimum size it can fit in instead. | |
| 36 | + | // | |
| 37 | + | // Each child will get the style classes .large when it reached its maximum | |
| 38 | + | // size, .small when it's allocated the full size, .medium in-between, or none | |
| 39 | + | // if it hasn't been allocated yet. | |
| 40 | + | type ClampLayout struct { | |
| 41 | + | gtk.LayoutManager | |
| 42 | + | } | |
| 43 | + | ||
| 44 | + | func ClampLayoutNewFromInternalPtr(ptr uintptr) *ClampLayout { | |
| 45 | + | cls := &ClampLayout{} | |
| 46 | + | cls.Ptr = ptr | |
| 47 | + | return cls | |
| 48 | + | } | |
| 49 | + | ||
| 50 | + | var xNewClampLayout func() uintptr | |
| 51 | + | ||
| 52 | + | // Creates a new `AdwClampLayout`. | |
| 53 | + | func NewClampLayout() *gtk.LayoutManager { | |
| 54 | + | NewClampLayoutPtr := xNewClampLayout() | |
| 55 | + | if NewClampLayoutPtr == 0 { | |
| 56 | + | return nil | |
| 57 | + | } | |
| 58 | + | ||
| 59 | + | NewClampLayoutCls := >k.LayoutManager{} | |
| 60 | + | NewClampLayoutCls.Ptr = NewClampLayoutPtr | |
| 61 | + | return NewClampLayoutCls | |
| 62 | + | } | |
| 63 | + | ||
| 64 | + | var xClampLayoutGetMaximumSize func(uintptr) int32 | |
| 65 | + | ||
| 66 | + | // Gets the maximum size allocated to the children. | |
| 67 | + | func (x *ClampLayout) GetMaximumSize() int32 { | |
| 68 | + | ||
| 69 | + | return xClampLayoutGetMaximumSize(x.GoPointer()) | |
| 70 | + | ||
| 71 | + | } | |
| 72 | + | ||
| 73 | + | var xClampLayoutGetTighteningThreshold func(uintptr) int32 | |
| 74 | + | ||
| 75 | + | // Gets the size above which the children are clamped. | |
| 76 | + | func (x *ClampLayout) GetTighteningThreshold() int32 { | |
| 77 | + | ||
| 78 | + | return xClampLayoutGetTighteningThreshold(x.GoPointer()) | |
| 79 | + | ||
| 80 | + | } | |
| 81 | + | ||
| 82 | + | var xClampLayoutSetMaximumSize func(uintptr, int32) | |
| 83 | + | ||
| 84 | + | // Sets the maximum size allocated to the children. | |
| 85 | + | // | |
| 86 | + | // It is the width if the layout is horizontal, or the height if it is vertical. | |
| 87 | + | func (x *ClampLayout) SetMaximumSize(MaximumSizeVar int32) { | |
| 88 | + | ||
| 89 | + | xClampLayoutSetMaximumSize(x.GoPointer(), MaximumSizeVar) | |
| 90 | + | ||
| 91 | + | } | |
| 92 | + | ||
| 93 | + | var xClampLayoutSetTighteningThreshold func(uintptr, int32) | |
| 94 | + | ||
| 95 | + | // Sets the size above which the children are clamped. | |
| 96 | + | // | |
| 97 | + | // Starting from this size, the layout will tighten its grip on the children, | |
| 98 | + | // slowly allocating less and less of the available size up to the maximum | |
| 99 | + | // allocated size. Below that threshold and below the maximum size, the children | |
| 100 | + | // will be allocated all the available size. | |
| 101 | + | // | |
| 102 | + | // If the threshold is greater than the maximum size to allocate to the | |
| 103 | + | // children, they will be allocated the whole size up to the maximum. If the | |
| 104 | + | // threshold is lower than the minimum size to allocate to the children, that | |
| 105 | + | // size will be used as the tightening threshold. | |
| 106 | + | // | |
| 107 | + | // Effectively, tightening the grip on a child before it reaches its maximum | |
| 108 | + | // size makes transitions to and from the maximum size smoother when resizing. | |
| 109 | + | func (x *ClampLayout) SetTighteningThreshold(TighteningThresholdVar int32) { | |
| 110 | + | ||
| 111 | + | xClampLayoutSetTighteningThreshold(x.GoPointer(), TighteningThresholdVar) | |
| 112 | + | ||
| 113 | + | } | |
| 114 | + | ||
| 115 | + | func (c *ClampLayout) GoPointer() uintptr { | |
| 116 | + | return c.Ptr | |
| 117 | + | } | |
| 118 | + | ||
| 119 | + | func (c *ClampLayout) SetGoPointer(ptr uintptr) { | |
| 120 | + | c.Ptr = ptr | |
| 121 | + | } | |
| 122 | + | ||
| 123 | + | // Retrieves the orientation of the @orientable. | |
| 124 | + | func (x *ClampLayout) GetOrientation() gtk.Orientation { | |
| 125 | + | ||
| 126 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 127 | + | ||
| 128 | + | } | |
| 129 | + | ||
| 130 | + | // Sets the orientation of the @orientable. | |
| 131 | + | func (x *ClampLayout) SetOrientation(OrientationVar gtk.Orientation) { | |
| 132 | + | ||
| 133 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 134 | + | ||
| 135 | + | } | |
| 136 | + | ||
| 137 | + | func init() { | |
| 138 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 139 | + | if err != nil { | |
| 140 | + | panic(err) | |
| 141 | + | } | |
| 142 | + | ||
| 143 | + | core.PuregoSafeRegister(&xNewClampLayout, lib, "adw_clamp_layout_new") | |
| 144 | + | ||
| 145 | + | core.PuregoSafeRegister(&xClampLayoutGetMaximumSize, lib, "adw_clamp_layout_get_maximum_size") | |
| 146 | + | core.PuregoSafeRegister(&xClampLayoutGetTighteningThreshold, lib, "adw_clamp_layout_get_tightening_threshold") | |
| 147 | + | core.PuregoSafeRegister(&xClampLayoutSetMaximumSize, lib, "adw_clamp_layout_set_maximum_size") | |
| 148 | + | core.PuregoSafeRegister(&xClampLayoutSetTighteningThreshold, lib, "adw_clamp_layout_set_tightening_threshold") | |
| 149 | + | ||
| 150 | + | } | |
A v4/adw/adw-clamp-scrollable.go +398 -0
| @@ -0,0 +1,398 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type ClampScrollableClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // A scrollable [class@Clamp]. | |
| 16 | + | // | |
| 17 | + | // `AdwClampScrollable` is a variant of [class@Clamp] that implements the | |
| 18 | + | // [iface@Gtk.Scrollable] interface. | |
| 19 | + | // | |
| 20 | + | // The primary use case for `AdwClampScrollable` is clamping | |
| 21 | + | // [class@Gtk.ListView]. | |
| 22 | + | type ClampScrollable struct { | |
| 23 | + | gtk.Widget | |
| 24 | + | } | |
| 25 | + | ||
| 26 | + | func ClampScrollableNewFromInternalPtr(ptr uintptr) *ClampScrollable { | |
| 27 | + | cls := &ClampScrollable{} | |
| 28 | + | cls.Ptr = ptr | |
| 29 | + | return cls | |
| 30 | + | } | |
| 31 | + | ||
| 32 | + | var xNewClampScrollable func() uintptr | |
| 33 | + | ||
| 34 | + | // Creates a new `AdwClampScrollable`. | |
| 35 | + | func NewClampScrollable() *gtk.Widget { | |
| 36 | + | NewClampScrollablePtr := xNewClampScrollable() | |
| 37 | + | if NewClampScrollablePtr == 0 { | |
| 38 | + | return nil | |
| 39 | + | } | |
| 40 | + | ||
| 41 | + | gobject.IncreaseRef(NewClampScrollablePtr) | |
| 42 | + | ||
| 43 | + | NewClampScrollableCls := >k.Widget{} | |
| 44 | + | NewClampScrollableCls.Ptr = NewClampScrollablePtr | |
| 45 | + | return NewClampScrollableCls | |
| 46 | + | } | |
| 47 | + | ||
| 48 | + | var xClampScrollableGetChild func(uintptr) uintptr | |
| 49 | + | ||
| 50 | + | // Gets the child widget of @self. | |
| 51 | + | func (x *ClampScrollable) GetChild() *gtk.Widget { | |
| 52 | + | ||
| 53 | + | GetChildPtr := xClampScrollableGetChild(x.GoPointer()) | |
| 54 | + | if GetChildPtr == 0 { | |
| 55 | + | return nil | |
| 56 | + | } | |
| 57 | + | ||
| 58 | + | gobject.IncreaseRef(GetChildPtr) | |
| 59 | + | ||
| 60 | + | GetChildCls := >k.Widget{} | |
| 61 | + | GetChildCls.Ptr = GetChildPtr | |
| 62 | + | return GetChildCls | |
| 63 | + | ||
| 64 | + | } | |
| 65 | + | ||
| 66 | + | var xClampScrollableGetMaximumSize func(uintptr) int32 | |
| 67 | + | ||
| 68 | + | // Gets the maximum size allocated to the child. | |
| 69 | + | func (x *ClampScrollable) GetMaximumSize() int32 { | |
| 70 | + | ||
| 71 | + | return xClampScrollableGetMaximumSize(x.GoPointer()) | |
| 72 | + | ||
| 73 | + | } | |
| 74 | + | ||
| 75 | + | var xClampScrollableGetTighteningThreshold func(uintptr) int32 | |
| 76 | + | ||
| 77 | + | // Gets the size above which the child is clamped. | |
| 78 | + | func (x *ClampScrollable) GetTighteningThreshold() int32 { | |
| 79 | + | ||
| 80 | + | return xClampScrollableGetTighteningThreshold(x.GoPointer()) | |
| 81 | + | ||
| 82 | + | } | |
| 83 | + | ||
| 84 | + | var xClampScrollableSetChild func(uintptr, uintptr) | |
| 85 | + | ||
| 86 | + | // Sets the child widget of @self. | |
| 87 | + | func (x *ClampScrollable) SetChild(ChildVar *gtk.Widget) { | |
| 88 | + | ||
| 89 | + | xClampScrollableSetChild(x.GoPointer(), ChildVar.GoPointer()) | |
| 90 | + | ||
| 91 | + | } | |
| 92 | + | ||
| 93 | + | var xClampScrollableSetMaximumSize func(uintptr, int32) | |
| 94 | + | ||
| 95 | + | // Sets the maximum size allocated to the child. | |
| 96 | + | // | |
| 97 | + | // It is the width if the clamp is horizontal, or the height if it is vertical. | |
| 98 | + | func (x *ClampScrollable) SetMaximumSize(MaximumSizeVar int32) { | |
| 99 | + | ||
| 100 | + | xClampScrollableSetMaximumSize(x.GoPointer(), MaximumSizeVar) | |
| 101 | + | ||
| 102 | + | } | |
| 103 | + | ||
| 104 | + | var xClampScrollableSetTighteningThreshold func(uintptr, int32) | |
| 105 | + | ||
| 106 | + | // Sets the size above which the child is clamped. | |
| 107 | + | // | |
| 108 | + | // Starting from this size, the clamp will tighten its grip on the child, slowly | |
| 109 | + | // allocating less and less of the available size up to the maximum allocated | |
| 110 | + | // size. Below that threshold and below the maximum width, the child will be | |
| 111 | + | // allocated all the available size. | |
| 112 | + | // | |
| 113 | + | // If the threshold is greater than the maximum size to allocate to the child, | |
| 114 | + | // the child will be allocated all the width up to the maximum. If the threshold | |
| 115 | + | // is lower than the minimum size to allocate to the child, that size will be | |
| 116 | + | // used as the tightening threshold. | |
| 117 | + | // | |
| 118 | + | // Effectively, tightening the grip on the child before it reaches its maximum | |
| 119 | + | // size makes transitions to and from the maximum size smoother when resizing. | |
| 120 | + | func (x *ClampScrollable) SetTighteningThreshold(TighteningThresholdVar int32) { | |
| 121 | + | ||
| 122 | + | xClampScrollableSetTighteningThreshold(x.GoPointer(), TighteningThresholdVar) | |
| 123 | + | ||
| 124 | + | } | |
| 125 | + | ||
| 126 | + | func (c *ClampScrollable) GoPointer() uintptr { | |
| 127 | + | return c.Ptr | |
| 128 | + | } | |
| 129 | + | ||
| 130 | + | func (c *ClampScrollable) SetGoPointer(ptr uintptr) { | |
| 131 | + | c.Ptr = ptr | |
| 132 | + | } | |
| 133 | + | ||
| 134 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 135 | + | func (x *ClampScrollable) GetAccessibleRole() gtk.AccessibleRole { | |
| 136 | + | ||
| 137 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 138 | + | ||
| 139 | + | } | |
| 140 | + | ||
| 141 | + | // Resets the accessible @property to its default value. | |
| 142 | + | func (x *ClampScrollable) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 143 | + | ||
| 144 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 145 | + | ||
| 146 | + | } | |
| 147 | + | ||
| 148 | + | // Resets the accessible @relation to its default value. | |
| 149 | + | func (x *ClampScrollable) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 150 | + | ||
| 151 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 152 | + | ||
| 153 | + | } | |
| 154 | + | ||
| 155 | + | // Resets the accessible @state to its default value. | |
| 156 | + | func (x *ClampScrollable) ResetState(StateVar gtk.AccessibleState) { | |
| 157 | + | ||
| 158 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 159 | + | ||
| 160 | + | } | |
| 161 | + | ||
| 162 | + | // Updates a list of accessible properties. | |
| 163 | + | // | |
| 164 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 165 | + | // value types of accessible properties. | |
| 166 | + | // | |
| 167 | + | // This function should be called by `GtkWidget` types whenever | |
| 168 | + | // an accessible property change must be communicated to assistive | |
| 169 | + | // technologies. | |
| 170 | + | // | |
| 171 | + | // Example: | |
| 172 | + | // ```c | |
| 173 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 174 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 175 | + | // | |
| 176 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 177 | + | // -1); | |
| 178 | + | // | |
| 179 | + | // ``` | |
| 180 | + | func (x *ClampScrollable) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 181 | + | ||
| 182 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 183 | + | ||
| 184 | + | } | |
| 185 | + | ||
| 186 | + | // Updates an array of accessible properties. | |
| 187 | + | // | |
| 188 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 189 | + | // property change must be communicated to assistive technologies. | |
| 190 | + | // | |
| 191 | + | // This function is meant to be used by language bindings. | |
| 192 | + | func (x *ClampScrollable) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 193 | + | ||
| 194 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 195 | + | ||
| 196 | + | } | |
| 197 | + | ||
| 198 | + | // Updates a list of accessible relations. | |
| 199 | + | // | |
| 200 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 201 | + | // relation change must be communicated to assistive technologies. | |
| 202 | + | // | |
| 203 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 204 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 205 | + | // | |
| 206 | + | // ```c | |
| 207 | + | // gtk_accessible_update_relation (accessible, | |
| 208 | + | // | |
| 209 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 210 | + | // ref1, NULL, | |
| 211 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 212 | + | // ref1, ref2, ref3, NULL, | |
| 213 | + | // -1); | |
| 214 | + | // | |
| 215 | + | // ``` | |
| 216 | + | func (x *ClampScrollable) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 217 | + | ||
| 218 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 219 | + | ||
| 220 | + | } | |
| 221 | + | ||
| 222 | + | // Updates an array of accessible relations. | |
| 223 | + | // | |
| 224 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 225 | + | // relation change must be communicated to assistive technologies. | |
| 226 | + | // | |
| 227 | + | // This function is meant to be used by language bindings. | |
| 228 | + | func (x *ClampScrollable) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 229 | + | ||
| 230 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 231 | + | ||
| 232 | + | } | |
| 233 | + | ||
| 234 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 235 | + | // documentation for the value types of accessible states. | |
| 236 | + | // | |
| 237 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 238 | + | // state change must be communicated to assistive technologies. | |
| 239 | + | // | |
| 240 | + | // Example: | |
| 241 | + | // ```c | |
| 242 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 243 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 244 | + | // | |
| 245 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 246 | + | // -1); | |
| 247 | + | // | |
| 248 | + | // ``` | |
| 249 | + | func (x *ClampScrollable) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 250 | + | ||
| 251 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 252 | + | ||
| 253 | + | } | |
| 254 | + | ||
| 255 | + | // Updates an array of accessible states. | |
| 256 | + | // | |
| 257 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 258 | + | // state change must be communicated to assistive technologies. | |
| 259 | + | // | |
| 260 | + | // This function is meant to be used by language bindings. | |
| 261 | + | func (x *ClampScrollable) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 262 | + | ||
| 263 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 264 | + | ||
| 265 | + | } | |
| 266 | + | ||
| 267 | + | // Gets the ID of the @buildable object. | |
| 268 | + | // | |
| 269 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 270 | + | // of the <object> tag used to construct the @buildable. | |
| 271 | + | func (x *ClampScrollable) GetBuildableId() string { | |
| 272 | + | ||
| 273 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 274 | + | ||
| 275 | + | } | |
| 276 | + | ||
| 277 | + | // Retrieves the orientation of the @orientable. | |
| 278 | + | func (x *ClampScrollable) GetOrientation() gtk.Orientation { | |
| 279 | + | ||
| 280 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 281 | + | ||
| 282 | + | } | |
| 283 | + | ||
| 284 | + | // Sets the orientation of the @orientable. | |
| 285 | + | func (x *ClampScrollable) SetOrientation(OrientationVar gtk.Orientation) { | |
| 286 | + | ||
| 287 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 288 | + | ||
| 289 | + | } | |
| 290 | + | ||
| 291 | + | // Returns the size of a non-scrolling border around the | |
| 292 | + | // outside of the scrollable. | |
| 293 | + | // | |
| 294 | + | // An example for this would be treeview headers. GTK can use | |
| 295 | + | // this information to display overlaid graphics, like the | |
| 296 | + | // overshoot indication, at the right position. | |
| 297 | + | func (x *ClampScrollable) GetBorder(BorderVar *gtk.Border) bool { | |
| 298 | + | ||
| 299 | + | return gtk.XGtkScrollableGetBorder(x.GoPointer(), BorderVar) | |
| 300 | + | ||
| 301 | + | } | |
| 302 | + | ||
| 303 | + | // Retrieves the `GtkAdjustment` used for horizontal scrolling. | |
| 304 | + | func (x *ClampScrollable) GetHadjustment() *gtk.Adjustment { | |
| 305 | + | ||
| 306 | + | GetHadjustmentPtr := gtk.XGtkScrollableGetHadjustment(x.GoPointer()) | |
| 307 | + | if GetHadjustmentPtr == 0 { | |
| 308 | + | return nil | |
| 309 | + | } | |
| 310 | + | ||
| 311 | + | gobject.IncreaseRef(GetHadjustmentPtr) | |
| 312 | + | ||
| 313 | + | GetHadjustmentCls := >k.Adjustment{} | |
| 314 | + | GetHadjustmentCls.Ptr = GetHadjustmentPtr | |
| 315 | + | return GetHadjustmentCls | |
| 316 | + | ||
| 317 | + | } | |
| 318 | + | ||
| 319 | + | // Gets the horizontal `GtkScrollablePolicy`. | |
| 320 | + | func (x *ClampScrollable) GetHscrollPolicy() gtk.ScrollablePolicy { | |
| 321 | + | ||
| 322 | + | return gtk.XGtkScrollableGetHscrollPolicy(x.GoPointer()) | |
| 323 | + | ||
| 324 | + | } | |
| 325 | + | ||
| 326 | + | // Retrieves the `GtkAdjustment` used for vertical scrolling. | |
| 327 | + | func (x *ClampScrollable) GetVadjustment() *gtk.Adjustment { | |
| 328 | + | ||
| 329 | + | GetVadjustmentPtr := gtk.XGtkScrollableGetVadjustment(x.GoPointer()) | |
| 330 | + | if GetVadjustmentPtr == 0 { | |
| 331 | + | return nil | |
| 332 | + | } | |
| 333 | + | ||
| 334 | + | gobject.IncreaseRef(GetVadjustmentPtr) | |
| 335 | + | ||
| 336 | + | GetVadjustmentCls := >k.Adjustment{} | |
| 337 | + | GetVadjustmentCls.Ptr = GetVadjustmentPtr | |
| 338 | + | return GetVadjustmentCls | |
| 339 | + | ||
| 340 | + | } | |
| 341 | + | ||
| 342 | + | // Gets the vertical `GtkScrollablePolicy`. | |
| 343 | + | func (x *ClampScrollable) GetVscrollPolicy() gtk.ScrollablePolicy { | |
| 344 | + | ||
| 345 | + | return gtk.XGtkScrollableGetVscrollPolicy(x.GoPointer()) | |
| 346 | + | ||
| 347 | + | } | |
| 348 | + | ||
| 349 | + | // Sets the horizontal adjustment of the `GtkScrollable`. | |
| 350 | + | func (x *ClampScrollable) SetHadjustment(HadjustmentVar *gtk.Adjustment) { | |
| 351 | + | ||
| 352 | + | gtk.XGtkScrollableSetHadjustment(x.GoPointer(), HadjustmentVar.GoPointer()) | |
| 353 | + | ||
| 354 | + | } | |
| 355 | + | ||
| 356 | + | // Sets the `GtkScrollablePolicy`. | |
| 357 | + | // | |
| 358 | + | // The policy determines whether horizontal scrolling should start | |
| 359 | + | // below the minimum width or below the natural width. | |
| 360 | + | func (x *ClampScrollable) SetHscrollPolicy(PolicyVar gtk.ScrollablePolicy) { | |
| 361 | + | ||
| 362 | + | gtk.XGtkScrollableSetHscrollPolicy(x.GoPointer(), PolicyVar) | |
| 363 | + | ||
| 364 | + | } | |
| 365 | + | ||
| 366 | + | // Sets the vertical adjustment of the `GtkScrollable`. | |
| 367 | + | func (x *ClampScrollable) SetVadjustment(VadjustmentVar *gtk.Adjustment) { | |
| 368 | + | ||
| 369 | + | gtk.XGtkScrollableSetVadjustment(x.GoPointer(), VadjustmentVar.GoPointer()) | |
| 370 | + | ||
| 371 | + | } | |
| 372 | + | ||
| 373 | + | // Sets the `GtkScrollablePolicy`. | |
| 374 | + | // | |
| 375 | + | // The policy determines whether vertical scrolling should start | |
| 376 | + | // below the minimum height or below the natural height. | |
| 377 | + | func (x *ClampScrollable) SetVscrollPolicy(PolicyVar gtk.ScrollablePolicy) { | |
| 378 | + | ||
| 379 | + | gtk.XGtkScrollableSetVscrollPolicy(x.GoPointer(), PolicyVar) | |
| 380 | + | ||
| 381 | + | } | |
| 382 | + | ||
| 383 | + | func init() { | |
| 384 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 385 | + | if err != nil { | |
| 386 | + | panic(err) | |
| 387 | + | } | |
| 388 | + | ||
| 389 | + | core.PuregoSafeRegister(&xNewClampScrollable, lib, "adw_clamp_scrollable_new") | |
| 390 | + | ||
| 391 | + | core.PuregoSafeRegister(&xClampScrollableGetChild, lib, "adw_clamp_scrollable_get_child") | |
| 392 | + | core.PuregoSafeRegister(&xClampScrollableGetMaximumSize, lib, "adw_clamp_scrollable_get_maximum_size") | |
| 393 | + | core.PuregoSafeRegister(&xClampScrollableGetTighteningThreshold, lib, "adw_clamp_scrollable_get_tightening_threshold") | |
| 394 | + | core.PuregoSafeRegister(&xClampScrollableSetChild, lib, "adw_clamp_scrollable_set_child") | |
| 395 | + | core.PuregoSafeRegister(&xClampScrollableSetMaximumSize, lib, "adw_clamp_scrollable_set_maximum_size") | |
| 396 | + | core.PuregoSafeRegister(&xClampScrollableSetTighteningThreshold, lib, "adw_clamp_scrollable_set_tightening_threshold") | |
| 397 | + | ||
| 398 | + | } | |
A v4/adw/adw-clamp.go +329 -0
| @@ -0,0 +1,329 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type ClampClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // A widget constraining its child to a given size. | |
| 16 | + | // | |
| 17 | + | // <picture> | |
| 18 | + | // | |
| 19 | + | // <source srcset="clamp-wide-dark.png" media="(prefers-color-scheme: dark)"> | |
| 20 | + | // <img src="clamp-wide.png" alt="clamp-wide"> | |
| 21 | + | // | |
| 22 | + | // </picture> | |
| 23 | + | // <picture> | |
| 24 | + | // | |
| 25 | + | // <source srcset="clamp-narrow-dark.png" media="(prefers-color-scheme: dark)"> | |
| 26 | + | // <img src="clamp-narrow.png" alt="clamp-narrow"> | |
| 27 | + | // | |
| 28 | + | // </picture> | |
| 29 | + | // | |
| 30 | + | // The `AdwClamp` widget constrains the size of the widget it contains to a | |
| 31 | + | // given maximum size. It will constrain the width if it is horizontal, or the | |
| 32 | + | // height if it is vertical. The expansion of the child from its minimum to its | |
| 33 | + | // maximum size is eased out for a smooth transition. | |
| 34 | + | // | |
| 35 | + | // If the child requires more than the requested maximum size, it will be | |
| 36 | + | // allocated the minimum size it can fit in instead. | |
| 37 | + | // | |
| 38 | + | // ## CSS nodes | |
| 39 | + | // | |
| 40 | + | // `AdwClamp` has a single CSS node with name `clamp`. | |
| 41 | + | // | |
| 42 | + | // Its children will receive the style classes `.large` when the child reached | |
| 43 | + | // its maximum size, `.small` when the clamp allocates its full size to the | |
| 44 | + | // child, `.medium` in-between, or none if it hasn't computed its size yet. | |
| 45 | + | type Clamp struct { | |
| 46 | + | gtk.Widget | |
| 47 | + | } | |
| 48 | + | ||
| 49 | + | func ClampNewFromInternalPtr(ptr uintptr) *Clamp { | |
| 50 | + | cls := &Clamp{} | |
| 51 | + | cls.Ptr = ptr | |
| 52 | + | return cls | |
| 53 | + | } | |
| 54 | + | ||
| 55 | + | var xNewClamp func() uintptr | |
| 56 | + | ||
| 57 | + | // Creates a new `AdwClamp`. | |
| 58 | + | func NewClamp() *gtk.Widget { | |
| 59 | + | NewClampPtr := xNewClamp() | |
| 60 | + | if NewClampPtr == 0 { | |
| 61 | + | return nil | |
| 62 | + | } | |
| 63 | + | ||
| 64 | + | gobject.IncreaseRef(NewClampPtr) | |
| 65 | + | ||
| 66 | + | NewClampCls := >k.Widget{} | |
| 67 | + | NewClampCls.Ptr = NewClampPtr | |
| 68 | + | return NewClampCls | |
| 69 | + | } | |
| 70 | + | ||
| 71 | + | var xClampGetChild func(uintptr) uintptr | |
| 72 | + | ||
| 73 | + | // Gets the child widget of @self. | |
| 74 | + | func (x *Clamp) GetChild() *gtk.Widget { | |
| 75 | + | ||
| 76 | + | GetChildPtr := xClampGetChild(x.GoPointer()) | |
| 77 | + | if GetChildPtr == 0 { | |
| 78 | + | return nil | |
| 79 | + | } | |
| 80 | + | ||
| 81 | + | gobject.IncreaseRef(GetChildPtr) | |
| 82 | + | ||
| 83 | + | GetChildCls := >k.Widget{} | |
| 84 | + | GetChildCls.Ptr = GetChildPtr | |
| 85 | + | return GetChildCls | |
| 86 | + | ||
| 87 | + | } | |
| 88 | + | ||
| 89 | + | var xClampGetMaximumSize func(uintptr) int32 | |
| 90 | + | ||
| 91 | + | // Gets the maximum size allocated to the child. | |
| 92 | + | func (x *Clamp) GetMaximumSize() int32 { | |
| 93 | + | ||
| 94 | + | return xClampGetMaximumSize(x.GoPointer()) | |
| 95 | + | ||
| 96 | + | } | |
| 97 | + | ||
| 98 | + | var xClampGetTighteningThreshold func(uintptr) int32 | |
| 99 | + | ||
| 100 | + | // Gets the size above which the child is clamped. | |
| 101 | + | func (x *Clamp) GetTighteningThreshold() int32 { | |
| 102 | + | ||
| 103 | + | return xClampGetTighteningThreshold(x.GoPointer()) | |
| 104 | + | ||
| 105 | + | } | |
| 106 | + | ||
| 107 | + | var xClampSetChild func(uintptr, uintptr) | |
| 108 | + | ||
| 109 | + | // Sets the child widget of @self. | |
| 110 | + | func (x *Clamp) SetChild(ChildVar *gtk.Widget) { | |
| 111 | + | ||
| 112 | + | xClampSetChild(x.GoPointer(), ChildVar.GoPointer()) | |
| 113 | + | ||
| 114 | + | } | |
| 115 | + | ||
| 116 | + | var xClampSetMaximumSize func(uintptr, int32) | |
| 117 | + | ||
| 118 | + | // Sets the maximum size allocated to the child. | |
| 119 | + | // | |
| 120 | + | // It is the width if the clamp is horizontal, or the height if it is vertical. | |
| 121 | + | func (x *Clamp) SetMaximumSize(MaximumSizeVar int32) { | |
| 122 | + | ||
| 123 | + | xClampSetMaximumSize(x.GoPointer(), MaximumSizeVar) | |
| 124 | + | ||
| 125 | + | } | |
| 126 | + | ||
| 127 | + | var xClampSetTighteningThreshold func(uintptr, int32) | |
| 128 | + | ||
| 129 | + | // Sets the size above which the child is clamped. | |
| 130 | + | // | |
| 131 | + | // Starting from this size, the clamp will tighten its grip on the child, slowly | |
| 132 | + | // allocating less and less of the available size up to the maximum allocated | |
| 133 | + | // size. Below that threshold and below the maximum size, the child will be | |
| 134 | + | // allocated all the available size. | |
| 135 | + | // | |
| 136 | + | // If the threshold is greater than the maximum size to allocate to the child, | |
| 137 | + | // the child will be allocated all the size up to the maximum. If the threshold | |
| 138 | + | // is lower than the minimum size to allocate to the child, that size will be | |
| 139 | + | // used as the tightening threshold. | |
| 140 | + | // | |
| 141 | + | // Effectively, tightening the grip on the child before it reaches its maximum | |
| 142 | + | // size makes transitions to and from the maximum size smoother when resizing. | |
| 143 | + | func (x *Clamp) SetTighteningThreshold(TighteningThresholdVar int32) { | |
| 144 | + | ||
| 145 | + | xClampSetTighteningThreshold(x.GoPointer(), TighteningThresholdVar) | |
| 146 | + | ||
| 147 | + | } | |
| 148 | + | ||
| 149 | + | func (c *Clamp) GoPointer() uintptr { | |
| 150 | + | return c.Ptr | |
| 151 | + | } | |
| 152 | + | ||
| 153 | + | func (c *Clamp) SetGoPointer(ptr uintptr) { | |
| 154 | + | c.Ptr = ptr | |
| 155 | + | } | |
| 156 | + | ||
| 157 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 158 | + | func (x *Clamp) GetAccessibleRole() gtk.AccessibleRole { | |
| 159 | + | ||
| 160 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 161 | + | ||
| 162 | + | } | |
| 163 | + | ||
| 164 | + | // Resets the accessible @property to its default value. | |
| 165 | + | func (x *Clamp) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 166 | + | ||
| 167 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 168 | + | ||
| 169 | + | } | |
| 170 | + | ||
| 171 | + | // Resets the accessible @relation to its default value. | |
| 172 | + | func (x *Clamp) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 173 | + | ||
| 174 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 175 | + | ||
| 176 | + | } | |
| 177 | + | ||
| 178 | + | // Resets the accessible @state to its default value. | |
| 179 | + | func (x *Clamp) ResetState(StateVar gtk.AccessibleState) { | |
| 180 | + | ||
| 181 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 182 | + | ||
| 183 | + | } | |
| 184 | + | ||
| 185 | + | // Updates a list of accessible properties. | |
| 186 | + | // | |
| 187 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 188 | + | // value types of accessible properties. | |
| 189 | + | // | |
| 190 | + | // This function should be called by `GtkWidget` types whenever | |
| 191 | + | // an accessible property change must be communicated to assistive | |
| 192 | + | // technologies. | |
| 193 | + | // | |
| 194 | + | // Example: | |
| 195 | + | // ```c | |
| 196 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 197 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 198 | + | // | |
| 199 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 200 | + | // -1); | |
| 201 | + | // | |
| 202 | + | // ``` | |
| 203 | + | func (x *Clamp) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 204 | + | ||
| 205 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 206 | + | ||
| 207 | + | } | |
| 208 | + | ||
| 209 | + | // Updates an array of accessible properties. | |
| 210 | + | // | |
| 211 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 212 | + | // property change must be communicated to assistive technologies. | |
| 213 | + | // | |
| 214 | + | // This function is meant to be used by language bindings. | |
| 215 | + | func (x *Clamp) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 216 | + | ||
| 217 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 218 | + | ||
| 219 | + | } | |
| 220 | + | ||
| 221 | + | // Updates a list of accessible relations. | |
| 222 | + | // | |
| 223 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 224 | + | // relation change must be communicated to assistive technologies. | |
| 225 | + | // | |
| 226 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 227 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 228 | + | // | |
| 229 | + | // ```c | |
| 230 | + | // gtk_accessible_update_relation (accessible, | |
| 231 | + | // | |
| 232 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 233 | + | // ref1, NULL, | |
| 234 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 235 | + | // ref1, ref2, ref3, NULL, | |
| 236 | + | // -1); | |
| 237 | + | // | |
| 238 | + | // ``` | |
| 239 | + | func (x *Clamp) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 240 | + | ||
| 241 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 242 | + | ||
| 243 | + | } | |
| 244 | + | ||
| 245 | + | // Updates an array of accessible relations. | |
| 246 | + | // | |
| 247 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 248 | + | // relation change must be communicated to assistive technologies. | |
| 249 | + | // | |
| 250 | + | // This function is meant to be used by language bindings. | |
| 251 | + | func (x *Clamp) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 252 | + | ||
| 253 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 254 | + | ||
| 255 | + | } | |
| 256 | + | ||
| 257 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 258 | + | // documentation for the value types of accessible states. | |
| 259 | + | // | |
| 260 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 261 | + | // state change must be communicated to assistive technologies. | |
| 262 | + | // | |
| 263 | + | // Example: | |
| 264 | + | // ```c | |
| 265 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 266 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 267 | + | // | |
| 268 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 269 | + | // -1); | |
| 270 | + | // | |
| 271 | + | // ``` | |
| 272 | + | func (x *Clamp) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 273 | + | ||
| 274 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 275 | + | ||
| 276 | + | } | |
| 277 | + | ||
| 278 | + | // Updates an array of accessible states. | |
| 279 | + | // | |
| 280 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 281 | + | // state change must be communicated to assistive technologies. | |
| 282 | + | // | |
| 283 | + | // This function is meant to be used by language bindings. | |
| 284 | + | func (x *Clamp) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 285 | + | ||
| 286 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 287 | + | ||
| 288 | + | } | |
| 289 | + | ||
| 290 | + | // Gets the ID of the @buildable object. | |
| 291 | + | // | |
| 292 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 293 | + | // of the <object> tag used to construct the @buildable. | |
| 294 | + | func (x *Clamp) GetBuildableId() string { | |
| 295 | + | ||
| 296 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 297 | + | ||
| 298 | + | } | |
| 299 | + | ||
| 300 | + | // Retrieves the orientation of the @orientable. | |
| 301 | + | func (x *Clamp) GetOrientation() gtk.Orientation { | |
| 302 | + | ||
| 303 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 304 | + | ||
| 305 | + | } | |
| 306 | + | ||
| 307 | + | // Sets the orientation of the @orientable. | |
| 308 | + | func (x *Clamp) SetOrientation(OrientationVar gtk.Orientation) { | |
| 309 | + | ||
| 310 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 311 | + | ||
| 312 | + | } | |
| 313 | + | ||
| 314 | + | func init() { | |
| 315 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 316 | + | if err != nil { | |
| 317 | + | panic(err) | |
| 318 | + | } | |
| 319 | + | ||
| 320 | + | core.PuregoSafeRegister(&xNewClamp, lib, "adw_clamp_new") | |
| 321 | + | ||
| 322 | + | core.PuregoSafeRegister(&xClampGetChild, lib, "adw_clamp_get_child") | |
| 323 | + | core.PuregoSafeRegister(&xClampGetMaximumSize, lib, "adw_clamp_get_maximum_size") | |
| 324 | + | core.PuregoSafeRegister(&xClampGetTighteningThreshold, lib, "adw_clamp_get_tightening_threshold") | |
| 325 | + | core.PuregoSafeRegister(&xClampSetChild, lib, "adw_clamp_set_child") | |
| 326 | + | core.PuregoSafeRegister(&xClampSetMaximumSize, lib, "adw_clamp_set_maximum_size") | |
| 327 | + | core.PuregoSafeRegister(&xClampSetTighteningThreshold, lib, "adw_clamp_set_tightening_threshold") | |
| 328 | + | ||
| 329 | + | } | |
A v4/adw/adw-combo-row.go +533 -0
| @@ -0,0 +1,533 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | type ComboRowClass struct { | |
| 14 | + | ParentClass uintptr | |
| 15 | + | ||
| 16 | + | Padding uintptr | |
| 17 | + | } | |
| 18 | + | ||
| 19 | + | // A [class@Gtk.ListBoxRow] used to choose from a list of items. | |
| 20 | + | // | |
| 21 | + | // <picture> | |
| 22 | + | // | |
| 23 | + | // <source srcset="combo-row-dark.png" media="(prefers-color-scheme: dark)"> | |
| 24 | + | // <img src="combo-row.png" alt="combo-row"> | |
| 25 | + | // | |
| 26 | + | // </picture> | |
| 27 | + | // | |
| 28 | + | // The `AdwComboRow` widget allows the user to choose from a list of valid | |
| 29 | + | // choices. The row displays the selected choice. When activated, the row | |
| 30 | + | // displays a popover which allows the user to make a new choice. | |
| 31 | + | // | |
| 32 | + | // Example of an `AdwComboRow` UI definition: | |
| 33 | + | // ```xml | |
| 34 | + | // <object class="AdwComboRow"> | |
| 35 | + | // | |
| 36 | + | // <property name="title" translatable="yes">Combo Row</property> | |
| 37 | + | // <property name="model"> | |
| 38 | + | // <object class="GtkStringList"> | |
| 39 | + | // <items> | |
| 40 | + | // <item translatable="yes">Foo</item> | |
| 41 | + | // <item translatable="yes">Bar</item> | |
| 42 | + | // <item translatable="yes">Baz</item> | |
| 43 | + | // </items> | |
| 44 | + | // </object> | |
| 45 | + | // </property> | |
| 46 | + | // | |
| 47 | + | // </object> | |
| 48 | + | // ``` | |
| 49 | + | // | |
| 50 | + | // The [property@ComboRow:selected] and [property@ComboRow:selected-item] | |
| 51 | + | // properties can be used to keep track of the selected item and react to their | |
| 52 | + | // changes. | |
| 53 | + | // | |
| 54 | + | // `AdwComboRow` mirrors [class@Gtk.DropDown], see that widget for details. | |
| 55 | + | // | |
| 56 | + | // `AdwComboRow` is [property@Gtk.ListBoxRow:activatable] if a model is set. | |
| 57 | + | // | |
| 58 | + | // ## CSS nodes | |
| 59 | + | // | |
| 60 | + | // `AdwComboRow` has a main CSS node with name `row` and the `.combo` style | |
| 61 | + | // class. | |
| 62 | + | // | |
| 63 | + | // Its popover has the node named `popover` with the `.menu` style class, it | |
| 64 | + | // contains a [class@Gtk.ScrolledWindow], which in turn contains a | |
| 65 | + | // [class@Gtk.ListView], both are accessible via their regular nodes. | |
| 66 | + | // | |
| 67 | + | // ## Accessibility | |
| 68 | + | // | |
| 69 | + | // `AdwComboRow` uses the `GTK_ACCESSIBLE_ROLE_COMBO_BOX` role. | |
| 70 | + | type ComboRow struct { | |
| 71 | + | ActionRow | |
| 72 | + | } | |
| 73 | + | ||
| 74 | + | func ComboRowNewFromInternalPtr(ptr uintptr) *ComboRow { | |
| 75 | + | cls := &ComboRow{} | |
| 76 | + | cls.Ptr = ptr | |
| 77 | + | return cls | |
| 78 | + | } | |
| 79 | + | ||
| 80 | + | var xNewComboRow func() uintptr | |
| 81 | + | ||
| 82 | + | // Creates a new `AdwComboRow`. | |
| 83 | + | func NewComboRow() *gtk.Widget { | |
| 84 | + | NewComboRowPtr := xNewComboRow() | |
| 85 | + | if NewComboRowPtr == 0 { | |
| 86 | + | return nil | |
| 87 | + | } | |
| 88 | + | ||
| 89 | + | gobject.IncreaseRef(NewComboRowPtr) | |
| 90 | + | ||
| 91 | + | NewComboRowCls := >k.Widget{} | |
| 92 | + | NewComboRowCls.Ptr = NewComboRowPtr | |
| 93 | + | return NewComboRowCls | |
| 94 | + | } | |
| 95 | + | ||
| 96 | + | var xComboRowGetExpression func(uintptr) uintptr | |
| 97 | + | ||
| 98 | + | // Gets the expression used to obtain strings from items. | |
| 99 | + | func (x *ComboRow) GetExpression() *gtk.Expression { | |
| 100 | + | ||
| 101 | + | GetExpressionPtr := xComboRowGetExpression(x.GoPointer()) | |
| 102 | + | if GetExpressionPtr == 0 { | |
| 103 | + | return nil | |
| 104 | + | } | |
| 105 | + | ||
| 106 | + | gobject.IncreaseRef(GetExpressionPtr) | |
| 107 | + | ||
| 108 | + | GetExpressionCls := >k.Expression{} | |
| 109 | + | GetExpressionCls.Ptr = GetExpressionPtr | |
| 110 | + | return GetExpressionCls | |
| 111 | + | ||
| 112 | + | } | |
| 113 | + | ||
| 114 | + | var xComboRowGetFactory func(uintptr) uintptr | |
| 115 | + | ||
| 116 | + | // Gets the factory for populating list items. | |
| 117 | + | func (x *ComboRow) GetFactory() *gtk.ListItemFactory { | |
| 118 | + | ||
| 119 | + | GetFactoryPtr := xComboRowGetFactory(x.GoPointer()) | |
| 120 | + | if GetFactoryPtr == 0 { | |
| 121 | + | return nil | |
| 122 | + | } | |
| 123 | + | ||
| 124 | + | gobject.IncreaseRef(GetFactoryPtr) | |
| 125 | + | ||
| 126 | + | GetFactoryCls := >k.ListItemFactory{} | |
| 127 | + | GetFactoryCls.Ptr = GetFactoryPtr | |
| 128 | + | return GetFactoryCls | |
| 129 | + | ||
| 130 | + | } | |
| 131 | + | ||
| 132 | + | var xComboRowGetListFactory func(uintptr) uintptr | |
| 133 | + | ||
| 134 | + | // Gets the factory for populating list items in the popup. | |
| 135 | + | func (x *ComboRow) GetListFactory() *gtk.ListItemFactory { | |
| 136 | + | ||
| 137 | + | GetListFactoryPtr := xComboRowGetListFactory(x.GoPointer()) | |
| 138 | + | if GetListFactoryPtr == 0 { | |
| 139 | + | return nil | |
| 140 | + | } | |
| 141 | + | ||
| 142 | + | gobject.IncreaseRef(GetListFactoryPtr) | |
| 143 | + | ||
| 144 | + | GetListFactoryCls := >k.ListItemFactory{} | |
| 145 | + | GetListFactoryCls.Ptr = GetListFactoryPtr | |
| 146 | + | return GetListFactoryCls | |
| 147 | + | ||
| 148 | + | } | |
| 149 | + | ||
| 150 | + | var xComboRowGetModel func(uintptr) uintptr | |
| 151 | + | ||
| 152 | + | // Gets the model that provides the displayed items. | |
| 153 | + | func (x *ComboRow) GetModel() *gio.ListModelBase { | |
| 154 | + | ||
| 155 | + | GetModelPtr := xComboRowGetModel(x.GoPointer()) | |
| 156 | + | if GetModelPtr == 0 { | |
| 157 | + | return nil | |
| 158 | + | } | |
| 159 | + | ||
| 160 | + | gobject.IncreaseRef(GetModelPtr) | |
| 161 | + | ||
| 162 | + | GetModelCls := &gio.ListModelBase{} | |
| 163 | + | GetModelCls.Ptr = GetModelPtr | |
| 164 | + | return GetModelCls | |
| 165 | + | ||
| 166 | + | } | |
| 167 | + | ||
| 168 | + | var xComboRowGetSelected func(uintptr) uint | |
| 169 | + | ||
| 170 | + | // Gets the position of the selected item. | |
| 171 | + | func (x *ComboRow) GetSelected() uint { | |
| 172 | + | ||
| 173 | + | return xComboRowGetSelected(x.GoPointer()) | |
| 174 | + | ||
| 175 | + | } | |
| 176 | + | ||
| 177 | + | var xComboRowGetSelectedItem func(uintptr) uintptr | |
| 178 | + | ||
| 179 | + | // Gets the selected item. | |
| 180 | + | func (x *ComboRow) GetSelectedItem() *gobject.Object { | |
| 181 | + | ||
| 182 | + | GetSelectedItemPtr := xComboRowGetSelectedItem(x.GoPointer()) | |
| 183 | + | if GetSelectedItemPtr == 0 { | |
| 184 | + | return nil | |
| 185 | + | } | |
| 186 | + | ||
| 187 | + | gobject.IncreaseRef(GetSelectedItemPtr) | |
| 188 | + | ||
| 189 | + | GetSelectedItemCls := &gobject.Object{} | |
| 190 | + | GetSelectedItemCls.Ptr = GetSelectedItemPtr | |
| 191 | + | return GetSelectedItemCls | |
| 192 | + | ||
| 193 | + | } | |
| 194 | + | ||
| 195 | + | var xComboRowGetUseSubtitle func(uintptr) bool | |
| 196 | + | ||
| 197 | + | // Gets whether to use the current value as the subtitle. | |
| 198 | + | func (x *ComboRow) GetUseSubtitle() bool { | |
| 199 | + | ||
| 200 | + | return xComboRowGetUseSubtitle(x.GoPointer()) | |
| 201 | + | ||
| 202 | + | } | |
| 203 | + | ||
| 204 | + | var xComboRowSetExpression func(uintptr, uintptr) | |
| 205 | + | ||
| 206 | + | // Sets the expression used to obtain strings from items. | |
| 207 | + | // | |
| 208 | + | // The expression must have a value type of `G_TYPE_STRING`. | |
| 209 | + | // | |
| 210 | + | // It's used to bind strings to labels produced by the default factory if | |
| 211 | + | // [property@ComboRow:factory] is not set, or when | |
| 212 | + | // [property@ComboRow:use-subtitle] is set to `TRUE`. | |
| 213 | + | func (x *ComboRow) SetExpression(ExpressionVar *gtk.Expression) { | |
| 214 | + | ||
| 215 | + | xComboRowSetExpression(x.GoPointer(), ExpressionVar.GoPointer()) | |
| 216 | + | ||
| 217 | + | } | |
| 218 | + | ||
| 219 | + | var xComboRowSetFactory func(uintptr, uintptr) | |
| 220 | + | ||
| 221 | + | // Sets the factory for populating list items. | |
| 222 | + | // | |
| 223 | + | // This factory is always used for the item in the row. It is also used for | |
| 224 | + | // items in the popup unless [property@ComboRow:list-factory] is set. | |
| 225 | + | func (x *ComboRow) SetFactory(FactoryVar *gtk.ListItemFactory) { | |
| 226 | + | ||
| 227 | + | xComboRowSetFactory(x.GoPointer(), FactoryVar.GoPointer()) | |
| 228 | + | ||
| 229 | + | } | |
| 230 | + | ||
| 231 | + | var xComboRowSetListFactory func(uintptr, uintptr) | |
| 232 | + | ||
| 233 | + | // Sets the factory for populating list items in the popup. | |
| 234 | + | // | |
| 235 | + | // If this is not set, [property@ComboRow:factory] is used. | |
| 236 | + | func (x *ComboRow) SetListFactory(FactoryVar *gtk.ListItemFactory) { | |
| 237 | + | ||
| 238 | + | xComboRowSetListFactory(x.GoPointer(), FactoryVar.GoPointer()) | |
| 239 | + | ||
| 240 | + | } | |
| 241 | + | ||
| 242 | + | var xComboRowSetModel func(uintptr, uintptr) | |
| 243 | + | ||
| 244 | + | // Sets the model that provides the displayed items. | |
| 245 | + | func (x *ComboRow) SetModel(ModelVar gio.ListModel) { | |
| 246 | + | ||
| 247 | + | xComboRowSetModel(x.GoPointer(), ModelVar.GoPointer()) | |
| 248 | + | ||
| 249 | + | } | |
| 250 | + | ||
| 251 | + | var xComboRowSetSelected func(uintptr, uint) | |
| 252 | + | ||
| 253 | + | // Selects the item at the given position. | |
| 254 | + | func (x *ComboRow) SetSelected(PositionVar uint) { | |
| 255 | + | ||
| 256 | + | xComboRowSetSelected(x.GoPointer(), PositionVar) | |
| 257 | + | ||
| 258 | + | } | |
| 259 | + | ||
| 260 | + | var xComboRowSetUseSubtitle func(uintptr, bool) | |
| 261 | + | ||
| 262 | + | // Sets whether to use the current value as the subtitle. | |
| 263 | + | // | |
| 264 | + | // If you use a custom list item factory, you will need to give the row a | |
| 265 | + | // name conversion expression with [property@ComboRow:expression]. | |
| 266 | + | // | |
| 267 | + | // If set to `TRUE`, you should not access [property@ActionRow:subtitle]. | |
| 268 | + | // | |
| 269 | + | // The subtitle is interpreted as Pango markup if | |
| 270 | + | // [property@PreferencesRow:use-markup] is set to `TRUE`. | |
| 271 | + | func (x *ComboRow) SetUseSubtitle(UseSubtitleVar bool) { | |
| 272 | + | ||
| 273 | + | xComboRowSetUseSubtitle(x.GoPointer(), UseSubtitleVar) | |
| 274 | + | ||
| 275 | + | } | |
| 276 | + | ||
| 277 | + | func (c *ComboRow) GoPointer() uintptr { | |
| 278 | + | return c.Ptr | |
| 279 | + | } | |
| 280 | + | ||
| 281 | + | func (c *ComboRow) SetGoPointer(ptr uintptr) { | |
| 282 | + | c.Ptr = ptr | |
| 283 | + | } | |
| 284 | + | ||
| 285 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 286 | + | func (x *ComboRow) GetAccessibleRole() gtk.AccessibleRole { | |
| 287 | + | ||
| 288 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 289 | + | ||
| 290 | + | } | |
| 291 | + | ||
| 292 | + | // Resets the accessible @property to its default value. | |
| 293 | + | func (x *ComboRow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 294 | + | ||
| 295 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 296 | + | ||
| 297 | + | } | |
| 298 | + | ||
| 299 | + | // Resets the accessible @relation to its default value. | |
| 300 | + | func (x *ComboRow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 301 | + | ||
| 302 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 303 | + | ||
| 304 | + | } | |
| 305 | + | ||
| 306 | + | // Resets the accessible @state to its default value. | |
| 307 | + | func (x *ComboRow) ResetState(StateVar gtk.AccessibleState) { | |
| 308 | + | ||
| 309 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 310 | + | ||
| 311 | + | } | |
| 312 | + | ||
| 313 | + | // Updates a list of accessible properties. | |
| 314 | + | // | |
| 315 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 316 | + | // value types of accessible properties. | |
| 317 | + | // | |
| 318 | + | // This function should be called by `GtkWidget` types whenever | |
| 319 | + | // an accessible property change must be communicated to assistive | |
| 320 | + | // technologies. | |
| 321 | + | // | |
| 322 | + | // Example: | |
| 323 | + | // ```c | |
| 324 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 325 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 326 | + | // | |
| 327 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 328 | + | // -1); | |
| 329 | + | // | |
| 330 | + | // ``` | |
| 331 | + | func (x *ComboRow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 332 | + | ||
| 333 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 334 | + | ||
| 335 | + | } | |
| 336 | + | ||
| 337 | + | // Updates an array of accessible properties. | |
| 338 | + | // | |
| 339 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 340 | + | // property change must be communicated to assistive technologies. | |
| 341 | + | // | |
| 342 | + | // This function is meant to be used by language bindings. | |
| 343 | + | func (x *ComboRow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 344 | + | ||
| 345 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 346 | + | ||
| 347 | + | } | |
| 348 | + | ||
| 349 | + | // Updates a list of accessible relations. | |
| 350 | + | // | |
| 351 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 352 | + | // relation change must be communicated to assistive technologies. | |
| 353 | + | // | |
| 354 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 355 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 356 | + | // | |
| 357 | + | // ```c | |
| 358 | + | // gtk_accessible_update_relation (accessible, | |
| 359 | + | // | |
| 360 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 361 | + | // ref1, NULL, | |
| 362 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 363 | + | // ref1, ref2, ref3, NULL, | |
| 364 | + | // -1); | |
| 365 | + | // | |
| 366 | + | // ``` | |
| 367 | + | func (x *ComboRow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 368 | + | ||
| 369 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 370 | + | ||
| 371 | + | } | |
| 372 | + | ||
| 373 | + | // Updates an array of accessible relations. | |
| 374 | + | // | |
| 375 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 376 | + | // relation change must be communicated to assistive technologies. | |
| 377 | + | // | |
| 378 | + | // This function is meant to be used by language bindings. | |
| 379 | + | func (x *ComboRow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 380 | + | ||
| 381 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 382 | + | ||
| 383 | + | } | |
| 384 | + | ||
| 385 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 386 | + | // documentation for the value types of accessible states. | |
| 387 | + | // | |
| 388 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 389 | + | // state change must be communicated to assistive technologies. | |
| 390 | + | // | |
| 391 | + | // Example: | |
| 392 | + | // ```c | |
| 393 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 394 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 395 | + | // | |
| 396 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 397 | + | // -1); | |
| 398 | + | // | |
| 399 | + | // ``` | |
| 400 | + | func (x *ComboRow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 401 | + | ||
| 402 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 403 | + | ||
| 404 | + | } | |
| 405 | + | ||
| 406 | + | // Updates an array of accessible states. | |
| 407 | + | // | |
| 408 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 409 | + | // state change must be communicated to assistive technologies. | |
| 410 | + | // | |
| 411 | + | // This function is meant to be used by language bindings. | |
| 412 | + | func (x *ComboRow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 413 | + | ||
| 414 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 415 | + | ||
| 416 | + | } | |
| 417 | + | ||
| 418 | + | // Gets the action name for @actionable. | |
| 419 | + | func (x *ComboRow) GetActionName() string { | |
| 420 | + | ||
| 421 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 422 | + | ||
| 423 | + | } | |
| 424 | + | ||
| 425 | + | // Gets the current target value of @actionable. | |
| 426 | + | func (x *ComboRow) GetActionTargetValue() *glib.Variant { | |
| 427 | + | ||
| 428 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 429 | + | ||
| 430 | + | } | |
| 431 | + | ||
| 432 | + | // Specifies the name of the action with which this widget should be | |
| 433 | + | // associated. | |
| 434 | + | // | |
| 435 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 436 | + | // any previous action. | |
| 437 | + | // | |
| 438 | + | // Usually this function is used when the widget is located (or will be | |
| 439 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 440 | + | // | |
| 441 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 442 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 443 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 444 | + | // associated with the window. | |
| 445 | + | func (x *ComboRow) SetActionName(ActionNameVar string) { | |
| 446 | + | ||
| 447 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 448 | + | ||
| 449 | + | } | |
| 450 | + | ||
| 451 | + | // Sets the target of an actionable widget. | |
| 452 | + | // | |
| 453 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 454 | + | // @format_string and uses the result to call | |
| 455 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 456 | + | // | |
| 457 | + | // If you are setting a string-valued target and want to set | |
| 458 | + | // the action name at the same time, you can use | |
| 459 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 460 | + | func (x *ComboRow) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 461 | + | ||
| 462 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 463 | + | ||
| 464 | + | } | |
| 465 | + | ||
| 466 | + | // Sets the target value of an actionable widget. | |
| 467 | + | // | |
| 468 | + | // If @target_value is %NULL then the target value is unset. | |
| 469 | + | // | |
| 470 | + | // The target value has two purposes. First, it is used as the parameter | |
| 471 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 472 | + | // Second, it is used to determine if the widget should be rendered as | |
| 473 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 474 | + | // | |
| 475 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 476 | + | // with string state in a typical “radio button” situation. Each button | |
| 477 | + | // will be associated with the same action, but with a different target | |
| 478 | + | // value for that action. Clicking on a particular button will activate | |
| 479 | + | // the action with the target of that button, which will typically cause | |
| 480 | + | // the action’s state to change to that value. Since the action’s state | |
| 481 | + | // is now equal to the target value of the button, the button will now | |
| 482 | + | // be rendered as active (and the other buttons, with different targets, | |
| 483 | + | // rendered inactive). | |
| 484 | + | func (x *ComboRow) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 485 | + | ||
| 486 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 487 | + | ||
| 488 | + | } | |
| 489 | + | ||
| 490 | + | // Sets the action-name and associated string target value of an | |
| 491 | + | // actionable widget. | |
| 492 | + | // | |
| 493 | + | // @detailed_action_name is a string in the format accepted by | |
| 494 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 495 | + | func (x *ComboRow) SetDetailedActionName(DetailedActionNameVar string) { | |
| 496 | + | ||
| 497 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 498 | + | ||
| 499 | + | } | |
| 500 | + | ||
| 501 | + | // Gets the ID of the @buildable object. | |
| 502 | + | // | |
| 503 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 504 | + | // of the <object> tag used to construct the @buildable. | |
| 505 | + | func (x *ComboRow) GetBuildableId() string { | |
| 506 | + | ||
| 507 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 508 | + | ||
| 509 | + | } | |
| 510 | + | ||
| 511 | + | func init() { | |
| 512 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 513 | + | if err != nil { | |
| 514 | + | panic(err) | |
| 515 | + | } | |
| 516 | + | ||
| 517 | + | core.PuregoSafeRegister(&xNewComboRow, lib, "adw_combo_row_new") | |
| 518 | + | ||
| 519 | + | core.PuregoSafeRegister(&xComboRowGetExpression, lib, "adw_combo_row_get_expression") | |
| 520 | + | core.PuregoSafeRegister(&xComboRowGetFactory, lib, "adw_combo_row_get_factory") | |
| 521 | + | core.PuregoSafeRegister(&xComboRowGetListFactory, lib, "adw_combo_row_get_list_factory") | |
| 522 | + | core.PuregoSafeRegister(&xComboRowGetModel, lib, "adw_combo_row_get_model") | |
| 523 | + | core.PuregoSafeRegister(&xComboRowGetSelected, lib, "adw_combo_row_get_selected") | |
| 524 | + | core.PuregoSafeRegister(&xComboRowGetSelectedItem, lib, "adw_combo_row_get_selected_item") | |
| 525 | + | core.PuregoSafeRegister(&xComboRowGetUseSubtitle, lib, "adw_combo_row_get_use_subtitle") | |
| 526 | + | core.PuregoSafeRegister(&xComboRowSetExpression, lib, "adw_combo_row_set_expression") | |
| 527 | + | core.PuregoSafeRegister(&xComboRowSetFactory, lib, "adw_combo_row_set_factory") | |
| 528 | + | core.PuregoSafeRegister(&xComboRowSetListFactory, lib, "adw_combo_row_set_list_factory") | |
| 529 | + | core.PuregoSafeRegister(&xComboRowSetModel, lib, "adw_combo_row_set_model") | |
| 530 | + | core.PuregoSafeRegister(&xComboRowSetSelected, lib, "adw_combo_row_set_selected") | |
| 531 | + | core.PuregoSafeRegister(&xComboRowSetUseSubtitle, lib, "adw_combo_row_set_use_subtitle") | |
| 532 | + | ||
| 533 | + | } | |
A v4/adw/adw-easing.go +114 -0
| @@ -0,0 +1,114 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | ) | |
| 8 | + | ||
| 9 | + | // Describes the available easing functions for use with | |
| 10 | + | // [class@TimedAnimation]. | |
| 11 | + | // | |
| 12 | + | // New values may be added to this enumeration over time. | |
| 13 | + | type Easing int | |
| 14 | + | ||
| 15 | + | const ( | |
| 16 | + | ||
| 17 | + | // Linear tweening. | |
| 18 | + | LinearValue Easing = 0 | |
| 19 | + | // Quadratic tweening. | |
| 20 | + | EaseInQuadValue Easing = 1 | |
| 21 | + | // Quadratic tweening, inverse of `ADW_EASE_IN_QUAD`. | |
| 22 | + | EaseOutQuadValue Easing = 2 | |
| 23 | + | // Quadratic tweening, combining `ADW_EASE_IN_QUAD` and | |
| 24 | + | // `ADW_EASE_OUT_QUAD`. | |
| 25 | + | EaseInOutQuadValue Easing = 3 | |
| 26 | + | // Cubic tweening. | |
| 27 | + | EaseInCubicValue Easing = 4 | |
| 28 | + | // Cubic tweening, inverse of `ADW_EASE_IN_CUBIC`. | |
| 29 | + | EaseOutCubicValue Easing = 5 | |
| 30 | + | // Cubic tweening, combining `ADW_EASE_IN_CUBIC` and | |
| 31 | + | // `ADW_EASE_OUT_CUBIC`. | |
| 32 | + | EaseInOutCubicValue Easing = 6 | |
| 33 | + | // Quartic tweening. | |
| 34 | + | EaseInQuartValue Easing = 7 | |
| 35 | + | // Quartic tweening, inverse of `ADW_EASE_IN_QUART`. | |
| 36 | + | EaseOutQuartValue Easing = 8 | |
| 37 | + | // Quartic tweening, combining `ADW_EASE_IN_QUART` and | |
| 38 | + | // `ADW_EASE_OUT_QUART`. | |
| 39 | + | EaseInOutQuartValue Easing = 9 | |
| 40 | + | // Quintic tweening. | |
| 41 | + | EaseInQuintValue Easing = 10 | |
| 42 | + | // Quintic tweening, inverse of `ADW_EASE_IN_QUINT`. | |
| 43 | + | EaseOutQuintValue Easing = 11 | |
| 44 | + | // Quintic tweening, combining `ADW_EASE_IN_QUINT` and | |
| 45 | + | // `ADW_EASE_OUT_QUINT`. | |
| 46 | + | EaseInOutQuintValue Easing = 12 | |
| 47 | + | // Sine wave tweening. | |
| 48 | + | EaseInSineValue Easing = 13 | |
| 49 | + | // Sine wave tweening, inverse of `ADW_EASE_IN_SINE`. | |
| 50 | + | EaseOutSineValue Easing = 14 | |
| 51 | + | // Sine wave tweening, combining `ADW_EASE_IN_SINE` and | |
| 52 | + | // `ADW_EASE_OUT_SINE`. | |
| 53 | + | EaseInOutSineValue Easing = 15 | |
| 54 | + | // Exponential tweening. | |
| 55 | + | EaseInExpoValue Easing = 16 | |
| 56 | + | // Exponential tweening, inverse of `ADW_EASE_IN_EXPO`. | |
| 57 | + | EaseOutExpoValue Easing = 17 | |
| 58 | + | // Exponential tweening, combining `ADW_EASE_IN_EXPO` and | |
| 59 | + | // `ADW_EASE_OUT_EXPO`. | |
| 60 | + | EaseInOutExpoValue Easing = 18 | |
| 61 | + | // Circular tweening. | |
| 62 | + | EaseInCircValue Easing = 19 | |
| 63 | + | // Circular tweening, inverse of `ADW_EASE_IN_CIRC`. | |
| 64 | + | EaseOutCircValue Easing = 20 | |
| 65 | + | // Circular tweening, combining `ADW_EASE_IN_CIRC` and | |
| 66 | + | // `ADW_EASE_OUT_CIRC`. | |
| 67 | + | EaseInOutCircValue Easing = 21 | |
| 68 | + | // Elastic tweening, with offshoot on start. | |
| 69 | + | EaseInElasticValue Easing = 22 | |
| 70 | + | // Elastic tweening, with offshoot on end, inverse of | |
| 71 | + | // `ADW_EASE_IN_ELASTIC`. | |
| 72 | + | EaseOutElasticValue Easing = 23 | |
| 73 | + | // Elastic tweening, with offshoot on both ends, | |
| 74 | + | // combining `ADW_EASE_IN_ELASTIC` and `ADW_EASE_OUT_ELASTIC`. | |
| 75 | + | EaseInOutElasticValue Easing = 24 | |
| 76 | + | // Overshooting cubic tweening, with backtracking on start. | |
| 77 | + | EaseInBackValue Easing = 25 | |
| 78 | + | // Overshooting cubic tweening, with backtracking on end, | |
| 79 | + | // inverse of `ADW_EASE_IN_BACK`. | |
| 80 | + | EaseOutBackValue Easing = 26 | |
| 81 | + | // Overshooting cubic tweening, with backtracking on both | |
| 82 | + | // ends, combining `ADW_EASE_IN_BACK` and `ADW_EASE_OUT_BACK`. | |
| 83 | + | EaseInOutBackValue Easing = 27 | |
| 84 | + | // Exponentially decaying parabolic (bounce) tweening, | |
| 85 | + | // on start. | |
| 86 | + | EaseInBounceValue Easing = 28 | |
| 87 | + | // Exponentially decaying parabolic (bounce) tweening, | |
| 88 | + | // with bounce on end, inverse of `ADW_EASE_IN_BOUNCE`. | |
| 89 | + | EaseOutBounceValue Easing = 29 | |
| 90 | + | // Exponentially decaying parabolic (bounce) tweening, | |
| 91 | + | // with bounce on both ends, combining `ADW_EASE_IN_BOUNCE` and | |
| 92 | + | // `ADW_EASE_OUT_BOUNCE`. | |
| 93 | + | EaseInOutBounceValue Easing = 30 | |
| 94 | + | ) | |
| 95 | + | ||
| 96 | + | var xEasingEase func(Easing, float64) float64 | |
| 97 | + | ||
| 98 | + | // Computes easing with @easing for @value. | |
| 99 | + | // | |
| 100 | + | // @value should generally be in the [0, 1] range. | |
| 101 | + | func EasingEase(SelfVar Easing, ValueVar float64) float64 { | |
| 102 | + | ||
| 103 | + | return xEasingEase(SelfVar, ValueVar) | |
| 104 | + | ||
| 105 | + | } | |
| 106 | + | ||
| 107 | + | func init() { | |
| 108 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 109 | + | if err != nil { | |
| 110 | + | panic(err) | |
| 111 | + | } | |
| 112 | + | core.PuregoSafeRegister(&xEasingEase, lib, "adw_easing_ease") | |
| 113 | + | ||
| 114 | + | } | |
A v4/adw/adw-entry-row.go +772 -0
| @@ -0,0 +1,772 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/pango" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | type EntryRowClass struct { | |
| 14 | + | ParentClass uintptr | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | // A [class@Gtk.ListBoxRow] with an embedded text entry. | |
| 18 | + | // | |
| 19 | + | // <picture> | |
| 20 | + | // | |
| 21 | + | // <source srcset="entry-row-dark.png" media="(prefers-color-scheme: dark)"> | |
| 22 | + | // <img src="entry-row.png" alt="entry-row"> | |
| 23 | + | // | |
| 24 | + | // </picture> | |
| 25 | + | // | |
| 26 | + | // `AdwEntryRow` has a title that doubles as placeholder text. It shows an icon | |
| 27 | + | // indicating that it's editable and can receive additional widgets before or | |
| 28 | + | // after the editable part. | |
| 29 | + | // | |
| 30 | + | // If [property@EntryRow:show-apply-button] is set to `TRUE`, `AdwEntryRow` can | |
| 31 | + | // show an apply button when editing its contents. This can be useful if | |
| 32 | + | // changing its contents can result in an expensive operation, such as network | |
| 33 | + | // activity. | |
| 34 | + | // | |
| 35 | + | // `AdwEntryRow` provides only minimal API and should be used with the | |
| 36 | + | // [iface@Gtk.Editable] API. | |
| 37 | + | // | |
| 38 | + | // See also [class@PasswordEntryRow]. | |
| 39 | + | // | |
| 40 | + | // ## AdwEntryRow as GtkBuildable | |
| 41 | + | // | |
| 42 | + | // The `AdwEntryRow` implementation of the [iface@Gtk.Buildable] interface | |
| 43 | + | // supports adding a child at its end by specifying “suffix” or omitting the | |
| 44 | + | // “type” attribute of a <child> element. | |
| 45 | + | // | |
| 46 | + | // It also supports adding a child as a prefix widget by specifying “prefix” as | |
| 47 | + | // the “type” attribute of a <child> element. | |
| 48 | + | // | |
| 49 | + | // ## CSS nodes | |
| 50 | + | // | |
| 51 | + | // `AdwEntryRow` has a single CSS node with name `row` and the `.entry` style | |
| 52 | + | // class. | |
| 53 | + | type EntryRow struct { | |
| 54 | + | PreferencesRow | |
| 55 | + | } | |
| 56 | + | ||
| 57 | + | func EntryRowNewFromInternalPtr(ptr uintptr) *EntryRow { | |
| 58 | + | cls := &EntryRow{} | |
| 59 | + | cls.Ptr = ptr | |
| 60 | + | return cls | |
| 61 | + | } | |
| 62 | + | ||
| 63 | + | var xNewEntryRow func() uintptr | |
| 64 | + | ||
| 65 | + | // Creates a new `AdwEntryRow`. | |
| 66 | + | func NewEntryRow() *gtk.Widget { | |
| 67 | + | NewEntryRowPtr := xNewEntryRow() | |
| 68 | + | if NewEntryRowPtr == 0 { | |
| 69 | + | return nil | |
| 70 | + | } | |
| 71 | + | ||
| 72 | + | gobject.IncreaseRef(NewEntryRowPtr) | |
| 73 | + | ||
| 74 | + | NewEntryRowCls := >k.Widget{} | |
| 75 | + | NewEntryRowCls.Ptr = NewEntryRowPtr | |
| 76 | + | return NewEntryRowCls | |
| 77 | + | } | |
| 78 | + | ||
| 79 | + | var xEntryRowAddPrefix func(uintptr, uintptr) | |
| 80 | + | ||
| 81 | + | // Adds a prefix widget to @self. | |
| 82 | + | func (x *EntryRow) AddPrefix(WidgetVar *gtk.Widget) { | |
| 83 | + | ||
| 84 | + | xEntryRowAddPrefix(x.GoPointer(), WidgetVar.GoPointer()) | |
| 85 | + | ||
| 86 | + | } | |
| 87 | + | ||
| 88 | + | var xEntryRowAddSuffix func(uintptr, uintptr) | |
| 89 | + | ||
| 90 | + | // Adds a suffix widget to @self. | |
| 91 | + | func (x *EntryRow) AddSuffix(WidgetVar *gtk.Widget) { | |
| 92 | + | ||
| 93 | + | xEntryRowAddSuffix(x.GoPointer(), WidgetVar.GoPointer()) | |
| 94 | + | ||
| 95 | + | } | |
| 96 | + | ||
| 97 | + | var xEntryRowGetActivatesDefault func(uintptr) bool | |
| 98 | + | ||
| 99 | + | // Gets whether activating the embedded entry can activate the default widget. | |
| 100 | + | func (x *EntryRow) GetActivatesDefault() bool { | |
| 101 | + | ||
| 102 | + | return xEntryRowGetActivatesDefault(x.GoPointer()) | |
| 103 | + | ||
| 104 | + | } | |
| 105 | + | ||
| 106 | + | var xEntryRowGetAttributes func(uintptr) *pango.AttrList | |
| 107 | + | ||
| 108 | + | // Gets Pango attributes applied to the text of the embedded entry. | |
| 109 | + | func (x *EntryRow) GetAttributes() *pango.AttrList { | |
| 110 | + | ||
| 111 | + | return xEntryRowGetAttributes(x.GoPointer()) | |
| 112 | + | ||
| 113 | + | } | |
| 114 | + | ||
| 115 | + | var xEntryRowGetEnableEmojiCompletion func(uintptr) bool | |
| 116 | + | ||
| 117 | + | // Gets whether to suggest emoji replacements on @self. | |
| 118 | + | func (x *EntryRow) GetEnableEmojiCompletion() bool { | |
| 119 | + | ||
| 120 | + | return xEntryRowGetEnableEmojiCompletion(x.GoPointer()) | |
| 121 | + | ||
| 122 | + | } | |
| 123 | + | ||
| 124 | + | var xEntryRowGetInputHints func(uintptr) gtk.InputHints | |
| 125 | + | ||
| 126 | + | // Gets the additional input hints of @self. | |
| 127 | + | func (x *EntryRow) GetInputHints() gtk.InputHints { | |
| 128 | + | ||
| 129 | + | return xEntryRowGetInputHints(x.GoPointer()) | |
| 130 | + | ||
| 131 | + | } | |
| 132 | + | ||
| 133 | + | var xEntryRowGetInputPurpose func(uintptr) gtk.InputPurpose | |
| 134 | + | ||
| 135 | + | // Gets the input purpose of @self. | |
| 136 | + | func (x *EntryRow) GetInputPurpose() gtk.InputPurpose { | |
| 137 | + | ||
| 138 | + | return xEntryRowGetInputPurpose(x.GoPointer()) | |
| 139 | + | ||
| 140 | + | } | |
| 141 | + | ||
| 142 | + | var xEntryRowGetShowApplyButton func(uintptr) bool | |
| 143 | + | ||
| 144 | + | // Gets whether @self can show the apply button. | |
| 145 | + | func (x *EntryRow) GetShowApplyButton() bool { | |
| 146 | + | ||
| 147 | + | return xEntryRowGetShowApplyButton(x.GoPointer()) | |
| 148 | + | ||
| 149 | + | } | |
| 150 | + | ||
| 151 | + | var xEntryRowGrabFocusWithoutSelecting func(uintptr) bool | |
| 152 | + | ||
| 153 | + | // Causes @self to have keyboard focus without selecting the text. | |
| 154 | + | // | |
| 155 | + | // See [method@Gtk.Text.grab_focus_without_selecting] for more information. | |
| 156 | + | func (x *EntryRow) GrabFocusWithoutSelecting() bool { | |
| 157 | + | ||
| 158 | + | return xEntryRowGrabFocusWithoutSelecting(x.GoPointer()) | |
| 159 | + | ||
| 160 | + | } | |
| 161 | + | ||
| 162 | + | var xEntryRowRemove func(uintptr, uintptr) | |
| 163 | + | ||
| 164 | + | // Removes a child from @self. | |
| 165 | + | func (x *EntryRow) Remove(WidgetVar *gtk.Widget) { | |
| 166 | + | ||
| 167 | + | xEntryRowRemove(x.GoPointer(), WidgetVar.GoPointer()) | |
| 168 | + | ||
| 169 | + | } | |
| 170 | + | ||
| 171 | + | var xEntryRowSetActivatesDefault func(uintptr, bool) | |
| 172 | + | ||
| 173 | + | // Sets whether activating the embedded entry can activate the default widget. | |
| 174 | + | func (x *EntryRow) SetActivatesDefault(ActivatesVar bool) { | |
| 175 | + | ||
| 176 | + | xEntryRowSetActivatesDefault(x.GoPointer(), ActivatesVar) | |
| 177 | + | ||
| 178 | + | } | |
| 179 | + | ||
| 180 | + | var xEntryRowSetAttributes func(uintptr, *pango.AttrList) | |
| 181 | + | ||
| 182 | + | // Sets Pango attributes to apply to the text of the embedded entry. | |
| 183 | + | // | |
| 184 | + | // The [struct@Pango.Attribute]'s `start_index` and `end_index` must refer to | |
| 185 | + | // the [class@Gtk.EntryBuffer] text, i.e. without the preedit string. | |
| 186 | + | func (x *EntryRow) SetAttributes(AttributesVar *pango.AttrList) { | |
| 187 | + | ||
| 188 | + | xEntryRowSetAttributes(x.GoPointer(), AttributesVar) | |
| 189 | + | ||
| 190 | + | } | |
| 191 | + | ||
| 192 | + | var xEntryRowSetEnableEmojiCompletion func(uintptr, bool) | |
| 193 | + | ||
| 194 | + | // Sets whether to suggest emoji replacements on @self. | |
| 195 | + | // | |
| 196 | + | // Emoji replacement is done with :-delimited names, like `:heart:`. | |
| 197 | + | func (x *EntryRow) SetEnableEmojiCompletion(EnableEmojiCompletionVar bool) { | |
| 198 | + | ||
| 199 | + | xEntryRowSetEnableEmojiCompletion(x.GoPointer(), EnableEmojiCompletionVar) | |
| 200 | + | ||
| 201 | + | } | |
| 202 | + | ||
| 203 | + | var xEntryRowSetInputHints func(uintptr, gtk.InputHints) | |
| 204 | + | ||
| 205 | + | // Set additional input hints for @self. | |
| 206 | + | // | |
| 207 | + | // Input hints allow input methods to fine-tune their behavior. | |
| 208 | + | // | |
| 209 | + | // See also: [property@AdwEntryRow:input-purpose] | |
| 210 | + | func (x *EntryRow) SetInputHints(HintsVar gtk.InputHints) { | |
| 211 | + | ||
| 212 | + | xEntryRowSetInputHints(x.GoPointer(), HintsVar) | |
| 213 | + | ||
| 214 | + | } | |
| 215 | + | ||
| 216 | + | var xEntryRowSetInputPurpose func(uintptr, gtk.InputPurpose) | |
| 217 | + | ||
| 218 | + | // Sets the input purpose of @self. | |
| 219 | + | // | |
| 220 | + | // The input purpose can be used by input methods to adjust their behavior. | |
| 221 | + | func (x *EntryRow) SetInputPurpose(PurposeVar gtk.InputPurpose) { | |
| 222 | + | ||
| 223 | + | xEntryRowSetInputPurpose(x.GoPointer(), PurposeVar) | |
| 224 | + | ||
| 225 | + | } | |
| 226 | + | ||
| 227 | + | var xEntryRowSetShowApplyButton func(uintptr, bool) | |
| 228 | + | ||
| 229 | + | // Sets whether @self can show the apply button. | |
| 230 | + | // | |
| 231 | + | // When set to `TRUE`, typing text in the entry will reveal an apply button. | |
| 232 | + | // Clicking it or pressing the <kbd>Enter</kbd> key will hide the button and | |
| 233 | + | // emit the [signal@EntryRow::apply] signal. | |
| 234 | + | // | |
| 235 | + | // This is useful if changing the entry contents can trigger an expensive | |
| 236 | + | // operation, e.g. network activity, to avoid triggering it after typing every | |
| 237 | + | // character. | |
| 238 | + | func (x *EntryRow) SetShowApplyButton(ShowApplyButtonVar bool) { | |
| 239 | + | ||
| 240 | + | xEntryRowSetShowApplyButton(x.GoPointer(), ShowApplyButtonVar) | |
| 241 | + | ||
| 242 | + | } | |
| 243 | + | ||
| 244 | + | func (c *EntryRow) GoPointer() uintptr { | |
| 245 | + | return c.Ptr | |
| 246 | + | } | |
| 247 | + | ||
| 248 | + | func (c *EntryRow) SetGoPointer(ptr uintptr) { | |
| 249 | + | c.Ptr = ptr | |
| 250 | + | } | |
| 251 | + | ||
| 252 | + | // Emitted when the apply button is pressed. | |
| 253 | + | // | |
| 254 | + | // See [property@EntryRow:show-apply-button]. | |
| 255 | + | func (x *EntryRow) ConnectApply(cb func(EntryRow)) { | |
| 256 | + | fcb := func(clsPtr uintptr) { | |
| 257 | + | fa := EntryRow{} | |
| 258 | + | fa.Ptr = clsPtr | |
| 259 | + | ||
| 260 | + | cb(fa) | |
| 261 | + | ||
| 262 | + | } | |
| 263 | + | gobject.ObjectConnect(x.GoPointer(), "signal::apply", purego.NewCallback(fcb)) | |
| 264 | + | } | |
| 265 | + | ||
| 266 | + | // Emitted when the embedded entry is activated. | |
| 267 | + | func (x *EntryRow) ConnectEntryActivated(cb func(EntryRow)) { | |
| 268 | + | fcb := func(clsPtr uintptr) { | |
| 269 | + | fa := EntryRow{} | |
| 270 | + | fa.Ptr = clsPtr | |
| 271 | + | ||
| 272 | + | cb(fa) | |
| 273 | + | ||
| 274 | + | } | |
| 275 | + | gobject.ObjectConnect(x.GoPointer(), "signal::entry-activated", purego.NewCallback(fcb)) | |
| 276 | + | } | |
| 277 | + | ||
| 278 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 279 | + | func (x *EntryRow) GetAccessibleRole() gtk.AccessibleRole { | |
| 280 | + | ||
| 281 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 282 | + | ||
| 283 | + | } | |
| 284 | + | ||
| 285 | + | // Resets the accessible @property to its default value. | |
| 286 | + | func (x *EntryRow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 287 | + | ||
| 288 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 289 | + | ||
| 290 | + | } | |
| 291 | + | ||
| 292 | + | // Resets the accessible @relation to its default value. | |
| 293 | + | func (x *EntryRow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 294 | + | ||
| 295 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 296 | + | ||
| 297 | + | } | |
| 298 | + | ||
| 299 | + | // Resets the accessible @state to its default value. | |
| 300 | + | func (x *EntryRow) ResetState(StateVar gtk.AccessibleState) { | |
| 301 | + | ||
| 302 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 303 | + | ||
| 304 | + | } | |
| 305 | + | ||
| 306 | + | // Updates a list of accessible properties. | |
| 307 | + | // | |
| 308 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 309 | + | // value types of accessible properties. | |
| 310 | + | // | |
| 311 | + | // This function should be called by `GtkWidget` types whenever | |
| 312 | + | // an accessible property change must be communicated to assistive | |
| 313 | + | // technologies. | |
| 314 | + | // | |
| 315 | + | // Example: | |
| 316 | + | // ```c | |
| 317 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 318 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 319 | + | // | |
| 320 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 321 | + | // -1); | |
| 322 | + | // | |
| 323 | + | // ``` | |
| 324 | + | func (x *EntryRow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 325 | + | ||
| 326 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 327 | + | ||
| 328 | + | } | |
| 329 | + | ||
| 330 | + | // Updates an array of accessible properties. | |
| 331 | + | // | |
| 332 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 333 | + | // property change must be communicated to assistive technologies. | |
| 334 | + | // | |
| 335 | + | // This function is meant to be used by language bindings. | |
| 336 | + | func (x *EntryRow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 337 | + | ||
| 338 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 339 | + | ||
| 340 | + | } | |
| 341 | + | ||
| 342 | + | // Updates a list of accessible relations. | |
| 343 | + | // | |
| 344 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 345 | + | // relation change must be communicated to assistive technologies. | |
| 346 | + | // | |
| 347 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 348 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 349 | + | // | |
| 350 | + | // ```c | |
| 351 | + | // gtk_accessible_update_relation (accessible, | |
| 352 | + | // | |
| 353 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 354 | + | // ref1, NULL, | |
| 355 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 356 | + | // ref1, ref2, ref3, NULL, | |
| 357 | + | // -1); | |
| 358 | + | // | |
| 359 | + | // ``` | |
| 360 | + | func (x *EntryRow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 361 | + | ||
| 362 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 363 | + | ||
| 364 | + | } | |
| 365 | + | ||
| 366 | + | // Updates an array of accessible relations. | |
| 367 | + | // | |
| 368 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 369 | + | // relation change must be communicated to assistive technologies. | |
| 370 | + | // | |
| 371 | + | // This function is meant to be used by language bindings. | |
| 372 | + | func (x *EntryRow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 373 | + | ||
| 374 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 375 | + | ||
| 376 | + | } | |
| 377 | + | ||
| 378 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 379 | + | // documentation for the value types of accessible states. | |
| 380 | + | // | |
| 381 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 382 | + | // state change must be communicated to assistive technologies. | |
| 383 | + | // | |
| 384 | + | // Example: | |
| 385 | + | // ```c | |
| 386 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 387 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 388 | + | // | |
| 389 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 390 | + | // -1); | |
| 391 | + | // | |
| 392 | + | // ``` | |
| 393 | + | func (x *EntryRow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 394 | + | ||
| 395 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 396 | + | ||
| 397 | + | } | |
| 398 | + | ||
| 399 | + | // Updates an array of accessible states. | |
| 400 | + | // | |
| 401 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 402 | + | // state change must be communicated to assistive technologies. | |
| 403 | + | // | |
| 404 | + | // This function is meant to be used by language bindings. | |
| 405 | + | func (x *EntryRow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 406 | + | ||
| 407 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 408 | + | ||
| 409 | + | } | |
| 410 | + | ||
| 411 | + | // Gets the action name for @actionable. | |
| 412 | + | func (x *EntryRow) GetActionName() string { | |
| 413 | + | ||
| 414 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 415 | + | ||
| 416 | + | } | |
| 417 | + | ||
| 418 | + | // Gets the current target value of @actionable. | |
| 419 | + | func (x *EntryRow) GetActionTargetValue() *glib.Variant { | |
| 420 | + | ||
| 421 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 422 | + | ||
| 423 | + | } | |
| 424 | + | ||
| 425 | + | // Specifies the name of the action with which this widget should be | |
| 426 | + | // associated. | |
| 427 | + | // | |
| 428 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 429 | + | // any previous action. | |
| 430 | + | // | |
| 431 | + | // Usually this function is used when the widget is located (or will be | |
| 432 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 433 | + | // | |
| 434 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 435 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 436 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 437 | + | // associated with the window. | |
| 438 | + | func (x *EntryRow) SetActionName(ActionNameVar string) { | |
| 439 | + | ||
| 440 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 441 | + | ||
| 442 | + | } | |
| 443 | + | ||
| 444 | + | // Sets the target of an actionable widget. | |
| 445 | + | // | |
| 446 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 447 | + | // @format_string and uses the result to call | |
| 448 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 449 | + | // | |
| 450 | + | // If you are setting a string-valued target and want to set | |
| 451 | + | // the action name at the same time, you can use | |
| 452 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 453 | + | func (x *EntryRow) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 454 | + | ||
| 455 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 456 | + | ||
| 457 | + | } | |
| 458 | + | ||
| 459 | + | // Sets the target value of an actionable widget. | |
| 460 | + | // | |
| 461 | + | // If @target_value is %NULL then the target value is unset. | |
| 462 | + | // | |
| 463 | + | // The target value has two purposes. First, it is used as the parameter | |
| 464 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 465 | + | // Second, it is used to determine if the widget should be rendered as | |
| 466 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 467 | + | // | |
| 468 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 469 | + | // with string state in a typical “radio button” situation. Each button | |
| 470 | + | // will be associated with the same action, but with a different target | |
| 471 | + | // value for that action. Clicking on a particular button will activate | |
| 472 | + | // the action with the target of that button, which will typically cause | |
| 473 | + | // the action’s state to change to that value. Since the action’s state | |
| 474 | + | // is now equal to the target value of the button, the button will now | |
| 475 | + | // be rendered as active (and the other buttons, with different targets, | |
| 476 | + | // rendered inactive). | |
| 477 | + | func (x *EntryRow) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 478 | + | ||
| 479 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 480 | + | ||
| 481 | + | } | |
| 482 | + | ||
| 483 | + | // Sets the action-name and associated string target value of an | |
| 484 | + | // actionable widget. | |
| 485 | + | // | |
| 486 | + | // @detailed_action_name is a string in the format accepted by | |
| 487 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 488 | + | func (x *EntryRow) SetDetailedActionName(DetailedActionNameVar string) { | |
| 489 | + | ||
| 490 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 491 | + | ||
| 492 | + | } | |
| 493 | + | ||
| 494 | + | // Gets the ID of the @buildable object. | |
| 495 | + | // | |
| 496 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 497 | + | // of the <object> tag used to construct the @buildable. | |
| 498 | + | func (x *EntryRow) GetBuildableId() string { | |
| 499 | + | ||
| 500 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 501 | + | ||
| 502 | + | } | |
| 503 | + | ||
| 504 | + | // Deletes the currently selected text of the editable. | |
| 505 | + | // | |
| 506 | + | // This call doesn’t do anything if there is no selected text. | |
| 507 | + | func (x *EntryRow) DeleteSelection() { | |
| 508 | + | ||
| 509 | + | gtk.XGtkEditableDeleteSelection(x.GoPointer()) | |
| 510 | + | ||
| 511 | + | } | |
| 512 | + | ||
| 513 | + | // Deletes a sequence of characters. | |
| 514 | + | // | |
| 515 | + | // The characters that are deleted are those characters at positions | |
| 516 | + | // from @start_pos up to, but not including @end_pos. If @end_pos is | |
| 517 | + | // negative, then the characters deleted are those from @start_pos to | |
| 518 | + | // the end of the text. | |
| 519 | + | // | |
| 520 | + | // Note that the positions are specified in characters, not bytes. | |
| 521 | + | func (x *EntryRow) DeleteText(StartPosVar int32, EndPosVar int32) { | |
| 522 | + | ||
| 523 | + | gtk.XGtkEditableDeleteText(x.GoPointer(), StartPosVar, EndPosVar) | |
| 524 | + | ||
| 525 | + | } | |
| 526 | + | ||
| 527 | + | // Undoes the setup done by [method@Gtk.Editable.init_delegate]. | |
| 528 | + | // | |
| 529 | + | // This is a helper function that should be called from dispose, | |
| 530 | + | // before removing the delegate object. | |
| 531 | + | func (x *EntryRow) FinishDelegate() { | |
| 532 | + | ||
| 533 | + | gtk.XGtkEditableFinishDelegate(x.GoPointer()) | |
| 534 | + | ||
| 535 | + | } | |
| 536 | + | ||
| 537 | + | // Gets the alignment of the editable. | |
| 538 | + | func (x *EntryRow) GetAlignment() float32 { | |
| 539 | + | ||
| 540 | + | return gtk.XGtkEditableGetAlignment(x.GoPointer()) | |
| 541 | + | ||
| 542 | + | } | |
| 543 | + | ||
| 544 | + | // Retrieves a sequence of characters. | |
| 545 | + | // | |
| 546 | + | // The characters that are retrieved are those characters at positions | |
| 547 | + | // from @start_pos up to, but not including @end_pos. If @end_pos is negative, | |
| 548 | + | // then the characters retrieved are those characters from @start_pos to | |
| 549 | + | // the end of the text. | |
| 550 | + | // | |
| 551 | + | // Note that positions are specified in characters, not bytes. | |
| 552 | + | func (x *EntryRow) GetChars(StartPosVar int32, EndPosVar int32) string { | |
| 553 | + | ||
| 554 | + | return gtk.XGtkEditableGetChars(x.GoPointer(), StartPosVar, EndPosVar) | |
| 555 | + | ||
| 556 | + | } | |
| 557 | + | ||
| 558 | + | // Gets the `GtkEditable` that @editable is delegating its | |
| 559 | + | // implementation to. | |
| 560 | + | // | |
| 561 | + | // Typically, the delegate is a [class@Gtk.Text] widget. | |
| 562 | + | func (x *EntryRow) GetDelegate() *gtk.EditableBase { | |
| 563 | + | ||
| 564 | + | GetDelegatePtr := gtk.XGtkEditableGetDelegate(x.GoPointer()) | |
| 565 | + | if GetDelegatePtr == 0 { | |
| 566 | + | return nil | |
| 567 | + | } | |
| 568 | + | ||
| 569 | + | gobject.IncreaseRef(GetDelegatePtr) | |
| 570 | + | ||
| 571 | + | GetDelegateCls := >k.EditableBase{} | |
| 572 | + | GetDelegateCls.Ptr = GetDelegatePtr | |
| 573 | + | return GetDelegateCls | |
| 574 | + | ||
| 575 | + | } | |
| 576 | + | ||
| 577 | + | // Retrieves whether @editable is editable. | |
| 578 | + | func (x *EntryRow) GetEditable() bool { | |
| 579 | + | ||
| 580 | + | return gtk.XGtkEditableGetEditable(x.GoPointer()) | |
| 581 | + | ||
| 582 | + | } | |
| 583 | + | ||
| 584 | + | // Gets if undo/redo actions are enabled for @editable | |
| 585 | + | func (x *EntryRow) GetEnableUndo() bool { | |
| 586 | + | ||
| 587 | + | return gtk.XGtkEditableGetEnableUndo(x.GoPointer()) | |
| 588 | + | ||
| 589 | + | } | |
| 590 | + | ||
| 591 | + | // Retrieves the desired maximum width of @editable, in characters. | |
| 592 | + | func (x *EntryRow) GetMaxWidthChars() int32 { | |
| 593 | + | ||
| 594 | + | return gtk.XGtkEditableGetMaxWidthChars(x.GoPointer()) | |
| 595 | + | ||
| 596 | + | } | |
| 597 | + | ||
| 598 | + | // Retrieves the current position of the cursor relative | |
| 599 | + | // to the start of the content of the editable. | |
| 600 | + | // | |
| 601 | + | // Note that this position is in characters, not in bytes. | |
| 602 | + | func (x *EntryRow) GetPosition() int32 { | |
| 603 | + | ||
| 604 | + | return gtk.XGtkEditableGetPosition(x.GoPointer()) | |
| 605 | + | ||
| 606 | + | } | |
| 607 | + | ||
| 608 | + | // Retrieves the selection bound of the editable. | |
| 609 | + | // | |
| 610 | + | // @start_pos will be filled with the start of the selection and | |
| 611 | + | // @end_pos with end. If no text was selected both will be identical | |
| 612 | + | // and %FALSE will be returned. | |
| 613 | + | // | |
| 614 | + | // Note that positions are specified in characters, not bytes. | |
| 615 | + | func (x *EntryRow) GetSelectionBounds(StartPosVar int32, EndPosVar int32) bool { | |
| 616 | + | ||
| 617 | + | return gtk.XGtkEditableGetSelectionBounds(x.GoPointer(), StartPosVar, EndPosVar) | |
| 618 | + | ||
| 619 | + | } | |
| 620 | + | ||
| 621 | + | // Retrieves the contents of @editable. | |
| 622 | + | // | |
| 623 | + | // The returned string is owned by GTK and must not be modified or freed. | |
| 624 | + | func (x *EntryRow) GetText() string { | |
| 625 | + | ||
| 626 | + | return gtk.XGtkEditableGetText(x.GoPointer()) | |
| 627 | + | ||
| 628 | + | } | |
| 629 | + | ||
| 630 | + | // Gets the number of characters of space reserved | |
| 631 | + | // for the contents of the editable. | |
| 632 | + | func (x *EntryRow) GetWidthChars() int32 { | |
| 633 | + | ||
| 634 | + | return gtk.XGtkEditableGetWidthChars(x.GoPointer()) | |
| 635 | + | ||
| 636 | + | } | |
| 637 | + | ||
| 638 | + | // Sets up a delegate for `GtkEditable`. | |
| 639 | + | // | |
| 640 | + | // This is assuming that the get_delegate vfunc in the `GtkEditable` | |
| 641 | + | // interface has been set up for the @editable's type. | |
| 642 | + | // | |
| 643 | + | // This is a helper function that should be called in instance init, | |
| 644 | + | // after creating the delegate object. | |
| 645 | + | func (x *EntryRow) InitDelegate() { | |
| 646 | + | ||
| 647 | + | gtk.XGtkEditableInitDelegate(x.GoPointer()) | |
| 648 | + | ||
| 649 | + | } | |
| 650 | + | ||
| 651 | + | // Inserts @length bytes of @text into the contents of the | |
| 652 | + | // widget, at position @position. | |
| 653 | + | // | |
| 654 | + | // Note that the position is in characters, not in bytes. | |
| 655 | + | // The function updates @position to point after the newly | |
| 656 | + | // inserted text. | |
| 657 | + | func (x *EntryRow) InsertText(TextVar string, LengthVar int32, PositionVar int32) { | |
| 658 | + | ||
| 659 | + | gtk.XGtkEditableInsertText(x.GoPointer(), TextVar, LengthVar, PositionVar) | |
| 660 | + | ||
| 661 | + | } | |
| 662 | + | ||
| 663 | + | // Selects a region of text. | |
| 664 | + | // | |
| 665 | + | // The characters that are selected are those characters at positions | |
| 666 | + | // from @start_pos up to, but not including @end_pos. If @end_pos is | |
| 667 | + | // negative, then the characters selected are those characters from | |
| 668 | + | // @start_pos to the end of the text. | |
| 669 | + | // | |
| 670 | + | // Note that positions are specified in characters, not bytes. | |
| 671 | + | func (x *EntryRow) SelectRegion(StartPosVar int32, EndPosVar int32) { | |
| 672 | + | ||
| 673 | + | gtk.XGtkEditableSelectRegion(x.GoPointer(), StartPosVar, EndPosVar) | |
| 674 | + | ||
| 675 | + | } | |
| 676 | + | ||
| 677 | + | // Sets the alignment for the contents of the editable. | |
| 678 | + | // | |
| 679 | + | // This controls the horizontal positioning of the contents when | |
| 680 | + | // the displayed text is shorter than the width of the editable. | |
| 681 | + | func (x *EntryRow) SetAlignment(XalignVar float32) { | |
| 682 | + | ||
| 683 | + | gtk.XGtkEditableSetAlignment(x.GoPointer(), XalignVar) | |
| 684 | + | ||
| 685 | + | } | |
| 686 | + | ||
| 687 | + | // Determines if the user can edit the text in the editable widget. | |
| 688 | + | func (x *EntryRow) SetEditable(IsEditableVar bool) { | |
| 689 | + | ||
| 690 | + | gtk.XGtkEditableSetEditable(x.GoPointer(), IsEditableVar) | |
| 691 | + | ||
| 692 | + | } | |
| 693 | + | ||
| 694 | + | // If enabled, changes to @editable will be saved for undo/redo | |
| 695 | + | // actions. | |
| 696 | + | // | |
| 697 | + | // This results in an additional copy of text changes and are not | |
| 698 | + | // stored in secure memory. As such, undo is forcefully disabled | |
| 699 | + | // when [property@Gtk.Text:visibility] is set to %FALSE. | |
| 700 | + | func (x *EntryRow) SetEnableUndo(EnableUndoVar bool) { | |
| 701 | + | ||
| 702 | + | gtk.XGtkEditableSetEnableUndo(x.GoPointer(), EnableUndoVar) | |
| 703 | + | ||
| 704 | + | } | |
| 705 | + | ||
| 706 | + | // Sets the desired maximum width in characters of @editable. | |
| 707 | + | func (x *EntryRow) SetMaxWidthChars(NCharsVar int32) { | |
| 708 | + | ||
| 709 | + | gtk.XGtkEditableSetMaxWidthChars(x.GoPointer(), NCharsVar) | |
| 710 | + | ||
| 711 | + | } | |
| 712 | + | ||
| 713 | + | // Sets the cursor position in the editable to the given value. | |
| 714 | + | // | |
| 715 | + | // The cursor is displayed before the character with the given (base 0) | |
| 716 | + | // index in the contents of the editable. The value must be less than | |
| 717 | + | // or equal to the number of characters in the editable. A value of -1 | |
| 718 | + | // indicates that the position should be set after the last character | |
| 719 | + | // of the editable. Note that @position is in characters, not in bytes. | |
| 720 | + | func (x *EntryRow) SetPosition(PositionVar int32) { | |
| 721 | + | ||
| 722 | + | gtk.XGtkEditableSetPosition(x.GoPointer(), PositionVar) | |
| 723 | + | ||
| 724 | + | } | |
| 725 | + | ||
| 726 | + | // Sets the text in the editable to the given value. | |
| 727 | + | // | |
| 728 | + | // This is replacing the current contents. | |
| 729 | + | func (x *EntryRow) SetText(TextVar string) { | |
| 730 | + | ||
| 731 | + | gtk.XGtkEditableSetText(x.GoPointer(), TextVar) | |
| 732 | + | ||
| 733 | + | } | |
| 734 | + | ||
| 735 | + | // Changes the size request of the editable to be about the | |
| 736 | + | // right size for @n_chars characters. | |
| 737 | + | // | |
| 738 | + | // Note that it changes the size request, the size can still | |
| 739 | + | // be affected by how you pack the widget into containers. | |
| 740 | + | // If @n_chars is -1, the size reverts to the default size. | |
| 741 | + | func (x *EntryRow) SetWidthChars(NCharsVar int32) { | |
| 742 | + | ||
| 743 | + | gtk.XGtkEditableSetWidthChars(x.GoPointer(), NCharsVar) | |
| 744 | + | ||
| 745 | + | } | |
| 746 | + | ||
| 747 | + | func init() { | |
| 748 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 749 | + | if err != nil { | |
| 750 | + | panic(err) | |
| 751 | + | } | |
| 752 | + | ||
| 753 | + | core.PuregoSafeRegister(&xNewEntryRow, lib, "adw_entry_row_new") | |
| 754 | + | ||
| 755 | + | core.PuregoSafeRegister(&xEntryRowAddPrefix, lib, "adw_entry_row_add_prefix") | |
| 756 | + | core.PuregoSafeRegister(&xEntryRowAddSuffix, lib, "adw_entry_row_add_suffix") | |
| 757 | + | core.PuregoSafeRegister(&xEntryRowGetActivatesDefault, lib, "adw_entry_row_get_activates_default") | |
| 758 | + | core.PuregoSafeRegister(&xEntryRowGetAttributes, lib, "adw_entry_row_get_attributes") | |
| 759 | + | core.PuregoSafeRegister(&xEntryRowGetEnableEmojiCompletion, lib, "adw_entry_row_get_enable_emoji_completion") | |
| 760 | + | core.PuregoSafeRegister(&xEntryRowGetInputHints, lib, "adw_entry_row_get_input_hints") | |
| 761 | + | core.PuregoSafeRegister(&xEntryRowGetInputPurpose, lib, "adw_entry_row_get_input_purpose") | |
| 762 | + | core.PuregoSafeRegister(&xEntryRowGetShowApplyButton, lib, "adw_entry_row_get_show_apply_button") | |
| 763 | + | core.PuregoSafeRegister(&xEntryRowGrabFocusWithoutSelecting, lib, "adw_entry_row_grab_focus_without_selecting") | |
| 764 | + | core.PuregoSafeRegister(&xEntryRowRemove, lib, "adw_entry_row_remove") | |
| 765 | + | core.PuregoSafeRegister(&xEntryRowSetActivatesDefault, lib, "adw_entry_row_set_activates_default") | |
| 766 | + | core.PuregoSafeRegister(&xEntryRowSetAttributes, lib, "adw_entry_row_set_attributes") | |
| 767 | + | core.PuregoSafeRegister(&xEntryRowSetEnableEmojiCompletion, lib, "adw_entry_row_set_enable_emoji_completion") | |
| 768 | + | core.PuregoSafeRegister(&xEntryRowSetInputHints, lib, "adw_entry_row_set_input_hints") | |
| 769 | + | core.PuregoSafeRegister(&xEntryRowSetInputPurpose, lib, "adw_entry_row_set_input_purpose") | |
| 770 | + | core.PuregoSafeRegister(&xEntryRowSetShowApplyButton, lib, "adw_entry_row_set_show_apply_button") | |
| 771 | + | ||
| 772 | + | } | |
A v4/adw/adw-enum-list-model.go +224 -0
| @@ -0,0 +1,224 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type EnumListItemClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | type EnumListModelClass struct { | |
| 16 | + | ParentClass uintptr | |
| 17 | + | } | |
| 18 | + | ||
| 19 | + | // `AdwEnumListItem` is the type of items in a [class@EnumListModel]. | |
| 20 | + | type EnumListItem struct { | |
| 21 | + | gobject.Object | |
| 22 | + | } | |
| 23 | + | ||
| 24 | + | func EnumListItemNewFromInternalPtr(ptr uintptr) *EnumListItem { | |
| 25 | + | cls := &EnumListItem{} | |
| 26 | + | cls.Ptr = ptr | |
| 27 | + | return cls | |
| 28 | + | } | |
| 29 | + | ||
| 30 | + | var xEnumListItemGetName func(uintptr) string | |
| 31 | + | ||
| 32 | + | // Gets the enum value name. | |
| 33 | + | func (x *EnumListItem) GetName() string { | |
| 34 | + | ||
| 35 | + | return xEnumListItemGetName(x.GoPointer()) | |
| 36 | + | ||
| 37 | + | } | |
| 38 | + | ||
| 39 | + | var xEnumListItemGetNick func(uintptr) string | |
| 40 | + | ||
| 41 | + | // Gets the enum value nick. | |
| 42 | + | func (x *EnumListItem) GetNick() string { | |
| 43 | + | ||
| 44 | + | return xEnumListItemGetNick(x.GoPointer()) | |
| 45 | + | ||
| 46 | + | } | |
| 47 | + | ||
| 48 | + | var xEnumListItemGetValue func(uintptr) int32 | |
| 49 | + | ||
| 50 | + | // Gets the enum value. | |
| 51 | + | func (x *EnumListItem) GetValue() int32 { | |
| 52 | + | ||
| 53 | + | return xEnumListItemGetValue(x.GoPointer()) | |
| 54 | + | ||
| 55 | + | } | |
| 56 | + | ||
| 57 | + | func (c *EnumListItem) GoPointer() uintptr { | |
| 58 | + | return c.Ptr | |
| 59 | + | } | |
| 60 | + | ||
| 61 | + | func (c *EnumListItem) SetGoPointer(ptr uintptr) { | |
| 62 | + | c.Ptr = ptr | |
| 63 | + | } | |
| 64 | + | ||
| 65 | + | // A [iface@Gio.ListModel] representing values of a given enum. | |
| 66 | + | // | |
| 67 | + | // `AdwEnumListModel` contains objects of type [class@EnumListItem]. | |
| 68 | + | type EnumListModel struct { | |
| 69 | + | gobject.Object | |
| 70 | + | } | |
| 71 | + | ||
| 72 | + | func EnumListModelNewFromInternalPtr(ptr uintptr) *EnumListModel { | |
| 73 | + | cls := &EnumListModel{} | |
| 74 | + | cls.Ptr = ptr | |
| 75 | + | return cls | |
| 76 | + | } | |
| 77 | + | ||
| 78 | + | var xNewEnumListModel func([]interface{}) uintptr | |
| 79 | + | ||
| 80 | + | // Creates a new `AdwEnumListModel` for @enum_type. | |
| 81 | + | func NewEnumListModel(EnumTypeVar []interface{}) *EnumListModel { | |
| 82 | + | NewEnumListModelPtr := xNewEnumListModel(EnumTypeVar) | |
| 83 | + | if NewEnumListModelPtr == 0 { | |
| 84 | + | return nil | |
| 85 | + | } | |
| 86 | + | ||
| 87 | + | NewEnumListModelCls := &EnumListModel{} | |
| 88 | + | NewEnumListModelCls.Ptr = NewEnumListModelPtr | |
| 89 | + | return NewEnumListModelCls | |
| 90 | + | } | |
| 91 | + | ||
| 92 | + | var xEnumListModelFindPosition func(uintptr, int32) uint | |
| 93 | + | ||
| 94 | + | // Finds the position of a given enum value in @self. | |
| 95 | + | func (x *EnumListModel) FindPosition(ValueVar int32) uint { | |
| 96 | + | ||
| 97 | + | return xEnumListModelFindPosition(x.GoPointer(), ValueVar) | |
| 98 | + | ||
| 99 | + | } | |
| 100 | + | ||
| 101 | + | var xEnumListModelGetEnumType func(uintptr) []interface{} | |
| 102 | + | ||
| 103 | + | // Gets the type of the enum represented by @self. | |
| 104 | + | func (x *EnumListModel) GetEnumType() []interface{} { | |
| 105 | + | ||
| 106 | + | return xEnumListModelGetEnumType(x.GoPointer()) | |
| 107 | + | ||
| 108 | + | } | |
| 109 | + | ||
| 110 | + | func (c *EnumListModel) GoPointer() uintptr { | |
| 111 | + | return c.Ptr | |
| 112 | + | } | |
| 113 | + | ||
| 114 | + | func (c *EnumListModel) SetGoPointer(ptr uintptr) { | |
| 115 | + | c.Ptr = ptr | |
| 116 | + | } | |
| 117 | + | ||
| 118 | + | // Get the item at @position. | |
| 119 | + | // | |
| 120 | + | // If @position is greater than the number of items in @list, %NULL is | |
| 121 | + | // returned. | |
| 122 | + | // | |
| 123 | + | // %NULL is never returned for an index that is smaller than the length | |
| 124 | + | // of the list. | |
| 125 | + | // | |
| 126 | + | // See also: g_list_model_get_n_items() | |
| 127 | + | func (x *EnumListModel) GetItem(PositionVar uint) uintptr { | |
| 128 | + | ||
| 129 | + | return gio.XGListModelGetItem(x.GoPointer(), PositionVar) | |
| 130 | + | ||
| 131 | + | } | |
| 132 | + | ||
| 133 | + | // Gets the type of the items in @list. | |
| 134 | + | // | |
| 135 | + | // All items returned from g_list_model_get_item() are of the type | |
| 136 | + | // returned by this function, or a subtype, or if the type is an | |
| 137 | + | // interface, they are an implementation of that interface. | |
| 138 | + | // | |
| 139 | + | // The item type of a #GListModel can not change during the life of the | |
| 140 | + | // model. | |
| 141 | + | func (x *EnumListModel) GetItemType() []interface{} { | |
| 142 | + | ||
| 143 | + | return gio.XGListModelGetItemType(x.GoPointer()) | |
| 144 | + | ||
| 145 | + | } | |
| 146 | + | ||
| 147 | + | // Gets the number of items in @list. | |
| 148 | + | // | |
| 149 | + | // Depending on the model implementation, calling this function may be | |
| 150 | + | // less efficient than iterating the list with increasing values for | |
| 151 | + | // @position until g_list_model_get_item() returns %NULL. | |
| 152 | + | func (x *EnumListModel) GetNItems() uint { | |
| 153 | + | ||
| 154 | + | return gio.XGListModelGetNItems(x.GoPointer()) | |
| 155 | + | ||
| 156 | + | } | |
| 157 | + | ||
| 158 | + | // Get the item at @position. | |
| 159 | + | // | |
| 160 | + | // If @position is greater than the number of items in @list, %NULL is | |
| 161 | + | // returned. | |
| 162 | + | // | |
| 163 | + | // %NULL is never returned for an index that is smaller than the length | |
| 164 | + | // of the list. | |
| 165 | + | // | |
| 166 | + | // This function is meant to be used by language bindings in place | |
| 167 | + | // of g_list_model_get_item(). | |
| 168 | + | // | |
| 169 | + | // See also: g_list_model_get_n_items() | |
| 170 | + | func (x *EnumListModel) GetObject(PositionVar uint) *gobject.Object { | |
| 171 | + | ||
| 172 | + | GetObjectPtr := gio.XGListModelGetObject(x.GoPointer(), PositionVar) | |
| 173 | + | if GetObjectPtr == 0 { | |
| 174 | + | return nil | |
| 175 | + | } | |
| 176 | + | ||
| 177 | + | GetObjectCls := &gobject.Object{} | |
| 178 | + | GetObjectCls.Ptr = GetObjectPtr | |
| 179 | + | return GetObjectCls | |
| 180 | + | ||
| 181 | + | } | |
| 182 | + | ||
| 183 | + | // Emits the #GListModel::items-changed signal on @list. | |
| 184 | + | // | |
| 185 | + | // This function should only be called by classes implementing | |
| 186 | + | // #GListModel. It has to be called after the internal representation | |
| 187 | + | // of @list has been updated, because handlers connected to this signal | |
| 188 | + | // might query the new state of the list. | |
| 189 | + | // | |
| 190 | + | // Implementations must only make changes to the model (as visible to | |
| 191 | + | // its consumer) in places that will not cause problems for that | |
| 192 | + | // consumer. For models that are driven directly by a write API (such | |
| 193 | + | // as #GListStore), changes can be reported in response to uses of that | |
| 194 | + | // API. For models that represent remote data, changes should only be | |
| 195 | + | // made from a fresh mainloop dispatch. It is particularly not | |
| 196 | + | // permitted to make changes in response to a call to the #GListModel | |
| 197 | + | // consumer API. | |
| 198 | + | // | |
| 199 | + | // Stated another way: in general, it is assumed that code making a | |
| 200 | + | // series of accesses to the model via the API, without returning to the | |
| 201 | + | // mainloop, and without calling other code, will continue to view the | |
| 202 | + | // same contents of the model. | |
| 203 | + | func (x *EnumListModel) ItemsChanged(PositionVar uint, RemovedVar uint, AddedVar uint) { | |
| 204 | + | ||
| 205 | + | gio.XGListModelItemsChanged(x.GoPointer(), PositionVar, RemovedVar, AddedVar) | |
| 206 | + | ||
| 207 | + | } | |
| 208 | + | ||
| 209 | + | func init() { | |
| 210 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 211 | + | if err != nil { | |
| 212 | + | panic(err) | |
| 213 | + | } | |
| 214 | + | ||
| 215 | + | core.PuregoSafeRegister(&xEnumListItemGetName, lib, "adw_enum_list_item_get_name") | |
| 216 | + | core.PuregoSafeRegister(&xEnumListItemGetNick, lib, "adw_enum_list_item_get_nick") | |
| 217 | + | core.PuregoSafeRegister(&xEnumListItemGetValue, lib, "adw_enum_list_item_get_value") | |
| 218 | + | ||
| 219 | + | core.PuregoSafeRegister(&xNewEnumListModel, lib, "adw_enum_list_model_new") | |
| 220 | + | ||
| 221 | + | core.PuregoSafeRegister(&xEnumListModelFindPosition, lib, "adw_enum_list_model_find_position") | |
| 222 | + | core.PuregoSafeRegister(&xEnumListModelGetEnumType, lib, "adw_enum_list_model_get_enum_type") | |
| 223 | + | ||
| 224 | + | } | |
A v4/adw/adw-expander-row.go +509 -0
| @@ -0,0 +1,509 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type ExpanderRowClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | ||
| 15 | + | Padding uintptr | |
| 16 | + | } | |
| 17 | + | ||
| 18 | + | // A [class@Gtk.ListBoxRow] used to reveal widgets. | |
| 19 | + | // | |
| 20 | + | // <picture> | |
| 21 | + | // | |
| 22 | + | // <source srcset="expander-row-dark.png" media="(prefers-color-scheme: dark)"> | |
| 23 | + | // <img src="expander-row.png" alt="expander-row"> | |
| 24 | + | // | |
| 25 | + | // </picture> | |
| 26 | + | // | |
| 27 | + | // The `AdwExpanderRow` widget allows the user to reveal or hide widgets below | |
| 28 | + | // it. It also allows the user to enable the expansion of the row, allowing to | |
| 29 | + | // disable all that the row contains. | |
| 30 | + | // | |
| 31 | + | // ## AdwExpanderRow as GtkBuildable | |
| 32 | + | // | |
| 33 | + | // The `AdwExpanderRow` implementation of the [iface@Gtk.Buildable] interface | |
| 34 | + | // supports adding a child as an action widget by specifying “action” as the | |
| 35 | + | // “type” attribute of a <child> element. | |
| 36 | + | // | |
| 37 | + | // It also supports adding it as a prefix widget by specifying “prefix” as the | |
| 38 | + | // “type” attribute of a <child> element. | |
| 39 | + | // | |
| 40 | + | // ## CSS nodes | |
| 41 | + | // | |
| 42 | + | // `AdwExpanderRow` has a main CSS node with name `row` and the `.expander` | |
| 43 | + | // style class. It has the `.empty` style class when it contains no children. | |
| 44 | + | // | |
| 45 | + | // It contains the subnodes `row.header` for its main embedded row, | |
| 46 | + | // `list.nested` for the list it can expand, and `image.expander-row-arrow` for | |
| 47 | + | // its arrow. | |
| 48 | + | type ExpanderRow struct { | |
| 49 | + | PreferencesRow | |
| 50 | + | } | |
| 51 | + | ||
| 52 | + | func ExpanderRowNewFromInternalPtr(ptr uintptr) *ExpanderRow { | |
| 53 | + | cls := &ExpanderRow{} | |
| 54 | + | cls.Ptr = ptr | |
| 55 | + | return cls | |
| 56 | + | } | |
| 57 | + | ||
| 58 | + | var xNewExpanderRow func() uintptr | |
| 59 | + | ||
| 60 | + | // Creates a new `AdwExpanderRow`. | |
| 61 | + | func NewExpanderRow() *gtk.Widget { | |
| 62 | + | NewExpanderRowPtr := xNewExpanderRow() | |
| 63 | + | if NewExpanderRowPtr == 0 { | |
| 64 | + | return nil | |
| 65 | + | } | |
| 66 | + | ||
| 67 | + | gobject.IncreaseRef(NewExpanderRowPtr) | |
| 68 | + | ||
| 69 | + | NewExpanderRowCls := >k.Widget{} | |
| 70 | + | NewExpanderRowCls.Ptr = NewExpanderRowPtr | |
| 71 | + | return NewExpanderRowCls | |
| 72 | + | } | |
| 73 | + | ||
| 74 | + | var xExpanderRowAddAction func(uintptr, uintptr) | |
| 75 | + | ||
| 76 | + | // Adds an action widget to @self. | |
| 77 | + | func (x *ExpanderRow) AddAction(WidgetVar *gtk.Widget) { | |
| 78 | + | ||
| 79 | + | xExpanderRowAddAction(x.GoPointer(), WidgetVar.GoPointer()) | |
| 80 | + | ||
| 81 | + | } | |
| 82 | + | ||
| 83 | + | var xExpanderRowAddPrefix func(uintptr, uintptr) | |
| 84 | + | ||
| 85 | + | // Adds a prefix widget to @self. | |
| 86 | + | func (x *ExpanderRow) AddPrefix(WidgetVar *gtk.Widget) { | |
| 87 | + | ||
| 88 | + | xExpanderRowAddPrefix(x.GoPointer(), WidgetVar.GoPointer()) | |
| 89 | + | ||
| 90 | + | } | |
| 91 | + | ||
| 92 | + | var xExpanderRowAddRow func(uintptr, uintptr) | |
| 93 | + | ||
| 94 | + | // Adds a widget to @self. | |
| 95 | + | // | |
| 96 | + | // The widget will appear in the expanding list below @self. | |
| 97 | + | func (x *ExpanderRow) AddRow(ChildVar *gtk.Widget) { | |
| 98 | + | ||
| 99 | + | xExpanderRowAddRow(x.GoPointer(), ChildVar.GoPointer()) | |
| 100 | + | ||
| 101 | + | } | |
| 102 | + | ||
| 103 | + | var xExpanderRowGetEnableExpansion func(uintptr) bool | |
| 104 | + | ||
| 105 | + | // Gets whether the expansion of @self is enabled. | |
| 106 | + | func (x *ExpanderRow) GetEnableExpansion() bool { | |
| 107 | + | ||
| 108 | + | return xExpanderRowGetEnableExpansion(x.GoPointer()) | |
| 109 | + | ||
| 110 | + | } | |
| 111 | + | ||
| 112 | + | var xExpanderRowGetExpanded func(uintptr) bool | |
| 113 | + | ||
| 114 | + | // Gets whether @self is expanded. | |
| 115 | + | func (x *ExpanderRow) GetExpanded() bool { | |
| 116 | + | ||
| 117 | + | return xExpanderRowGetExpanded(x.GoPointer()) | |
| 118 | + | ||
| 119 | + | } | |
| 120 | + | ||
| 121 | + | var xExpanderRowGetIconName func(uintptr) string | |
| 122 | + | ||
| 123 | + | // Gets the icon name for @self. | |
| 124 | + | func (x *ExpanderRow) GetIconName() string { | |
| 125 | + | ||
| 126 | + | return xExpanderRowGetIconName(x.GoPointer()) | |
| 127 | + | ||
| 128 | + | } | |
| 129 | + | ||
| 130 | + | var xExpanderRowGetShowEnableSwitch func(uintptr) bool | |
| 131 | + | ||
| 132 | + | // Gets whether the switch enabling the expansion of @self is visible. | |
| 133 | + | func (x *ExpanderRow) GetShowEnableSwitch() bool { | |
| 134 | + | ||
| 135 | + | return xExpanderRowGetShowEnableSwitch(x.GoPointer()) | |
| 136 | + | ||
| 137 | + | } | |
| 138 | + | ||
| 139 | + | var xExpanderRowGetSubtitle func(uintptr) string | |
| 140 | + | ||
| 141 | + | // Gets the subtitle for @self. | |
| 142 | + | func (x *ExpanderRow) GetSubtitle() string { | |
| 143 | + | ||
| 144 | + | return xExpanderRowGetSubtitle(x.GoPointer()) | |
| 145 | + | ||
| 146 | + | } | |
| 147 | + | ||
| 148 | + | var xExpanderRowGetSubtitleLines func(uintptr) bool | |
| 149 | + | ||
| 150 | + | // Gets the number of lines at the end of which the subtitle label will be | |
| 151 | + | // ellipsized. | |
| 152 | + | func (x *ExpanderRow) GetSubtitleLines() bool { | |
| 153 | + | ||
| 154 | + | return xExpanderRowGetSubtitleLines(x.GoPointer()) | |
| 155 | + | ||
| 156 | + | } | |
| 157 | + | ||
| 158 | + | var xExpanderRowGetTitleLines func(uintptr) bool | |
| 159 | + | ||
| 160 | + | // Gets the number of lines at the end of which the title label will be | |
| 161 | + | // ellipsized. | |
| 162 | + | func (x *ExpanderRow) GetTitleLines() bool { | |
| 163 | + | ||
| 164 | + | return xExpanderRowGetTitleLines(x.GoPointer()) | |
| 165 | + | ||
| 166 | + | } | |
| 167 | + | ||
| 168 | + | var xExpanderRowRemove func(uintptr, uintptr) | |
| 169 | + | ||
| 170 | + | func (x *ExpanderRow) Remove(ChildVar *gtk.Widget) { | |
| 171 | + | ||
| 172 | + | xExpanderRowRemove(x.GoPointer(), ChildVar.GoPointer()) | |
| 173 | + | ||
| 174 | + | } | |
| 175 | + | ||
| 176 | + | var xExpanderRowSetEnableExpansion func(uintptr, bool) | |
| 177 | + | ||
| 178 | + | // Sets whether the expansion of @self is enabled. | |
| 179 | + | func (x *ExpanderRow) SetEnableExpansion(EnableExpansionVar bool) { | |
| 180 | + | ||
| 181 | + | xExpanderRowSetEnableExpansion(x.GoPointer(), EnableExpansionVar) | |
| 182 | + | ||
| 183 | + | } | |
| 184 | + | ||
| 185 | + | var xExpanderRowSetExpanded func(uintptr, bool) | |
| 186 | + | ||
| 187 | + | // Sets whether @self is expanded. | |
| 188 | + | func (x *ExpanderRow) SetExpanded(ExpandedVar bool) { | |
| 189 | + | ||
| 190 | + | xExpanderRowSetExpanded(x.GoPointer(), ExpandedVar) | |
| 191 | + | ||
| 192 | + | } | |
| 193 | + | ||
| 194 | + | var xExpanderRowSetIconName func(uintptr, string) | |
| 195 | + | ||
| 196 | + | // Sets the icon name for @self. | |
| 197 | + | func (x *ExpanderRow) SetIconName(IconNameVar string) { | |
| 198 | + | ||
| 199 | + | xExpanderRowSetIconName(x.GoPointer(), IconNameVar) | |
| 200 | + | ||
| 201 | + | } | |
| 202 | + | ||
| 203 | + | var xExpanderRowSetShowEnableSwitch func(uintptr, bool) | |
| 204 | + | ||
| 205 | + | // Sets whether the switch enabling the expansion of @self is visible. | |
| 206 | + | func (x *ExpanderRow) SetShowEnableSwitch(ShowEnableSwitchVar bool) { | |
| 207 | + | ||
| 208 | + | xExpanderRowSetShowEnableSwitch(x.GoPointer(), ShowEnableSwitchVar) | |
| 209 | + | ||
| 210 | + | } | |
| 211 | + | ||
| 212 | + | var xExpanderRowSetSubtitle func(uintptr, string) | |
| 213 | + | ||
| 214 | + | // Sets the subtitle for @self. | |
| 215 | + | // | |
| 216 | + | // The subtitle is interpreted as Pango markup unless | |
| 217 | + | // [property@PreferencesRow:use-markup] is set to `FALSE`. | |
| 218 | + | func (x *ExpanderRow) SetSubtitle(SubtitleVar string) { | |
| 219 | + | ||
| 220 | + | xExpanderRowSetSubtitle(x.GoPointer(), SubtitleVar) | |
| 221 | + | ||
| 222 | + | } | |
| 223 | + | ||
| 224 | + | var xExpanderRowSetSubtitleLines func(uintptr, int32) | |
| 225 | + | ||
| 226 | + | // Sets the number of lines at the end of which the subtitle label will be | |
| 227 | + | // ellipsized. | |
| 228 | + | // | |
| 229 | + | // If the value is 0, the number of lines won't be limited. | |
| 230 | + | func (x *ExpanderRow) SetSubtitleLines(SubtitleLinesVar int32) { | |
| 231 | + | ||
| 232 | + | xExpanderRowSetSubtitleLines(x.GoPointer(), SubtitleLinesVar) | |
| 233 | + | ||
| 234 | + | } | |
| 235 | + | ||
| 236 | + | var xExpanderRowSetTitleLines func(uintptr, int32) | |
| 237 | + | ||
| 238 | + | // Sets the number of lines at the end of which the title label will be | |
| 239 | + | // ellipsized. | |
| 240 | + | // | |
| 241 | + | // If the value is 0, the number of lines won't be limited. | |
| 242 | + | func (x *ExpanderRow) SetTitleLines(TitleLinesVar int32) { | |
| 243 | + | ||
| 244 | + | xExpanderRowSetTitleLines(x.GoPointer(), TitleLinesVar) | |
| 245 | + | ||
| 246 | + | } | |
| 247 | + | ||
| 248 | + | func (c *ExpanderRow) GoPointer() uintptr { | |
| 249 | + | return c.Ptr | |
| 250 | + | } | |
| 251 | + | ||
| 252 | + | func (c *ExpanderRow) SetGoPointer(ptr uintptr) { | |
| 253 | + | c.Ptr = ptr | |
| 254 | + | } | |
| 255 | + | ||
| 256 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 257 | + | func (x *ExpanderRow) GetAccessibleRole() gtk.AccessibleRole { | |
| 258 | + | ||
| 259 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 260 | + | ||
| 261 | + | } | |
| 262 | + | ||
| 263 | + | // Resets the accessible @property to its default value. | |
| 264 | + | func (x *ExpanderRow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 265 | + | ||
| 266 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 267 | + | ||
| 268 | + | } | |
| 269 | + | ||
| 270 | + | // Resets the accessible @relation to its default value. | |
| 271 | + | func (x *ExpanderRow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 272 | + | ||
| 273 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 274 | + | ||
| 275 | + | } | |
| 276 | + | ||
| 277 | + | // Resets the accessible @state to its default value. | |
| 278 | + | func (x *ExpanderRow) ResetState(StateVar gtk.AccessibleState) { | |
| 279 | + | ||
| 280 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 281 | + | ||
| 282 | + | } | |
| 283 | + | ||
| 284 | + | // Updates a list of accessible properties. | |
| 285 | + | // | |
| 286 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 287 | + | // value types of accessible properties. | |
| 288 | + | // | |
| 289 | + | // This function should be called by `GtkWidget` types whenever | |
| 290 | + | // an accessible property change must be communicated to assistive | |
| 291 | + | // technologies. | |
| 292 | + | // | |
| 293 | + | // Example: | |
| 294 | + | // ```c | |
| 295 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 296 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 297 | + | // | |
| 298 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 299 | + | // -1); | |
| 300 | + | // | |
| 301 | + | // ``` | |
| 302 | + | func (x *ExpanderRow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 303 | + | ||
| 304 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 305 | + | ||
| 306 | + | } | |
| 307 | + | ||
| 308 | + | // Updates an array of accessible properties. | |
| 309 | + | // | |
| 310 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 311 | + | // property change must be communicated to assistive technologies. | |
| 312 | + | // | |
| 313 | + | // This function is meant to be used by language bindings. | |
| 314 | + | func (x *ExpanderRow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 315 | + | ||
| 316 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 317 | + | ||
| 318 | + | } | |
| 319 | + | ||
| 320 | + | // Updates a list of accessible relations. | |
| 321 | + | // | |
| 322 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 323 | + | // relation change must be communicated to assistive technologies. | |
| 324 | + | // | |
| 325 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 326 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 327 | + | // | |
| 328 | + | // ```c | |
| 329 | + | // gtk_accessible_update_relation (accessible, | |
| 330 | + | // | |
| 331 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 332 | + | // ref1, NULL, | |
| 333 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 334 | + | // ref1, ref2, ref3, NULL, | |
| 335 | + | // -1); | |
| 336 | + | // | |
| 337 | + | // ``` | |
| 338 | + | func (x *ExpanderRow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 339 | + | ||
| 340 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 341 | + | ||
| 342 | + | } | |
| 343 | + | ||
| 344 | + | // Updates an array of accessible relations. | |
| 345 | + | // | |
| 346 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 347 | + | // relation change must be communicated to assistive technologies. | |
| 348 | + | // | |
| 349 | + | // This function is meant to be used by language bindings. | |
| 350 | + | func (x *ExpanderRow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 351 | + | ||
| 352 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 353 | + | ||
| 354 | + | } | |
| 355 | + | ||
| 356 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 357 | + | // documentation for the value types of accessible states. | |
| 358 | + | // | |
| 359 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 360 | + | // state change must be communicated to assistive technologies. | |
| 361 | + | // | |
| 362 | + | // Example: | |
| 363 | + | // ```c | |
| 364 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 365 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 366 | + | // | |
| 367 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 368 | + | // -1); | |
| 369 | + | // | |
| 370 | + | // ``` | |
| 371 | + | func (x *ExpanderRow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 372 | + | ||
| 373 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 374 | + | ||
| 375 | + | } | |
| 376 | + | ||
| 377 | + | // Updates an array of accessible states. | |
| 378 | + | // | |
| 379 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 380 | + | // state change must be communicated to assistive technologies. | |
| 381 | + | // | |
| 382 | + | // This function is meant to be used by language bindings. | |
| 383 | + | func (x *ExpanderRow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 384 | + | ||
| 385 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 386 | + | ||
| 387 | + | } | |
| 388 | + | ||
| 389 | + | // Gets the action name for @actionable. | |
| 390 | + | func (x *ExpanderRow) GetActionName() string { | |
| 391 | + | ||
| 392 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 393 | + | ||
| 394 | + | } | |
| 395 | + | ||
| 396 | + | // Gets the current target value of @actionable. | |
| 397 | + | func (x *ExpanderRow) GetActionTargetValue() *glib.Variant { | |
| 398 | + | ||
| 399 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 400 | + | ||
| 401 | + | } | |
| 402 | + | ||
| 403 | + | // Specifies the name of the action with which this widget should be | |
| 404 | + | // associated. | |
| 405 | + | // | |
| 406 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 407 | + | // any previous action. | |
| 408 | + | // | |
| 409 | + | // Usually this function is used when the widget is located (or will be | |
| 410 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 411 | + | // | |
| 412 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 413 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 414 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 415 | + | // associated with the window. | |
| 416 | + | func (x *ExpanderRow) SetActionName(ActionNameVar string) { | |
| 417 | + | ||
| 418 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 419 | + | ||
| 420 | + | } | |
| 421 | + | ||
| 422 | + | // Sets the target of an actionable widget. | |
| 423 | + | // | |
| 424 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 425 | + | // @format_string and uses the result to call | |
| 426 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 427 | + | // | |
| 428 | + | // If you are setting a string-valued target and want to set | |
| 429 | + | // the action name at the same time, you can use | |
| 430 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 431 | + | func (x *ExpanderRow) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 432 | + | ||
| 433 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 434 | + | ||
| 435 | + | } | |
| 436 | + | ||
| 437 | + | // Sets the target value of an actionable widget. | |
| 438 | + | // | |
| 439 | + | // If @target_value is %NULL then the target value is unset. | |
| 440 | + | // | |
| 441 | + | // The target value has two purposes. First, it is used as the parameter | |
| 442 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 443 | + | // Second, it is used to determine if the widget should be rendered as | |
| 444 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 445 | + | // | |
| 446 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 447 | + | // with string state in a typical “radio button” situation. Each button | |
| 448 | + | // will be associated with the same action, but with a different target | |
| 449 | + | // value for that action. Clicking on a particular button will activate | |
| 450 | + | // the action with the target of that button, which will typically cause | |
| 451 | + | // the action’s state to change to that value. Since the action’s state | |
| 452 | + | // is now equal to the target value of the button, the button will now | |
| 453 | + | // be rendered as active (and the other buttons, with different targets, | |
| 454 | + | // rendered inactive). | |
| 455 | + | func (x *ExpanderRow) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 456 | + | ||
| 457 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 458 | + | ||
| 459 | + | } | |
| 460 | + | ||
| 461 | + | // Sets the action-name and associated string target value of an | |
| 462 | + | // actionable widget. | |
| 463 | + | // | |
| 464 | + | // @detailed_action_name is a string in the format accepted by | |
| 465 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 466 | + | func (x *ExpanderRow) SetDetailedActionName(DetailedActionNameVar string) { | |
| 467 | + | ||
| 468 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 469 | + | ||
| 470 | + | } | |
| 471 | + | ||
| 472 | + | // Gets the ID of the @buildable object. | |
| 473 | + | // | |
| 474 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 475 | + | // of the <object> tag used to construct the @buildable. | |
| 476 | + | func (x *ExpanderRow) GetBuildableId() string { | |
| 477 | + | ||
| 478 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 479 | + | ||
| 480 | + | } | |
| 481 | + | ||
| 482 | + | func init() { | |
| 483 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 484 | + | if err != nil { | |
| 485 | + | panic(err) | |
| 486 | + | } | |
| 487 | + | ||
| 488 | + | core.PuregoSafeRegister(&xNewExpanderRow, lib, "adw_expander_row_new") | |
| 489 | + | ||
| 490 | + | core.PuregoSafeRegister(&xExpanderRowAddAction, lib, "adw_expander_row_add_action") | |
| 491 | + | core.PuregoSafeRegister(&xExpanderRowAddPrefix, lib, "adw_expander_row_add_prefix") | |
| 492 | + | core.PuregoSafeRegister(&xExpanderRowAddRow, lib, "adw_expander_row_add_row") | |
| 493 | + | core.PuregoSafeRegister(&xExpanderRowGetEnableExpansion, lib, "adw_expander_row_get_enable_expansion") | |
| 494 | + | core.PuregoSafeRegister(&xExpanderRowGetExpanded, lib, "adw_expander_row_get_expanded") | |
| 495 | + | core.PuregoSafeRegister(&xExpanderRowGetIconName, lib, "adw_expander_row_get_icon_name") | |
| 496 | + | core.PuregoSafeRegister(&xExpanderRowGetShowEnableSwitch, lib, "adw_expander_row_get_show_enable_switch") | |
| 497 | + | core.PuregoSafeRegister(&xExpanderRowGetSubtitle, lib, "adw_expander_row_get_subtitle") | |
| 498 | + | core.PuregoSafeRegister(&xExpanderRowGetSubtitleLines, lib, "adw_expander_row_get_subtitle_lines") | |
| 499 | + | core.PuregoSafeRegister(&xExpanderRowGetTitleLines, lib, "adw_expander_row_get_title_lines") | |
| 500 | + | core.PuregoSafeRegister(&xExpanderRowRemove, lib, "adw_expander_row_remove") | |
| 501 | + | core.PuregoSafeRegister(&xExpanderRowSetEnableExpansion, lib, "adw_expander_row_set_enable_expansion") | |
| 502 | + | core.PuregoSafeRegister(&xExpanderRowSetExpanded, lib, "adw_expander_row_set_expanded") | |
| 503 | + | core.PuregoSafeRegister(&xExpanderRowSetIconName, lib, "adw_expander_row_set_icon_name") | |
| 504 | + | core.PuregoSafeRegister(&xExpanderRowSetShowEnableSwitch, lib, "adw_expander_row_set_show_enable_switch") | |
| 505 | + | core.PuregoSafeRegister(&xExpanderRowSetSubtitle, lib, "adw_expander_row_set_subtitle") | |
| 506 | + | core.PuregoSafeRegister(&xExpanderRowSetSubtitleLines, lib, "adw_expander_row_set_subtitle_lines") | |
| 507 | + | core.PuregoSafeRegister(&xExpanderRowSetTitleLines, lib, "adw_expander_row_set_title_lines") | |
| 508 | + | ||
| 509 | + | } | |
A v4/adw/adw-flap.go +739 -0
| @@ -0,0 +1,739 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type FlapClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | // Describes the possible folding behavior of a [class@Flap] widget. | |
| 17 | + | type FlapFoldPolicy int | |
| 18 | + | ||
| 19 | + | const ( | |
| 20 | + | ||
| 21 | + | // Disable folding, the flap cannot reach narrow | |
| 22 | + | // sizes. | |
| 23 | + | FlapFoldPolicyNeverValue FlapFoldPolicy = 0 | |
| 24 | + | // Keep the flap always folded. | |
| 25 | + | FlapFoldPolicyAlwaysValue FlapFoldPolicy = 1 | |
| 26 | + | // Fold and unfold the flap based on available | |
| 27 | + | // space. | |
| 28 | + | FlapFoldPolicyAutoValue FlapFoldPolicy = 2 | |
| 29 | + | ) | |
| 30 | + | ||
| 31 | + | // Describes transitions types of a [class@Flap] widget. | |
| 32 | + | // | |
| 33 | + | // It determines the type of animation when transitioning between children in a | |
| 34 | + | // [class@Flap] widget, as well as which areas can be swiped via | |
| 35 | + | // [property@Flap:swipe-to-open] and [property@Flap:swipe-to-close]. | |
| 36 | + | // | |
| 37 | + | // New values may be added to this enum over time. | |
| 38 | + | type FlapTransitionType int | |
| 39 | + | ||
| 40 | + | const ( | |
| 41 | + | ||
| 42 | + | // The flap slides over the content, which is | |
| 43 | + | // dimmed. When folded, only the flap can be swiped. | |
| 44 | + | FlapTransitionTypeOverValue FlapTransitionType = 0 | |
| 45 | + | // The content slides over the flap. Only the | |
| 46 | + | // content can be swiped. | |
| 47 | + | FlapTransitionTypeUnderValue FlapTransitionType = 1 | |
| 48 | + | // The flap slides offscreen when hidden, | |
| 49 | + | // neither the flap nor content overlap each other. Both widgets can be | |
| 50 | + | // swiped. | |
| 51 | + | FlapTransitionTypeSlideValue FlapTransitionType = 2 | |
| 52 | + | ) | |
| 53 | + | ||
| 54 | + | // An adaptive container acting like a box or an overlay. | |
| 55 | + | // | |
| 56 | + | // <picture> | |
| 57 | + | // | |
| 58 | + | // <source srcset="flap-wide-dark.png" media="(prefers-color-scheme: dark)"> | |
| 59 | + | // <img src="flap-wide.png" alt="flap-wide"> | |
| 60 | + | // | |
| 61 | + | // </picture> | |
| 62 | + | // <picture> | |
| 63 | + | // | |
| 64 | + | // <source srcset="flap-narrow-dark.png" media="(prefers-color-scheme: dark)"> | |
| 65 | + | // <img src="flap-narrow.png" alt="flap-narrow"> | |
| 66 | + | // | |
| 67 | + | // </picture> | |
| 68 | + | // | |
| 69 | + | // The `AdwFlap` widget can display its children like a [class@Gtk.Box] does or | |
| 70 | + | // like a [class@Gtk.Overlay] does, according to the | |
| 71 | + | // [property@Flap:fold-policy] value. | |
| 72 | + | // | |
| 73 | + | // `AdwFlap` has at most three children: [property@Flap:content], | |
| 74 | + | // [property@Flap:flap] and [property@Flap:separator]. Content is the primary | |
| 75 | + | // child, flap is displayed next to it when unfolded, or overlays it when | |
| 76 | + | // folded. Flap can be shown or hidden by changing the | |
| 77 | + | // [property@Flap:reveal-flap] value, as well as via swipe gestures if | |
| 78 | + | // [property@Flap:swipe-to-open] and/or [property@Flap:swipe-to-close] are set | |
| 79 | + | // to `TRUE`. | |
| 80 | + | // | |
| 81 | + | // Optionally, a separator can be provided, which would be displayed between | |
| 82 | + | // the content and the flap when there's no shadow to separate them, depending | |
| 83 | + | // on the transition type. | |
| 84 | + | // | |
| 85 | + | // [property@Flap:flap] is transparent by default; add the | |
| 86 | + | // [`.background`](style-classes.html#background) style class to it if this is | |
| 87 | + | // unwanted. | |
| 88 | + | // | |
| 89 | + | // If [property@Flap:modal] is set to `TRUE`, content becomes completely | |
| 90 | + | // inaccessible when the flap is revealed while folded. | |
| 91 | + | // | |
| 92 | + | // The position of the flap and separator children relative to the content is | |
| 93 | + | // determined by orientation, as well as the [property@Flap:flap-position] | |
| 94 | + | // value. | |
| 95 | + | // | |
| 96 | + | // Folding the flap will automatically hide the flap widget, and unfolding it | |
| 97 | + | // will automatically reveal it. If this behavior is not desired, the | |
| 98 | + | // [property@Flap:locked] property can be used to override it. | |
| 99 | + | // | |
| 100 | + | // Common use cases include sidebars, header bars that need to be able to | |
| 101 | + | // overlap the window content (for example, in fullscreen mode) and bottom | |
| 102 | + | // sheets. | |
| 103 | + | // | |
| 104 | + | // ## AdwFlap as GtkBuildable | |
| 105 | + | // | |
| 106 | + | // The `AdwFlap` implementation of the [iface@Gtk.Buildable] interface supports | |
| 107 | + | // setting the flap child by specifying “flap” as the “type” attribute of a | |
| 108 | + | // `<child>` element, and separator by specifying “separator”. Specifying | |
| 109 | + | // “content” child type or omitting it results in setting the content child. | |
| 110 | + | // | |
| 111 | + | // ## CSS nodes | |
| 112 | + | // | |
| 113 | + | // `AdwFlap` has a single CSS node with name `flap`. The node will get the style | |
| 114 | + | // classes `.folded` when it is folded, and `.unfolded` when it's not. | |
| 115 | + | type Flap struct { | |
| 116 | + | gtk.Widget | |
| 117 | + | } | |
| 118 | + | ||
| 119 | + | func FlapNewFromInternalPtr(ptr uintptr) *Flap { | |
| 120 | + | cls := &Flap{} | |
| 121 | + | cls.Ptr = ptr | |
| 122 | + | return cls | |
| 123 | + | } | |
| 124 | + | ||
| 125 | + | var xNewFlap func() uintptr | |
| 126 | + | ||
| 127 | + | // Creates a new `AdwFlap`. | |
| 128 | + | func NewFlap() *gtk.Widget { | |
| 129 | + | NewFlapPtr := xNewFlap() | |
| 130 | + | if NewFlapPtr == 0 { | |
| 131 | + | return nil | |
| 132 | + | } | |
| 133 | + | ||
| 134 | + | gobject.IncreaseRef(NewFlapPtr) | |
| 135 | + | ||
| 136 | + | NewFlapCls := >k.Widget{} | |
| 137 | + | NewFlapCls.Ptr = NewFlapPtr | |
| 138 | + | return NewFlapCls | |
| 139 | + | } | |
| 140 | + | ||
| 141 | + | var xFlapGetContent func(uintptr) uintptr | |
| 142 | + | ||
| 143 | + | // Gets the content widget for @self. | |
| 144 | + | func (x *Flap) GetContent() *gtk.Widget { | |
| 145 | + | ||
| 146 | + | GetContentPtr := xFlapGetContent(x.GoPointer()) | |
| 147 | + | if GetContentPtr == 0 { | |
| 148 | + | return nil | |
| 149 | + | } | |
| 150 | + | ||
| 151 | + | gobject.IncreaseRef(GetContentPtr) | |
| 152 | + | ||
| 153 | + | GetContentCls := >k.Widget{} | |
| 154 | + | GetContentCls.Ptr = GetContentPtr | |
| 155 | + | return GetContentCls | |
| 156 | + | ||
| 157 | + | } | |
| 158 | + | ||
| 159 | + | var xFlapGetFlap func(uintptr) uintptr | |
| 160 | + | ||
| 161 | + | // Gets the flap widget for @self. | |
| 162 | + | func (x *Flap) GetFlap() *gtk.Widget { | |
| 163 | + | ||
| 164 | + | GetFlapPtr := xFlapGetFlap(x.GoPointer()) | |
| 165 | + | if GetFlapPtr == 0 { | |
| 166 | + | return nil | |
| 167 | + | } | |
| 168 | + | ||
| 169 | + | gobject.IncreaseRef(GetFlapPtr) | |
| 170 | + | ||
| 171 | + | GetFlapCls := >k.Widget{} | |
| 172 | + | GetFlapCls.Ptr = GetFlapPtr | |
| 173 | + | return GetFlapCls | |
| 174 | + | ||
| 175 | + | } | |
| 176 | + | ||
| 177 | + | var xFlapGetFlapPosition func(uintptr) gtk.PackType | |
| 178 | + | ||
| 179 | + | // Gets the flap position for @self. | |
| 180 | + | func (x *Flap) GetFlapPosition() gtk.PackType { | |
| 181 | + | ||
| 182 | + | return xFlapGetFlapPosition(x.GoPointer()) | |
| 183 | + | ||
| 184 | + | } | |
| 185 | + | ||
| 186 | + | var xFlapGetFoldDuration func(uintptr) uint | |
| 187 | + | ||
| 188 | + | // Gets the fold transition animation duration for @self, in milliseconds. | |
| 189 | + | func (x *Flap) GetFoldDuration() uint { | |
| 190 | + | ||
| 191 | + | return xFlapGetFoldDuration(x.GoPointer()) | |
| 192 | + | ||
| 193 | + | } | |
| 194 | + | ||
| 195 | + | var xFlapGetFoldPolicy func(uintptr) FlapFoldPolicy | |
| 196 | + | ||
| 197 | + | // Gets the fold policy for @self. | |
| 198 | + | func (x *Flap) GetFoldPolicy() FlapFoldPolicy { | |
| 199 | + | ||
| 200 | + | return xFlapGetFoldPolicy(x.GoPointer()) | |
| 201 | + | ||
| 202 | + | } | |
| 203 | + | ||
| 204 | + | var xFlapGetFoldThresholdPolicy func(uintptr) FoldThresholdPolicy | |
| 205 | + | ||
| 206 | + | // Gets the fold threshold policy for @self. | |
| 207 | + | func (x *Flap) GetFoldThresholdPolicy() FoldThresholdPolicy { | |
| 208 | + | ||
| 209 | + | return xFlapGetFoldThresholdPolicy(x.GoPointer()) | |
| 210 | + | ||
| 211 | + | } | |
| 212 | + | ||
| 213 | + | var xFlapGetFolded func(uintptr) bool | |
| 214 | + | ||
| 215 | + | // Gets whether @self is currently folded. | |
| 216 | + | // | |
| 217 | + | // See [property@Flap:fold-policy]. | |
| 218 | + | func (x *Flap) GetFolded() bool { | |
| 219 | + | ||
| 220 | + | return xFlapGetFolded(x.GoPointer()) | |
| 221 | + | ||
| 222 | + | } | |
| 223 | + | ||
| 224 | + | var xFlapGetLocked func(uintptr) bool | |
| 225 | + | ||
| 226 | + | // Gets whether @self is locked. | |
| 227 | + | func (x *Flap) GetLocked() bool { | |
| 228 | + | ||
| 229 | + | return xFlapGetLocked(x.GoPointer()) | |
| 230 | + | ||
| 231 | + | } | |
| 232 | + | ||
| 233 | + | var xFlapGetModal func(uintptr) bool | |
| 234 | + | ||
| 235 | + | // Gets whether @self is modal. | |
| 236 | + | func (x *Flap) GetModal() bool { | |
| 237 | + | ||
| 238 | + | return xFlapGetModal(x.GoPointer()) | |
| 239 | + | ||
| 240 | + | } | |
| 241 | + | ||
| 242 | + | var xFlapGetRevealFlap func(uintptr) bool | |
| 243 | + | ||
| 244 | + | // Gets whether the flap widget is revealed for @self. | |
| 245 | + | func (x *Flap) GetRevealFlap() bool { | |
| 246 | + | ||
| 247 | + | return xFlapGetRevealFlap(x.GoPointer()) | |
| 248 | + | ||
| 249 | + | } | |
| 250 | + | ||
| 251 | + | var xFlapGetRevealParams func(uintptr) *SpringParams | |
| 252 | + | ||
| 253 | + | // Gets the reveal animation spring parameters for @self. | |
| 254 | + | func (x *Flap) GetRevealParams() *SpringParams { | |
| 255 | + | ||
| 256 | + | return xFlapGetRevealParams(x.GoPointer()) | |
| 257 | + | ||
| 258 | + | } | |
| 259 | + | ||
| 260 | + | var xFlapGetRevealProgress func(uintptr) float64 | |
| 261 | + | ||
| 262 | + | // Gets the current reveal progress for @self. | |
| 263 | + | // | |
| 264 | + | // 0 means fully hidden, 1 means fully revealed. | |
| 265 | + | // | |
| 266 | + | // See [property@Flap:reveal-flap]. | |
| 267 | + | func (x *Flap) GetRevealProgress() float64 { | |
| 268 | + | ||
| 269 | + | return xFlapGetRevealProgress(x.GoPointer()) | |
| 270 | + | ||
| 271 | + | } | |
| 272 | + | ||
| 273 | + | var xFlapGetSeparator func(uintptr) uintptr | |
| 274 | + | ||
| 275 | + | // Gets the separator widget for @self. | |
| 276 | + | func (x *Flap) GetSeparator() *gtk.Widget { | |
| 277 | + | ||
| 278 | + | GetSeparatorPtr := xFlapGetSeparator(x.GoPointer()) | |
| 279 | + | if GetSeparatorPtr == 0 { | |
| 280 | + | return nil | |
| 281 | + | } | |
| 282 | + | ||
| 283 | + | gobject.IncreaseRef(GetSeparatorPtr) | |
| 284 | + | ||
| 285 | + | GetSeparatorCls := >k.Widget{} | |
| 286 | + | GetSeparatorCls.Ptr = GetSeparatorPtr | |
| 287 | + | return GetSeparatorCls | |
| 288 | + | ||
| 289 | + | } | |
| 290 | + | ||
| 291 | + | var xFlapGetSwipeToClose func(uintptr) bool | |
| 292 | + | ||
| 293 | + | // Gets whether @self can be closed with a swipe gesture. | |
| 294 | + | func (x *Flap) GetSwipeToClose() bool { | |
| 295 | + | ||
| 296 | + | return xFlapGetSwipeToClose(x.GoPointer()) | |
| 297 | + | ||
| 298 | + | } | |
| 299 | + | ||
| 300 | + | var xFlapGetSwipeToOpen func(uintptr) bool | |
| 301 | + | ||
| 302 | + | // Gets whether @self can be opened with a swipe gesture. | |
| 303 | + | func (x *Flap) GetSwipeToOpen() bool { | |
| 304 | + | ||
| 305 | + | return xFlapGetSwipeToOpen(x.GoPointer()) | |
| 306 | + | ||
| 307 | + | } | |
| 308 | + | ||
| 309 | + | var xFlapGetTransitionType func(uintptr) FlapTransitionType | |
| 310 | + | ||
| 311 | + | // Gets the type of animation used for reveal and fold transitions in @self. | |
| 312 | + | func (x *Flap) GetTransitionType() FlapTransitionType { | |
| 313 | + | ||
| 314 | + | return xFlapGetTransitionType(x.GoPointer()) | |
| 315 | + | ||
| 316 | + | } | |
| 317 | + | ||
| 318 | + | var xFlapSetContent func(uintptr, uintptr) | |
| 319 | + | ||
| 320 | + | // Sets the content widget for @self. | |
| 321 | + | // | |
| 322 | + | // It's always displayed when unfolded, and partially visible when folded. | |
| 323 | + | func (x *Flap) SetContent(ContentVar *gtk.Widget) { | |
| 324 | + | ||
| 325 | + | xFlapSetContent(x.GoPointer(), ContentVar.GoPointer()) | |
| 326 | + | ||
| 327 | + | } | |
| 328 | + | ||
| 329 | + | var xFlapSetFlap func(uintptr, uintptr) | |
| 330 | + | ||
| 331 | + | // Sets the flap widget for @self. | |
| 332 | + | // | |
| 333 | + | // It's only visible when [property@Flap:reveal-progress] is greater than 0. | |
| 334 | + | func (x *Flap) SetFlap(FlapVar *gtk.Widget) { | |
| 335 | + | ||
| 336 | + | xFlapSetFlap(x.GoPointer(), FlapVar.GoPointer()) | |
| 337 | + | ||
| 338 | + | } | |
| 339 | + | ||
| 340 | + | var xFlapSetFlapPosition func(uintptr, gtk.PackType) | |
| 341 | + | ||
| 342 | + | // Sets the flap position for @self. | |
| 343 | + | // | |
| 344 | + | // If it's set to `GTK_PACK_START`, the flap is displayed before the content, | |
| 345 | + | // if `GTK_PACK_END`, it's displayed after the content. | |
| 346 | + | func (x *Flap) SetFlapPosition(PositionVar gtk.PackType) { | |
| 347 | + | ||
| 348 | + | xFlapSetFlapPosition(x.GoPointer(), PositionVar) | |
| 349 | + | ||
| 350 | + | } | |
| 351 | + | ||
| 352 | + | var xFlapSetFoldDuration func(uintptr, uint) | |
| 353 | + | ||
| 354 | + | // Sets the fold transition animation duration for @self, in milliseconds. | |
| 355 | + | func (x *Flap) SetFoldDuration(DurationVar uint) { | |
| 356 | + | ||
| 357 | + | xFlapSetFoldDuration(x.GoPointer(), DurationVar) | |
| 358 | + | ||
| 359 | + | } | |
| 360 | + | ||
| 361 | + | var xFlapSetFoldPolicy func(uintptr, FlapFoldPolicy) | |
| 362 | + | ||
| 363 | + | // Sets the fold policy for @self. | |
| 364 | + | func (x *Flap) SetFoldPolicy(PolicyVar FlapFoldPolicy) { | |
| 365 | + | ||
| 366 | + | xFlapSetFoldPolicy(x.GoPointer(), PolicyVar) | |
| 367 | + | ||
| 368 | + | } | |
| 369 | + | ||
| 370 | + | var xFlapSetFoldThresholdPolicy func(uintptr, FoldThresholdPolicy) | |
| 371 | + | ||
| 372 | + | // Sets the fold threshold policy for @self. | |
| 373 | + | // | |
| 374 | + | // If set to `ADW_FOLD_THRESHOLD_POLICY_MINIMUM`, flap will only fold when the | |
| 375 | + | // children cannot fit anymore. With `ADW_FOLD_THRESHOLD_POLICY_NATURAL`, it | |
| 376 | + | // will fold as soon as children don't get their natural size. | |
| 377 | + | // | |
| 378 | + | // This can be useful if you have a long ellipsizing label and want to let it | |
| 379 | + | // ellipsize instead of immediately folding. | |
| 380 | + | func (x *Flap) SetFoldThresholdPolicy(PolicyVar FoldThresholdPolicy) { | |
| 381 | + | ||
| 382 | + | xFlapSetFoldThresholdPolicy(x.GoPointer(), PolicyVar) | |
| 383 | + | ||
| 384 | + | } | |
| 385 | + | ||
| 386 | + | var xFlapSetLocked func(uintptr, bool) | |
| 387 | + | ||
| 388 | + | // Sets whether @self is locked. | |
| 389 | + | // | |
| 390 | + | // If `FALSE`, folding when the flap is revealed automatically closes it, and | |
| 391 | + | // unfolding it when the flap is not revealed opens it. If `TRUE`, | |
| 392 | + | // [property@Flap:reveal-flap] value never changes on its own. | |
| 393 | + | func (x *Flap) SetLocked(LockedVar bool) { | |
| 394 | + | ||
| 395 | + | xFlapSetLocked(x.GoPointer(), LockedVar) | |
| 396 | + | ||
| 397 | + | } | |
| 398 | + | ||
| 399 | + | var xFlapSetModal func(uintptr, bool) | |
| 400 | + | ||
| 401 | + | // Sets whether @self is modal. | |
| 402 | + | // | |
| 403 | + | // If `TRUE`, clicking the content widget while flap is revealed, as well as | |
| 404 | + | // pressing the <kbd>Esc</kbd> key, will close the flap. If `FALSE`, clicks are | |
| 405 | + | // passed through to the content widget. | |
| 406 | + | func (x *Flap) SetModal(ModalVar bool) { | |
| 407 | + | ||
| 408 | + | xFlapSetModal(x.GoPointer(), ModalVar) | |
| 409 | + | ||
| 410 | + | } | |
| 411 | + | ||
| 412 | + | var xFlapSetRevealFlap func(uintptr, bool) | |
| 413 | + | ||
| 414 | + | // Sets whether the flap widget is revealed for @self. | |
| 415 | + | func (x *Flap) SetRevealFlap(RevealFlapVar bool) { | |
| 416 | + | ||
| 417 | + | xFlapSetRevealFlap(x.GoPointer(), RevealFlapVar) | |
| 418 | + | ||
| 419 | + | } | |
| 420 | + | ||
| 421 | + | var xFlapSetRevealParams func(uintptr, *SpringParams) | |
| 422 | + | ||
| 423 | + | // Sets the reveal animation spring parameters for @self. | |
| 424 | + | // | |
| 425 | + | // The default value is equivalent to: | |
| 426 | + | // | |
| 427 | + | // ```c | |
| 428 | + | // adw_spring_params_new (1, 0.5, 500) | |
| 429 | + | // ``` | |
| 430 | + | func (x *Flap) SetRevealParams(ParamsVar *SpringParams) { | |
| 431 | + | ||
| 432 | + | xFlapSetRevealParams(x.GoPointer(), ParamsVar) | |
| 433 | + | ||
| 434 | + | } | |
| 435 | + | ||
| 436 | + | var xFlapSetSeparator func(uintptr, uintptr) | |
| 437 | + | ||
| 438 | + | // Sets the separator widget for @self. | |
| 439 | + | // | |
| 440 | + | // It's displayed between content and flap when there's no shadow to display. | |
| 441 | + | // When exactly it's visible depends on the [property@Flap:transition-type] | |
| 442 | + | // value. | |
| 443 | + | func (x *Flap) SetSeparator(SeparatorVar *gtk.Widget) { | |
| 444 | + | ||
| 445 | + | xFlapSetSeparator(x.GoPointer(), SeparatorVar.GoPointer()) | |
| 446 | + | ||
| 447 | + | } | |
| 448 | + | ||
| 449 | + | var xFlapSetSwipeToClose func(uintptr, bool) | |
| 450 | + | ||
| 451 | + | // Sets whether @self can be closed with a swipe gesture. | |
| 452 | + | // | |
| 453 | + | // The area that can be swiped depends on the [property@Flap:transition-type] | |
| 454 | + | // value. | |
| 455 | + | func (x *Flap) SetSwipeToClose(SwipeToCloseVar bool) { | |
| 456 | + | ||
| 457 | + | xFlapSetSwipeToClose(x.GoPointer(), SwipeToCloseVar) | |
| 458 | + | ||
| 459 | + | } | |
| 460 | + | ||
| 461 | + | var xFlapSetSwipeToOpen func(uintptr, bool) | |
| 462 | + | ||
| 463 | + | // Sets whether @self can be opened with a swipe gesture. | |
| 464 | + | // | |
| 465 | + | // The area that can be swiped depends on the [property@Flap:transition-type] | |
| 466 | + | // value. | |
| 467 | + | func (x *Flap) SetSwipeToOpen(SwipeToOpenVar bool) { | |
| 468 | + | ||
| 469 | + | xFlapSetSwipeToOpen(x.GoPointer(), SwipeToOpenVar) | |
| 470 | + | ||
| 471 | + | } | |
| 472 | + | ||
| 473 | + | var xFlapSetTransitionType func(uintptr, FlapTransitionType) | |
| 474 | + | ||
| 475 | + | // Sets the type of animation used for reveal and fold transitions in @self. | |
| 476 | + | // | |
| 477 | + | // [property@Flap:flap] is transparent by default, which means the content will | |
| 478 | + | // be seen through it with `ADW_FLAP_TRANSITION_TYPE_OVER` transitions; add the | |
| 479 | + | // [`.background`](style-classes.html#background) style class to it if this is | |
| 480 | + | // unwanted. | |
| 481 | + | func (x *Flap) SetTransitionType(TransitionTypeVar FlapTransitionType) { | |
| 482 | + | ||
| 483 | + | xFlapSetTransitionType(x.GoPointer(), TransitionTypeVar) | |
| 484 | + | ||
| 485 | + | } | |
| 486 | + | ||
| 487 | + | func (c *Flap) GoPointer() uintptr { | |
| 488 | + | return c.Ptr | |
| 489 | + | } | |
| 490 | + | ||
| 491 | + | func (c *Flap) SetGoPointer(ptr uintptr) { | |
| 492 | + | c.Ptr = ptr | |
| 493 | + | } | |
| 494 | + | ||
| 495 | + | // Gets the progress @self will snap back to after the gesture is canceled. | |
| 496 | + | func (x *Flap) GetCancelProgress() float64 { | |
| 497 | + | ||
| 498 | + | return XAdwSwipeableGetCancelProgress(x.GoPointer()) | |
| 499 | + | ||
| 500 | + | } | |
| 501 | + | ||
| 502 | + | // Gets the swipe distance of @self. | |
| 503 | + | // | |
| 504 | + | // This corresponds to how many pixels 1 unit represents. | |
| 505 | + | func (x *Flap) GetDistance() float64 { | |
| 506 | + | ||
| 507 | + | return XAdwSwipeableGetDistance(x.GoPointer()) | |
| 508 | + | ||
| 509 | + | } | |
| 510 | + | ||
| 511 | + | // Gets the current progress of @self. | |
| 512 | + | func (x *Flap) GetProgress() float64 { | |
| 513 | + | ||
| 514 | + | return XAdwSwipeableGetProgress(x.GoPointer()) | |
| 515 | + | ||
| 516 | + | } | |
| 517 | + | ||
| 518 | + | // Gets the snap points of @self. | |
| 519 | + | // | |
| 520 | + | // Each snap point represents a progress value that is considered acceptable to | |
| 521 | + | // end the swipe on. | |
| 522 | + | func (x *Flap) GetSnapPoints(NSnapPointsVar int32) uintptr { | |
| 523 | + | ||
| 524 | + | return XAdwSwipeableGetSnapPoints(x.GoPointer(), NSnapPointsVar) | |
| 525 | + | ||
| 526 | + | } | |
| 527 | + | ||
| 528 | + | // Gets the area @self can start a swipe from for the given direction and | |
| 529 | + | // gesture type. | |
| 530 | + | // | |
| 531 | + | // This can be used to restrict swipes to only be possible from a certain area, | |
| 532 | + | // for example, to only allow edge swipes, or to have a draggable element and | |
| 533 | + | // ignore swipes elsewhere. | |
| 534 | + | // | |
| 535 | + | // If not implemented, the default implementation returns the allocation of | |
| 536 | + | // @self, allowing swipes from anywhere. | |
| 537 | + | func (x *Flap) GetSwipeArea(NavigationDirectionVar NavigationDirection, IsDragVar bool, RectVar *gdk.Rectangle) { | |
| 538 | + | ||
| 539 | + | XAdwSwipeableGetSwipeArea(x.GoPointer(), NavigationDirectionVar, IsDragVar, RectVar) | |
| 540 | + | ||
| 541 | + | } | |
| 542 | + | ||
| 543 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 544 | + | func (x *Flap) GetAccessibleRole() gtk.AccessibleRole { | |
| 545 | + | ||
| 546 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 547 | + | ||
| 548 | + | } | |
| 549 | + | ||
| 550 | + | // Resets the accessible @property to its default value. | |
| 551 | + | func (x *Flap) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 552 | + | ||
| 553 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 554 | + | ||
| 555 | + | } | |
| 556 | + | ||
| 557 | + | // Resets the accessible @relation to its default value. | |
| 558 | + | func (x *Flap) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 559 | + | ||
| 560 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 561 | + | ||
| 562 | + | } | |
| 563 | + | ||
| 564 | + | // Resets the accessible @state to its default value. | |
| 565 | + | func (x *Flap) ResetState(StateVar gtk.AccessibleState) { | |
| 566 | + | ||
| 567 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 568 | + | ||
| 569 | + | } | |
| 570 | + | ||
| 571 | + | // Updates a list of accessible properties. | |
| 572 | + | // | |
| 573 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 574 | + | // value types of accessible properties. | |
| 575 | + | // | |
| 576 | + | // This function should be called by `GtkWidget` types whenever | |
| 577 | + | // an accessible property change must be communicated to assistive | |
| 578 | + | // technologies. | |
| 579 | + | // | |
| 580 | + | // Example: | |
| 581 | + | // ```c | |
| 582 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 583 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 584 | + | // | |
| 585 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 586 | + | // -1); | |
| 587 | + | // | |
| 588 | + | // ``` | |
| 589 | + | func (x *Flap) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 590 | + | ||
| 591 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 592 | + | ||
| 593 | + | } | |
| 594 | + | ||
| 595 | + | // Updates an array of accessible properties. | |
| 596 | + | // | |
| 597 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 598 | + | // property change must be communicated to assistive technologies. | |
| 599 | + | // | |
| 600 | + | // This function is meant to be used by language bindings. | |
| 601 | + | func (x *Flap) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 602 | + | ||
| 603 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 604 | + | ||
| 605 | + | } | |
| 606 | + | ||
| 607 | + | // Updates a list of accessible relations. | |
| 608 | + | // | |
| 609 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 610 | + | // relation change must be communicated to assistive technologies. | |
| 611 | + | // | |
| 612 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 613 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 614 | + | // | |
| 615 | + | // ```c | |
| 616 | + | // gtk_accessible_update_relation (accessible, | |
| 617 | + | // | |
| 618 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 619 | + | // ref1, NULL, | |
| 620 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 621 | + | // ref1, ref2, ref3, NULL, | |
| 622 | + | // -1); | |
| 623 | + | // | |
| 624 | + | // ``` | |
| 625 | + | func (x *Flap) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 626 | + | ||
| 627 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 628 | + | ||
| 629 | + | } | |
| 630 | + | ||
| 631 | + | // Updates an array of accessible relations. | |
| 632 | + | // | |
| 633 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 634 | + | // relation change must be communicated to assistive technologies. | |
| 635 | + | // | |
| 636 | + | // This function is meant to be used by language bindings. | |
| 637 | + | func (x *Flap) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 638 | + | ||
| 639 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 640 | + | ||
| 641 | + | } | |
| 642 | + | ||
| 643 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 644 | + | // documentation for the value types of accessible states. | |
| 645 | + | // | |
| 646 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 647 | + | // state change must be communicated to assistive technologies. | |
| 648 | + | // | |
| 649 | + | // Example: | |
| 650 | + | // ```c | |
| 651 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 652 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 653 | + | // | |
| 654 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 655 | + | // -1); | |
| 656 | + | // | |
| 657 | + | // ``` | |
| 658 | + | func (x *Flap) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 659 | + | ||
| 660 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 661 | + | ||
| 662 | + | } | |
| 663 | + | ||
| 664 | + | // Updates an array of accessible states. | |
| 665 | + | // | |
| 666 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 667 | + | // state change must be communicated to assistive technologies. | |
| 668 | + | // | |
| 669 | + | // This function is meant to be used by language bindings. | |
| 670 | + | func (x *Flap) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 671 | + | ||
| 672 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 673 | + | ||
| 674 | + | } | |
| 675 | + | ||
| 676 | + | // Gets the ID of the @buildable object. | |
| 677 | + | // | |
| 678 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 679 | + | // of the <object> tag used to construct the @buildable. | |
| 680 | + | func (x *Flap) GetBuildableId() string { | |
| 681 | + | ||
| 682 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 683 | + | ||
| 684 | + | } | |
| 685 | + | ||
| 686 | + | // Retrieves the orientation of the @orientable. | |
| 687 | + | func (x *Flap) GetOrientation() gtk.Orientation { | |
| 688 | + | ||
| 689 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 690 | + | ||
| 691 | + | } | |
| 692 | + | ||
| 693 | + | // Sets the orientation of the @orientable. | |
| 694 | + | func (x *Flap) SetOrientation(OrientationVar gtk.Orientation) { | |
| 695 | + | ||
| 696 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 697 | + | ||
| 698 | + | } | |
| 699 | + | ||
| 700 | + | func init() { | |
| 701 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 702 | + | if err != nil { | |
| 703 | + | panic(err) | |
| 704 | + | } | |
| 705 | + | ||
| 706 | + | core.PuregoSafeRegister(&xNewFlap, lib, "adw_flap_new") | |
| 707 | + | ||
| 708 | + | core.PuregoSafeRegister(&xFlapGetContent, lib, "adw_flap_get_content") | |
| 709 | + | core.PuregoSafeRegister(&xFlapGetFlap, lib, "adw_flap_get_flap") | |
| 710 | + | core.PuregoSafeRegister(&xFlapGetFlapPosition, lib, "adw_flap_get_flap_position") | |
| 711 | + | core.PuregoSafeRegister(&xFlapGetFoldDuration, lib, "adw_flap_get_fold_duration") | |
| 712 | + | core.PuregoSafeRegister(&xFlapGetFoldPolicy, lib, "adw_flap_get_fold_policy") | |
| 713 | + | core.PuregoSafeRegister(&xFlapGetFoldThresholdPolicy, lib, "adw_flap_get_fold_threshold_policy") | |
| 714 | + | core.PuregoSafeRegister(&xFlapGetFolded, lib, "adw_flap_get_folded") | |
| 715 | + | core.PuregoSafeRegister(&xFlapGetLocked, lib, "adw_flap_get_locked") | |
| 716 | + | core.PuregoSafeRegister(&xFlapGetModal, lib, "adw_flap_get_modal") | |
| 717 | + | core.PuregoSafeRegister(&xFlapGetRevealFlap, lib, "adw_flap_get_reveal_flap") | |
| 718 | + | core.PuregoSafeRegister(&xFlapGetRevealParams, lib, "adw_flap_get_reveal_params") | |
| 719 | + | core.PuregoSafeRegister(&xFlapGetRevealProgress, lib, "adw_flap_get_reveal_progress") | |
| 720 | + | core.PuregoSafeRegister(&xFlapGetSeparator, lib, "adw_flap_get_separator") | |
| 721 | + | core.PuregoSafeRegister(&xFlapGetSwipeToClose, lib, "adw_flap_get_swipe_to_close") | |
| 722 | + | core.PuregoSafeRegister(&xFlapGetSwipeToOpen, lib, "adw_flap_get_swipe_to_open") | |
| 723 | + | core.PuregoSafeRegister(&xFlapGetTransitionType, lib, "adw_flap_get_transition_type") | |
| 724 | + | core.PuregoSafeRegister(&xFlapSetContent, lib, "adw_flap_set_content") | |
| 725 | + | core.PuregoSafeRegister(&xFlapSetFlap, lib, "adw_flap_set_flap") | |
| 726 | + | core.PuregoSafeRegister(&xFlapSetFlapPosition, lib, "adw_flap_set_flap_position") | |
| 727 | + | core.PuregoSafeRegister(&xFlapSetFoldDuration, lib, "adw_flap_set_fold_duration") | |
| 728 | + | core.PuregoSafeRegister(&xFlapSetFoldPolicy, lib, "adw_flap_set_fold_policy") | |
| 729 | + | core.PuregoSafeRegister(&xFlapSetFoldThresholdPolicy, lib, "adw_flap_set_fold_threshold_policy") | |
| 730 | + | core.PuregoSafeRegister(&xFlapSetLocked, lib, "adw_flap_set_locked") | |
| 731 | + | core.PuregoSafeRegister(&xFlapSetModal, lib, "adw_flap_set_modal") | |
| 732 | + | core.PuregoSafeRegister(&xFlapSetRevealFlap, lib, "adw_flap_set_reveal_flap") | |
| 733 | + | core.PuregoSafeRegister(&xFlapSetRevealParams, lib, "adw_flap_set_reveal_params") | |
| 734 | + | core.PuregoSafeRegister(&xFlapSetSeparator, lib, "adw_flap_set_separator") | |
| 735 | + | core.PuregoSafeRegister(&xFlapSetSwipeToClose, lib, "adw_flap_set_swipe_to_close") | |
| 736 | + | core.PuregoSafeRegister(&xFlapSetSwipeToOpen, lib, "adw_flap_set_swipe_to_open") | |
| 737 | + | core.PuregoSafeRegister(&xFlapSetTransitionType, lib, "adw_flap_set_transition_type") | |
| 738 | + | ||
| 739 | + | } | |
A v4/adw/adw-fold-threshold-policy.go +13 -0
| @@ -0,0 +1,13 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | // Determines when [class@Flap] and [class@Leaflet] will fold. | |
| 5 | + | type FoldThresholdPolicy int | |
| 6 | + | ||
| 7 | + | const ( | |
| 8 | + | ||
| 9 | + | // Folding is based on the minimum size | |
| 10 | + | FoldThresholdPolicyMinimumValue FoldThresholdPolicy = 0 | |
| 11 | + | // Folding is based on the natural size | |
| 12 | + | FoldThresholdPolicyNaturalValue FoldThresholdPolicy = 1 | |
| 13 | + | ) | |
A v4/adw/adw-header-bar.go +486 -0
| @@ -0,0 +1,486 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type HeaderBarClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | } | |
| 14 | + | ||
| 15 | + | // Describes title centering behavior of a [class@HeaderBar] widget. | |
| 16 | + | type CenteringPolicy int | |
| 17 | + | ||
| 18 | + | const ( | |
| 19 | + | ||
| 20 | + | // Keep the title centered when possible | |
| 21 | + | CenteringPolicyLooseValue CenteringPolicy = 0 | |
| 22 | + | // Keep the title centered at all cost | |
| 23 | + | CenteringPolicyStrictValue CenteringPolicy = 1 | |
| 24 | + | ) | |
| 25 | + | ||
| 26 | + | // A title bar widget. | |
| 27 | + | // | |
| 28 | + | // <picture> | |
| 29 | + | // | |
| 30 | + | // <source srcset="header-bar-dark.png" media="(prefers-color-scheme: dark)"> | |
| 31 | + | // <img src="header-bar.png" alt="header-bar"> | |
| 32 | + | // | |
| 33 | + | // </picture> | |
| 34 | + | // | |
| 35 | + | // `AdwHeaderBar` is similar to [class@Gtk.HeaderBar], but provides additional | |
| 36 | + | // features compared to it. Refer to `GtkHeaderBar` for details. | |
| 37 | + | // | |
| 38 | + | // [property@HeaderBar:centering-policy] allows to enforce strict centering of | |
| 39 | + | // the title widget, this is useful for [class@ViewSwitcherTitle]. | |
| 40 | + | // | |
| 41 | + | // [property@HeaderBar:show-start-title-buttons] and | |
| 42 | + | // [property@HeaderBar:show-end-title-buttons] allow to easily create split | |
| 43 | + | // header bar layouts using [class@Leaflet], as follows: | |
| 44 | + | // | |
| 45 | + | // ```xml | |
| 46 | + | // <object class="AdwLeaflet" id="leaflet"> | |
| 47 | + | // | |
| 48 | + | // <child> | |
| 49 | + | // <object class="GtkBox"> | |
| 50 | + | // <property name="orientation">vertical</property> | |
| 51 | + | // <child> | |
| 52 | + | // <object class="AdwHeaderBar"> | |
| 53 | + | // <binding name="show-end-title-buttons"> | |
| 54 | + | // <lookup name="folded">leaflet</lookup> | |
| 55 | + | // </binding> | |
| 56 | + | // </object> | |
| 57 | + | // </child> | |
| 58 | + | // <!-- ... --> | |
| 59 | + | // </object> | |
| 60 | + | // </child> | |
| 61 | + | // <!-- ... --> | |
| 62 | + | // <child> | |
| 63 | + | // <object class="GtkBox"> | |
| 64 | + | // <property name="orientation">vertical</property> | |
| 65 | + | // <property name="hexpand">True</property> | |
| 66 | + | // <child> | |
| 67 | + | // <object class="AdwHeaderBar"> | |
| 68 | + | // <binding name="show-start-title-buttons"> | |
| 69 | + | // <lookup name="folded">leaflet</lookup> | |
| 70 | + | // </binding> | |
| 71 | + | // </object> | |
| 72 | + | // </child> | |
| 73 | + | // <!-- ... --> | |
| 74 | + | // </object> | |
| 75 | + | // </child> | |
| 76 | + | // | |
| 77 | + | // </object> | |
| 78 | + | // ``` | |
| 79 | + | // | |
| 80 | + | // <picture> | |
| 81 | + | // | |
| 82 | + | // <source srcset="header-bar-split-dark.png" media="(prefers-color-scheme: dark)"> | |
| 83 | + | // <img src="header-bar-split.png" alt="header-bar-split"> | |
| 84 | + | // | |
| 85 | + | // </picture> | |
| 86 | + | // | |
| 87 | + | // ## CSS nodes | |
| 88 | + | // | |
| 89 | + | // ``` | |
| 90 | + | // headerbar | |
| 91 | + | // ╰── windowhandle | |
| 92 | + | // | |
| 93 | + | // ╰── box | |
| 94 | + | // ├── widget | |
| 95 | + | // │ ╰── box.start | |
| 96 | + | // │ ├── windowcontrols.start | |
| 97 | + | // │ ╰── [other children] | |
| 98 | + | // ├── [Title Widget] | |
| 99 | + | // ╰── widget | |
| 100 | + | // ╰── box.end | |
| 101 | + | // ├── [other children] | |
| 102 | + | // ╰── windowcontrols.end | |
| 103 | + | // | |
| 104 | + | // ``` | |
| 105 | + | // | |
| 106 | + | // `AdwHeaderBar`'s CSS node is called `headerbar`. It contains a `windowhandle` | |
| 107 | + | // subnode, which contains a `box` subnode, which contains two `widget` subnodes | |
| 108 | + | // at the start and end of the header bar, each of which contains a `box` | |
| 109 | + | // subnode with the `.start` and `.end` style classes respectively, as well as a | |
| 110 | + | // center node that represents the title. | |
| 111 | + | // | |
| 112 | + | // Each of the boxes contains a `windowcontrols` subnode, see | |
| 113 | + | // [class@Gtk.WindowControls] for details, as well as other children. | |
| 114 | + | // | |
| 115 | + | // ## Accessibility | |
| 116 | + | // | |
| 117 | + | // `AdwHeaderBar` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. | |
| 118 | + | type HeaderBar struct { | |
| 119 | + | gtk.Widget | |
| 120 | + | } | |
| 121 | + | ||
| 122 | + | func HeaderBarNewFromInternalPtr(ptr uintptr) *HeaderBar { | |
| 123 | + | cls := &HeaderBar{} | |
| 124 | + | cls.Ptr = ptr | |
| 125 | + | return cls | |
| 126 | + | } | |
| 127 | + | ||
| 128 | + | var xNewHeaderBar func() uintptr | |
| 129 | + | ||
| 130 | + | // Creates a new `AdwHeaderBar`. | |
| 131 | + | func NewHeaderBar() *gtk.Widget { | |
| 132 | + | NewHeaderBarPtr := xNewHeaderBar() | |
| 133 | + | if NewHeaderBarPtr == 0 { | |
| 134 | + | return nil | |
| 135 | + | } | |
| 136 | + | ||
| 137 | + | gobject.IncreaseRef(NewHeaderBarPtr) | |
| 138 | + | ||
| 139 | + | NewHeaderBarCls := >k.Widget{} | |
| 140 | + | NewHeaderBarCls.Ptr = NewHeaderBarPtr | |
| 141 | + | return NewHeaderBarCls | |
| 142 | + | } | |
| 143 | + | ||
| 144 | + | var xHeaderBarGetCenteringPolicy func(uintptr) CenteringPolicy | |
| 145 | + | ||
| 146 | + | // Gets the policy for aligning the center widget. | |
| 147 | + | func (x *HeaderBar) GetCenteringPolicy() CenteringPolicy { | |
| 148 | + | ||
| 149 | + | return xHeaderBarGetCenteringPolicy(x.GoPointer()) | |
| 150 | + | ||
| 151 | + | } | |
| 152 | + | ||
| 153 | + | var xHeaderBarGetDecorationLayout func(uintptr) string | |
| 154 | + | ||
| 155 | + | // Gets the decoration layout for @self. | |
| 156 | + | func (x *HeaderBar) GetDecorationLayout() string { | |
| 157 | + | ||
| 158 | + | return xHeaderBarGetDecorationLayout(x.GoPointer()) | |
| 159 | + | ||
| 160 | + | } | |
| 161 | + | ||
| 162 | + | var xHeaderBarGetShowEndTitleButtons func(uintptr) bool | |
| 163 | + | ||
| 164 | + | // Gets whether to show title buttons at the end of @self. | |
| 165 | + | func (x *HeaderBar) GetShowEndTitleButtons() bool { | |
| 166 | + | ||
| 167 | + | return xHeaderBarGetShowEndTitleButtons(x.GoPointer()) | |
| 168 | + | ||
| 169 | + | } | |
| 170 | + | ||
| 171 | + | var xHeaderBarGetShowStartTitleButtons func(uintptr) bool | |
| 172 | + | ||
| 173 | + | // Gets whether to show title buttons at the start of @self. | |
| 174 | + | func (x *HeaderBar) GetShowStartTitleButtons() bool { | |
| 175 | + | ||
| 176 | + | return xHeaderBarGetShowStartTitleButtons(x.GoPointer()) | |
| 177 | + | ||
| 178 | + | } | |
| 179 | + | ||
| 180 | + | var xHeaderBarGetTitleWidget func(uintptr) uintptr | |
| 181 | + | ||
| 182 | + | // Gets the title widget widget of @self. | |
| 183 | + | func (x *HeaderBar) GetTitleWidget() *gtk.Widget { | |
| 184 | + | ||
| 185 | + | GetTitleWidgetPtr := xHeaderBarGetTitleWidget(x.GoPointer()) | |
| 186 | + | if GetTitleWidgetPtr == 0 { | |
| 187 | + | return nil | |
| 188 | + | } | |
| 189 | + | ||
| 190 | + | gobject.IncreaseRef(GetTitleWidgetPtr) | |
| 191 | + | ||
| 192 | + | GetTitleWidgetCls := >k.Widget{} | |
| 193 | + | GetTitleWidgetCls.Ptr = GetTitleWidgetPtr | |
| 194 | + | return GetTitleWidgetCls | |
| 195 | + | ||
| 196 | + | } | |
| 197 | + | ||
| 198 | + | var xHeaderBarPackEnd func(uintptr, uintptr) | |
| 199 | + | ||
| 200 | + | // Adds @child to @self, packed with reference to the end of @self. | |
| 201 | + | func (x *HeaderBar) PackEnd(ChildVar *gtk.Widget) { | |
| 202 | + | ||
| 203 | + | xHeaderBarPackEnd(x.GoPointer(), ChildVar.GoPointer()) | |
| 204 | + | ||
| 205 | + | } | |
| 206 | + | ||
| 207 | + | var xHeaderBarPackStart func(uintptr, uintptr) | |
| 208 | + | ||
| 209 | + | // Adds @child to @self, packed with reference to the start of the @self. | |
| 210 | + | func (x *HeaderBar) PackStart(ChildVar *gtk.Widget) { | |
| 211 | + | ||
| 212 | + | xHeaderBarPackStart(x.GoPointer(), ChildVar.GoPointer()) | |
| 213 | + | ||
| 214 | + | } | |
| 215 | + | ||
| 216 | + | var xHeaderBarRemove func(uintptr, uintptr) | |
| 217 | + | ||
| 218 | + | // Removes a child from @self. | |
| 219 | + | // | |
| 220 | + | // The child must have been added with [method@HeaderBar.pack_start], | |
| 221 | + | // [method@HeaderBar.pack_end] or [property@HeaderBar:title-widget]. | |
| 222 | + | func (x *HeaderBar) Remove(ChildVar *gtk.Widget) { | |
| 223 | + | ||
| 224 | + | xHeaderBarRemove(x.GoPointer(), ChildVar.GoPointer()) | |
| 225 | + | ||
| 226 | + | } | |
| 227 | + | ||
| 228 | + | var xHeaderBarSetCenteringPolicy func(uintptr, CenteringPolicy) | |
| 229 | + | ||
| 230 | + | // Sets the policy for aligning the center widget. | |
| 231 | + | func (x *HeaderBar) SetCenteringPolicy(CenteringPolicyVar CenteringPolicy) { | |
| 232 | + | ||
| 233 | + | xHeaderBarSetCenteringPolicy(x.GoPointer(), CenteringPolicyVar) | |
| 234 | + | ||
| 235 | + | } | |
| 236 | + | ||
| 237 | + | var xHeaderBarSetDecorationLayout func(uintptr, string) | |
| 238 | + | ||
| 239 | + | // Sets the decoration layout for @self. | |
| 240 | + | // | |
| 241 | + | // If this property is not set, the | |
| 242 | + | // [property@Gtk.Settings:gtk-decoration-layout] setting is used. | |
| 243 | + | // | |
| 244 | + | // The format of the string is button names, separated by commas. A colon | |
| 245 | + | // separates the buttons that should appear at the start from those at the end. | |
| 246 | + | // Recognized button names are minimize, maximize, close and icon (the window | |
| 247 | + | // icon). | |
| 248 | + | // | |
| 249 | + | // For example, “icon:minimize,maximize,close” specifies an icon at the start, | |
| 250 | + | // and minimize, maximize and close buttons at the end. | |
| 251 | + | func (x *HeaderBar) SetDecorationLayout(LayoutVar string) { | |
| 252 | + | ||
| 253 | + | xHeaderBarSetDecorationLayout(x.GoPointer(), LayoutVar) | |
| 254 | + | ||
| 255 | + | } | |
| 256 | + | ||
| 257 | + | var xHeaderBarSetShowEndTitleButtons func(uintptr, bool) | |
| 258 | + | ||
| 259 | + | // Sets whether to show title buttons at the end of @self. | |
| 260 | + | // | |
| 261 | + | // See [property@HeaderBar:show-start-title-buttons] for the other side. | |
| 262 | + | // | |
| 263 | + | // Which buttons are actually shown and where is determined by the | |
| 264 | + | // [property@HeaderBar:decoration-layout] property, and by the state of the | |
| 265 | + | // window (e.g. a close button will not be shown if the window can't be closed). | |
| 266 | + | func (x *HeaderBar) SetShowEndTitleButtons(SettingVar bool) { | |
| 267 | + | ||
| 268 | + | xHeaderBarSetShowEndTitleButtons(x.GoPointer(), SettingVar) | |
| 269 | + | ||
| 270 | + | } | |
| 271 | + | ||
| 272 | + | var xHeaderBarSetShowStartTitleButtons func(uintptr, bool) | |
| 273 | + | ||
| 274 | + | // Sets whether to show title buttons at the start of @self. | |
| 275 | + | // | |
| 276 | + | // See [property@HeaderBar:show-end-title-buttons] for the other side. | |
| 277 | + | // | |
| 278 | + | // Which buttons are actually shown and where is determined by the | |
| 279 | + | // [property@HeaderBar:decoration-layout] property, and by the state of the | |
| 280 | + | // window (e.g. a close button will not be shown if the window can't be closed). | |
| 281 | + | func (x *HeaderBar) SetShowStartTitleButtons(SettingVar bool) { | |
| 282 | + | ||
| 283 | + | xHeaderBarSetShowStartTitleButtons(x.GoPointer(), SettingVar) | |
| 284 | + | ||
| 285 | + | } | |
| 286 | + | ||
| 287 | + | var xHeaderBarSetTitleWidget func(uintptr, uintptr) | |
| 288 | + | ||
| 289 | + | // Sets the title widget for @self. | |
| 290 | + | // | |
| 291 | + | // When set to `NULL`, the header bar will display the title of the window it | |
| 292 | + | // is contained in. | |
| 293 | + | // | |
| 294 | + | // To use a different title, use [class@WindowTitle]: | |
| 295 | + | // | |
| 296 | + | // ```xml | |
| 297 | + | // <object class="AdwHeaderBar"> | |
| 298 | + | // | |
| 299 | + | // <property name="title-widget"> | |
| 300 | + | // <object class="AdwWindowTitle"> | |
| 301 | + | // <property name="title" translatable="yes">Title</property> | |
| 302 | + | // </object> | |
| 303 | + | // </property> | |
| 304 | + | // | |
| 305 | + | // </object> | |
| 306 | + | // ``` | |
| 307 | + | func (x *HeaderBar) SetTitleWidget(TitleWidgetVar *gtk.Widget) { | |
| 308 | + | ||
| 309 | + | xHeaderBarSetTitleWidget(x.GoPointer(), TitleWidgetVar.GoPointer()) | |
| 310 | + | ||
| 311 | + | } | |
| 312 | + | ||
| 313 | + | func (c *HeaderBar) GoPointer() uintptr { | |
| 314 | + | return c.Ptr | |
| 315 | + | } | |
| 316 | + | ||
| 317 | + | func (c *HeaderBar) SetGoPointer(ptr uintptr) { | |
| 318 | + | c.Ptr = ptr | |
| 319 | + | } | |
| 320 | + | ||
| 321 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 322 | + | func (x *HeaderBar) GetAccessibleRole() gtk.AccessibleRole { | |
| 323 | + | ||
| 324 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 325 | + | ||
| 326 | + | } | |
| 327 | + | ||
| 328 | + | // Resets the accessible @property to its default value. | |
| 329 | + | func (x *HeaderBar) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 330 | + | ||
| 331 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 332 | + | ||
| 333 | + | } | |
| 334 | + | ||
| 335 | + | // Resets the accessible @relation to its default value. | |
| 336 | + | func (x *HeaderBar) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 337 | + | ||
| 338 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 339 | + | ||
| 340 | + | } | |
| 341 | + | ||
| 342 | + | // Resets the accessible @state to its default value. | |
| 343 | + | func (x *HeaderBar) ResetState(StateVar gtk.AccessibleState) { | |
| 344 | + | ||
| 345 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 346 | + | ||
| 347 | + | } | |
| 348 | + | ||
| 349 | + | // Updates a list of accessible properties. | |
| 350 | + | // | |
| 351 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 352 | + | // value types of accessible properties. | |
| 353 | + | // | |
| 354 | + | // This function should be called by `GtkWidget` types whenever | |
| 355 | + | // an accessible property change must be communicated to assistive | |
| 356 | + | // technologies. | |
| 357 | + | // | |
| 358 | + | // Example: | |
| 359 | + | // ```c | |
| 360 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 361 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 362 | + | // | |
| 363 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 364 | + | // -1); | |
| 365 | + | // | |
| 366 | + | // ``` | |
| 367 | + | func (x *HeaderBar) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 368 | + | ||
| 369 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 370 | + | ||
| 371 | + | } | |
| 372 | + | ||
| 373 | + | // Updates an array of accessible properties. | |
| 374 | + | // | |
| 375 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 376 | + | // property change must be communicated to assistive technologies. | |
| 377 | + | // | |
| 378 | + | // This function is meant to be used by language bindings. | |
| 379 | + | func (x *HeaderBar) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 380 | + | ||
| 381 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 382 | + | ||
| 383 | + | } | |
| 384 | + | ||
| 385 | + | // Updates a list of accessible relations. | |
| 386 | + | // | |
| 387 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 388 | + | // relation change must be communicated to assistive technologies. | |
| 389 | + | // | |
| 390 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 391 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 392 | + | // | |
| 393 | + | // ```c | |
| 394 | + | // gtk_accessible_update_relation (accessible, | |
| 395 | + | // | |
| 396 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 397 | + | // ref1, NULL, | |
| 398 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 399 | + | // ref1, ref2, ref3, NULL, | |
| 400 | + | // -1); | |
| 401 | + | // | |
| 402 | + | // ``` | |
| 403 | + | func (x *HeaderBar) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 404 | + | ||
| 405 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 406 | + | ||
| 407 | + | } | |
| 408 | + | ||
| 409 | + | // Updates an array of accessible relations. | |
| 410 | + | // | |
| 411 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 412 | + | // relation change must be communicated to assistive technologies. | |
| 413 | + | // | |
| 414 | + | // This function is meant to be used by language bindings. | |
| 415 | + | func (x *HeaderBar) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 416 | + | ||
| 417 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 418 | + | ||
| 419 | + | } | |
| 420 | + | ||
| 421 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 422 | + | // documentation for the value types of accessible states. | |
| 423 | + | // | |
| 424 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 425 | + | // state change must be communicated to assistive technologies. | |
| 426 | + | // | |
| 427 | + | // Example: | |
| 428 | + | // ```c | |
| 429 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 430 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 431 | + | // | |
| 432 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 433 | + | // -1); | |
| 434 | + | // | |
| 435 | + | // ``` | |
| 436 | + | func (x *HeaderBar) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 437 | + | ||
| 438 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 439 | + | ||
| 440 | + | } | |
| 441 | + | ||
| 442 | + | // Updates an array of accessible states. | |
| 443 | + | // | |
| 444 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 445 | + | // state change must be communicated to assistive technologies. | |
| 446 | + | // | |
| 447 | + | // This function is meant to be used by language bindings. | |
| 448 | + | func (x *HeaderBar) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 449 | + | ||
| 450 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 451 | + | ||
| 452 | + | } | |
| 453 | + | ||
| 454 | + | // Gets the ID of the @buildable object. | |
| 455 | + | // | |
| 456 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 457 | + | // of the <object> tag used to construct the @buildable. | |
| 458 | + | func (x *HeaderBar) GetBuildableId() string { | |
| 459 | + | ||
| 460 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 461 | + | ||
| 462 | + | } | |
| 463 | + | ||
| 464 | + | func init() { | |
| 465 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 466 | + | if err != nil { | |
| 467 | + | panic(err) | |
| 468 | + | } | |
| 469 | + | ||
| 470 | + | core.PuregoSafeRegister(&xNewHeaderBar, lib, "adw_header_bar_new") | |
| 471 | + | ||
| 472 | + | core.PuregoSafeRegister(&xHeaderBarGetCenteringPolicy, lib, "adw_header_bar_get_centering_policy") | |
| 473 | + | core.PuregoSafeRegister(&xHeaderBarGetDecorationLayout, lib, "adw_header_bar_get_decoration_layout") | |
| 474 | + | core.PuregoSafeRegister(&xHeaderBarGetShowEndTitleButtons, lib, "adw_header_bar_get_show_end_title_buttons") | |
| 475 | + | core.PuregoSafeRegister(&xHeaderBarGetShowStartTitleButtons, lib, "adw_header_bar_get_show_start_title_buttons") | |
| 476 | + | core.PuregoSafeRegister(&xHeaderBarGetTitleWidget, lib, "adw_header_bar_get_title_widget") | |
| 477 | + | core.PuregoSafeRegister(&xHeaderBarPackEnd, lib, "adw_header_bar_pack_end") | |
| 478 | + | core.PuregoSafeRegister(&xHeaderBarPackStart, lib, "adw_header_bar_pack_start") | |
| 479 | + | core.PuregoSafeRegister(&xHeaderBarRemove, lib, "adw_header_bar_remove") | |
| 480 | + | core.PuregoSafeRegister(&xHeaderBarSetCenteringPolicy, lib, "adw_header_bar_set_centering_policy") | |
| 481 | + | core.PuregoSafeRegister(&xHeaderBarSetDecorationLayout, lib, "adw_header_bar_set_decoration_layout") | |
| 482 | + | core.PuregoSafeRegister(&xHeaderBarSetShowEndTitleButtons, lib, "adw_header_bar_set_show_end_title_buttons") | |
| 483 | + | core.PuregoSafeRegister(&xHeaderBarSetShowStartTitleButtons, lib, "adw_header_bar_set_show_start_title_buttons") | |
| 484 | + | core.PuregoSafeRegister(&xHeaderBarSetTitleWidget, lib, "adw_header_bar_set_title_widget") | |
| 485 | + | ||
| 486 | + | } | |
A v4/adw/adw-leaflet.go +880 -0
| @@ -0,0 +1,880 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type LeafletClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | type LeafletPageClass struct { | |
| 17 | + | ParentClass uintptr | |
| 18 | + | } | |
| 19 | + | ||
| 20 | + | // Describes the possible transitions in a [class@Leaflet] widget. | |
| 21 | + | // | |
| 22 | + | // New values may be added to this enumeration over time. | |
| 23 | + | type LeafletTransitionType int | |
| 24 | + | ||
| 25 | + | const ( | |
| 26 | + | ||
| 27 | + | // Cover the old page or uncover the new page, sliding from or towards the end according to orientation, text direction and children order | |
| 28 | + | LeafletTransitionTypeOverValue LeafletTransitionType = 0 | |
| 29 | + | // Uncover the new page or cover the old page, sliding from or towards the start according to orientation, text direction and children order | |
| 30 | + | LeafletTransitionTypeUnderValue LeafletTransitionType = 1 | |
| 31 | + | // Slide from left, right, up or down according to the orientation, text direction and the children order | |
| 32 | + | LeafletTransitionTypeSlideValue LeafletTransitionType = 2 | |
| 33 | + | ) | |
| 34 | + | ||
| 35 | + | // An adaptive container acting like a box or a stack. | |
| 36 | + | // | |
| 37 | + | // <picture> | |
| 38 | + | // | |
| 39 | + | // <source srcset="leaflet-wide-dark.png" media="(prefers-color-scheme: dark)"> | |
| 40 | + | // <img src="leaflet-wide.png" alt="leaflet-wide"> | |
| 41 | + | // | |
| 42 | + | // </picture> | |
| 43 | + | // <picture> | |
| 44 | + | // | |
| 45 | + | // <source srcset="leaflet-narrow-dark.png" media="(prefers-color-scheme: dark)"> | |
| 46 | + | // <img src="leaflet-narrow.png" alt="leaflet-narrow"> | |
| 47 | + | // | |
| 48 | + | // </picture> | |
| 49 | + | // | |
| 50 | + | // The `AdwLeaflet` widget can display its children like a [class@Gtk.Box] does | |
| 51 | + | // or like a [class@Gtk.Stack] does, adapting to size changes by switching | |
| 52 | + | // between the two modes. | |
| 53 | + | // | |
| 54 | + | // When there is enough space the children are displayed side by side, otherwise | |
| 55 | + | // only one is displayed and the leaflet is said to be “folded”. | |
| 56 | + | // The threshold is dictated by the preferred minimum sizes of the children. | |
| 57 | + | // When a leaflet is folded, the children can be navigated using swipe gestures. | |
| 58 | + | // | |
| 59 | + | // The “over” and “under” transition types stack the children one on top of the | |
| 60 | + | // other, while the “slide” transition puts the children side by side. While | |
| 61 | + | // navigating to a child on the side or below can be performed by swiping the | |
| 62 | + | // current child away, navigating to an upper child requires dragging it from | |
| 63 | + | // the edge where it resides. This doesn't affect non-dragging swipes. | |
| 64 | + | // | |
| 65 | + | // ## CSS nodes | |
| 66 | + | // | |
| 67 | + | // `AdwLeaflet` has a single CSS node with name `leaflet`. The node will get the | |
| 68 | + | // style classes `.folded` when it is folded, `.unfolded` when it's not, or none | |
| 69 | + | // if it hasn't computed its fold yet. | |
| 70 | + | type Leaflet struct { | |
| 71 | + | gtk.Widget | |
| 72 | + | } | |
| 73 | + | ||
| 74 | + | func LeafletNewFromInternalPtr(ptr uintptr) *Leaflet { | |
| 75 | + | cls := &Leaflet{} | |
| 76 | + | cls.Ptr = ptr | |
| 77 | + | return cls | |
| 78 | + | } | |
| 79 | + | ||
| 80 | + | var xNewLeaflet func() uintptr | |
| 81 | + | ||
| 82 | + | // Creates a new `AdwLeaflet`. | |
| 83 | + | func NewLeaflet() *gtk.Widget { | |
| 84 | + | NewLeafletPtr := xNewLeaflet() | |
| 85 | + | if NewLeafletPtr == 0 { | |
| 86 | + | return nil | |
| 87 | + | } | |
| 88 | + | ||
| 89 | + | gobject.IncreaseRef(NewLeafletPtr) | |
| 90 | + | ||
| 91 | + | NewLeafletCls := >k.Widget{} | |
| 92 | + | NewLeafletCls.Ptr = NewLeafletPtr | |
| 93 | + | return NewLeafletCls | |
| 94 | + | } | |
| 95 | + | ||
| 96 | + | var xLeafletAppend func(uintptr, uintptr) uintptr | |
| 97 | + | ||
| 98 | + | // Adds a child to @self. | |
| 99 | + | func (x *Leaflet) Append(ChildVar *gtk.Widget) *LeafletPage { | |
| 100 | + | ||
| 101 | + | AppendPtr := xLeafletAppend(x.GoPointer(), ChildVar.GoPointer()) | |
| 102 | + | if AppendPtr == 0 { | |
| 103 | + | return nil | |
| 104 | + | } | |
| 105 | + | ||
| 106 | + | gobject.IncreaseRef(AppendPtr) | |
| 107 | + | ||
| 108 | + | AppendCls := &LeafletPage{} | |
| 109 | + | AppendCls.Ptr = AppendPtr | |
| 110 | + | return AppendCls | |
| 111 | + | ||
| 112 | + | } | |
| 113 | + | ||
| 114 | + | var xLeafletGetAdjacentChild func(uintptr, NavigationDirection) uintptr | |
| 115 | + | ||
| 116 | + | // Finds the previous or next navigatable child. | |
| 117 | + | // | |
| 118 | + | // This will be the same child [method@Leaflet.navigate] or swipe gestures will | |
| 119 | + | // navigate to. | |
| 120 | + | // | |
| 121 | + | // If there's no child to navigate to, `NULL` will be returned instead. | |
| 122 | + | // | |
| 123 | + | // See [property@LeafletPage:navigatable]. | |
| 124 | + | func (x *Leaflet) GetAdjacentChild(DirectionVar NavigationDirection) *gtk.Widget { | |
| 125 | + | ||
| 126 | + | GetAdjacentChildPtr := xLeafletGetAdjacentChild(x.GoPointer(), DirectionVar) | |
| 127 | + | if GetAdjacentChildPtr == 0 { | |
| 128 | + | return nil | |
| 129 | + | } | |
| 130 | + | ||
| 131 | + | gobject.IncreaseRef(GetAdjacentChildPtr) | |
| 132 | + | ||
| 133 | + | GetAdjacentChildCls := >k.Widget{} | |
| 134 | + | GetAdjacentChildCls.Ptr = GetAdjacentChildPtr | |
| 135 | + | return GetAdjacentChildCls | |
| 136 | + | ||
| 137 | + | } | |
| 138 | + | ||
| 139 | + | var xLeafletGetCanNavigateBack func(uintptr) bool | |
| 140 | + | ||
| 141 | + | // Gets whether gestures and shortcuts for navigating backward are enabled. | |
| 142 | + | func (x *Leaflet) GetCanNavigateBack() bool { | |
| 143 | + | ||
| 144 | + | return xLeafletGetCanNavigateBack(x.GoPointer()) | |
| 145 | + | ||
| 146 | + | } | |
| 147 | + | ||
| 148 | + | var xLeafletGetCanNavigateForward func(uintptr) bool | |
| 149 | + | ||
| 150 | + | // Gets whether gestures and shortcuts for navigating forward are enabled. | |
| 151 | + | func (x *Leaflet) GetCanNavigateForward() bool { | |
| 152 | + | ||
| 153 | + | return xLeafletGetCanNavigateForward(x.GoPointer()) | |
| 154 | + | ||
| 155 | + | } | |
| 156 | + | ||
| 157 | + | var xLeafletGetCanUnfold func(uintptr) bool | |
| 158 | + | ||
| 159 | + | // Gets whether @self can unfold. | |
| 160 | + | func (x *Leaflet) GetCanUnfold() bool { | |
| 161 | + | ||
| 162 | + | return xLeafletGetCanUnfold(x.GoPointer()) | |
| 163 | + | ||
| 164 | + | } | |
| 165 | + | ||
| 166 | + | var xLeafletGetChildByName func(uintptr, string) uintptr | |
| 167 | + | ||
| 168 | + | // Finds the child of @self with @name. | |
| 169 | + | // | |
| 170 | + | // Returns `NULL` if there is no child with this name. | |
| 171 | + | // | |
| 172 | + | // See [property@LeafletPage:name]. | |
| 173 | + | func (x *Leaflet) GetChildByName(NameVar string) *gtk.Widget { | |
| 174 | + | ||
| 175 | + | GetChildByNamePtr := xLeafletGetChildByName(x.GoPointer(), NameVar) | |
| 176 | + | if GetChildByNamePtr == 0 { | |
| 177 | + | return nil | |
| 178 | + | } | |
| 179 | + | ||
| 180 | + | gobject.IncreaseRef(GetChildByNamePtr) | |
| 181 | + | ||
| 182 | + | GetChildByNameCls := >k.Widget{} | |
| 183 | + | GetChildByNameCls.Ptr = GetChildByNamePtr | |
| 184 | + | return GetChildByNameCls | |
| 185 | + | ||
| 186 | + | } | |
| 187 | + | ||
| 188 | + | var xLeafletGetChildTransitionParams func(uintptr) *SpringParams | |
| 189 | + | ||
| 190 | + | // Gets the child transition spring parameters for @self. | |
| 191 | + | func (x *Leaflet) GetChildTransitionParams() *SpringParams { | |
| 192 | + | ||
| 193 | + | return xLeafletGetChildTransitionParams(x.GoPointer()) | |
| 194 | + | ||
| 195 | + | } | |
| 196 | + | ||
| 197 | + | var xLeafletGetChildTransitionRunning func(uintptr) bool | |
| 198 | + | ||
| 199 | + | // Gets whether a child transition is currently running for @self. | |
| 200 | + | func (x *Leaflet) GetChildTransitionRunning() bool { | |
| 201 | + | ||
| 202 | + | return xLeafletGetChildTransitionRunning(x.GoPointer()) | |
| 203 | + | ||
| 204 | + | } | |
| 205 | + | ||
| 206 | + | var xLeafletGetFoldThresholdPolicy func(uintptr) FoldThresholdPolicy | |
| 207 | + | ||
| 208 | + | // Gets the fold threshold policy for @self. | |
| 209 | + | func (x *Leaflet) GetFoldThresholdPolicy() FoldThresholdPolicy { | |
| 210 | + | ||
| 211 | + | return xLeafletGetFoldThresholdPolicy(x.GoPointer()) | |
| 212 | + | ||
| 213 | + | } | |
| 214 | + | ||
| 215 | + | var xLeafletGetFolded func(uintptr) bool | |
| 216 | + | ||
| 217 | + | // Gets whether @self is folded. | |
| 218 | + | // | |
| 219 | + | // The leaflet will be folded if the size allocated to it is smaller than the | |
| 220 | + | // sum of the minimum or natural sizes of the children (see | |
| 221 | + | // [property@Leaflet:fold-threshold-policy]), it will be unfolded otherwise. | |
| 222 | + | func (x *Leaflet) GetFolded() bool { | |
| 223 | + | ||
| 224 | + | return xLeafletGetFolded(x.GoPointer()) | |
| 225 | + | ||
| 226 | + | } | |
| 227 | + | ||
| 228 | + | var xLeafletGetHomogeneous func(uintptr) bool | |
| 229 | + | ||
| 230 | + | // Gets whether @self is homogeneous. | |
| 231 | + | func (x *Leaflet) GetHomogeneous() bool { | |
| 232 | + | ||
| 233 | + | return xLeafletGetHomogeneous(x.GoPointer()) | |
| 234 | + | ||
| 235 | + | } | |
| 236 | + | ||
| 237 | + | var xLeafletGetModeTransitionDuration func(uintptr) uint | |
| 238 | + | ||
| 239 | + | // Gets the mode transition animation duration for @self. | |
| 240 | + | func (x *Leaflet) GetModeTransitionDuration() uint { | |
| 241 | + | ||
| 242 | + | return xLeafletGetModeTransitionDuration(x.GoPointer()) | |
| 243 | + | ||
| 244 | + | } | |
| 245 | + | ||
| 246 | + | var xLeafletGetPage func(uintptr, uintptr) uintptr | |
| 247 | + | ||
| 248 | + | // Returns the [class@LeafletPage] object for @child. | |
| 249 | + | func (x *Leaflet) GetPage(ChildVar *gtk.Widget) *LeafletPage { | |
| 250 | + | ||
| 251 | + | GetPagePtr := xLeafletGetPage(x.GoPointer(), ChildVar.GoPointer()) | |
| 252 | + | if GetPagePtr == 0 { | |
| 253 | + | return nil | |
| 254 | + | } | |
| 255 | + | ||
| 256 | + | gobject.IncreaseRef(GetPagePtr) | |
| 257 | + | ||
| 258 | + | GetPageCls := &LeafletPage{} | |
| 259 | + | GetPageCls.Ptr = GetPagePtr | |
| 260 | + | return GetPageCls | |
| 261 | + | ||
| 262 | + | } | |
| 263 | + | ||
| 264 | + | var xLeafletGetPages func(uintptr) uintptr | |
| 265 | + | ||
| 266 | + | // Returns a [iface@Gio.ListModel] that contains the pages of the leaflet. | |
| 267 | + | // | |
| 268 | + | // This can be used to keep an up-to-date view. The model also implements | |
| 269 | + | // [iface@Gtk.SelectionModel] and can be used to track and change the visible | |
| 270 | + | // page. | |
| 271 | + | func (x *Leaflet) GetPages() *gtk.SelectionModelBase { | |
| 272 | + | ||
| 273 | + | GetPagesPtr := xLeafletGetPages(x.GoPointer()) | |
| 274 | + | if GetPagesPtr == 0 { | |
| 275 | + | return nil | |
| 276 | + | } | |
| 277 | + | ||
| 278 | + | GetPagesCls := >k.SelectionModelBase{} | |
| 279 | + | GetPagesCls.Ptr = GetPagesPtr | |
| 280 | + | return GetPagesCls | |
| 281 | + | ||
| 282 | + | } | |
| 283 | + | ||
| 284 | + | var xLeafletGetTransitionType func(uintptr) LeafletTransitionType | |
| 285 | + | ||
| 286 | + | // Gets the type of animation used for transitions between modes and children. | |
| 287 | + | func (x *Leaflet) GetTransitionType() LeafletTransitionType { | |
| 288 | + | ||
| 289 | + | return xLeafletGetTransitionType(x.GoPointer()) | |
| 290 | + | ||
| 291 | + | } | |
| 292 | + | ||
| 293 | + | var xLeafletGetVisibleChild func(uintptr) uintptr | |
| 294 | + | ||
| 295 | + | // Gets the widget currently visible when the leaflet is folded. | |
| 296 | + | func (x *Leaflet) GetVisibleChild() *gtk.Widget { | |
| 297 | + | ||
| 298 | + | GetVisibleChildPtr := xLeafletGetVisibleChild(x.GoPointer()) | |
| 299 | + | if GetVisibleChildPtr == 0 { | |
| 300 | + | return nil | |
| 301 | + | } | |
| 302 | + | ||
| 303 | + | gobject.IncreaseRef(GetVisibleChildPtr) | |
| 304 | + | ||
| 305 | + | GetVisibleChildCls := >k.Widget{} | |
| 306 | + | GetVisibleChildCls.Ptr = GetVisibleChildPtr | |
| 307 | + | return GetVisibleChildCls | |
| 308 | + | ||
| 309 | + | } | |
| 310 | + | ||
| 311 | + | var xLeafletGetVisibleChildName func(uintptr) string | |
| 312 | + | ||
| 313 | + | // Gets the name of the currently visible child widget. | |
| 314 | + | func (x *Leaflet) GetVisibleChildName() string { | |
| 315 | + | ||
| 316 | + | return xLeafletGetVisibleChildName(x.GoPointer()) | |
| 317 | + | ||
| 318 | + | } | |
| 319 | + | ||
| 320 | + | var xLeafletInsertChildAfter func(uintptr, uintptr, uintptr) uintptr | |
| 321 | + | ||
| 322 | + | // Inserts @child in the position after @sibling in the list of children. | |
| 323 | + | // | |
| 324 | + | // If @sibling is `NULL`, inserts @child at the first position. | |
| 325 | + | func (x *Leaflet) InsertChildAfter(ChildVar *gtk.Widget, SiblingVar *gtk.Widget) *LeafletPage { | |
| 326 | + | ||
| 327 | + | InsertChildAfterPtr := xLeafletInsertChildAfter(x.GoPointer(), ChildVar.GoPointer(), SiblingVar.GoPointer()) | |
| 328 | + | if InsertChildAfterPtr == 0 { | |
| 329 | + | return nil | |
| 330 | + | } | |
| 331 | + | ||
| 332 | + | gobject.IncreaseRef(InsertChildAfterPtr) | |
| 333 | + | ||
| 334 | + | InsertChildAfterCls := &LeafletPage{} | |
| 335 | + | InsertChildAfterCls.Ptr = InsertChildAfterPtr | |
| 336 | + | return InsertChildAfterCls | |
| 337 | + | ||
| 338 | + | } | |
| 339 | + | ||
| 340 | + | var xLeafletNavigate func(uintptr, NavigationDirection) bool | |
| 341 | + | ||
| 342 | + | // Navigates to the previous or next child. | |
| 343 | + | // | |
| 344 | + | // The child must have the [property@LeafletPage:navigatable] property set to | |
| 345 | + | // `TRUE`, otherwise it will be skipped. | |
| 346 | + | // | |
| 347 | + | // This will be the same child as returned by | |
| 348 | + | // [method@Leaflet.get_adjacent_child] or navigated to via swipe gestures. | |
| 349 | + | func (x *Leaflet) Navigate(DirectionVar NavigationDirection) bool { | |
| 350 | + | ||
| 351 | + | return xLeafletNavigate(x.GoPointer(), DirectionVar) | |
| 352 | + | ||
| 353 | + | } | |
| 354 | + | ||
| 355 | + | var xLeafletPrepend func(uintptr, uintptr) uintptr | |
| 356 | + | ||
| 357 | + | // Inserts @child at the first position in @self. | |
| 358 | + | func (x *Leaflet) Prepend(ChildVar *gtk.Widget) *LeafletPage { | |
| 359 | + | ||
| 360 | + | PrependPtr := xLeafletPrepend(x.GoPointer(), ChildVar.GoPointer()) | |
| 361 | + | if PrependPtr == 0 { | |
| 362 | + | return nil | |
| 363 | + | } | |
| 364 | + | ||
| 365 | + | gobject.IncreaseRef(PrependPtr) | |
| 366 | + | ||
| 367 | + | PrependCls := &LeafletPage{} | |
| 368 | + | PrependCls.Ptr = PrependPtr | |
| 369 | + | return PrependCls | |
| 370 | + | ||
| 371 | + | } | |
| 372 | + | ||
| 373 | + | var xLeafletRemove func(uintptr, uintptr) | |
| 374 | + | ||
| 375 | + | // Removes a child widget from @self. | |
| 376 | + | func (x *Leaflet) Remove(ChildVar *gtk.Widget) { | |
| 377 | + | ||
| 378 | + | xLeafletRemove(x.GoPointer(), ChildVar.GoPointer()) | |
| 379 | + | ||
| 380 | + | } | |
| 381 | + | ||
| 382 | + | var xLeafletReorderChildAfter func(uintptr, uintptr, uintptr) | |
| 383 | + | ||
| 384 | + | // Moves @child to the position after @sibling in the list of children. | |
| 385 | + | // | |
| 386 | + | // If @sibling is `NULL`, moves @child to the first position. | |
| 387 | + | func (x *Leaflet) ReorderChildAfter(ChildVar *gtk.Widget, SiblingVar *gtk.Widget) { | |
| 388 | + | ||
| 389 | + | xLeafletReorderChildAfter(x.GoPointer(), ChildVar.GoPointer(), SiblingVar.GoPointer()) | |
| 390 | + | ||
| 391 | + | } | |
| 392 | + | ||
| 393 | + | var xLeafletSetCanNavigateBack func(uintptr, bool) | |
| 394 | + | ||
| 395 | + | // Sets whether gestures and shortcuts for navigating backward are enabled. | |
| 396 | + | // | |
| 397 | + | // The supported gestures are: | |
| 398 | + | // | |
| 399 | + | // - One-finger swipe on touchscreens | |
| 400 | + | // - Horizontal scrolling on touchpads (usually two-finger swipe) | |
| 401 | + | // - Back/forward mouse buttons | |
| 402 | + | // | |
| 403 | + | // The keyboard back/forward keys are also supported, as well as the | |
| 404 | + | // <kbd>Alt</kbd>+<kbd>←</kbd> shortcut for horizontal orientation, or | |
| 405 | + | // <kbd>Alt</kbd>+<kbd>↑</kbd> for vertical orientation. | |
| 406 | + | // | |
| 407 | + | // If the orientation is horizontal, for right-to-left locales, gestures and | |
| 408 | + | // shortcuts are reversed. | |
| 409 | + | // | |
| 410 | + | // Only children that have [property@LeafletPage:navigatable] set to `TRUE` can | |
| 411 | + | // be navigated to. | |
| 412 | + | func (x *Leaflet) SetCanNavigateBack(CanNavigateBackVar bool) { | |
| 413 | + | ||
| 414 | + | xLeafletSetCanNavigateBack(x.GoPointer(), CanNavigateBackVar) | |
| 415 | + | ||
| 416 | + | } | |
| 417 | + | ||
| 418 | + | var xLeafletSetCanNavigateForward func(uintptr, bool) | |
| 419 | + | ||
| 420 | + | // Sets whether gestures and shortcuts for navigating forward are enabled. | |
| 421 | + | // | |
| 422 | + | // The supported gestures are: | |
| 423 | + | // | |
| 424 | + | // - One-finger swipe on touchscreens | |
| 425 | + | // - Horizontal scrolling on touchpads (usually two-finger swipe) | |
| 426 | + | // - Back/forward mouse buttons | |
| 427 | + | // | |
| 428 | + | // The keyboard back/forward keys are also supported, as well as the | |
| 429 | + | // <kbd>Alt</kbd>+<kbd>→</kbd> shortcut for horizontal orientation, or | |
| 430 | + | // <kbd>Alt</kbd>+<kbd>↓</kbd> for vertical orientation. | |
| 431 | + | // | |
| 432 | + | // If the orientation is horizontal, for right-to-left locales, gestures and | |
| 433 | + | // shortcuts are reversed. | |
| 434 | + | // | |
| 435 | + | // Only children that have [property@LeafletPage:navigatable] set to `TRUE` can | |
| 436 | + | // be navigated to. | |
| 437 | + | func (x *Leaflet) SetCanNavigateForward(CanNavigateForwardVar bool) { | |
| 438 | + | ||
| 439 | + | xLeafletSetCanNavigateForward(x.GoPointer(), CanNavigateForwardVar) | |
| 440 | + | ||
| 441 | + | } | |
| 442 | + | ||
| 443 | + | var xLeafletSetCanUnfold func(uintptr, bool) | |
| 444 | + | ||
| 445 | + | // Sets whether @self can unfold. | |
| 446 | + | func (x *Leaflet) SetCanUnfold(CanUnfoldVar bool) { | |
| 447 | + | ||
| 448 | + | xLeafletSetCanUnfold(x.GoPointer(), CanUnfoldVar) | |
| 449 | + | ||
| 450 | + | } | |
| 451 | + | ||
| 452 | + | var xLeafletSetChildTransitionParams func(uintptr, *SpringParams) | |
| 453 | + | ||
| 454 | + | // Sets the child transition spring parameters for @self. | |
| 455 | + | // | |
| 456 | + | // The default value is equivalent to: | |
| 457 | + | // | |
| 458 | + | // ```c | |
| 459 | + | // adw_spring_params_new (1, 0.5, 500) | |
| 460 | + | // ``` | |
| 461 | + | func (x *Leaflet) SetChildTransitionParams(ParamsVar *SpringParams) { | |
| 462 | + | ||
| 463 | + | xLeafletSetChildTransitionParams(x.GoPointer(), ParamsVar) | |
| 464 | + | ||
| 465 | + | } | |
| 466 | + | ||
| 467 | + | var xLeafletSetFoldThresholdPolicy func(uintptr, FoldThresholdPolicy) | |
| 468 | + | ||
| 469 | + | // Sets the fold threshold policy for @self. | |
| 470 | + | // | |
| 471 | + | // If set to `ADW_FOLD_THRESHOLD_POLICY_MINIMUM`, it will only fold when the | |
| 472 | + | // children cannot fit anymore. With `ADW_FOLD_THRESHOLD_POLICY_NATURAL`, it | |
| 473 | + | // will fold as soon as children don't get their natural size. | |
| 474 | + | // | |
| 475 | + | // This can be useful if you have a long ellipsizing label and want to let it | |
| 476 | + | // ellipsize instead of immediately folding. | |
| 477 | + | func (x *Leaflet) SetFoldThresholdPolicy(PolicyVar FoldThresholdPolicy) { | |
| 478 | + | ||
| 479 | + | xLeafletSetFoldThresholdPolicy(x.GoPointer(), PolicyVar) | |
| 480 | + | ||
| 481 | + | } | |
| 482 | + | ||
| 483 | + | var xLeafletSetHomogeneous func(uintptr, bool) | |
| 484 | + | ||
| 485 | + | // Sets @self to be homogeneous or not. | |
| 486 | + | // | |
| 487 | + | // If set to `FALSE`, different children can have different size along the | |
| 488 | + | // opposite orientation. | |
| 489 | + | func (x *Leaflet) SetHomogeneous(HomogeneousVar bool) { | |
| 490 | + | ||
| 491 | + | xLeafletSetHomogeneous(x.GoPointer(), HomogeneousVar) | |
| 492 | + | ||
| 493 | + | } | |
| 494 | + | ||
| 495 | + | var xLeafletSetModeTransitionDuration func(uintptr, uint) | |
| 496 | + | ||
| 497 | + | // Sets the mode transition animation duration for @self. | |
| 498 | + | func (x *Leaflet) SetModeTransitionDuration(DurationVar uint) { | |
| 499 | + | ||
| 500 | + | xLeafletSetModeTransitionDuration(x.GoPointer(), DurationVar) | |
| 501 | + | ||
| 502 | + | } | |
| 503 | + | ||
| 504 | + | var xLeafletSetTransitionType func(uintptr, LeafletTransitionType) | |
| 505 | + | ||
| 506 | + | // Sets the type of animation used for transitions between modes and children. | |
| 507 | + | // | |
| 508 | + | // The transition type can be changed without problems at runtime, so it is | |
| 509 | + | // possible to change the animation based on the mode or child that is about to | |
| 510 | + | // become current. | |
| 511 | + | func (x *Leaflet) SetTransitionType(TransitionVar LeafletTransitionType) { | |
| 512 | + | ||
| 513 | + | xLeafletSetTransitionType(x.GoPointer(), TransitionVar) | |
| 514 | + | ||
| 515 | + | } | |
| 516 | + | ||
| 517 | + | var xLeafletSetVisibleChild func(uintptr, uintptr) | |
| 518 | + | ||
| 519 | + | // Sets the widget currently visible when the leaflet is folded. | |
| 520 | + | // | |
| 521 | + | // The transition is determined by [property@Leaflet:transition-type] and | |
| 522 | + | // [property@Leaflet:child-transition-params]. The transition can be cancelled | |
| 523 | + | // by the user, in which case visible child will change back to the previously | |
| 524 | + | // visible child. | |
| 525 | + | func (x *Leaflet) SetVisibleChild(VisibleChildVar *gtk.Widget) { | |
| 526 | + | ||
| 527 | + | xLeafletSetVisibleChild(x.GoPointer(), VisibleChildVar.GoPointer()) | |
| 528 | + | ||
| 529 | + | } | |
| 530 | + | ||
| 531 | + | var xLeafletSetVisibleChildName func(uintptr, string) | |
| 532 | + | ||
| 533 | + | // Makes the child with the name @name visible. | |
| 534 | + | // | |
| 535 | + | // See [property@Leaflet:visible-child]. | |
| 536 | + | func (x *Leaflet) SetVisibleChildName(NameVar string) { | |
| 537 | + | ||
| 538 | + | xLeafletSetVisibleChildName(x.GoPointer(), NameVar) | |
| 539 | + | ||
| 540 | + | } | |
| 541 | + | ||
| 542 | + | func (c *Leaflet) GoPointer() uintptr { | |
| 543 | + | return c.Ptr | |
| 544 | + | } | |
| 545 | + | ||
| 546 | + | func (c *Leaflet) SetGoPointer(ptr uintptr) { | |
| 547 | + | c.Ptr = ptr | |
| 548 | + | } | |
| 549 | + | ||
| 550 | + | // Gets the progress @self will snap back to after the gesture is canceled. | |
| 551 | + | func (x *Leaflet) GetCancelProgress() float64 { | |
| 552 | + | ||
| 553 | + | return XAdwSwipeableGetCancelProgress(x.GoPointer()) | |
| 554 | + | ||
| 555 | + | } | |
| 556 | + | ||
| 557 | + | // Gets the swipe distance of @self. | |
| 558 | + | // | |
| 559 | + | // This corresponds to how many pixels 1 unit represents. | |
| 560 | + | func (x *Leaflet) GetDistance() float64 { | |
| 561 | + | ||
| 562 | + | return XAdwSwipeableGetDistance(x.GoPointer()) | |
| 563 | + | ||
| 564 | + | } | |
| 565 | + | ||
| 566 | + | // Gets the current progress of @self. | |
| 567 | + | func (x *Leaflet) GetProgress() float64 { | |
| 568 | + | ||
| 569 | + | return XAdwSwipeableGetProgress(x.GoPointer()) | |
| 570 | + | ||
| 571 | + | } | |
| 572 | + | ||
| 573 | + | // Gets the snap points of @self. | |
| 574 | + | // | |
| 575 | + | // Each snap point represents a progress value that is considered acceptable to | |
| 576 | + | // end the swipe on. | |
| 577 | + | func (x *Leaflet) GetSnapPoints(NSnapPointsVar int32) uintptr { | |
| 578 | + | ||
| 579 | + | return XAdwSwipeableGetSnapPoints(x.GoPointer(), NSnapPointsVar) | |
| 580 | + | ||
| 581 | + | } | |
| 582 | + | ||
| 583 | + | // Gets the area @self can start a swipe from for the given direction and | |
| 584 | + | // gesture type. | |
| 585 | + | // | |
| 586 | + | // This can be used to restrict swipes to only be possible from a certain area, | |
| 587 | + | // for example, to only allow edge swipes, or to have a draggable element and | |
| 588 | + | // ignore swipes elsewhere. | |
| 589 | + | // | |
| 590 | + | // If not implemented, the default implementation returns the allocation of | |
| 591 | + | // @self, allowing swipes from anywhere. | |
| 592 | + | func (x *Leaflet) GetSwipeArea(NavigationDirectionVar NavigationDirection, IsDragVar bool, RectVar *gdk.Rectangle) { | |
| 593 | + | ||
| 594 | + | XAdwSwipeableGetSwipeArea(x.GoPointer(), NavigationDirectionVar, IsDragVar, RectVar) | |
| 595 | + | ||
| 596 | + | } | |
| 597 | + | ||
| 598 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 599 | + | func (x *Leaflet) GetAccessibleRole() gtk.AccessibleRole { | |
| 600 | + | ||
| 601 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 602 | + | ||
| 603 | + | } | |
| 604 | + | ||
| 605 | + | // Resets the accessible @property to its default value. | |
| 606 | + | func (x *Leaflet) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 607 | + | ||
| 608 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 609 | + | ||
| 610 | + | } | |
| 611 | + | ||
| 612 | + | // Resets the accessible @relation to its default value. | |
| 613 | + | func (x *Leaflet) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 614 | + | ||
| 615 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 616 | + | ||
| 617 | + | } | |
| 618 | + | ||
| 619 | + | // Resets the accessible @state to its default value. | |
| 620 | + | func (x *Leaflet) ResetState(StateVar gtk.AccessibleState) { | |
| 621 | + | ||
| 622 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 623 | + | ||
| 624 | + | } | |
| 625 | + | ||
| 626 | + | // Updates a list of accessible properties. | |
| 627 | + | // | |
| 628 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 629 | + | // value types of accessible properties. | |
| 630 | + | // | |
| 631 | + | // This function should be called by `GtkWidget` types whenever | |
| 632 | + | // an accessible property change must be communicated to assistive | |
| 633 | + | // technologies. | |
| 634 | + | // | |
| 635 | + | // Example: | |
| 636 | + | // ```c | |
| 637 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 638 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 639 | + | // | |
| 640 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 641 | + | // -1); | |
| 642 | + | // | |
| 643 | + | // ``` | |
| 644 | + | func (x *Leaflet) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 645 | + | ||
| 646 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 647 | + | ||
| 648 | + | } | |
| 649 | + | ||
| 650 | + | // Updates an array of accessible properties. | |
| 651 | + | // | |
| 652 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 653 | + | // property change must be communicated to assistive technologies. | |
| 654 | + | // | |
| 655 | + | // This function is meant to be used by language bindings. | |
| 656 | + | func (x *Leaflet) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 657 | + | ||
| 658 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 659 | + | ||
| 660 | + | } | |
| 661 | + | ||
| 662 | + | // Updates a list of accessible relations. | |
| 663 | + | // | |
| 664 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 665 | + | // relation change must be communicated to assistive technologies. | |
| 666 | + | // | |
| 667 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 668 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 669 | + | // | |
| 670 | + | // ```c | |
| 671 | + | // gtk_accessible_update_relation (accessible, | |
| 672 | + | // | |
| 673 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 674 | + | // ref1, NULL, | |
| 675 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 676 | + | // ref1, ref2, ref3, NULL, | |
| 677 | + | // -1); | |
| 678 | + | // | |
| 679 | + | // ``` | |
| 680 | + | func (x *Leaflet) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 681 | + | ||
| 682 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 683 | + | ||
| 684 | + | } | |
| 685 | + | ||
| 686 | + | // Updates an array of accessible relations. | |
| 687 | + | // | |
| 688 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 689 | + | // relation change must be communicated to assistive technologies. | |
| 690 | + | // | |
| 691 | + | // This function is meant to be used by language bindings. | |
| 692 | + | func (x *Leaflet) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 693 | + | ||
| 694 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 695 | + | ||
| 696 | + | } | |
| 697 | + | ||
| 698 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 699 | + | // documentation for the value types of accessible states. | |
| 700 | + | // | |
| 701 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 702 | + | // state change must be communicated to assistive technologies. | |
| 703 | + | // | |
| 704 | + | // Example: | |
| 705 | + | // ```c | |
| 706 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 707 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 708 | + | // | |
| 709 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 710 | + | // -1); | |
| 711 | + | // | |
| 712 | + | // ``` | |
| 713 | + | func (x *Leaflet) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 714 | + | ||
| 715 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 716 | + | ||
| 717 | + | } | |
| 718 | + | ||
| 719 | + | // Updates an array of accessible states. | |
| 720 | + | // | |
| 721 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 722 | + | // state change must be communicated to assistive technologies. | |
| 723 | + | // | |
| 724 | + | // This function is meant to be used by language bindings. | |
| 725 | + | func (x *Leaflet) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 726 | + | ||
| 727 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 728 | + | ||
| 729 | + | } | |
| 730 | + | ||
| 731 | + | // Gets the ID of the @buildable object. | |
| 732 | + | // | |
| 733 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 734 | + | // of the <object> tag used to construct the @buildable. | |
| 735 | + | func (x *Leaflet) GetBuildableId() string { | |
| 736 | + | ||
| 737 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 738 | + | ||
| 739 | + | } | |
| 740 | + | ||
| 741 | + | // Retrieves the orientation of the @orientable. | |
| 742 | + | func (x *Leaflet) GetOrientation() gtk.Orientation { | |
| 743 | + | ||
| 744 | + | return gtk.XGtkOrientableGetOrientation(x.GoPointer()) | |
| 745 | + | ||
| 746 | + | } | |
| 747 | + | ||
| 748 | + | // Sets the orientation of the @orientable. | |
| 749 | + | func (x *Leaflet) SetOrientation(OrientationVar gtk.Orientation) { | |
| 750 | + | ||
| 751 | + | gtk.XGtkOrientableSetOrientation(x.GoPointer(), OrientationVar) | |
| 752 | + | ||
| 753 | + | } | |
| 754 | + | ||
| 755 | + | // An auxiliary class used by [class@Leaflet]. | |
| 756 | + | type LeafletPage struct { | |
| 757 | + | gobject.Object | |
| 758 | + | } | |
| 759 | + | ||
| 760 | + | func LeafletPageNewFromInternalPtr(ptr uintptr) *LeafletPage { | |
| 761 | + | cls := &LeafletPage{} | |
| 762 | + | cls.Ptr = ptr | |
| 763 | + | return cls | |
| 764 | + | } | |
| 765 | + | ||
| 766 | + | var xLeafletPageGetChild func(uintptr) uintptr | |
| 767 | + | ||
| 768 | + | // Gets the leaflet child to which @self belongs. | |
| 769 | + | func (x *LeafletPage) GetChild() *gtk.Widget { | |
| 770 | + | ||
| 771 | + | GetChildPtr := xLeafletPageGetChild(x.GoPointer()) | |
| 772 | + | if GetChildPtr == 0 { | |
| 773 | + | return nil | |
| 774 | + | } | |
| 775 | + | ||
| 776 | + | gobject.IncreaseRef(GetChildPtr) | |
| 777 | + | ||
| 778 | + | GetChildCls := >k.Widget{} | |
| 779 | + | GetChildCls.Ptr = GetChildPtr | |
| 780 | + | return GetChildCls | |
| 781 | + | ||
| 782 | + | } | |
| 783 | + | ||
| 784 | + | var xLeafletPageGetName func(uintptr) string | |
| 785 | + | ||
| 786 | + | // Gets the name of @self. | |
| 787 | + | func (x *LeafletPage) GetName() string { | |
| 788 | + | ||
| 789 | + | return xLeafletPageGetName(x.GoPointer()) | |
| 790 | + | ||
| 791 | + | } | |
| 792 | + | ||
| 793 | + | var xLeafletPageGetNavigatable func(uintptr) bool | |
| 794 | + | ||
| 795 | + | // Gets whether the child can be navigated to when folded. | |
| 796 | + | func (x *LeafletPage) GetNavigatable() bool { | |
| 797 | + | ||
| 798 | + | return xLeafletPageGetNavigatable(x.GoPointer()) | |
| 799 | + | ||
| 800 | + | } | |
| 801 | + | ||
| 802 | + | var xLeafletPageSetName func(uintptr, string) | |
| 803 | + | ||
| 804 | + | // Sets the name of the @self. | |
| 805 | + | func (x *LeafletPage) SetName(NameVar string) { | |
| 806 | + | ||
| 807 | + | xLeafletPageSetName(x.GoPointer(), NameVar) | |
| 808 | + | ||
| 809 | + | } | |
| 810 | + | ||
| 811 | + | var xLeafletPageSetNavigatable func(uintptr, bool) | |
| 812 | + | ||
| 813 | + | // Sets whether @self can be navigated to when folded. | |
| 814 | + | // | |
| 815 | + | // If `FALSE`, the child will be ignored by [method@Leaflet.get_adjacent_child], | |
| 816 | + | // [method@Leaflet.navigate], and swipe gestures. | |
| 817 | + | // | |
| 818 | + | // This can be used used to prevent switching to widgets like separators. | |
| 819 | + | func (x *LeafletPage) SetNavigatable(NavigatableVar bool) { | |
| 820 | + | ||
| 821 | + | xLeafletPageSetNavigatable(x.GoPointer(), NavigatableVar) | |
| 822 | + | ||
| 823 | + | } | |
| 824 | + | ||
| 825 | + | func (c *LeafletPage) GoPointer() uintptr { | |
| 826 | + | return c.Ptr | |
| 827 | + | } | |
| 828 | + | ||
| 829 | + | func (c *LeafletPage) SetGoPointer(ptr uintptr) { | |
| 830 | + | c.Ptr = ptr | |
| 831 | + | } | |
| 832 | + | ||
| 833 | + | func init() { | |
| 834 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 835 | + | if err != nil { | |
| 836 | + | panic(err) | |
| 837 | + | } | |
| 838 | + | ||
| 839 | + | core.PuregoSafeRegister(&xNewLeaflet, lib, "adw_leaflet_new") | |
| 840 | + | ||
| 841 | + | core.PuregoSafeRegister(&xLeafletAppend, lib, "adw_leaflet_append") | |
| 842 | + | core.PuregoSafeRegister(&xLeafletGetAdjacentChild, lib, "adw_leaflet_get_adjacent_child") | |
| 843 | + | core.PuregoSafeRegister(&xLeafletGetCanNavigateBack, lib, "adw_leaflet_get_can_navigate_back") | |
| 844 | + | core.PuregoSafeRegister(&xLeafletGetCanNavigateForward, lib, "adw_leaflet_get_can_navigate_forward") | |
| 845 | + | core.PuregoSafeRegister(&xLeafletGetCanUnfold, lib, "adw_leaflet_get_can_unfold") | |
| 846 | + | core.PuregoSafeRegister(&xLeafletGetChildByName, lib, "adw_leaflet_get_child_by_name") | |
| 847 | + | core.PuregoSafeRegister(&xLeafletGetChildTransitionParams, lib, "adw_leaflet_get_child_transition_params") | |
| 848 | + | core.PuregoSafeRegister(&xLeafletGetChildTransitionRunning, lib, "adw_leaflet_get_child_transition_running") | |
| 849 | + | core.PuregoSafeRegister(&xLeafletGetFoldThresholdPolicy, lib, "adw_leaflet_get_fold_threshold_policy") | |
| 850 | + | core.PuregoSafeRegister(&xLeafletGetFolded, lib, "adw_leaflet_get_folded") | |
| 851 | + | core.PuregoSafeRegister(&xLeafletGetHomogeneous, lib, "adw_leaflet_get_homogeneous") | |
| 852 | + | core.PuregoSafeRegister(&xLeafletGetModeTransitionDuration, lib, "adw_leaflet_get_mode_transition_duration") | |
| 853 | + | core.PuregoSafeRegister(&xLeafletGetPage, lib, "adw_leaflet_get_page") | |
| 854 | + | core.PuregoSafeRegister(&xLeafletGetPages, lib, "adw_leaflet_get_pages") | |
| 855 | + | core.PuregoSafeRegister(&xLeafletGetTransitionType, lib, "adw_leaflet_get_transition_type") | |
| 856 | + | core.PuregoSafeRegister(&xLeafletGetVisibleChild, lib, "adw_leaflet_get_visible_child") | |
| 857 | + | core.PuregoSafeRegister(&xLeafletGetVisibleChildName, lib, "adw_leaflet_get_visible_child_name") | |
| 858 | + | core.PuregoSafeRegister(&xLeafletInsertChildAfter, lib, "adw_leaflet_insert_child_after") | |
| 859 | + | core.PuregoSafeRegister(&xLeafletNavigate, lib, "adw_leaflet_navigate") | |
| 860 | + | core.PuregoSafeRegister(&xLeafletPrepend, lib, "adw_leaflet_prepend") | |
| 861 | + | core.PuregoSafeRegister(&xLeafletRemove, lib, "adw_leaflet_remove") | |
| 862 | + | core.PuregoSafeRegister(&xLeafletReorderChildAfter, lib, "adw_leaflet_reorder_child_after") | |
| 863 | + | core.PuregoSafeRegister(&xLeafletSetCanNavigateBack, lib, "adw_leaflet_set_can_navigate_back") | |
| 864 | + | core.PuregoSafeRegister(&xLeafletSetCanNavigateForward, lib, "adw_leaflet_set_can_navigate_forward") | |
| 865 | + | core.PuregoSafeRegister(&xLeafletSetCanUnfold, lib, "adw_leaflet_set_can_unfold") | |
| 866 | + | core.PuregoSafeRegister(&xLeafletSetChildTransitionParams, lib, "adw_leaflet_set_child_transition_params") | |
| 867 | + | core.PuregoSafeRegister(&xLeafletSetFoldThresholdPolicy, lib, "adw_leaflet_set_fold_threshold_policy") | |
| 868 | + | core.PuregoSafeRegister(&xLeafletSetHomogeneous, lib, "adw_leaflet_set_homogeneous") | |
| 869 | + | core.PuregoSafeRegister(&xLeafletSetModeTransitionDuration, lib, "adw_leaflet_set_mode_transition_duration") | |
| 870 | + | core.PuregoSafeRegister(&xLeafletSetTransitionType, lib, "adw_leaflet_set_transition_type") | |
| 871 | + | core.PuregoSafeRegister(&xLeafletSetVisibleChild, lib, "adw_leaflet_set_visible_child") | |
| 872 | + | core.PuregoSafeRegister(&xLeafletSetVisibleChildName, lib, "adw_leaflet_set_visible_child_name") | |
| 873 | + | ||
| 874 | + | core.PuregoSafeRegister(&xLeafletPageGetChild, lib, "adw_leaflet_page_get_child") | |
| 875 | + | core.PuregoSafeRegister(&xLeafletPageGetName, lib, "adw_leaflet_page_get_name") | |
| 876 | + | core.PuregoSafeRegister(&xLeafletPageGetNavigatable, lib, "adw_leaflet_page_get_navigatable") | |
| 877 | + | core.PuregoSafeRegister(&xLeafletPageSetName, lib, "adw_leaflet_page_set_name") | |
| 878 | + | core.PuregoSafeRegister(&xLeafletPageSetNavigatable, lib, "adw_leaflet_page_set_navigatable") | |
| 879 | + | ||
| 880 | + | } | |
A v4/adw/adw-main.go +46 -0
| @@ -0,0 +1,46 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | ) | |
| 8 | + | ||
| 9 | + | var xInit func() | |
| 10 | + | ||
| 11 | + | // Initializes Libadwaita. | |
| 12 | + | // | |
| 13 | + | // This function can be used instead of [func@Gtk.init] as it initializes GTK | |
| 14 | + | // implicitly. | |
| 15 | + | // | |
| 16 | + | // There's no need to call this function if you're using [class@Application]. | |
| 17 | + | // | |
| 18 | + | // If Libadwaita has already been initialized, the function will simply return. | |
| 19 | + | // | |
| 20 | + | // This makes sure translations, types, themes, and icons for the Adwaita | |
| 21 | + | // library are set up properly. | |
| 22 | + | func Init() { | |
| 23 | + | ||
| 24 | + | xInit() | |
| 25 | + | ||
| 26 | + | } | |
| 27 | + | ||
| 28 | + | var xIsInitialized func() bool | |
| 29 | + | ||
| 30 | + | // Use this function to check if libadwaita has been initialized with | |
| 31 | + | // [func@init]. | |
| 32 | + | func IsInitialized() bool { | |
| 33 | + | ||
| 34 | + | return xIsInitialized() | |
| 35 | + | ||
| 36 | + | } | |
| 37 | + | ||
| 38 | + | func init() { | |
| 39 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 40 | + | if err != nil { | |
| 41 | + | panic(err) | |
| 42 | + | } | |
| 43 | + | core.PuregoSafeRegister(&xInit, lib, "adw_init") | |
| 44 | + | core.PuregoSafeRegister(&xIsInitialized, lib, "adw_is_initialized") | |
| 45 | + | ||
| 46 | + | } | |
A v4/adw/adw-message-dialog.go +928 -0
| @@ -0,0 +1,928 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gsk" | |
| 11 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 12 | + | ) | |
| 13 | + | ||
| 14 | + | type MessageDialogClass struct { | |
| 15 | + | ParentClass uintptr | |
| 16 | + | ||
| 17 | + | Padding uintptr | |
| 18 | + | } | |
| 19 | + | ||
| 20 | + | // Describes the possible styles of [class@MessageDialog] response buttons. | |
| 21 | + | // | |
| 22 | + | // See [method@MessageDialog.set_response_appearance]. | |
| 23 | + | type ResponseAppearance int | |
| 24 | + | ||
| 25 | + | const ( | |
| 26 | + | ||
| 27 | + | // the default appearance. | |
| 28 | + | ResponseDefaultValue ResponseAppearance = 0 | |
| 29 | + | // used to denote important responses such as the | |
| 30 | + | // affirmative action. | |
| 31 | + | ResponseSuggestedValue ResponseAppearance = 1 | |
| 32 | + | // used to draw attention to the potentially damaging | |
| 33 | + | // consequences of using the response. This appearance acts as a warning to | |
| 34 | + | // the user. | |
| 35 | + | ResponseDestructiveValue ResponseAppearance = 2 | |
| 36 | + | ) | |
| 37 | + | ||
| 38 | + | // A dialog presenting a message or a question. | |
| 39 | + | // | |
| 40 | + | // <picture> | |
| 41 | + | // | |
| 42 | + | // <source srcset="message-dialog-dark.png" media="(prefers-color-scheme: dark)"> | |
| 43 | + | // <img src="message-dialog.png" alt="message-dialog"> | |
| 44 | + | // | |
| 45 | + | // </picture> | |
| 46 | + | // | |
| 47 | + | // Message dialogs have a heading, a body, an optional child widget, and one or | |
| 48 | + | // multiple responses, each presented as a button. | |
| 49 | + | // | |
| 50 | + | // Each response has a unique string ID, and a button label. Additionally, each | |
| 51 | + | // response can be enabled or disabled, and can have a suggested or destructive | |
| 52 | + | // appearance. | |
| 53 | + | // | |
| 54 | + | // When one of the responses is activated, or the dialog is closed, the | |
| 55 | + | // [signal@MessageDialog::response] signal will be emitted. This signal is | |
| 56 | + | // detailed, and the detail, as well as the `response` parameter will be set to | |
| 57 | + | // the ID of the activated response, or to the value of the | |
| 58 | + | // [property@MessageDialog:close-response] property if the dialog had been | |
| 59 | + | // closed without activating any of the responses. | |
| 60 | + | // | |
| 61 | + | // Response buttons can be presented horizontally or vertically depending on | |
| 62 | + | // available space. | |
| 63 | + | // | |
| 64 | + | // When a response is activated, `AdwMessageDialog` is closed automatically. | |
| 65 | + | // | |
| 66 | + | // An example of using a message dialog: | |
| 67 | + | // | |
| 68 | + | // ```c | |
| 69 | + | // GtkWidget *dialog; | |
| 70 | + | // | |
| 71 | + | // dialog = adw_message_dialog_new (parent, _("Replace File?"), NULL); | |
| 72 | + | // | |
| 73 | + | // adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog), | |
| 74 | + | // | |
| 75 | + | // _("A file named “%s” already exists. Do you want to replace it?"), | |
| 76 | + | // filename); | |
| 77 | + | // | |
| 78 | + | // adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog), | |
| 79 | + | // | |
| 80 | + | // "cancel", _("_Cancel"), | |
| 81 | + | // "replace", _("_Replace"), | |
| 82 | + | // NULL); | |
| 83 | + | // | |
| 84 | + | // adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE); | |
| 85 | + | // | |
| 86 | + | // adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); | |
| 87 | + | // adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); | |
| 88 | + | // | |
| 89 | + | // g_signal_connect (dialog, "response", G_CALLBACK (response_cb), self); | |
| 90 | + | // | |
| 91 | + | // gtk_window_present (GTK_WINDOW (dialog)); | |
| 92 | + | // ``` | |
| 93 | + | // | |
| 94 | + | // ## Async API | |
| 95 | + | // | |
| 96 | + | // `AdwMessageDialog` can also be used via the [method@MessageDialog.choose] | |
| 97 | + | // method. This API follows the GIO async pattern, and the result can be | |
| 98 | + | // obtained by calling [method@MessageDialog.choose_finish], for example: | |
| 99 | + | // | |
| 100 | + | // ```c | |
| 101 | + | // static void | |
| 102 | + | // dialog_cb (AdwMessageDialog *dialog, | |
| 103 | + | // | |
| 104 | + | // GAsyncResult *result, | |
| 105 | + | // MyWindow *self) | |
| 106 | + | // | |
| 107 | + | // { | |
| 108 | + | // const char *response = adw_message_dialog_choose_finish (dialog, result); | |
| 109 | + | // | |
| 110 | + | // // ... | |
| 111 | + | // } | |
| 112 | + | // | |
| 113 | + | // static void | |
| 114 | + | // show_dialog (MyWindow *self) | |
| 115 | + | // | |
| 116 | + | // { | |
| 117 | + | // GtkWidget *dialog; | |
| 118 | + | // | |
| 119 | + | // dialog = adw_message_dialog_new (GTK_WINDOW (self), _("Replace File?"), NULL); | |
| 120 | + | // | |
| 121 | + | // adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog), | |
| 122 | + | // _("A file named “%s” already exists. Do you want to replace it?"), | |
| 123 | + | // filename); | |
| 124 | + | // | |
| 125 | + | // adw_message_dialog_add_responses (ADW_MESSAGE_DIALOG (dialog), | |
| 126 | + | // "cancel", _("_Cancel"), | |
| 127 | + | // "replace", _("_Replace"), | |
| 128 | + | // NULL); | |
| 129 | + | // | |
| 130 | + | // adw_message_dialog_set_response_appearance (ADW_MESSAGE_DIALOG (dialog), "replace", ADW_RESPONSE_DESTRUCTIVE); | |
| 131 | + | // | |
| 132 | + | // adw_message_dialog_set_default_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); | |
| 133 | + | // adw_message_dialog_set_close_response (ADW_MESSAGE_DIALOG (dialog), "cancel"); | |
| 134 | + | // | |
| 135 | + | // adw_message_dialog_choose (ADW_MESSAGE_DIALOG (dialog), NULL, (GAsyncReadyCallback) dialog_cb, self); | |
| 136 | + | // } | |
| 137 | + | // | |
| 138 | + | // ``` | |
| 139 | + | // | |
| 140 | + | // ## AdwMessageDialog as GtkBuildable | |
| 141 | + | // | |
| 142 | + | // `AdwMessageDialog` supports adding responses in UI definitions by via the | |
| 143 | + | // `<responses>` element that may contain multiple `<response>` elements, each | |
| 144 | + | // respresenting a response. | |
| 145 | + | // | |
| 146 | + | // Each of the `<response>` elements must have the `id` attribute specifying the | |
| 147 | + | // response ID. The contents of the element are used as the response label. | |
| 148 | + | // | |
| 149 | + | // Response labels can be translated with the usual `translatable`, `context` | |
| 150 | + | // and `comments` attributes. | |
| 151 | + | // | |
| 152 | + | // The `<response>` elements can also have `enabled` and/or `appearance` | |
| 153 | + | // attributes. See [method@MessageDialog.set_response_enabled] and | |
| 154 | + | // [method@MessageDialog.set_response_appearance] for details. | |
| 155 | + | // | |
| 156 | + | // Example of an `AdwMessageDialog` UI definition: | |
| 157 | + | // | |
| 158 | + | // ```xml | |
| 159 | + | // <object class="AdwMessageDialog" id="dialog"> | |
| 160 | + | // | |
| 161 | + | // <property name="heading" translatable="yes">Save Changes?</property> | |
| 162 | + | // <property name="body" translatable="yes">Open documents contain unsaved changes. Changes which are not saved will be permanently lost.</property> | |
| 163 | + | // <property name="default-response">save</property> | |
| 164 | + | // <property name="close-response">cancel</property> | |
| 165 | + | // <signal name="response" handler="response_cb"/> | |
| 166 | + | // <responses> | |
| 167 | + | // <response id="cancel" translatable="yes">_Cancel</response> | |
| 168 | + | // <response id="discard" translatable="yes" appearance="destructive">_Discard</response> | |
| 169 | + | // <response id="save" translatable="yes" appearance="suggested" enabled="false">_Save</response> | |
| 170 | + | // </responses> | |
| 171 | + | // | |
| 172 | + | // </object> | |
| 173 | + | // ``` | |
| 174 | + | // | |
| 175 | + | // ## Accessibility | |
| 176 | + | // | |
| 177 | + | // `AdwMessageDialog` uses the `GTK_ACCESSIBLE_ROLE_DIALOG` role. | |
| 178 | + | type MessageDialog struct { | |
| 179 | + | gtk.Window | |
| 180 | + | } | |
| 181 | + | ||
| 182 | + | func MessageDialogNewFromInternalPtr(ptr uintptr) *MessageDialog { | |
| 183 | + | cls := &MessageDialog{} | |
| 184 | + | cls.Ptr = ptr | |
| 185 | + | return cls | |
| 186 | + | } | |
| 187 | + | ||
| 188 | + | var xNewMessageDialog func(uintptr, string, string) uintptr | |
| 189 | + | ||
| 190 | + | // Creates a new `AdwMessageDialog`. | |
| 191 | + | // | |
| 192 | + | // @heading and @body can be set to `NULL`. This can be useful if they need to | |
| 193 | + | // be formatted or use markup. In that case, set them to `NULL` and call | |
| 194 | + | // [method@MessageDialog.format_body] or similar methods afterwards: | |
| 195 | + | // | |
| 196 | + | // ```c | |
| 197 | + | // GtkWidget *dialog; | |
| 198 | + | // | |
| 199 | + | // dialog = adw_message_dialog_new (parent, _("Replace File?"), NULL); | |
| 200 | + | // adw_message_dialog_format_body (ADW_MESSAGE_DIALOG (dialog), | |
| 201 | + | // | |
| 202 | + | // _("A file named “%s” already exists. Do you want to replace it?"), | |
| 203 | + | // filename); | |
| 204 | + | // | |
| 205 | + | // ``` | |
| 206 | + | func NewMessageDialog(ParentVar *gtk.Window, HeadingVar string, BodyVar string) *gtk.Widget { | |
| 207 | + | NewMessageDialogPtr := xNewMessageDialog(ParentVar.GoPointer(), HeadingVar, BodyVar) | |
| 208 | + | if NewMessageDialogPtr == 0 { | |
| 209 | + | return nil | |
| 210 | + | } | |
| 211 | + | ||
| 212 | + | gobject.IncreaseRef(NewMessageDialogPtr) | |
| 213 | + | ||
| 214 | + | NewMessageDialogCls := >k.Widget{} | |
| 215 | + | NewMessageDialogCls.Ptr = NewMessageDialogPtr | |
| 216 | + | return NewMessageDialogCls | |
| 217 | + | } | |
| 218 | + | ||
| 219 | + | var xMessageDialogAddResponse func(uintptr, string, string) | |
| 220 | + | ||
| 221 | + | // Adds a response with @id and @label to @self. | |
| 222 | + | // | |
| 223 | + | // Responses are represented as buttons in the dialog. | |
| 224 | + | // | |
| 225 | + | // Response ID must be unique. It will be used in | |
| 226 | + | // [signal@MessageDialog::response] to tell which response had been activated, | |
| 227 | + | // as well as to inspect and modify the response later. | |
| 228 | + | // | |
| 229 | + | // An embedded underline in @label indicates a mnemonic. | |
| 230 | + | // | |
| 231 | + | // [method@MessageDialog.set_response_label] can be used to change the response | |
| 232 | + | // label after it had been added. | |
| 233 | + | // | |
| 234 | + | // [method@MessageDialog.set_response_enabled] and | |
| 235 | + | // [method@MessageDialog.set_response_appearance] can be used to customize the | |
| 236 | + | // responses further. | |
| 237 | + | func (x *MessageDialog) AddResponse(IdVar string, LabelVar string) { | |
| 238 | + | ||
| 239 | + | xMessageDialogAddResponse(x.GoPointer(), IdVar, LabelVar) | |
| 240 | + | ||
| 241 | + | } | |
| 242 | + | ||
| 243 | + | var xMessageDialogAddResponses func(uintptr, string, ...interface{}) | |
| 244 | + | ||
| 245 | + | // Adds multiple responses to @self. | |
| 246 | + | // | |
| 247 | + | // This is the same as calling [method@MessageDialog.add_response] repeatedly. | |
| 248 | + | // The variable argument list should be `NULL`-terminated list of response IDs | |
| 249 | + | // and labels. | |
| 250 | + | // | |
| 251 | + | // Example: | |
| 252 | + | // | |
| 253 | + | // ```c | |
| 254 | + | // adw_message_dialog_add_responses (dialog, | |
| 255 | + | // | |
| 256 | + | // "cancel", _("_Cancel"), | |
| 257 | + | // "discard", _("_Discard"), | |
| 258 | + | // "save", _("_Save"), | |
| 259 | + | // NULL); | |
| 260 | + | // | |
| 261 | + | // ``` | |
| 262 | + | func (x *MessageDialog) AddResponses(FirstIdVar string, varArgs ...interface{}) { | |
| 263 | + | ||
| 264 | + | xMessageDialogAddResponses(x.GoPointer(), FirstIdVar, varArgs...) | |
| 265 | + | ||
| 266 | + | } | |
| 267 | + | ||
| 268 | + | var xMessageDialogChoose func(uintptr, uintptr, uintptr, uintptr) | |
| 269 | + | ||
| 270 | + | // This function shows @self to the user. | |
| 271 | + | // | |
| 272 | + | // The @callback will be called when the alert is dismissed. It should call | |
| 273 | + | // [method@MessageDialog.choose_finish] to obtain the result. | |
| 274 | + | func (x *MessageDialog) Choose(CancellableVar *gio.Cancellable, CallbackVar gio.AsyncReadyCallback, UserDataVar uintptr) { | |
| 275 | + | ||
| 276 | + | xMessageDialogChoose(x.GoPointer(), CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 277 | + | ||
| 278 | + | } | |
| 279 | + | ||
| 280 | + | var xMessageDialogChooseFinish func(uintptr, uintptr) string | |
| 281 | + | ||
| 282 | + | // Finishes the [method@MessageDialog.choose] call and returns the response ID. | |
| 283 | + | func (x *MessageDialog) ChooseFinish(ResultVar gio.AsyncResult) string { | |
| 284 | + | ||
| 285 | + | return xMessageDialogChooseFinish(x.GoPointer(), ResultVar.GoPointer()) | |
| 286 | + | ||
| 287 | + | } | |
| 288 | + | ||
| 289 | + | var xMessageDialogFormatBody func(uintptr, string, ...interface{}) | |
| 290 | + | ||
| 291 | + | // Sets the formatted body text of @self. | |
| 292 | + | // | |
| 293 | + | // See [property@MessageDialog:body]. | |
| 294 | + | func (x *MessageDialog) FormatBody(FormatVar string, varArgs ...interface{}) { | |
| 295 | + | ||
| 296 | + | xMessageDialogFormatBody(x.GoPointer(), FormatVar, varArgs...) | |
| 297 | + | ||
| 298 | + | } | |
| 299 | + | ||
| 300 | + | var xMessageDialogFormatBodyMarkup func(uintptr, string, ...interface{}) | |
| 301 | + | ||
| 302 | + | // Sets the formatted body text of @self with Pango markup. | |
| 303 | + | // | |
| 304 | + | // The @format is assumed to contain Pango markup. | |
| 305 | + | // | |
| 306 | + | // Special XML characters in the `printf()` arguments passed to this function | |
| 307 | + | // will automatically be escaped as necessary, see | |
| 308 | + | // [func@GLib.markup_printf_escaped]. | |
| 309 | + | // | |
| 310 | + | // See [property@MessageDialog:body]. | |
| 311 | + | func (x *MessageDialog) FormatBodyMarkup(FormatVar string, varArgs ...interface{}) { | |
| 312 | + | ||
| 313 | + | xMessageDialogFormatBodyMarkup(x.GoPointer(), FormatVar, varArgs...) | |
| 314 | + | ||
| 315 | + | } | |
| 316 | + | ||
| 317 | + | var xMessageDialogFormatHeading func(uintptr, string, ...interface{}) | |
| 318 | + | ||
| 319 | + | // Sets the formatted heading of @self. | |
| 320 | + | // | |
| 321 | + | // See [property@MessageDialog:heading]. | |
| 322 | + | func (x *MessageDialog) FormatHeading(FormatVar string, varArgs ...interface{}) { | |
| 323 | + | ||
| 324 | + | xMessageDialogFormatHeading(x.GoPointer(), FormatVar, varArgs...) | |
| 325 | + | ||
| 326 | + | } | |
| 327 | + | ||
| 328 | + | var xMessageDialogFormatHeadingMarkup func(uintptr, string, ...interface{}) | |
| 329 | + | ||
| 330 | + | // Sets the formatted heading of @self with Pango markup. | |
| 331 | + | // | |
| 332 | + | // The @format is assumed to contain Pango markup. | |
| 333 | + | // | |
| 334 | + | // Special XML characters in the `printf()` arguments passed to this function | |
| 335 | + | // will automatically be escaped as necessary, see | |
| 336 | + | // [func@GLib.markup_printf_escaped]. | |
| 337 | + | // | |
| 338 | + | // See [property@MessageDialog:heading]. | |
| 339 | + | func (x *MessageDialog) FormatHeadingMarkup(FormatVar string, varArgs ...interface{}) { | |
| 340 | + | ||
| 341 | + | xMessageDialogFormatHeadingMarkup(x.GoPointer(), FormatVar, varArgs...) | |
| 342 | + | ||
| 343 | + | } | |
| 344 | + | ||
| 345 | + | var xMessageDialogGetBody func(uintptr) string | |
| 346 | + | ||
| 347 | + | // Gets the body text of @self. | |
| 348 | + | func (x *MessageDialog) GetBody() string { | |
| 349 | + | ||
| 350 | + | return xMessageDialogGetBody(x.GoPointer()) | |
| 351 | + | ||
| 352 | + | } | |
| 353 | + | ||
| 354 | + | var xMessageDialogGetBodyUseMarkup func(uintptr) bool | |
| 355 | + | ||
| 356 | + | // Gets whether the body text of @self includes Pango markup. | |
| 357 | + | func (x *MessageDialog) GetBodyUseMarkup() bool { | |
| 358 | + | ||
| 359 | + | return xMessageDialogGetBodyUseMarkup(x.GoPointer()) | |
| 360 | + | ||
| 361 | + | } | |
| 362 | + | ||
| 363 | + | var xMessageDialogGetCloseResponse func(uintptr) string | |
| 364 | + | ||
| 365 | + | // Gets the ID of the close response of @self. | |
| 366 | + | func (x *MessageDialog) GetCloseResponse() string { | |
| 367 | + | ||
| 368 | + | return xMessageDialogGetCloseResponse(x.GoPointer()) | |
| 369 | + | ||
| 370 | + | } | |
| 371 | + | ||
| 372 | + | var xMessageDialogGetDefaultResponse func(uintptr) string | |
| 373 | + | ||
| 374 | + | // Gets the ID of the default response of @self. | |
| 375 | + | func (x *MessageDialog) GetDefaultResponse() string { | |
| 376 | + | ||
| 377 | + | return xMessageDialogGetDefaultResponse(x.GoPointer()) | |
| 378 | + | ||
| 379 | + | } | |
| 380 | + | ||
| 381 | + | var xMessageDialogGetExtraChild func(uintptr) uintptr | |
| 382 | + | ||
| 383 | + | // Gets the child widget of @self. | |
| 384 | + | func (x *MessageDialog) GetExtraChild() *gtk.Widget { | |
| 385 | + | ||
| 386 | + | GetExtraChildPtr := xMessageDialogGetExtraChild(x.GoPointer()) | |
| 387 | + | if GetExtraChildPtr == 0 { | |
| 388 | + | return nil | |
| 389 | + | } | |
| 390 | + | ||
| 391 | + | gobject.IncreaseRef(GetExtraChildPtr) | |
| 392 | + | ||
| 393 | + | GetExtraChildCls := >k.Widget{} | |
| 394 | + | GetExtraChildCls.Ptr = GetExtraChildPtr | |
| 395 | + | return GetExtraChildCls | |
| 396 | + | ||
| 397 | + | } | |
| 398 | + | ||
| 399 | + | var xMessageDialogGetHeading func(uintptr) string | |
| 400 | + | ||
| 401 | + | // Gets the heading of @self. | |
| 402 | + | func (x *MessageDialog) GetHeading() string { | |
| 403 | + | ||
| 404 | + | return xMessageDialogGetHeading(x.GoPointer()) | |
| 405 | + | ||
| 406 | + | } | |
| 407 | + | ||
| 408 | + | var xMessageDialogGetHeadingUseMarkup func(uintptr) bool | |
| 409 | + | ||
| 410 | + | // Gets whether the heading of @self includes Pango markup. | |
| 411 | + | func (x *MessageDialog) GetHeadingUseMarkup() bool { | |
| 412 | + | ||
| 413 | + | return xMessageDialogGetHeadingUseMarkup(x.GoPointer()) | |
| 414 | + | ||
| 415 | + | } | |
| 416 | + | ||
| 417 | + | var xMessageDialogGetResponseAppearance func(uintptr, string) ResponseAppearance | |
| 418 | + | ||
| 419 | + | // Gets the appearance of @response. | |
| 420 | + | // | |
| 421 | + | // See [method@MessageDialog.set_response_appearance]. | |
| 422 | + | func (x *MessageDialog) GetResponseAppearance(ResponseVar string) ResponseAppearance { | |
| 423 | + | ||
| 424 | + | return xMessageDialogGetResponseAppearance(x.GoPointer(), ResponseVar) | |
| 425 | + | ||
| 426 | + | } | |
| 427 | + | ||
| 428 | + | var xMessageDialogGetResponseEnabled func(uintptr, string) bool | |
| 429 | + | ||
| 430 | + | // Gets whether @response is enabled. | |
| 431 | + | // | |
| 432 | + | // See [method@MessageDialog.set_response_enabled]. | |
| 433 | + | func (x *MessageDialog) GetResponseEnabled(ResponseVar string) bool { | |
| 434 | + | ||
| 435 | + | return xMessageDialogGetResponseEnabled(x.GoPointer(), ResponseVar) | |
| 436 | + | ||
| 437 | + | } | |
| 438 | + | ||
| 439 | + | var xMessageDialogGetResponseLabel func(uintptr, string) string | |
| 440 | + | ||
| 441 | + | // Gets the label of @response. | |
| 442 | + | // | |
| 443 | + | // See [method@MessageDialog.set_response_label]. | |
| 444 | + | func (x *MessageDialog) GetResponseLabel(ResponseVar string) string { | |
| 445 | + | ||
| 446 | + | return xMessageDialogGetResponseLabel(x.GoPointer(), ResponseVar) | |
| 447 | + | ||
| 448 | + | } | |
| 449 | + | ||
| 450 | + | var xMessageDialogHasResponse func(uintptr, string) bool | |
| 451 | + | ||
| 452 | + | // Gets whether @self has a response with the ID @response. | |
| 453 | + | func (x *MessageDialog) HasResponse(ResponseVar string) bool { | |
| 454 | + | ||
| 455 | + | return xMessageDialogHasResponse(x.GoPointer(), ResponseVar) | |
| 456 | + | ||
| 457 | + | } | |
| 458 | + | ||
| 459 | + | var xMessageDialogResponse func(uintptr, string) | |
| 460 | + | ||
| 461 | + | // Emits the [signal@MessageDialog::response] signal with the given response ID. | |
| 462 | + | // | |
| 463 | + | // Used to indicate that the user has responded to the dialog in some way. | |
| 464 | + | func (x *MessageDialog) Response(ResponseVar string) { | |
| 465 | + | ||
| 466 | + | xMessageDialogResponse(x.GoPointer(), ResponseVar) | |
| 467 | + | ||
| 468 | + | } | |
| 469 | + | ||
| 470 | + | var xMessageDialogSetBody func(uintptr, string) | |
| 471 | + | ||
| 472 | + | // Sets the body text of @self. | |
| 473 | + | func (x *MessageDialog) SetBody(BodyVar string) { | |
| 474 | + | ||
| 475 | + | xMessageDialogSetBody(x.GoPointer(), BodyVar) | |
| 476 | + | ||
| 477 | + | } | |
| 478 | + | ||
| 479 | + | var xMessageDialogSetBodyUseMarkup func(uintptr, bool) | |
| 480 | + | ||
| 481 | + | // Sets whether the body text of @self includes Pango markup. | |
| 482 | + | // | |
| 483 | + | // See [func@Pango.parse_markup]. | |
| 484 | + | func (x *MessageDialog) SetBodyUseMarkup(UseMarkupVar bool) { | |
| 485 | + | ||
| 486 | + | xMessageDialogSetBodyUseMarkup(x.GoPointer(), UseMarkupVar) | |
| 487 | + | ||
| 488 | + | } | |
| 489 | + | ||
| 490 | + | var xMessageDialogSetCloseResponse func(uintptr, string) | |
| 491 | + | ||
| 492 | + | // Sets the ID of the close response of @self. | |
| 493 | + | // | |
| 494 | + | // It will be passed to [signal@MessageDialog::response] if the window is | |
| 495 | + | // closed by pressing <kbd>Escape</kbd> or with a system action. | |
| 496 | + | // | |
| 497 | + | // It doesn't have to correspond to any of the responses in the dialog. | |
| 498 | + | // | |
| 499 | + | // The default close response is `close`. | |
| 500 | + | func (x *MessageDialog) SetCloseResponse(ResponseVar string) { | |
| 501 | + | ||
| 502 | + | xMessageDialogSetCloseResponse(x.GoPointer(), ResponseVar) | |
| 503 | + | ||
| 504 | + | } | |
| 505 | + | ||
| 506 | + | var xMessageDialogSetDefaultResponse func(uintptr, string) | |
| 507 | + | ||
| 508 | + | // Sets the ID of the default response of @self. | |
| 509 | + | // | |
| 510 | + | // If set, pressing <kbd>Enter</kbd> will activate the corresponding button. | |
| 511 | + | // | |
| 512 | + | // If set to `NULL` or to a non-existent response ID, pressing <kbd>Enter</kbd> | |
| 513 | + | // will do nothing. | |
| 514 | + | func (x *MessageDialog) SetDefaultResponse(ResponseVar string) { | |
| 515 | + | ||
| 516 | + | xMessageDialogSetDefaultResponse(x.GoPointer(), ResponseVar) | |
| 517 | + | ||
| 518 | + | } | |
| 519 | + | ||
| 520 | + | var xMessageDialogSetExtraChild func(uintptr, uintptr) | |
| 521 | + | ||
| 522 | + | // Sets the child widget of @self. | |
| 523 | + | // | |
| 524 | + | // The child widget is displayed below the heading and body. | |
| 525 | + | func (x *MessageDialog) SetExtraChild(ChildVar *gtk.Widget) { | |
| 526 | + | ||
| 527 | + | xMessageDialogSetExtraChild(x.GoPointer(), ChildVar.GoPointer()) | |
| 528 | + | ||
| 529 | + | } | |
| 530 | + | ||
| 531 | + | var xMessageDialogSetHeading func(uintptr, string) | |
| 532 | + | ||
| 533 | + | // Sets the heading of @self. | |
| 534 | + | func (x *MessageDialog) SetHeading(HeadingVar string) { | |
| 535 | + | ||
| 536 | + | xMessageDialogSetHeading(x.GoPointer(), HeadingVar) | |
| 537 | + | ||
| 538 | + | } | |
| 539 | + | ||
| 540 | + | var xMessageDialogSetHeadingUseMarkup func(uintptr, bool) | |
| 541 | + | ||
| 542 | + | // Sets whether the heading of @self includes Pango markup. | |
| 543 | + | // | |
| 544 | + | // See [func@Pango.parse_markup]. | |
| 545 | + | func (x *MessageDialog) SetHeadingUseMarkup(UseMarkupVar bool) { | |
| 546 | + | ||
| 547 | + | xMessageDialogSetHeadingUseMarkup(x.GoPointer(), UseMarkupVar) | |
| 548 | + | ||
| 549 | + | } | |
| 550 | + | ||
| 551 | + | var xMessageDialogSetResponseAppearance func(uintptr, string, ResponseAppearance) | |
| 552 | + | ||
| 553 | + | // Sets the appearance for @response. | |
| 554 | + | // | |
| 555 | + | // <picture> | |
| 556 | + | // | |
| 557 | + | // <source srcset="message-dialog-appearance-dark.png" media="(prefers-color-scheme: dark)"> | |
| 558 | + | // <img src="message-dialog-appearance.png" alt="message-dialog-appearance"> | |
| 559 | + | // | |
| 560 | + | // </picture> | |
| 561 | + | // | |
| 562 | + | // Use `ADW_RESPONSE_SUGGESTED` to mark important responses such as the | |
| 563 | + | // affirmative action, like the Save button in the example. | |
| 564 | + | // | |
| 565 | + | // Use `ADW_RESPONSE_DESTRUCTIVE` to draw attention to the potentially damaging | |
| 566 | + | // consequences of using @response. This appearance acts as a warning to the | |
| 567 | + | // user. The Discard button in the example is using this appearance. | |
| 568 | + | // | |
| 569 | + | // The default appearance is `ADW_RESPONSE_DEFAULT`. | |
| 570 | + | // | |
| 571 | + | // Negative responses like Cancel or Close should use the default appearance. | |
| 572 | + | func (x *MessageDialog) SetResponseAppearance(ResponseVar string, AppearanceVar ResponseAppearance) { | |
| 573 | + | ||
| 574 | + | xMessageDialogSetResponseAppearance(x.GoPointer(), ResponseVar, AppearanceVar) | |
| 575 | + | ||
| 576 | + | } | |
| 577 | + | ||
| 578 | + | var xMessageDialogSetResponseEnabled func(uintptr, string, bool) | |
| 579 | + | ||
| 580 | + | // Sets whether @response is enabled. | |
| 581 | + | // | |
| 582 | + | // If @response is not enabled, the corresponding button will have | |
| 583 | + | // [property@Gtk.Widget:sensitive] set to `FALSE` and it can't be activated as | |
| 584 | + | // a default response. | |
| 585 | + | // | |
| 586 | + | // @response can still be used as [property@MessageDialog:close-response] while | |
| 587 | + | // it's not enabled. | |
| 588 | + | // | |
| 589 | + | // Responses are enabled by default. | |
| 590 | + | func (x *MessageDialog) SetResponseEnabled(ResponseVar string, EnabledVar bool) { | |
| 591 | + | ||
| 592 | + | xMessageDialogSetResponseEnabled(x.GoPointer(), ResponseVar, EnabledVar) | |
| 593 | + | ||
| 594 | + | } | |
| 595 | + | ||
| 596 | + | var xMessageDialogSetResponseLabel func(uintptr, string, string) | |
| 597 | + | ||
| 598 | + | // Sets the label of @response to @label. | |
| 599 | + | // | |
| 600 | + | // Labels are displayed on the dialog buttons. An embedded underline in @label | |
| 601 | + | // indicates a mnemonic. | |
| 602 | + | func (x *MessageDialog) SetResponseLabel(ResponseVar string, LabelVar string) { | |
| 603 | + | ||
| 604 | + | xMessageDialogSetResponseLabel(x.GoPointer(), ResponseVar, LabelVar) | |
| 605 | + | ||
| 606 | + | } | |
| 607 | + | ||
| 608 | + | func (c *MessageDialog) GoPointer() uintptr { | |
| 609 | + | return c.Ptr | |
| 610 | + | } | |
| 611 | + | ||
| 612 | + | func (c *MessageDialog) SetGoPointer(ptr uintptr) { | |
| 613 | + | c.Ptr = ptr | |
| 614 | + | } | |
| 615 | + | ||
| 616 | + | // This signal is emitted when the dialog is closed. | |
| 617 | + | // | |
| 618 | + | // @response will be set to the response ID of the button that had been | |
| 619 | + | // activated. | |
| 620 | + | // | |
| 621 | + | // if the dialog was closed by pressing <kbd>Escape</kbd> or with a system | |
| 622 | + | // action, @response will be set to the value of | |
| 623 | + | // [property@MessageDialog:close-response]. | |
| 624 | + | func (x *MessageDialog) ConnectResponse(cb func(MessageDialog, string)) { | |
| 625 | + | fcb := func(clsPtr uintptr, ResponseVarp string) { | |
| 626 | + | fa := MessageDialog{} | |
| 627 | + | fa.Ptr = clsPtr | |
| 628 | + | ||
| 629 | + | cb(fa, ResponseVarp) | |
| 630 | + | ||
| 631 | + | } | |
| 632 | + | gobject.ObjectConnect(x.GoPointer(), "signal::response", purego.NewCallback(fcb)) | |
| 633 | + | } | |
| 634 | + | ||
| 635 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 636 | + | func (x *MessageDialog) GetAccessibleRole() gtk.AccessibleRole { | |
| 637 | + | ||
| 638 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 639 | + | ||
| 640 | + | } | |
| 641 | + | ||
| 642 | + | // Resets the accessible @property to its default value. | |
| 643 | + | func (x *MessageDialog) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 644 | + | ||
| 645 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 646 | + | ||
| 647 | + | } | |
| 648 | + | ||
| 649 | + | // Resets the accessible @relation to its default value. | |
| 650 | + | func (x *MessageDialog) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 651 | + | ||
| 652 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 653 | + | ||
| 654 | + | } | |
| 655 | + | ||
| 656 | + | // Resets the accessible @state to its default value. | |
| 657 | + | func (x *MessageDialog) ResetState(StateVar gtk.AccessibleState) { | |
| 658 | + | ||
| 659 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 660 | + | ||
| 661 | + | } | |
| 662 | + | ||
| 663 | + | // Updates a list of accessible properties. | |
| 664 | + | // | |
| 665 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 666 | + | // value types of accessible properties. | |
| 667 | + | // | |
| 668 | + | // This function should be called by `GtkWidget` types whenever | |
| 669 | + | // an accessible property change must be communicated to assistive | |
| 670 | + | // technologies. | |
| 671 | + | // | |
| 672 | + | // Example: | |
| 673 | + | // ```c | |
| 674 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 675 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 676 | + | // | |
| 677 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 678 | + | // -1); | |
| 679 | + | // | |
| 680 | + | // ``` | |
| 681 | + | func (x *MessageDialog) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 682 | + | ||
| 683 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 684 | + | ||
| 685 | + | } | |
| 686 | + | ||
| 687 | + | // Updates an array of accessible properties. | |
| 688 | + | // | |
| 689 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 690 | + | // property change must be communicated to assistive technologies. | |
| 691 | + | // | |
| 692 | + | // This function is meant to be used by language bindings. | |
| 693 | + | func (x *MessageDialog) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 694 | + | ||
| 695 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 696 | + | ||
| 697 | + | } | |
| 698 | + | ||
| 699 | + | // Updates a list of accessible relations. | |
| 700 | + | // | |
| 701 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 702 | + | // relation change must be communicated to assistive technologies. | |
| 703 | + | // | |
| 704 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 705 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 706 | + | // | |
| 707 | + | // ```c | |
| 708 | + | // gtk_accessible_update_relation (accessible, | |
| 709 | + | // | |
| 710 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 711 | + | // ref1, NULL, | |
| 712 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 713 | + | // ref1, ref2, ref3, NULL, | |
| 714 | + | // -1); | |
| 715 | + | // | |
| 716 | + | // ``` | |
| 717 | + | func (x *MessageDialog) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 718 | + | ||
| 719 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 720 | + | ||
| 721 | + | } | |
| 722 | + | ||
| 723 | + | // Updates an array of accessible relations. | |
| 724 | + | // | |
| 725 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 726 | + | // relation change must be communicated to assistive technologies. | |
| 727 | + | // | |
| 728 | + | // This function is meant to be used by language bindings. | |
| 729 | + | func (x *MessageDialog) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 730 | + | ||
| 731 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 732 | + | ||
| 733 | + | } | |
| 734 | + | ||
| 735 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 736 | + | // documentation for the value types of accessible states. | |
| 737 | + | // | |
| 738 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 739 | + | // state change must be communicated to assistive technologies. | |
| 740 | + | // | |
| 741 | + | // Example: | |
| 742 | + | // ```c | |
| 743 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 744 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 745 | + | // | |
| 746 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 747 | + | // -1); | |
| 748 | + | // | |
| 749 | + | // ``` | |
| 750 | + | func (x *MessageDialog) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 751 | + | ||
| 752 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 753 | + | ||
| 754 | + | } | |
| 755 | + | ||
| 756 | + | // Updates an array of accessible states. | |
| 757 | + | // | |
| 758 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 759 | + | // state change must be communicated to assistive technologies. | |
| 760 | + | // | |
| 761 | + | // This function is meant to be used by language bindings. | |
| 762 | + | func (x *MessageDialog) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 763 | + | ||
| 764 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 765 | + | ||
| 766 | + | } | |
| 767 | + | ||
| 768 | + | // Gets the ID of the @buildable object. | |
| 769 | + | // | |
| 770 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 771 | + | // of the <object> tag used to construct the @buildable. | |
| 772 | + | func (x *MessageDialog) GetBuildableId() string { | |
| 773 | + | ||
| 774 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 775 | + | ||
| 776 | + | } | |
| 777 | + | ||
| 778 | + | // Returns the renderer that is used for this `GtkNative`. | |
| 779 | + | func (x *MessageDialog) GetRenderer() *gsk.Renderer { | |
| 780 | + | ||
| 781 | + | GetRendererPtr := gtk.XGtkNativeGetRenderer(x.GoPointer()) | |
| 782 | + | if GetRendererPtr == 0 { | |
| 783 | + | return nil | |
| 784 | + | } | |
| 785 | + | ||
| 786 | + | gobject.IncreaseRef(GetRendererPtr) | |
| 787 | + | ||
| 788 | + | GetRendererCls := &gsk.Renderer{} | |
| 789 | + | GetRendererCls.Ptr = GetRendererPtr | |
| 790 | + | return GetRendererCls | |
| 791 | + | ||
| 792 | + | } | |
| 793 | + | ||
| 794 | + | // Returns the surface of this `GtkNative`. | |
| 795 | + | func (x *MessageDialog) GetSurface() *gdk.Surface { | |
| 796 | + | ||
| 797 | + | GetSurfacePtr := gtk.XGtkNativeGetSurface(x.GoPointer()) | |
| 798 | + | if GetSurfacePtr == 0 { | |
| 799 | + | return nil | |
| 800 | + | } | |
| 801 | + | ||
| 802 | + | gobject.IncreaseRef(GetSurfacePtr) | |
| 803 | + | ||
| 804 | + | GetSurfaceCls := &gdk.Surface{} | |
| 805 | + | GetSurfaceCls.Ptr = GetSurfacePtr | |
| 806 | + | return GetSurfaceCls | |
| 807 | + | ||
| 808 | + | } | |
| 809 | + | ||
| 810 | + | // Retrieves the surface transform of @self. | |
| 811 | + | // | |
| 812 | + | // This is the translation from @self's surface coordinates into | |
| 813 | + | // @self's widget coordinates. | |
| 814 | + | func (x *MessageDialog) GetSurfaceTransform(XVar float64, YVar float64) { | |
| 815 | + | ||
| 816 | + | gtk.XGtkNativeGetSurfaceTransform(x.GoPointer(), XVar, YVar) | |
| 817 | + | ||
| 818 | + | } | |
| 819 | + | ||
| 820 | + | // Realizes a `GtkNative`. | |
| 821 | + | // | |
| 822 | + | // This should only be used by subclasses. | |
| 823 | + | func (x *MessageDialog) Realize() { | |
| 824 | + | ||
| 825 | + | gtk.XGtkNativeRealize(x.GoPointer()) | |
| 826 | + | ||
| 827 | + | } | |
| 828 | + | ||
| 829 | + | // Unrealizes a `GtkNative`. | |
| 830 | + | // | |
| 831 | + | // This should only be used by subclasses. | |
| 832 | + | func (x *MessageDialog) Unrealize() { | |
| 833 | + | ||
| 834 | + | gtk.XGtkNativeUnrealize(x.GoPointer()) | |
| 835 | + | ||
| 836 | + | } | |
| 837 | + | ||
| 838 | + | // Returns the display that this `GtkRoot` is on. | |
| 839 | + | func (x *MessageDialog) GetDisplay() *gdk.Display { | |
| 840 | + | ||
| 841 | + | GetDisplayPtr := gtk.XGtkRootGetDisplay(x.GoPointer()) | |
| 842 | + | if GetDisplayPtr == 0 { | |
| 843 | + | return nil | |
| 844 | + | } | |
| 845 | + | ||
| 846 | + | gobject.IncreaseRef(GetDisplayPtr) | |
| 847 | + | ||
| 848 | + | GetDisplayCls := &gdk.Display{} | |
| 849 | + | GetDisplayCls.Ptr = GetDisplayPtr | |
| 850 | + | return GetDisplayCls | |
| 851 | + | ||
| 852 | + | } | |
| 853 | + | ||
| 854 | + | // Retrieves the current focused widget within the root. | |
| 855 | + | // | |
| 856 | + | // Note that this is the widget that would have the focus | |
| 857 | + | // if the root is active; if the root is not focused then | |
| 858 | + | // `gtk_widget_has_focus (widget)` will be %FALSE for the | |
| 859 | + | // widget. | |
| 860 | + | func (x *MessageDialog) GetFocus() *gtk.Widget { | |
| 861 | + | ||
| 862 | + | GetFocusPtr := gtk.XGtkRootGetFocus(x.GoPointer()) | |
| 863 | + | if GetFocusPtr == 0 { | |
| 864 | + | return nil | |
| 865 | + | } | |
| 866 | + | ||
| 867 | + | gobject.IncreaseRef(GetFocusPtr) | |
| 868 | + | ||
| 869 | + | GetFocusCls := >k.Widget{} | |
| 870 | + | GetFocusCls.Ptr = GetFocusPtr | |
| 871 | + | return GetFocusCls | |
| 872 | + | ||
| 873 | + | } | |
| 874 | + | ||
| 875 | + | // If @focus is not the current focus widget, and is focusable, sets | |
| 876 | + | // it as the focus widget for the root. | |
| 877 | + | // | |
| 878 | + | // If @focus is %NULL, unsets the focus widget for the root. | |
| 879 | + | // | |
| 880 | + | // To set the focus to a particular widget in the root, it is usually | |
| 881 | + | // more convenient to use [method@Gtk.Widget.grab_focus] instead of | |
| 882 | + | // this function. | |
| 883 | + | func (x *MessageDialog) SetFocus(FocusVar *gtk.Widget) { | |
| 884 | + | ||
| 885 | + | gtk.XGtkRootSetFocus(x.GoPointer(), FocusVar.GoPointer()) | |
| 886 | + | ||
| 887 | + | } | |
| 888 | + | ||
| 889 | + | func init() { | |
| 890 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 891 | + | if err != nil { | |
| 892 | + | panic(err) | |
| 893 | + | } | |
| 894 | + | ||
| 895 | + | core.PuregoSafeRegister(&xNewMessageDialog, lib, "adw_message_dialog_new") | |
| 896 | + | ||
| 897 | + | core.PuregoSafeRegister(&xMessageDialogAddResponse, lib, "adw_message_dialog_add_response") | |
| 898 | + | core.PuregoSafeRegister(&xMessageDialogAddResponses, lib, "adw_message_dialog_add_responses") | |
| 899 | + | core.PuregoSafeRegister(&xMessageDialogChoose, lib, "adw_message_dialog_choose") | |
| 900 | + | core.PuregoSafeRegister(&xMessageDialogChooseFinish, lib, "adw_message_dialog_choose_finish") | |
| 901 | + | core.PuregoSafeRegister(&xMessageDialogFormatBody, lib, "adw_message_dialog_format_body") | |
| 902 | + | core.PuregoSafeRegister(&xMessageDialogFormatBodyMarkup, lib, "adw_message_dialog_format_body_markup") | |
| 903 | + | core.PuregoSafeRegister(&xMessageDialogFormatHeading, lib, "adw_message_dialog_format_heading") | |
| 904 | + | core.PuregoSafeRegister(&xMessageDialogFormatHeadingMarkup, lib, "adw_message_dialog_format_heading_markup") | |
| 905 | + | core.PuregoSafeRegister(&xMessageDialogGetBody, lib, "adw_message_dialog_get_body") | |
| 906 | + | core.PuregoSafeRegister(&xMessageDialogGetBodyUseMarkup, lib, "adw_message_dialog_get_body_use_markup") | |
| 907 | + | core.PuregoSafeRegister(&xMessageDialogGetCloseResponse, lib, "adw_message_dialog_get_close_response") | |
| 908 | + | core.PuregoSafeRegister(&xMessageDialogGetDefaultResponse, lib, "adw_message_dialog_get_default_response") | |
| 909 | + | core.PuregoSafeRegister(&xMessageDialogGetExtraChild, lib, "adw_message_dialog_get_extra_child") | |
| 910 | + | core.PuregoSafeRegister(&xMessageDialogGetHeading, lib, "adw_message_dialog_get_heading") | |
| 911 | + | core.PuregoSafeRegister(&xMessageDialogGetHeadingUseMarkup, lib, "adw_message_dialog_get_heading_use_markup") | |
| 912 | + | core.PuregoSafeRegister(&xMessageDialogGetResponseAppearance, lib, "adw_message_dialog_get_response_appearance") | |
| 913 | + | core.PuregoSafeRegister(&xMessageDialogGetResponseEnabled, lib, "adw_message_dialog_get_response_enabled") | |
| 914 | + | core.PuregoSafeRegister(&xMessageDialogGetResponseLabel, lib, "adw_message_dialog_get_response_label") | |
| 915 | + | core.PuregoSafeRegister(&xMessageDialogHasResponse, lib, "adw_message_dialog_has_response") | |
| 916 | + | core.PuregoSafeRegister(&xMessageDialogResponse, lib, "adw_message_dialog_response") | |
| 917 | + | core.PuregoSafeRegister(&xMessageDialogSetBody, lib, "adw_message_dialog_set_body") | |
| 918 | + | core.PuregoSafeRegister(&xMessageDialogSetBodyUseMarkup, lib, "adw_message_dialog_set_body_use_markup") | |
| 919 | + | core.PuregoSafeRegister(&xMessageDialogSetCloseResponse, lib, "adw_message_dialog_set_close_response") | |
| 920 | + | core.PuregoSafeRegister(&xMessageDialogSetDefaultResponse, lib, "adw_message_dialog_set_default_response") | |
| 921 | + | core.PuregoSafeRegister(&xMessageDialogSetExtraChild, lib, "adw_message_dialog_set_extra_child") | |
| 922 | + | core.PuregoSafeRegister(&xMessageDialogSetHeading, lib, "adw_message_dialog_set_heading") | |
| 923 | + | core.PuregoSafeRegister(&xMessageDialogSetHeadingUseMarkup, lib, "adw_message_dialog_set_heading_use_markup") | |
| 924 | + | core.PuregoSafeRegister(&xMessageDialogSetResponseAppearance, lib, "adw_message_dialog_set_response_appearance") | |
| 925 | + | core.PuregoSafeRegister(&xMessageDialogSetResponseEnabled, lib, "adw_message_dialog_set_response_enabled") | |
| 926 | + | core.PuregoSafeRegister(&xMessageDialogSetResponseLabel, lib, "adw_message_dialog_set_response_label") | |
| 927 | + | ||
| 928 | + | } | |
A v4/adw/adw-navigation-direction.go +13 -0
| @@ -0,0 +1,13 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | // Describes the direction of a swipe navigation gesture. | |
| 5 | + | type NavigationDirection int | |
| 6 | + | ||
| 7 | + | const ( | |
| 8 | + | ||
| 9 | + | // Corresponds to start or top, depending on orientation and text direction | |
| 10 | + | NavigationDirectionBackValue NavigationDirection = 0 | |
| 11 | + | // Corresponds to end or bottom, depending on orientation and text direction | |
| 12 | + | NavigationDirectionForwardValue NavigationDirection = 1 | |
| 13 | + | ) | |
A v4/adw/adw-password-entry-row.go +548 -0
| @@ -0,0 +1,548 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type PasswordEntryRowClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | // A [class@EntryRow] tailored for entering secrets. | |
| 17 | + | // | |
| 18 | + | // <picture> | |
| 19 | + | // | |
| 20 | + | // <source srcset="password-entry-row-dark.png" media="(prefers-color-scheme: dark)"> | |
| 21 | + | // <img src="password-entry-row.png" alt="password-entry-row"> | |
| 22 | + | // | |
| 23 | + | // </picture> | |
| 24 | + | // | |
| 25 | + | // It does not show its contents in clear text, does not allow to copy it to the | |
| 26 | + | // clipboard, and shows a warning when Caps Lock is engaged. If the underlying | |
| 27 | + | // platform allows it, `AdwPasswordEntryRow` will also place the text in a | |
| 28 | + | // non-pageable memory area, to avoid it being written out to disk by the | |
| 29 | + | // operating system. | |
| 30 | + | // | |
| 31 | + | // It offer a way to reveal the contents in clear text. | |
| 32 | + | // | |
| 33 | + | // ## CSS Nodes | |
| 34 | + | // | |
| 35 | + | // `AdwPasswordEntryRow` has a single CSS node with name `row` that carries | |
| 36 | + | // `.entry` and `.password` style classes. | |
| 37 | + | type PasswordEntryRow struct { | |
| 38 | + | EntryRow | |
| 39 | + | } | |
| 40 | + | ||
| 41 | + | func PasswordEntryRowNewFromInternalPtr(ptr uintptr) *PasswordEntryRow { | |
| 42 | + | cls := &PasswordEntryRow{} | |
| 43 | + | cls.Ptr = ptr | |
| 44 | + | return cls | |
| 45 | + | } | |
| 46 | + | ||
| 47 | + | var xNewPasswordEntryRow func() uintptr | |
| 48 | + | ||
| 49 | + | // Creates a new `AdwPasswordEntryRow`. | |
| 50 | + | func NewPasswordEntryRow() *gtk.Widget { | |
| 51 | + | NewPasswordEntryRowPtr := xNewPasswordEntryRow() | |
| 52 | + | if NewPasswordEntryRowPtr == 0 { | |
| 53 | + | return nil | |
| 54 | + | } | |
| 55 | + | ||
| 56 | + | gobject.IncreaseRef(NewPasswordEntryRowPtr) | |
| 57 | + | ||
| 58 | + | NewPasswordEntryRowCls := >k.Widget{} | |
| 59 | + | NewPasswordEntryRowCls.Ptr = NewPasswordEntryRowPtr | |
| 60 | + | return NewPasswordEntryRowCls | |
| 61 | + | } | |
| 62 | + | ||
| 63 | + | func (c *PasswordEntryRow) GoPointer() uintptr { | |
| 64 | + | return c.Ptr | |
| 65 | + | } | |
| 66 | + | ||
| 67 | + | func (c *PasswordEntryRow) SetGoPointer(ptr uintptr) { | |
| 68 | + | c.Ptr = ptr | |
| 69 | + | } | |
| 70 | + | ||
| 71 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 72 | + | func (x *PasswordEntryRow) GetAccessibleRole() gtk.AccessibleRole { | |
| 73 | + | ||
| 74 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 75 | + | ||
| 76 | + | } | |
| 77 | + | ||
| 78 | + | // Resets the accessible @property to its default value. | |
| 79 | + | func (x *PasswordEntryRow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 80 | + | ||
| 81 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 82 | + | ||
| 83 | + | } | |
| 84 | + | ||
| 85 | + | // Resets the accessible @relation to its default value. | |
| 86 | + | func (x *PasswordEntryRow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 87 | + | ||
| 88 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 89 | + | ||
| 90 | + | } | |
| 91 | + | ||
| 92 | + | // Resets the accessible @state to its default value. | |
| 93 | + | func (x *PasswordEntryRow) ResetState(StateVar gtk.AccessibleState) { | |
| 94 | + | ||
| 95 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 96 | + | ||
| 97 | + | } | |
| 98 | + | ||
| 99 | + | // Updates a list of accessible properties. | |
| 100 | + | // | |
| 101 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 102 | + | // value types of accessible properties. | |
| 103 | + | // | |
| 104 | + | // This function should be called by `GtkWidget` types whenever | |
| 105 | + | // an accessible property change must be communicated to assistive | |
| 106 | + | // technologies. | |
| 107 | + | // | |
| 108 | + | // Example: | |
| 109 | + | // ```c | |
| 110 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 111 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 112 | + | // | |
| 113 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 114 | + | // -1); | |
| 115 | + | // | |
| 116 | + | // ``` | |
| 117 | + | func (x *PasswordEntryRow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 118 | + | ||
| 119 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 120 | + | ||
| 121 | + | } | |
| 122 | + | ||
| 123 | + | // Updates an array of accessible properties. | |
| 124 | + | // | |
| 125 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 126 | + | // property change must be communicated to assistive technologies. | |
| 127 | + | // | |
| 128 | + | // This function is meant to be used by language bindings. | |
| 129 | + | func (x *PasswordEntryRow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 130 | + | ||
| 131 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 132 | + | ||
| 133 | + | } | |
| 134 | + | ||
| 135 | + | // Updates a list of accessible relations. | |
| 136 | + | // | |
| 137 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 138 | + | // relation change must be communicated to assistive technologies. | |
| 139 | + | // | |
| 140 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 141 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 142 | + | // | |
| 143 | + | // ```c | |
| 144 | + | // gtk_accessible_update_relation (accessible, | |
| 145 | + | // | |
| 146 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 147 | + | // ref1, NULL, | |
| 148 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 149 | + | // ref1, ref2, ref3, NULL, | |
| 150 | + | // -1); | |
| 151 | + | // | |
| 152 | + | // ``` | |
| 153 | + | func (x *PasswordEntryRow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 154 | + | ||
| 155 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 156 | + | ||
| 157 | + | } | |
| 158 | + | ||
| 159 | + | // Updates an array of accessible relations. | |
| 160 | + | // | |
| 161 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 162 | + | // relation change must be communicated to assistive technologies. | |
| 163 | + | // | |
| 164 | + | // This function is meant to be used by language bindings. | |
| 165 | + | func (x *PasswordEntryRow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 166 | + | ||
| 167 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 168 | + | ||
| 169 | + | } | |
| 170 | + | ||
| 171 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 172 | + | // documentation for the value types of accessible states. | |
| 173 | + | // | |
| 174 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 175 | + | // state change must be communicated to assistive technologies. | |
| 176 | + | // | |
| 177 | + | // Example: | |
| 178 | + | // ```c | |
| 179 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 180 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 181 | + | // | |
| 182 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 183 | + | // -1); | |
| 184 | + | // | |
| 185 | + | // ``` | |
| 186 | + | func (x *PasswordEntryRow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 187 | + | ||
| 188 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 189 | + | ||
| 190 | + | } | |
| 191 | + | ||
| 192 | + | // Updates an array of accessible states. | |
| 193 | + | // | |
| 194 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 195 | + | // state change must be communicated to assistive technologies. | |
| 196 | + | // | |
| 197 | + | // This function is meant to be used by language bindings. | |
| 198 | + | func (x *PasswordEntryRow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 199 | + | ||
| 200 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 201 | + | ||
| 202 | + | } | |
| 203 | + | ||
| 204 | + | // Gets the action name for @actionable. | |
| 205 | + | func (x *PasswordEntryRow) GetActionName() string { | |
| 206 | + | ||
| 207 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 208 | + | ||
| 209 | + | } | |
| 210 | + | ||
| 211 | + | // Gets the current target value of @actionable. | |
| 212 | + | func (x *PasswordEntryRow) GetActionTargetValue() *glib.Variant { | |
| 213 | + | ||
| 214 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 215 | + | ||
| 216 | + | } | |
| 217 | + | ||
| 218 | + | // Specifies the name of the action with which this widget should be | |
| 219 | + | // associated. | |
| 220 | + | // | |
| 221 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 222 | + | // any previous action. | |
| 223 | + | // | |
| 224 | + | // Usually this function is used when the widget is located (or will be | |
| 225 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 226 | + | // | |
| 227 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 228 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 229 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 230 | + | // associated with the window. | |
| 231 | + | func (x *PasswordEntryRow) SetActionName(ActionNameVar string) { | |
| 232 | + | ||
| 233 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 234 | + | ||
| 235 | + | } | |
| 236 | + | ||
| 237 | + | // Sets the target of an actionable widget. | |
| 238 | + | // | |
| 239 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 240 | + | // @format_string and uses the result to call | |
| 241 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 242 | + | // | |
| 243 | + | // If you are setting a string-valued target and want to set | |
| 244 | + | // the action name at the same time, you can use | |
| 245 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 246 | + | func (x *PasswordEntryRow) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 247 | + | ||
| 248 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 249 | + | ||
| 250 | + | } | |
| 251 | + | ||
| 252 | + | // Sets the target value of an actionable widget. | |
| 253 | + | // | |
| 254 | + | // If @target_value is %NULL then the target value is unset. | |
| 255 | + | // | |
| 256 | + | // The target value has two purposes. First, it is used as the parameter | |
| 257 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 258 | + | // Second, it is used to determine if the widget should be rendered as | |
| 259 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 260 | + | // | |
| 261 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 262 | + | // with string state in a typical “radio button” situation. Each button | |
| 263 | + | // will be associated with the same action, but with a different target | |
| 264 | + | // value for that action. Clicking on a particular button will activate | |
| 265 | + | // the action with the target of that button, which will typically cause | |
| 266 | + | // the action’s state to change to that value. Since the action’s state | |
| 267 | + | // is now equal to the target value of the button, the button will now | |
| 268 | + | // be rendered as active (and the other buttons, with different targets, | |
| 269 | + | // rendered inactive). | |
| 270 | + | func (x *PasswordEntryRow) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 271 | + | ||
| 272 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 273 | + | ||
| 274 | + | } | |
| 275 | + | ||
| 276 | + | // Sets the action-name and associated string target value of an | |
| 277 | + | // actionable widget. | |
| 278 | + | // | |
| 279 | + | // @detailed_action_name is a string in the format accepted by | |
| 280 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 281 | + | func (x *PasswordEntryRow) SetDetailedActionName(DetailedActionNameVar string) { | |
| 282 | + | ||
| 283 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 284 | + | ||
| 285 | + | } | |
| 286 | + | ||
| 287 | + | // Gets the ID of the @buildable object. | |
| 288 | + | // | |
| 289 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 290 | + | // of the <object> tag used to construct the @buildable. | |
| 291 | + | func (x *PasswordEntryRow) GetBuildableId() string { | |
| 292 | + | ||
| 293 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 294 | + | ||
| 295 | + | } | |
| 296 | + | ||
| 297 | + | // Deletes the currently selected text of the editable. | |
| 298 | + | // | |
| 299 | + | // This call doesn’t do anything if there is no selected text. | |
| 300 | + | func (x *PasswordEntryRow) DeleteSelection() { | |
| 301 | + | ||
| 302 | + | gtk.XGtkEditableDeleteSelection(x.GoPointer()) | |
| 303 | + | ||
| 304 | + | } | |
| 305 | + | ||
| 306 | + | // Deletes a sequence of characters. | |
| 307 | + | // | |
| 308 | + | // The characters that are deleted are those characters at positions | |
| 309 | + | // from @start_pos up to, but not including @end_pos. If @end_pos is | |
| 310 | + | // negative, then the characters deleted are those from @start_pos to | |
| 311 | + | // the end of the text. | |
| 312 | + | // | |
| 313 | + | // Note that the positions are specified in characters, not bytes. | |
| 314 | + | func (x *PasswordEntryRow) DeleteText(StartPosVar int32, EndPosVar int32) { | |
| 315 | + | ||
| 316 | + | gtk.XGtkEditableDeleteText(x.GoPointer(), StartPosVar, EndPosVar) | |
| 317 | + | ||
| 318 | + | } | |
| 319 | + | ||
| 320 | + | // Undoes the setup done by [method@Gtk.Editable.init_delegate]. | |
| 321 | + | // | |
| 322 | + | // This is a helper function that should be called from dispose, | |
| 323 | + | // before removing the delegate object. | |
| 324 | + | func (x *PasswordEntryRow) FinishDelegate() { | |
| 325 | + | ||
| 326 | + | gtk.XGtkEditableFinishDelegate(x.GoPointer()) | |
| 327 | + | ||
| 328 | + | } | |
| 329 | + | ||
| 330 | + | // Gets the alignment of the editable. | |
| 331 | + | func (x *PasswordEntryRow) GetAlignment() float32 { | |
| 332 | + | ||
| 333 | + | return gtk.XGtkEditableGetAlignment(x.GoPointer()) | |
| 334 | + | ||
| 335 | + | } | |
| 336 | + | ||
| 337 | + | // Retrieves a sequence of characters. | |
| 338 | + | // | |
| 339 | + | // The characters that are retrieved are those characters at positions | |
| 340 | + | // from @start_pos up to, but not including @end_pos. If @end_pos is negative, | |
| 341 | + | // then the characters retrieved are those characters from @start_pos to | |
| 342 | + | // the end of the text. | |
| 343 | + | // | |
| 344 | + | // Note that positions are specified in characters, not bytes. | |
| 345 | + | func (x *PasswordEntryRow) GetChars(StartPosVar int32, EndPosVar int32) string { | |
| 346 | + | ||
| 347 | + | return gtk.XGtkEditableGetChars(x.GoPointer(), StartPosVar, EndPosVar) | |
| 348 | + | ||
| 349 | + | } | |
| 350 | + | ||
| 351 | + | // Gets the `GtkEditable` that @editable is delegating its | |
| 352 | + | // implementation to. | |
| 353 | + | // | |
| 354 | + | // Typically, the delegate is a [class@Gtk.Text] widget. | |
| 355 | + | func (x *PasswordEntryRow) GetDelegate() *gtk.EditableBase { | |
| 356 | + | ||
| 357 | + | GetDelegatePtr := gtk.XGtkEditableGetDelegate(x.GoPointer()) | |
| 358 | + | if GetDelegatePtr == 0 { | |
| 359 | + | return nil | |
| 360 | + | } | |
| 361 | + | ||
| 362 | + | gobject.IncreaseRef(GetDelegatePtr) | |
| 363 | + | ||
| 364 | + | GetDelegateCls := >k.EditableBase{} | |
| 365 | + | GetDelegateCls.Ptr = GetDelegatePtr | |
| 366 | + | return GetDelegateCls | |
| 367 | + | ||
| 368 | + | } | |
| 369 | + | ||
| 370 | + | // Retrieves whether @editable is editable. | |
| 371 | + | func (x *PasswordEntryRow) GetEditable() bool { | |
| 372 | + | ||
| 373 | + | return gtk.XGtkEditableGetEditable(x.GoPointer()) | |
| 374 | + | ||
| 375 | + | } | |
| 376 | + | ||
| 377 | + | // Gets if undo/redo actions are enabled for @editable | |
| 378 | + | func (x *PasswordEntryRow) GetEnableUndo() bool { | |
| 379 | + | ||
| 380 | + | return gtk.XGtkEditableGetEnableUndo(x.GoPointer()) | |
| 381 | + | ||
| 382 | + | } | |
| 383 | + | ||
| 384 | + | // Retrieves the desired maximum width of @editable, in characters. | |
| 385 | + | func (x *PasswordEntryRow) GetMaxWidthChars() int32 { | |
| 386 | + | ||
| 387 | + | return gtk.XGtkEditableGetMaxWidthChars(x.GoPointer()) | |
| 388 | + | ||
| 389 | + | } | |
| 390 | + | ||
| 391 | + | // Retrieves the current position of the cursor relative | |
| 392 | + | // to the start of the content of the editable. | |
| 393 | + | // | |
| 394 | + | // Note that this position is in characters, not in bytes. | |
| 395 | + | func (x *PasswordEntryRow) GetPosition() int32 { | |
| 396 | + | ||
| 397 | + | return gtk.XGtkEditableGetPosition(x.GoPointer()) | |
| 398 | + | ||
| 399 | + | } | |
| 400 | + | ||
| 401 | + | // Retrieves the selection bound of the editable. | |
| 402 | + | // | |
| 403 | + | // @start_pos will be filled with the start of the selection and | |
| 404 | + | // @end_pos with end. If no text was selected both will be identical | |
| 405 | + | // and %FALSE will be returned. | |
| 406 | + | // | |
| 407 | + | // Note that positions are specified in characters, not bytes. | |
| 408 | + | func (x *PasswordEntryRow) GetSelectionBounds(StartPosVar int32, EndPosVar int32) bool { | |
| 409 | + | ||
| 410 | + | return gtk.XGtkEditableGetSelectionBounds(x.GoPointer(), StartPosVar, EndPosVar) | |
| 411 | + | ||
| 412 | + | } | |
| 413 | + | ||
| 414 | + | // Retrieves the contents of @editable. | |
| 415 | + | // | |
| 416 | + | // The returned string is owned by GTK and must not be modified or freed. | |
| 417 | + | func (x *PasswordEntryRow) GetText() string { | |
| 418 | + | ||
| 419 | + | return gtk.XGtkEditableGetText(x.GoPointer()) | |
| 420 | + | ||
| 421 | + | } | |
| 422 | + | ||
| 423 | + | // Gets the number of characters of space reserved | |
| 424 | + | // for the contents of the editable. | |
| 425 | + | func (x *PasswordEntryRow) GetWidthChars() int32 { | |
| 426 | + | ||
| 427 | + | return gtk.XGtkEditableGetWidthChars(x.GoPointer()) | |
| 428 | + | ||
| 429 | + | } | |
| 430 | + | ||
| 431 | + | // Sets up a delegate for `GtkEditable`. | |
| 432 | + | // | |
| 433 | + | // This is assuming that the get_delegate vfunc in the `GtkEditable` | |
| 434 | + | // interface has been set up for the @editable's type. | |
| 435 | + | // | |
| 436 | + | // This is a helper function that should be called in instance init, | |
| 437 | + | // after creating the delegate object. | |
| 438 | + | func (x *PasswordEntryRow) InitDelegate() { | |
| 439 | + | ||
| 440 | + | gtk.XGtkEditableInitDelegate(x.GoPointer()) | |
| 441 | + | ||
| 442 | + | } | |
| 443 | + | ||
| 444 | + | // Inserts @length bytes of @text into the contents of the | |
| 445 | + | // widget, at position @position. | |
| 446 | + | // | |
| 447 | + | // Note that the position is in characters, not in bytes. | |
| 448 | + | // The function updates @position to point after the newly | |
| 449 | + | // inserted text. | |
| 450 | + | func (x *PasswordEntryRow) InsertText(TextVar string, LengthVar int32, PositionVar int32) { | |
| 451 | + | ||
| 452 | + | gtk.XGtkEditableInsertText(x.GoPointer(), TextVar, LengthVar, PositionVar) | |
| 453 | + | ||
| 454 | + | } | |
| 455 | + | ||
| 456 | + | // Selects a region of text. | |
| 457 | + | // | |
| 458 | + | // The characters that are selected are those characters at positions | |
| 459 | + | // from @start_pos up to, but not including @end_pos. If @end_pos is | |
| 460 | + | // negative, then the characters selected are those characters from | |
| 461 | + | // @start_pos to the end of the text. | |
| 462 | + | // | |
| 463 | + | // Note that positions are specified in characters, not bytes. | |
| 464 | + | func (x *PasswordEntryRow) SelectRegion(StartPosVar int32, EndPosVar int32) { | |
| 465 | + | ||
| 466 | + | gtk.XGtkEditableSelectRegion(x.GoPointer(), StartPosVar, EndPosVar) | |
| 467 | + | ||
| 468 | + | } | |
| 469 | + | ||
| 470 | + | // Sets the alignment for the contents of the editable. | |
| 471 | + | // | |
| 472 | + | // This controls the horizontal positioning of the contents when | |
| 473 | + | // the displayed text is shorter than the width of the editable. | |
| 474 | + | func (x *PasswordEntryRow) SetAlignment(XalignVar float32) { | |
| 475 | + | ||
| 476 | + | gtk.XGtkEditableSetAlignment(x.GoPointer(), XalignVar) | |
| 477 | + | ||
| 478 | + | } | |
| 479 | + | ||
| 480 | + | // Determines if the user can edit the text in the editable widget. | |
| 481 | + | func (x *PasswordEntryRow) SetEditable(IsEditableVar bool) { | |
| 482 | + | ||
| 483 | + | gtk.XGtkEditableSetEditable(x.GoPointer(), IsEditableVar) | |
| 484 | + | ||
| 485 | + | } | |
| 486 | + | ||
| 487 | + | // If enabled, changes to @editable will be saved for undo/redo | |
| 488 | + | // actions. | |
| 489 | + | // | |
| 490 | + | // This results in an additional copy of text changes and are not | |
| 491 | + | // stored in secure memory. As such, undo is forcefully disabled | |
| 492 | + | // when [property@Gtk.Text:visibility] is set to %FALSE. | |
| 493 | + | func (x *PasswordEntryRow) SetEnableUndo(EnableUndoVar bool) { | |
| 494 | + | ||
| 495 | + | gtk.XGtkEditableSetEnableUndo(x.GoPointer(), EnableUndoVar) | |
| 496 | + | ||
| 497 | + | } | |
| 498 | + | ||
| 499 | + | // Sets the desired maximum width in characters of @editable. | |
| 500 | + | func (x *PasswordEntryRow) SetMaxWidthChars(NCharsVar int32) { | |
| 501 | + | ||
| 502 | + | gtk.XGtkEditableSetMaxWidthChars(x.GoPointer(), NCharsVar) | |
| 503 | + | ||
| 504 | + | } | |
| 505 | + | ||
| 506 | + | // Sets the cursor position in the editable to the given value. | |
| 507 | + | // | |
| 508 | + | // The cursor is displayed before the character with the given (base 0) | |
| 509 | + | // index in the contents of the editable. The value must be less than | |
| 510 | + | // or equal to the number of characters in the editable. A value of -1 | |
| 511 | + | // indicates that the position should be set after the last character | |
| 512 | + | // of the editable. Note that @position is in characters, not in bytes. | |
| 513 | + | func (x *PasswordEntryRow) SetPosition(PositionVar int32) { | |
| 514 | + | ||
| 515 | + | gtk.XGtkEditableSetPosition(x.GoPointer(), PositionVar) | |
| 516 | + | ||
| 517 | + | } | |
| 518 | + | ||
| 519 | + | // Sets the text in the editable to the given value. | |
| 520 | + | // | |
| 521 | + | // This is replacing the current contents. | |
| 522 | + | func (x *PasswordEntryRow) SetText(TextVar string) { | |
| 523 | + | ||
| 524 | + | gtk.XGtkEditableSetText(x.GoPointer(), TextVar) | |
| 525 | + | ||
| 526 | + | } | |
| 527 | + | ||
| 528 | + | // Changes the size request of the editable to be about the | |
| 529 | + | // right size for @n_chars characters. | |
| 530 | + | // | |
| 531 | + | // Note that it changes the size request, the size can still | |
| 532 | + | // be affected by how you pack the widget into containers. | |
| 533 | + | // If @n_chars is -1, the size reverts to the default size. | |
| 534 | + | func (x *PasswordEntryRow) SetWidthChars(NCharsVar int32) { | |
| 535 | + | ||
| 536 | + | gtk.XGtkEditableSetWidthChars(x.GoPointer(), NCharsVar) | |
| 537 | + | ||
| 538 | + | } | |
| 539 | + | ||
| 540 | + | func init() { | |
| 541 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 542 | + | if err != nil { | |
| 543 | + | panic(err) | |
| 544 | + | } | |
| 545 | + | ||
| 546 | + | core.PuregoSafeRegister(&xNewPasswordEntryRow, lib, "adw_password_entry_row_new") | |
| 547 | + | ||
| 548 | + | } | |
A v4/adw/adw-preferences-group.go +329 -0
| @@ -0,0 +1,329 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type PreferencesGroupClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | ||
| 14 | + | Padding uintptr | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | // A group of preference rows. | |
| 18 | + | // | |
| 19 | + | // <picture> | |
| 20 | + | // | |
| 21 | + | // <source srcset="preferences-group-dark.png" media="(prefers-color-scheme: dark)"> | |
| 22 | + | // <img src="preferences-group.png" alt="preferences-group"> | |
| 23 | + | // | |
| 24 | + | // </picture> | |
| 25 | + | // | |
| 26 | + | // An `AdwPreferencesGroup` represents a group or tightly related preferences, | |
| 27 | + | // which in turn are represented by [class@PreferencesRow]. | |
| 28 | + | // | |
| 29 | + | // To summarize the role of the preferences it gathers, a group can have both a | |
| 30 | + | // title and a description. The title will be used by [class@PreferencesWindow] | |
| 31 | + | // to let the user look for a preference. | |
| 32 | + | // | |
| 33 | + | // ## AdwPreferencesGroup as GtkBuildable | |
| 34 | + | // | |
| 35 | + | // The `AdwPreferencesGroup` implementation of the [iface@Gtk.Buildable] interface | |
| 36 | + | // supports adding [class@PreferencesRow]s to the list by omitting "type". If "type" | |
| 37 | + | // is omitted and the widget isn't a [class@PreferencesRow] the child is added to | |
| 38 | + | // a box below the list. | |
| 39 | + | // | |
| 40 | + | // When the "type" attribute of a child is `header-suffix`, the child | |
| 41 | + | // is set as the suffix on the end of the title and description. | |
| 42 | + | // | |
| 43 | + | // ## CSS nodes | |
| 44 | + | // | |
| 45 | + | // `AdwPreferencesGroup` has a single CSS node with name `preferencesgroup`. | |
| 46 | + | // | |
| 47 | + | // ## Accessibility | |
| 48 | + | // | |
| 49 | + | // `AdwPreferencesGroup` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. | |
| 50 | + | type PreferencesGroup struct { | |
| 51 | + | gtk.Widget | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | func PreferencesGroupNewFromInternalPtr(ptr uintptr) *PreferencesGroup { | |
| 55 | + | cls := &PreferencesGroup{} | |
| 56 | + | cls.Ptr = ptr | |
| 57 | + | return cls | |
| 58 | + | } | |
| 59 | + | ||
| 60 | + | var xNewPreferencesGroup func() uintptr | |
| 61 | + | ||
| 62 | + | // Creates a new `AdwPreferencesGroup`. | |
| 63 | + | func NewPreferencesGroup() *gtk.Widget { | |
| 64 | + | NewPreferencesGroupPtr := xNewPreferencesGroup() | |
| 65 | + | if NewPreferencesGroupPtr == 0 { | |
| 66 | + | return nil | |
| 67 | + | } | |
| 68 | + | ||
| 69 | + | gobject.IncreaseRef(NewPreferencesGroupPtr) | |
| 70 | + | ||
| 71 | + | NewPreferencesGroupCls := >k.Widget{} | |
| 72 | + | NewPreferencesGroupCls.Ptr = NewPreferencesGroupPtr | |
| 73 | + | return NewPreferencesGroupCls | |
| 74 | + | } | |
| 75 | + | ||
| 76 | + | var xPreferencesGroupAdd func(uintptr, uintptr) | |
| 77 | + | ||
| 78 | + | // Adds a child to @self. | |
| 79 | + | func (x *PreferencesGroup) Add(ChildVar *gtk.Widget) { | |
| 80 | + | ||
| 81 | + | xPreferencesGroupAdd(x.GoPointer(), ChildVar.GoPointer()) | |
| 82 | + | ||
| 83 | + | } | |
| 84 | + | ||
| 85 | + | var xPreferencesGroupGetDescription func(uintptr) string | |
| 86 | + | ||
| 87 | + | // Gets the description of @self. | |
| 88 | + | func (x *PreferencesGroup) GetDescription() string { | |
| 89 | + | ||
| 90 | + | return xPreferencesGroupGetDescription(x.GoPointer()) | |
| 91 | + | ||
| 92 | + | } | |
| 93 | + | ||
| 94 | + | var xPreferencesGroupGetHeaderSuffix func(uintptr) uintptr | |
| 95 | + | ||
| 96 | + | // Gets the suffix for @self's header. | |
| 97 | + | func (x *PreferencesGroup) GetHeaderSuffix() *gtk.Widget { | |
| 98 | + | ||
| 99 | + | GetHeaderSuffixPtr := xPreferencesGroupGetHeaderSuffix(x.GoPointer()) | |
| 100 | + | if GetHeaderSuffixPtr == 0 { | |
| 101 | + | return nil | |
| 102 | + | } | |
| 103 | + | ||
| 104 | + | gobject.IncreaseRef(GetHeaderSuffixPtr) | |
| 105 | + | ||
| 106 | + | GetHeaderSuffixCls := >k.Widget{} | |
| 107 | + | GetHeaderSuffixCls.Ptr = GetHeaderSuffixPtr | |
| 108 | + | return GetHeaderSuffixCls | |
| 109 | + | ||
| 110 | + | } | |
| 111 | + | ||
| 112 | + | var xPreferencesGroupGetTitle func(uintptr) string | |
| 113 | + | ||
| 114 | + | // Gets the title of @self. | |
| 115 | + | func (x *PreferencesGroup) GetTitle() string { | |
| 116 | + | ||
| 117 | + | return xPreferencesGroupGetTitle(x.GoPointer()) | |
| 118 | + | ||
| 119 | + | } | |
| 120 | + | ||
| 121 | + | var xPreferencesGroupRemove func(uintptr, uintptr) | |
| 122 | + | ||
| 123 | + | // Removes a child from @self. | |
| 124 | + | func (x *PreferencesGroup) Remove(ChildVar *gtk.Widget) { | |
| 125 | + | ||
| 126 | + | xPreferencesGroupRemove(x.GoPointer(), ChildVar.GoPointer()) | |
| 127 | + | ||
| 128 | + | } | |
| 129 | + | ||
| 130 | + | var xPreferencesGroupSetDescription func(uintptr, string) | |
| 131 | + | ||
| 132 | + | // Sets the description for @self. | |
| 133 | + | func (x *PreferencesGroup) SetDescription(DescriptionVar string) { | |
| 134 | + | ||
| 135 | + | xPreferencesGroupSetDescription(x.GoPointer(), DescriptionVar) | |
| 136 | + | ||
| 137 | + | } | |
| 138 | + | ||
| 139 | + | var xPreferencesGroupSetHeaderSuffix func(uintptr, uintptr) | |
| 140 | + | ||
| 141 | + | // Sets the suffix for @self's header. | |
| 142 | + | // | |
| 143 | + | // Displayed above the list, next to the title and description. | |
| 144 | + | // | |
| 145 | + | // Suffixes are commonly used to show a button or a spinner for the whole group. | |
| 146 | + | func (x *PreferencesGroup) SetHeaderSuffix(SuffixVar *gtk.Widget) { | |
| 147 | + | ||
| 148 | + | xPreferencesGroupSetHeaderSuffix(x.GoPointer(), SuffixVar.GoPointer()) | |
| 149 | + | ||
| 150 | + | } | |
| 151 | + | ||
| 152 | + | var xPreferencesGroupSetTitle func(uintptr, string) | |
| 153 | + | ||
| 154 | + | // Sets the title for @self. | |
| 155 | + | func (x *PreferencesGroup) SetTitle(TitleVar string) { | |
| 156 | + | ||
| 157 | + | xPreferencesGroupSetTitle(x.GoPointer(), TitleVar) | |
| 158 | + | ||
| 159 | + | } | |
| 160 | + | ||
| 161 | + | func (c *PreferencesGroup) GoPointer() uintptr { | |
| 162 | + | return c.Ptr | |
| 163 | + | } | |
| 164 | + | ||
| 165 | + | func (c *PreferencesGroup) SetGoPointer(ptr uintptr) { | |
| 166 | + | c.Ptr = ptr | |
| 167 | + | } | |
| 168 | + | ||
| 169 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 170 | + | func (x *PreferencesGroup) GetAccessibleRole() gtk.AccessibleRole { | |
| 171 | + | ||
| 172 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 173 | + | ||
| 174 | + | } | |
| 175 | + | ||
| 176 | + | // Resets the accessible @property to its default value. | |
| 177 | + | func (x *PreferencesGroup) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 178 | + | ||
| 179 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 180 | + | ||
| 181 | + | } | |
| 182 | + | ||
| 183 | + | // Resets the accessible @relation to its default value. | |
| 184 | + | func (x *PreferencesGroup) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 185 | + | ||
| 186 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 187 | + | ||
| 188 | + | } | |
| 189 | + | ||
| 190 | + | // Resets the accessible @state to its default value. | |
| 191 | + | func (x *PreferencesGroup) ResetState(StateVar gtk.AccessibleState) { | |
| 192 | + | ||
| 193 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 194 | + | ||
| 195 | + | } | |
| 196 | + | ||
| 197 | + | // Updates a list of accessible properties. | |
| 198 | + | // | |
| 199 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 200 | + | // value types of accessible properties. | |
| 201 | + | // | |
| 202 | + | // This function should be called by `GtkWidget` types whenever | |
| 203 | + | // an accessible property change must be communicated to assistive | |
| 204 | + | // technologies. | |
| 205 | + | // | |
| 206 | + | // Example: | |
| 207 | + | // ```c | |
| 208 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 209 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 210 | + | // | |
| 211 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 212 | + | // -1); | |
| 213 | + | // | |
| 214 | + | // ``` | |
| 215 | + | func (x *PreferencesGroup) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 216 | + | ||
| 217 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 218 | + | ||
| 219 | + | } | |
| 220 | + | ||
| 221 | + | // Updates an array of accessible properties. | |
| 222 | + | // | |
| 223 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 224 | + | // property change must be communicated to assistive technologies. | |
| 225 | + | // | |
| 226 | + | // This function is meant to be used by language bindings. | |
| 227 | + | func (x *PreferencesGroup) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 228 | + | ||
| 229 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 230 | + | ||
| 231 | + | } | |
| 232 | + | ||
| 233 | + | // Updates a list of accessible relations. | |
| 234 | + | // | |
| 235 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 236 | + | // relation change must be communicated to assistive technologies. | |
| 237 | + | // | |
| 238 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 239 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 240 | + | // | |
| 241 | + | // ```c | |
| 242 | + | // gtk_accessible_update_relation (accessible, | |
| 243 | + | // | |
| 244 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 245 | + | // ref1, NULL, | |
| 246 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 247 | + | // ref1, ref2, ref3, NULL, | |
| 248 | + | // -1); | |
| 249 | + | // | |
| 250 | + | // ``` | |
| 251 | + | func (x *PreferencesGroup) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 252 | + | ||
| 253 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 254 | + | ||
| 255 | + | } | |
| 256 | + | ||
| 257 | + | // Updates an array of accessible relations. | |
| 258 | + | // | |
| 259 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 260 | + | // relation change must be communicated to assistive technologies. | |
| 261 | + | // | |
| 262 | + | // This function is meant to be used by language bindings. | |
| 263 | + | func (x *PreferencesGroup) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 264 | + | ||
| 265 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 266 | + | ||
| 267 | + | } | |
| 268 | + | ||
| 269 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 270 | + | // documentation for the value types of accessible states. | |
| 271 | + | // | |
| 272 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 273 | + | // state change must be communicated to assistive technologies. | |
| 274 | + | // | |
| 275 | + | // Example: | |
| 276 | + | // ```c | |
| 277 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 278 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 279 | + | // | |
| 280 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 281 | + | // -1); | |
| 282 | + | // | |
| 283 | + | // ``` | |
| 284 | + | func (x *PreferencesGroup) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 285 | + | ||
| 286 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 287 | + | ||
| 288 | + | } | |
| 289 | + | ||
| 290 | + | // Updates an array of accessible states. | |
| 291 | + | // | |
| 292 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 293 | + | // state change must be communicated to assistive technologies. | |
| 294 | + | // | |
| 295 | + | // This function is meant to be used by language bindings. | |
| 296 | + | func (x *PreferencesGroup) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 297 | + | ||
| 298 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 299 | + | ||
| 300 | + | } | |
| 301 | + | ||
| 302 | + | // Gets the ID of the @buildable object. | |
| 303 | + | // | |
| 304 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 305 | + | // of the <object> tag used to construct the @buildable. | |
| 306 | + | func (x *PreferencesGroup) GetBuildableId() string { | |
| 307 | + | ||
| 308 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 309 | + | ||
| 310 | + | } | |
| 311 | + | ||
| 312 | + | func init() { | |
| 313 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 314 | + | if err != nil { | |
| 315 | + | panic(err) | |
| 316 | + | } | |
| 317 | + | ||
| 318 | + | core.PuregoSafeRegister(&xNewPreferencesGroup, lib, "adw_preferences_group_new") | |
| 319 | + | ||
| 320 | + | core.PuregoSafeRegister(&xPreferencesGroupAdd, lib, "adw_preferences_group_add") | |
| 321 | + | core.PuregoSafeRegister(&xPreferencesGroupGetDescription, lib, "adw_preferences_group_get_description") | |
| 322 | + | core.PuregoSafeRegister(&xPreferencesGroupGetHeaderSuffix, lib, "adw_preferences_group_get_header_suffix") | |
| 323 | + | core.PuregoSafeRegister(&xPreferencesGroupGetTitle, lib, "adw_preferences_group_get_title") | |
| 324 | + | core.PuregoSafeRegister(&xPreferencesGroupRemove, lib, "adw_preferences_group_remove") | |
| 325 | + | core.PuregoSafeRegister(&xPreferencesGroupSetDescription, lib, "adw_preferences_group_set_description") | |
| 326 | + | core.PuregoSafeRegister(&xPreferencesGroupSetHeaderSuffix, lib, "adw_preferences_group_set_header_suffix") | |
| 327 | + | core.PuregoSafeRegister(&xPreferencesGroupSetTitle, lib, "adw_preferences_group_set_title") | |
| 328 | + | ||
| 329 | + | } | |
A v4/adw/adw-preferences-page.go +332 -0
| @@ -0,0 +1,332 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type PreferencesPageClass struct { | |
| 12 | + | ParentClass uintptr | |
| 13 | + | ||
| 14 | + | Padding uintptr | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | // A page from [class@PreferencesWindow]. | |
| 18 | + | // | |
| 19 | + | // <picture> | |
| 20 | + | // | |
| 21 | + | // <source srcset="preferences-page-dark.png" media="(prefers-color-scheme: dark)"> | |
| 22 | + | // <img src="preferences-page.png" alt="preferences-page"> | |
| 23 | + | // | |
| 24 | + | // </picture> | |
| 25 | + | // | |
| 26 | + | // The `AdwPreferencesPage` widget gathers preferences groups into a single page | |
| 27 | + | // of a preferences window. | |
| 28 | + | // | |
| 29 | + | // ## CSS nodes | |
| 30 | + | // | |
| 31 | + | // `AdwPreferencesPage` has a single CSS node with name `preferencespage`. | |
| 32 | + | // | |
| 33 | + | // ## Accessibility | |
| 34 | + | // | |
| 35 | + | // `AdwPreferencesPage` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. | |
| 36 | + | type PreferencesPage struct { | |
| 37 | + | gtk.Widget | |
| 38 | + | } | |
| 39 | + | ||
| 40 | + | func PreferencesPageNewFromInternalPtr(ptr uintptr) *PreferencesPage { | |
| 41 | + | cls := &PreferencesPage{} | |
| 42 | + | cls.Ptr = ptr | |
| 43 | + | return cls | |
| 44 | + | } | |
| 45 | + | ||
| 46 | + | var xNewPreferencesPage func() uintptr | |
| 47 | + | ||
| 48 | + | // Creates a new `AdwPreferencesPage`. | |
| 49 | + | func NewPreferencesPage() *gtk.Widget { | |
| 50 | + | NewPreferencesPagePtr := xNewPreferencesPage() | |
| 51 | + | if NewPreferencesPagePtr == 0 { | |
| 52 | + | return nil | |
| 53 | + | } | |
| 54 | + | ||
| 55 | + | gobject.IncreaseRef(NewPreferencesPagePtr) | |
| 56 | + | ||
| 57 | + | NewPreferencesPageCls := >k.Widget{} | |
| 58 | + | NewPreferencesPageCls.Ptr = NewPreferencesPagePtr | |
| 59 | + | return NewPreferencesPageCls | |
| 60 | + | } | |
| 61 | + | ||
| 62 | + | var xPreferencesPageAdd func(uintptr, uintptr) | |
| 63 | + | ||
| 64 | + | // Adds a preferences group to @self. | |
| 65 | + | func (x *PreferencesPage) Add(GroupVar *PreferencesGroup) { | |
| 66 | + | ||
| 67 | + | xPreferencesPageAdd(x.GoPointer(), GroupVar.GoPointer()) | |
| 68 | + | ||
| 69 | + | } | |
| 70 | + | ||
| 71 | + | var xPreferencesPageGetIconName func(uintptr) string | |
| 72 | + | ||
| 73 | + | // Gets the icon name for @self. | |
| 74 | + | func (x *PreferencesPage) GetIconName() string { | |
| 75 | + | ||
| 76 | + | return xPreferencesPageGetIconName(x.GoPointer()) | |
| 77 | + | ||
| 78 | + | } | |
| 79 | + | ||
| 80 | + | var xPreferencesPageGetName func(uintptr) string | |
| 81 | + | ||
| 82 | + | // Gets the name of @self. | |
| 83 | + | func (x *PreferencesPage) GetName() string { | |
| 84 | + | ||
| 85 | + | return xPreferencesPageGetName(x.GoPointer()) | |
| 86 | + | ||
| 87 | + | } | |
| 88 | + | ||
| 89 | + | var xPreferencesPageGetTitle func(uintptr) string | |
| 90 | + | ||
| 91 | + | // Gets the title of @self. | |
| 92 | + | func (x *PreferencesPage) GetTitle() string { | |
| 93 | + | ||
| 94 | + | return xPreferencesPageGetTitle(x.GoPointer()) | |
| 95 | + | ||
| 96 | + | } | |
| 97 | + | ||
| 98 | + | var xPreferencesPageGetUseUnderline func(uintptr) bool | |
| 99 | + | ||
| 100 | + | // Gets whether an embedded underline in the title indicates a mnemonic. | |
| 101 | + | func (x *PreferencesPage) GetUseUnderline() bool { | |
| 102 | + | ||
| 103 | + | return xPreferencesPageGetUseUnderline(x.GoPointer()) | |
| 104 | + | ||
| 105 | + | } | |
| 106 | + | ||
| 107 | + | var xPreferencesPageRemove func(uintptr, uintptr) | |
| 108 | + | ||
| 109 | + | // Removes a group from @self. | |
| 110 | + | func (x *PreferencesPage) Remove(GroupVar *PreferencesGroup) { | |
| 111 | + | ||
| 112 | + | xPreferencesPageRemove(x.GoPointer(), GroupVar.GoPointer()) | |
| 113 | + | ||
| 114 | + | } | |
| 115 | + | ||
| 116 | + | var xPreferencesPageScrollToTop func(uintptr) | |
| 117 | + | ||
| 118 | + | // Scrolls the scrolled window of @self to the top. | |
| 119 | + | func (x *PreferencesPage) ScrollToTop() { | |
| 120 | + | ||
| 121 | + | xPreferencesPageScrollToTop(x.GoPointer()) | |
| 122 | + | ||
| 123 | + | } | |
| 124 | + | ||
| 125 | + | var xPreferencesPageSetIconName func(uintptr, string) | |
| 126 | + | ||
| 127 | + | // Sets the icon name for @self. | |
| 128 | + | func (x *PreferencesPage) SetIconName(IconNameVar string) { | |
| 129 | + | ||
| 130 | + | xPreferencesPageSetIconName(x.GoPointer(), IconNameVar) | |
| 131 | + | ||
| 132 | + | } | |
| 133 | + | ||
| 134 | + | var xPreferencesPageSetName func(uintptr, string) | |
| 135 | + | ||
| 136 | + | // Sets the name of @self. | |
| 137 | + | func (x *PreferencesPage) SetName(NameVar string) { | |
| 138 | + | ||
| 139 | + | xPreferencesPageSetName(x.GoPointer(), NameVar) | |
| 140 | + | ||
| 141 | + | } | |
| 142 | + | ||
| 143 | + | var xPreferencesPageSetTitle func(uintptr, string) | |
| 144 | + | ||
| 145 | + | // Sets the title of @self. | |
| 146 | + | func (x *PreferencesPage) SetTitle(TitleVar string) { | |
| 147 | + | ||
| 148 | + | xPreferencesPageSetTitle(x.GoPointer(), TitleVar) | |
| 149 | + | ||
| 150 | + | } | |
| 151 | + | ||
| 152 | + | var xPreferencesPageSetUseUnderline func(uintptr, bool) | |
| 153 | + | ||
| 154 | + | // Sets whether an embedded underline in the title indicates a mnemonic. | |
| 155 | + | func (x *PreferencesPage) SetUseUnderline(UseUnderlineVar bool) { | |
| 156 | + | ||
| 157 | + | xPreferencesPageSetUseUnderline(x.GoPointer(), UseUnderlineVar) | |
| 158 | + | ||
| 159 | + | } | |
| 160 | + | ||
| 161 | + | func (c *PreferencesPage) GoPointer() uintptr { | |
| 162 | + | return c.Ptr | |
| 163 | + | } | |
| 164 | + | ||
| 165 | + | func (c *PreferencesPage) SetGoPointer(ptr uintptr) { | |
| 166 | + | c.Ptr = ptr | |
| 167 | + | } | |
| 168 | + | ||
| 169 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 170 | + | func (x *PreferencesPage) GetAccessibleRole() gtk.AccessibleRole { | |
| 171 | + | ||
| 172 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 173 | + | ||
| 174 | + | } | |
| 175 | + | ||
| 176 | + | // Resets the accessible @property to its default value. | |
| 177 | + | func (x *PreferencesPage) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 178 | + | ||
| 179 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 180 | + | ||
| 181 | + | } | |
| 182 | + | ||
| 183 | + | // Resets the accessible @relation to its default value. | |
| 184 | + | func (x *PreferencesPage) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 185 | + | ||
| 186 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 187 | + | ||
| 188 | + | } | |
| 189 | + | ||
| 190 | + | // Resets the accessible @state to its default value. | |
| 191 | + | func (x *PreferencesPage) ResetState(StateVar gtk.AccessibleState) { | |
| 192 | + | ||
| 193 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 194 | + | ||
| 195 | + | } | |
| 196 | + | ||
| 197 | + | // Updates a list of accessible properties. | |
| 198 | + | // | |
| 199 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 200 | + | // value types of accessible properties. | |
| 201 | + | // | |
| 202 | + | // This function should be called by `GtkWidget` types whenever | |
| 203 | + | // an accessible property change must be communicated to assistive | |
| 204 | + | // technologies. | |
| 205 | + | // | |
| 206 | + | // Example: | |
| 207 | + | // ```c | |
| 208 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 209 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 210 | + | // | |
| 211 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 212 | + | // -1); | |
| 213 | + | // | |
| 214 | + | // ``` | |
| 215 | + | func (x *PreferencesPage) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 216 | + | ||
| 217 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 218 | + | ||
| 219 | + | } | |
| 220 | + | ||
| 221 | + | // Updates an array of accessible properties. | |
| 222 | + | // | |
| 223 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 224 | + | // property change must be communicated to assistive technologies. | |
| 225 | + | // | |
| 226 | + | // This function is meant to be used by language bindings. | |
| 227 | + | func (x *PreferencesPage) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 228 | + | ||
| 229 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 230 | + | ||
| 231 | + | } | |
| 232 | + | ||
| 233 | + | // Updates a list of accessible relations. | |
| 234 | + | // | |
| 235 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 236 | + | // relation change must be communicated to assistive technologies. | |
| 237 | + | // | |
| 238 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 239 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 240 | + | // | |
| 241 | + | // ```c | |
| 242 | + | // gtk_accessible_update_relation (accessible, | |
| 243 | + | // | |
| 244 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 245 | + | // ref1, NULL, | |
| 246 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 247 | + | // ref1, ref2, ref3, NULL, | |
| 248 | + | // -1); | |
| 249 | + | // | |
| 250 | + | // ``` | |
| 251 | + | func (x *PreferencesPage) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 252 | + | ||
| 253 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 254 | + | ||
| 255 | + | } | |
| 256 | + | ||
| 257 | + | // Updates an array of accessible relations. | |
| 258 | + | // | |
| 259 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 260 | + | // relation change must be communicated to assistive technologies. | |
| 261 | + | // | |
| 262 | + | // This function is meant to be used by language bindings. | |
| 263 | + | func (x *PreferencesPage) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 264 | + | ||
| 265 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 266 | + | ||
| 267 | + | } | |
| 268 | + | ||
| 269 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 270 | + | // documentation for the value types of accessible states. | |
| 271 | + | // | |
| 272 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 273 | + | // state change must be communicated to assistive technologies. | |
| 274 | + | // | |
| 275 | + | // Example: | |
| 276 | + | // ```c | |
| 277 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 278 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 279 | + | // | |
| 280 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 281 | + | // -1); | |
| 282 | + | // | |
| 283 | + | // ``` | |
| 284 | + | func (x *PreferencesPage) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 285 | + | ||
| 286 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 287 | + | ||
| 288 | + | } | |
| 289 | + | ||
| 290 | + | // Updates an array of accessible states. | |
| 291 | + | // | |
| 292 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 293 | + | // state change must be communicated to assistive technologies. | |
| 294 | + | // | |
| 295 | + | // This function is meant to be used by language bindings. | |
| 296 | + | func (x *PreferencesPage) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 297 | + | ||
| 298 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 299 | + | ||
| 300 | + | } | |
| 301 | + | ||
| 302 | + | // Gets the ID of the @buildable object. | |
| 303 | + | // | |
| 304 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 305 | + | // of the <object> tag used to construct the @buildable. | |
| 306 | + | func (x *PreferencesPage) GetBuildableId() string { | |
| 307 | + | ||
| 308 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 309 | + | ||
| 310 | + | } | |
| 311 | + | ||
| 312 | + | func init() { | |
| 313 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 314 | + | if err != nil { | |
| 315 | + | panic(err) | |
| 316 | + | } | |
| 317 | + | ||
| 318 | + | core.PuregoSafeRegister(&xNewPreferencesPage, lib, "adw_preferences_page_new") | |
| 319 | + | ||
| 320 | + | core.PuregoSafeRegister(&xPreferencesPageAdd, lib, "adw_preferences_page_add") | |
| 321 | + | core.PuregoSafeRegister(&xPreferencesPageGetIconName, lib, "adw_preferences_page_get_icon_name") | |
| 322 | + | core.PuregoSafeRegister(&xPreferencesPageGetName, lib, "adw_preferences_page_get_name") | |
| 323 | + | core.PuregoSafeRegister(&xPreferencesPageGetTitle, lib, "adw_preferences_page_get_title") | |
| 324 | + | core.PuregoSafeRegister(&xPreferencesPageGetUseUnderline, lib, "adw_preferences_page_get_use_underline") | |
| 325 | + | core.PuregoSafeRegister(&xPreferencesPageRemove, lib, "adw_preferences_page_remove") | |
| 326 | + | core.PuregoSafeRegister(&xPreferencesPageScrollToTop, lib, "adw_preferences_page_scroll_to_top") | |
| 327 | + | core.PuregoSafeRegister(&xPreferencesPageSetIconName, lib, "adw_preferences_page_set_icon_name") | |
| 328 | + | core.PuregoSafeRegister(&xPreferencesPageSetName, lib, "adw_preferences_page_set_name") | |
| 329 | + | core.PuregoSafeRegister(&xPreferencesPageSetTitle, lib, "adw_preferences_page_set_title") | |
| 330 | + | core.PuregoSafeRegister(&xPreferencesPageSetUseUnderline, lib, "adw_preferences_page_set_use_underline") | |
| 331 | + | ||
| 332 | + | } | |
A v4/adw/adw-preferences-row.go +385 -0
| @@ -0,0 +1,385 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type PreferencesRowClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | ||
| 15 | + | Padding uintptr | |
| 16 | + | } | |
| 17 | + | ||
| 18 | + | // A [class@Gtk.ListBoxRow] used to present preferences. | |
| 19 | + | // | |
| 20 | + | // The `AdwPreferencesRow` widget has a title that [class@PreferencesWindow] | |
| 21 | + | // will use to let the user look for a preference. It doesn't present the title | |
| 22 | + | // in any way and lets you present the preference as you please. | |
| 23 | + | // | |
| 24 | + | // [class@ActionRow] and its derivatives are convenient to use as preference | |
| 25 | + | // rows as they take care of presenting the preference's title while letting you | |
| 26 | + | // compose the inputs of the preference around it. | |
| 27 | + | type PreferencesRow struct { | |
| 28 | + | gtk.ListBoxRow | |
| 29 | + | } | |
| 30 | + | ||
| 31 | + | func PreferencesRowNewFromInternalPtr(ptr uintptr) *PreferencesRow { | |
| 32 | + | cls := &PreferencesRow{} | |
| 33 | + | cls.Ptr = ptr | |
| 34 | + | return cls | |
| 35 | + | } | |
| 36 | + | ||
| 37 | + | var xNewPreferencesRow func() uintptr | |
| 38 | + | ||
| 39 | + | // Creates a new `AdwPreferencesRow`. | |
| 40 | + | func NewPreferencesRow() *gtk.Widget { | |
| 41 | + | NewPreferencesRowPtr := xNewPreferencesRow() | |
| 42 | + | if NewPreferencesRowPtr == 0 { | |
| 43 | + | return nil | |
| 44 | + | } | |
| 45 | + | ||
| 46 | + | gobject.IncreaseRef(NewPreferencesRowPtr) | |
| 47 | + | ||
| 48 | + | NewPreferencesRowCls := >k.Widget{} | |
| 49 | + | NewPreferencesRowCls.Ptr = NewPreferencesRowPtr | |
| 50 | + | return NewPreferencesRowCls | |
| 51 | + | } | |
| 52 | + | ||
| 53 | + | var xPreferencesRowGetTitle func(uintptr) string | |
| 54 | + | ||
| 55 | + | // Gets the title of the preference represented by @self. | |
| 56 | + | func (x *PreferencesRow) GetTitle() string { | |
| 57 | + | ||
| 58 | + | return xPreferencesRowGetTitle(x.GoPointer()) | |
| 59 | + | ||
| 60 | + | } | |
| 61 | + | ||
| 62 | + | var xPreferencesRowGetTitleSelectable func(uintptr) bool | |
| 63 | + | ||
| 64 | + | // Gets whether the user can copy the title from the label | |
| 65 | + | func (x *PreferencesRow) GetTitleSelectable() bool { | |
| 66 | + | ||
| 67 | + | return xPreferencesRowGetTitleSelectable(x.GoPointer()) | |
| 68 | + | ||
| 69 | + | } | |
| 70 | + | ||
| 71 | + | var xPreferencesRowGetUseMarkup func(uintptr) bool | |
| 72 | + | ||
| 73 | + | // Gets whether to use Pango markup for the title label. | |
| 74 | + | func (x *PreferencesRow) GetUseMarkup() bool { | |
| 75 | + | ||
| 76 | + | return xPreferencesRowGetUseMarkup(x.GoPointer()) | |
| 77 | + | ||
| 78 | + | } | |
| 79 | + | ||
| 80 | + | var xPreferencesRowGetUseUnderline func(uintptr) bool | |
| 81 | + | ||
| 82 | + | // Gets whether an embedded underline in the title indicates a mnemonic. | |
| 83 | + | func (x *PreferencesRow) GetUseUnderline() bool { | |
| 84 | + | ||
| 85 | + | return xPreferencesRowGetUseUnderline(x.GoPointer()) | |
| 86 | + | ||
| 87 | + | } | |
| 88 | + | ||
| 89 | + | var xPreferencesRowSetTitle func(uintptr, string) | |
| 90 | + | ||
| 91 | + | // Sets the title of the preference represented by @self. | |
| 92 | + | // | |
| 93 | + | // The title is interpreted as Pango markup unless | |
| 94 | + | // [property@PreferencesRow:use-markup] is set to `FALSE`. | |
| 95 | + | func (x *PreferencesRow) SetTitle(TitleVar string) { | |
| 96 | + | ||
| 97 | + | xPreferencesRowSetTitle(x.GoPointer(), TitleVar) | |
| 98 | + | ||
| 99 | + | } | |
| 100 | + | ||
| 101 | + | var xPreferencesRowSetTitleSelectable func(uintptr, bool) | |
| 102 | + | ||
| 103 | + | // Sets whether the user can copy the title from the label | |
| 104 | + | // | |
| 105 | + | // See also [property@Gtk.Label:selectable]. | |
| 106 | + | func (x *PreferencesRow) SetTitleSelectable(TitleSelectableVar bool) { | |
| 107 | + | ||
| 108 | + | xPreferencesRowSetTitleSelectable(x.GoPointer(), TitleSelectableVar) | |
| 109 | + | ||
| 110 | + | } | |
| 111 | + | ||
| 112 | + | var xPreferencesRowSetUseMarkup func(uintptr, bool) | |
| 113 | + | ||
| 114 | + | // Sets whether to use Pango markup for the title label. | |
| 115 | + | // | |
| 116 | + | // Subclasses may also use it for other labels, such as subtitle. | |
| 117 | + | // | |
| 118 | + | // See also [func@Pango.parse_markup]. | |
| 119 | + | func (x *PreferencesRow) SetUseMarkup(UseMarkupVar bool) { | |
| 120 | + | ||
| 121 | + | xPreferencesRowSetUseMarkup(x.GoPointer(), UseMarkupVar) | |
| 122 | + | ||
| 123 | + | } | |
| 124 | + | ||
| 125 | + | var xPreferencesRowSetUseUnderline func(uintptr, bool) | |
| 126 | + | ||
| 127 | + | // Sets whether an embedded underline in the title indicates a mnemonic. | |
| 128 | + | func (x *PreferencesRow) SetUseUnderline(UseUnderlineVar bool) { | |
| 129 | + | ||
| 130 | + | xPreferencesRowSetUseUnderline(x.GoPointer(), UseUnderlineVar) | |
| 131 | + | ||
| 132 | + | } | |
| 133 | + | ||
| 134 | + | func (c *PreferencesRow) GoPointer() uintptr { | |
| 135 | + | return c.Ptr | |
| 136 | + | } | |
| 137 | + | ||
| 138 | + | func (c *PreferencesRow) SetGoPointer(ptr uintptr) { | |
| 139 | + | c.Ptr = ptr | |
| 140 | + | } | |
| 141 | + | ||
| 142 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 143 | + | func (x *PreferencesRow) GetAccessibleRole() gtk.AccessibleRole { | |
| 144 | + | ||
| 145 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 146 | + | ||
| 147 | + | } | |
| 148 | + | ||
| 149 | + | // Resets the accessible @property to its default value. | |
| 150 | + | func (x *PreferencesRow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 151 | + | ||
| 152 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 153 | + | ||
| 154 | + | } | |
| 155 | + | ||
| 156 | + | // Resets the accessible @relation to its default value. | |
| 157 | + | func (x *PreferencesRow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 158 | + | ||
| 159 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 160 | + | ||
| 161 | + | } | |
| 162 | + | ||
| 163 | + | // Resets the accessible @state to its default value. | |
| 164 | + | func (x *PreferencesRow) ResetState(StateVar gtk.AccessibleState) { | |
| 165 | + | ||
| 166 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 167 | + | ||
| 168 | + | } | |
| 169 | + | ||
| 170 | + | // Updates a list of accessible properties. | |
| 171 | + | // | |
| 172 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 173 | + | // value types of accessible properties. | |
| 174 | + | // | |
| 175 | + | // This function should be called by `GtkWidget` types whenever | |
| 176 | + | // an accessible property change must be communicated to assistive | |
| 177 | + | // technologies. | |
| 178 | + | // | |
| 179 | + | // Example: | |
| 180 | + | // ```c | |
| 181 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 182 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 183 | + | // | |
| 184 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 185 | + | // -1); | |
| 186 | + | // | |
| 187 | + | // ``` | |
| 188 | + | func (x *PreferencesRow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 189 | + | ||
| 190 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 191 | + | ||
| 192 | + | } | |
| 193 | + | ||
| 194 | + | // Updates an array of accessible properties. | |
| 195 | + | // | |
| 196 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 197 | + | // property change must be communicated to assistive technologies. | |
| 198 | + | // | |
| 199 | + | // This function is meant to be used by language bindings. | |
| 200 | + | func (x *PreferencesRow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 201 | + | ||
| 202 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 203 | + | ||
| 204 | + | } | |
| 205 | + | ||
| 206 | + | // Updates a list of accessible relations. | |
| 207 | + | // | |
| 208 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 209 | + | // relation change must be communicated to assistive technologies. | |
| 210 | + | // | |
| 211 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 212 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 213 | + | // | |
| 214 | + | // ```c | |
| 215 | + | // gtk_accessible_update_relation (accessible, | |
| 216 | + | // | |
| 217 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 218 | + | // ref1, NULL, | |
| 219 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 220 | + | // ref1, ref2, ref3, NULL, | |
| 221 | + | // -1); | |
| 222 | + | // | |
| 223 | + | // ``` | |
| 224 | + | func (x *PreferencesRow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 225 | + | ||
| 226 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 227 | + | ||
| 228 | + | } | |
| 229 | + | ||
| 230 | + | // Updates an array of accessible relations. | |
| 231 | + | // | |
| 232 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 233 | + | // relation change must be communicated to assistive technologies. | |
| 234 | + | // | |
| 235 | + | // This function is meant to be used by language bindings. | |
| 236 | + | func (x *PreferencesRow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 237 | + | ||
| 238 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 239 | + | ||
| 240 | + | } | |
| 241 | + | ||
| 242 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 243 | + | // documentation for the value types of accessible states. | |
| 244 | + | // | |
| 245 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 246 | + | // state change must be communicated to assistive technologies. | |
| 247 | + | // | |
| 248 | + | // Example: | |
| 249 | + | // ```c | |
| 250 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 251 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 252 | + | // | |
| 253 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 254 | + | // -1); | |
| 255 | + | // | |
| 256 | + | // ``` | |
| 257 | + | func (x *PreferencesRow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 258 | + | ||
| 259 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 260 | + | ||
| 261 | + | } | |
| 262 | + | ||
| 263 | + | // Updates an array of accessible states. | |
| 264 | + | // | |
| 265 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 266 | + | // state change must be communicated to assistive technologies. | |
| 267 | + | // | |
| 268 | + | // This function is meant to be used by language bindings. | |
| 269 | + | func (x *PreferencesRow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 270 | + | ||
| 271 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 272 | + | ||
| 273 | + | } | |
| 274 | + | ||
| 275 | + | // Gets the action name for @actionable. | |
| 276 | + | func (x *PreferencesRow) GetActionName() string { | |
| 277 | + | ||
| 278 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 279 | + | ||
| 280 | + | } | |
| 281 | + | ||
| 282 | + | // Gets the current target value of @actionable. | |
| 283 | + | func (x *PreferencesRow) GetActionTargetValue() *glib.Variant { | |
| 284 | + | ||
| 285 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 286 | + | ||
| 287 | + | } | |
| 288 | + | ||
| 289 | + | // Specifies the name of the action with which this widget should be | |
| 290 | + | // associated. | |
| 291 | + | // | |
| 292 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 293 | + | // any previous action. | |
| 294 | + | // | |
| 295 | + | // Usually this function is used when the widget is located (or will be | |
| 296 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 297 | + | // | |
| 298 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 299 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 300 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 301 | + | // associated with the window. | |
| 302 | + | func (x *PreferencesRow) SetActionName(ActionNameVar string) { | |
| 303 | + | ||
| 304 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 305 | + | ||
| 306 | + | } | |
| 307 | + | ||
| 308 | + | // Sets the target of an actionable widget. | |
| 309 | + | // | |
| 310 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 311 | + | // @format_string and uses the result to call | |
| 312 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 313 | + | // | |
| 314 | + | // If you are setting a string-valued target and want to set | |
| 315 | + | // the action name at the same time, you can use | |
| 316 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 317 | + | func (x *PreferencesRow) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 318 | + | ||
| 319 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 320 | + | ||
| 321 | + | } | |
| 322 | + | ||
| 323 | + | // Sets the target value of an actionable widget. | |
| 324 | + | // | |
| 325 | + | // If @target_value is %NULL then the target value is unset. | |
| 326 | + | // | |
| 327 | + | // The target value has two purposes. First, it is used as the parameter | |
| 328 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 329 | + | // Second, it is used to determine if the widget should be rendered as | |
| 330 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 331 | + | // | |
| 332 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 333 | + | // with string state in a typical “radio button” situation. Each button | |
| 334 | + | // will be associated with the same action, but with a different target | |
| 335 | + | // value for that action. Clicking on a particular button will activate | |
| 336 | + | // the action with the target of that button, which will typically cause | |
| 337 | + | // the action’s state to change to that value. Since the action’s state | |
| 338 | + | // is now equal to the target value of the button, the button will now | |
| 339 | + | // be rendered as active (and the other buttons, with different targets, | |
| 340 | + | // rendered inactive). | |
| 341 | + | func (x *PreferencesRow) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 342 | + | ||
| 343 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 344 | + | ||
| 345 | + | } | |
| 346 | + | ||
| 347 | + | // Sets the action-name and associated string target value of an | |
| 348 | + | // actionable widget. | |
| 349 | + | // | |
| 350 | + | // @detailed_action_name is a string in the format accepted by | |
| 351 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 352 | + | func (x *PreferencesRow) SetDetailedActionName(DetailedActionNameVar string) { | |
| 353 | + | ||
| 354 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 355 | + | ||
| 356 | + | } | |
| 357 | + | ||
| 358 | + | // Gets the ID of the @buildable object. | |
| 359 | + | // | |
| 360 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 361 | + | // of the <object> tag used to construct the @buildable. | |
| 362 | + | func (x *PreferencesRow) GetBuildableId() string { | |
| 363 | + | ||
| 364 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 365 | + | ||
| 366 | + | } | |
| 367 | + | ||
| 368 | + | func init() { | |
| 369 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 370 | + | if err != nil { | |
| 371 | + | panic(err) | |
| 372 | + | } | |
| 373 | + | ||
| 374 | + | core.PuregoSafeRegister(&xNewPreferencesRow, lib, "adw_preferences_row_new") | |
| 375 | + | ||
| 376 | + | core.PuregoSafeRegister(&xPreferencesRowGetTitle, lib, "adw_preferences_row_get_title") | |
| 377 | + | core.PuregoSafeRegister(&xPreferencesRowGetTitleSelectable, lib, "adw_preferences_row_get_title_selectable") | |
| 378 | + | core.PuregoSafeRegister(&xPreferencesRowGetUseMarkup, lib, "adw_preferences_row_get_use_markup") | |
| 379 | + | core.PuregoSafeRegister(&xPreferencesRowGetUseUnderline, lib, "adw_preferences_row_get_use_underline") | |
| 380 | + | core.PuregoSafeRegister(&xPreferencesRowSetTitle, lib, "adw_preferences_row_set_title") | |
| 381 | + | core.PuregoSafeRegister(&xPreferencesRowSetTitleSelectable, lib, "adw_preferences_row_set_title_selectable") | |
| 382 | + | core.PuregoSafeRegister(&xPreferencesRowSetUseMarkup, lib, "adw_preferences_row_set_use_markup") | |
| 383 | + | core.PuregoSafeRegister(&xPreferencesRowSetUseUnderline, lib, "adw_preferences_row_set_use_underline") | |
| 384 | + | ||
| 385 | + | } | |
A v4/adw/adw-preferences-window.go +491 -0
| @@ -0,0 +1,491 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gsk" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | type PreferencesWindowClass struct { | |
| 14 | + | ParentClass uintptr | |
| 15 | + | ||
| 16 | + | Padding uintptr | |
| 17 | + | } | |
| 18 | + | ||
| 19 | + | // A window to present an application's preferences. | |
| 20 | + | // | |
| 21 | + | // <picture> | |
| 22 | + | // | |
| 23 | + | // <source srcset="preferences-window-dark.png" media="(prefers-color-scheme: dark)"> | |
| 24 | + | // <img src="preferences-window.png" alt="preferences-window"> | |
| 25 | + | // | |
| 26 | + | // </picture> | |
| 27 | + | // | |
| 28 | + | // The `AdwPreferencesWindow` widget presents an application's preferences | |
| 29 | + | // gathered into pages and groups. The preferences are searchable by the user. | |
| 30 | + | // | |
| 31 | + | // ## CSS nodes | |
| 32 | + | // | |
| 33 | + | // `AdwPreferencesWindow` has a main CSS node with the name `window` and the | |
| 34 | + | // style class `.preferences`. | |
| 35 | + | type PreferencesWindow struct { | |
| 36 | + | Window | |
| 37 | + | } | |
| 38 | + | ||
| 39 | + | func PreferencesWindowNewFromInternalPtr(ptr uintptr) *PreferencesWindow { | |
| 40 | + | cls := &PreferencesWindow{} | |
| 41 | + | cls.Ptr = ptr | |
| 42 | + | return cls | |
| 43 | + | } | |
| 44 | + | ||
| 45 | + | var xNewPreferencesWindow func() uintptr | |
| 46 | + | ||
| 47 | + | // Creates a new `AdwPreferencesWindow`. | |
| 48 | + | func NewPreferencesWindow() *gtk.Widget { | |
| 49 | + | NewPreferencesWindowPtr := xNewPreferencesWindow() | |
| 50 | + | if NewPreferencesWindowPtr == 0 { | |
| 51 | + | return nil | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | gobject.IncreaseRef(NewPreferencesWindowPtr) | |
| 55 | + | ||
| 56 | + | NewPreferencesWindowCls := >k.Widget{} | |
| 57 | + | NewPreferencesWindowCls.Ptr = NewPreferencesWindowPtr | |
| 58 | + | return NewPreferencesWindowCls | |
| 59 | + | } | |
| 60 | + | ||
| 61 | + | var xPreferencesWindowAdd func(uintptr, uintptr) | |
| 62 | + | ||
| 63 | + | // Adds a preferences page to @self. | |
| 64 | + | func (x *PreferencesWindow) Add(PageVar *PreferencesPage) { | |
| 65 | + | ||
| 66 | + | xPreferencesWindowAdd(x.GoPointer(), PageVar.GoPointer()) | |
| 67 | + | ||
| 68 | + | } | |
| 69 | + | ||
| 70 | + | var xPreferencesWindowAddToast func(uintptr, uintptr) | |
| 71 | + | ||
| 72 | + | // Displays @toast. | |
| 73 | + | // | |
| 74 | + | // See [method@ToastOverlay.add_toast]. | |
| 75 | + | func (x *PreferencesWindow) AddToast(ToastVar *Toast) { | |
| 76 | + | ||
| 77 | + | xPreferencesWindowAddToast(x.GoPointer(), ToastVar.GoPointer()) | |
| 78 | + | ||
| 79 | + | } | |
| 80 | + | ||
| 81 | + | var xPreferencesWindowCloseSubpage func(uintptr) | |
| 82 | + | ||
| 83 | + | // Closes the current subpage. | |
| 84 | + | // | |
| 85 | + | // If there is no presented subpage, this does nothing. | |
| 86 | + | func (x *PreferencesWindow) CloseSubpage() { | |
| 87 | + | ||
| 88 | + | xPreferencesWindowCloseSubpage(x.GoPointer()) | |
| 89 | + | ||
| 90 | + | } | |
| 91 | + | ||
| 92 | + | var xPreferencesWindowGetCanNavigateBack func(uintptr) bool | |
| 93 | + | ||
| 94 | + | // Gets whether gestures and shortcuts for closing subpages are enabled. | |
| 95 | + | func (x *PreferencesWindow) GetCanNavigateBack() bool { | |
| 96 | + | ||
| 97 | + | return xPreferencesWindowGetCanNavigateBack(x.GoPointer()) | |
| 98 | + | ||
| 99 | + | } | |
| 100 | + | ||
| 101 | + | var xPreferencesWindowGetSearchEnabled func(uintptr) bool | |
| 102 | + | ||
| 103 | + | // Gets whether search is enabled for @self. | |
| 104 | + | func (x *PreferencesWindow) GetSearchEnabled() bool { | |
| 105 | + | ||
| 106 | + | return xPreferencesWindowGetSearchEnabled(x.GoPointer()) | |
| 107 | + | ||
| 108 | + | } | |
| 109 | + | ||
| 110 | + | var xPreferencesWindowGetVisiblePage func(uintptr) uintptr | |
| 111 | + | ||
| 112 | + | // Gets the currently visible page of @self. | |
| 113 | + | func (x *PreferencesWindow) GetVisiblePage() *PreferencesPage { | |
| 114 | + | ||
| 115 | + | GetVisiblePagePtr := xPreferencesWindowGetVisiblePage(x.GoPointer()) | |
| 116 | + | if GetVisiblePagePtr == 0 { | |
| 117 | + | return nil | |
| 118 | + | } | |
| 119 | + | ||
| 120 | + | gobject.IncreaseRef(GetVisiblePagePtr) | |
| 121 | + | ||
| 122 | + | GetVisiblePageCls := &PreferencesPage{} | |
| 123 | + | GetVisiblePageCls.Ptr = GetVisiblePagePtr | |
| 124 | + | return GetVisiblePageCls | |
| 125 | + | ||
| 126 | + | } | |
| 127 | + | ||
| 128 | + | var xPreferencesWindowGetVisiblePageName func(uintptr) string | |
| 129 | + | ||
| 130 | + | // Gets the name of currently visible page of @self. | |
| 131 | + | func (x *PreferencesWindow) GetVisiblePageName() string { | |
| 132 | + | ||
| 133 | + | return xPreferencesWindowGetVisiblePageName(x.GoPointer()) | |
| 134 | + | ||
| 135 | + | } | |
| 136 | + | ||
| 137 | + | var xPreferencesWindowPresentSubpage func(uintptr, uintptr) | |
| 138 | + | ||
| 139 | + | // Sets @subpage as the window's subpage and opens it. | |
| 140 | + | // | |
| 141 | + | // The transition can be cancelled by the user, in which case visible child will | |
| 142 | + | // change back to the previously visible child. | |
| 143 | + | func (x *PreferencesWindow) PresentSubpage(SubpageVar *gtk.Widget) { | |
| 144 | + | ||
| 145 | + | xPreferencesWindowPresentSubpage(x.GoPointer(), SubpageVar.GoPointer()) | |
| 146 | + | ||
| 147 | + | } | |
| 148 | + | ||
| 149 | + | var xPreferencesWindowRemove func(uintptr, uintptr) | |
| 150 | + | ||
| 151 | + | // Removes a page from @self. | |
| 152 | + | func (x *PreferencesWindow) Remove(PageVar *PreferencesPage) { | |
| 153 | + | ||
| 154 | + | xPreferencesWindowRemove(x.GoPointer(), PageVar.GoPointer()) | |
| 155 | + | ||
| 156 | + | } | |
| 157 | + | ||
| 158 | + | var xPreferencesWindowSetCanNavigateBack func(uintptr, bool) | |
| 159 | + | ||
| 160 | + | // Sets whether gestures and shortcuts for closing subpages are enabled. | |
| 161 | + | // | |
| 162 | + | // The supported gestures are: | |
| 163 | + | // | |
| 164 | + | // - One-finger swipe on touchscreens | |
| 165 | + | // - Horizontal scrolling on touchpads (usually two-finger swipe) | |
| 166 | + | // - Back mouse button | |
| 167 | + | // | |
| 168 | + | // The keyboard back key is also supported, as well as the | |
| 169 | + | // <kbd>Alt</kbd>+<kbd>←</kbd> shortcut. | |
| 170 | + | // | |
| 171 | + | // For right-to-left locales, gestures and shortcuts are reversed. | |
| 172 | + | func (x *PreferencesWindow) SetCanNavigateBack(CanNavigateBackVar bool) { | |
| 173 | + | ||
| 174 | + | xPreferencesWindowSetCanNavigateBack(x.GoPointer(), CanNavigateBackVar) | |
| 175 | + | ||
| 176 | + | } | |
| 177 | + | ||
| 178 | + | var xPreferencesWindowSetSearchEnabled func(uintptr, bool) | |
| 179 | + | ||
| 180 | + | // Sets whether search is enabled for @self. | |
| 181 | + | func (x *PreferencesWindow) SetSearchEnabled(SearchEnabledVar bool) { | |
| 182 | + | ||
| 183 | + | xPreferencesWindowSetSearchEnabled(x.GoPointer(), SearchEnabledVar) | |
| 184 | + | ||
| 185 | + | } | |
| 186 | + | ||
| 187 | + | var xPreferencesWindowSetVisiblePage func(uintptr, uintptr) | |
| 188 | + | ||
| 189 | + | // Makes @page the visible page of @self. | |
| 190 | + | func (x *PreferencesWindow) SetVisiblePage(PageVar *PreferencesPage) { | |
| 191 | + | ||
| 192 | + | xPreferencesWindowSetVisiblePage(x.GoPointer(), PageVar.GoPointer()) | |
| 193 | + | ||
| 194 | + | } | |
| 195 | + | ||
| 196 | + | var xPreferencesWindowSetVisiblePageName func(uintptr, string) | |
| 197 | + | ||
| 198 | + | // Makes the page with the given name visible. | |
| 199 | + | // | |
| 200 | + | // See [property@ViewStack:visible-child]. | |
| 201 | + | func (x *PreferencesWindow) SetVisiblePageName(NameVar string) { | |
| 202 | + | ||
| 203 | + | xPreferencesWindowSetVisiblePageName(x.GoPointer(), NameVar) | |
| 204 | + | ||
| 205 | + | } | |
| 206 | + | ||
| 207 | + | func (c *PreferencesWindow) GoPointer() uintptr { | |
| 208 | + | return c.Ptr | |
| 209 | + | } | |
| 210 | + | ||
| 211 | + | func (c *PreferencesWindow) SetGoPointer(ptr uintptr) { | |
| 212 | + | c.Ptr = ptr | |
| 213 | + | } | |
| 214 | + | ||
| 215 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 216 | + | func (x *PreferencesWindow) GetAccessibleRole() gtk.AccessibleRole { | |
| 217 | + | ||
| 218 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 219 | + | ||
| 220 | + | } | |
| 221 | + | ||
| 222 | + | // Resets the accessible @property to its default value. | |
| 223 | + | func (x *PreferencesWindow) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 224 | + | ||
| 225 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 226 | + | ||
| 227 | + | } | |
| 228 | + | ||
| 229 | + | // Resets the accessible @relation to its default value. | |
| 230 | + | func (x *PreferencesWindow) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 231 | + | ||
| 232 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 233 | + | ||
| 234 | + | } | |
| 235 | + | ||
| 236 | + | // Resets the accessible @state to its default value. | |
| 237 | + | func (x *PreferencesWindow) ResetState(StateVar gtk.AccessibleState) { | |
| 238 | + | ||
| 239 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 240 | + | ||
| 241 | + | } | |
| 242 | + | ||
| 243 | + | // Updates a list of accessible properties. | |
| 244 | + | // | |
| 245 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 246 | + | // value types of accessible properties. | |
| 247 | + | // | |
| 248 | + | // This function should be called by `GtkWidget` types whenever | |
| 249 | + | // an accessible property change must be communicated to assistive | |
| 250 | + | // technologies. | |
| 251 | + | // | |
| 252 | + | // Example: | |
| 253 | + | // ```c | |
| 254 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 255 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 256 | + | // | |
| 257 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 258 | + | // -1); | |
| 259 | + | // | |
| 260 | + | // ``` | |
| 261 | + | func (x *PreferencesWindow) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 262 | + | ||
| 263 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 264 | + | ||
| 265 | + | } | |
| 266 | + | ||
| 267 | + | // Updates an array of accessible properties. | |
| 268 | + | // | |
| 269 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 270 | + | // property change must be communicated to assistive technologies. | |
| 271 | + | // | |
| 272 | + | // This function is meant to be used by language bindings. | |
| 273 | + | func (x *PreferencesWindow) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 274 | + | ||
| 275 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 276 | + | ||
| 277 | + | } | |
| 278 | + | ||
| 279 | + | // Updates a list of accessible relations. | |
| 280 | + | // | |
| 281 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 282 | + | // relation change must be communicated to assistive technologies. | |
| 283 | + | // | |
| 284 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 285 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 286 | + | // | |
| 287 | + | // ```c | |
| 288 | + | // gtk_accessible_update_relation (accessible, | |
| 289 | + | // | |
| 290 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 291 | + | // ref1, NULL, | |
| 292 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 293 | + | // ref1, ref2, ref3, NULL, | |
| 294 | + | // -1); | |
| 295 | + | // | |
| 296 | + | // ``` | |
| 297 | + | func (x *PreferencesWindow) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 298 | + | ||
| 299 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 300 | + | ||
| 301 | + | } | |
| 302 | + | ||
| 303 | + | // Updates an array of accessible relations. | |
| 304 | + | // | |
| 305 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 306 | + | // relation change must be communicated to assistive technologies. | |
| 307 | + | // | |
| 308 | + | // This function is meant to be used by language bindings. | |
| 309 | + | func (x *PreferencesWindow) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 310 | + | ||
| 311 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 312 | + | ||
| 313 | + | } | |
| 314 | + | ||
| 315 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 316 | + | // documentation for the value types of accessible states. | |
| 317 | + | // | |
| 318 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 319 | + | // state change must be communicated to assistive technologies. | |
| 320 | + | // | |
| 321 | + | // Example: | |
| 322 | + | // ```c | |
| 323 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 324 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 325 | + | // | |
| 326 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 327 | + | // -1); | |
| 328 | + | // | |
| 329 | + | // ``` | |
| 330 | + | func (x *PreferencesWindow) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 331 | + | ||
| 332 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 333 | + | ||
| 334 | + | } | |
| 335 | + | ||
| 336 | + | // Updates an array of accessible states. | |
| 337 | + | // | |
| 338 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 339 | + | // state change must be communicated to assistive technologies. | |
| 340 | + | // | |
| 341 | + | // This function is meant to be used by language bindings. | |
| 342 | + | func (x *PreferencesWindow) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 343 | + | ||
| 344 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 345 | + | ||
| 346 | + | } | |
| 347 | + | ||
| 348 | + | // Gets the ID of the @buildable object. | |
| 349 | + | // | |
| 350 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 351 | + | // of the <object> tag used to construct the @buildable. | |
| 352 | + | func (x *PreferencesWindow) GetBuildableId() string { | |
| 353 | + | ||
| 354 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 355 | + | ||
| 356 | + | } | |
| 357 | + | ||
| 358 | + | // Returns the renderer that is used for this `GtkNative`. | |
| 359 | + | func (x *PreferencesWindow) GetRenderer() *gsk.Renderer { | |
| 360 | + | ||
| 361 | + | GetRendererPtr := gtk.XGtkNativeGetRenderer(x.GoPointer()) | |
| 362 | + | if GetRendererPtr == 0 { | |
| 363 | + | return nil | |
| 364 | + | } | |
| 365 | + | ||
| 366 | + | gobject.IncreaseRef(GetRendererPtr) | |
| 367 | + | ||
| 368 | + | GetRendererCls := &gsk.Renderer{} | |
| 369 | + | GetRendererCls.Ptr = GetRendererPtr | |
| 370 | + | return GetRendererCls | |
| 371 | + | ||
| 372 | + | } | |
| 373 | + | ||
| 374 | + | // Returns the surface of this `GtkNative`. | |
| 375 | + | func (x *PreferencesWindow) GetSurface() *gdk.Surface { | |
| 376 | + | ||
| 377 | + | GetSurfacePtr := gtk.XGtkNativeGetSurface(x.GoPointer()) | |
| 378 | + | if GetSurfacePtr == 0 { | |
| 379 | + | return nil | |
| 380 | + | } | |
| 381 | + | ||
| 382 | + | gobject.IncreaseRef(GetSurfacePtr) | |
| 383 | + | ||
| 384 | + | GetSurfaceCls := &gdk.Surface{} | |
| 385 | + | GetSurfaceCls.Ptr = GetSurfacePtr | |
| 386 | + | return GetSurfaceCls | |
| 387 | + | ||
| 388 | + | } | |
| 389 | + | ||
| 390 | + | // Retrieves the surface transform of @self. | |
| 391 | + | // | |
| 392 | + | // This is the translation from @self's surface coordinates into | |
| 393 | + | // @self's widget coordinates. | |
| 394 | + | func (x *PreferencesWindow) GetSurfaceTransform(XVar float64, YVar float64) { | |
| 395 | + | ||
| 396 | + | gtk.XGtkNativeGetSurfaceTransform(x.GoPointer(), XVar, YVar) | |
| 397 | + | ||
| 398 | + | } | |
| 399 | + | ||
| 400 | + | // Realizes a `GtkNative`. | |
| 401 | + | // | |
| 402 | + | // This should only be used by subclasses. | |
| 403 | + | func (x *PreferencesWindow) Realize() { | |
| 404 | + | ||
| 405 | + | gtk.XGtkNativeRealize(x.GoPointer()) | |
| 406 | + | ||
| 407 | + | } | |
| 408 | + | ||
| 409 | + | // Unrealizes a `GtkNative`. | |
| 410 | + | // | |
| 411 | + | // This should only be used by subclasses. | |
| 412 | + | func (x *PreferencesWindow) Unrealize() { | |
| 413 | + | ||
| 414 | + | gtk.XGtkNativeUnrealize(x.GoPointer()) | |
| 415 | + | ||
| 416 | + | } | |
| 417 | + | ||
| 418 | + | // Returns the display that this `GtkRoot` is on. | |
| 419 | + | func (x *PreferencesWindow) GetDisplay() *gdk.Display { | |
| 420 | + | ||
| 421 | + | GetDisplayPtr := gtk.XGtkRootGetDisplay(x.GoPointer()) | |
| 422 | + | if GetDisplayPtr == 0 { | |
| 423 | + | return nil | |
| 424 | + | } | |
| 425 | + | ||
| 426 | + | gobject.IncreaseRef(GetDisplayPtr) | |
| 427 | + | ||
| 428 | + | GetDisplayCls := &gdk.Display{} | |
| 429 | + | GetDisplayCls.Ptr = GetDisplayPtr | |
| 430 | + | return GetDisplayCls | |
| 431 | + | ||
| 432 | + | } | |
| 433 | + | ||
| 434 | + | // Retrieves the current focused widget within the root. | |
| 435 | + | // | |
| 436 | + | // Note that this is the widget that would have the focus | |
| 437 | + | // if the root is active; if the root is not focused then | |
| 438 | + | // `gtk_widget_has_focus (widget)` will be %FALSE for the | |
| 439 | + | // widget. | |
| 440 | + | func (x *PreferencesWindow) GetFocus() *gtk.Widget { | |
| 441 | + | ||
| 442 | + | GetFocusPtr := gtk.XGtkRootGetFocus(x.GoPointer()) | |
| 443 | + | if GetFocusPtr == 0 { | |
| 444 | + | return nil | |
| 445 | + | } | |
| 446 | + | ||
| 447 | + | gobject.IncreaseRef(GetFocusPtr) | |
| 448 | + | ||
| 449 | + | GetFocusCls := >k.Widget{} | |
| 450 | + | GetFocusCls.Ptr = GetFocusPtr | |
| 451 | + | return GetFocusCls | |
| 452 | + | ||
| 453 | + | } | |
| 454 | + | ||
| 455 | + | // If @focus is not the current focus widget, and is focusable, sets | |
| 456 | + | // it as the focus widget for the root. | |
| 457 | + | // | |
| 458 | + | // If @focus is %NULL, unsets the focus widget for the root. | |
| 459 | + | // | |
| 460 | + | // To set the focus to a particular widget in the root, it is usually | |
| 461 | + | // more convenient to use [method@Gtk.Widget.grab_focus] instead of | |
| 462 | + | // this function. | |
| 463 | + | func (x *PreferencesWindow) SetFocus(FocusVar *gtk.Widget) { | |
| 464 | + | ||
| 465 | + | gtk.XGtkRootSetFocus(x.GoPointer(), FocusVar.GoPointer()) | |
| 466 | + | ||
| 467 | + | } | |
| 468 | + | ||
| 469 | + | func init() { | |
| 470 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 471 | + | if err != nil { | |
| 472 | + | panic(err) | |
| 473 | + | } | |
| 474 | + | ||
| 475 | + | core.PuregoSafeRegister(&xNewPreferencesWindow, lib, "adw_preferences_window_new") | |
| 476 | + | ||
| 477 | + | core.PuregoSafeRegister(&xPreferencesWindowAdd, lib, "adw_preferences_window_add") | |
| 478 | + | core.PuregoSafeRegister(&xPreferencesWindowAddToast, lib, "adw_preferences_window_add_toast") | |
| 479 | + | core.PuregoSafeRegister(&xPreferencesWindowCloseSubpage, lib, "adw_preferences_window_close_subpage") | |
| 480 | + | core.PuregoSafeRegister(&xPreferencesWindowGetCanNavigateBack, lib, "adw_preferences_window_get_can_navigate_back") | |
| 481 | + | core.PuregoSafeRegister(&xPreferencesWindowGetSearchEnabled, lib, "adw_preferences_window_get_search_enabled") | |
| 482 | + | core.PuregoSafeRegister(&xPreferencesWindowGetVisiblePage, lib, "adw_preferences_window_get_visible_page") | |
| 483 | + | core.PuregoSafeRegister(&xPreferencesWindowGetVisiblePageName, lib, "adw_preferences_window_get_visible_page_name") | |
| 484 | + | core.PuregoSafeRegister(&xPreferencesWindowPresentSubpage, lib, "adw_preferences_window_present_subpage") | |
| 485 | + | core.PuregoSafeRegister(&xPreferencesWindowRemove, lib, "adw_preferences_window_remove") | |
| 486 | + | core.PuregoSafeRegister(&xPreferencesWindowSetCanNavigateBack, lib, "adw_preferences_window_set_can_navigate_back") | |
| 487 | + | core.PuregoSafeRegister(&xPreferencesWindowSetSearchEnabled, lib, "adw_preferences_window_set_search_enabled") | |
| 488 | + | core.PuregoSafeRegister(&xPreferencesWindowSetVisiblePage, lib, "adw_preferences_window_set_visible_page") | |
| 489 | + | core.PuregoSafeRegister(&xPreferencesWindowSetVisiblePageName, lib, "adw_preferences_window_set_visible_page_name") | |
| 490 | + | ||
| 491 | + | } | |
A v4/adw/adw-split-button.go +594 -0
| @@ -0,0 +1,594 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gio" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 10 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 11 | + | ) | |
| 12 | + | ||
| 13 | + | type SplitButtonClass struct { | |
| 14 | + | ParentClass uintptr | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | // A combined button and dropdown widget. | |
| 18 | + | // | |
| 19 | + | // <picture> | |
| 20 | + | // | |
| 21 | + | // <source srcset="split-button-dark.png" media="(prefers-color-scheme: dark)"> | |
| 22 | + | // <img src="split-button.png" alt="split-button"> | |
| 23 | + | // | |
| 24 | + | // </picture> | |
| 25 | + | // | |
| 26 | + | // `AdwSplitButton` is typically used to present a set of actions in a menu, | |
| 27 | + | // but allow access to one of them with a single click. | |
| 28 | + | // | |
| 29 | + | // The API is very similar to [class@Gtk.Button] and [class@Gtk.MenuButton], see | |
| 30 | + | // their documentation for details. | |
| 31 | + | // | |
| 32 | + | // ## CSS nodes | |
| 33 | + | // | |
| 34 | + | // ``` | |
| 35 | + | // splitbutton[.image-button][.text-button] | |
| 36 | + | // ├── button | |
| 37 | + | // │ ╰── <content> | |
| 38 | + | // ├── separator | |
| 39 | + | // ╰── menubutton | |
| 40 | + | // | |
| 41 | + | // ╰── button.toggle | |
| 42 | + | // ╰── arrow | |
| 43 | + | // | |
| 44 | + | // ``` | |
| 45 | + | // | |
| 46 | + | // `AdwSplitButton`'s CSS node is called `splitbutton`. It contains the css | |
| 47 | + | // nodes: `button`, `separator`, `menubutton`. See [class@Gtk.MenuButton] | |
| 48 | + | // documentation for the `menubutton` contents. | |
| 49 | + | // | |
| 50 | + | // The main CSS node will contain the `.image-button` or `.text-button` style | |
| 51 | + | // classes matching the button contents. The nested button nodes will never | |
| 52 | + | // contain them. | |
| 53 | + | // | |
| 54 | + | // ## Accessibility | |
| 55 | + | // | |
| 56 | + | // `AdwSplitButton` uses the `GTK_ACCESSIBLE_ROLE_GROUP` role. | |
| 57 | + | type SplitButton struct { | |
| 58 | + | gtk.Widget | |
| 59 | + | } | |
| 60 | + | ||
| 61 | + | func SplitButtonNewFromInternalPtr(ptr uintptr) *SplitButton { | |
| 62 | + | cls := &SplitButton{} | |
| 63 | + | cls.Ptr = ptr | |
| 64 | + | return cls | |
| 65 | + | } | |
| 66 | + | ||
| 67 | + | var xNewSplitButton func() uintptr | |
| 68 | + | ||
| 69 | + | // Creates a new `AdwSplitButton`. | |
| 70 | + | func NewSplitButton() *gtk.Widget { | |
| 71 | + | NewSplitButtonPtr := xNewSplitButton() | |
| 72 | + | if NewSplitButtonPtr == 0 { | |
| 73 | + | return nil | |
| 74 | + | } | |
| 75 | + | ||
| 76 | + | gobject.IncreaseRef(NewSplitButtonPtr) | |
| 77 | + | ||
| 78 | + | NewSplitButtonCls := >k.Widget{} | |
| 79 | + | NewSplitButtonCls.Ptr = NewSplitButtonPtr | |
| 80 | + | return NewSplitButtonCls | |
| 81 | + | } | |
| 82 | + | ||
| 83 | + | var xSplitButtonGetChild func(uintptr) uintptr | |
| 84 | + | ||
| 85 | + | // Gets the child widget. | |
| 86 | + | func (x *SplitButton) GetChild() *gtk.Widget { | |
| 87 | + | ||
| 88 | + | GetChildPtr := xSplitButtonGetChild(x.GoPointer()) | |
| 89 | + | if GetChildPtr == 0 { | |
| 90 | + | return nil | |
| 91 | + | } | |
| 92 | + | ||
| 93 | + | gobject.IncreaseRef(GetChildPtr) | |
| 94 | + | ||
| 95 | + | GetChildCls := >k.Widget{} | |
| 96 | + | GetChildCls.Ptr = GetChildPtr | |
| 97 | + | return GetChildCls | |
| 98 | + | ||
| 99 | + | } | |
| 100 | + | ||
| 101 | + | var xSplitButtonGetDirection func(uintptr) gtk.ArrowType | |
| 102 | + | ||
| 103 | + | // Gets the direction in which the popup will be popped up. | |
| 104 | + | func (x *SplitButton) GetDirection() gtk.ArrowType { | |
| 105 | + | ||
| 106 | + | return xSplitButtonGetDirection(x.GoPointer()) | |
| 107 | + | ||
| 108 | + | } | |
| 109 | + | ||
| 110 | + | var xSplitButtonGetDropdownTooltip func(uintptr) string | |
| 111 | + | ||
| 112 | + | // Gets the tooltip of the dropdown button of @self. | |
| 113 | + | func (x *SplitButton) GetDropdownTooltip() string { | |
| 114 | + | ||
| 115 | + | return xSplitButtonGetDropdownTooltip(x.GoPointer()) | |
| 116 | + | ||
| 117 | + | } | |
| 118 | + | ||
| 119 | + | var xSplitButtonGetIconName func(uintptr) string | |
| 120 | + | ||
| 121 | + | // Gets the name of the icon used to automatically populate the button. | |
| 122 | + | func (x *SplitButton) GetIconName() string { | |
| 123 | + | ||
| 124 | + | return xSplitButtonGetIconName(x.GoPointer()) | |
| 125 | + | ||
| 126 | + | } | |
| 127 | + | ||
| 128 | + | var xSplitButtonGetLabel func(uintptr) string | |
| 129 | + | ||
| 130 | + | // Gets the label for @self. | |
| 131 | + | func (x *SplitButton) GetLabel() string { | |
| 132 | + | ||
| 133 | + | return xSplitButtonGetLabel(x.GoPointer()) | |
| 134 | + | ||
| 135 | + | } | |
| 136 | + | ||
| 137 | + | var xSplitButtonGetMenuModel func(uintptr) uintptr | |
| 138 | + | ||
| 139 | + | // Gets the menu model from which the popup will be created. | |
| 140 | + | func (x *SplitButton) GetMenuModel() *gio.MenuModel { | |
| 141 | + | ||
| 142 | + | GetMenuModelPtr := xSplitButtonGetMenuModel(x.GoPointer()) | |
| 143 | + | if GetMenuModelPtr == 0 { | |
| 144 | + | return nil | |
| 145 | + | } | |
| 146 | + | ||
| 147 | + | gobject.IncreaseRef(GetMenuModelPtr) | |
| 148 | + | ||
| 149 | + | GetMenuModelCls := &gio.MenuModel{} | |
| 150 | + | GetMenuModelCls.Ptr = GetMenuModelPtr | |
| 151 | + | return GetMenuModelCls | |
| 152 | + | ||
| 153 | + | } | |
| 154 | + | ||
| 155 | + | var xSplitButtonGetPopover func(uintptr) uintptr | |
| 156 | + | ||
| 157 | + | // Gets the popover that will be popped up when the dropdown is clicked. | |
| 158 | + | func (x *SplitButton) GetPopover() *gtk.Popover { | |
| 159 | + | ||
| 160 | + | GetPopoverPtr := xSplitButtonGetPopover(x.GoPointer()) | |
| 161 | + | if GetPopoverPtr == 0 { | |
| 162 | + | return nil | |
| 163 | + | } | |
| 164 | + | ||
| 165 | + | gobject.IncreaseRef(GetPopoverPtr) | |
| 166 | + | ||
| 167 | + | GetPopoverCls := >k.Popover{} | |
| 168 | + | GetPopoverCls.Ptr = GetPopoverPtr | |
| 169 | + | return GetPopoverCls | |
| 170 | + | ||
| 171 | + | } | |
| 172 | + | ||
| 173 | + | var xSplitButtonGetUseUnderline func(uintptr) bool | |
| 174 | + | ||
| 175 | + | // Gets whether an underline in the text indicates a mnemonic. | |
| 176 | + | func (x *SplitButton) GetUseUnderline() bool { | |
| 177 | + | ||
| 178 | + | return xSplitButtonGetUseUnderline(x.GoPointer()) | |
| 179 | + | ||
| 180 | + | } | |
| 181 | + | ||
| 182 | + | var xSplitButtonPopdown func(uintptr) | |
| 183 | + | ||
| 184 | + | // Dismisses the menu. | |
| 185 | + | func (x *SplitButton) Popdown() { | |
| 186 | + | ||
| 187 | + | xSplitButtonPopdown(x.GoPointer()) | |
| 188 | + | ||
| 189 | + | } | |
| 190 | + | ||
| 191 | + | var xSplitButtonPopup func(uintptr) | |
| 192 | + | ||
| 193 | + | // Pops up the menu. | |
| 194 | + | func (x *SplitButton) Popup() { | |
| 195 | + | ||
| 196 | + | xSplitButtonPopup(x.GoPointer()) | |
| 197 | + | ||
| 198 | + | } | |
| 199 | + | ||
| 200 | + | var xSplitButtonSetChild func(uintptr, uintptr) | |
| 201 | + | ||
| 202 | + | // Sets the child widget. | |
| 203 | + | // | |
| 204 | + | // Setting the child widget will set [property@SplitButton:label] and | |
| 205 | + | // [property@SplitButton:icon-name] to `NULL`. | |
| 206 | + | func (x *SplitButton) SetChild(ChildVar *gtk.Widget) { | |
| 207 | + | ||
| 208 | + | xSplitButtonSetChild(x.GoPointer(), ChildVar.GoPointer()) | |
| 209 | + | ||
| 210 | + | } | |
| 211 | + | ||
| 212 | + | var xSplitButtonSetDirection func(uintptr, gtk.ArrowType) | |
| 213 | + | ||
| 214 | + | // Sets the direction in which the popup will be popped up. | |
| 215 | + | // | |
| 216 | + | // The dropdown arrow icon will point at the same direction. | |
| 217 | + | // | |
| 218 | + | // If the does not fit in the available space in the given direction, GTK will | |
| 219 | + | // try its best to keep it inside the screen and fully visible. | |
| 220 | + | // | |
| 221 | + | // If you pass `GTK_ARROW_NONE`, it's equivalent to `GTK_ARROW_DOWN`. | |
| 222 | + | func (x *SplitButton) SetDirection(DirectionVar gtk.ArrowType) { | |
| 223 | + | ||
| 224 | + | xSplitButtonSetDirection(x.GoPointer(), DirectionVar) | |
| 225 | + | ||
| 226 | + | } | |
| 227 | + | ||
| 228 | + | var xSplitButtonSetDropdownTooltip func(uintptr, string) | |
| 229 | + | ||
| 230 | + | // Sets the tooltip of the dropdown button of @self. | |
| 231 | + | // | |
| 232 | + | // The tooltip can be marked up with the Pango text markup language. | |
| 233 | + | func (x *SplitButton) SetDropdownTooltip(TooltipVar string) { | |
| 234 | + | ||
| 235 | + | xSplitButtonSetDropdownTooltip(x.GoPointer(), TooltipVar) | |
| 236 | + | ||
| 237 | + | } | |
| 238 | + | ||
| 239 | + | var xSplitButtonSetIconName func(uintptr, string) | |
| 240 | + | ||
| 241 | + | // Sets the name of the icon used to automatically populate the button. | |
| 242 | + | // | |
| 243 | + | // Setting the icon name will set [property@SplitButton:label] and | |
| 244 | + | // [property@SplitButton:child] to `NULL`. | |
| 245 | + | func (x *SplitButton) SetIconName(IconNameVar string) { | |
| 246 | + | ||
| 247 | + | xSplitButtonSetIconName(x.GoPointer(), IconNameVar) | |
| 248 | + | ||
| 249 | + | } | |
| 250 | + | ||
| 251 | + | var xSplitButtonSetLabel func(uintptr, string) | |
| 252 | + | ||
| 253 | + | // Sets the label for @self. | |
| 254 | + | // | |
| 255 | + | // Setting the label will set [property@SplitButton:icon-name] and | |
| 256 | + | // [property@SplitButton:child] to `NULL`. | |
| 257 | + | func (x *SplitButton) SetLabel(LabelVar string) { | |
| 258 | + | ||
| 259 | + | xSplitButtonSetLabel(x.GoPointer(), LabelVar) | |
| 260 | + | ||
| 261 | + | } | |
| 262 | + | ||
| 263 | + | var xSplitButtonSetMenuModel func(uintptr, uintptr) | |
| 264 | + | ||
| 265 | + | // Sets the menu model from which the popup will be created. | |
| 266 | + | // | |
| 267 | + | // If the menu model is `NULL`, the dropdown is disabled. | |
| 268 | + | // | |
| 269 | + | // A [class@Gtk.Popover] will be created from the menu model with | |
| 270 | + | // [ctor@Gtk.PopoverMenu.new_from_model]. Actions will be connected as | |
| 271 | + | // documented for this function. | |
| 272 | + | // | |
| 273 | + | // If [property@SplitButton:popover] is already set, it will be dissociated from | |
| 274 | + | // the button, and the property is set to `NULL`. | |
| 275 | + | func (x *SplitButton) SetMenuModel(MenuModelVar *gio.MenuModel) { | |
| 276 | + | ||
| 277 | + | xSplitButtonSetMenuModel(x.GoPointer(), MenuModelVar.GoPointer()) | |
| 278 | + | ||
| 279 | + | } | |
| 280 | + | ||
| 281 | + | var xSplitButtonSetPopover func(uintptr, uintptr) | |
| 282 | + | ||
| 283 | + | // Sets the popover that will be popped up when the dropdown is clicked. | |
| 284 | + | // | |
| 285 | + | // If the popover is `NULL`, the dropdown is disabled. | |
| 286 | + | // | |
| 287 | + | // If [property@SplitButton:menu-model] is set, the menu model is dissociated | |
| 288 | + | // from the button, and the property is set to `NULL`. | |
| 289 | + | func (x *SplitButton) SetPopover(PopoverVar *gtk.Popover) { | |
| 290 | + | ||
| 291 | + | xSplitButtonSetPopover(x.GoPointer(), PopoverVar.GoPointer()) | |
| 292 | + | ||
| 293 | + | } | |
| 294 | + | ||
| 295 | + | var xSplitButtonSetUseUnderline func(uintptr, bool) | |
| 296 | + | ||
| 297 | + | // Sets whether an underline in the text indicates a mnemonic. | |
| 298 | + | // | |
| 299 | + | // See [property@SplitButton:label]. | |
| 300 | + | func (x *SplitButton) SetUseUnderline(UseUnderlineVar bool) { | |
| 301 | + | ||
| 302 | + | xSplitButtonSetUseUnderline(x.GoPointer(), UseUnderlineVar) | |
| 303 | + | ||
| 304 | + | } | |
| 305 | + | ||
| 306 | + | func (c *SplitButton) GoPointer() uintptr { | |
| 307 | + | return c.Ptr | |
| 308 | + | } | |
| 309 | + | ||
| 310 | + | func (c *SplitButton) SetGoPointer(ptr uintptr) { | |
| 311 | + | c.Ptr = ptr | |
| 312 | + | } | |
| 313 | + | ||
| 314 | + | // Emitted to animate press then release. | |
| 315 | + | // | |
| 316 | + | // This is an action signal. Applications should never connect to this signal, | |
| 317 | + | // but use the [signal@SplitButton::clicked] signal. | |
| 318 | + | func (x *SplitButton) ConnectActivate(cb func(SplitButton)) { | |
| 319 | + | fcb := func(clsPtr uintptr) { | |
| 320 | + | fa := SplitButton{} | |
| 321 | + | fa.Ptr = clsPtr | |
| 322 | + | ||
| 323 | + | cb(fa) | |
| 324 | + | ||
| 325 | + | } | |
| 326 | + | gobject.ObjectConnect(x.GoPointer(), "signal::activate", purego.NewCallback(fcb)) | |
| 327 | + | } | |
| 328 | + | ||
| 329 | + | // Emitted when the button has been activated (pressed and released). | |
| 330 | + | func (x *SplitButton) ConnectClicked(cb func(SplitButton)) { | |
| 331 | + | fcb := func(clsPtr uintptr) { | |
| 332 | + | fa := SplitButton{} | |
| 333 | + | fa.Ptr = clsPtr | |
| 334 | + | ||
| 335 | + | cb(fa) | |
| 336 | + | ||
| 337 | + | } | |
| 338 | + | gobject.ObjectConnect(x.GoPointer(), "signal::clicked", purego.NewCallback(fcb)) | |
| 339 | + | } | |
| 340 | + | ||
| 341 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 342 | + | func (x *SplitButton) GetAccessibleRole() gtk.AccessibleRole { | |
| 343 | + | ||
| 344 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 345 | + | ||
| 346 | + | } | |
| 347 | + | ||
| 348 | + | // Resets the accessible @property to its default value. | |
| 349 | + | func (x *SplitButton) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 350 | + | ||
| 351 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 352 | + | ||
| 353 | + | } | |
| 354 | + | ||
| 355 | + | // Resets the accessible @relation to its default value. | |
| 356 | + | func (x *SplitButton) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 357 | + | ||
| 358 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 359 | + | ||
| 360 | + | } | |
| 361 | + | ||
| 362 | + | // Resets the accessible @state to its default value. | |
| 363 | + | func (x *SplitButton) ResetState(StateVar gtk.AccessibleState) { | |
| 364 | + | ||
| 365 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 366 | + | ||
| 367 | + | } | |
| 368 | + | ||
| 369 | + | // Updates a list of accessible properties. | |
| 370 | + | // | |
| 371 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 372 | + | // value types of accessible properties. | |
| 373 | + | // | |
| 374 | + | // This function should be called by `GtkWidget` types whenever | |
| 375 | + | // an accessible property change must be communicated to assistive | |
| 376 | + | // technologies. | |
| 377 | + | // | |
| 378 | + | // Example: | |
| 379 | + | // ```c | |
| 380 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 381 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 382 | + | // | |
| 383 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 384 | + | // -1); | |
| 385 | + | // | |
| 386 | + | // ``` | |
| 387 | + | func (x *SplitButton) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 388 | + | ||
| 389 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 390 | + | ||
| 391 | + | } | |
| 392 | + | ||
| 393 | + | // Updates an array of accessible properties. | |
| 394 | + | // | |
| 395 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 396 | + | // property change must be communicated to assistive technologies. | |
| 397 | + | // | |
| 398 | + | // This function is meant to be used by language bindings. | |
| 399 | + | func (x *SplitButton) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 400 | + | ||
| 401 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 402 | + | ||
| 403 | + | } | |
| 404 | + | ||
| 405 | + | // Updates a list of accessible relations. | |
| 406 | + | // | |
| 407 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 408 | + | // relation change must be communicated to assistive technologies. | |
| 409 | + | // | |
| 410 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 411 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 412 | + | // | |
| 413 | + | // ```c | |
| 414 | + | // gtk_accessible_update_relation (accessible, | |
| 415 | + | // | |
| 416 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 417 | + | // ref1, NULL, | |
| 418 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 419 | + | // ref1, ref2, ref3, NULL, | |
| 420 | + | // -1); | |
| 421 | + | // | |
| 422 | + | // ``` | |
| 423 | + | func (x *SplitButton) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 424 | + | ||
| 425 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 426 | + | ||
| 427 | + | } | |
| 428 | + | ||
| 429 | + | // Updates an array of accessible relations. | |
| 430 | + | // | |
| 431 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 432 | + | // relation change must be communicated to assistive technologies. | |
| 433 | + | // | |
| 434 | + | // This function is meant to be used by language bindings. | |
| 435 | + | func (x *SplitButton) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 436 | + | ||
| 437 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 438 | + | ||
| 439 | + | } | |
| 440 | + | ||
| 441 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 442 | + | // documentation for the value types of accessible states. | |
| 443 | + | // | |
| 444 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 445 | + | // state change must be communicated to assistive technologies. | |
| 446 | + | // | |
| 447 | + | // Example: | |
| 448 | + | // ```c | |
| 449 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 450 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 451 | + | // | |
| 452 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 453 | + | // -1); | |
| 454 | + | // | |
| 455 | + | // ``` | |
| 456 | + | func (x *SplitButton) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 457 | + | ||
| 458 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 459 | + | ||
| 460 | + | } | |
| 461 | + | ||
| 462 | + | // Updates an array of accessible states. | |
| 463 | + | // | |
| 464 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 465 | + | // state change must be communicated to assistive technologies. | |
| 466 | + | // | |
| 467 | + | // This function is meant to be used by language bindings. | |
| 468 | + | func (x *SplitButton) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 469 | + | ||
| 470 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 471 | + | ||
| 472 | + | } | |
| 473 | + | ||
| 474 | + | // Gets the action name for @actionable. | |
| 475 | + | func (x *SplitButton) GetActionName() string { | |
| 476 | + | ||
| 477 | + | return gtk.XGtkActionableGetActionName(x.GoPointer()) | |
| 478 | + | ||
| 479 | + | } | |
| 480 | + | ||
| 481 | + | // Gets the current target value of @actionable. | |
| 482 | + | func (x *SplitButton) GetActionTargetValue() *glib.Variant { | |
| 483 | + | ||
| 484 | + | return gtk.XGtkActionableGetActionTargetValue(x.GoPointer()) | |
| 485 | + | ||
| 486 | + | } | |
| 487 | + | ||
| 488 | + | // Specifies the name of the action with which this widget should be | |
| 489 | + | // associated. | |
| 490 | + | // | |
| 491 | + | // If @action_name is %NULL then the widget will be unassociated from | |
| 492 | + | // any previous action. | |
| 493 | + | // | |
| 494 | + | // Usually this function is used when the widget is located (or will be | |
| 495 | + | // located) within the hierarchy of a `GtkApplicationWindow`. | |
| 496 | + | // | |
| 497 | + | // Names are of the form “win.save” or “app.quit” for actions on the | |
| 498 | + | // containing [class@ApplicationWindow] or its associated [class@Application], | |
| 499 | + | // respectively. This is the same form used for actions in the [class@Gio.Menu] | |
| 500 | + | // associated with the window. | |
| 501 | + | func (x *SplitButton) SetActionName(ActionNameVar string) { | |
| 502 | + | ||
| 503 | + | gtk.XGtkActionableSetActionName(x.GoPointer(), ActionNameVar) | |
| 504 | + | ||
| 505 | + | } | |
| 506 | + | ||
| 507 | + | // Sets the target of an actionable widget. | |
| 508 | + | // | |
| 509 | + | // This is a convenience function that calls [ctor@GLib.Variant.new] for | |
| 510 | + | // @format_string and uses the result to call | |
| 511 | + | // [method@Gtk.Actionable.set_action_target_value]. | |
| 512 | + | // | |
| 513 | + | // If you are setting a string-valued target and want to set | |
| 514 | + | // the action name at the same time, you can use | |
| 515 | + | // [method@Gtk.Actionable.set_detailed_action_name]. | |
| 516 | + | func (x *SplitButton) SetActionTarget(FormatStringVar string, varArgs ...interface{}) { | |
| 517 | + | ||
| 518 | + | gtk.XGtkActionableSetActionTarget(x.GoPointer(), FormatStringVar, varArgs...) | |
| 519 | + | ||
| 520 | + | } | |
| 521 | + | ||
| 522 | + | // Sets the target value of an actionable widget. | |
| 523 | + | // | |
| 524 | + | // If @target_value is %NULL then the target value is unset. | |
| 525 | + | // | |
| 526 | + | // The target value has two purposes. First, it is used as the parameter | |
| 527 | + | // to activation of the action associated with the `GtkActionable` widget. | |
| 528 | + | // Second, it is used to determine if the widget should be rendered as | |
| 529 | + | // “active” — the widget is active if the state is equal to the given target. | |
| 530 | + | // | |
| 531 | + | // Consider the example of associating a set of buttons with a [iface@Gio.Action] | |
| 532 | + | // with string state in a typical “radio button” situation. Each button | |
| 533 | + | // will be associated with the same action, but with a different target | |
| 534 | + | // value for that action. Clicking on a particular button will activate | |
| 535 | + | // the action with the target of that button, which will typically cause | |
| 536 | + | // the action’s state to change to that value. Since the action’s state | |
| 537 | + | // is now equal to the target value of the button, the button will now | |
| 538 | + | // be rendered as active (and the other buttons, with different targets, | |
| 539 | + | // rendered inactive). | |
| 540 | + | func (x *SplitButton) SetActionTargetValue(TargetValueVar *glib.Variant) { | |
| 541 | + | ||
| 542 | + | gtk.XGtkActionableSetActionTargetValue(x.GoPointer(), TargetValueVar) | |
| 543 | + | ||
| 544 | + | } | |
| 545 | + | ||
| 546 | + | // Sets the action-name and associated string target value of an | |
| 547 | + | // actionable widget. | |
| 548 | + | // | |
| 549 | + | // @detailed_action_name is a string in the format accepted by | |
| 550 | + | // [func@Gio.Action.parse_detailed_name]. | |
| 551 | + | func (x *SplitButton) SetDetailedActionName(DetailedActionNameVar string) { | |
| 552 | + | ||
| 553 | + | gtk.XGtkActionableSetDetailedActionName(x.GoPointer(), DetailedActionNameVar) | |
| 554 | + | ||
| 555 | + | } | |
| 556 | + | ||
| 557 | + | // Gets the ID of the @buildable object. | |
| 558 | + | // | |
| 559 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 560 | + | // of the <object> tag used to construct the @buildable. | |
| 561 | + | func (x *SplitButton) GetBuildableId() string { | |
| 562 | + | ||
| 563 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 564 | + | ||
| 565 | + | } | |
| 566 | + | ||
| 567 | + | func init() { | |
| 568 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 569 | + | if err != nil { | |
| 570 | + | panic(err) | |
| 571 | + | } | |
| 572 | + | ||
| 573 | + | core.PuregoSafeRegister(&xNewSplitButton, lib, "adw_split_button_new") | |
| 574 | + | ||
| 575 | + | core.PuregoSafeRegister(&xSplitButtonGetChild, lib, "adw_split_button_get_child") | |
| 576 | + | core.PuregoSafeRegister(&xSplitButtonGetDirection, lib, "adw_split_button_get_direction") | |
| 577 | + | core.PuregoSafeRegister(&xSplitButtonGetDropdownTooltip, lib, "adw_split_button_get_dropdown_tooltip") | |
| 578 | + | core.PuregoSafeRegister(&xSplitButtonGetIconName, lib, "adw_split_button_get_icon_name") | |
| 579 | + | core.PuregoSafeRegister(&xSplitButtonGetLabel, lib, "adw_split_button_get_label") | |
| 580 | + | core.PuregoSafeRegister(&xSplitButtonGetMenuModel, lib, "adw_split_button_get_menu_model") | |
| 581 | + | core.PuregoSafeRegister(&xSplitButtonGetPopover, lib, "adw_split_button_get_popover") | |
| 582 | + | core.PuregoSafeRegister(&xSplitButtonGetUseUnderline, lib, "adw_split_button_get_use_underline") | |
| 583 | + | core.PuregoSafeRegister(&xSplitButtonPopdown, lib, "adw_split_button_popdown") | |
| 584 | + | core.PuregoSafeRegister(&xSplitButtonPopup, lib, "adw_split_button_popup") | |
| 585 | + | core.PuregoSafeRegister(&xSplitButtonSetChild, lib, "adw_split_button_set_child") | |
| 586 | + | core.PuregoSafeRegister(&xSplitButtonSetDirection, lib, "adw_split_button_set_direction") | |
| 587 | + | core.PuregoSafeRegister(&xSplitButtonSetDropdownTooltip, lib, "adw_split_button_set_dropdown_tooltip") | |
| 588 | + | core.PuregoSafeRegister(&xSplitButtonSetIconName, lib, "adw_split_button_set_icon_name") | |
| 589 | + | core.PuregoSafeRegister(&xSplitButtonSetLabel, lib, "adw_split_button_set_label") | |
| 590 | + | core.PuregoSafeRegister(&xSplitButtonSetMenuModel, lib, "adw_split_button_set_menu_model") | |
| 591 | + | core.PuregoSafeRegister(&xSplitButtonSetPopover, lib, "adw_split_button_set_popover") | |
| 592 | + | core.PuregoSafeRegister(&xSplitButtonSetUseUnderline, lib, "adw_split_button_set_use_underline") | |
| 593 | + | ||
| 594 | + | } | |
A v4/adw/adw-spring-animation.go +288 -0
| @@ -0,0 +1,288 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | type SpringAnimationClass struct { | |
| 12 | + | } | |
| 13 | + | ||
| 14 | + | // A spring-based [class@Animation]. | |
| 15 | + | // | |
| 16 | + | // `AdwSpringAnimation` implements an animation driven by a physical model of a | |
| 17 | + | // spring described by [struct@SpringParams], with a resting position in | |
| 18 | + | // [property@SpringAnimation:value-to], stretched to | |
| 19 | + | // [property@SpringAnimation:value-from]. | |
| 20 | + | // | |
| 21 | + | // Since the animation is physically simulated, spring animations don't have a | |
| 22 | + | // fixed duration. The animation will stop when the simulated spring comes to a | |
| 23 | + | // rest - when the amplitude of the oscillations becomes smaller than | |
| 24 | + | // [property@SpringAnimation:epsilon], or immediately when it reaches | |
| 25 | + | // [property@SpringAnimation:value-to] if | |
| 26 | + | // [property@SpringAnimation:clamp] is set to `TRUE`. The estimated duration can | |
| 27 | + | // be obtained with [property@SpringAnimation:estimated-duration]. | |
| 28 | + | // | |
| 29 | + | // Due to the nature of spring-driven motion the animation can overshoot | |
| 30 | + | // [property@SpringAnimation:value-to] before coming to a rest. Whether the | |
| 31 | + | // animation will overshoot or not depends on the damping ratio of the spring. | |
| 32 | + | // See [struct@SpringParams] for more information about specific damping ratio | |
| 33 | + | // values. | |
| 34 | + | // | |
| 35 | + | // If [property@SpringAnimation:clamp] is `TRUE`, the animation will abruptly | |
| 36 | + | // end as soon as it reaches the final value, preventing overshooting. | |
| 37 | + | // | |
| 38 | + | // Animations can have an initial velocity value, set via | |
| 39 | + | // [property@SpringAnimation:initial-velocity], which adjusts the curve without | |
| 40 | + | // changing the duration. This makes spring animations useful for deceleration | |
| 41 | + | // at the end of gestures. | |
| 42 | + | // | |
| 43 | + | // If the initial and final values are equal, and the initial velocity is not 0, | |
| 44 | + | // the animation value will bounce and return to its resting position. | |
| 45 | + | type SpringAnimation struct { | |
| 46 | + | Animation | |
| 47 | + | } | |
| 48 | + | ||
| 49 | + | func SpringAnimationNewFromInternalPtr(ptr uintptr) *SpringAnimation { | |
| 50 | + | cls := &SpringAnimation{} | |
| 51 | + | cls.Ptr = ptr | |
| 52 | + | return cls | |
| 53 | + | } | |
| 54 | + | ||
| 55 | + | var xNewSpringAnimation func(uintptr, float64, float64, *SpringParams, uintptr) uintptr | |
| 56 | + | ||
| 57 | + | // Creates a new `AdwSpringAnimation` on @widget. | |
| 58 | + | // | |
| 59 | + | // The animation will animate @target from @from to @to with the dynamics of a | |
| 60 | + | // spring described by @spring_params. | |
| 61 | + | func NewSpringAnimation(WidgetVar *gtk.Widget, FromVar float64, ToVar float64, SpringParamsVar *SpringParams, TargetVar *AnimationTarget) *Animation { | |
| 62 | + | NewSpringAnimationPtr := xNewSpringAnimation(WidgetVar.GoPointer(), FromVar, ToVar, SpringParamsVar, TargetVar.GoPointer()) | |
| 63 | + | if NewSpringAnimationPtr == 0 { | |
| 64 | + | return nil | |
| 65 | + | } | |
| 66 | + | ||
| 67 | + | gobject.IncreaseRef(NewSpringAnimationPtr) | |
| 68 | + | ||
| 69 | + | NewSpringAnimationCls := &Animation{} | |
| 70 | + | NewSpringAnimationCls.Ptr = NewSpringAnimationPtr | |
| 71 | + | return NewSpringAnimationCls | |
| 72 | + | } | |
| 73 | + | ||
| 74 | + | var xSpringAnimationCalculateValue func(uintptr, uint) float64 | |
| 75 | + | ||
| 76 | + | // Calculates the value @self will have at @time. | |
| 77 | + | // | |
| 78 | + | // The time starts at 0 and ends at | |
| 79 | + | // [property@SpringAnimation:estimated_duration]. | |
| 80 | + | // | |
| 81 | + | // See also [method@SpringAnimation.calculate_velocity]. | |
| 82 | + | func (x *SpringAnimation) CalculateValue(TimeVar uint) float64 { | |
| 83 | + | ||
| 84 | + | return xSpringAnimationCalculateValue(x.GoPointer(), TimeVar) | |
| 85 | + | ||
| 86 | + | } | |
| 87 | + | ||
| 88 | + | var xSpringAnimationCalculateVelocity func(uintptr, uint) float64 | |
| 89 | + | ||
| 90 | + | // Calculates the velocity @self will have at @time. | |
| 91 | + | // | |
| 92 | + | // The time starts at 0 and ends at | |
| 93 | + | // [property@SpringAnimation:estimated_duration]. | |
| 94 | + | // | |
| 95 | + | // See also [method@SpringAnimation.calculate_value]. | |
| 96 | + | func (x *SpringAnimation) CalculateVelocity(TimeVar uint) float64 { | |
| 97 | + | ||
| 98 | + | return xSpringAnimationCalculateVelocity(x.GoPointer(), TimeVar) | |
| 99 | + | ||
| 100 | + | } | |
| 101 | + | ||
| 102 | + | var xSpringAnimationGetClamp func(uintptr) bool | |
| 103 | + | ||
| 104 | + | // Gets whether @self should be clamped. | |
| 105 | + | func (x *SpringAnimation) GetClamp() bool { | |
| 106 | + | ||
| 107 | + | return xSpringAnimationGetClamp(x.GoPointer()) | |
| 108 | + | ||
| 109 | + | } | |
| 110 | + | ||
| 111 | + | var xSpringAnimationGetEpsilon func(uintptr) float64 | |
| 112 | + | ||
| 113 | + | // Gets the precision of the spring. | |
| 114 | + | func (x *SpringAnimation) GetEpsilon() float64 { | |
| 115 | + | ||
| 116 | + | return xSpringAnimationGetEpsilon(x.GoPointer()) | |
| 117 | + | ||
| 118 | + | } | |
| 119 | + | ||
| 120 | + | var xSpringAnimationGetEstimatedDuration func(uintptr) uint | |
| 121 | + | ||
| 122 | + | // Gets the estimated duration of @self, in milliseconds. | |
| 123 | + | // | |
| 124 | + | // Can be [const@DURATION_INFINITE] if the spring damping is set to 0. | |
| 125 | + | func (x *SpringAnimation) GetEstimatedDuration() uint { | |
| 126 | + | ||
| 127 | + | return xSpringAnimationGetEstimatedDuration(x.GoPointer()) | |
| 128 | + | ||
| 129 | + | } | |
| 130 | + | ||
| 131 | + | var xSpringAnimationGetInitialVelocity func(uintptr) float64 | |
| 132 | + | ||
| 133 | + | // Gets the initial velocity of @self. | |
| 134 | + | func (x *SpringAnimation) GetInitialVelocity() float64 { | |
| 135 | + | ||
| 136 | + | return xSpringAnimationGetInitialVelocity(x.GoPointer()) | |
| 137 | + | ||
| 138 | + | } | |
| 139 | + | ||
| 140 | + | var xSpringAnimationGetSpringParams func(uintptr) *SpringParams | |
| 141 | + | ||
| 142 | + | // Gets the physical parameters of the spring of @self. | |
| 143 | + | func (x *SpringAnimation) GetSpringParams() *SpringParams { | |
| 144 | + | ||
| 145 | + | return xSpringAnimationGetSpringParams(x.GoPointer()) | |
| 146 | + | ||
| 147 | + | } | |
| 148 | + | ||
| 149 | + | var xSpringAnimationGetValueFrom func(uintptr) float64 | |
| 150 | + | ||
| 151 | + | // Gets the value @self will animate from. | |
| 152 | + | func (x *SpringAnimation) GetValueFrom() float64 { | |
| 153 | + | ||
| 154 | + | return xSpringAnimationGetValueFrom(x.GoPointer()) | |
| 155 | + | ||
| 156 | + | } | |
| 157 | + | ||
| 158 | + | var xSpringAnimationGetValueTo func(uintptr) float64 | |
| 159 | + | ||
| 160 | + | // Gets the value @self will animate to. | |
| 161 | + | func (x *SpringAnimation) GetValueTo() float64 { | |
| 162 | + | ||
| 163 | + | return xSpringAnimationGetValueTo(x.GoPointer()) | |
| 164 | + | ||
| 165 | + | } | |
| 166 | + | ||
| 167 | + | var xSpringAnimationGetVelocity func(uintptr) float64 | |
| 168 | + | ||
| 169 | + | // Gets the current velocity of @self. | |
| 170 | + | func (x *SpringAnimation) GetVelocity() float64 { | |
| 171 | + | ||
| 172 | + | return xSpringAnimationGetVelocity(x.GoPointer()) | |
| 173 | + | ||
| 174 | + | } | |
| 175 | + | ||
| 176 | + | var xSpringAnimationSetClamp func(uintptr, bool) | |
| 177 | + | ||
| 178 | + | // Sets whether @self should be clamped. | |
| 179 | + | // | |
| 180 | + | // If set to `TRUE`, the animation will abruptly end as soon as it reaches the | |
| 181 | + | // final value, preventing overshooting. | |
| 182 | + | // | |
| 183 | + | // It won't prevent overshooting [property@SpringAnimation:value-from] if a | |
| 184 | + | // relative negative [property@SpringAnimation:initial-velocity] is set. | |
| 185 | + | func (x *SpringAnimation) SetClamp(ClampVar bool) { | |
| 186 | + | ||
| 187 | + | xSpringAnimationSetClamp(x.GoPointer(), ClampVar) | |
| 188 | + | ||
| 189 | + | } | |
| 190 | + | ||
| 191 | + | var xSpringAnimationSetEpsilon func(uintptr, float64) | |
| 192 | + | ||
| 193 | + | // Sets the precision of the spring. | |
| 194 | + | // | |
| 195 | + | // The level of precision used to determine when the animation has come to a | |
| 196 | + | // rest, that is, when the amplitude of the oscillations becomes smaller than | |
| 197 | + | // this value. | |
| 198 | + | // | |
| 199 | + | // If the epsilon value is too small, the animation will take a long time to | |
| 200 | + | // stop after the animated value has stopped visibly changing. | |
| 201 | + | // | |
| 202 | + | // If the epsilon value is too large, the animation will end prematurely. | |
| 203 | + | // | |
| 204 | + | // The default value is 0.001. | |
| 205 | + | func (x *SpringAnimation) SetEpsilon(EpsilonVar float64) { | |
| 206 | + | ||
| 207 | + | xSpringAnimationSetEpsilon(x.GoPointer(), EpsilonVar) | |
| 208 | + | ||
| 209 | + | } | |
| 210 | + | ||
| 211 | + | var xSpringAnimationSetInitialVelocity func(uintptr, float64) | |
| 212 | + | ||
| 213 | + | // Sets the initial velocity of @self. | |
| 214 | + | // | |
| 215 | + | // Initial velocity affects only the animation curve, but not its duration. | |
| 216 | + | func (x *SpringAnimation) SetInitialVelocity(VelocityVar float64) { | |
| 217 | + | ||
| 218 | + | xSpringAnimationSetInitialVelocity(x.GoPointer(), VelocityVar) | |
| 219 | + | ||
| 220 | + | } | |
| 221 | + | ||
| 222 | + | var xSpringAnimationSetSpringParams func(uintptr, *SpringParams) | |
| 223 | + | ||
| 224 | + | // Sets the physical parameters of the spring of @self. | |
| 225 | + | func (x *SpringAnimation) SetSpringParams(SpringParamsVar *SpringParams) { | |
| 226 | + | ||
| 227 | + | xSpringAnimationSetSpringParams(x.GoPointer(), SpringParamsVar) | |
| 228 | + | ||
| 229 | + | } | |
| 230 | + | ||
| 231 | + | var xSpringAnimationSetValueFrom func(uintptr, float64) | |
| 232 | + | ||
| 233 | + | // Sets the value @self will animate from. | |
| 234 | + | // | |
| 235 | + | // The animation will start at this value and end at | |
| 236 | + | // [property@SpringAnimation:value-to]. | |
| 237 | + | func (x *SpringAnimation) SetValueFrom(ValueVar float64) { | |
| 238 | + | ||
| 239 | + | xSpringAnimationSetValueFrom(x.GoPointer(), ValueVar) | |
| 240 | + | ||
| 241 | + | } | |
| 242 | + | ||
| 243 | + | var xSpringAnimationSetValueTo func(uintptr, float64) | |
| 244 | + | ||
| 245 | + | // Sets the value @self will animate to. | |
| 246 | + | // | |
| 247 | + | // The animation will start at [property@SpringAnimation:value-from] and end at | |
| 248 | + | // this value. | |
| 249 | + | func (x *SpringAnimation) SetValueTo(ValueVar float64) { | |
| 250 | + | ||
| 251 | + | xSpringAnimationSetValueTo(x.GoPointer(), ValueVar) | |
| 252 | + | ||
| 253 | + | } | |
| 254 | + | ||
| 255 | + | func (c *SpringAnimation) GoPointer() uintptr { | |
| 256 | + | return c.Ptr | |
| 257 | + | } | |
| 258 | + | ||
| 259 | + | func (c *SpringAnimation) SetGoPointer(ptr uintptr) { | |
| 260 | + | c.Ptr = ptr | |
| 261 | + | } | |
| 262 | + | ||
| 263 | + | func init() { | |
| 264 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 265 | + | if err != nil { | |
| 266 | + | panic(err) | |
| 267 | + | } | |
| 268 | + | ||
| 269 | + | core.PuregoSafeRegister(&xNewSpringAnimation, lib, "adw_spring_animation_new") | |
| 270 | + | ||
| 271 | + | core.PuregoSafeRegister(&xSpringAnimationCalculateValue, lib, "adw_spring_animation_calculate_value") | |
| 272 | + | core.PuregoSafeRegister(&xSpringAnimationCalculateVelocity, lib, "adw_spring_animation_calculate_velocity") | |
| 273 | + | core.PuregoSafeRegister(&xSpringAnimationGetClamp, lib, "adw_spring_animation_get_clamp") | |
| 274 | + | core.PuregoSafeRegister(&xSpringAnimationGetEpsilon, lib, "adw_spring_animation_get_epsilon") | |
| 275 | + | core.PuregoSafeRegister(&xSpringAnimationGetEstimatedDuration, lib, "adw_spring_animation_get_estimated_duration") | |
| 276 | + | core.PuregoSafeRegister(&xSpringAnimationGetInitialVelocity, lib, "adw_spring_animation_get_initial_velocity") | |
| 277 | + | core.PuregoSafeRegister(&xSpringAnimationGetSpringParams, lib, "adw_spring_animation_get_spring_params") | |
| 278 | + | core.PuregoSafeRegister(&xSpringAnimationGetValueFrom, lib, "adw_spring_animation_get_value_from") | |
| 279 | + | core.PuregoSafeRegister(&xSpringAnimationGetValueTo, lib, "adw_spring_animation_get_value_to") | |
| 280 | + | core.PuregoSafeRegister(&xSpringAnimationGetVelocity, lib, "adw_spring_animation_get_velocity") | |
| 281 | + | core.PuregoSafeRegister(&xSpringAnimationSetClamp, lib, "adw_spring_animation_set_clamp") | |
| 282 | + | core.PuregoSafeRegister(&xSpringAnimationSetEpsilon, lib, "adw_spring_animation_set_epsilon") | |
| 283 | + | core.PuregoSafeRegister(&xSpringAnimationSetInitialVelocity, lib, "adw_spring_animation_set_initial_velocity") | |
| 284 | + | core.PuregoSafeRegister(&xSpringAnimationSetSpringParams, lib, "adw_spring_animation_set_spring_params") | |
| 285 | + | core.PuregoSafeRegister(&xSpringAnimationSetValueFrom, lib, "adw_spring_animation_set_value_from") | |
| 286 | + | core.PuregoSafeRegister(&xSpringAnimationSetValueTo, lib, "adw_spring_animation_set_value_to") | |
| 287 | + | ||
| 288 | + | } | |
A v4/adw/adw-spring-params.go +35 -0
| @@ -0,0 +1,35 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | // Physical parameters of a spring for [class@SpringAnimation]. | |
| 5 | + | // | |
| 6 | + | // Any spring can be described by three parameters: mass, stiffness and damping. | |
| 7 | + | // | |
| 8 | + | // An undamped spring will produce an oscillatory motion which will go on | |
| 9 | + | // forever. | |
| 10 | + | // | |
| 11 | + | // The frequency and amplitude of the oscillations will be determined by the | |
| 12 | + | // stiffness (how "strong" the spring is) and its mass (how much "inertia" it | |
| 13 | + | // has). | |
| 14 | + | // | |
| 15 | + | // If damping is larger than 0, the amplitude of that oscillating motion will | |
| 16 | + | // exponientally decrease over time. If that damping is strong enough that the | |
| 17 | + | // spring can't complete a full oscillation, it's called an overdamped spring. | |
| 18 | + | // | |
| 19 | + | // If we the spring can oscillate, it's called an underdamped spring. | |
| 20 | + | // | |
| 21 | + | // The value between these two behaviors is called critical damping; a | |
| 22 | + | // critically damped spring will comes to rest in the minimum possible time | |
| 23 | + | // without producing oscillations. | |
| 24 | + | // | |
| 25 | + | // The damping can be replaced by damping ratio, which produces the following | |
| 26 | + | // springs: | |
| 27 | + | // | |
| 28 | + | // * 0: an undamped spring. | |
| 29 | + | // * Between 0 and 1: an underdamped spring. | |
| 30 | + | // * 1: a critically damped spring. | |
| 31 | + | // * Larger than 1: an overdamped spring. | |
| 32 | + | // | |
| 33 | + | // As such | |
| 34 | + | type SpringParams struct { | |
| 35 | + | } | |
A v4/adw/adw-squeezer.go +619 -0 collapsed to keep the page light
A v4/adw/adw-status-page.go +347 -0
| @@ -0,0 +1,347 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | "github.com/jwijenbergh/puregotk/v4/gtk" | |
| 10 | + | ) | |
| 11 | + | ||
| 12 | + | type StatusPageClass struct { | |
| 13 | + | ParentClass uintptr | |
| 14 | + | } | |
| 15 | + | ||
| 16 | + | // A page used for empty/error states and similar use-cases. | |
| 17 | + | // | |
| 18 | + | // <picture> | |
| 19 | + | // | |
| 20 | + | // <source srcset="status-page-dark.png" media="(prefers-color-scheme: dark)"> | |
| 21 | + | // <img src="status-page.png" alt="status-page"> | |
| 22 | + | // | |
| 23 | + | // </picture> | |
| 24 | + | // | |
| 25 | + | // The `AdwStatusPage` widget can have an icon, a title, a description and a | |
| 26 | + | // custom widget which is displayed below them. | |
| 27 | + | // | |
| 28 | + | // ## CSS nodes | |
| 29 | + | // | |
| 30 | + | // `AdwStatusPage` has a main CSS node with name `statuspage`. | |
| 31 | + | // | |
| 32 | + | // `AdwStatusPage` can use the | |
| 33 | + | // [`.compact`](style-classes.html#compact-status-page) style class for when it | |
| 34 | + | // needs to fit into a small space such a sidebar or a popover. | |
| 35 | + | type StatusPage struct { | |
| 36 | + | gtk.Widget | |
| 37 | + | } | |
| 38 | + | ||
| 39 | + | func StatusPageNewFromInternalPtr(ptr uintptr) *StatusPage { | |
| 40 | + | cls := &StatusPage{} | |
| 41 | + | cls.Ptr = ptr | |
| 42 | + | return cls | |
| 43 | + | } | |
| 44 | + | ||
| 45 | + | var xNewStatusPage func() uintptr | |
| 46 | + | ||
| 47 | + | // Creates a new `AdwStatusPage`. | |
| 48 | + | func NewStatusPage() *gtk.Widget { | |
| 49 | + | NewStatusPagePtr := xNewStatusPage() | |
| 50 | + | if NewStatusPagePtr == 0 { | |
| 51 | + | return nil | |
| 52 | + | } | |
| 53 | + | ||
| 54 | + | gobject.IncreaseRef(NewStatusPagePtr) | |
| 55 | + | ||
| 56 | + | NewStatusPageCls := >k.Widget{} | |
| 57 | + | NewStatusPageCls.Ptr = NewStatusPagePtr | |
| 58 | + | return NewStatusPageCls | |
| 59 | + | } | |
| 60 | + | ||
| 61 | + | var xStatusPageGetChild func(uintptr) uintptr | |
| 62 | + | ||
| 63 | + | // Gets the child widget of @self. | |
| 64 | + | func (x *StatusPage) GetChild() *gtk.Widget { | |
| 65 | + | ||
| 66 | + | GetChildPtr := xStatusPageGetChild(x.GoPointer()) | |
| 67 | + | if GetChildPtr == 0 { | |
| 68 | + | return nil | |
| 69 | + | } | |
| 70 | + | ||
| 71 | + | gobject.IncreaseRef(GetChildPtr) | |
| 72 | + | ||
| 73 | + | GetChildCls := >k.Widget{} | |
| 74 | + | GetChildCls.Ptr = GetChildPtr | |
| 75 | + | return GetChildCls | |
| 76 | + | ||
| 77 | + | } | |
| 78 | + | ||
| 79 | + | var xStatusPageGetDescription func(uintptr) string | |
| 80 | + | ||
| 81 | + | // Gets the description for @self. | |
| 82 | + | func (x *StatusPage) GetDescription() string { | |
| 83 | + | ||
| 84 | + | return xStatusPageGetDescription(x.GoPointer()) | |
| 85 | + | ||
| 86 | + | } | |
| 87 | + | ||
| 88 | + | var xStatusPageGetIconName func(uintptr) string | |
| 89 | + | ||
| 90 | + | // Gets the icon name for @self. | |
| 91 | + | func (x *StatusPage) GetIconName() string { | |
| 92 | + | ||
| 93 | + | return xStatusPageGetIconName(x.GoPointer()) | |
| 94 | + | ||
| 95 | + | } | |
| 96 | + | ||
| 97 | + | var xStatusPageGetPaintable func(uintptr) uintptr | |
| 98 | + | ||
| 99 | + | // Gets the paintable for @self. | |
| 100 | + | func (x *StatusPage) GetPaintable() *gdk.PaintableBase { | |
| 101 | + | ||
| 102 | + | GetPaintablePtr := xStatusPageGetPaintable(x.GoPointer()) | |
| 103 | + | if GetPaintablePtr == 0 { | |
| 104 | + | return nil | |
| 105 | + | } | |
| 106 | + | ||
| 107 | + | gobject.IncreaseRef(GetPaintablePtr) | |
| 108 | + | ||
| 109 | + | GetPaintableCls := &gdk.PaintableBase{} | |
| 110 | + | GetPaintableCls.Ptr = GetPaintablePtr | |
| 111 | + | return GetPaintableCls | |
| 112 | + | ||
| 113 | + | } | |
| 114 | + | ||
| 115 | + | var xStatusPageGetTitle func(uintptr) string | |
| 116 | + | ||
| 117 | + | // Gets the title for @self. | |
| 118 | + | func (x *StatusPage) GetTitle() string { | |
| 119 | + | ||
| 120 | + | return xStatusPageGetTitle(x.GoPointer()) | |
| 121 | + | ||
| 122 | + | } | |
| 123 | + | ||
| 124 | + | var xStatusPageSetChild func(uintptr, uintptr) | |
| 125 | + | ||
| 126 | + | // Sets the child widget of @self. | |
| 127 | + | func (x *StatusPage) SetChild(ChildVar *gtk.Widget) { | |
| 128 | + | ||
| 129 | + | xStatusPageSetChild(x.GoPointer(), ChildVar.GoPointer()) | |
| 130 | + | ||
| 131 | + | } | |
| 132 | + | ||
| 133 | + | var xStatusPageSetDescription func(uintptr, string) | |
| 134 | + | ||
| 135 | + | // Sets the description for @self. | |
| 136 | + | // | |
| 137 | + | // The description is displayed below the title. | |
| 138 | + | func (x *StatusPage) SetDescription(DescriptionVar string) { | |
| 139 | + | ||
| 140 | + | xStatusPageSetDescription(x.GoPointer(), DescriptionVar) | |
| 141 | + | ||
| 142 | + | } | |
| 143 | + | ||
| 144 | + | var xStatusPageSetIconName func(uintptr, string) | |
| 145 | + | ||
| 146 | + | // Sets the icon name for @self. | |
| 147 | + | // | |
| 148 | + | // Changing this will set [property@StatusPage:paintable] to `NULL`. | |
| 149 | + | func (x *StatusPage) SetIconName(IconNameVar string) { | |
| 150 | + | ||
| 151 | + | xStatusPageSetIconName(x.GoPointer(), IconNameVar) | |
| 152 | + | ||
| 153 | + | } | |
| 154 | + | ||
| 155 | + | var xStatusPageSetPaintable func(uintptr, uintptr) | |
| 156 | + | ||
| 157 | + | // Sets the paintable for @self. | |
| 158 | + | // | |
| 159 | + | // Changing this will set [property@StatusPage:icon-name] to `NULL`. | |
| 160 | + | func (x *StatusPage) SetPaintable(PaintableVar gdk.Paintable) { | |
| 161 | + | ||
| 162 | + | xStatusPageSetPaintable(x.GoPointer(), PaintableVar.GoPointer()) | |
| 163 | + | ||
| 164 | + | } | |
| 165 | + | ||
| 166 | + | var xStatusPageSetTitle func(uintptr, string) | |
| 167 | + | ||
| 168 | + | // Sets the title for @self. | |
| 169 | + | // | |
| 170 | + | // The title is displayed below the icon. | |
| 171 | + | func (x *StatusPage) SetTitle(TitleVar string) { | |
| 172 | + | ||
| 173 | + | xStatusPageSetTitle(x.GoPointer(), TitleVar) | |
| 174 | + | ||
| 175 | + | } | |
| 176 | + | ||
| 177 | + | func (c *StatusPage) GoPointer() uintptr { | |
| 178 | + | return c.Ptr | |
| 179 | + | } | |
| 180 | + | ||
| 181 | + | func (c *StatusPage) SetGoPointer(ptr uintptr) { | |
| 182 | + | c.Ptr = ptr | |
| 183 | + | } | |
| 184 | + | ||
| 185 | + | // Retrieves the `GtkAccessibleRole` for the given `GtkAccessible`. | |
| 186 | + | func (x *StatusPage) GetAccessibleRole() gtk.AccessibleRole { | |
| 187 | + | ||
| 188 | + | return gtk.XGtkAccessibleGetAccessibleRole(x.GoPointer()) | |
| 189 | + | ||
| 190 | + | } | |
| 191 | + | ||
| 192 | + | // Resets the accessible @property to its default value. | |
| 193 | + | func (x *StatusPage) ResetProperty(PropertyVar gtk.AccessibleProperty) { | |
| 194 | + | ||
| 195 | + | gtk.XGtkAccessibleResetProperty(x.GoPointer(), PropertyVar) | |
| 196 | + | ||
| 197 | + | } | |
| 198 | + | ||
| 199 | + | // Resets the accessible @relation to its default value. | |
| 200 | + | func (x *StatusPage) ResetRelation(RelationVar gtk.AccessibleRelation) { | |
| 201 | + | ||
| 202 | + | gtk.XGtkAccessibleResetRelation(x.GoPointer(), RelationVar) | |
| 203 | + | ||
| 204 | + | } | |
| 205 | + | ||
| 206 | + | // Resets the accessible @state to its default value. | |
| 207 | + | func (x *StatusPage) ResetState(StateVar gtk.AccessibleState) { | |
| 208 | + | ||
| 209 | + | gtk.XGtkAccessibleResetState(x.GoPointer(), StateVar) | |
| 210 | + | ||
| 211 | + | } | |
| 212 | + | ||
| 213 | + | // Updates a list of accessible properties. | |
| 214 | + | // | |
| 215 | + | // See the [enum@Gtk.AccessibleProperty] documentation for the | |
| 216 | + | // value types of accessible properties. | |
| 217 | + | // | |
| 218 | + | // This function should be called by `GtkWidget` types whenever | |
| 219 | + | // an accessible property change must be communicated to assistive | |
| 220 | + | // technologies. | |
| 221 | + | // | |
| 222 | + | // Example: | |
| 223 | + | // ```c | |
| 224 | + | // value = gtk_adjustment_get_value (adjustment); | |
| 225 | + | // gtk_accessible_update_property (GTK_ACCESSIBLE (spin_button), | |
| 226 | + | // | |
| 227 | + | // GTK_ACCESSIBLE_PROPERTY_VALUE_NOW, value, | |
| 228 | + | // -1); | |
| 229 | + | // | |
| 230 | + | // ``` | |
| 231 | + | func (x *StatusPage) UpdateProperty(FirstPropertyVar gtk.AccessibleProperty, varArgs ...interface{}) { | |
| 232 | + | ||
| 233 | + | gtk.XGtkAccessibleUpdateProperty(x.GoPointer(), FirstPropertyVar, varArgs...) | |
| 234 | + | ||
| 235 | + | } | |
| 236 | + | ||
| 237 | + | // Updates an array of accessible properties. | |
| 238 | + | // | |
| 239 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 240 | + | // property change must be communicated to assistive technologies. | |
| 241 | + | // | |
| 242 | + | // This function is meant to be used by language bindings. | |
| 243 | + | func (x *StatusPage) UpdatePropertyValue(NPropertiesVar int32, PropertiesVar uintptr, ValuesVar uintptr) { | |
| 244 | + | ||
| 245 | + | gtk.XGtkAccessibleUpdatePropertyValue(x.GoPointer(), NPropertiesVar, PropertiesVar, ValuesVar) | |
| 246 | + | ||
| 247 | + | } | |
| 248 | + | ||
| 249 | + | // Updates a list of accessible relations. | |
| 250 | + | // | |
| 251 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 252 | + | // relation change must be communicated to assistive technologies. | |
| 253 | + | // | |
| 254 | + | // If the [enum@Gtk.AccessibleRelation] requires a list of references, | |
| 255 | + | // you should pass each reference individually, followed by %NULL, e.g. | |
| 256 | + | // | |
| 257 | + | // ```c | |
| 258 | + | // gtk_accessible_update_relation (accessible, | |
| 259 | + | // | |
| 260 | + | // GTK_ACCESSIBLE_RELATION_CONTROLS, | |
| 261 | + | // ref1, NULL, | |
| 262 | + | // GTK_ACCESSIBLE_RELATION_LABELLED_BY, | |
| 263 | + | // ref1, ref2, ref3, NULL, | |
| 264 | + | // -1); | |
| 265 | + | // | |
| 266 | + | // ``` | |
| 267 | + | func (x *StatusPage) UpdateRelation(FirstRelationVar gtk.AccessibleRelation, varArgs ...interface{}) { | |
| 268 | + | ||
| 269 | + | gtk.XGtkAccessibleUpdateRelation(x.GoPointer(), FirstRelationVar, varArgs...) | |
| 270 | + | ||
| 271 | + | } | |
| 272 | + | ||
| 273 | + | // Updates an array of accessible relations. | |
| 274 | + | // | |
| 275 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 276 | + | // relation change must be communicated to assistive technologies. | |
| 277 | + | // | |
| 278 | + | // This function is meant to be used by language bindings. | |
| 279 | + | func (x *StatusPage) UpdateRelationValue(NRelationsVar int32, RelationsVar uintptr, ValuesVar uintptr) { | |
| 280 | + | ||
| 281 | + | gtk.XGtkAccessibleUpdateRelationValue(x.GoPointer(), NRelationsVar, RelationsVar, ValuesVar) | |
| 282 | + | ||
| 283 | + | } | |
| 284 | + | ||
| 285 | + | // Updates a list of accessible states. See the [enum@Gtk.AccessibleState] | |
| 286 | + | // documentation for the value types of accessible states. | |
| 287 | + | // | |
| 288 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 289 | + | // state change must be communicated to assistive technologies. | |
| 290 | + | // | |
| 291 | + | // Example: | |
| 292 | + | // ```c | |
| 293 | + | // value = GTK_ACCESSIBLE_TRISTATE_MIXED; | |
| 294 | + | // gtk_accessible_update_state (GTK_ACCESSIBLE (check_button), | |
| 295 | + | // | |
| 296 | + | // GTK_ACCESSIBLE_STATE_CHECKED, value, | |
| 297 | + | // -1); | |
| 298 | + | // | |
| 299 | + | // ``` | |
| 300 | + | func (x *StatusPage) UpdateState(FirstStateVar gtk.AccessibleState, varArgs ...interface{}) { | |
| 301 | + | ||
| 302 | + | gtk.XGtkAccessibleUpdateState(x.GoPointer(), FirstStateVar, varArgs...) | |
| 303 | + | ||
| 304 | + | } | |
| 305 | + | ||
| 306 | + | // Updates an array of accessible states. | |
| 307 | + | // | |
| 308 | + | // This function should be called by `GtkWidget` types whenever an accessible | |
| 309 | + | // state change must be communicated to assistive technologies. | |
| 310 | + | // | |
| 311 | + | // This function is meant to be used by language bindings. | |
| 312 | + | func (x *StatusPage) UpdateStateValue(NStatesVar int32, StatesVar uintptr, ValuesVar uintptr) { | |
| 313 | + | ||
| 314 | + | gtk.XGtkAccessibleUpdateStateValue(x.GoPointer(), NStatesVar, StatesVar, ValuesVar) | |
| 315 | + | ||
| 316 | + | } | |
| 317 | + | ||
| 318 | + | // Gets the ID of the @buildable object. | |
| 319 | + | // | |
| 320 | + | // `GtkBuilder` sets the name based on the ID attribute | |
| 321 | + | // of the <object> tag used to construct the @buildable. | |
| 322 | + | func (x *StatusPage) GetBuildableId() string { | |
| 323 | + | ||
| 324 | + | return gtk.XGtkBuildableGetBuildableId(x.GoPointer()) | |
| 325 | + | ||
| 326 | + | } | |
| 327 | + | ||
| 328 | + | func init() { | |
| 329 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 330 | + | if err != nil { | |
| 331 | + | panic(err) | |
| 332 | + | } | |
| 333 | + | ||
| 334 | + | core.PuregoSafeRegister(&xNewStatusPage, lib, "adw_status_page_new") | |
| 335 | + | ||
| 336 | + | core.PuregoSafeRegister(&xStatusPageGetChild, lib, "adw_status_page_get_child") | |
| 337 | + | core.PuregoSafeRegister(&xStatusPageGetDescription, lib, "adw_status_page_get_description") | |
| 338 | + | core.PuregoSafeRegister(&xStatusPageGetIconName, lib, "adw_status_page_get_icon_name") | |
| 339 | + | core.PuregoSafeRegister(&xStatusPageGetPaintable, lib, "adw_status_page_get_paintable") | |
| 340 | + | core.PuregoSafeRegister(&xStatusPageGetTitle, lib, "adw_status_page_get_title") | |
| 341 | + | core.PuregoSafeRegister(&xStatusPageSetChild, lib, "adw_status_page_set_child") | |
| 342 | + | core.PuregoSafeRegister(&xStatusPageSetDescription, lib, "adw_status_page_set_description") | |
| 343 | + | core.PuregoSafeRegister(&xStatusPageSetIconName, lib, "adw_status_page_set_icon_name") | |
| 344 | + | core.PuregoSafeRegister(&xStatusPageSetPaintable, lib, "adw_status_page_set_paintable") | |
| 345 | + | core.PuregoSafeRegister(&xStatusPageSetTitle, lib, "adw_status_page_set_title") | |
| 346 | + | ||
| 347 | + | } | |
A v4/adw/adw-style-manager.go +180 -0 collapsed to keep the page light
A v4/adw/adw-swipe-tracker.go +258 -0 collapsed to keep the page light
A v4/adw/adw-swipeable.go +109 -0
| @@ -0,0 +1,109 @@ | |||
| 1 | + | // Package adw was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package adw | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/gdk" | |
| 8 | + | ) | |
| 9 | + | ||
| 10 | + | // An interface for swipeable widgets. | |
| 11 | + | type SwipeableInterface struct { | |
| 12 | + | Parent uintptr | |
| 13 | + | ||
| 14 | + | Padding uintptr | |
| 15 | + | } | |
| 16 | + | ||
| 17 | + | // An interface for swipeable widgets. | |
| 18 | + | // | |
| 19 | + | // The `AdwSwipeable` interface is implemented by all swipeable widgets. | |
| 20 | + | // | |
| 21 | + | // See [class@SwipeTracker] for details about implementing it. | |
| 22 | + | type Swipeable interface { | |
| 23 | + | GoPointer() uintptr | |
| 24 | + | SetGoPointer(uintptr) | |
| 25 | + | GetCancelProgress() float64 | |
| 26 | + | GetDistance() float64 | |
| 27 | + | GetProgress() float64 | |
| 28 | + | GetSnapPoints(NSnapPointsVar int32) uintptr | |
| 29 | + | GetSwipeArea(NavigationDirectionVar NavigationDirection, IsDragVar bool, RectVar *gdk.Rectangle) | |
| 30 | + | } | |
| 31 | + | type SwipeableBase struct { | |
| 32 | + | Ptr uintptr | |
| 33 | + | } | |
| 34 | + | ||
| 35 | + | func (x *SwipeableBase) GoPointer() uintptr { | |
| 36 | + | return x.Ptr | |
| 37 | + | } | |
| 38 | + | ||
| 39 | + | func (x *SwipeableBase) SetGoPointer(ptr uintptr) { | |
| 40 | + | x.Ptr = ptr | |
| 41 | + | } | |
| 42 | + | ||
| 43 | + | // Gets the progress @self will snap back to after the gesture is canceled. | |
| 44 | + | func (x *SwipeableBase) GetCancelProgress() float64 { | |
| 45 | + | ||
| 46 | + | return XAdwSwipeableGetCancelProgress(x.GoPointer()) | |
| 47 | + | ||
| 48 | + | } | |
| 49 | + | ||
| 50 | + | // Gets the swipe distance of @self. | |
| 51 | + | // | |
| 52 | + | // This corresponds to how many pixels 1 unit represents. | |
| 53 | + | func (x *SwipeableBase) GetDistance() float64 { | |
| 54 | + | ||
| 55 | + | return XAdwSwipeableGetDistance(x.GoPointer()) | |
| 56 | + | ||
| 57 | + | } | |
| 58 | + | ||
| 59 | + | // Gets the current progress of @self. | |
| 60 | + | func (x *SwipeableBase) GetProgress() float64 { | |
| 61 | + | ||
| 62 | + | return XAdwSwipeableGetProgress(x.GoPointer()) | |
| 63 | + | ||
| 64 | + | } | |
| 65 | + | ||
| 66 | + | // Gets the snap points of @self. | |
| 67 | + | // | |
| 68 | + | // Each snap point represents a progress value that is considered acceptable to | |
| 69 | + | // end the swipe on. | |
| 70 | + | func (x *SwipeableBase) GetSnapPoints(NSnapPointsVar int32) uintptr { | |
| 71 | + | ||
| 72 | + | return XAdwSwipeableGetSnapPoints(x.GoPointer(), NSnapPointsVar) | |
| 73 | + | ||
| 74 | + | } | |
| 75 | + | ||
| 76 | + | // Gets the area @self can start a swipe from for the given direction and | |
| 77 | + | // gesture type. | |
| 78 | + | // | |
| 79 | + | // This can be used to restrict swipes to only be possible from a certain area, | |
| 80 | + | // for example, to only allow edge swipes, or to have a draggable element and | |
| 81 | + | // ignore swipes elsewhere. | |
| 82 | + | // | |
| 83 | + | // If not implemented, the default implementation returns the allocation of | |
| 84 | + | // @self, allowing swipes from anywhere. | |
| 85 | + | func (x *SwipeableBase) GetSwipeArea(NavigationDirectionVar NavigationDirection, IsDragVar bool, RectVar *gdk.Rectangle) { | |
| 86 | + | ||
| 87 | + | XAdwSwipeableGetSwipeArea(x.GoPointer(), NavigationDirectionVar, IsDragVar, RectVar) | |
| 88 | + | ||
| 89 | + | } | |
| 90 | + | ||
| 91 | + | var XAdwSwipeableGetCancelProgress func(uintptr) float64 | |
| 92 | + | var XAdwSwipeableGetDistance func(uintptr) float64 | |
| 93 | + | var XAdwSwipeableGetProgress func(uintptr) float64 | |
| 94 | + | var XAdwSwipeableGetSnapPoints func(uintptr, int32) uintptr | |
| 95 | + | var XAdwSwipeableGetSwipeArea func(uintptr, NavigationDirection, bool, *gdk.Rectangle) | |
| 96 | + | ||
| 97 | + | func init() { | |
| 98 | + | lib, err := purego.Dlopen(core.GetPath("ADW"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 99 | + | if err != nil { | |
| 100 | + | panic(err) | |
| 101 | + | } | |
| 102 | + | ||
| 103 | + | core.PuregoSafeRegister(&XAdwSwipeableGetCancelProgress, lib, "adw_swipeable_get_cancel_progress") | |
| 104 | + | core.PuregoSafeRegister(&XAdwSwipeableGetDistance, lib, "adw_swipeable_get_distance") | |
| 105 | + | core.PuregoSafeRegister(&XAdwSwipeableGetProgress, lib, "adw_swipeable_get_progress") | |
| 106 | + | core.PuregoSafeRegister(&XAdwSwipeableGetSnapPoints, lib, "adw_swipeable_get_snap_points") | |
| 107 | + | core.PuregoSafeRegister(&XAdwSwipeableGetSwipeArea, lib, "adw_swipeable_get_swipe_area") | |
| 108 | + | ||
| 109 | + | } | |
A v4/adw/adw-tab-bar.go +485 -0 collapsed to keep the page light
A v4/adw/adw-tab-button.go +373 -0 collapsed to keep the page light
A v4/adw/adw-tab-overview.go +601 -0 collapsed to keep the page light
A v4/adw/adw-tab-view.go +1637 -0 collapsed to keep the page light
A v4/adw/adw-timed-animation.go +232 -0 collapsed to keep the page light
A v4/adw/adw-toast-overlay.go +292 -0 collapsed to keep the page light
A v4/adw/adw-toast.go +484 -0 collapsed to keep the page light
A v4/adw/adw-version.go +66 -0 collapsed to keep the page light
A v4/adw/adw-view-stack.go +842 -0 collapsed to keep the page light
A v4/adw/adw-view-switcher-bar.go +308 -0 collapsed to keep the page light
A v4/adw/adw-view-switcher-title.go +379 -0 collapsed to keep the page light
A v4/adw/adw-view-switcher.go +290 -0 collapsed to keep the page light
A v4/adw/adw-window-title.go +261 -0 collapsed to keep the page light
A v4/adw/adw-window.go +382 -0 collapsed to keep the page light
A v4/cairo/main.go +510 -0 collapsed to keep the page light
A v4/gdk/gdkapplaunchcontext.go +149 -0 collapsed to keep the page light
A v4/gdk/gdkcairo.go +101 -0 collapsed to keep the page light
A v4/gdk/gdkcairocontext.go +58 -0 collapsed to keep the page light
A v4/gdk/gdkclipboard.go +378 -0 collapsed to keep the page light
A v4/gdk/gdkcontentdeserializer.go +267 -0 collapsed to keep the page light
A v4/gdk/gdkcontentformats.go +54 -0 collapsed to keep the page light
A v4/gdk/gdkcontentprovider.go +231 -0 collapsed to keep the page light
A v4/gdk/gdkcontentserializer.go +268 -0 collapsed to keep the page light
A v4/gdk/gdkcursor.go +205 -0 collapsed to keep the page light
A v4/gdk/gdkdevice.go +375 -0 collapsed to keep the page light
A v4/gdk/gdkdevicepad.go +112 -0 collapsed to keep the page light
A v4/gdk/gdkdevicetool.go +113 -0 collapsed to keep the page light
A v4/gdk/gdkdisplay.go +564 -0 collapsed to keep the page light
A v4/gdk/gdkdisplaymanager.go +196 -0 collapsed to keep the page light
A v4/gdk/gdkdrag.go +274 -0 collapsed to keep the page light
A v4/gdk/gdkdragsurface.go +48 -0
| @@ -0,0 +1,48 @@ | |||
| 1 | + | // Package gdk was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package gdk | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | ) | |
| 8 | + | ||
| 9 | + | // The `GdkDragSurfaceInterface` implementation is private to GDK. | |
| 10 | + | type DragSurfaceInterface struct { | |
| 11 | + | } | |
| 12 | + | ||
| 13 | + | // A `GdkDragSurface` is an interface for surfaces used during DND. | |
| 14 | + | type DragSurface interface { | |
| 15 | + | GoPointer() uintptr | |
| 16 | + | SetGoPointer(uintptr) | |
| 17 | + | Present(WidthVar int32, HeightVar int32) bool | |
| 18 | + | } | |
| 19 | + | type DragSurfaceBase struct { | |
| 20 | + | Ptr uintptr | |
| 21 | + | } | |
| 22 | + | ||
| 23 | + | func (x *DragSurfaceBase) GoPointer() uintptr { | |
| 24 | + | return x.Ptr | |
| 25 | + | } | |
| 26 | + | ||
| 27 | + | func (x *DragSurfaceBase) SetGoPointer(ptr uintptr) { | |
| 28 | + | x.Ptr = ptr | |
| 29 | + | } | |
| 30 | + | ||
| 31 | + | // Present @drag_surface. | |
| 32 | + | func (x *DragSurfaceBase) Present(WidthVar int32, HeightVar int32) bool { | |
| 33 | + | ||
| 34 | + | return XGdkDragSurfacePresent(x.GoPointer(), WidthVar, HeightVar) | |
| 35 | + | ||
| 36 | + | } | |
| 37 | + | ||
| 38 | + | var XGdkDragSurfacePresent func(uintptr, int32, int32) bool | |
| 39 | + | ||
| 40 | + | func init() { | |
| 41 | + | lib, err := purego.Dlopen(core.GetPath("GDK"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 42 | + | if err != nil { | |
| 43 | + | panic(err) | |
| 44 | + | } | |
| 45 | + | ||
| 46 | + | core.PuregoSafeRegister(&XGdkDragSurfacePresent, lib, "gdk_drag_surface_present") | |
| 47 | + | ||
| 48 | + | } | |
A v4/gdk/gdkdrawcontext.go +164 -0 collapsed to keep the page light
A v4/gdk/gdkdrop.go +264 -0 collapsed to keep the page light
A v4/gdk/gdkenums.go +255 -0 collapsed to keep the page light
A v4/gdk/gdkevents.go +1222 -0 collapsed to keep the page light
A v4/gdk/gdkframeclock.go +351 -0 collapsed to keep the page light
A v4/gdk/gdkframetimings.go +13 -0 collapsed to keep the page light
A v4/gdk/gdkglcontext.go +399 -0 collapsed to keep the page light
A v4/gdk/gdkgltexture.go +296 -0 collapsed to keep the page light
A v4/gdk/gdkkeys.go +120 -0 collapsed to keep the page light
A v4/gdk/gdkmemorytexture.go +280 -0 collapsed to keep the page light
A v4/gdk/gdkmonitor.go +222 -0 collapsed to keep the page light
A v4/gdk/gdkpaintable.go +301 -0 collapsed to keep the page light
A v4/gdk/gdkpango.go +60 -0 collapsed to keep the page light
A v4/gdk/gdkpixbuf.go +61 -0 collapsed to keep the page light
A v4/gdk/gdkpopup.go +143 -0 collapsed to keep the page light
A v4/gdk/gdkpopuplayout.go +77 -0 collapsed to keep the page light
A v4/gdk/gdkrgba.go +21 -0 collapsed to keep the page light
A v4/gdk/gdkseat.go +202 -0 collapsed to keep the page light
A v4/gdk/gdksnapshot.go +28 -0 collapsed to keep the page light
A v4/gdk/gdksurface.go +566 -0 collapsed to keep the page light
A v4/gdk/gdktexture.go +536 -0 collapsed to keep the page light
A v4/gdk/gdktoplevel.go +399 -0 collapsed to keep the page light
A v4/gdk/gdktoplevellayout.go +14 -0 collapsed to keep the page light
A v4/gdk/gdktoplevelsize.go +29 -0 collapsed to keep the page light
A v4/gdk/gdktypes.go +71 -0 collapsed to keep the page light
A v4/gdk/gdkvulkancontext.go +94 -0 collapsed to keep the page light
A v4/gdk/main.go +53 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf-animation.go +405 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf-core.go +86 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf-io.go +245 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf-loader.go +359 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf-simple-anim.go +86 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf-transform.go +59 -0 collapsed to keep the page light
A v4/gdkpixbuf/gdk-pixbuf.go +1394 -0 collapsed to keep the page light
A v4/gdkpixbuf/main.go +76 -0 collapsed to keep the page light
A v4/gio/gaction.go +276 -0 collapsed to keep the page light
A v4/gio/gactiongroup.go +357 -0 collapsed to keep the page light
A v4/gio/gactionmap.go +168 -0 collapsed to keep the page light
A v4/gio/gappinfo.go +777 -0 collapsed to keep the page light
A v4/gio/gapplication.go +1388 -0 collapsed to keep the page light
A v4/gio/gapplicationcommandline.go +463 -0 collapsed to keep the page light
A v4/gio/gasyncinitable.go +237 -0 collapsed to keep the page light
A v4/gio/gasyncresult.go +186 -0 collapsed to keep the page light
A v4/gio/gbufferedinputstream.go +281 -0 collapsed to keep the page light
A v4/gio/gbufferedoutputstream.go +187 -0 collapsed to keep the page light
A v4/gio/gcancellable.go +362 -0 collapsed to keep the page light
A v4/gio/gcharsetconverter.go +228 -0 collapsed to keep the page light
A v4/gio/gcontenttype.go +240 -0 collapsed to keep the page light
A v4/gio/gconverter.go +150 -0 collapsed to keep the page light
A v4/gio/gconverterinputstream.go +141 -0 collapsed to keep the page light
A v4/gio/gconverteroutputstream.go +167 -0 collapsed to keep the page light
A v4/gio/gcredentials.go +194 -0 collapsed to keep the page light
A v4/gio/gdatagrambased.go +282 -0 collapsed to keep the page light
A v4/gio/gdatainputstream.go +451 -0 collapsed to keep the page light
A v4/gio/gdataoutputstream.go +217 -0 collapsed to keep the page light
A v4/gio/gdbusaddress.go +140 -0 collapsed to keep the page light
A v4/gio/gdbusconnection.go +277 -0 collapsed to keep the page light
A v4/gio/gdbuserror.go +156 -0 collapsed to keep the page light
A v4/gio/gdbusinterface.go +105 -0 collapsed to keep the page light
A v4/gio/gdbusinterfaceskeleton.go +298 -0 collapsed to keep the page light
A v4/gio/gdbusintrospection.go +114 -0 collapsed to keep the page light
A v4/gio/gdbusnameowning.go +134 -0 collapsed to keep the page light
A v4/gio/gdbusnamewatching.go +115 -0 collapsed to keep the page light
A v4/gio/gdbusobject.go +81 -0 collapsed to keep the page light
A v4/gio/gdbusobjectmanager.go +101 -0 collapsed to keep the page light
A v4/gio/gdbusobjectmanagerclient.go +437 -0 collapsed to keep the page light
A v4/gio/gdbusobjectmanagerserver.go +217 -0 collapsed to keep the page light
A v4/gio/gdbusobjectproxy.go +115 -0 collapsed to keep the page light
A v4/gio/gdbusobjectskeleton.go +176 -0 collapsed to keep the page light
A v4/gio/gdbusproxy.go +712 -0 collapsed to keep the page light
A v4/gio/gdbusutils.go +213 -0 collapsed to keep the page light
A v4/gio/gdebugcontroller.go +73 -0 collapsed to keep the page light
A v4/gio/gdebugcontrollerdbus.go +287 -0 collapsed to keep the page light
A v4/gio/gdesktopappinfo.go +663 -0 collapsed to keep the page light
A v4/gio/gdrive.go +388 -0 collapsed to keep the page light
A v4/gio/gdtlsclientconnection.go +130 -0 collapsed to keep the page light
A v4/gio/gdtlsconnection.go +536 -0 collapsed to keep the page light
A v4/gio/gdtlsserverconnection.go +55 -0 collapsed to keep the page light
A v4/gio/gemblem.go +145 -0 collapsed to keep the page light
A v4/gio/gemblemedicon.go +154 -0 collapsed to keep the page light
A v4/gio/gfile.go +2758 -0 large diff (2758 lines changed): collapsed
A v4/gio/gfileattribute.go +19 -0 collapsed to keep the page light
A v4/gio/gfiledescriptorbased.go +54 -0 collapsed to keep the page light
A v4/gio/gfileenumerator.go +313 -0 collapsed to keep the page light
A v4/gio/gfileicon.go +154 -0 collapsed to keep the page light
A v4/gio/gfileinfo.go +876 -0 collapsed to keep the page light
A v4/gio/gfileinputstream.go +166 -0 collapsed to keep the page light
A v4/gio/gfileiostream.go +197 -0 collapsed to keep the page light
A v4/gio/gfilemonitor.go +142 -0 collapsed to keep the page light
A v4/gio/gfilenamecompleter.go +101 -0 collapsed to keep the page light
A v4/gio/gfileoutputstream.go +191 -0 collapsed to keep the page light
A v4/gio/gfilterinputstream.go +83 -0 collapsed to keep the page light
A v4/gio/gfilteroutputstream.go +83 -0 collapsed to keep the page light
A v4/gio/gicon.go +167 -0 collapsed to keep the page light
A v4/gio/ginetaddress.go +272 -0 collapsed to keep the page light
A v4/gio/ginetaddressmask.go +194 -0 collapsed to keep the page light
A v4/gio/ginetsocketaddress.go +176 -0 collapsed to keep the page light
A v4/gio/ginitable.go +130 -0 collapsed to keep the page light
A v4/gio/ginputstream.go +430 -0 collapsed to keep the page light
A v4/gio/gio-2.0.go +5784 -0
| @@ -0,0 +1,5784 @@ | |||
| 1 | + | // Package gio was automatically generated by github.com/jwijenbergh/puregotk DO NOT EDIT | |
| 2 | + | package gio | |
| 3 | + | ||
| 4 | + | import ( | |
| 5 | + | "github.com/jwijenbergh/purego" | |
| 6 | + | "github.com/jwijenbergh/puregotk/internal/core" | |
| 7 | + | "github.com/jwijenbergh/puregotk/v4/glib" | |
| 8 | + | "github.com/jwijenbergh/puregotk/v4/gobject" | |
| 9 | + | ) | |
| 10 | + | ||
| 11 | + | var xIoErrorQuark func() glib.Quark | |
| 12 | + | ||
| 13 | + | // Gets the GIO Error Quark. | |
| 14 | + | func IoErrorQuark() glib.Quark { | |
| 15 | + | ||
| 16 | + | return xIoErrorQuark() | |
| 17 | + | ||
| 18 | + | } | |
| 19 | + | ||
| 20 | + | var xResolverErrorQuark func() glib.Quark | |
| 21 | + | ||
| 22 | + | // Gets the #GResolver Error Quark. | |
| 23 | + | func ResolverErrorQuark() glib.Quark { | |
| 24 | + | ||
| 25 | + | return xResolverErrorQuark() | |
| 26 | + | ||
| 27 | + | } | |
| 28 | + | ||
| 29 | + | var xResourceErrorQuark func() glib.Quark | |
| 30 | + | ||
| 31 | + | // Gets the #GResource Error Quark. | |
| 32 | + | func ResourceErrorQuark() glib.Quark { | |
| 33 | + | ||
| 34 | + | return xResourceErrorQuark() | |
| 35 | + | ||
| 36 | + | } | |
| 37 | + | ||
| 38 | + | var xTlsChannelBindingErrorQuark func() glib.Quark | |
| 39 | + | ||
| 40 | + | // Gets the TLS channel binding error quark. | |
| 41 | + | func TlsChannelBindingErrorQuark() glib.Quark { | |
| 42 | + | ||
| 43 | + | return xTlsChannelBindingErrorQuark() | |
| 44 | + | ||
| 45 | + | } | |
| 46 | + | ||
| 47 | + | var xTlsErrorQuark func() glib.Quark | |
| 48 | + | ||
| 49 | + | // Gets the TLS error quark. | |
| 50 | + | func TlsErrorQuark() glib.Quark { | |
| 51 | + | ||
| 52 | + | return xTlsErrorQuark() | |
| 53 | + | ||
| 54 | + | } | |
| 55 | + | ||
| 56 | + | // #GAppInfoMonitor is a very simple object used for monitoring the app | |
| 57 | + | // info database for changes (ie: newly installed or removed | |
| 58 | + | // applications). | |
| 59 | + | // | |
| 60 | + | // Call g_app_info_monitor_get() to get a #GAppInfoMonitor and connect | |
| 61 | + | // to the "changed" signal. | |
| 62 | + | // | |
| 63 | + | // In the usual case, applications should try to make note of the change | |
| 64 | + | // (doing things like invalidating caches) but not act on it. In | |
| 65 | + | // particular, applications should avoid making calls to #GAppInfo APIs | |
| 66 | + | // in response to the change signal, deferring these until the time that | |
| 67 | + | // the data is actually required. The exception to this case is when | |
| 68 | + | // application information is actually being displayed on the screen | |
| 69 | + | // (eg: during a search or when the list of all applications is shown). | |
| 70 | + | // The reason for this is that changes to the list of installed | |
| 71 | + | // applications often come in groups (like during system updates) and | |
| 72 | + | // rescanning the list on every change is pointless and expensive. | |
| 73 | + | type AppInfoMonitor struct { | |
| 74 | + | gobject.Object | |
| 75 | + | } | |
| 76 | + | ||
| 77 | + | func AppInfoMonitorNewFromInternalPtr(ptr uintptr) *AppInfoMonitor { | |
| 78 | + | cls := &AppInfoMonitor{} | |
| 79 | + | cls.Ptr = ptr | |
| 80 | + | return cls | |
| 81 | + | } | |
| 82 | + | ||
| 83 | + | func (c *AppInfoMonitor) GoPointer() uintptr { | |
| 84 | + | return c.Ptr | |
| 85 | + | } | |
| 86 | + | ||
| 87 | + | func (c *AppInfoMonitor) SetGoPointer(ptr uintptr) { | |
| 88 | + | c.Ptr = ptr | |
| 89 | + | } | |
| 90 | + | ||
| 91 | + | // Signal emitted when the app info database for changes (ie: newly installed | |
| 92 | + | // or removed applications). | |
| 93 | + | func (x *AppInfoMonitor) ConnectChanged(cb func(AppInfoMonitor)) { | |
| 94 | + | fcb := func(clsPtr uintptr) { | |
| 95 | + | fa := AppInfoMonitor{} | |
| 96 | + | fa.Ptr = clsPtr | |
| 97 | + | ||
| 98 | + | cb(fa) | |
| 99 | + | ||
| 100 | + | } | |
| 101 | + | gobject.ObjectConnect(x.GoPointer(), "signal::changed", purego.NewCallback(fcb)) | |
| 102 | + | } | |
| 103 | + | ||
| 104 | + | // #GBytesIcon specifies an image held in memory in a common format (usually | |
| 105 | + | // png) to be used as icon. | |
| 106 | + | type BytesIcon struct { | |
| 107 | + | gobject.Object | |
| 108 | + | } | |
| 109 | + | ||
| 110 | + | func BytesIconNewFromInternalPtr(ptr uintptr) *BytesIcon { | |
| 111 | + | cls := &BytesIcon{} | |
| 112 | + | cls.Ptr = ptr | |
| 113 | + | return cls | |
| 114 | + | } | |
| 115 | + | ||
| 116 | + | var xNewBytesIcon func(*glib.Bytes) uintptr | |
| 117 | + | ||
| 118 | + | // Creates a new icon for a bytes. | |
| 119 | + | // | |
| 120 | + | // This cannot fail, but loading and interpreting the bytes may fail later on | |
| 121 | + | // (for example, if g_loadable_icon_load() is called) if the image is invalid. | |
| 122 | + | func NewBytesIcon(BytesVar *glib.Bytes) *BytesIcon { | |
| 123 | + | NewBytesIconPtr := xNewBytesIcon(BytesVar) | |
| 124 | + | if NewBytesIconPtr == 0 { | |
| 125 | + | return nil | |
| 126 | + | } | |
| 127 | + | ||
| 128 | + | NewBytesIconCls := &BytesIcon{} | |
| 129 | + | NewBytesIconCls.Ptr = NewBytesIconPtr | |
| 130 | + | return NewBytesIconCls | |
| 131 | + | } | |
| 132 | + | ||
| 133 | + | var xBytesIconGetBytes func(uintptr) *glib.Bytes | |
| 134 | + | ||
| 135 | + | // Gets the #GBytes associated with the given @icon. | |
| 136 | + | func (x *BytesIcon) GetBytes() *glib.Bytes { | |
| 137 | + | ||
| 138 | + | return xBytesIconGetBytes(x.GoPointer()) | |
| 139 | + | ||
| 140 | + | } | |
| 141 | + | ||
| 142 | + | func (c *BytesIcon) GoPointer() uintptr { | |
| 143 | + | return c.Ptr | |
| 144 | + | } | |
| 145 | + | ||
| 146 | + | func (c *BytesIcon) SetGoPointer(ptr uintptr) { | |
| 147 | + | c.Ptr = ptr | |
| 148 | + | } | |
| 149 | + | ||
| 150 | + | // Checks if two icons are equal. | |
| 151 | + | func (x *BytesIcon) Equal(Icon2Var Icon) bool { | |
| 152 | + | ||
| 153 | + | return XGIconEqual(x.GoPointer(), Icon2Var.GoPointer()) | |
| 154 | + | ||
| 155 | + | } | |
| 156 | + | ||
| 157 | + | // Serializes a #GIcon into a #GVariant. An equivalent #GIcon can be retrieved | |
| 158 | + | // back by calling g_icon_deserialize() on the returned value. | |
| 159 | + | // As serialization will avoid using raw icon data when possible, it only | |
| 160 | + | // makes sense to transfer the #GVariant between processes on the same machine, | |
| 161 | + | // (as opposed to over the network), and within the same file system namespace. | |
| 162 | + | func (x *BytesIcon) Serialize() *glib.Variant { | |
| 163 | + | ||
| 164 | + | return XGIconSerialize(x.GoPointer()) | |
| 165 | + | ||
| 166 | + | } | |
| 167 | + | ||
| 168 | + | // Generates a textual representation of @icon that can be used for | |
| 169 | + | // serialization such as when passing @icon to a different process or | |
| 170 | + | // saving it to persistent storage. Use g_icon_new_for_string() to | |
| 171 | + | // get @icon back from the returned string. | |
| 172 | + | // | |
| 173 | + | // The encoding of the returned string is proprietary to #GIcon except | |
| 174 | + | // in the following two cases | |
| 175 | + | // | |
| 176 | + | // - If @icon is a #GFileIcon, the returned string is a native path | |
| 177 | + | // (such as `/path/to/my icon.png`) without escaping | |
| 178 | + | // if the #GFile for @icon is a native file. If the file is not | |
| 179 | + | // native, the returned string is the result of g_file_get_uri() | |
| 180 | + | // (such as `sftp://path/to/my%20icon.png`). | |
| 181 | + | // | |
| 182 | + | // - If @icon is a #GThemedIcon with exactly one name and no fallbacks, | |
| 183 | + | // the encoding is simply the name (such as `network-server`). | |
| 184 | + | func (x *BytesIcon) ToString() string { | |
| 185 | + | ||
| 186 | + | return XGIconToString(x.GoPointer()) | |
| 187 | + | ||
| 188 | + | } | |
| 189 | + | ||
| 190 | + | // Loads a loadable icon. For the asynchronous version of this function, | |
| 191 | + | // see g_loadable_icon_load_async(). | |
| 192 | + | func (x *BytesIcon) Load(SizeVar int32, TypeVar string, CancellableVar *Cancellable) *InputStream { | |
| 193 | + | ||
| 194 | + | LoadPtr := XGLoadableIconLoad(x.GoPointer(), SizeVar, TypeVar, CancellableVar.GoPointer()) | |
| 195 | + | if LoadPtr == 0 { | |
| 196 | + | return nil | |
| 197 | + | } | |
| 198 | + | ||
| 199 | + | LoadCls := &InputStream{} | |
| 200 | + | LoadCls.Ptr = LoadPtr | |
| 201 | + | return LoadCls | |
| 202 | + | ||
| 203 | + | } | |
| 204 | + | ||
| 205 | + | // Loads an icon asynchronously. To finish this function, see | |
| 206 | + | // g_loadable_icon_load_finish(). For the synchronous, blocking | |
| 207 | + | // version of this function, see g_loadable_icon_load(). | |
| 208 | + | func (x *BytesIcon) LoadAsync(SizeVar int32, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 209 | + | ||
| 210 | + | XGLoadableIconLoadAsync(x.GoPointer(), SizeVar, CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 211 | + | ||
| 212 | + | } | |
| 213 | + | ||
| 214 | + | // Finishes an asynchronous icon load started in g_loadable_icon_load_async(). | |
| 215 | + | func (x *BytesIcon) LoadFinish(ResVar AsyncResult, TypeVar string) *InputStream { | |
| 216 | + | ||
| 217 | + | LoadFinishPtr := XGLoadableIconLoadFinish(x.GoPointer(), ResVar.GoPointer(), TypeVar) | |
| 218 | + | if LoadFinishPtr == 0 { | |
| 219 | + | return nil | |
| 220 | + | } | |
| 221 | + | ||
| 222 | + | LoadFinishCls := &InputStream{} | |
| 223 | + | LoadFinishCls.Ptr = LoadFinishPtr | |
| 224 | + | return LoadFinishCls | |
| 225 | + | ||
| 226 | + | } | |
| 227 | + | ||
| 228 | + | // #GDBusActionGroup is an implementation of the #GActionGroup | |
| 229 | + | // interface that can be used as a proxy for an action group | |
| 230 | + | // that is exported over D-Bus with g_dbus_connection_export_action_group(). | |
| 231 | + | type DBusActionGroup struct { | |
| 232 | + | gobject.Object | |
| 233 | + | } | |
| 234 | + | ||
| 235 | + | func DBusActionGroupNewFromInternalPtr(ptr uintptr) *DBusActionGroup { | |
| 236 | + | cls := &DBusActionGroup{} | |
| 237 | + | cls.Ptr = ptr | |
| 238 | + | return cls | |
| 239 | + | } | |
| 240 | + | ||
| 241 | + | func (c *DBusActionGroup) GoPointer() uintptr { | |
| 242 | + | return c.Ptr | |
| 243 | + | } | |
| 244 | + | ||
| 245 | + | func (c *DBusActionGroup) SetGoPointer(ptr uintptr) { | |
| 246 | + | c.Ptr = ptr | |
| 247 | + | } | |
| 248 | + | ||
| 249 | + | // Emits the #GActionGroup::action-added signal on @action_group. | |
| 250 | + | // | |
| 251 | + | // This function should only be called by #GActionGroup implementations. | |
| 252 | + | func (x *DBusActionGroup) ActionAdded(ActionNameVar string) { | |
| 253 | + | ||
| 254 | + | XGActionGroupActionAdded(x.GoPointer(), ActionNameVar) | |
| 255 | + | ||
| 256 | + | } | |
| 257 | + | ||
| 258 | + | // Emits the #GActionGroup::action-enabled-changed signal on @action_group. | |
| 259 | + | // | |
| 260 | + | // This function should only be called by #GActionGroup implementations. | |
| 261 | + | func (x *DBusActionGroup) ActionEnabledChanged(ActionNameVar string, EnabledVar bool) { | |
| 262 | + | ||
| 263 | + | XGActionGroupActionEnabledChanged(x.GoPointer(), ActionNameVar, EnabledVar) | |
| 264 | + | ||
| 265 | + | } | |
| 266 | + | ||
| 267 | + | // Emits the #GActionGroup::action-removed signal on @action_group. | |
| 268 | + | // | |
| 269 | + | // This function should only be called by #GActionGroup implementations. | |
| 270 | + | func (x *DBusActionGroup) ActionRemoved(ActionNameVar string) { | |
| 271 | + | ||
| 272 | + | XGActionGroupActionRemoved(x.GoPointer(), ActionNameVar) | |
| 273 | + | ||
| 274 | + | } | |
| 275 | + | ||
| 276 | + | // Emits the #GActionGroup::action-state-changed signal on @action_group. | |
| 277 | + | // | |
| 278 | + | // This function should only be called by #GActionGroup implementations. | |
| 279 | + | func (x *DBusActionGroup) ActionStateChanged(ActionNameVar string, StateVar *glib.Variant) { | |
| 280 | + | ||
| 281 | + | XGActionGroupActionStateChanged(x.GoPointer(), ActionNameVar, StateVar) | |
| 282 | + | ||
| 283 | + | } | |
| 284 | + | ||
| 285 | + | // Activate the named action within @action_group. | |
| 286 | + | // | |
| 287 | + | // If the action is expecting a parameter, then the correct type of | |
| 288 | + | // parameter must be given as @parameter. If the action is expecting no | |
| 289 | + | // parameters then @parameter must be %NULL. See | |
| 290 | + | // g_action_group_get_action_parameter_type(). | |
| 291 | + | // | |
| 292 | + | // If the #GActionGroup implementation supports asynchronous remote | |
| 293 | + | // activation over D-Bus, this call may return before the relevant | |
| 294 | + | // D-Bus traffic has been sent, or any replies have been received. In | |
| 295 | + | // order to block on such asynchronous activation calls, | |
| 296 | + | // g_dbus_connection_flush() should be called prior to the code, which | |
| 297 | + | // depends on the result of the action activation. Without flushing | |
| 298 | + | // the D-Bus connection, there is no guarantee that the action would | |
| 299 | + | // have been activated. | |
| 300 | + | // | |
| 301 | + | // The following code which runs in a remote app instance, shows an | |
| 302 | + | // example of a "quit" action being activated on the primary app | |
| 303 | + | // instance over D-Bus. Here g_dbus_connection_flush() is called | |
| 304 | + | // before `exit()`. Without g_dbus_connection_flush(), the "quit" action | |
| 305 | + | // may fail to be activated on the primary instance. | |
| 306 | + | // | |
| 307 | + | // |[<!-- language="C" --> | |
| 308 | + | // // call "quit" action on primary instance | |
| 309 | + | // g_action_group_activate_action (G_ACTION_GROUP (app), "quit", NULL); | |
| 310 | + | // | |
| 311 | + | // // make sure the action is activated now | |
| 312 | + | // g_dbus_connection_flush (...); | |
| 313 | + | // | |
| 314 | + | // g_debug ("application has been terminated. exiting."); | |
| 315 | + | // | |
| 316 | + | // exit (0); | |
| 317 | + | // ]| | |
| 318 | + | func (x *DBusActionGroup) ActivateAction(ActionNameVar string, ParameterVar *glib.Variant) { | |
| 319 | + | ||
| 320 | + | XGActionGroupActivateAction(x.GoPointer(), ActionNameVar, ParameterVar) | |
| 321 | + | ||
| 322 | + | } | |
| 323 | + | ||
| 324 | + | // Request for the state of the named action within @action_group to be | |
| 325 | + | // changed to @value. | |
| 326 | + | // | |
| 327 | + | // The action must be stateful and @value must be of the correct type. | |
| 328 | + | // See g_action_group_get_action_state_type(). | |
| 329 | + | // | |
| 330 | + | // This call merely requests a change. The action may refuse to change | |
| 331 | + | // its state or may change its state to something other than @value. | |
| 332 | + | // See g_action_group_get_action_state_hint(). | |
| 333 | + | // | |
| 334 | + | // If the @value GVariant is floating, it is consumed. | |
| 335 | + | func (x *DBusActionGroup) ChangeActionState(ActionNameVar string, ValueVar *glib.Variant) { | |
| 336 | + | ||
| 337 | + | XGActionGroupChangeActionState(x.GoPointer(), ActionNameVar, ValueVar) | |
| 338 | + | ||
| 339 | + | } | |
| 340 | + | ||
| 341 | + | // Checks if the named action within @action_group is currently enabled. | |
| 342 | + | // | |
| 343 | + | // An action must be enabled in order to be activated or in order to | |
| 344 | + | // have its state changed from outside callers. | |
| 345 | + | func (x *DBusActionGroup) GetActionEnabled(ActionNameVar string) bool { | |
| 346 | + | ||
| 347 | + | return XGActionGroupGetActionEnabled(x.GoPointer(), ActionNameVar) | |
| 348 | + | ||
| 349 | + | } | |
| 350 | + | ||
| 351 | + | // Queries the type of the parameter that must be given when activating | |
| 352 | + | // the named action within @action_group. | |
| 353 | + | // | |
| 354 | + | // When activating the action using g_action_group_activate_action(), | |
| 355 | + | // the #GVariant given to that function must be of the type returned | |
| 356 | + | // by this function. | |
| 357 | + | // | |
| 358 | + | // In the case that this function returns %NULL, you must not give any | |
| 359 | + | // #GVariant, but %NULL instead. | |
| 360 | + | // | |
| 361 | + | // The parameter type of a particular action will never change but it is | |
| 362 | + | // possible for an action to be removed and for a new action to be added | |
| 363 | + | // with the same name but a different parameter type. | |
| 364 | + | func (x *DBusActionGroup) GetActionParameterType(ActionNameVar string) *glib.VariantType { | |
| 365 | + | ||
| 366 | + | return XGActionGroupGetActionParameterType(x.GoPointer(), ActionNameVar) | |
| 367 | + | ||
| 368 | + | } | |
| 369 | + | ||
| 370 | + | // Queries the current state of the named action within @action_group. | |
| 371 | + | // | |
| 372 | + | // If the action is not stateful then %NULL will be returned. If the | |
| 373 | + | // action is stateful then the type of the return value is the type | |
| 374 | + | // given by g_action_group_get_action_state_type(). | |
| 375 | + | // | |
| 376 | + | // The return value (if non-%NULL) should be freed with | |
| 377 | + | // g_variant_unref() when it is no longer required. | |
| 378 | + | func (x *DBusActionGroup) GetActionState(ActionNameVar string) *glib.Variant { | |
| 379 | + | ||
| 380 | + | return XGActionGroupGetActionState(x.GoPointer(), ActionNameVar) | |
| 381 | + | ||
| 382 | + | } | |
| 383 | + | ||
| 384 | + | // Requests a hint about the valid range of values for the state of the | |
| 385 | + | // named action within @action_group. | |
| 386 | + | // | |
| 387 | + | // If %NULL is returned it either means that the action is not stateful | |
| 388 | + | // or that there is no hint about the valid range of values for the | |
| 389 | + | // state of the action. | |
| 390 | + | // | |
| 391 | + | // If a #GVariant array is returned then each item in the array is a | |
| 392 | + | // possible value for the state. If a #GVariant pair (ie: two-tuple) is | |
| 393 | + | // returned then the tuple specifies the inclusive lower and upper bound | |
| 394 | + | // of valid values for the state. | |
| 395 | + | // | |
| 396 | + | // In any case, the information is merely a hint. It may be possible to | |
| 397 | + | // have a state value outside of the hinted range and setting a value | |
| 398 | + | // within the range may fail. | |
| 399 | + | // | |
| 400 | + | // The return value (if non-%NULL) should be freed with | |
| 401 | + | // g_variant_unref() when it is no longer required. | |
| 402 | + | func (x *DBusActionGroup) GetActionStateHint(ActionNameVar string) *glib.Variant { | |
| 403 | + | ||
| 404 | + | return XGActionGroupGetActionStateHint(x.GoPointer(), ActionNameVar) | |
| 405 | + | ||
| 406 | + | } | |
| 407 | + | ||
| 408 | + | // Queries the type of the state of the named action within | |
| 409 | + | // @action_group. | |
| 410 | + | // | |
| 411 | + | // If the action is stateful then this function returns the | |
| 412 | + | // #GVariantType of the state. All calls to | |
| 413 | + | // g_action_group_change_action_state() must give a #GVariant of this | |
| 414 | + | // type and g_action_group_get_action_state() will return a #GVariant | |
| 415 | + | // of the same type. | |
| 416 | + | // | |
| 417 | + | // If the action is not stateful then this function will return %NULL. | |
| 418 | + | // In that case, g_action_group_get_action_state() will return %NULL | |
| 419 | + | // and you must not call g_action_group_change_action_state(). | |
| 420 | + | // | |
| 421 | + | // The state type of a particular action will never change but it is | |
| 422 | + | // possible for an action to be removed and for a new action to be added | |
| 423 | + | // with the same name but a different state type. | |
| 424 | + | func (x *DBusActionGroup) GetActionStateType(ActionNameVar string) *glib.VariantType { | |
| 425 | + | ||
| 426 | + | return XGActionGroupGetActionStateType(x.GoPointer(), ActionNameVar) | |
| 427 | + | ||
| 428 | + | } | |
| 429 | + | ||
| 430 | + | // Checks if the named action exists within @action_group. | |
| 431 | + | func (x *DBusActionGroup) HasAction(ActionNameVar string) bool { | |
| 432 | + | ||
| 433 | + | return XGActionGroupHasAction(x.GoPointer(), ActionNameVar) | |
| 434 | + | ||
| 435 | + | } | |
| 436 | + | ||
| 437 | + | // Lists the actions contained within @action_group. | |
| 438 | + | // | |
| 439 | + | // The caller is responsible for freeing the list with g_strfreev() when | |
| 440 | + | // it is no longer required. | |
| 441 | + | func (x *DBusActionGroup) ListActions() uintptr { | |
| 442 | + | ||
| 443 | + | return XGActionGroupListActions(x.GoPointer()) | |
| 444 | + | ||
| 445 | + | } | |
| 446 | + | ||
| 447 | + | // Queries all aspects of the named action within an @action_group. | |
| 448 | + | // | |
| 449 | + | // This function acquires the information available from | |
| 450 | + | // g_action_group_has_action(), g_action_group_get_action_enabled(), | |
| 451 | + | // g_action_group_get_action_parameter_type(), | |
| 452 | + | // g_action_group_get_action_state_type(), | |
| 453 | + | // g_action_group_get_action_state_hint() and | |
| 454 | + | // g_action_group_get_action_state() with a single function call. | |
| 455 | + | // | |
| 456 | + | // This provides two main benefits. | |
| 457 | + | // | |
| 458 | + | // The first is the improvement in efficiency that comes with not having | |
| 459 | + | // to perform repeated lookups of the action in order to discover | |
| 460 | + | // different things about it. The second is that implementing | |
| 461 | + | // #GActionGroup can now be done by only overriding this one virtual | |
| 462 | + | // function. | |
| 463 | + | // | |
| 464 | + | // The interface provides a default implementation of this function that | |
| 465 | + | // calls the individual functions, as required, to fetch the | |
| 466 | + | // information. The interface also provides default implementations of | |
| 467 | + | // those functions that call this function. All implementations, | |
| 468 | + | // therefore, must override either this function or all of the others. | |
| 469 | + | // | |
| 470 | + | // If the action exists, %TRUE is returned and any of the requested | |
| 471 | + | // fields (as indicated by having a non-%NULL reference passed in) are | |
| 472 | + | // filled. If the action doesn't exist, %FALSE is returned and the | |
| 473 | + | // fields may or may not have been modified. | |
| 474 | + | func (x *DBusActionGroup) QueryAction(ActionNameVar string, EnabledVar bool, ParameterTypeVar **glib.VariantType, StateTypeVar **glib.VariantType, StateHintVar **glib.Variant, StateVar **glib.Variant) bool { | |
| 475 | + | ||
| 476 | + | return XGActionGroupQueryAction(x.GoPointer(), ActionNameVar, EnabledVar, ParameterTypeVar, StateTypeVar, StateHintVar, StateVar) | |
| 477 | + | ||
| 478 | + | } | |
| 479 | + | ||
| 480 | + | // Activates the remote action. | |
| 481 | + | // | |
| 482 | + | // This is the same as g_action_group_activate_action() except that it | |
| 483 | + | // allows for provision of "platform data" to be sent along with the | |
| 484 | + | // activation request. This typically contains details such as the user | |
| 485 | + | // interaction timestamp or startup notification information. | |
| 486 | + | // | |
| 487 | + | // @platform_data must be non-%NULL and must have the type | |
| 488 | + | // %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed. | |
| 489 | + | func (x *DBusActionGroup) ActivateActionFull(ActionNameVar string, ParameterVar *glib.Variant, PlatformDataVar *glib.Variant) { | |
| 490 | + | ||
| 491 | + | XGRemoteActionGroupActivateActionFull(x.GoPointer(), ActionNameVar, ParameterVar, PlatformDataVar) | |
| 492 | + | ||
| 493 | + | } | |
| 494 | + | ||
| 495 | + | // Changes the state of a remote action. | |
| 496 | + | // | |
| 497 | + | // This is the same as g_action_group_change_action_state() except that | |
| 498 | + | // it allows for provision of "platform data" to be sent along with the | |
| 499 | + | // state change request. This typically contains details such as the | |
| 500 | + | // user interaction timestamp or startup notification information. | |
| 501 | + | // | |
| 502 | + | // @platform_data must be non-%NULL and must have the type | |
| 503 | + | // %G_VARIANT_TYPE_VARDICT. If it is floating, it will be consumed. | |
| 504 | + | func (x *DBusActionGroup) ChangeActionStateFull(ActionNameVar string, ValueVar *glib.Variant, PlatformDataVar *glib.Variant) { | |
| 505 | + | ||
| 506 | + | XGRemoteActionGroupChangeActionStateFull(x.GoPointer(), ActionNameVar, ValueVar, PlatformDataVar) | |
| 507 | + | ||
| 508 | + | } | |
| 509 | + | ||
| 510 | + | // The #GDBusAuthObserver type provides a mechanism for participating | |
| 511 | + | // in how a #GDBusServer (or a #GDBusConnection) authenticates remote | |
| 512 | + | // peers. Simply instantiate a #GDBusAuthObserver and connect to the | |
| 513 | + | // signals you are interested in. Note that new signals may be added | |
| 514 | + | // in the future | |
| 515 | + | // | |
| 516 | + | // ## Controlling Authentication Mechanisms | |
| 517 | + | // | |
| 518 | + | // By default, a #GDBusServer or server-side #GDBusConnection will allow | |
| 519 | + | // any authentication mechanism to be used. If you only | |
| 520 | + | // want to allow D-Bus connections with the `EXTERNAL` mechanism, | |
| 521 | + | // which makes use of credentials passing and is the recommended | |
| 522 | + | // mechanism for modern Unix platforms such as Linux and the BSD family, | |
| 523 | + | // you would use a signal handler like this: | |
| 524 | + | // | |
| 525 | + | // |[<!-- language="C" --> | |
| 526 | + | // static gboolean | |
| 527 | + | // on_allow_mechanism (GDBusAuthObserver *observer, | |
| 528 | + | // | |
| 529 | + | // const gchar *mechanism, | |
| 530 | + | // gpointer user_data) | |
| 531 | + | // | |
| 532 | + | // { | |
| 533 | + | // if (g_strcmp0 (mechanism, "EXTERNAL") == 0) | |
| 534 | + | // { | |
| 535 | + | // return TRUE; | |
| 536 | + | // } | |
| 537 | + | // | |
| 538 | + | // return FALSE; | |
| 539 | + | // } | |
| 540 | + | // | |
| 541 | + | // ]| | |
| 542 | + | // | |
| 543 | + | // ## Controlling Authorization # {#auth-observer} | |
| 544 | + | // | |
| 545 | + | // By default, a #GDBusServer or server-side #GDBusConnection will accept | |
| 546 | + | // connections from any successfully authenticated user (but not from | |
| 547 | + | // anonymous connections using the `ANONYMOUS` mechanism). If you only | |
| 548 | + | // want to allow D-Bus connections from processes owned by the same uid | |
| 549 | + | // as the server, since GLib 2.68, you should use the | |
| 550 | + | // %G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flag. It’s equivalent | |
| 551 | + | // to the following signal handler: | |
| 552 | + | // | |
| 553 | + | // |[<!-- language="C" --> | |
| 554 | + | // static gboolean | |
| 555 | + | // on_authorize_authenticated_peer (GDBusAuthObserver *observer, | |
| 556 | + | // | |
| 557 | + | // GIOStream *stream, | |
| 558 | + | // GCredentials *credentials, | |
| 559 | + | // gpointer user_data) | |
| 560 | + | // | |
| 561 | + | // { | |
| 562 | + | // gboolean authorized; | |
| 563 | + | // | |
| 564 | + | // authorized = FALSE; | |
| 565 | + | // if (credentials != NULL) | |
| 566 | + | // { | |
| 567 | + | // GCredentials *own_credentials; | |
| 568 | + | // own_credentials = g_credentials_new (); | |
| 569 | + | // if (g_credentials_is_same_user (credentials, own_credentials, NULL)) | |
| 570 | + | // authorized = TRUE; | |
| 571 | + | // g_object_unref (own_credentials); | |
| 572 | + | // } | |
| 573 | + | // | |
| 574 | + | // return authorized; | |
| 575 | + | // } | |
| 576 | + | // | |
| 577 | + | // ]| | |
| 578 | + | type DBusAuthObserver struct { | |
| 579 | + | gobject.Object | |
| 580 | + | } | |
| 581 | + | ||
| 582 | + | func DBusAuthObserverNewFromInternalPtr(ptr uintptr) *DBusAuthObserver { | |
| 583 | + | cls := &DBusAuthObserver{} | |
| 584 | + | cls.Ptr = ptr | |
| 585 | + | return cls | |
| 586 | + | } | |
| 587 | + | ||
| 588 | + | var xNewDBusAuthObserver func() uintptr | |
| 589 | + | ||
| 590 | + | // Creates a new #GDBusAuthObserver object. | |
| 591 | + | func NewDBusAuthObserver() *DBusAuthObserver { | |
| 592 | + | NewDBusAuthObserverPtr := xNewDBusAuthObserver() | |
| 593 | + | if NewDBusAuthObserverPtr == 0 { | |
| 594 | + | return nil | |
| 595 | + | } | |
| 596 | + | ||
| 597 | + | NewDBusAuthObserverCls := &DBusAuthObserver{} | |
| 598 | + | NewDBusAuthObserverCls.Ptr = NewDBusAuthObserverPtr | |
| 599 | + | return NewDBusAuthObserverCls | |
| 600 | + | } | |
| 601 | + | ||
| 602 | + | var xDBusAuthObserverAllowMechanism func(uintptr, string) bool | |
| 603 | + | ||
| 604 | + | // Emits the #GDBusAuthObserver::allow-mechanism signal on @observer. | |
| 605 | + | func (x *DBusAuthObserver) AllowMechanism(MechanismVar string) bool { | |
| 606 | + | ||
| 607 | + | return xDBusAuthObserverAllowMechanism(x.GoPointer(), MechanismVar) | |
| 608 | + | ||
| 609 | + | } | |
| 610 | + | ||
| 611 | + | var xDBusAuthObserverAuthorizeAuthenticatedPeer func(uintptr, uintptr, uintptr) bool | |
| 612 | + | ||
| 613 | + | // Emits the #GDBusAuthObserver::authorize-authenticated-peer signal on @observer. | |
| 614 | + | func (x *DBusAuthObserver) AuthorizeAuthenticatedPeer(StreamVar *IOStream, CredentialsVar *Credentials) bool { | |
| 615 | + | ||
| 616 | + | return xDBusAuthObserverAuthorizeAuthenticatedPeer(x.GoPointer(), StreamVar.GoPointer(), CredentialsVar.GoPointer()) | |
| 617 | + | ||
| 618 | + | } | |
| 619 | + | ||
| 620 | + | func (c *DBusAuthObserver) GoPointer() uintptr { | |
| 621 | + | return c.Ptr | |
| 622 | + | } | |
| 623 | + | ||
| 624 | + | func (c *DBusAuthObserver) SetGoPointer(ptr uintptr) { | |
| 625 | + | c.Ptr = ptr | |
| 626 | + | } | |
| 627 | + | ||
| 628 | + | // Emitted to check if @mechanism is allowed to be used. | |
| 629 | + | func (x *DBusAuthObserver) ConnectAllowMechanism(cb func(DBusAuthObserver, string) bool) { | |
| 630 | + | fcb := func(clsPtr uintptr, MechanismVarp string) bool { | |
| 631 | + | fa := DBusAuthObserver{} | |
| 632 | + | fa.Ptr = clsPtr | |
| 633 | + | ||
| 634 | + | return cb(fa, MechanismVarp) | |
| 635 | + | ||
| 636 | + | } | |
| 637 | + | gobject.ObjectConnect(x.GoPointer(), "signal::allow-mechanism", purego.NewCallback(fcb)) | |
| 638 | + | } | |
| 639 | + | ||
| 640 | + | // Emitted to check if a peer that is successfully authenticated | |
| 641 | + | // is authorized. | |
| 642 | + | func (x *DBusAuthObserver) ConnectAuthorizeAuthenticatedPeer(cb func(DBusAuthObserver, uintptr, uintptr) bool) { | |
| 643 | + | fcb := func(clsPtr uintptr, StreamVarp uintptr, CredentialsVarp uintptr) bool { | |
| 644 | + | fa := DBusAuthObserver{} | |
| 645 | + | fa.Ptr = clsPtr | |
| 646 | + | ||
| 647 | + | return cb(fa, StreamVarp, CredentialsVarp) | |
| 648 | + | ||
| 649 | + | } | |
| 650 | + | gobject.ObjectConnect(x.GoPointer(), "signal::authorize-authenticated-peer", purego.NewCallback(fcb)) | |
| 651 | + | } | |
| 652 | + | ||
| 653 | + | // The #GDBusConnection type is used for D-Bus connections to remote | |
| 654 | + | // peers such as a message buses. It is a low-level API that offers a | |
| 655 | + | // lot of flexibility. For instance, it lets you establish a connection | |
| 656 | + | // over any transport that can by represented as a #GIOStream. | |
| 657 | + | // | |
| 658 | + | // This class is rarely used directly in D-Bus clients. If you are writing | |
| 659 | + | // a D-Bus client, it is often easier to use the g_bus_own_name(), | |
| 660 | + | // g_bus_watch_name() or g_dbus_proxy_new_for_bus() APIs. | |
| 661 | + | // | |
| 662 | + | // As an exception to the usual GLib rule that a particular object must not | |
| 663 | + | // be used by two threads at the same time, #GDBusConnection's methods may be | |
| 664 | + | // called from any thread. This is so that g_bus_get() and g_bus_get_sync() | |
| 665 | + | // can safely return the same #GDBusConnection when called from any thread. | |
| 666 | + | // | |
| 667 | + | // Most of the ways to obtain a #GDBusConnection automatically initialize it | |
| 668 | + | // (i.e. connect to D-Bus): for instance, g_dbus_connection_new() and | |
| 669 | + | // g_bus_get(), and the synchronous versions of those methods, give you an | |
| 670 | + | // initialized connection. Language bindings for GIO should use | |
| 671 | + | // g_initable_new() or g_async_initable_new_async(), which also initialize the | |
| 672 | + | // connection. | |
| 673 | + | // | |
| 674 | + | // If you construct an uninitialized #GDBusConnection, such as via | |
| 675 | + | // g_object_new(), you must initialize it via g_initable_init() or | |
| 676 | + | // g_async_initable_init_async() before using its methods or properties. | |
| 677 | + | // Calling methods or accessing properties on a #GDBusConnection that has not | |
| 678 | + | // completed initialization successfully is considered to be invalid, and leads | |
| 679 | + | // to undefined behaviour. In particular, if initialization fails with a | |
| 680 | + | // #GError, the only valid thing you can do with that #GDBusConnection is to | |
| 681 | + | // free it with g_object_unref(). | |
| 682 | + | // | |
| 683 | + | // ## An example D-Bus server # {#gdbus-server} | |
| 684 | + | // | |
| 685 | + | // Here is an example for a D-Bus server: | |
| 686 | + | // [gdbus-example-server.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-example-server.c) | |
| 687 | + | // | |
| 688 | + | // ## An example for exporting a subtree # {#gdbus-subtree-server} | |
| 689 | + | // | |
| 690 | + | // Here is an example for exporting a subtree: | |
| 691 | + | // [gdbus-example-subtree.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-example-subtree.c) | |
| 692 | + | // | |
| 693 | + | // ## An example for file descriptor passing # {#gdbus-unix-fd-client} | |
| 694 | + | // | |
| 695 | + | // Here is an example for passing UNIX file descriptors: | |
| 696 | + | // [gdbus-unix-fd-client.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-example-unix-fd-client.c) | |
| 697 | + | // | |
| 698 | + | // ## An example for exporting a GObject # {#gdbus-export} | |
| 699 | + | // | |
| 700 | + | // Here is an example for exporting a #GObject: | |
| 701 | + | // [gdbus-example-export.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-example-export.c) | |
| 702 | + | type DBusConnection struct { | |
| 703 | + | gobject.Object | |
| 704 | + | } | |
| 705 | + | ||
| 706 | + | func DBusConnectionNewFromInternalPtr(ptr uintptr) *DBusConnection { | |
| 707 | + | cls := &DBusConnection{} | |
| 708 | + | cls.Ptr = ptr | |
| 709 | + | return cls | |
| 710 | + | } | |
| 711 | + | ||
| 712 | + | var xNewFinishDBusConnection func(uintptr) uintptr | |
| 713 | + | ||
| 714 | + | // Finishes an operation started with g_dbus_connection_new(). | |
| 715 | + | func NewFinishDBusConnection(ResVar AsyncResult) *DBusConnection { | |
| 716 | + | NewFinishDBusConnectionPtr := xNewFinishDBusConnection(ResVar.GoPointer()) | |
| 717 | + | if NewFinishDBusConnectionPtr == 0 { | |
| 718 | + | return nil | |
| 719 | + | } | |
| 720 | + | ||
| 721 | + | NewFinishDBusConnectionCls := &DBusConnection{} | |
| 722 | + | NewFinishDBusConnectionCls.Ptr = NewFinishDBusConnectionPtr | |
| 723 | + | return NewFinishDBusConnectionCls | |
| 724 | + | } | |
| 725 | + | ||
| 726 | + | var xNewForAddressFinishDBusConnection func(uintptr) uintptr | |
| 727 | + | ||
| 728 | + | // Finishes an operation started with g_dbus_connection_new_for_address(). | |
| 729 | + | func NewForAddressFinishDBusConnection(ResVar AsyncResult) *DBusConnection { | |
| 730 | + | NewForAddressFinishDBusConnectionPtr := xNewForAddressFinishDBusConnection(ResVar.GoPointer()) | |
| 731 | + | if NewForAddressFinishDBusConnectionPtr == 0 { | |
| 732 | + | return nil | |
| 733 | + | } | |
| 734 | + | ||
| 735 | + | NewForAddressFinishDBusConnectionCls := &DBusConnection{} | |
| 736 | + | NewForAddressFinishDBusConnectionCls.Ptr = NewForAddressFinishDBusConnectionPtr | |
| 737 | + | return NewForAddressFinishDBusConnectionCls | |
| 738 | + | } | |
| 739 | + | ||
| 740 | + | var xNewForAddressSyncDBusConnection func(string, DBusConnectionFlags, uintptr, uintptr) uintptr | |
| 741 | + | ||
| 742 | + | // Synchronously connects and sets up a D-Bus client connection for | |
| 743 | + | // exchanging D-Bus messages with an endpoint specified by @address | |
| 744 | + | // which must be in the | |
| 745 | + | // [D-Bus address format](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses). | |
| 746 | + | // | |
| 747 | + | // This constructor can only be used to initiate client-side | |
| 748 | + | // connections - use g_dbus_connection_new_sync() if you need to act | |
| 749 | + | // as the server. In particular, @flags cannot contain the | |
| 750 | + | // %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER, | |
| 751 | + | // %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_ALLOW_ANONYMOUS or | |
| 752 | + | // %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flags. | |
| 753 | + | // | |
| 754 | + | // This is a synchronous failable constructor. See | |
| 755 | + | // g_dbus_connection_new_for_address() for the asynchronous version. | |
| 756 | + | // | |
| 757 | + | // If @observer is not %NULL it may be used to control the | |
| 758 | + | // authentication process. | |
| 759 | + | func NewForAddressSyncDBusConnection(AddressVar string, FlagsVar DBusConnectionFlags, ObserverVar *DBusAuthObserver, CancellableVar *Cancellable) *DBusConnection { | |
| 760 | + | NewForAddressSyncDBusConnectionPtr := xNewForAddressSyncDBusConnection(AddressVar, FlagsVar, ObserverVar.GoPointer(), CancellableVar.GoPointer()) | |
| 761 | + | if NewForAddressSyncDBusConnectionPtr == 0 { | |
| 762 | + | return nil | |
| 763 | + | } | |
| 764 | + | ||
| 765 | + | NewForAddressSyncDBusConnectionCls := &DBusConnection{} | |
| 766 | + | NewForAddressSyncDBusConnectionCls.Ptr = NewForAddressSyncDBusConnectionPtr | |
| 767 | + | return NewForAddressSyncDBusConnectionCls | |
| 768 | + | } | |
| 769 | + | ||
| 770 | + | var xNewSyncDBusConnection func(uintptr, string, DBusConnectionFlags, uintptr, uintptr) uintptr | |
| 771 | + | ||
| 772 | + | // Synchronously sets up a D-Bus connection for exchanging D-Bus messages | |
| 773 | + | // with the end represented by @stream. | |
| 774 | + | // | |
| 775 | + | // If @stream is a #GSocketConnection, then the corresponding #GSocket | |
| 776 | + | // will be put into non-blocking mode. | |
| 777 | + | // | |
| 778 | + | // The D-Bus connection will interact with @stream from a worker thread. | |
| 779 | + | // As a result, the caller should not interact with @stream after this | |
| 780 | + | // method has been called, except by calling g_object_unref() on it. | |
| 781 | + | // | |
| 782 | + | // If @observer is not %NULL it may be used to control the | |
| 783 | + | // authentication process. | |
| 784 | + | // | |
| 785 | + | // This is a synchronous failable constructor. See | |
| 786 | + | // g_dbus_connection_new() for the asynchronous version. | |
| 787 | + | func NewSyncDBusConnection(StreamVar *IOStream, GuidVar string, FlagsVar DBusConnectionFlags, ObserverVar *DBusAuthObserver, CancellableVar *Cancellable) *DBusConnection { | |
| 788 | + | NewSyncDBusConnectionPtr := xNewSyncDBusConnection(StreamVar.GoPointer(), GuidVar, FlagsVar, ObserverVar.GoPointer(), CancellableVar.GoPointer()) | |
| 789 | + | if NewSyncDBusConnectionPtr == 0 { | |
| 790 | + | return nil | |
| 791 | + | } | |
| 792 | + | ||
| 793 | + | NewSyncDBusConnectionCls := &DBusConnection{} | |
| 794 | + | NewSyncDBusConnectionCls.Ptr = NewSyncDBusConnectionPtr | |
| 795 | + | return NewSyncDBusConnectionCls | |
| 796 | + | } | |
| 797 | + | ||
| 798 | + | var xDBusConnectionAddFilter func(uintptr, uintptr, uintptr, uintptr) uint | |
| 799 | + | ||
| 800 | + | // Adds a message filter. Filters are handlers that are run on all | |
| 801 | + | // incoming and outgoing messages, prior to standard dispatch. Filters | |
| 802 | + | // are run in the order that they were added. The same handler can be | |
| 803 | + | // added as a filter more than once, in which case it will be run more | |
| 804 | + | // than once. Filters added during a filter callback won't be run on | |
| 805 | + | // the message being processed. Filter functions are allowed to modify | |
| 806 | + | // and even drop messages. | |
| 807 | + | // | |
| 808 | + | // Note that filters are run in a dedicated message handling thread so | |
| 809 | + | // they can't block and, generally, can't do anything but signal a | |
| 810 | + | // worker thread. Also note that filters are rarely needed - use API | |
| 811 | + | // such as g_dbus_connection_send_message_with_reply(), | |
| 812 | + | // g_dbus_connection_signal_subscribe() or g_dbus_connection_call() instead. | |
| 813 | + | // | |
| 814 | + | // If a filter consumes an incoming message the message is not | |
| 815 | + | // dispatched anywhere else - not even the standard dispatch machinery | |
| 816 | + | // (that API such as g_dbus_connection_signal_subscribe() and | |
| 817 | + | // g_dbus_connection_send_message_with_reply() relies on) will see the | |
| 818 | + | // message. Similarly, if a filter consumes an outgoing message, the | |
| 819 | + | // message will not be sent to the other peer. | |
| 820 | + | // | |
| 821 | + | // If @user_data_free_func is non-%NULL, it will be called (in the | |
| 822 | + | // thread-default main context of the thread you are calling this | |
| 823 | + | // method from) at some point after @user_data is no longer | |
| 824 | + | // needed. (It is not guaranteed to be called synchronously when the | |
| 825 | + | // filter is removed, and may be called after @connection has been | |
| 826 | + | // destroyed.) | |
| 827 | + | func (x *DBusConnection) AddFilter(FilterFunctionVar DBusMessageFilterFunction, UserDataVar uintptr, UserDataFreeFuncVar glib.DestroyNotify) uint { | |
| 828 | + | ||
| 829 | + | return xDBusConnectionAddFilter(x.GoPointer(), purego.NewCallback(FilterFunctionVar), UserDataVar, purego.NewCallback(UserDataFreeFuncVar)) | |
| 830 | + | ||
| 831 | + | } | |
| 832 | + | ||
| 833 | + | var xDBusConnectionCall func(uintptr, string, string, string, string, *glib.Variant, *glib.VariantType, DBusCallFlags, int32, uintptr, uintptr, uintptr) | |
| 834 | + | ||
| 835 | + | // Asynchronously invokes the @method_name method on the | |
| 836 | + | // @interface_name D-Bus interface on the remote object at | |
| 837 | + | // @object_path owned by @bus_name. | |
| 838 | + | // | |
| 839 | + | // If @connection is closed then the operation will fail with | |
| 840 | + | // %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will | |
| 841 | + | // fail with %G_IO_ERROR_CANCELLED. If @parameters contains a value | |
| 842 | + | // not compatible with the D-Bus protocol, the operation fails with | |
| 843 | + | // %G_IO_ERROR_INVALID_ARGUMENT. | |
| 844 | + | // | |
| 845 | + | // If @reply_type is non-%NULL then the reply will be checked for having this type and an | |
| 846 | + | // error will be raised if it does not match. Said another way, if you give a @reply_type | |
| 847 | + | // then any non-%NULL return value will be of this type. Unless it’s | |
| 848 | + | // %G_VARIANT_TYPE_UNIT, the @reply_type will be a tuple containing one or more | |
| 849 | + | // values. | |
| 850 | + | // | |
| 851 | + | // If the @parameters #GVariant is floating, it is consumed. This allows | |
| 852 | + | // convenient 'inline' use of g_variant_new(), e.g.: | |
| 853 | + | // |[<!-- language="C" --> | |
| 854 | + | // | |
| 855 | + | // g_dbus_connection_call (connection, | |
| 856 | + | // "org.freedesktop.StringThings", | |
| 857 | + | // "/org/freedesktop/StringThings", | |
| 858 | + | // "org.freedesktop.StringThings", | |
| 859 | + | // "TwoStrings", | |
| 860 | + | // g_variant_new ("(ss)", | |
| 861 | + | // "Thing One", | |
| 862 | + | // "Thing Two"), | |
| 863 | + | // NULL, | |
| 864 | + | // G_DBUS_CALL_FLAGS_NONE, | |
| 865 | + | // -1, | |
| 866 | + | // NULL, | |
| 867 | + | // (GAsyncReadyCallback) two_strings_done, | |
| 868 | + | // NULL); | |
| 869 | + | // | |
| 870 | + | // ]| | |
| 871 | + | // | |
| 872 | + | // This is an asynchronous method. When the operation is finished, | |
| 873 | + | // @callback will be invoked in the | |
| 874 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 875 | + | // of the thread you are calling this method from. You can then call | |
| 876 | + | // g_dbus_connection_call_finish() to get the result of the operation. | |
| 877 | + | // See g_dbus_connection_call_sync() for the synchronous version of this | |
| 878 | + | // function. | |
| 879 | + | // | |
| 880 | + | // If @callback is %NULL then the D-Bus method call message will be sent with | |
| 881 | + | // the %G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED flag set. | |
| 882 | + | func (x *DBusConnection) Call(BusNameVar string, ObjectPathVar string, InterfaceNameVar string, MethodNameVar string, ParametersVar *glib.Variant, ReplyTypeVar *glib.VariantType, FlagsVar DBusCallFlags, TimeoutMsecVar int32, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 883 | + | ||
| 884 | + | xDBusConnectionCall(x.GoPointer(), BusNameVar, ObjectPathVar, InterfaceNameVar, MethodNameVar, ParametersVar, ReplyTypeVar, FlagsVar, TimeoutMsecVar, CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 885 | + | ||
| 886 | + | } | |
| 887 | + | ||
| 888 | + | var xDBusConnectionCallFinish func(uintptr, uintptr) *glib.Variant | |
| 889 | + | ||
| 890 | + | // Finishes an operation started with g_dbus_connection_call(). | |
| 891 | + | func (x *DBusConnection) CallFinish(ResVar AsyncResult) *glib.Variant { | |
| 892 | + | ||
| 893 | + | return xDBusConnectionCallFinish(x.GoPointer(), ResVar.GoPointer()) | |
| 894 | + | ||
| 895 | + | } | |
| 896 | + | ||
| 897 | + | var xDBusConnectionCallSync func(uintptr, string, string, string, string, *glib.Variant, *glib.VariantType, DBusCallFlags, int32, uintptr) *glib.Variant | |
| 898 | + | ||
| 899 | + | // Synchronously invokes the @method_name method on the | |
| 900 | + | // @interface_name D-Bus interface on the remote object at | |
| 901 | + | // @object_path owned by @bus_name. | |
| 902 | + | // | |
| 903 | + | // If @connection is closed then the operation will fail with | |
| 904 | + | // %G_IO_ERROR_CLOSED. If @cancellable is canceled, the | |
| 905 | + | // operation will fail with %G_IO_ERROR_CANCELLED. If @parameters | |
| 906 | + | // contains a value not compatible with the D-Bus protocol, the operation | |
| 907 | + | // fails with %G_IO_ERROR_INVALID_ARGUMENT. | |
| 908 | + | // | |
| 909 | + | // If @reply_type is non-%NULL then the reply will be checked for having | |
| 910 | + | // this type and an error will be raised if it does not match. Said | |
| 911 | + | // another way, if you give a @reply_type then any non-%NULL return | |
| 912 | + | // value will be of this type. | |
| 913 | + | // | |
| 914 | + | // If the @parameters #GVariant is floating, it is consumed. | |
| 915 | + | // This allows convenient 'inline' use of g_variant_new(), e.g.: | |
| 916 | + | // |[<!-- language="C" --> | |
| 917 | + | // | |
| 918 | + | // g_dbus_connection_call_sync (connection, | |
| 919 | + | // "org.freedesktop.StringThings", | |
| 920 | + | // "/org/freedesktop/StringThings", | |
| 921 | + | // "org.freedesktop.StringThings", | |
| 922 | + | // "TwoStrings", | |
| 923 | + | // g_variant_new ("(ss)", | |
| 924 | + | // "Thing One", | |
| 925 | + | // "Thing Two"), | |
| 926 | + | // NULL, | |
| 927 | + | // G_DBUS_CALL_FLAGS_NONE, | |
| 928 | + | // -1, | |
| 929 | + | // NULL, | |
| 930 | + | // &error); | |
| 931 | + | // | |
| 932 | + | // ]| | |
| 933 | + | // | |
| 934 | + | // The calling thread is blocked until a reply is received. See | |
| 935 | + | // g_dbus_connection_call() for the asynchronous version of | |
| 936 | + | // this method. | |
| 937 | + | func (x *DBusConnection) CallSync(BusNameVar string, ObjectPathVar string, InterfaceNameVar string, MethodNameVar string, ParametersVar *glib.Variant, ReplyTypeVar *glib.VariantType, FlagsVar DBusCallFlags, TimeoutMsecVar int32, CancellableVar *Cancellable) *glib.Variant { | |
| 938 | + | ||
| 939 | + | return xDBusConnectionCallSync(x.GoPointer(), BusNameVar, ObjectPathVar, InterfaceNameVar, MethodNameVar, ParametersVar, ReplyTypeVar, FlagsVar, TimeoutMsecVar, CancellableVar.GoPointer()) | |
| 940 | + | ||
| 941 | + | } | |
| 942 | + | ||
| 943 | + | var xDBusConnectionCallWithUnixFdList func(uintptr, string, string, string, string, *glib.Variant, *glib.VariantType, DBusCallFlags, int32, uintptr, uintptr, uintptr, uintptr) | |
| 944 | + | ||
| 945 | + | // Like g_dbus_connection_call() but also takes a #GUnixFDList object. | |
| 946 | + | // | |
| 947 | + | // The file descriptors normally correspond to %G_VARIANT_TYPE_HANDLE | |
| 948 | + | // values in the body of the message. For example, if a message contains | |
| 949 | + | // two file descriptors, @fd_list would have length 2, and | |
| 950 | + | // `g_variant_new_handle (0)` and `g_variant_new_handle (1)` would appear | |
| 951 | + | // somewhere in the body of the message (not necessarily in that order!) | |
| 952 | + | // to represent the file descriptors at indexes 0 and 1 respectively. | |
| 953 | + | // | |
| 954 | + | // When designing D-Bus APIs that are intended to be interoperable, | |
| 955 | + | // please note that non-GDBus implementations of D-Bus can usually only | |
| 956 | + | // access file descriptors if they are referenced in this way by a | |
| 957 | + | // value of type %G_VARIANT_TYPE_HANDLE in the body of the message. | |
| 958 | + | // | |
| 959 | + | // This method is only available on UNIX. | |
| 960 | + | func (x *DBusConnection) CallWithUnixFdList(BusNameVar string, ObjectPathVar string, InterfaceNameVar string, MethodNameVar string, ParametersVar *glib.Variant, ReplyTypeVar *glib.VariantType, FlagsVar DBusCallFlags, TimeoutMsecVar int32, FdListVar *UnixFDList, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 961 | + | ||
| 962 | + | xDBusConnectionCallWithUnixFdList(x.GoPointer(), BusNameVar, ObjectPathVar, InterfaceNameVar, MethodNameVar, ParametersVar, ReplyTypeVar, FlagsVar, TimeoutMsecVar, FdListVar.GoPointer(), CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 963 | + | ||
| 964 | + | } | |
| 965 | + | ||
| 966 | + | var xDBusConnectionCallWithUnixFdListFinish func(uintptr, *uintptr, uintptr) *glib.Variant | |
| 967 | + | ||
| 968 | + | // Finishes an operation started with g_dbus_connection_call_with_unix_fd_list(). | |
| 969 | + | // | |
| 970 | + | // The file descriptors normally correspond to %G_VARIANT_TYPE_HANDLE | |
| 971 | + | // values in the body of the message. For example, | |
| 972 | + | // if g_variant_get_handle() returns 5, that is intended to be a reference | |
| 973 | + | // to the file descriptor that can be accessed by | |
| 974 | + | // `g_unix_fd_list_get (*out_fd_list, 5, ...)`. | |
| 975 | + | // | |
| 976 | + | // When designing D-Bus APIs that are intended to be interoperable, | |
| 977 | + | // please note that non-GDBus implementations of D-Bus can usually only | |
| 978 | + | // access file descriptors if they are referenced in this way by a | |
| 979 | + | // value of type %G_VARIANT_TYPE_HANDLE in the body of the message. | |
| 980 | + | func (x *DBusConnection) CallWithUnixFdListFinish(OutFdListVar **UnixFDList, ResVar AsyncResult) *glib.Variant { | |
| 981 | + | ||
| 982 | + | return xDBusConnectionCallWithUnixFdListFinish(x.GoPointer(), gobject.ConvertPtr(OutFdListVar), ResVar.GoPointer()) | |
| 983 | + | ||
| 984 | + | } | |
| 985 | + | ||
| 986 | + | var xDBusConnectionCallWithUnixFdListSync func(uintptr, string, string, string, string, *glib.Variant, *glib.VariantType, DBusCallFlags, int32, uintptr, *uintptr, uintptr) *glib.Variant | |
| 987 | + | ||
| 988 | + | // Like g_dbus_connection_call_sync() but also takes and returns #GUnixFDList objects. | |
| 989 | + | // See g_dbus_connection_call_with_unix_fd_list() and | |
| 990 | + | // g_dbus_connection_call_with_unix_fd_list_finish() for more details. | |
| 991 | + | // | |
| 992 | + | // This method is only available on UNIX. | |
| 993 | + | func (x *DBusConnection) CallWithUnixFdListSync(BusNameVar string, ObjectPathVar string, InterfaceNameVar string, MethodNameVar string, ParametersVar *glib.Variant, ReplyTypeVar *glib.VariantType, FlagsVar DBusCallFlags, TimeoutMsecVar int32, FdListVar *UnixFDList, OutFdListVar **UnixFDList, CancellableVar *Cancellable) *glib.Variant { | |
| 994 | + | ||
| 995 | + | return xDBusConnectionCallWithUnixFdListSync(x.GoPointer(), BusNameVar, ObjectPathVar, InterfaceNameVar, MethodNameVar, ParametersVar, ReplyTypeVar, FlagsVar, TimeoutMsecVar, FdListVar.GoPointer(), gobject.ConvertPtr(OutFdListVar), CancellableVar.GoPointer()) | |
| 996 | + | ||
| 997 | + | } | |
| 998 | + | ||
| 999 | + | var xDBusConnectionClose func(uintptr, uintptr, uintptr, uintptr) | |
| 1000 | + | ||
| 1001 | + | // Closes @connection. Note that this never causes the process to | |
| 1002 | + | // exit (this might only happen if the other end of a shared message | |
| 1003 | + | // bus connection disconnects, see #GDBusConnection:exit-on-close). | |
| 1004 | + | // | |
| 1005 | + | // Once the connection is closed, operations such as sending a message | |
| 1006 | + | // will return with the error %G_IO_ERROR_CLOSED. Closing a connection | |
| 1007 | + | // will not automatically flush the connection so queued messages may | |
| 1008 | + | // be lost. Use g_dbus_connection_flush() if you need such guarantees. | |
| 1009 | + | // | |
| 1010 | + | // If @connection is already closed, this method fails with | |
| 1011 | + | // %G_IO_ERROR_CLOSED. | |
| 1012 | + | // | |
| 1013 | + | // When @connection has been closed, the #GDBusConnection::closed | |
| 1014 | + | // signal is emitted in the | |
| 1015 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1016 | + | // of the thread that @connection was constructed in. | |
| 1017 | + | // | |
| 1018 | + | // This is an asynchronous method. When the operation is finished, | |
| 1019 | + | // @callback will be invoked in the | |
| 1020 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1021 | + | // of the thread you are calling this method from. You can | |
| 1022 | + | // then call g_dbus_connection_close_finish() to get the result of the | |
| 1023 | + | // operation. See g_dbus_connection_close_sync() for the synchronous | |
| 1024 | + | // version. | |
| 1025 | + | func (x *DBusConnection) Close(CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 1026 | + | ||
| 1027 | + | xDBusConnectionClose(x.GoPointer(), CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 1028 | + | ||
| 1029 | + | } | |
| 1030 | + | ||
| 1031 | + | var xDBusConnectionCloseFinish func(uintptr, uintptr) bool | |
| 1032 | + | ||
| 1033 | + | // Finishes an operation started with g_dbus_connection_close(). | |
| 1034 | + | func (x *DBusConnection) CloseFinish(ResVar AsyncResult) bool { | |
| 1035 | + | ||
| 1036 | + | return xDBusConnectionCloseFinish(x.GoPointer(), ResVar.GoPointer()) | |
| 1037 | + | ||
| 1038 | + | } | |
| 1039 | + | ||
| 1040 | + | var xDBusConnectionCloseSync func(uintptr, uintptr) bool | |
| 1041 | + | ||
| 1042 | + | // Synchronously closes @connection. The calling thread is blocked | |
| 1043 | + | // until this is done. See g_dbus_connection_close() for the | |
| 1044 | + | // asynchronous version of this method and more details about what it | |
| 1045 | + | // does. | |
| 1046 | + | func (x *DBusConnection) CloseSync(CancellableVar *Cancellable) bool { | |
| 1047 | + | ||
| 1048 | + | return xDBusConnectionCloseSync(x.GoPointer(), CancellableVar.GoPointer()) | |
| 1049 | + | ||
| 1050 | + | } | |
| 1051 | + | ||
| 1052 | + | var xDBusConnectionEmitSignal func(uintptr, string, string, string, string, *glib.Variant) bool | |
| 1053 | + | ||
| 1054 | + | // Emits a signal. | |
| 1055 | + | // | |
| 1056 | + | // If the parameters GVariant is floating, it is consumed. | |
| 1057 | + | // | |
| 1058 | + | // This can only fail if @parameters is not compatible with the D-Bus protocol | |
| 1059 | + | // (%G_IO_ERROR_INVALID_ARGUMENT), or if @connection has been closed | |
| 1060 | + | // (%G_IO_ERROR_CLOSED). | |
| 1061 | + | func (x *DBusConnection) EmitSignal(DestinationBusNameVar string, ObjectPathVar string, InterfaceNameVar string, SignalNameVar string, ParametersVar *glib.Variant) bool { | |
| 1062 | + | ||
| 1063 | + | return xDBusConnectionEmitSignal(x.GoPointer(), DestinationBusNameVar, ObjectPathVar, InterfaceNameVar, SignalNameVar, ParametersVar) | |
| 1064 | + | ||
| 1065 | + | } | |
| 1066 | + | ||
| 1067 | + | var xDBusConnectionExportActionGroup func(uintptr, string, uintptr) uint | |
| 1068 | + | ||
| 1069 | + | // Exports @action_group on @connection at @object_path. | |
| 1070 | + | // | |
| 1071 | + | // The implemented D-Bus API should be considered private. It is | |
| 1072 | + | // subject to change in the future. | |
| 1073 | + | // | |
| 1074 | + | // A given object path can only have one action group exported on it. | |
| 1075 | + | // If this constraint is violated, the export will fail and 0 will be | |
| 1076 | + | // returned (with @error set accordingly). | |
| 1077 | + | // | |
| 1078 | + | // You can unexport the action group using | |
| 1079 | + | // g_dbus_connection_unexport_action_group() with the return value of | |
| 1080 | + | // this function. | |
| 1081 | + | // | |
| 1082 | + | // The thread default main context is taken at the time of this call. | |
| 1083 | + | // All incoming action activations and state change requests are | |
| 1084 | + | // reported from this context. Any changes on the action group that | |
| 1085 | + | // cause it to emit signals must also come from this same context. | |
| 1086 | + | // Since incoming action activations and state change requests are | |
| 1087 | + | // rather likely to cause changes on the action group, this effectively | |
| 1088 | + | // limits a given action group to being exported from only one main | |
| 1089 | + | // context. | |
| 1090 | + | func (x *DBusConnection) ExportActionGroup(ObjectPathVar string, ActionGroupVar ActionGroup) uint { | |
| 1091 | + | ||
| 1092 | + | return xDBusConnectionExportActionGroup(x.GoPointer(), ObjectPathVar, ActionGroupVar.GoPointer()) | |
| 1093 | + | ||
| 1094 | + | } | |
| 1095 | + | ||
| 1096 | + | var xDBusConnectionExportMenuModel func(uintptr, string, uintptr) uint | |
| 1097 | + | ||
| 1098 | + | // Exports @menu on @connection at @object_path. | |
| 1099 | + | // | |
| 1100 | + | // The implemented D-Bus API should be considered private. | |
| 1101 | + | // It is subject to change in the future. | |
| 1102 | + | // | |
| 1103 | + | // An object path can only have one menu model exported on it. If this | |
| 1104 | + | // constraint is violated, the export will fail and 0 will be | |
| 1105 | + | // returned (with @error set accordingly). | |
| 1106 | + | // | |
| 1107 | + | // You can unexport the menu model using | |
| 1108 | + | // g_dbus_connection_unexport_menu_model() with the return value of | |
| 1109 | + | // this function. | |
| 1110 | + | func (x *DBusConnection) ExportMenuModel(ObjectPathVar string, MenuVar *MenuModel) uint { | |
| 1111 | + | ||
| 1112 | + | return xDBusConnectionExportMenuModel(x.GoPointer(), ObjectPathVar, MenuVar.GoPointer()) | |
| 1113 | + | ||
| 1114 | + | } | |
| 1115 | + | ||
| 1116 | + | var xDBusConnectionFlush func(uintptr, uintptr, uintptr, uintptr) | |
| 1117 | + | ||
| 1118 | + | // Asynchronously flushes @connection, that is, writes all queued | |
| 1119 | + | // outgoing message to the transport and then flushes the transport | |
| 1120 | + | // (using g_output_stream_flush_async()). This is useful in programs | |
| 1121 | + | // that wants to emit a D-Bus signal and then exit immediately. Without | |
| 1122 | + | // flushing the connection, there is no guaranteed that the message has | |
| 1123 | + | // been sent to the networking buffers in the OS kernel. | |
| 1124 | + | // | |
| 1125 | + | // This is an asynchronous method. When the operation is finished, | |
| 1126 | + | // @callback will be invoked in the | |
| 1127 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1128 | + | // of the thread you are calling this method from. You can | |
| 1129 | + | // then call g_dbus_connection_flush_finish() to get the result of the | |
| 1130 | + | // operation. See g_dbus_connection_flush_sync() for the synchronous | |
| 1131 | + | // version. | |
| 1132 | + | func (x *DBusConnection) Flush(CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 1133 | + | ||
| 1134 | + | xDBusConnectionFlush(x.GoPointer(), CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 1135 | + | ||
| 1136 | + | } | |
| 1137 | + | ||
| 1138 | + | var xDBusConnectionFlushFinish func(uintptr, uintptr) bool | |
| 1139 | + | ||
| 1140 | + | // Finishes an operation started with g_dbus_connection_flush(). | |
| 1141 | + | func (x *DBusConnection) FlushFinish(ResVar AsyncResult) bool { | |
| 1142 | + | ||
| 1143 | + | return xDBusConnectionFlushFinish(x.GoPointer(), ResVar.GoPointer()) | |
| 1144 | + | ||
| 1145 | + | } | |
| 1146 | + | ||
| 1147 | + | var xDBusConnectionFlushSync func(uintptr, uintptr) bool | |
| 1148 | + | ||
| 1149 | + | // Synchronously flushes @connection. The calling thread is blocked | |
| 1150 | + | // until this is done. See g_dbus_connection_flush() for the | |
| 1151 | + | // asynchronous version of this method and more details about what it | |
| 1152 | + | // does. | |
| 1153 | + | func (x *DBusConnection) FlushSync(CancellableVar *Cancellable) bool { | |
| 1154 | + | ||
| 1155 | + | return xDBusConnectionFlushSync(x.GoPointer(), CancellableVar.GoPointer()) | |
| 1156 | + | ||
| 1157 | + | } | |
| 1158 | + | ||
| 1159 | + | var xDBusConnectionGetCapabilities func(uintptr) DBusCapabilityFlags | |
| 1160 | + | ||
| 1161 | + | // Gets the capabilities negotiated with the remote peer | |
| 1162 | + | func (x *DBusConnection) GetCapabilities() DBusCapabilityFlags { | |
| 1163 | + | ||
| 1164 | + | return xDBusConnectionGetCapabilities(x.GoPointer()) | |
| 1165 | + | ||
| 1166 | + | } | |
| 1167 | + | ||
| 1168 | + | var xDBusConnectionGetExitOnClose func(uintptr) bool | |
| 1169 | + | ||
| 1170 | + | // Gets whether the process is terminated when @connection is | |
| 1171 | + | // closed by the remote peer. See | |
| 1172 | + | // #GDBusConnection:exit-on-close for more details. | |
| 1173 | + | func (x *DBusConnection) GetExitOnClose() bool { | |
| 1174 | + | ||
| 1175 | + | return xDBusConnectionGetExitOnClose(x.GoPointer()) | |
| 1176 | + | ||
| 1177 | + | } | |
| 1178 | + | ||
| 1179 | + | var xDBusConnectionGetFlags func(uintptr) DBusConnectionFlags | |
| 1180 | + | ||
| 1181 | + | // Gets the flags used to construct this connection | |
| 1182 | + | func (x *DBusConnection) GetFlags() DBusConnectionFlags { | |
| 1183 | + | ||
| 1184 | + | return xDBusConnectionGetFlags(x.GoPointer()) | |
| 1185 | + | ||
| 1186 | + | } | |
| 1187 | + | ||
| 1188 | + | var xDBusConnectionGetGuid func(uintptr) string | |
| 1189 | + | ||
| 1190 | + | // The GUID of the peer performing the role of server when | |
| 1191 | + | // authenticating. See #GDBusConnection:guid for more details. | |
| 1192 | + | func (x *DBusConnection) GetGuid() string { | |
| 1193 | + | ||
| 1194 | + | return xDBusConnectionGetGuid(x.GoPointer()) | |
| 1195 | + | ||
| 1196 | + | } | |
| 1197 | + | ||
| 1198 | + | var xDBusConnectionGetLastSerial func(uintptr) uint32 | |
| 1199 | + | ||
| 1200 | + | // Retrieves the last serial number assigned to a #GDBusMessage on | |
| 1201 | + | // the current thread. This includes messages sent via both low-level | |
| 1202 | + | // API such as g_dbus_connection_send_message() as well as | |
| 1203 | + | // high-level API such as g_dbus_connection_emit_signal(), | |
| 1204 | + | // g_dbus_connection_call() or g_dbus_proxy_call(). | |
| 1205 | + | func (x *DBusConnection) GetLastSerial() uint32 { | |
| 1206 | + | ||
| 1207 | + | return xDBusConnectionGetLastSerial(x.GoPointer()) | |
| 1208 | + | ||
| 1209 | + | } | |
| 1210 | + | ||
| 1211 | + | var xDBusConnectionGetPeerCredentials func(uintptr) uintptr | |
| 1212 | + | ||
| 1213 | + | // Gets the credentials of the authenticated peer. This will always | |
| 1214 | + | // return %NULL unless @connection acted as a server | |
| 1215 | + | // (e.g. %G_DBUS_CONNECTION_FLAGS_AUTHENTICATION_SERVER was passed) | |
| 1216 | + | // when set up and the client passed credentials as part of the | |
| 1217 | + | // authentication process. | |
| 1218 | + | // | |
| 1219 | + | // In a message bus setup, the message bus is always the server and | |
| 1220 | + | // each application is a client. So this method will always return | |
| 1221 | + | // %NULL for message bus clients. | |
| 1222 | + | func (x *DBusConnection) GetPeerCredentials() *Credentials { | |
| 1223 | + | ||
| 1224 | + | GetPeerCredentialsPtr := xDBusConnectionGetPeerCredentials(x.GoPointer()) | |
| 1225 | + | if GetPeerCredentialsPtr == 0 { | |
| 1226 | + | return nil | |
| 1227 | + | } | |
| 1228 | + | ||
| 1229 | + | gobject.IncreaseRef(GetPeerCredentialsPtr) | |
| 1230 | + | ||
| 1231 | + | GetPeerCredentialsCls := &Credentials{} | |
| 1232 | + | GetPeerCredentialsCls.Ptr = GetPeerCredentialsPtr | |
| 1233 | + | return GetPeerCredentialsCls | |
| 1234 | + | ||
| 1235 | + | } | |
| 1236 | + | ||
| 1237 | + | var xDBusConnectionGetStream func(uintptr) uintptr | |
| 1238 | + | ||
| 1239 | + | // Gets the underlying stream used for IO. | |
| 1240 | + | // | |
| 1241 | + | // While the #GDBusConnection is active, it will interact with this | |
| 1242 | + | // stream from a worker thread, so it is not safe to interact with | |
| 1243 | + | // the stream directly. | |
| 1244 | + | func (x *DBusConnection) GetStream() *IOStream { | |
| 1245 | + | ||
| 1246 | + | GetStreamPtr := xDBusConnectionGetStream(x.GoPointer()) | |
| 1247 | + | if GetStreamPtr == 0 { | |
| 1248 | + | return nil | |
| 1249 | + | } | |
| 1250 | + | ||
| 1251 | + | gobject.IncreaseRef(GetStreamPtr) | |
| 1252 | + | ||
| 1253 | + | GetStreamCls := &IOStream{} | |
| 1254 | + | GetStreamCls.Ptr = GetStreamPtr | |
| 1255 | + | return GetStreamCls | |
| 1256 | + | ||
| 1257 | + | } | |
| 1258 | + | ||
| 1259 | + | var xDBusConnectionGetUniqueName func(uintptr) string | |
| 1260 | + | ||
| 1261 | + | // Gets the unique name of @connection as assigned by the message | |
| 1262 | + | // bus. This can also be used to figure out if @connection is a | |
| 1263 | + | // message bus connection. | |
| 1264 | + | func (x *DBusConnection) GetUniqueName() string { | |
| 1265 | + | ||
| 1266 | + | return xDBusConnectionGetUniqueName(x.GoPointer()) | |
| 1267 | + | ||
| 1268 | + | } | |
| 1269 | + | ||
| 1270 | + | var xDBusConnectionIsClosed func(uintptr) bool | |
| 1271 | + | ||
| 1272 | + | // Gets whether @connection is closed. | |
| 1273 | + | func (x *DBusConnection) IsClosed() bool { | |
| 1274 | + | ||
| 1275 | + | return xDBusConnectionIsClosed(x.GoPointer()) | |
| 1276 | + | ||
| 1277 | + | } | |
| 1278 | + | ||
| 1279 | + | var xDBusConnectionRegisterObject func(uintptr, string, *DBusInterfaceInfo, *DBusInterfaceVTable, uintptr, uintptr) uint | |
| 1280 | + | ||
| 1281 | + | // Registers callbacks for exported objects at @object_path with the | |
| 1282 | + | // D-Bus interface that is described in @interface_info. | |
| 1283 | + | // | |
| 1284 | + | // Calls to functions in @vtable (and @user_data_free_func) will happen | |
| 1285 | + | // in the | |
| 1286 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1287 | + | // of the thread you are calling this method from. | |
| 1288 | + | // | |
| 1289 | + | // Note that all #GVariant values passed to functions in @vtable will match | |
| 1290 | + | // the signature given in @interface_info - if a remote caller passes | |
| 1291 | + | // incorrect values, the `org.freedesktop.DBus.Error.InvalidArgs` | |
| 1292 | + | // is returned to the remote caller. | |
| 1293 | + | // | |
| 1294 | + | // Additionally, if the remote caller attempts to invoke methods or | |
| 1295 | + | // access properties not mentioned in @interface_info the | |
| 1296 | + | // `org.freedesktop.DBus.Error.UnknownMethod` resp. | |
| 1297 | + | // `org.freedesktop.DBus.Error.InvalidArgs` errors | |
| 1298 | + | // are returned to the caller. | |
| 1299 | + | // | |
| 1300 | + | // It is considered a programming error if the | |
| 1301 | + | // #GDBusInterfaceGetPropertyFunc function in @vtable returns a | |
| 1302 | + | // #GVariant of incorrect type. | |
| 1303 | + | // | |
| 1304 | + | // If an existing callback is already registered at @object_path and | |
| 1305 | + | // @interface_name, then @error is set to %G_IO_ERROR_EXISTS. | |
| 1306 | + | // | |
| 1307 | + | // GDBus automatically implements the standard D-Bus interfaces | |
| 1308 | + | // org.freedesktop.DBus.Properties, org.freedesktop.DBus.Introspectable | |
| 1309 | + | // and org.freedesktop.Peer, so you don't have to implement those for the | |
| 1310 | + | // objects you export. You can implement org.freedesktop.DBus.Properties | |
| 1311 | + | // yourself, e.g. to handle getting and setting of properties asynchronously. | |
| 1312 | + | // | |
| 1313 | + | // Note that the reference count on @interface_info will be | |
| 1314 | + | // incremented by 1 (unless allocated statically, e.g. if the | |
| 1315 | + | // reference count is -1, see g_dbus_interface_info_ref()) for as long | |
| 1316 | + | // as the object is exported. Also note that @vtable will be copied. | |
| 1317 | + | // | |
| 1318 | + | // See this [server][gdbus-server] for an example of how to use this method. | |
| 1319 | + | func (x *DBusConnection) RegisterObject(ObjectPathVar string, InterfaceInfoVar *DBusInterfaceInfo, VtableVar *DBusInterfaceVTable, UserDataVar uintptr, UserDataFreeFuncVar glib.DestroyNotify) uint { | |
| 1320 | + | ||
| 1321 | + | return xDBusConnectionRegisterObject(x.GoPointer(), ObjectPathVar, InterfaceInfoVar, VtableVar, UserDataVar, purego.NewCallback(UserDataFreeFuncVar)) | |
| 1322 | + | ||
| 1323 | + | } | |
| 1324 | + | ||
| 1325 | + | var xDBusConnectionRegisterObjectWithClosures func(uintptr, string, *DBusInterfaceInfo, *gobject.Closure, *gobject.Closure, *gobject.Closure) uint | |
| 1326 | + | ||
| 1327 | + | // Version of g_dbus_connection_register_object() using closures instead of a | |
| 1328 | + | // #GDBusInterfaceVTable for easier binding in other languages. | |
| 1329 | + | func (x *DBusConnection) RegisterObjectWithClosures(ObjectPathVar string, InterfaceInfoVar *DBusInterfaceInfo, MethodCallClosureVar *gobject.Closure, GetPropertyClosureVar *gobject.Closure, SetPropertyClosureVar *gobject.Closure) uint { | |
| 1330 | + | ||
| 1331 | + | return xDBusConnectionRegisterObjectWithClosures(x.GoPointer(), ObjectPathVar, InterfaceInfoVar, MethodCallClosureVar, GetPropertyClosureVar, SetPropertyClosureVar) | |
| 1332 | + | ||
| 1333 | + | } | |
| 1334 | + | ||
| 1335 | + | var xDBusConnectionRegisterSubtree func(uintptr, string, *DBusSubtreeVTable, DBusSubtreeFlags, uintptr, uintptr) uint | |
| 1336 | + | ||
| 1337 | + | // Registers a whole subtree of dynamic objects. | |
| 1338 | + | // | |
| 1339 | + | // The @enumerate and @introspection functions in @vtable are used to | |
| 1340 | + | // convey, to remote callers, what nodes exist in the subtree rooted | |
| 1341 | + | // by @object_path. | |
| 1342 | + | // | |
| 1343 | + | // When handling remote calls into any node in the subtree, first the | |
| 1344 | + | // @enumerate function is used to check if the node exists. If the node exists | |
| 1345 | + | // or the %G_DBUS_SUBTREE_FLAGS_DISPATCH_TO_UNENUMERATED_NODES flag is set | |
| 1346 | + | // the @introspection function is used to check if the node supports the | |
| 1347 | + | // requested method. If so, the @dispatch function is used to determine | |
| 1348 | + | // where to dispatch the call. The collected #GDBusInterfaceVTable and | |
| 1349 | + | // #gpointer will be used to call into the interface vtable for processing | |
| 1350 | + | // the request. | |
| 1351 | + | // | |
| 1352 | + | // All calls into user-provided code will be invoked in the | |
| 1353 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1354 | + | // of the thread you are calling this method from. | |
| 1355 | + | // | |
| 1356 | + | // If an existing subtree is already registered at @object_path or | |
| 1357 | + | // then @error is set to %G_IO_ERROR_EXISTS. | |
| 1358 | + | // | |
| 1359 | + | // Note that it is valid to register regular objects (using | |
| 1360 | + | // g_dbus_connection_register_object()) in a subtree registered with | |
| 1361 | + | // g_dbus_connection_register_subtree() - if so, the subtree handler | |
| 1362 | + | // is tried as the last resort. One way to think about a subtree | |
| 1363 | + | // handler is to consider it a fallback handler for object paths not | |
| 1364 | + | // registered via g_dbus_connection_register_object() or other bindings. | |
| 1365 | + | // | |
| 1366 | + | // Note that @vtable will be copied so you cannot change it after | |
| 1367 | + | // registration. | |
| 1368 | + | // | |
| 1369 | + | // See this [server][gdbus-subtree-server] for an example of how to use | |
| 1370 | + | // this method. | |
| 1371 | + | func (x *DBusConnection) RegisterSubtree(ObjectPathVar string, VtableVar *DBusSubtreeVTable, FlagsVar DBusSubtreeFlags, UserDataVar uintptr, UserDataFreeFuncVar glib.DestroyNotify) uint { | |
| 1372 | + | ||
| 1373 | + | return xDBusConnectionRegisterSubtree(x.GoPointer(), ObjectPathVar, VtableVar, FlagsVar, UserDataVar, purego.NewCallback(UserDataFreeFuncVar)) | |
| 1374 | + | ||
| 1375 | + | } | |
| 1376 | + | ||
| 1377 | + | var xDBusConnectionRemoveFilter func(uintptr, uint) | |
| 1378 | + | ||
| 1379 | + | // Removes a filter. | |
| 1380 | + | // | |
| 1381 | + | // Note that since filters run in a different thread, there is a race | |
| 1382 | + | // condition where it is possible that the filter will be running even | |
| 1383 | + | // after calling g_dbus_connection_remove_filter(), so you cannot just | |
| 1384 | + | // free data that the filter might be using. Instead, you should pass | |
| 1385 | + | // a #GDestroyNotify to g_dbus_connection_add_filter(), which will be | |
| 1386 | + | // called when it is guaranteed that the data is no longer needed. | |
| 1387 | + | func (x *DBusConnection) RemoveFilter(FilterIdVar uint) { | |
| 1388 | + | ||
| 1389 | + | xDBusConnectionRemoveFilter(x.GoPointer(), FilterIdVar) | |
| 1390 | + | ||
| 1391 | + | } | |
| 1392 | + | ||
| 1393 | + | var xDBusConnectionSendMessage func(uintptr, uintptr, DBusSendMessageFlags, uint32) bool | |
| 1394 | + | ||
| 1395 | + | // Asynchronously sends @message to the peer represented by @connection. | |
| 1396 | + | // | |
| 1397 | + | // Unless @flags contain the | |
| 1398 | + | // %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number | |
| 1399 | + | // will be assigned by @connection and set on @message via | |
| 1400 | + | // g_dbus_message_set_serial(). If @out_serial is not %NULL, then the | |
| 1401 | + | // serial number used will be written to this location prior to | |
| 1402 | + | // submitting the message to the underlying transport. While it has a `volatile` | |
| 1403 | + | // qualifier, this is a historical artifact and the argument passed to it should | |
| 1404 | + | // not be `volatile`. | |
| 1405 | + | // | |
| 1406 | + | // If @connection is closed then the operation will fail with | |
| 1407 | + | // %G_IO_ERROR_CLOSED. If @message is not well-formed, | |
| 1408 | + | // the operation fails with %G_IO_ERROR_INVALID_ARGUMENT. | |
| 1409 | + | // | |
| 1410 | + | // See this [server][gdbus-server] and [client][gdbus-unix-fd-client] | |
| 1411 | + | // for an example of how to use this low-level API to send and receive | |
| 1412 | + | // UNIX file descriptors. | |
| 1413 | + | // | |
| 1414 | + | // Note that @message must be unlocked, unless @flags contain the | |
| 1415 | + | // %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag. | |
| 1416 | + | func (x *DBusConnection) SendMessage(MessageVar *DBusMessage, FlagsVar DBusSendMessageFlags, OutSerialVar uint32) bool { | |
| 1417 | + | ||
| 1418 | + | return xDBusConnectionSendMessage(x.GoPointer(), MessageVar.GoPointer(), FlagsVar, OutSerialVar) | |
| 1419 | + | ||
| 1420 | + | } | |
| 1421 | + | ||
| 1422 | + | var xDBusConnectionSendMessageWithReply func(uintptr, uintptr, DBusSendMessageFlags, int32, uint32, uintptr, uintptr, uintptr) | |
| 1423 | + | ||
| 1424 | + | // Asynchronously sends @message to the peer represented by @connection. | |
| 1425 | + | // | |
| 1426 | + | // Unless @flags contain the | |
| 1427 | + | // %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number | |
| 1428 | + | // will be assigned by @connection and set on @message via | |
| 1429 | + | // g_dbus_message_set_serial(). If @out_serial is not %NULL, then the | |
| 1430 | + | // serial number used will be written to this location prior to | |
| 1431 | + | // submitting the message to the underlying transport. While it has a `volatile` | |
| 1432 | + | // qualifier, this is a historical artifact and the argument passed to it should | |
| 1433 | + | // not be `volatile`. | |
| 1434 | + | // | |
| 1435 | + | // If @connection is closed then the operation will fail with | |
| 1436 | + | // %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will | |
| 1437 | + | // fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed, | |
| 1438 | + | // the operation fails with %G_IO_ERROR_INVALID_ARGUMENT. | |
| 1439 | + | // | |
| 1440 | + | // This is an asynchronous method. When the operation is finished, @callback | |
| 1441 | + | // will be invoked in the | |
| 1442 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1443 | + | // of the thread you are calling this method from. You can then call | |
| 1444 | + | // g_dbus_connection_send_message_with_reply_finish() to get the result of the operation. | |
| 1445 | + | // See g_dbus_connection_send_message_with_reply_sync() for the synchronous version. | |
| 1446 | + | // | |
| 1447 | + | // Note that @message must be unlocked, unless @flags contain the | |
| 1448 | + | // %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag. | |
| 1449 | + | // | |
| 1450 | + | // See this [server][gdbus-server] and [client][gdbus-unix-fd-client] | |
| 1451 | + | // for an example of how to use this low-level API to send and receive | |
| 1452 | + | // UNIX file descriptors. | |
| 1453 | + | func (x *DBusConnection) SendMessageWithReply(MessageVar *DBusMessage, FlagsVar DBusSendMessageFlags, TimeoutMsecVar int32, OutSerialVar uint32, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 1454 | + | ||
| 1455 | + | xDBusConnectionSendMessageWithReply(x.GoPointer(), MessageVar.GoPointer(), FlagsVar, TimeoutMsecVar, OutSerialVar, CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 1456 | + | ||
| 1457 | + | } | |
| 1458 | + | ||
| 1459 | + | var xDBusConnectionSendMessageWithReplyFinish func(uintptr, uintptr) uintptr | |
| 1460 | + | ||
| 1461 | + | // Finishes an operation started with g_dbus_connection_send_message_with_reply(). | |
| 1462 | + | // | |
| 1463 | + | // Note that @error is only set if a local in-process error | |
| 1464 | + | // occurred. That is to say that the returned #GDBusMessage object may | |
| 1465 | + | // be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use | |
| 1466 | + | // g_dbus_message_to_gerror() to transcode this to a #GError. | |
| 1467 | + | // | |
| 1468 | + | // See this [server][gdbus-server] and [client][gdbus-unix-fd-client] | |
| 1469 | + | // for an example of how to use this low-level API to send and receive | |
| 1470 | + | // UNIX file descriptors. | |
| 1471 | + | func (x *DBusConnection) SendMessageWithReplyFinish(ResVar AsyncResult) *DBusMessage { | |
| 1472 | + | ||
| 1473 | + | SendMessageWithReplyFinishPtr := xDBusConnectionSendMessageWithReplyFinish(x.GoPointer(), ResVar.GoPointer()) | |
| 1474 | + | if SendMessageWithReplyFinishPtr == 0 { | |
| 1475 | + | return nil | |
| 1476 | + | } | |
| 1477 | + | ||
| 1478 | + | SendMessageWithReplyFinishCls := &DBusMessage{} | |
| 1479 | + | SendMessageWithReplyFinishCls.Ptr = SendMessageWithReplyFinishPtr | |
| 1480 | + | return SendMessageWithReplyFinishCls | |
| 1481 | + | ||
| 1482 | + | } | |
| 1483 | + | ||
| 1484 | + | var xDBusConnectionSendMessageWithReplySync func(uintptr, uintptr, DBusSendMessageFlags, int32, uint32, uintptr) uintptr | |
| 1485 | + | ||
| 1486 | + | // Synchronously sends @message to the peer represented by @connection | |
| 1487 | + | // and blocks the calling thread until a reply is received or the | |
| 1488 | + | // timeout is reached. See g_dbus_connection_send_message_with_reply() | |
| 1489 | + | // for the asynchronous version of this method. | |
| 1490 | + | // | |
| 1491 | + | // Unless @flags contain the | |
| 1492 | + | // %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag, the serial number | |
| 1493 | + | // will be assigned by @connection and set on @message via | |
| 1494 | + | // g_dbus_message_set_serial(). If @out_serial is not %NULL, then the | |
| 1495 | + | // serial number used will be written to this location prior to | |
| 1496 | + | // submitting the message to the underlying transport. While it has a `volatile` | |
| 1497 | + | // qualifier, this is a historical artifact and the argument passed to it should | |
| 1498 | + | // not be `volatile`. | |
| 1499 | + | // | |
| 1500 | + | // If @connection is closed then the operation will fail with | |
| 1501 | + | // %G_IO_ERROR_CLOSED. If @cancellable is canceled, the operation will | |
| 1502 | + | // fail with %G_IO_ERROR_CANCELLED. If @message is not well-formed, | |
| 1503 | + | // the operation fails with %G_IO_ERROR_INVALID_ARGUMENT. | |
| 1504 | + | // | |
| 1505 | + | // Note that @error is only set if a local in-process error | |
| 1506 | + | // occurred. That is to say that the returned #GDBusMessage object may | |
| 1507 | + | // be of type %G_DBUS_MESSAGE_TYPE_ERROR. Use | |
| 1508 | + | // g_dbus_message_to_gerror() to transcode this to a #GError. | |
| 1509 | + | // | |
| 1510 | + | // See this [server][gdbus-server] and [client][gdbus-unix-fd-client] | |
| 1511 | + | // for an example of how to use this low-level API to send and receive | |
| 1512 | + | // UNIX file descriptors. | |
| 1513 | + | // | |
| 1514 | + | // Note that @message must be unlocked, unless @flags contain the | |
| 1515 | + | // %G_DBUS_SEND_MESSAGE_FLAGS_PRESERVE_SERIAL flag. | |
| 1516 | + | func (x *DBusConnection) SendMessageWithReplySync(MessageVar *DBusMessage, FlagsVar DBusSendMessageFlags, TimeoutMsecVar int32, OutSerialVar uint32, CancellableVar *Cancellable) *DBusMessage { | |
| 1517 | + | ||
| 1518 | + | SendMessageWithReplySyncPtr := xDBusConnectionSendMessageWithReplySync(x.GoPointer(), MessageVar.GoPointer(), FlagsVar, TimeoutMsecVar, OutSerialVar, CancellableVar.GoPointer()) | |
| 1519 | + | if SendMessageWithReplySyncPtr == 0 { | |
| 1520 | + | return nil | |
| 1521 | + | } | |
| 1522 | + | ||
| 1523 | + | SendMessageWithReplySyncCls := &DBusMessage{} | |
| 1524 | + | SendMessageWithReplySyncCls.Ptr = SendMessageWithReplySyncPtr | |
| 1525 | + | return SendMessageWithReplySyncCls | |
| 1526 | + | ||
| 1527 | + | } | |
| 1528 | + | ||
| 1529 | + | var xDBusConnectionSetExitOnClose func(uintptr, bool) | |
| 1530 | + | ||
| 1531 | + | // Sets whether the process should be terminated when @connection is | |
| 1532 | + | // closed by the remote peer. See #GDBusConnection:exit-on-close for | |
| 1533 | + | // more details. | |
| 1534 | + | // | |
| 1535 | + | // Note that this function should be used with care. Most modern UNIX | |
| 1536 | + | // desktops tie the notion of a user session with the session bus, and expect | |
| 1537 | + | // all of a user's applications to quit when their bus connection goes away. | |
| 1538 | + | // If you are setting @exit_on_close to %FALSE for the shared session | |
| 1539 | + | // bus connection, you should make sure that your application exits | |
| 1540 | + | // when the user session ends. | |
| 1541 | + | func (x *DBusConnection) SetExitOnClose(ExitOnCloseVar bool) { | |
| 1542 | + | ||
| 1543 | + | xDBusConnectionSetExitOnClose(x.GoPointer(), ExitOnCloseVar) | |
| 1544 | + | ||
| 1545 | + | } | |
| 1546 | + | ||
| 1547 | + | var xDBusConnectionSignalSubscribe func(uintptr, string, string, string, string, string, DBusSignalFlags, uintptr, uintptr, uintptr) uint | |
| 1548 | + | ||
| 1549 | + | // Subscribes to signals on @connection and invokes @callback with a whenever | |
| 1550 | + | // the signal is received. Note that @callback will be invoked in the | |
| 1551 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 1552 | + | // of the thread you are calling this method from. | |
| 1553 | + | // | |
| 1554 | + | // If @connection is not a message bus connection, @sender must be | |
| 1555 | + | // %NULL. | |
| 1556 | + | // | |
| 1557 | + | // If @sender is a well-known name note that @callback is invoked with | |
| 1558 | + | // the unique name for the owner of @sender, not the well-known name | |
| 1559 | + | // as one would expect. This is because the message bus rewrites the | |
| 1560 | + | // name. As such, to avoid certain race conditions, users should be | |
| 1561 | + | // tracking the name owner of the well-known name and use that when | |
| 1562 | + | // processing the received signal. | |
| 1563 | + | // | |
| 1564 | + | // If one of %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_NAMESPACE or | |
| 1565 | + | // %G_DBUS_SIGNAL_FLAGS_MATCH_ARG0_PATH are given, @arg0 is | |
| 1566 | + | // interpreted as part of a namespace or path. The first argument | |
| 1567 | + | // of a signal is matched against that part as specified by D-Bus. | |
| 1568 | + | // | |
| 1569 | + | // If @user_data_free_func is non-%NULL, it will be called (in the | |
| 1570 | + | // thread-default main context of the thread you are calling this | |
| 1571 | + | // method from) at some point after @user_data is no longer | |
| 1572 | + | // needed. (It is not guaranteed to be called synchronously when the | |
| 1573 | + | // signal is unsubscribed from, and may be called after @connection | |
| 1574 | + | // has been destroyed.) | |
| 1575 | + | // | |
| 1576 | + | // As @callback is potentially invoked in a different thread from where it’s | |
| 1577 | + | // emitted, it’s possible for this to happen after | |
| 1578 | + | // g_dbus_connection_signal_unsubscribe() has been called in another thread. | |
| 1579 | + | // Due to this, @user_data should have a strong reference which is freed with | |
| 1580 | + | // @user_data_free_func, rather than pointing to data whose lifecycle is tied | |
| 1581 | + | // to the signal subscription. For example, if a #GObject is used to store the | |
| 1582 | + | // subscription ID from g_dbus_connection_signal_subscribe(), a strong reference | |
| 1583 | + | // to that #GObject must be passed to @user_data, and g_object_unref() passed to | |
| 1584 | + | // @user_data_free_func. You are responsible for breaking the resulting | |
| 1585 | + | // reference count cycle by explicitly unsubscribing from the signal when | |
| 1586 | + | // dropping the last external reference to the #GObject. Alternatively, a weak | |
| 1587 | + | // reference may be used. | |
| 1588 | + | // | |
| 1589 | + | // It is guaranteed that if you unsubscribe from a signal using | |
| 1590 | + | // g_dbus_connection_signal_unsubscribe() from the same thread which made the | |
| 1591 | + | // corresponding g_dbus_connection_signal_subscribe() call, @callback will not | |
| 1592 | + | // be invoked after g_dbus_connection_signal_unsubscribe() returns. | |
| 1593 | + | // | |
| 1594 | + | // The returned subscription identifier is an opaque value which is guaranteed | |
| 1595 | + | // to never be zero. | |
| 1596 | + | // | |
| 1597 | + | // This function can never fail. | |
| 1598 | + | func (x *DBusConnection) SignalSubscribe(SenderVar string, InterfaceNameVar string, MemberVar string, ObjectPathVar string, Arg0Var string, FlagsVar DBusSignalFlags, CallbackVar DBusSignalCallback, UserDataVar uintptr, UserDataFreeFuncVar glib.DestroyNotify) uint { | |
| 1599 | + | ||
| 1600 | + | return xDBusConnectionSignalSubscribe(x.GoPointer(), SenderVar, InterfaceNameVar, MemberVar, ObjectPathVar, Arg0Var, FlagsVar, purego.NewCallback(CallbackVar), UserDataVar, purego.NewCallback(UserDataFreeFuncVar)) | |
| 1601 | + | ||
| 1602 | + | } | |
| 1603 | + | ||
| 1604 | + | var xDBusConnectionSignalUnsubscribe func(uintptr, uint) | |
| 1605 | + | ||
| 1606 | + | // Unsubscribes from signals. | |
| 1607 | + | // | |
| 1608 | + | // Note that there may still be D-Bus traffic to process (relating to this | |
| 1609 | + | // signal subscription) in the current thread-default #GMainContext after this | |
| 1610 | + | // function has returned. You should continue to iterate the #GMainContext | |
| 1611 | + | // until the #GDestroyNotify function passed to | |
| 1612 | + | // g_dbus_connection_signal_subscribe() is called, in order to avoid memory | |
| 1613 | + | // leaks through callbacks queued on the #GMainContext after it’s stopped being | |
| 1614 | + | // iterated. | |
| 1615 | + | // Alternatively, any idle source with a priority lower than %G_PRIORITY_DEFAULT | |
| 1616 | + | // that was scheduled after unsubscription, also indicates that all resources | |
| 1617 | + | // of this subscription are released. | |
| 1618 | + | func (x *DBusConnection) SignalUnsubscribe(SubscriptionIdVar uint) { | |
| 1619 | + | ||
| 1620 | + | xDBusConnectionSignalUnsubscribe(x.GoPointer(), SubscriptionIdVar) | |
| 1621 | + | ||
| 1622 | + | } | |
| 1623 | + | ||
| 1624 | + | var xDBusConnectionStartMessageProcessing func(uintptr) | |
| 1625 | + | ||
| 1626 | + | // If @connection was created with | |
| 1627 | + | // %G_DBUS_CONNECTION_FLAGS_DELAY_MESSAGE_PROCESSING, this method | |
| 1628 | + | // starts processing messages. Does nothing on if @connection wasn't | |
| 1629 | + | // created with this flag or if the method has already been called. | |
| 1630 | + | func (x *DBusConnection) StartMessageProcessing() { | |
| 1631 | + | ||
| 1632 | + | xDBusConnectionStartMessageProcessing(x.GoPointer()) | |
| 1633 | + | ||
| 1634 | + | } | |
| 1635 | + | ||
| 1636 | + | var xDBusConnectionUnexportActionGroup func(uintptr, uint) | |
| 1637 | + | ||
| 1638 | + | // Reverses the effect of a previous call to | |
| 1639 | + | // g_dbus_connection_export_action_group(). | |
| 1640 | + | // | |
| 1641 | + | // It is an error to call this function with an ID that wasn't returned | |
| 1642 | + | // from g_dbus_connection_export_action_group() or to call it with the | |
| 1643 | + | // same ID more than once. | |
| 1644 | + | func (x *DBusConnection) UnexportActionGroup(ExportIdVar uint) { | |
| 1645 | + | ||
| 1646 | + | xDBusConnectionUnexportActionGroup(x.GoPointer(), ExportIdVar) | |
| 1647 | + | ||
| 1648 | + | } | |
| 1649 | + | ||
| 1650 | + | var xDBusConnectionUnexportMenuModel func(uintptr, uint) | |
| 1651 | + | ||
| 1652 | + | // Reverses the effect of a previous call to | |
| 1653 | + | // g_dbus_connection_export_menu_model(). | |
| 1654 | + | // | |
| 1655 | + | // It is an error to call this function with an ID that wasn't returned | |
| 1656 | + | // from g_dbus_connection_export_menu_model() or to call it with the | |
| 1657 | + | // same ID more than once. | |
| 1658 | + | func (x *DBusConnection) UnexportMenuModel(ExportIdVar uint) { | |
| 1659 | + | ||
| 1660 | + | xDBusConnectionUnexportMenuModel(x.GoPointer(), ExportIdVar) | |
| 1661 | + | ||
| 1662 | + | } | |
| 1663 | + | ||
| 1664 | + | var xDBusConnectionUnregisterObject func(uintptr, uint) bool | |
| 1665 | + | ||
| 1666 | + | // Unregisters an object. | |
| 1667 | + | func (x *DBusConnection) UnregisterObject(RegistrationIdVar uint) bool { | |
| 1668 | + | ||
| 1669 | + | return xDBusConnectionUnregisterObject(x.GoPointer(), RegistrationIdVar) | |
| 1670 | + | ||
| 1671 | + | } | |
| 1672 | + | ||
| 1673 | + | var xDBusConnectionUnregisterSubtree func(uintptr, uint) bool | |
| 1674 | + | ||
| 1675 | + | // Unregisters a subtree. | |
| 1676 | + | func (x *DBusConnection) UnregisterSubtree(RegistrationIdVar uint) bool { | |
| 1677 | + | ||
| 1678 | + | return xDBusConnectionUnregisterSubtree(x.GoPointer(), RegistrationIdVar) | |
| 1679 | + | ||
| 1680 | + | } | |
| 1681 | + | ||
| 1682 | + | func (c *DBusConnection) GoPointer() uintptr { | |
| 1683 | + | return c.Ptr | |
| 1684 | + | } | |
| 1685 | + | ||
| 1686 | + | func (c *DBusConnection) SetGoPointer(ptr uintptr) { | |
| 1687 | + | c.Ptr = ptr | |
| 1688 | + | } | |
| 1689 | + | ||
| 1690 | + | // Emitted when the connection is closed. | |
| 1691 | + | // | |
| 1692 | + | // # The cause of this event can be | |
| 1693 | + | // | |
| 1694 | + | // - If g_dbus_connection_close() is called. In this case | |
| 1695 | + | // @remote_peer_vanished is set to %FALSE and @error is %NULL. | |
| 1696 | + | // | |
| 1697 | + | // - If the remote peer closes the connection. In this case | |
| 1698 | + | // @remote_peer_vanished is set to %TRUE and @error is set. | |
| 1699 | + | // | |
| 1700 | + | // - If the remote peer sends invalid or malformed data. In this | |
| 1701 | + | // case @remote_peer_vanished is set to %FALSE and @error is set. | |
| 1702 | + | // | |
| 1703 | + | // Upon receiving this signal, you should give up your reference to | |
| 1704 | + | // @connection. You are guaranteed that this signal is emitted only | |
| 1705 | + | // once. | |
| 1706 | + | func (x *DBusConnection) ConnectClosed(cb func(DBusConnection, bool, uintptr)) { | |
| 1707 | + | fcb := func(clsPtr uintptr, RemotePeerVanishedVarp bool, ErrorVarp uintptr) { | |
| 1708 | + | fa := DBusConnection{} | |
| 1709 | + | fa.Ptr = clsPtr | |
| 1710 | + | ||
| 1711 | + | cb(fa, RemotePeerVanishedVarp, ErrorVarp) | |
| 1712 | + | ||
| 1713 | + | } | |
| 1714 | + | gobject.ObjectConnect(x.GoPointer(), "signal::closed", purego.NewCallback(fcb)) | |
| 1715 | + | } | |
| 1716 | + | ||
| 1717 | + | // Starts asynchronous initialization of the object implementing the | |
| 1718 | + | // interface. This must be done before any real use of the object after | |
| 1719 | + | // initial construction. If the object also implements #GInitable you can | |
| 1720 | + | // optionally call g_initable_init() instead. | |
| 1721 | + | // | |
| 1722 | + | // This method is intended for language bindings. If writing in C, | |
| 1723 | + | // g_async_initable_new_async() should typically be used instead. | |
| 1724 | + | // | |
| 1725 | + | // When the initialization is finished, @callback will be called. You can | |
| 1726 | + | // then call g_async_initable_init_finish() to get the result of the | |
| 1727 | + | // initialization. | |
| 1728 | + | // | |
| 1729 | + | // Implementations may also support cancellation. If @cancellable is not | |
| 1730 | + | // %NULL, then initialization can be cancelled by triggering the cancellable | |
| 1731 | + | // object from another thread. If the operation was cancelled, the error | |
| 1732 | + | // %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL, and | |
| 1733 | + | // the object doesn't support cancellable initialization, the error | |
| 1734 | + | // %G_IO_ERROR_NOT_SUPPORTED will be returned. | |
| 1735 | + | // | |
| 1736 | + | // As with #GInitable, if the object is not initialized, or initialization | |
| 1737 | + | // returns with an error, then all operations on the object except | |
| 1738 | + | // g_object_ref() and g_object_unref() are considered to be invalid, and | |
| 1739 | + | // have undefined behaviour. They will often fail with g_critical() or | |
| 1740 | + | // g_warning(), but this must not be relied on. | |
| 1741 | + | // | |
| 1742 | + | // Callers should not assume that a class which implements #GAsyncInitable can | |
| 1743 | + | // be initialized multiple times; for more information, see g_initable_init(). | |
| 1744 | + | // If a class explicitly supports being initialized multiple times, | |
| 1745 | + | // implementation requires yielding all subsequent calls to init_async() on the | |
| 1746 | + | // results of the first call. | |
| 1747 | + | // | |
| 1748 | + | // For classes that also support the #GInitable interface, the default | |
| 1749 | + | // implementation of this method will run the g_initable_init() function | |
| 1750 | + | // in a thread, so if you want to support asynchronous initialization via | |
| 1751 | + | // threads, just implement the #GAsyncInitable interface without overriding | |
| 1752 | + | // any interface methods. | |
| 1753 | + | func (x *DBusConnection) InitAsync(IoPriorityVar int32, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 1754 | + | ||
| 1755 | + | XGAsyncInitableInitAsync(x.GoPointer(), IoPriorityVar, CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 1756 | + | ||
| 1757 | + | } | |
| 1758 | + | ||
| 1759 | + | // Finishes asynchronous initialization and returns the result. | |
| 1760 | + | // See g_async_initable_init_async(). | |
| 1761 | + | func (x *DBusConnection) InitFinish(ResVar AsyncResult) bool { | |
| 1762 | + | ||
| 1763 | + | return XGAsyncInitableInitFinish(x.GoPointer(), ResVar.GoPointer()) | |
| 1764 | + | ||
| 1765 | + | } | |
| 1766 | + | ||
| 1767 | + | // Finishes the async construction for the various g_async_initable_new | |
| 1768 | + | // calls, returning the created object or %NULL on error. | |
| 1769 | + | func (x *DBusConnection) NewFinish(ResVar AsyncResult) *gobject.Object { | |
| 1770 | + | ||
| 1771 | + | NewFinishPtr := XGAsyncInitableNewFinish(x.GoPointer(), ResVar.GoPointer()) | |
| 1772 | + | if NewFinishPtr == 0 { | |
| 1773 | + | return nil | |
| 1774 | + | } | |
| 1775 | + | ||
| 1776 | + | NewFinishCls := &gobject.Object{} | |
| 1777 | + | NewFinishCls.Ptr = NewFinishPtr | |
| 1778 | + | return NewFinishCls | |
| 1779 | + | ||
| 1780 | + | } | |
| 1781 | + | ||
| 1782 | + | // Initializes the object implementing the interface. | |
| 1783 | + | // | |
| 1784 | + | // This method is intended for language bindings. If writing in C, | |
| 1785 | + | // g_initable_new() should typically be used instead. | |
| 1786 | + | // | |
| 1787 | + | // The object must be initialized before any real use after initial | |
| 1788 | + | // construction, either with this function or g_async_initable_init_async(). | |
| 1789 | + | // | |
| 1790 | + | // Implementations may also support cancellation. If @cancellable is not %NULL, | |
| 1791 | + | // then initialization can be cancelled by triggering the cancellable object | |
| 1792 | + | // from another thread. If the operation was cancelled, the error | |
| 1793 | + | // %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and | |
| 1794 | + | // the object doesn't support cancellable initialization the error | |
| 1795 | + | // %G_IO_ERROR_NOT_SUPPORTED will be returned. | |
| 1796 | + | // | |
| 1797 | + | // If the object is not initialized, or initialization returns with an | |
| 1798 | + | // error, then all operations on the object except g_object_ref() and | |
| 1799 | + | // g_object_unref() are considered to be invalid, and have undefined | |
| 1800 | + | // behaviour. See the [introduction][ginitable] for more details. | |
| 1801 | + | // | |
| 1802 | + | // Callers should not assume that a class which implements #GInitable can be | |
| 1803 | + | // initialized multiple times, unless the class explicitly documents itself as | |
| 1804 | + | // supporting this. Generally, a class’ implementation of init() can assume | |
| 1805 | + | // (and assert) that it will only be called once. Previously, this documentation | |
| 1806 | + | // recommended all #GInitable implementations should be idempotent; that | |
| 1807 | + | // recommendation was relaxed in GLib 2.54. | |
| 1808 | + | // | |
| 1809 | + | // If a class explicitly supports being initialized multiple times, it is | |
| 1810 | + | // recommended that the method is idempotent: multiple calls with the same | |
| 1811 | + | // arguments should return the same results. Only the first call initializes | |
| 1812 | + | // the object; further calls return the result of the first call. | |
| 1813 | + | // | |
| 1814 | + | // One reason why a class might need to support idempotent initialization is if | |
| 1815 | + | // it is designed to be used via the singleton pattern, with a | |
| 1816 | + | // #GObjectClass.constructor that sometimes returns an existing instance. | |
| 1817 | + | // In this pattern, a caller would expect to be able to call g_initable_init() | |
| 1818 | + | // on the result of g_object_new(), regardless of whether it is in fact a new | |
| 1819 | + | // instance. | |
| 1820 | + | func (x *DBusConnection) Init(CancellableVar *Cancellable) bool { | |
| 1821 | + | ||
| 1822 | + | return XGInitableInit(x.GoPointer(), CancellableVar.GoPointer()) | |
| 1823 | + | ||
| 1824 | + | } | |
| 1825 | + | ||
| 1826 | + | // #GDBusMenuModel is an implementation of #GMenuModel that can be used | |
| 1827 | + | // as a proxy for a menu model that is exported over D-Bus with | |
| 1828 | + | // g_dbus_connection_export_menu_model(). | |
| 1829 | + | type DBusMenuModel struct { | |
| 1830 | + | MenuModel | |
| 1831 | + | } | |
| 1832 | + | ||
| 1833 | + | func DBusMenuModelNewFromInternalPtr(ptr uintptr) *DBusMenuModel { | |
| 1834 | + | cls := &DBusMenuModel{} | |
| 1835 | + | cls.Ptr = ptr | |
| 1836 | + | return cls | |
| 1837 | + | } | |
| 1838 | + | ||
| 1839 | + | func (c *DBusMenuModel) GoPointer() uintptr { | |
| 1840 | + | return c.Ptr | |
| 1841 | + | } | |
| 1842 | + | ||
| 1843 | + | func (c *DBusMenuModel) SetGoPointer(ptr uintptr) { | |
| 1844 | + | c.Ptr = ptr | |
| 1845 | + | } | |
| 1846 | + | ||
| 1847 | + | // A type for representing D-Bus messages that can be sent or received | |
| 1848 | + | // on a #GDBusConnection. | |
| 1849 | + | type DBusMessage struct { | |
| 1850 | + | gobject.Object | |
| 1851 | + | } | |
| 1852 | + | ||
| 1853 | + | func DBusMessageNewFromInternalPtr(ptr uintptr) *DBusMessage { | |
| 1854 | + | cls := &DBusMessage{} | |
| 1855 | + | cls.Ptr = ptr | |
| 1856 | + | return cls | |
| 1857 | + | } | |
| 1858 | + | ||
| 1859 | + | var xNewDBusMessage func() uintptr | |
| 1860 | + | ||
| 1861 | + | // Creates a new empty #GDBusMessage. | |
| 1862 | + | func NewDBusMessage() *DBusMessage { | |
| 1863 | + | NewDBusMessagePtr := xNewDBusMessage() | |
| 1864 | + | if NewDBusMessagePtr == 0 { | |
| 1865 | + | return nil | |
| 1866 | + | } | |
| 1867 | + | ||
| 1868 | + | NewDBusMessageCls := &DBusMessage{} | |
| 1869 | + | NewDBusMessageCls.Ptr = NewDBusMessagePtr | |
| 1870 | + | return NewDBusMessageCls | |
| 1871 | + | } | |
| 1872 | + | ||
| 1873 | + | var xNewFromBlobDBusMessage func(uintptr, uint, DBusCapabilityFlags) uintptr | |
| 1874 | + | ||
| 1875 | + | // Creates a new #GDBusMessage from the data stored at @blob. The byte | |
| 1876 | + | // order that the message was in can be retrieved using | |
| 1877 | + | // g_dbus_message_get_byte_order(). | |
| 1878 | + | // | |
| 1879 | + | // If the @blob cannot be parsed, contains invalid fields, or contains invalid | |
| 1880 | + | // headers, %G_IO_ERROR_INVALID_ARGUMENT will be returned. | |
| 1881 | + | func NewFromBlobDBusMessage(BlobVar uintptr, BlobLenVar uint, CapabilitiesVar DBusCapabilityFlags) *DBusMessage { | |
| 1882 | + | NewFromBlobDBusMessagePtr := xNewFromBlobDBusMessage(BlobVar, BlobLenVar, CapabilitiesVar) | |
| 1883 | + | if NewFromBlobDBusMessagePtr == 0 { | |
| 1884 | + | return nil | |
| 1885 | + | } | |
| 1886 | + | ||
| 1887 | + | NewFromBlobDBusMessageCls := &DBusMessage{} | |
| 1888 | + | NewFromBlobDBusMessageCls.Ptr = NewFromBlobDBusMessagePtr | |
| 1889 | + | return NewFromBlobDBusMessageCls | |
| 1890 | + | } | |
| 1891 | + | ||
| 1892 | + | var xNewMethodCallDBusMessage func(string, string, string, string) uintptr | |
| 1893 | + | ||
| 1894 | + | // Creates a new #GDBusMessage for a method call. | |
| 1895 | + | func NewMethodCallDBusMessage(NameVar string, PathVar string, InterfaceVar string, MethodVar string) *DBusMessage { | |
| 1896 | + | NewMethodCallDBusMessagePtr := xNewMethodCallDBusMessage(NameVar, PathVar, InterfaceVar, MethodVar) | |
| 1897 | + | if NewMethodCallDBusMessagePtr == 0 { | |
| 1898 | + | return nil | |
| 1899 | + | } | |
| 1900 | + | ||
| 1901 | + | NewMethodCallDBusMessageCls := &DBusMessage{} | |
| 1902 | + | NewMethodCallDBusMessageCls.Ptr = NewMethodCallDBusMessagePtr | |
| 1903 | + | return NewMethodCallDBusMessageCls | |
| 1904 | + | } | |
| 1905 | + | ||
| 1906 | + | var xNewSignalDBusMessage func(string, string, string) uintptr | |
| 1907 | + | ||
| 1908 | + | // Creates a new #GDBusMessage for a signal emission. | |
| 1909 | + | func NewSignalDBusMessage(PathVar string, InterfaceVar string, SignalVar string) *DBusMessage { | |
| 1910 | + | NewSignalDBusMessagePtr := xNewSignalDBusMessage(PathVar, InterfaceVar, SignalVar) | |
| 1911 | + | if NewSignalDBusMessagePtr == 0 { | |
| 1912 | + | return nil | |
| 1913 | + | } | |
| 1914 | + | ||
| 1915 | + | NewSignalDBusMessageCls := &DBusMessage{} | |
| 1916 | + | NewSignalDBusMessageCls.Ptr = NewSignalDBusMessagePtr | |
| 1917 | + | return NewSignalDBusMessageCls | |
| 1918 | + | } | |
| 1919 | + | ||
| 1920 | + | var xDBusMessageCopy func(uintptr) uintptr | |
| 1921 | + | ||
| 1922 | + | // Copies @message. The copy is a deep copy and the returned | |
| 1923 | + | // #GDBusMessage is completely identical except that it is guaranteed | |
| 1924 | + | // to not be locked. | |
| 1925 | + | // | |
| 1926 | + | // This operation can fail if e.g. @message contains file descriptors | |
| 1927 | + | // and the per-process or system-wide open files limit is reached. | |
| 1928 | + | func (x *DBusMessage) Copy() *DBusMessage { | |
| 1929 | + | ||
| 1930 | + | CopyPtr := xDBusMessageCopy(x.GoPointer()) | |
| 1931 | + | if CopyPtr == 0 { | |
| 1932 | + | return nil | |
| 1933 | + | } | |
| 1934 | + | ||
| 1935 | + | CopyCls := &DBusMessage{} | |
| 1936 | + | CopyCls.Ptr = CopyPtr | |
| 1937 | + | return CopyCls | |
| 1938 | + | ||
| 1939 | + | } | |
| 1940 | + | ||
| 1941 | + | var xDBusMessageGetArg0 func(uintptr) string | |
| 1942 | + | ||
| 1943 | + | // Convenience to get the first item in the body of @message. | |
| 1944 | + | func (x *DBusMessage) GetArg0() string { | |
| 1945 | + | ||
| 1946 | + | return xDBusMessageGetArg0(x.GoPointer()) | |
| 1947 | + | ||
| 1948 | + | } | |
| 1949 | + | ||
| 1950 | + | var xDBusMessageGetBody func(uintptr) *glib.Variant | |
| 1951 | + | ||
| 1952 | + | // Gets the body of a message. | |
| 1953 | + | func (x *DBusMessage) GetBody() *glib.Variant { | |
| 1954 | + | ||
| 1955 | + | return xDBusMessageGetBody(x.GoPointer()) | |
| 1956 | + | ||
| 1957 | + | } | |
| 1958 | + | ||
| 1959 | + | var xDBusMessageGetByteOrder func(uintptr) DBusMessageByteOrder | |
| 1960 | + | ||
| 1961 | + | // Gets the byte order of @message. | |
| 1962 | + | func (x *DBusMessage) GetByteOrder() DBusMessageByteOrder { | |
| 1963 | + | ||
| 1964 | + | return xDBusMessageGetByteOrder(x.GoPointer()) | |
| 1965 | + | ||
| 1966 | + | } | |
| 1967 | + | ||
| 1968 | + | var xDBusMessageGetDestination func(uintptr) string | |
| 1969 | + | ||
| 1970 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field. | |
| 1971 | + | func (x *DBusMessage) GetDestination() string { | |
| 1972 | + | ||
| 1973 | + | return xDBusMessageGetDestination(x.GoPointer()) | |
| 1974 | + | ||
| 1975 | + | } | |
| 1976 | + | ||
| 1977 | + | var xDBusMessageGetErrorName func(uintptr) string | |
| 1978 | + | ||
| 1979 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field. | |
| 1980 | + | func (x *DBusMessage) GetErrorName() string { | |
| 1981 | + | ||
| 1982 | + | return xDBusMessageGetErrorName(x.GoPointer()) | |
| 1983 | + | ||
| 1984 | + | } | |
| 1985 | + | ||
| 1986 | + | var xDBusMessageGetFlags func(uintptr) DBusMessageFlags | |
| 1987 | + | ||
| 1988 | + | // Gets the flags for @message. | |
| 1989 | + | func (x *DBusMessage) GetFlags() DBusMessageFlags { | |
| 1990 | + | ||
| 1991 | + | return xDBusMessageGetFlags(x.GoPointer()) | |
| 1992 | + | ||
| 1993 | + | } | |
| 1994 | + | ||
| 1995 | + | var xDBusMessageGetHeader func(uintptr, DBusMessageHeaderField) *glib.Variant | |
| 1996 | + | ||
| 1997 | + | // Gets a header field on @message. | |
| 1998 | + | // | |
| 1999 | + | // The caller is responsible for checking the type of the returned #GVariant | |
| 2000 | + | // matches what is expected. | |
| 2001 | + | func (x *DBusMessage) GetHeader(HeaderFieldVar DBusMessageHeaderField) *glib.Variant { | |
| 2002 | + | ||
| 2003 | + | return xDBusMessageGetHeader(x.GoPointer(), HeaderFieldVar) | |
| 2004 | + | ||
| 2005 | + | } | |
| 2006 | + | ||
| 2007 | + | var xDBusMessageGetHeaderFields func(uintptr) uintptr | |
| 2008 | + | ||
| 2009 | + | // Gets an array of all header fields on @message that are set. | |
| 2010 | + | func (x *DBusMessage) GetHeaderFields() uintptr { | |
| 2011 | + | ||
| 2012 | + | return xDBusMessageGetHeaderFields(x.GoPointer()) | |
| 2013 | + | ||
| 2014 | + | } | |
| 2015 | + | ||
| 2016 | + | var xDBusMessageGetInterface func(uintptr) string | |
| 2017 | + | ||
| 2018 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field. | |
| 2019 | + | func (x *DBusMessage) GetInterface() string { | |
| 2020 | + | ||
| 2021 | + | return xDBusMessageGetInterface(x.GoPointer()) | |
| 2022 | + | ||
| 2023 | + | } | |
| 2024 | + | ||
| 2025 | + | var xDBusMessageGetLocked func(uintptr) bool | |
| 2026 | + | ||
| 2027 | + | // Checks whether @message is locked. To monitor changes to this | |
| 2028 | + | // value, conncet to the #GObject::notify signal to listen for changes | |
| 2029 | + | // on the #GDBusMessage:locked property. | |
| 2030 | + | func (x *DBusMessage) GetLocked() bool { | |
| 2031 | + | ||
| 2032 | + | return xDBusMessageGetLocked(x.GoPointer()) | |
| 2033 | + | ||
| 2034 | + | } | |
| 2035 | + | ||
| 2036 | + | var xDBusMessageGetMember func(uintptr) string | |
| 2037 | + | ||
| 2038 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field. | |
| 2039 | + | func (x *DBusMessage) GetMember() string { | |
| 2040 | + | ||
| 2041 | + | return xDBusMessageGetMember(x.GoPointer()) | |
| 2042 | + | ||
| 2043 | + | } | |
| 2044 | + | ||
| 2045 | + | var xDBusMessageGetMessageType func(uintptr) DBusMessageType | |
| 2046 | + | ||
| 2047 | + | // Gets the type of @message. | |
| 2048 | + | func (x *DBusMessage) GetMessageType() DBusMessageType { | |
| 2049 | + | ||
| 2050 | + | return xDBusMessageGetMessageType(x.GoPointer()) | |
| 2051 | + | ||
| 2052 | + | } | |
| 2053 | + | ||
| 2054 | + | var xDBusMessageGetNumUnixFds func(uintptr) uint32 | |
| 2055 | + | ||
| 2056 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field. | |
| 2057 | + | func (x *DBusMessage) GetNumUnixFds() uint32 { | |
| 2058 | + | ||
| 2059 | + | return xDBusMessageGetNumUnixFds(x.GoPointer()) | |
| 2060 | + | ||
| 2061 | + | } | |
| 2062 | + | ||
| 2063 | + | var xDBusMessageGetPath func(uintptr) string | |
| 2064 | + | ||
| 2065 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field. | |
| 2066 | + | func (x *DBusMessage) GetPath() string { | |
| 2067 | + | ||
| 2068 | + | return xDBusMessageGetPath(x.GoPointer()) | |
| 2069 | + | ||
| 2070 | + | } | |
| 2071 | + | ||
| 2072 | + | var xDBusMessageGetReplySerial func(uintptr) uint32 | |
| 2073 | + | ||
| 2074 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field. | |
| 2075 | + | func (x *DBusMessage) GetReplySerial() uint32 { | |
| 2076 | + | ||
| 2077 | + | return xDBusMessageGetReplySerial(x.GoPointer()) | |
| 2078 | + | ||
| 2079 | + | } | |
| 2080 | + | ||
| 2081 | + | var xDBusMessageGetSender func(uintptr) string | |
| 2082 | + | ||
| 2083 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field. | |
| 2084 | + | func (x *DBusMessage) GetSender() string { | |
| 2085 | + | ||
| 2086 | + | return xDBusMessageGetSender(x.GoPointer()) | |
| 2087 | + | ||
| 2088 | + | } | |
| 2089 | + | ||
| 2090 | + | var xDBusMessageGetSerial func(uintptr) uint32 | |
| 2091 | + | ||
| 2092 | + | // Gets the serial for @message. | |
| 2093 | + | func (x *DBusMessage) GetSerial() uint32 { | |
| 2094 | + | ||
| 2095 | + | return xDBusMessageGetSerial(x.GoPointer()) | |
| 2096 | + | ||
| 2097 | + | } | |
| 2098 | + | ||
| 2099 | + | var xDBusMessageGetSignature func(uintptr) string | |
| 2100 | + | ||
| 2101 | + | // Convenience getter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field. | |
| 2102 | + | // | |
| 2103 | + | // This will always be non-%NULL, but may be an empty string. | |
| 2104 | + | func (x *DBusMessage) GetSignature() string { | |
| 2105 | + | ||
| 2106 | + | return xDBusMessageGetSignature(x.GoPointer()) | |
| 2107 | + | ||
| 2108 | + | } | |
| 2109 | + | ||
| 2110 | + | var xDBusMessageGetUnixFdList func(uintptr) uintptr | |
| 2111 | + | ||
| 2112 | + | // Gets the UNIX file descriptors associated with @message, if any. | |
| 2113 | + | // | |
| 2114 | + | // This method is only available on UNIX. | |
| 2115 | + | // | |
| 2116 | + | // The file descriptors normally correspond to %G_VARIANT_TYPE_HANDLE | |
| 2117 | + | // values in the body of the message. For example, | |
| 2118 | + | // if g_variant_get_handle() returns 5, that is intended to be a reference | |
| 2119 | + | // to the file descriptor that can be accessed by | |
| 2120 | + | // `g_unix_fd_list_get (list, 5, ...)`. | |
| 2121 | + | func (x *DBusMessage) GetUnixFdList() *UnixFDList { | |
| 2122 | + | ||
| 2123 | + | GetUnixFdListPtr := xDBusMessageGetUnixFdList(x.GoPointer()) | |
| 2124 | + | if GetUnixFdListPtr == 0 { | |
| 2125 | + | return nil | |
| 2126 | + | } | |
| 2127 | + | ||
| 2128 | + | gobject.IncreaseRef(GetUnixFdListPtr) | |
| 2129 | + | ||
| 2130 | + | GetUnixFdListCls := &UnixFDList{} | |
| 2131 | + | GetUnixFdListCls.Ptr = GetUnixFdListPtr | |
| 2132 | + | return GetUnixFdListCls | |
| 2133 | + | ||
| 2134 | + | } | |
| 2135 | + | ||
| 2136 | + | var xDBusMessageLock func(uintptr) | |
| 2137 | + | ||
| 2138 | + | // If @message is locked, does nothing. Otherwise locks the message. | |
| 2139 | + | func (x *DBusMessage) Lock() { | |
| 2140 | + | ||
| 2141 | + | xDBusMessageLock(x.GoPointer()) | |
| 2142 | + | ||
| 2143 | + | } | |
| 2144 | + | ||
| 2145 | + | var xDBusMessageNewMethodError func(uintptr, string, string, ...interface{}) uintptr | |
| 2146 | + | ||
| 2147 | + | // Creates a new #GDBusMessage that is an error reply to @method_call_message. | |
| 2148 | + | func (x *DBusMessage) NewMethodError(ErrorNameVar string, ErrorMessageFormatVar string, varArgs ...interface{}) *DBusMessage { | |
| 2149 | + | ||
| 2150 | + | NewMethodErrorPtr := xDBusMessageNewMethodError(x.GoPointer(), ErrorNameVar, ErrorMessageFormatVar, varArgs...) | |
| 2151 | + | if NewMethodErrorPtr == 0 { | |
| 2152 | + | return nil | |
| 2153 | + | } | |
| 2154 | + | ||
| 2155 | + | NewMethodErrorCls := &DBusMessage{} | |
| 2156 | + | NewMethodErrorCls.Ptr = NewMethodErrorPtr | |
| 2157 | + | return NewMethodErrorCls | |
| 2158 | + | ||
| 2159 | + | } | |
| 2160 | + | ||
| 2161 | + | var xDBusMessageNewMethodErrorLiteral func(uintptr, string, string) uintptr | |
| 2162 | + | ||
| 2163 | + | // Creates a new #GDBusMessage that is an error reply to @method_call_message. | |
| 2164 | + | func (x *DBusMessage) NewMethodErrorLiteral(ErrorNameVar string, ErrorMessageVar string) *DBusMessage { | |
| 2165 | + | ||
| 2166 | + | NewMethodErrorLiteralPtr := xDBusMessageNewMethodErrorLiteral(x.GoPointer(), ErrorNameVar, ErrorMessageVar) | |
| 2167 | + | if NewMethodErrorLiteralPtr == 0 { | |
| 2168 | + | return nil | |
| 2169 | + | } | |
| 2170 | + | ||
| 2171 | + | NewMethodErrorLiteralCls := &DBusMessage{} | |
| 2172 | + | NewMethodErrorLiteralCls.Ptr = NewMethodErrorLiteralPtr | |
| 2173 | + | return NewMethodErrorLiteralCls | |
| 2174 | + | ||
| 2175 | + | } | |
| 2176 | + | ||
| 2177 | + | var xDBusMessageNewMethodErrorValist func(uintptr, string, string, []interface{}) uintptr | |
| 2178 | + | ||
| 2179 | + | // Like g_dbus_message_new_method_error() but intended for language bindings. | |
| 2180 | + | func (x *DBusMessage) NewMethodErrorValist(ErrorNameVar string, ErrorMessageFormatVar string, VarArgsVar []interface{}) *DBusMessage { | |
| 2181 | + | ||
| 2182 | + | NewMethodErrorValistPtr := xDBusMessageNewMethodErrorValist(x.GoPointer(), ErrorNameVar, ErrorMessageFormatVar, VarArgsVar) | |
| 2183 | + | if NewMethodErrorValistPtr == 0 { | |
| 2184 | + | return nil | |
| 2185 | + | } | |
| 2186 | + | ||
| 2187 | + | NewMethodErrorValistCls := &DBusMessage{} | |
| 2188 | + | NewMethodErrorValistCls.Ptr = NewMethodErrorValistPtr | |
| 2189 | + | return NewMethodErrorValistCls | |
| 2190 | + | ||
| 2191 | + | } | |
| 2192 | + | ||
| 2193 | + | var xDBusMessageNewMethodReply func(uintptr) uintptr | |
| 2194 | + | ||
| 2195 | + | // Creates a new #GDBusMessage that is a reply to @method_call_message. | |
| 2196 | + | func (x *DBusMessage) NewMethodReply() *DBusMessage { | |
| 2197 | + | ||
| 2198 | + | NewMethodReplyPtr := xDBusMessageNewMethodReply(x.GoPointer()) | |
| 2199 | + | if NewMethodReplyPtr == 0 { | |
| 2200 | + | return nil | |
| 2201 | + | } | |
| 2202 | + | ||
| 2203 | + | NewMethodReplyCls := &DBusMessage{} | |
| 2204 | + | NewMethodReplyCls.Ptr = NewMethodReplyPtr | |
| 2205 | + | return NewMethodReplyCls | |
| 2206 | + | ||
| 2207 | + | } | |
| 2208 | + | ||
| 2209 | + | var xDBusMessagePrint func(uintptr, uint) string | |
| 2210 | + | ||
| 2211 | + | // Produces a human-readable multi-line description of @message. | |
| 2212 | + | // | |
| 2213 | + | // The contents of the description has no ABI guarantees, the contents | |
| 2214 | + | // and formatting is subject to change at any time. Typical output | |
| 2215 | + | // looks something like this: | |
| 2216 | + | // |[ | |
| 2217 | + | // Flags: none | |
| 2218 | + | // Version: 0 | |
| 2219 | + | // Serial: 4 | |
| 2220 | + | // Headers: | |
| 2221 | + | // | |
| 2222 | + | // path -> objectpath '/org/gtk/GDBus/TestObject' | |
| 2223 | + | // interface -> 'org.gtk.GDBus.TestInterface' | |
| 2224 | + | // member -> 'GimmeStdout' | |
| 2225 | + | // destination -> ':1.146' | |
| 2226 | + | // | |
| 2227 | + | // Body: () | |
| 2228 | + | // UNIX File Descriptors: | |
| 2229 | + | // | |
| 2230 | + | // (none) | |
| 2231 | + | // | |
| 2232 | + | // ]| | |
| 2233 | + | // or | |
| 2234 | + | // |[ | |
| 2235 | + | // Flags: no-reply-expected | |
| 2236 | + | // Version: 0 | |
| 2237 | + | // Serial: 477 | |
| 2238 | + | // Headers: | |
| 2239 | + | // | |
| 2240 | + | // reply-serial -> uint32 4 | |
| 2241 | + | // destination -> ':1.159' | |
| 2242 | + | // sender -> ':1.146' | |
| 2243 | + | // num-unix-fds -> uint32 1 | |
| 2244 | + | // | |
| 2245 | + | // Body: () | |
| 2246 | + | // UNIX File Descriptors: | |
| 2247 | + | // | |
| 2248 | + | // fd 12: dev=0:10,mode=020620,ino=5,uid=500,gid=5,rdev=136:2,size=0,atime=1273085037,mtime=1273085851,ctime=1272982635 | |
| 2249 | + | // | |
| 2250 | + | // ]| | |
| 2251 | + | func (x *DBusMessage) Print(IndentVar uint) string { | |
| 2252 | + | ||
| 2253 | + | return xDBusMessagePrint(x.GoPointer(), IndentVar) | |
| 2254 | + | ||
| 2255 | + | } | |
| 2256 | + | ||
| 2257 | + | var xDBusMessageSetBody func(uintptr, *glib.Variant) | |
| 2258 | + | ||
| 2259 | + | // Sets the body @message. As a side-effect the | |
| 2260 | + | // %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field is set to the | |
| 2261 | + | // type string of @body (or cleared if @body is %NULL). | |
| 2262 | + | // | |
| 2263 | + | // If @body is floating, @message assumes ownership of @body. | |
| 2264 | + | func (x *DBusMessage) SetBody(BodyVar *glib.Variant) { | |
| 2265 | + | ||
| 2266 | + | xDBusMessageSetBody(x.GoPointer(), BodyVar) | |
| 2267 | + | ||
| 2268 | + | } | |
| 2269 | + | ||
| 2270 | + | var xDBusMessageSetByteOrder func(uintptr, DBusMessageByteOrder) | |
| 2271 | + | ||
| 2272 | + | // Sets the byte order of @message. | |
| 2273 | + | func (x *DBusMessage) SetByteOrder(ByteOrderVar DBusMessageByteOrder) { | |
| 2274 | + | ||
| 2275 | + | xDBusMessageSetByteOrder(x.GoPointer(), ByteOrderVar) | |
| 2276 | + | ||
| 2277 | + | } | |
| 2278 | + | ||
| 2279 | + | var xDBusMessageSetDestination func(uintptr, string) | |
| 2280 | + | ||
| 2281 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_DESTINATION header field. | |
| 2282 | + | func (x *DBusMessage) SetDestination(ValueVar string) { | |
| 2283 | + | ||
| 2284 | + | xDBusMessageSetDestination(x.GoPointer(), ValueVar) | |
| 2285 | + | ||
| 2286 | + | } | |
| 2287 | + | ||
| 2288 | + | var xDBusMessageSetErrorName func(uintptr, string) | |
| 2289 | + | ||
| 2290 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field. | |
| 2291 | + | func (x *DBusMessage) SetErrorName(ValueVar string) { | |
| 2292 | + | ||
| 2293 | + | xDBusMessageSetErrorName(x.GoPointer(), ValueVar) | |
| 2294 | + | ||
| 2295 | + | } | |
| 2296 | + | ||
| 2297 | + | var xDBusMessageSetFlags func(uintptr, DBusMessageFlags) | |
| 2298 | + | ||
| 2299 | + | // Sets the flags to set on @message. | |
| 2300 | + | func (x *DBusMessage) SetFlags(FlagsVar DBusMessageFlags) { | |
| 2301 | + | ||
| 2302 | + | xDBusMessageSetFlags(x.GoPointer(), FlagsVar) | |
| 2303 | + | ||
| 2304 | + | } | |
| 2305 | + | ||
| 2306 | + | var xDBusMessageSetHeader func(uintptr, DBusMessageHeaderField, *glib.Variant) | |
| 2307 | + | ||
| 2308 | + | // Sets a header field on @message. | |
| 2309 | + | // | |
| 2310 | + | // If @value is floating, @message assumes ownership of @value. | |
| 2311 | + | func (x *DBusMessage) SetHeader(HeaderFieldVar DBusMessageHeaderField, ValueVar *glib.Variant) { | |
| 2312 | + | ||
| 2313 | + | xDBusMessageSetHeader(x.GoPointer(), HeaderFieldVar, ValueVar) | |
| 2314 | + | ||
| 2315 | + | } | |
| 2316 | + | ||
| 2317 | + | var xDBusMessageSetInterface func(uintptr, string) | |
| 2318 | + | ||
| 2319 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_INTERFACE header field. | |
| 2320 | + | func (x *DBusMessage) SetInterface(ValueVar string) { | |
| 2321 | + | ||
| 2322 | + | xDBusMessageSetInterface(x.GoPointer(), ValueVar) | |
| 2323 | + | ||
| 2324 | + | } | |
| 2325 | + | ||
| 2326 | + | var xDBusMessageSetMember func(uintptr, string) | |
| 2327 | + | ||
| 2328 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_MEMBER header field. | |
| 2329 | + | func (x *DBusMessage) SetMember(ValueVar string) { | |
| 2330 | + | ||
| 2331 | + | xDBusMessageSetMember(x.GoPointer(), ValueVar) | |
| 2332 | + | ||
| 2333 | + | } | |
| 2334 | + | ||
| 2335 | + | var xDBusMessageSetMessageType func(uintptr, DBusMessageType) | |
| 2336 | + | ||
| 2337 | + | // Sets @message to be of @type. | |
| 2338 | + | func (x *DBusMessage) SetMessageType(TypeVar DBusMessageType) { | |
| 2339 | + | ||
| 2340 | + | xDBusMessageSetMessageType(x.GoPointer(), TypeVar) | |
| 2341 | + | ||
| 2342 | + | } | |
| 2343 | + | ||
| 2344 | + | var xDBusMessageSetNumUnixFds func(uintptr, uint32) | |
| 2345 | + | ||
| 2346 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header field. | |
| 2347 | + | func (x *DBusMessage) SetNumUnixFds(ValueVar uint32) { | |
| 2348 | + | ||
| 2349 | + | xDBusMessageSetNumUnixFds(x.GoPointer(), ValueVar) | |
| 2350 | + | ||
| 2351 | + | } | |
| 2352 | + | ||
| 2353 | + | var xDBusMessageSetPath func(uintptr, string) | |
| 2354 | + | ||
| 2355 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_PATH header field. | |
| 2356 | + | func (x *DBusMessage) SetPath(ValueVar string) { | |
| 2357 | + | ||
| 2358 | + | xDBusMessageSetPath(x.GoPointer(), ValueVar) | |
| 2359 | + | ||
| 2360 | + | } | |
| 2361 | + | ||
| 2362 | + | var xDBusMessageSetReplySerial func(uintptr, uint32) | |
| 2363 | + | ||
| 2364 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_REPLY_SERIAL header field. | |
| 2365 | + | func (x *DBusMessage) SetReplySerial(ValueVar uint32) { | |
| 2366 | + | ||
| 2367 | + | xDBusMessageSetReplySerial(x.GoPointer(), ValueVar) | |
| 2368 | + | ||
| 2369 | + | } | |
| 2370 | + | ||
| 2371 | + | var xDBusMessageSetSender func(uintptr, string) | |
| 2372 | + | ||
| 2373 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SENDER header field. | |
| 2374 | + | func (x *DBusMessage) SetSender(ValueVar string) { | |
| 2375 | + | ||
| 2376 | + | xDBusMessageSetSender(x.GoPointer(), ValueVar) | |
| 2377 | + | ||
| 2378 | + | } | |
| 2379 | + | ||
| 2380 | + | var xDBusMessageSetSerial func(uintptr, uint32) | |
| 2381 | + | ||
| 2382 | + | // Sets the serial for @message. | |
| 2383 | + | func (x *DBusMessage) SetSerial(SerialVar uint32) { | |
| 2384 | + | ||
| 2385 | + | xDBusMessageSetSerial(x.GoPointer(), SerialVar) | |
| 2386 | + | ||
| 2387 | + | } | |
| 2388 | + | ||
| 2389 | + | var xDBusMessageSetSignature func(uintptr, string) | |
| 2390 | + | ||
| 2391 | + | // Convenience setter for the %G_DBUS_MESSAGE_HEADER_FIELD_SIGNATURE header field. | |
| 2392 | + | func (x *DBusMessage) SetSignature(ValueVar string) { | |
| 2393 | + | ||
| 2394 | + | xDBusMessageSetSignature(x.GoPointer(), ValueVar) | |
| 2395 | + | ||
| 2396 | + | } | |
| 2397 | + | ||
| 2398 | + | var xDBusMessageSetUnixFdList func(uintptr, uintptr) | |
| 2399 | + | ||
| 2400 | + | // Sets the UNIX file descriptors associated with @message. As a | |
| 2401 | + | // side-effect the %G_DBUS_MESSAGE_HEADER_FIELD_NUM_UNIX_FDS header | |
| 2402 | + | // field is set to the number of fds in @fd_list (or cleared if | |
| 2403 | + | // @fd_list is %NULL). | |
| 2404 | + | // | |
| 2405 | + | // This method is only available on UNIX. | |
| 2406 | + | // | |
| 2407 | + | // When designing D-Bus APIs that are intended to be interoperable, | |
| 2408 | + | // please note that non-GDBus implementations of D-Bus can usually only | |
| 2409 | + | // access file descriptors if they are referenced by a value of type | |
| 2410 | + | // %G_VARIANT_TYPE_HANDLE in the body of the message. | |
| 2411 | + | func (x *DBusMessage) SetUnixFdList(FdListVar *UnixFDList) { | |
| 2412 | + | ||
| 2413 | + | xDBusMessageSetUnixFdList(x.GoPointer(), FdListVar.GoPointer()) | |
| 2414 | + | ||
| 2415 | + | } | |
| 2416 | + | ||
| 2417 | + | var xDBusMessageToBlob func(uintptr, uint, DBusCapabilityFlags) uintptr | |
| 2418 | + | ||
| 2419 | + | // Serializes @message to a blob. The byte order returned by | |
| 2420 | + | // g_dbus_message_get_byte_order() will be used. | |
| 2421 | + | func (x *DBusMessage) ToBlob(OutSizeVar uint, CapabilitiesVar DBusCapabilityFlags) uintptr { | |
| 2422 | + | ||
| 2423 | + | return xDBusMessageToBlob(x.GoPointer(), OutSizeVar, CapabilitiesVar) | |
| 2424 | + | ||
| 2425 | + | } | |
| 2426 | + | ||
| 2427 | + | var xDBusMessageToGerror func(uintptr) bool | |
| 2428 | + | ||
| 2429 | + | // If @message is not of type %G_DBUS_MESSAGE_TYPE_ERROR does | |
| 2430 | + | // nothing and returns %FALSE. | |
| 2431 | + | // | |
| 2432 | + | // Otherwise this method encodes the error in @message as a #GError | |
| 2433 | + | // using g_dbus_error_set_dbus_error() using the information in the | |
| 2434 | + | // %G_DBUS_MESSAGE_HEADER_FIELD_ERROR_NAME header field of @message as | |
| 2435 | + | // well as the first string item in @message's body. | |
| 2436 | + | func (x *DBusMessage) ToGerror() bool { | |
| 2437 | + | ||
| 2438 | + | return xDBusMessageToGerror(x.GoPointer()) | |
| 2439 | + | ||
| 2440 | + | } | |
| 2441 | + | ||
| 2442 | + | func (c *DBusMessage) GoPointer() uintptr { | |
| 2443 | + | return c.Ptr | |
| 2444 | + | } | |
| 2445 | + | ||
| 2446 | + | func (c *DBusMessage) SetGoPointer(ptr uintptr) { | |
| 2447 | + | c.Ptr = ptr | |
| 2448 | + | } | |
| 2449 | + | ||
| 2450 | + | // Instances of the #GDBusMethodInvocation class are used when | |
| 2451 | + | // handling D-Bus method calls. It provides a way to asynchronously | |
| 2452 | + | // return results and errors. | |
| 2453 | + | // | |
| 2454 | + | // The normal way to obtain a #GDBusMethodInvocation object is to receive | |
| 2455 | + | // it as an argument to the handle_method_call() function in a | |
| 2456 | + | // #GDBusInterfaceVTable that was passed to g_dbus_connection_register_object(). | |
| 2457 | + | type DBusMethodInvocation struct { | |
| 2458 | + | gobject.Object | |
| 2459 | + | } | |
| 2460 | + | ||
| 2461 | + | func DBusMethodInvocationNewFromInternalPtr(ptr uintptr) *DBusMethodInvocation { | |
| 2462 | + | cls := &DBusMethodInvocation{} | |
| 2463 | + | cls.Ptr = ptr | |
| 2464 | + | return cls | |
| 2465 | + | } | |
| 2466 | + | ||
| 2467 | + | var xDBusMethodInvocationGetConnection func(uintptr) uintptr | |
| 2468 | + | ||
| 2469 | + | // Gets the #GDBusConnection the method was invoked on. | |
| 2470 | + | func (x *DBusMethodInvocation) GetConnection() *DBusConnection { | |
| 2471 | + | ||
| 2472 | + | GetConnectionPtr := xDBusMethodInvocationGetConnection(x.GoPointer()) | |
| 2473 | + | if GetConnectionPtr == 0 { | |
| 2474 | + | return nil | |
| 2475 | + | } | |
| 2476 | + | ||
| 2477 | + | gobject.IncreaseRef(GetConnectionPtr) | |
| 2478 | + | ||
| 2479 | + | GetConnectionCls := &DBusConnection{} | |
| 2480 | + | GetConnectionCls.Ptr = GetConnectionPtr | |
| 2481 | + | return GetConnectionCls | |
| 2482 | + | ||
| 2483 | + | } | |
| 2484 | + | ||
| 2485 | + | var xDBusMethodInvocationGetInterfaceName func(uintptr) string | |
| 2486 | + | ||
| 2487 | + | // Gets the name of the D-Bus interface the method was invoked on. | |
| 2488 | + | // | |
| 2489 | + | // If this method call is a property Get, Set or GetAll call that has | |
| 2490 | + | // been redirected to the method call handler then | |
| 2491 | + | // "org.freedesktop.DBus.Properties" will be returned. See | |
| 2492 | + | // #GDBusInterfaceVTable for more information. | |
| 2493 | + | func (x *DBusMethodInvocation) GetInterfaceName() string { | |
| 2494 | + | ||
| 2495 | + | return xDBusMethodInvocationGetInterfaceName(x.GoPointer()) | |
| 2496 | + | ||
| 2497 | + | } | |
| 2498 | + | ||
| 2499 | + | var xDBusMethodInvocationGetMessage func(uintptr) uintptr | |
| 2500 | + | ||
| 2501 | + | // Gets the #GDBusMessage for the method invocation. This is useful if | |
| 2502 | + | // you need to use low-level protocol features, such as UNIX file | |
| 2503 | + | // descriptor passing, that cannot be properly expressed in the | |
| 2504 | + | // #GVariant API. | |
| 2505 | + | // | |
| 2506 | + | // See this [server][gdbus-server] and [client][gdbus-unix-fd-client] | |
| 2507 | + | // for an example of how to use this low-level API to send and receive | |
| 2508 | + | // UNIX file descriptors. | |
| 2509 | + | func (x *DBusMethodInvocation) GetMessage() *DBusMessage { | |
| 2510 | + | ||
| 2511 | + | GetMessagePtr := xDBusMethodInvocationGetMessage(x.GoPointer()) | |
| 2512 | + | if GetMessagePtr == 0 { | |
| 2513 | + | return nil | |
| 2514 | + | } | |
| 2515 | + | ||
| 2516 | + | gobject.IncreaseRef(GetMessagePtr) | |
| 2517 | + | ||
| 2518 | + | GetMessageCls := &DBusMessage{} | |
| 2519 | + | GetMessageCls.Ptr = GetMessagePtr | |
| 2520 | + | return GetMessageCls | |
| 2521 | + | ||
| 2522 | + | } | |
| 2523 | + | ||
| 2524 | + | var xDBusMethodInvocationGetMethodInfo func(uintptr) *DBusMethodInfo | |
| 2525 | + | ||
| 2526 | + | // Gets information about the method call, if any. | |
| 2527 | + | // | |
| 2528 | + | // If this method invocation is a property Get, Set or GetAll call that | |
| 2529 | + | // has been redirected to the method call handler then %NULL will be | |
| 2530 | + | // returned. See g_dbus_method_invocation_get_property_info() and | |
| 2531 | + | // #GDBusInterfaceVTable for more information. | |
| 2532 | + | func (x *DBusMethodInvocation) GetMethodInfo() *DBusMethodInfo { | |
| 2533 | + | ||
| 2534 | + | return xDBusMethodInvocationGetMethodInfo(x.GoPointer()) | |
| 2535 | + | ||
| 2536 | + | } | |
| 2537 | + | ||
| 2538 | + | var xDBusMethodInvocationGetMethodName func(uintptr) string | |
| 2539 | + | ||
| 2540 | + | // Gets the name of the method that was invoked. | |
| 2541 | + | func (x *DBusMethodInvocation) GetMethodName() string { | |
| 2542 | + | ||
| 2543 | + | return xDBusMethodInvocationGetMethodName(x.GoPointer()) | |
| 2544 | + | ||
| 2545 | + | } | |
| 2546 | + | ||
| 2547 | + | var xDBusMethodInvocationGetObjectPath func(uintptr) string | |
| 2548 | + | ||
| 2549 | + | // Gets the object path the method was invoked on. | |
| 2550 | + | func (x *DBusMethodInvocation) GetObjectPath() string { | |
| 2551 | + | ||
| 2552 | + | return xDBusMethodInvocationGetObjectPath(x.GoPointer()) | |
| 2553 | + | ||
| 2554 | + | } | |
| 2555 | + | ||
| 2556 | + | var xDBusMethodInvocationGetParameters func(uintptr) *glib.Variant | |
| 2557 | + | ||
| 2558 | + | // Gets the parameters of the method invocation. If there are no input | |
| 2559 | + | // parameters then this will return a GVariant with 0 children rather than NULL. | |
| 2560 | + | func (x *DBusMethodInvocation) GetParameters() *glib.Variant { | |
| 2561 | + | ||
| 2562 | + | return xDBusMethodInvocationGetParameters(x.GoPointer()) | |
| 2563 | + | ||
| 2564 | + | } | |
| 2565 | + | ||
| 2566 | + | var xDBusMethodInvocationGetPropertyInfo func(uintptr) *DBusPropertyInfo | |
| 2567 | + | ||
| 2568 | + | // Gets information about the property that this method call is for, if | |
| 2569 | + | // any. | |
| 2570 | + | // | |
| 2571 | + | // This will only be set in the case of an invocation in response to a | |
| 2572 | + | // property Get or Set call that has been directed to the method call | |
| 2573 | + | // handler for an object on account of its property_get() or | |
| 2574 | + | // property_set() vtable pointers being unset. | |
| 2575 | + | // | |
| 2576 | + | // See #GDBusInterfaceVTable for more information. | |
| 2577 | + | // | |
| 2578 | + | // If the call was GetAll, %NULL will be returned. | |
| 2579 | + | func (x *DBusMethodInvocation) GetPropertyInfo() *DBusPropertyInfo { | |
| 2580 | + | ||
| 2581 | + | return xDBusMethodInvocationGetPropertyInfo(x.GoPointer()) | |
| 2582 | + | ||
| 2583 | + | } | |
| 2584 | + | ||
| 2585 | + | var xDBusMethodInvocationGetSender func(uintptr) string | |
| 2586 | + | ||
| 2587 | + | // Gets the bus name that invoked the method. | |
| 2588 | + | func (x *DBusMethodInvocation) GetSender() string { | |
| 2589 | + | ||
| 2590 | + | return xDBusMethodInvocationGetSender(x.GoPointer()) | |
| 2591 | + | ||
| 2592 | + | } | |
| 2593 | + | ||
| 2594 | + | var xDBusMethodInvocationGetUserData func(uintptr) uintptr | |
| 2595 | + | ||
| 2596 | + | // Gets the @user_data #gpointer passed to g_dbus_connection_register_object(). | |
| 2597 | + | func (x *DBusMethodInvocation) GetUserData() uintptr { | |
| 2598 | + | ||
| 2599 | + | return xDBusMethodInvocationGetUserData(x.GoPointer()) | |
| 2600 | + | ||
| 2601 | + | } | |
| 2602 | + | ||
| 2603 | + | var xDBusMethodInvocationReturnDbusError func(uintptr, string, string) | |
| 2604 | + | ||
| 2605 | + | // Finishes handling a D-Bus method call by returning an error. | |
| 2606 | + | // | |
| 2607 | + | // This method will take ownership of @invocation. See | |
| 2608 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2609 | + | // @invocation. | |
| 2610 | + | func (x *DBusMethodInvocation) ReturnDbusError(ErrorNameVar string, ErrorMessageVar string) { | |
| 2611 | + | ||
| 2612 | + | xDBusMethodInvocationReturnDbusError(x.GoPointer(), ErrorNameVar, ErrorMessageVar) | |
| 2613 | + | ||
| 2614 | + | } | |
| 2615 | + | ||
| 2616 | + | var xDBusMethodInvocationReturnError func(uintptr, glib.Quark, int32, string, ...interface{}) | |
| 2617 | + | ||
| 2618 | + | // Finishes handling a D-Bus method call by returning an error. | |
| 2619 | + | // | |
| 2620 | + | // See g_dbus_error_encode_gerror() for details about what error name | |
| 2621 | + | // will be returned on the wire. In a nutshell, if the given error is | |
| 2622 | + | // registered using g_dbus_error_register_error() the name given | |
| 2623 | + | // during registration is used. Otherwise, a name of the form | |
| 2624 | + | // `org.gtk.GDBus.UnmappedGError.Quark...` is used. This provides | |
| 2625 | + | // transparent mapping of #GError between applications using GDBus. | |
| 2626 | + | // | |
| 2627 | + | // If you are writing an application intended to be portable, | |
| 2628 | + | // always register errors with g_dbus_error_register_error() | |
| 2629 | + | // or use g_dbus_method_invocation_return_dbus_error(). | |
| 2630 | + | // | |
| 2631 | + | // This method will take ownership of @invocation. See | |
| 2632 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2633 | + | // @invocation. | |
| 2634 | + | // | |
| 2635 | + | // Since 2.48, if the method call requested for a reply not to be sent | |
| 2636 | + | // then this call will free @invocation but otherwise do nothing (as per | |
| 2637 | + | // the recommendations of the D-Bus specification). | |
| 2638 | + | func (x *DBusMethodInvocation) ReturnError(DomainVar glib.Quark, CodeVar int32, FormatVar string, varArgs ...interface{}) { | |
| 2639 | + | ||
| 2640 | + | xDBusMethodInvocationReturnError(x.GoPointer(), DomainVar, CodeVar, FormatVar, varArgs...) | |
| 2641 | + | ||
| 2642 | + | } | |
| 2643 | + | ||
| 2644 | + | var xDBusMethodInvocationReturnErrorLiteral func(uintptr, glib.Quark, int32, string) | |
| 2645 | + | ||
| 2646 | + | // Like g_dbus_method_invocation_return_error() but without printf()-style formatting. | |
| 2647 | + | // | |
| 2648 | + | // This method will take ownership of @invocation. See | |
| 2649 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2650 | + | // @invocation. | |
| 2651 | + | func (x *DBusMethodInvocation) ReturnErrorLiteral(DomainVar glib.Quark, CodeVar int32, MessageVar string) { | |
| 2652 | + | ||
| 2653 | + | xDBusMethodInvocationReturnErrorLiteral(x.GoPointer(), DomainVar, CodeVar, MessageVar) | |
| 2654 | + | ||
| 2655 | + | } | |
| 2656 | + | ||
| 2657 | + | var xDBusMethodInvocationReturnErrorValist func(uintptr, glib.Quark, int32, string, []interface{}) | |
| 2658 | + | ||
| 2659 | + | // Like g_dbus_method_invocation_return_error() but intended for | |
| 2660 | + | // language bindings. | |
| 2661 | + | // | |
| 2662 | + | // This method will take ownership of @invocation. See | |
| 2663 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2664 | + | // @invocation. | |
| 2665 | + | func (x *DBusMethodInvocation) ReturnErrorValist(DomainVar glib.Quark, CodeVar int32, FormatVar string, VarArgsVar []interface{}) { | |
| 2666 | + | ||
| 2667 | + | xDBusMethodInvocationReturnErrorValist(x.GoPointer(), DomainVar, CodeVar, FormatVar, VarArgsVar) | |
| 2668 | + | ||
| 2669 | + | } | |
| 2670 | + | ||
| 2671 | + | var xDBusMethodInvocationReturnGerror func(uintptr, *glib.Error) | |
| 2672 | + | ||
| 2673 | + | // Like g_dbus_method_invocation_return_error() but takes a #GError | |
| 2674 | + | // instead of the error domain, error code and message. | |
| 2675 | + | // | |
| 2676 | + | // This method will take ownership of @invocation. See | |
| 2677 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2678 | + | // @invocation. | |
| 2679 | + | func (x *DBusMethodInvocation) ReturnGerror(ErrorVar *glib.Error) { | |
| 2680 | + | ||
| 2681 | + | xDBusMethodInvocationReturnGerror(x.GoPointer(), ErrorVar) | |
| 2682 | + | ||
| 2683 | + | } | |
| 2684 | + | ||
| 2685 | + | var xDBusMethodInvocationReturnValue func(uintptr, *glib.Variant) | |
| 2686 | + | ||
| 2687 | + | // Finishes handling a D-Bus method call by returning @parameters. | |
| 2688 | + | // If the @parameters GVariant is floating, it is consumed. | |
| 2689 | + | // | |
| 2690 | + | // It is an error if @parameters is not of the right format: it must be a tuple | |
| 2691 | + | // containing the out-parameters of the D-Bus method. Even if the method has a | |
| 2692 | + | // single out-parameter, it must be contained in a tuple. If the method has no | |
| 2693 | + | // out-parameters, @parameters may be %NULL or an empty tuple. | |
| 2694 | + | // | |
| 2695 | + | // |[<!-- language="C" --> | |
| 2696 | + | // GDBusMethodInvocation *invocation = some_invocation; | |
| 2697 | + | // g_autofree gchar *result_string = NULL; | |
| 2698 | + | // g_autoptr (GError) error = NULL; | |
| 2699 | + | // | |
| 2700 | + | // result_string = calculate_result (&error); | |
| 2701 | + | // | |
| 2702 | + | // if (error != NULL) | |
| 2703 | + | // | |
| 2704 | + | // g_dbus_method_invocation_return_gerror (invocation, error); | |
| 2705 | + | // | |
| 2706 | + | // else | |
| 2707 | + | // | |
| 2708 | + | // g_dbus_method_invocation_return_value (invocation, | |
| 2709 | + | // g_variant_new ("(s)", result_string)); | |
| 2710 | + | // | |
| 2711 | + | // // Do not free @invocation here; returning a value does that | |
| 2712 | + | // ]| | |
| 2713 | + | // | |
| 2714 | + | // This method will take ownership of @invocation. See | |
| 2715 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2716 | + | // @invocation. | |
| 2717 | + | // | |
| 2718 | + | // Since 2.48, if the method call requested for a reply not to be sent | |
| 2719 | + | // then this call will sink @parameters and free @invocation, but | |
| 2720 | + | // otherwise do nothing (as per the recommendations of the D-Bus | |
| 2721 | + | // specification). | |
| 2722 | + | func (x *DBusMethodInvocation) ReturnValue(ParametersVar *glib.Variant) { | |
| 2723 | + | ||
| 2724 | + | xDBusMethodInvocationReturnValue(x.GoPointer(), ParametersVar) | |
| 2725 | + | ||
| 2726 | + | } | |
| 2727 | + | ||
| 2728 | + | var xDBusMethodInvocationReturnValueWithUnixFdList func(uintptr, *glib.Variant, uintptr) | |
| 2729 | + | ||
| 2730 | + | // Like g_dbus_method_invocation_return_value() but also takes a #GUnixFDList. | |
| 2731 | + | // | |
| 2732 | + | // This method is only available on UNIX. | |
| 2733 | + | // | |
| 2734 | + | // This method will take ownership of @invocation. See | |
| 2735 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2736 | + | // @invocation. | |
| 2737 | + | func (x *DBusMethodInvocation) ReturnValueWithUnixFdList(ParametersVar *glib.Variant, FdListVar *UnixFDList) { | |
| 2738 | + | ||
| 2739 | + | xDBusMethodInvocationReturnValueWithUnixFdList(x.GoPointer(), ParametersVar, FdListVar.GoPointer()) | |
| 2740 | + | ||
| 2741 | + | } | |
| 2742 | + | ||
| 2743 | + | var xDBusMethodInvocationTakeError func(uintptr, *glib.Error) | |
| 2744 | + | ||
| 2745 | + | // Like g_dbus_method_invocation_return_gerror() but takes ownership | |
| 2746 | + | // of @error so the caller does not need to free it. | |
| 2747 | + | // | |
| 2748 | + | // This method will take ownership of @invocation. See | |
| 2749 | + | // #GDBusInterfaceVTable for more information about the ownership of | |
| 2750 | + | // @invocation. | |
| 2751 | + | func (x *DBusMethodInvocation) TakeError(ErrorVar *glib.Error) { | |
| 2752 | + | ||
| 2753 | + | xDBusMethodInvocationTakeError(x.GoPointer(), ErrorVar) | |
| 2754 | + | ||
| 2755 | + | } | |
| 2756 | + | ||
| 2757 | + | func (c *DBusMethodInvocation) GoPointer() uintptr { | |
| 2758 | + | return c.Ptr | |
| 2759 | + | } | |
| 2760 | + | ||
| 2761 | + | func (c *DBusMethodInvocation) SetGoPointer(ptr uintptr) { | |
| 2762 | + | c.Ptr = ptr | |
| 2763 | + | } | |
| 2764 | + | ||
| 2765 | + | // #GDBusServer is a helper for listening to and accepting D-Bus | |
| 2766 | + | // connections. This can be used to create a new D-Bus server, allowing two | |
| 2767 | + | // peers to use the D-Bus protocol for their own specialized communication. | |
| 2768 | + | // A server instance provided in this way will not perform message routing or | |
| 2769 | + | // implement the org.freedesktop.DBus interface. | |
| 2770 | + | // | |
| 2771 | + | // To just export an object on a well-known name on a message bus, such as the | |
| 2772 | + | // session or system bus, you should instead use g_bus_own_name(). | |
| 2773 | + | // | |
| 2774 | + | // An example of peer-to-peer communication with GDBus can be found | |
| 2775 | + | // in [gdbus-example-peer.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-example-peer.c). | |
| 2776 | + | // | |
| 2777 | + | // Note that a minimal #GDBusServer will accept connections from any | |
| 2778 | + | // peer. In many use-cases it will be necessary to add a #GDBusAuthObserver | |
| 2779 | + | // that only accepts connections that have successfully authenticated | |
| 2780 | + | // as the same user that is running the #GDBusServer. Since GLib 2.68 this can | |
| 2781 | + | // be achieved more simply by passing the | |
| 2782 | + | // %G_DBUS_SERVER_FLAGS_AUTHENTICATION_REQUIRE_SAME_USER flag to the server. | |
| 2783 | + | type DBusServer struct { | |
| 2784 | + | gobject.Object | |
| 2785 | + | } | |
| 2786 | + | ||
| 2787 | + | func DBusServerNewFromInternalPtr(ptr uintptr) *DBusServer { | |
| 2788 | + | cls := &DBusServer{} | |
| 2789 | + | cls.Ptr = ptr | |
| 2790 | + | return cls | |
| 2791 | + | } | |
| 2792 | + | ||
| 2793 | + | var xNewSyncDBusServer func(string, DBusServerFlags, string, uintptr, uintptr) uintptr | |
| 2794 | + | ||
| 2795 | + | // Creates a new D-Bus server that listens on the first address in | |
| 2796 | + | // @address that works. | |
| 2797 | + | // | |
| 2798 | + | // Once constructed, you can use g_dbus_server_get_client_address() to | |
| 2799 | + | // get a D-Bus address string that clients can use to connect. | |
| 2800 | + | // | |
| 2801 | + | // To have control over the available authentication mechanisms and | |
| 2802 | + | // the users that are authorized to connect, it is strongly recommended | |
| 2803 | + | // to provide a non-%NULL #GDBusAuthObserver. | |
| 2804 | + | // | |
| 2805 | + | // Connect to the #GDBusServer::new-connection signal to handle | |
| 2806 | + | // incoming connections. | |
| 2807 | + | // | |
| 2808 | + | // The returned #GDBusServer isn't active - you have to start it with | |
| 2809 | + | // g_dbus_server_start(). | |
| 2810 | + | // | |
| 2811 | + | // #GDBusServer is used in this [example][gdbus-peer-to-peer]. | |
| 2812 | + | // | |
| 2813 | + | // This is a synchronous failable constructor. There is currently no | |
| 2814 | + | // asynchronous version. | |
| 2815 | + | func NewSyncDBusServer(AddressVar string, FlagsVar DBusServerFlags, GuidVar string, ObserverVar *DBusAuthObserver, CancellableVar *Cancellable) *DBusServer { | |
| 2816 | + | NewSyncDBusServerPtr := xNewSyncDBusServer(AddressVar, FlagsVar, GuidVar, ObserverVar.GoPointer(), CancellableVar.GoPointer()) | |
| 2817 | + | if NewSyncDBusServerPtr == 0 { | |
| 2818 | + | return nil | |
| 2819 | + | } | |
| 2820 | + | ||
| 2821 | + | NewSyncDBusServerCls := &DBusServer{} | |
| 2822 | + | NewSyncDBusServerCls.Ptr = NewSyncDBusServerPtr | |
| 2823 | + | return NewSyncDBusServerCls | |
| 2824 | + | } | |
| 2825 | + | ||
| 2826 | + | var xDBusServerGetClientAddress func(uintptr) string | |
| 2827 | + | ||
| 2828 | + | // Gets a | |
| 2829 | + | // [D-Bus address](https://dbus.freedesktop.org/doc/dbus-specification.html#addresses) | |
| 2830 | + | // string that can be used by clients to connect to @server. | |
| 2831 | + | // | |
| 2832 | + | // This is valid and non-empty if initializing the #GDBusServer succeeded. | |
| 2833 | + | func (x *DBusServer) GetClientAddress() string { | |
| 2834 | + | ||
| 2835 | + | return xDBusServerGetClientAddress(x.GoPointer()) | |
| 2836 | + | ||
| 2837 | + | } | |
| 2838 | + | ||
| 2839 | + | var xDBusServerGetFlags func(uintptr) DBusServerFlags | |
| 2840 | + | ||
| 2841 | + | // Gets the flags for @server. | |
| 2842 | + | func (x *DBusServer) GetFlags() DBusServerFlags { | |
| 2843 | + | ||
| 2844 | + | return xDBusServerGetFlags(x.GoPointer()) | |
| 2845 | + | ||
| 2846 | + | } | |
| 2847 | + | ||
| 2848 | + | var xDBusServerGetGuid func(uintptr) string | |
| 2849 | + | ||
| 2850 | + | // Gets the GUID for @server, as provided to g_dbus_server_new_sync(). | |
| 2851 | + | func (x *DBusServer) GetGuid() string { | |
| 2852 | + | ||
| 2853 | + | return xDBusServerGetGuid(x.GoPointer()) | |
| 2854 | + | ||
| 2855 | + | } | |
| 2856 | + | ||
| 2857 | + | var xDBusServerIsActive func(uintptr) bool | |
| 2858 | + | ||
| 2859 | + | // Gets whether @server is active. | |
| 2860 | + | func (x *DBusServer) IsActive() bool { | |
| 2861 | + | ||
| 2862 | + | return xDBusServerIsActive(x.GoPointer()) | |
| 2863 | + | ||
| 2864 | + | } | |
| 2865 | + | ||
| 2866 | + | var xDBusServerStart func(uintptr) | |
| 2867 | + | ||
| 2868 | + | // Starts @server. | |
| 2869 | + | func (x *DBusServer) Start() { | |
| 2870 | + | ||
| 2871 | + | xDBusServerStart(x.GoPointer()) | |
| 2872 | + | ||
| 2873 | + | } | |
| 2874 | + | ||
| 2875 | + | var xDBusServerStop func(uintptr) | |
| 2876 | + | ||
| 2877 | + | // Stops @server. | |
| 2878 | + | func (x *DBusServer) Stop() { | |
| 2879 | + | ||
| 2880 | + | xDBusServerStop(x.GoPointer()) | |
| 2881 | + | ||
| 2882 | + | } | |
| 2883 | + | ||
| 2884 | + | func (c *DBusServer) GoPointer() uintptr { | |
| 2885 | + | return c.Ptr | |
| 2886 | + | } | |
| 2887 | + | ||
| 2888 | + | func (c *DBusServer) SetGoPointer(ptr uintptr) { | |
| 2889 | + | c.Ptr = ptr | |
| 2890 | + | } | |
| 2891 | + | ||
| 2892 | + | // Emitted when a new authenticated connection has been made. Use | |
| 2893 | + | // g_dbus_connection_get_peer_credentials() to figure out what | |
| 2894 | + | // identity (if any), was authenticated. | |
| 2895 | + | // | |
| 2896 | + | // If you want to accept the connection, take a reference to the | |
| 2897 | + | // @connection object and return %TRUE. When you are done with the | |
| 2898 | + | // connection call g_dbus_connection_close() and give up your | |
| 2899 | + | // reference. Note that the other peer may disconnect at any time - | |
| 2900 | + | // a typical thing to do when accepting a connection is to listen to | |
| 2901 | + | // the #GDBusConnection::closed signal. | |
| 2902 | + | // | |
| 2903 | + | // If #GDBusServer:flags contains %G_DBUS_SERVER_FLAGS_RUN_IN_THREAD | |
| 2904 | + | // then the signal is emitted in a new thread dedicated to the | |
| 2905 | + | // connection. Otherwise the signal is emitted in the | |
| 2906 | + | // [thread-default main context][g-main-context-push-thread-default] | |
| 2907 | + | // of the thread that @server was constructed in. | |
| 2908 | + | // | |
| 2909 | + | // You are guaranteed that signal handlers for this signal runs | |
| 2910 | + | // before incoming messages on @connection are processed. This means | |
| 2911 | + | // that it's suitable to call g_dbus_connection_register_object() or | |
| 2912 | + | // similar from the signal handler. | |
| 2913 | + | func (x *DBusServer) ConnectNewConnection(cb func(DBusServer, uintptr) bool) { | |
| 2914 | + | fcb := func(clsPtr uintptr, ConnectionVarp uintptr) bool { | |
| 2915 | + | fa := DBusServer{} | |
| 2916 | + | fa.Ptr = clsPtr | |
| 2917 | + | ||
| 2918 | + | return cb(fa, ConnectionVarp) | |
| 2919 | + | ||
| 2920 | + | } | |
| 2921 | + | gobject.ObjectConnect(x.GoPointer(), "signal::new-connection", purego.NewCallback(fcb)) | |
| 2922 | + | } | |
| 2923 | + | ||
| 2924 | + | // Initializes the object implementing the interface. | |
| 2925 | + | // | |
| 2926 | + | // This method is intended for language bindings. If writing in C, | |
| 2927 | + | // g_initable_new() should typically be used instead. | |
| 2928 | + | // | |
| 2929 | + | // The object must be initialized before any real use after initial | |
| 2930 | + | // construction, either with this function or g_async_initable_init_async(). | |
| 2931 | + | // | |
| 2932 | + | // Implementations may also support cancellation. If @cancellable is not %NULL, | |
| 2933 | + | // then initialization can be cancelled by triggering the cancellable object | |
| 2934 | + | // from another thread. If the operation was cancelled, the error | |
| 2935 | + | // %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and | |
| 2936 | + | // the object doesn't support cancellable initialization the error | |
| 2937 | + | // %G_IO_ERROR_NOT_SUPPORTED will be returned. | |
| 2938 | + | // | |
| 2939 | + | // If the object is not initialized, or initialization returns with an | |
| 2940 | + | // error, then all operations on the object except g_object_ref() and | |
| 2941 | + | // g_object_unref() are considered to be invalid, and have undefined | |
| 2942 | + | // behaviour. See the [introduction][ginitable] for more details. | |
| 2943 | + | // | |
| 2944 | + | // Callers should not assume that a class which implements #GInitable can be | |
| 2945 | + | // initialized multiple times, unless the class explicitly documents itself as | |
| 2946 | + | // supporting this. Generally, a class’ implementation of init() can assume | |
| 2947 | + | // (and assert) that it will only be called once. Previously, this documentation | |
| 2948 | + | // recommended all #GInitable implementations should be idempotent; that | |
| 2949 | + | // recommendation was relaxed in GLib 2.54. | |
| 2950 | + | // | |
| 2951 | + | // If a class explicitly supports being initialized multiple times, it is | |
| 2952 | + | // recommended that the method is idempotent: multiple calls with the same | |
| 2953 | + | // arguments should return the same results. Only the first call initializes | |
| 2954 | + | // the object; further calls return the result of the first call. | |
| 2955 | + | // | |
| 2956 | + | // One reason why a class might need to support idempotent initialization is if | |
| 2957 | + | // it is designed to be used via the singleton pattern, with a | |
| 2958 | + | // #GObjectClass.constructor that sometimes returns an existing instance. | |
| 2959 | + | // In this pattern, a caller would expect to be able to call g_initable_init() | |
| 2960 | + | // on the result of g_object_new(), regardless of whether it is in fact a new | |
| 2961 | + | // instance. | |
| 2962 | + | func (x *DBusServer) Init(CancellableVar *Cancellable) bool { | |
| 2963 | + | ||
| 2964 | + | return XGInitableInit(x.GoPointer(), CancellableVar.GoPointer()) | |
| 2965 | + | ||
| 2966 | + | } | |
| 2967 | + | ||
| 2968 | + | // #GMenu is a simple implementation of #GMenuModel. | |
| 2969 | + | // You populate a #GMenu by adding #GMenuItem instances to it. | |
| 2970 | + | // | |
| 2971 | + | // There are some convenience functions to allow you to directly | |
| 2972 | + | // add items (avoiding #GMenuItem) for the common cases. To add | |
| 2973 | + | // a regular item, use g_menu_insert(). To add a section, use | |
| 2974 | + | // g_menu_insert_section(). To add a submenu, use | |
| 2975 | + | // g_menu_insert_submenu(). | |
| 2976 | + | type Menu struct { | |
| 2977 | + | MenuModel | |
| 2978 | + | } | |
| 2979 | + | ||
| 2980 | + | func MenuNewFromInternalPtr(ptr uintptr) *Menu { | |
| 2981 | + | cls := &Menu{} | |
| 2982 | + | cls.Ptr = ptr | |
| 2983 | + | return cls | |
| 2984 | + | } | |
| 2985 | + | ||
| 2986 | + | var xNewMenu func() uintptr | |
| 2987 | + | ||
| 2988 | + | // Creates a new #GMenu. | |
| 2989 | + | // | |
| 2990 | + | // The new menu has no items. | |
| 2991 | + | func NewMenu() *Menu { | |
| 2992 | + | NewMenuPtr := xNewMenu() | |
| 2993 | + | if NewMenuPtr == 0 { | |
| 2994 | + | return nil | |
| 2995 | + | } | |
| 2996 | + | ||
| 2997 | + | NewMenuCls := &Menu{} | |
| 2998 | + | NewMenuCls.Ptr = NewMenuPtr | |
| 2999 | + | return NewMenuCls | |
| 3000 | + | } | |
| 3001 | + | ||
| 3002 | + | var xMenuAppend func(uintptr, string, string) | |
| 3003 | + | ||
| 3004 | + | // Convenience function for appending a normal menu item to the end of | |
| 3005 | + | // @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more | |
| 3006 | + | // flexible alternative. | |
| 3007 | + | func (x *Menu) Append(LabelVar string, DetailedActionVar string) { | |
| 3008 | + | ||
| 3009 | + | xMenuAppend(x.GoPointer(), LabelVar, DetailedActionVar) | |
| 3010 | + | ||
| 3011 | + | } | |
| 3012 | + | ||
| 3013 | + | var xMenuAppendItem func(uintptr, uintptr) | |
| 3014 | + | ||
| 3015 | + | // Appends @item to the end of @menu. | |
| 3016 | + | // | |
| 3017 | + | // See g_menu_insert_item() for more information. | |
| 3018 | + | func (x *Menu) AppendItem(ItemVar *MenuItem) { | |
| 3019 | + | ||
| 3020 | + | xMenuAppendItem(x.GoPointer(), ItemVar.GoPointer()) | |
| 3021 | + | ||
| 3022 | + | } | |
| 3023 | + | ||
| 3024 | + | var xMenuAppendSection func(uintptr, string, uintptr) | |
| 3025 | + | ||
| 3026 | + | // Convenience function for appending a section menu item to the end of | |
| 3027 | + | // @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for a | |
| 3028 | + | // more flexible alternative. | |
| 3029 | + | func (x *Menu) AppendSection(LabelVar string, SectionVar *MenuModel) { | |
| 3030 | + | ||
| 3031 | + | xMenuAppendSection(x.GoPointer(), LabelVar, SectionVar.GoPointer()) | |
| 3032 | + | ||
| 3033 | + | } | |
| 3034 | + | ||
| 3035 | + | var xMenuAppendSubmenu func(uintptr, string, uintptr) | |
| 3036 | + | ||
| 3037 | + | // Convenience function for appending a submenu menu item to the end of | |
| 3038 | + | // @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for a | |
| 3039 | + | // more flexible alternative. | |
| 3040 | + | func (x *Menu) AppendSubmenu(LabelVar string, SubmenuVar *MenuModel) { | |
| 3041 | + | ||
| 3042 | + | xMenuAppendSubmenu(x.GoPointer(), LabelVar, SubmenuVar.GoPointer()) | |
| 3043 | + | ||
| 3044 | + | } | |
| 3045 | + | ||
| 3046 | + | var xMenuFreeze func(uintptr) | |
| 3047 | + | ||
| 3048 | + | // Marks @menu as frozen. | |
| 3049 | + | // | |
| 3050 | + | // After the menu is frozen, it is an error to attempt to make any | |
| 3051 | + | // changes to it. In effect this means that the #GMenu API must no | |
| 3052 | + | // longer be used. | |
| 3053 | + | // | |
| 3054 | + | // This function causes g_menu_model_is_mutable() to begin returning | |
| 3055 | + | // %FALSE, which has some positive performance implications. | |
| 3056 | + | func (x *Menu) Freeze() { | |
| 3057 | + | ||
| 3058 | + | xMenuFreeze(x.GoPointer()) | |
| 3059 | + | ||
| 3060 | + | } | |
| 3061 | + | ||
| 3062 | + | var xMenuInsert func(uintptr, int32, string, string) | |
| 3063 | + | ||
| 3064 | + | // Convenience function for inserting a normal menu item into @menu. | |
| 3065 | + | // Combine g_menu_item_new() and g_menu_insert_item() for a more flexible | |
| 3066 | + | // alternative. | |
| 3067 | + | func (x *Menu) Insert(PositionVar int32, LabelVar string, DetailedActionVar string) { | |
| 3068 | + | ||
| 3069 | + | xMenuInsert(x.GoPointer(), PositionVar, LabelVar, DetailedActionVar) | |
| 3070 | + | ||
| 3071 | + | } | |
| 3072 | + | ||
| 3073 | + | var xMenuInsertItem func(uintptr, int32, uintptr) | |
| 3074 | + | ||
| 3075 | + | // Inserts @item into @menu. | |
| 3076 | + | // | |
| 3077 | + | // The "insertion" is actually done by copying all of the attribute and | |
| 3078 | + | // link values of @item and using them to form a new item within @menu. | |
| 3079 | + | // As such, @item itself is not really inserted, but rather, a menu item | |
| 3080 | + | // that is exactly the same as the one presently described by @item. | |
| 3081 | + | // | |
| 3082 | + | // This means that @item is essentially useless after the insertion | |
| 3083 | + | // occurs. Any changes you make to it are ignored unless it is inserted | |
| 3084 | + | // again (at which point its updated values will be copied). | |
| 3085 | + | // | |
| 3086 | + | // You should probably just free @item once you're done. | |
| 3087 | + | // | |
| 3088 | + | // There are many convenience functions to take care of common cases. | |
| 3089 | + | // See g_menu_insert(), g_menu_insert_section() and | |
| 3090 | + | // g_menu_insert_submenu() as well as "prepend" and "append" variants of | |
| 3091 | + | // each of these functions. | |
| 3092 | + | func (x *Menu) InsertItem(PositionVar int32, ItemVar *MenuItem) { | |
| 3093 | + | ||
| 3094 | + | xMenuInsertItem(x.GoPointer(), PositionVar, ItemVar.GoPointer()) | |
| 3095 | + | ||
| 3096 | + | } | |
| 3097 | + | ||
| 3098 | + | var xMenuInsertSection func(uintptr, int32, string, uintptr) | |
| 3099 | + | ||
| 3100 | + | // Convenience function for inserting a section menu item into @menu. | |
| 3101 | + | // Combine g_menu_item_new_section() and g_menu_insert_item() for a more | |
| 3102 | + | // flexible alternative. | |
| 3103 | + | func (x *Menu) InsertSection(PositionVar int32, LabelVar string, SectionVar *MenuModel) { | |
| 3104 | + | ||
| 3105 | + | xMenuInsertSection(x.GoPointer(), PositionVar, LabelVar, SectionVar.GoPointer()) | |
| 3106 | + | ||
| 3107 | + | } | |
| 3108 | + | ||
| 3109 | + | var xMenuInsertSubmenu func(uintptr, int32, string, uintptr) | |
| 3110 | + | ||
| 3111 | + | // Convenience function for inserting a submenu menu item into @menu. | |
| 3112 | + | // Combine g_menu_item_new_submenu() and g_menu_insert_item() for a more | |
| 3113 | + | // flexible alternative. | |
| 3114 | + | func (x *Menu) InsertSubmenu(PositionVar int32, LabelVar string, SubmenuVar *MenuModel) { | |
| 3115 | + | ||
| 3116 | + | xMenuInsertSubmenu(x.GoPointer(), PositionVar, LabelVar, SubmenuVar.GoPointer()) | |
| 3117 | + | ||
| 3118 | + | } | |
| 3119 | + | ||
| 3120 | + | var xMenuPrepend func(uintptr, string, string) | |
| 3121 | + | ||
| 3122 | + | // Convenience function for prepending a normal menu item to the start | |
| 3123 | + | // of @menu. Combine g_menu_item_new() and g_menu_insert_item() for a more | |
| 3124 | + | // flexible alternative. | |
| 3125 | + | func (x *Menu) Prepend(LabelVar string, DetailedActionVar string) { | |
| 3126 | + | ||
| 3127 | + | xMenuPrepend(x.GoPointer(), LabelVar, DetailedActionVar) | |
| 3128 | + | ||
| 3129 | + | } | |
| 3130 | + | ||
| 3131 | + | var xMenuPrependItem func(uintptr, uintptr) | |
| 3132 | + | ||
| 3133 | + | // Prepends @item to the start of @menu. | |
| 3134 | + | // | |
| 3135 | + | // See g_menu_insert_item() for more information. | |
| 3136 | + | func (x *Menu) PrependItem(ItemVar *MenuItem) { | |
| 3137 | + | ||
| 3138 | + | xMenuPrependItem(x.GoPointer(), ItemVar.GoPointer()) | |
| 3139 | + | ||
| 3140 | + | } | |
| 3141 | + | ||
| 3142 | + | var xMenuPrependSection func(uintptr, string, uintptr) | |
| 3143 | + | ||
| 3144 | + | // Convenience function for prepending a section menu item to the start | |
| 3145 | + | // of @menu. Combine g_menu_item_new_section() and g_menu_insert_item() for | |
| 3146 | + | // a more flexible alternative. | |
| 3147 | + | func (x *Menu) PrependSection(LabelVar string, SectionVar *MenuModel) { | |
| 3148 | + | ||
| 3149 | + | xMenuPrependSection(x.GoPointer(), LabelVar, SectionVar.GoPointer()) | |
| 3150 | + | ||
| 3151 | + | } | |
| 3152 | + | ||
| 3153 | + | var xMenuPrependSubmenu func(uintptr, string, uintptr) | |
| 3154 | + | ||
| 3155 | + | // Convenience function for prepending a submenu menu item to the start | |
| 3156 | + | // of @menu. Combine g_menu_item_new_submenu() and g_menu_insert_item() for | |
| 3157 | + | // a more flexible alternative. | |
| 3158 | + | func (x *Menu) PrependSubmenu(LabelVar string, SubmenuVar *MenuModel) { | |
| 3159 | + | ||
| 3160 | + | xMenuPrependSubmenu(x.GoPointer(), LabelVar, SubmenuVar.GoPointer()) | |
| 3161 | + | ||
| 3162 | + | } | |
| 3163 | + | ||
| 3164 | + | var xMenuRemove func(uintptr, int32) | |
| 3165 | + | ||
| 3166 | + | // Removes an item from the menu. | |
| 3167 | + | // | |
| 3168 | + | // @position gives the index of the item to remove. | |
| 3169 | + | // | |
| 3170 | + | // It is an error if position is not in range the range from 0 to one | |
| 3171 | + | // less than the number of items in the menu. | |
| 3172 | + | // | |
| 3173 | + | // It is not possible to remove items by identity since items are added | |
| 3174 | + | // to the menu simply by copying their links and attributes (ie: | |
| 3175 | + | // identity of the item itself is not preserved). | |
| 3176 | + | func (x *Menu) Remove(PositionVar int32) { | |
| 3177 | + | ||
| 3178 | + | xMenuRemove(x.GoPointer(), PositionVar) | |
| 3179 | + | ||
| 3180 | + | } | |
| 3181 | + | ||
| 3182 | + | var xMenuRemoveAll func(uintptr) | |
| 3183 | + | ||
| 3184 | + | // Removes all items in the menu. | |
| 3185 | + | func (x *Menu) RemoveAll() { | |
| 3186 | + | ||
| 3187 | + | xMenuRemoveAll(x.GoPointer()) | |
| 3188 | + | ||
| 3189 | + | } | |
| 3190 | + | ||
| 3191 | + | func (c *Menu) GoPointer() uintptr { | |
| 3192 | + | return c.Ptr | |
| 3193 | + | } | |
| 3194 | + | ||
| 3195 | + | func (c *Menu) SetGoPointer(ptr uintptr) { | |
| 3196 | + | c.Ptr = ptr | |
| 3197 | + | } | |
| 3198 | + | ||
| 3199 | + | // #GMenuItem is an opaque structure type. You must access it using the | |
| 3200 | + | // functions below. | |
| 3201 | + | type MenuItem struct { | |
| 3202 | + | gobject.Object | |
| 3203 | + | } | |
| 3204 | + | ||
| 3205 | + | func MenuItemNewFromInternalPtr(ptr uintptr) *MenuItem { | |
| 3206 | + | cls := &MenuItem{} | |
| 3207 | + | cls.Ptr = ptr | |
| 3208 | + | return cls | |
| 3209 | + | } | |
| 3210 | + | ||
| 3211 | + | var xNewMenuItem func(string, string) uintptr | |
| 3212 | + | ||
| 3213 | + | // Creates a new #GMenuItem. | |
| 3214 | + | // | |
| 3215 | + | // If @label is non-%NULL it is used to set the "label" attribute of the | |
| 3216 | + | // new item. | |
| 3217 | + | // | |
| 3218 | + | // If @detailed_action is non-%NULL it is used to set the "action" and | |
| 3219 | + | // possibly the "target" attribute of the new item. See | |
| 3220 | + | // g_menu_item_set_detailed_action() for more information. | |
| 3221 | + | func NewMenuItem(LabelVar string, DetailedActionVar string) *MenuItem { | |
| 3222 | + | NewMenuItemPtr := xNewMenuItem(LabelVar, DetailedActionVar) | |
| 3223 | + | if NewMenuItemPtr == 0 { | |
| 3224 | + | return nil | |
| 3225 | + | } | |
| 3226 | + | ||
| 3227 | + | NewMenuItemCls := &MenuItem{} | |
| 3228 | + | NewMenuItemCls.Ptr = NewMenuItemPtr | |
| 3229 | + | return NewMenuItemCls | |
| 3230 | + | } | |
| 3231 | + | ||
| 3232 | + | var xNewFromModelMenuItem func(uintptr, int32) uintptr | |
| 3233 | + | ||
| 3234 | + | // Creates a #GMenuItem as an exact copy of an existing menu item in a | |
| 3235 | + | // #GMenuModel. | |
| 3236 | + | // | |
| 3237 | + | // @item_index must be valid (ie: be sure to call | |
| 3238 | + | // g_menu_model_get_n_items() first). | |
| 3239 | + | func NewFromModelMenuItem(ModelVar *MenuModel, ItemIndexVar int32) *MenuItem { | |
| 3240 | + | NewFromModelMenuItemPtr := xNewFromModelMenuItem(ModelVar.GoPointer(), ItemIndexVar) | |
| 3241 | + | if NewFromModelMenuItemPtr == 0 { | |
| 3242 | + | return nil | |
| 3243 | + | } | |
| 3244 | + | ||
| 3245 | + | NewFromModelMenuItemCls := &MenuItem{} | |
| 3246 | + | NewFromModelMenuItemCls.Ptr = NewFromModelMenuItemPtr | |
| 3247 | + | return NewFromModelMenuItemCls | |
| 3248 | + | } | |
| 3249 | + | ||
| 3250 | + | var xNewSectionMenuItem func(string, uintptr) uintptr | |
| 3251 | + | ||
| 3252 | + | // Creates a new #GMenuItem representing a section. | |
| 3253 | + | // | |
| 3254 | + | // This is a convenience API around g_menu_item_new() and | |
| 3255 | + | // g_menu_item_set_section(). | |
| 3256 | + | // | |
| 3257 | + | // The effect of having one menu appear as a section of another is | |
| 3258 | + | // exactly as it sounds: the items from @section become a direct part of | |
| 3259 | + | // the menu that @menu_item is added to. | |
| 3260 | + | // | |
| 3261 | + | // Visual separation is typically displayed between two non-empty | |
| 3262 | + | // sections. If @label is non-%NULL then it will be encorporated into | |
| 3263 | + | // this visual indication. This allows for labeled subsections of a | |
| 3264 | + | // menu. | |
| 3265 | + | // | |
| 3266 | + | // As a simple example, consider a typical "Edit" menu from a simple | |
| 3267 | + | // program. It probably contains an "Undo" and "Redo" item, followed by | |
| 3268 | + | // a separator, followed by "Cut", "Copy" and "Paste". | |
| 3269 | + | // | |
| 3270 | + | // This would be accomplished by creating three #GMenu instances. The | |
| 3271 | + | // first would be populated with the "Undo" and "Redo" items, and the | |
| 3272 | + | // second with the "Cut", "Copy" and "Paste" items. The first and | |
| 3273 | + | // second menus would then be added as submenus of the third. In XML | |
| 3274 | + | // format, this would look something like the following: | |
| 3275 | + | // |[ | |
| 3276 | + | // <menu id='edit-menu'> | |
| 3277 | + | // | |
| 3278 | + | // <section> | |
| 3279 | + | // <item label='Undo'/> | |
| 3280 | + | // <item label='Redo'/> | |
| 3281 | + | // </section> | |
| 3282 | + | // <section> | |
| 3283 | + | // <item label='Cut'/> | |
| 3284 | + | // <item label='Copy'/> | |
| 3285 | + | // <item label='Paste'/> | |
| 3286 | + | // </section> | |
| 3287 | + | // | |
| 3288 | + | // </menu> | |
| 3289 | + | // ]| | |
| 3290 | + | // | |
| 3291 | + | // The following example is exactly equivalent. It is more illustrative | |
| 3292 | + | // of the exact relationship between the menus and items (keeping in | |
| 3293 | + | // mind that the 'link' element defines a new menu that is linked to the | |
| 3294 | + | // containing one). The style of the second example is more verbose and | |
| 3295 | + | // difficult to read (and therefore not recommended except for the | |
| 3296 | + | // purpose of understanding what is really going on). | |
| 3297 | + | // |[ | |
| 3298 | + | // <menu id='edit-menu'> | |
| 3299 | + | // | |
| 3300 | + | // <item> | |
| 3301 | + | // <link name='section'> | |
| 3302 | + | // <item label='Undo'/> | |
| 3303 | + | // <item label='Redo'/> | |
| 3304 | + | // </link> | |
| 3305 | + | // </item> | |
| 3306 | + | // <item> | |
| 3307 | + | // <link name='section'> | |
| 3308 | + | // <item label='Cut'/> | |
| 3309 | + | // <item label='Copy'/> | |
| 3310 | + | // <item label='Paste'/> | |
| 3311 | + | // </link> | |
| 3312 | + | // </item> | |
| 3313 | + | // | |
| 3314 | + | // </menu> | |
| 3315 | + | // ]| | |
| 3316 | + | func NewSectionMenuItem(LabelVar string, SectionVar *MenuModel) *MenuItem { | |
| 3317 | + | NewSectionMenuItemPtr := xNewSectionMenuItem(LabelVar, SectionVar.GoPointer()) | |
| 3318 | + | if NewSectionMenuItemPtr == 0 { | |
| 3319 | + | return nil | |
| 3320 | + | } | |
| 3321 | + | ||
| 3322 | + | NewSectionMenuItemCls := &MenuItem{} | |
| 3323 | + | NewSectionMenuItemCls.Ptr = NewSectionMenuItemPtr | |
| 3324 | + | return NewSectionMenuItemCls | |
| 3325 | + | } | |
| 3326 | + | ||
| 3327 | + | var xNewSubmenuMenuItem func(string, uintptr) uintptr | |
| 3328 | + | ||
| 3329 | + | // Creates a new #GMenuItem representing a submenu. | |
| 3330 | + | // | |
| 3331 | + | // This is a convenience API around g_menu_item_new() and | |
| 3332 | + | // g_menu_item_set_submenu(). | |
| 3333 | + | func NewSubmenuMenuItem(LabelVar string, SubmenuVar *MenuModel) *MenuItem { | |
| 3334 | + | NewSubmenuMenuItemPtr := xNewSubmenuMenuItem(LabelVar, SubmenuVar.GoPointer()) | |
| 3335 | + | if NewSubmenuMenuItemPtr == 0 { | |
| 3336 | + | return nil | |
| 3337 | + | } | |
| 3338 | + | ||
| 3339 | + | NewSubmenuMenuItemCls := &MenuItem{} | |
| 3340 | + | NewSubmenuMenuItemCls.Ptr = NewSubmenuMenuItemPtr | |
| 3341 | + | return NewSubmenuMenuItemCls | |
| 3342 | + | } | |
| 3343 | + | ||
| 3344 | + | var xMenuItemGetAttribute func(uintptr, string, string, ...interface{}) bool | |
| 3345 | + | ||
| 3346 | + | // Queries the named @attribute on @menu_item. | |
| 3347 | + | // | |
| 3348 | + | // If the attribute exists and matches the #GVariantType corresponding | |
| 3349 | + | // to @format_string then @format_string is used to deconstruct the | |
| 3350 | + | // value into the positional parameters and %TRUE is returned. | |
| 3351 | + | // | |
| 3352 | + | // If the attribute does not exist, or it does exist but has the wrong | |
| 3353 | + | // type, then the positional parameters are ignored and %FALSE is | |
| 3354 | + | // returned. | |
| 3355 | + | func (x *MenuItem) GetAttribute(AttributeVar string, FormatStringVar string, varArgs ...interface{}) bool { | |
| 3356 | + | ||
| 3357 | + | return xMenuItemGetAttribute(x.GoPointer(), AttributeVar, FormatStringVar, varArgs...) | |
| 3358 | + | ||
| 3359 | + | } | |
| 3360 | + | ||
| 3361 | + | var xMenuItemGetAttributeValue func(uintptr, string, *glib.VariantType) *glib.Variant | |
| 3362 | + | ||
| 3363 | + | // Queries the named @attribute on @menu_item. | |
| 3364 | + | // | |
| 3365 | + | // If @expected_type is specified and the attribute does not have this | |
| 3366 | + | // type, %NULL is returned. %NULL is also returned if the attribute | |
| 3367 | + | // simply does not exist. | |
| 3368 | + | func (x *MenuItem) GetAttributeValue(AttributeVar string, ExpectedTypeVar *glib.VariantType) *glib.Variant { | |
| 3369 | + | ||
| 3370 | + | return xMenuItemGetAttributeValue(x.GoPointer(), AttributeVar, ExpectedTypeVar) | |
| 3371 | + | ||
| 3372 | + | } | |
| 3373 | + | ||
| 3374 | + | var xMenuItemGetLink func(uintptr, string) uintptr | |
| 3375 | + | ||
| 3376 | + | // Queries the named @link on @menu_item. | |
| 3377 | + | func (x *MenuItem) GetLink(LinkVar string) *MenuModel { | |
| 3378 | + | ||
| 3379 | + | GetLinkPtr := xMenuItemGetLink(x.GoPointer(), LinkVar) | |
| 3380 | + | if GetLinkPtr == 0 { | |
| 3381 | + | return nil | |
| 3382 | + | } | |
| 3383 | + | ||
| 3384 | + | GetLinkCls := &MenuModel{} | |
| 3385 | + | GetLinkCls.Ptr = GetLinkPtr | |
| 3386 | + | return GetLinkCls | |
| 3387 | + | ||
| 3388 | + | } | |
| 3389 | + | ||
| 3390 | + | var xMenuItemSetActionAndTarget func(uintptr, string, string, ...interface{}) | |
| 3391 | + | ||
| 3392 | + | // Sets or unsets the "action" and "target" attributes of @menu_item. | |
| 3393 | + | // | |
| 3394 | + | // If @action is %NULL then both the "action" and "target" attributes | |
| 3395 | + | // are unset (and @format_string is ignored along with the positional | |
| 3396 | + | // parameters). | |
| 3397 | + | // | |
| 3398 | + | // If @action is non-%NULL then the "action" attribute is set. | |
| 3399 | + | // @format_string is then inspected. If it is non-%NULL then the proper | |
| 3400 | + | // position parameters are collected to create a #GVariant instance to | |
| 3401 | + | // use as the target value. If it is %NULL then the positional | |
| 3402 | + | // parameters are ignored and the "target" attribute is unset. | |
| 3403 | + | // | |
| 3404 | + | // See also g_menu_item_set_action_and_target_value() for an equivalent | |
| 3405 | + | // call that directly accepts a #GVariant. See | |
| 3406 | + | // g_menu_item_set_detailed_action() for a more convenient version that | |
| 3407 | + | // works with string-typed targets. | |
| 3408 | + | // | |
| 3409 | + | // See also g_menu_item_set_action_and_target_value() for a | |
| 3410 | + | // description of the semantics of the action and target attributes. | |
| 3411 | + | func (x *MenuItem) SetActionAndTarget(ActionVar string, FormatStringVar string, varArgs ...interface{}) { | |
| 3412 | + | ||
| 3413 | + | xMenuItemSetActionAndTarget(x.GoPointer(), ActionVar, FormatStringVar, varArgs...) | |
| 3414 | + | ||
| 3415 | + | } | |
| 3416 | + | ||
| 3417 | + | var xMenuItemSetActionAndTargetValue func(uintptr, string, *glib.Variant) | |
| 3418 | + | ||
| 3419 | + | // Sets or unsets the "action" and "target" attributes of @menu_item. | |
| 3420 | + | // | |
| 3421 | + | // If @action is %NULL then both the "action" and "target" attributes | |
| 3422 | + | // are unset (and @target_value is ignored). | |
| 3423 | + | // | |
| 3424 | + | // If @action is non-%NULL then the "action" attribute is set. The | |
| 3425 | + | // "target" attribute is then set to the value of @target_value if it is | |
| 3426 | + | // non-%NULL or unset otherwise. | |
| 3427 | + | // | |
| 3428 | + | // Normal menu items (ie: not submenu, section or other custom item | |
| 3429 | + | // types) are expected to have the "action" attribute set to identify | |
| 3430 | + | // the action that they are associated with. The state type of the | |
| 3431 | + | // action help to determine the disposition of the menu item. See | |
| 3432 | + | // #GAction and #GActionGroup for an overview of actions. | |
| 3433 | + | // | |
| 3434 | + | // In general, clicking on the menu item will result in activation of | |
| 3435 | + | // the named action with the "target" attribute given as the parameter | |
| 3436 | + | // to the action invocation. If the "target" attribute is not set then | |
| 3437 | + | // the action is invoked with no parameter. | |
| 3438 | + | // | |
| 3439 | + | // If the action has no state then the menu item is usually drawn as a | |
| 3440 | + | // plain menu item (ie: with no additional decoration). | |
| 3441 | + | // | |
| 3442 | + | // If the action has a boolean state then the menu item is usually drawn | |
| 3443 | + | // as a toggle menu item (ie: with a checkmark or equivalent | |
| 3444 | + | // indication). The item should be marked as 'toggled' or 'checked' | |
| 3445 | + | // when the boolean state is %TRUE. | |
| 3446 | + | // | |
| 3447 | + | // If the action has a string state then the menu item is usually drawn | |
| 3448 | + | // as a radio menu item (ie: with a radio bullet or equivalent | |
| 3449 | + | // indication). The item should be marked as 'selected' when the string | |
| 3450 | + | // state is equal to the value of the @target property. | |
| 3451 | + | // | |
| 3452 | + | // See g_menu_item_set_action_and_target() or | |
| 3453 | + | // g_menu_item_set_detailed_action() for two equivalent calls that are | |
| 3454 | + | // probably more convenient for most uses. | |
| 3455 | + | func (x *MenuItem) SetActionAndTargetValue(ActionVar string, TargetValueVar *glib.Variant) { | |
| 3456 | + | ||
| 3457 | + | xMenuItemSetActionAndTargetValue(x.GoPointer(), ActionVar, TargetValueVar) | |
| 3458 | + | ||
| 3459 | + | } | |
| 3460 | + | ||
| 3461 | + | var xMenuItemSetAttribute func(uintptr, string, string, ...interface{}) | |
| 3462 | + | ||
| 3463 | + | // Sets or unsets an attribute on @menu_item. | |
| 3464 | + | // | |
| 3465 | + | // The attribute to set or unset is specified by @attribute. This | |
| 3466 | + | // can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL, | |
| 3467 | + | // %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom | |
| 3468 | + | // attribute name. | |
| 3469 | + | // Attribute names are restricted to lowercase characters, numbers | |
| 3470 | + | // and '-'. Furthermore, the names must begin with a lowercase character, | |
| 3471 | + | // must not end with a '-', and must not contain consecutive dashes. | |
| 3472 | + | // | |
| 3473 | + | // If @format_string is non-%NULL then the proper position parameters | |
| 3474 | + | // are collected to create a #GVariant instance to use as the attribute | |
| 3475 | + | // value. If it is %NULL then the positional parameterrs are ignored | |
| 3476 | + | // and the named attribute is unset. | |
| 3477 | + | // | |
| 3478 | + | // See also g_menu_item_set_attribute_value() for an equivalent call | |
| 3479 | + | // that directly accepts a #GVariant. | |
| 3480 | + | func (x *MenuItem) SetAttribute(AttributeVar string, FormatStringVar string, varArgs ...interface{}) { | |
| 3481 | + | ||
| 3482 | + | xMenuItemSetAttribute(x.GoPointer(), AttributeVar, FormatStringVar, varArgs...) | |
| 3483 | + | ||
| 3484 | + | } | |
| 3485 | + | ||
| 3486 | + | var xMenuItemSetAttributeValue func(uintptr, string, *glib.Variant) | |
| 3487 | + | ||
| 3488 | + | // Sets or unsets an attribute on @menu_item. | |
| 3489 | + | // | |
| 3490 | + | // The attribute to set or unset is specified by @attribute. This | |
| 3491 | + | // can be one of the standard attribute names %G_MENU_ATTRIBUTE_LABEL, | |
| 3492 | + | // %G_MENU_ATTRIBUTE_ACTION, %G_MENU_ATTRIBUTE_TARGET, or a custom | |
| 3493 | + | // attribute name. | |
| 3494 | + | // Attribute names are restricted to lowercase characters, numbers | |
| 3495 | + | // and '-'. Furthermore, the names must begin with a lowercase character, | |
| 3496 | + | // must not end with a '-', and must not contain consecutive dashes. | |
| 3497 | + | // | |
| 3498 | + | // must consist only of lowercase | |
| 3499 | + | // ASCII characters, digits and '-'. | |
| 3500 | + | // | |
| 3501 | + | // If @value is non-%NULL then it is used as the new value for the | |
| 3502 | + | // attribute. If @value is %NULL then the attribute is unset. If | |
| 3503 | + | // the @value #GVariant is floating, it is consumed. | |
| 3504 | + | // | |
| 3505 | + | // See also g_menu_item_set_attribute() for a more convenient way to do | |
| 3506 | + | // the same. | |
| 3507 | + | func (x *MenuItem) SetAttributeValue(AttributeVar string, ValueVar *glib.Variant) { | |
| 3508 | + | ||
| 3509 | + | xMenuItemSetAttributeValue(x.GoPointer(), AttributeVar, ValueVar) | |
| 3510 | + | ||
| 3511 | + | } | |
| 3512 | + | ||
| 3513 | + | var xMenuItemSetDetailedAction func(uintptr, string) | |
| 3514 | + | ||
| 3515 | + | // Sets the "action" and possibly the "target" attribute of @menu_item. | |
| 3516 | + | // | |
| 3517 | + | // The format of @detailed_action is the same format parsed by | |
| 3518 | + | // g_action_parse_detailed_name(). | |
| 3519 | + | // | |
| 3520 | + | // See g_menu_item_set_action_and_target() or | |
| 3521 | + | // g_menu_item_set_action_and_target_value() for more flexible (but | |
| 3522 | + | // slightly less convenient) alternatives. | |
| 3523 | + | // | |
| 3524 | + | // See also g_menu_item_set_action_and_target_value() for a description of | |
| 3525 | + | // the semantics of the action and target attributes. | |
| 3526 | + | func (x *MenuItem) SetDetailedAction(DetailedActionVar string) { | |
| 3527 | + | ||
| 3528 | + | xMenuItemSetDetailedAction(x.GoPointer(), DetailedActionVar) | |
| 3529 | + | ||
| 3530 | + | } | |
| 3531 | + | ||
| 3532 | + | var xMenuItemSetIcon func(uintptr, uintptr) | |
| 3533 | + | ||
| 3534 | + | // Sets (or unsets) the icon on @menu_item. | |
| 3535 | + | // | |
| 3536 | + | // This call is the same as calling g_icon_serialize() and using the | |
| 3537 | + | // result as the value to g_menu_item_set_attribute_value() for | |
| 3538 | + | // %G_MENU_ATTRIBUTE_ICON. | |
| 3539 | + | // | |
| 3540 | + | // This API is only intended for use with "noun" menu items; things like | |
| 3541 | + | // bookmarks or applications in an "Open With" menu. Don't use it on | |
| 3542 | + | // menu items corresponding to verbs (eg: stock icons for 'Save' or | |
| 3543 | + | // 'Quit'). | |
| 3544 | + | // | |
| 3545 | + | // If @icon is %NULL then the icon is unset. | |
| 3546 | + | func (x *MenuItem) SetIcon(IconVar Icon) { | |
| 3547 | + | ||
| 3548 | + | xMenuItemSetIcon(x.GoPointer(), IconVar.GoPointer()) | |
| 3549 | + | ||
| 3550 | + | } | |
| 3551 | + | ||
| 3552 | + | var xMenuItemSetLabel func(uintptr, string) | |
| 3553 | + | ||
| 3554 | + | // Sets or unsets the "label" attribute of @menu_item. | |
| 3555 | + | // | |
| 3556 | + | // If @label is non-%NULL it is used as the label for the menu item. If | |
| 3557 | + | // it is %NULL then the label attribute is unset. | |
| 3558 | + | func (x *MenuItem) SetLabel(LabelVar string) { | |
| 3559 | + | ||
| 3560 | + | xMenuItemSetLabel(x.GoPointer(), LabelVar) | |
| 3561 | + | ||
| 3562 | + | } | |
| 3563 | + | ||
| 3564 | + | var xMenuItemSetLink func(uintptr, string, uintptr) | |
| 3565 | + | ||
| 3566 | + | // Creates a link from @menu_item to @model if non-%NULL, or unsets it. | |
| 3567 | + | // | |
| 3568 | + | // Links are used to establish a relationship between a particular menu | |
| 3569 | + | // item and another menu. For example, %G_MENU_LINK_SUBMENU is used to | |
| 3570 | + | // associate a submenu with a particular menu item, and %G_MENU_LINK_SECTION | |
| 3571 | + | // is used to create a section. Other types of link can be used, but there | |
| 3572 | + | // is no guarantee that clients will be able to make sense of them. | |
| 3573 | + | // Link types are restricted to lowercase characters, numbers | |
| 3574 | + | // and '-'. Furthermore, the names must begin with a lowercase character, | |
| 3575 | + | // must not end with a '-', and must not contain consecutive dashes. | |
| 3576 | + | func (x *MenuItem) SetLink(LinkVar string, ModelVar *MenuModel) { | |
| 3577 | + | ||
| 3578 | + | xMenuItemSetLink(x.GoPointer(), LinkVar, ModelVar.GoPointer()) | |
| 3579 | + | ||
| 3580 | + | } | |
| 3581 | + | ||
| 3582 | + | var xMenuItemSetSection func(uintptr, uintptr) | |
| 3583 | + | ||
| 3584 | + | // Sets or unsets the "section" link of @menu_item to @section. | |
| 3585 | + | // | |
| 3586 | + | // The effect of having one menu appear as a section of another is | |
| 3587 | + | // exactly as it sounds: the items from @section become a direct part of | |
| 3588 | + | // the menu that @menu_item is added to. See g_menu_item_new_section() | |
| 3589 | + | // for more information about what it means for a menu item to be a | |
| 3590 | + | // section. | |
| 3591 | + | func (x *MenuItem) SetSection(SectionVar *MenuModel) { | |
| 3592 | + | ||
| 3593 | + | xMenuItemSetSection(x.GoPointer(), SectionVar.GoPointer()) | |
| 3594 | + | ||
| 3595 | + | } | |
| 3596 | + | ||
| 3597 | + | var xMenuItemSetSubmenu func(uintptr, uintptr) | |
| 3598 | + | ||
| 3599 | + | // Sets or unsets the "submenu" link of @menu_item to @submenu. | |
| 3600 | + | // | |
| 3601 | + | // If @submenu is non-%NULL, it is linked to. If it is %NULL then the | |
| 3602 | + | // link is unset. | |
| 3603 | + | // | |
| 3604 | + | // The effect of having one menu appear as a submenu of another is | |
| 3605 | + | // exactly as it sounds. | |
| 3606 | + | func (x *MenuItem) SetSubmenu(SubmenuVar *MenuModel) { | |
| 3607 | + | ||
| 3608 | + | xMenuItemSetSubmenu(x.GoPointer(), SubmenuVar.GoPointer()) | |
| 3609 | + | ||
| 3610 | + | } | |
| 3611 | + | ||
| 3612 | + | func (c *MenuItem) GoPointer() uintptr { | |
| 3613 | + | return c.Ptr | |
| 3614 | + | } | |
| 3615 | + | ||
| 3616 | + | func (c *MenuItem) SetGoPointer(ptr uintptr) { | |
| 3617 | + | c.Ptr = ptr | |
| 3618 | + | } | |
| 3619 | + | ||
| 3620 | + | // #GNotification is a mechanism for creating a notification to be shown | |
| 3621 | + | // to the user -- typically as a pop-up notification presented by the | |
| 3622 | + | // desktop environment shell. | |
| 3623 | + | // | |
| 3624 | + | // The key difference between #GNotification and other similar APIs is | |
| 3625 | + | // that, if supported by the desktop environment, notifications sent | |
| 3626 | + | // with #GNotification will persist after the application has exited, | |
| 3627 | + | // and even across system reboots. | |
| 3628 | + | // | |
| 3629 | + | // Since the user may click on a notification while the application is | |
| 3630 | + | // not running, applications using #GNotification should be able to be | |
| 3631 | + | // started as a D-Bus service, using #GApplication. | |
| 3632 | + | // | |
| 3633 | + | // In order for #GNotification to work, the application must have installed | |
| 3634 | + | // a `.desktop` file. For example: | |
| 3635 | + | // |[ | |
| 3636 | + | // | |
| 3637 | + | // [Desktop Entry] | |
| 3638 | + | // Name=Test Application | |
| 3639 | + | // Comment=Description of what Test Application does | |
| 3640 | + | // Exec=gnome-test-application | |
| 3641 | + | // Icon=org.gnome.TestApplication | |
| 3642 | + | // Terminal=false | |
| 3643 | + | // Type=Application | |
| 3644 | + | // Categories=GNOME;GTK;TestApplication Category; | |
| 3645 | + | // StartupNotify=true | |
| 3646 | + | // DBusActivatable=true | |
| 3647 | + | // X-GNOME-UsesNotifications=true | |
| 3648 | + | // | |
| 3649 | + | // ]| | |
| 3650 | + | // | |
| 3651 | + | // The `X-GNOME-UsesNotifications` key indicates to GNOME Control Center | |
| 3652 | + | // that this application uses notifications, so it can be listed in the | |
| 3653 | + | // Control Center’s ‘Notifications’ panel. | |
| 3654 | + | // | |
| 3655 | + | // The `.desktop` file must be named as `org.gnome.TestApplication.desktop`, | |
| 3656 | + | // where `org.gnome.TestApplication` is the ID passed to g_application_new(). | |
| 3657 | + | // | |
| 3658 | + | // User interaction with a notification (either the default action, or | |
| 3659 | + | // buttons) must be associated with actions on the application (ie: | |
| 3660 | + | // "app." actions). It is not possible to route user interaction | |
| 3661 | + | // through the notification itself, because the object will not exist if | |
| 3662 | + | // the application is autostarted as a result of a notification being | |
| 3663 | + | // clicked. | |
| 3664 | + | // | |
| 3665 | + | // A notification can be sent with g_application_send_notification(). | |
| 3666 | + | type Notification struct { | |
| 3667 | + | gobject.Object | |
| 3668 | + | } | |
| 3669 | + | ||
| 3670 | + | func NotificationNewFromInternalPtr(ptr uintptr) *Notification { | |
| 3671 | + | cls := &Notification{} | |
| 3672 | + | cls.Ptr = ptr | |
| 3673 | + | return cls | |
| 3674 | + | } | |
| 3675 | + | ||
| 3676 | + | var xNewNotification func(string) uintptr | |
| 3677 | + | ||
| 3678 | + | // Creates a new #GNotification with @title as its title. | |
| 3679 | + | // | |
| 3680 | + | // After populating @notification with more details, it can be sent to | |
| 3681 | + | // the desktop shell with g_application_send_notification(). Changing | |
| 3682 | + | // any properties after this call will not have any effect until | |
| 3683 | + | // resending @notification. | |
| 3684 | + | func NewNotification(TitleVar string) *Notification { | |
| 3685 | + | NewNotificationPtr := xNewNotification(TitleVar) | |
| 3686 | + | if NewNotificationPtr == 0 { | |
| 3687 | + | return nil | |
| 3688 | + | } | |
| 3689 | + | ||
| 3690 | + | NewNotificationCls := &Notification{} | |
| 3691 | + | NewNotificationCls.Ptr = NewNotificationPtr | |
| 3692 | + | return NewNotificationCls | |
| 3693 | + | } | |
| 3694 | + | ||
| 3695 | + | var xNotificationAddButton func(uintptr, string, string) | |
| 3696 | + | ||
| 3697 | + | // Adds a button to @notification that activates the action in | |
| 3698 | + | // @detailed_action when clicked. That action must be an | |
| 3699 | + | // application-wide action (starting with "app."). If @detailed_action | |
| 3700 | + | // contains a target, the action will be activated with that target as | |
| 3701 | + | // its parameter. | |
| 3702 | + | // | |
| 3703 | + | // See g_action_parse_detailed_name() for a description of the format | |
| 3704 | + | // for @detailed_action. | |
| 3705 | + | func (x *Notification) AddButton(LabelVar string, DetailedActionVar string) { | |
| 3706 | + | ||
| 3707 | + | xNotificationAddButton(x.GoPointer(), LabelVar, DetailedActionVar) | |
| 3708 | + | ||
| 3709 | + | } | |
| 3710 | + | ||
| 3711 | + | var xNotificationAddButtonWithTarget func(uintptr, string, string, string, ...interface{}) | |
| 3712 | + | ||
| 3713 | + | // Adds a button to @notification that activates @action when clicked. | |
| 3714 | + | // @action must be an application-wide action (it must start with "app."). | |
| 3715 | + | // | |
| 3716 | + | // If @target_format is given, it is used to collect remaining | |
| 3717 | + | // positional parameters into a #GVariant instance, similar to | |
| 3718 | + | // g_variant_new(). @action will be activated with that #GVariant as its | |
| 3719 | + | // parameter. | |
| 3720 | + | func (x *Notification) AddButtonWithTarget(LabelVar string, ActionVar string, TargetFormatVar string, varArgs ...interface{}) { | |
| 3721 | + | ||
| 3722 | + | xNotificationAddButtonWithTarget(x.GoPointer(), LabelVar, ActionVar, TargetFormatVar, varArgs...) | |
| 3723 | + | ||
| 3724 | + | } | |
| 3725 | + | ||
| 3726 | + | var xNotificationAddButtonWithTargetValue func(uintptr, string, string, *glib.Variant) | |
| 3727 | + | ||
| 3728 | + | // Adds a button to @notification that activates @action when clicked. | |
| 3729 | + | // @action must be an application-wide action (it must start with "app."). | |
| 3730 | + | // | |
| 3731 | + | // If @target is non-%NULL, @action will be activated with @target as | |
| 3732 | + | // its parameter. | |
| 3733 | + | func (x *Notification) AddButtonWithTargetValue(LabelVar string, ActionVar string, TargetVar *glib.Variant) { | |
| 3734 | + | ||
| 3735 | + | xNotificationAddButtonWithTargetValue(x.GoPointer(), LabelVar, ActionVar, TargetVar) | |
| 3736 | + | ||
| 3737 | + | } | |
| 3738 | + | ||
| 3739 | + | var xNotificationSetBody func(uintptr, string) | |
| 3740 | + | ||
| 3741 | + | // Sets the body of @notification to @body. | |
| 3742 | + | func (x *Notification) SetBody(BodyVar string) { | |
| 3743 | + | ||
| 3744 | + | xNotificationSetBody(x.GoPointer(), BodyVar) | |
| 3745 | + | ||
| 3746 | + | } | |
| 3747 | + | ||
| 3748 | + | var xNotificationSetCategory func(uintptr, string) | |
| 3749 | + | ||
| 3750 | + | // Sets the type of @notification to @category. Categories have a main | |
| 3751 | + | // type like `email`, `im` or `device` and can have a detail separated | |
| 3752 | + | // by a `.`, e.g. `im.received` or `email.arrived`. Setting the category | |
| 3753 | + | // helps the notification server to select proper feedback to the user. | |
| 3754 | + | // | |
| 3755 | + | // Standard categories are [listed in the specification](https://specifications.freedesktop.org/notification-spec/latest/ar01s06.html). | |
| 3756 | + | func (x *Notification) SetCategory(CategoryVar string) { | |
| 3757 | + | ||
| 3758 | + | xNotificationSetCategory(x.GoPointer(), CategoryVar) | |
| 3759 | + | ||
| 3760 | + | } | |
| 3761 | + | ||
| 3762 | + | var xNotificationSetDefaultAction func(uintptr, string) | |
| 3763 | + | ||
| 3764 | + | // Sets the default action of @notification to @detailed_action. This | |
| 3765 | + | // action is activated when the notification is clicked on. | |
| 3766 | + | // | |
| 3767 | + | // The action in @detailed_action must be an application-wide action (it | |
| 3768 | + | // must start with "app."). If @detailed_action contains a target, the | |
| 3769 | + | // given action will be activated with that target as its parameter. | |
| 3770 | + | // See g_action_parse_detailed_name() for a description of the format | |
| 3771 | + | // for @detailed_action. | |
| 3772 | + | // | |
| 3773 | + | // When no default action is set, the application that the notification | |
| 3774 | + | // was sent on is activated. | |
| 3775 | + | func (x *Notification) SetDefaultAction(DetailedActionVar string) { | |
| 3776 | + | ||
| 3777 | + | xNotificationSetDefaultAction(x.GoPointer(), DetailedActionVar) | |
| 3778 | + | ||
| 3779 | + | } | |
| 3780 | + | ||
| 3781 | + | var xNotificationSetDefaultActionAndTarget func(uintptr, string, string, ...interface{}) | |
| 3782 | + | ||
| 3783 | + | // Sets the default action of @notification to @action. This action is | |
| 3784 | + | // activated when the notification is clicked on. It must be an | |
| 3785 | + | // application-wide action (it must start with "app."). | |
| 3786 | + | // | |
| 3787 | + | // If @target_format is given, it is used to collect remaining | |
| 3788 | + | // positional parameters into a #GVariant instance, similar to | |
| 3789 | + | // g_variant_new(). @action will be activated with that #GVariant as its | |
| 3790 | + | // parameter. | |
| 3791 | + | // | |
| 3792 | + | // When no default action is set, the application that the notification | |
| 3793 | + | // was sent on is activated. | |
| 3794 | + | func (x *Notification) SetDefaultActionAndTarget(ActionVar string, TargetFormatVar string, varArgs ...interface{}) { | |
| 3795 | + | ||
| 3796 | + | xNotificationSetDefaultActionAndTarget(x.GoPointer(), ActionVar, TargetFormatVar, varArgs...) | |
| 3797 | + | ||
| 3798 | + | } | |
| 3799 | + | ||
| 3800 | + | var xNotificationSetDefaultActionAndTargetValue func(uintptr, string, *glib.Variant) | |
| 3801 | + | ||
| 3802 | + | // Sets the default action of @notification to @action. This action is | |
| 3803 | + | // activated when the notification is clicked on. It must be an | |
| 3804 | + | // application-wide action (start with "app."). | |
| 3805 | + | // | |
| 3806 | + | // If @target is non-%NULL, @action will be activated with @target as | |
| 3807 | + | // its parameter. | |
| 3808 | + | // | |
| 3809 | + | // When no default action is set, the application that the notification | |
| 3810 | + | // was sent on is activated. | |
| 3811 | + | func (x *Notification) SetDefaultActionAndTargetValue(ActionVar string, TargetVar *glib.Variant) { | |
| 3812 | + | ||
| 3813 | + | xNotificationSetDefaultActionAndTargetValue(x.GoPointer(), ActionVar, TargetVar) | |
| 3814 | + | ||
| 3815 | + | } | |
| 3816 | + | ||
| 3817 | + | var xNotificationSetIcon func(uintptr, uintptr) | |
| 3818 | + | ||
| 3819 | + | // Sets the icon of @notification to @icon. | |
| 3820 | + | func (x *Notification) SetIcon(IconVar Icon) { | |
| 3821 | + | ||
| 3822 | + | xNotificationSetIcon(x.GoPointer(), IconVar.GoPointer()) | |
| 3823 | + | ||
| 3824 | + | } | |
| 3825 | + | ||
| 3826 | + | var xNotificationSetPriority func(uintptr, NotificationPriority) | |
| 3827 | + | ||
| 3828 | + | // Sets the priority of @notification to @priority. See | |
| 3829 | + | // #GNotificationPriority for possible values. | |
| 3830 | + | func (x *Notification) SetPriority(PriorityVar NotificationPriority) { | |
| 3831 | + | ||
| 3832 | + | xNotificationSetPriority(x.GoPointer(), PriorityVar) | |
| 3833 | + | ||
| 3834 | + | } | |
| 3835 | + | ||
| 3836 | + | var xNotificationSetTitle func(uintptr, string) | |
| 3837 | + | ||
| 3838 | + | // Sets the title of @notification to @title. | |
| 3839 | + | func (x *Notification) SetTitle(TitleVar string) { | |
| 3840 | + | ||
| 3841 | + | xNotificationSetTitle(x.GoPointer(), TitleVar) | |
| 3842 | + | ||
| 3843 | + | } | |
| 3844 | + | ||
| 3845 | + | var xNotificationSetUrgent func(uintptr, bool) | |
| 3846 | + | ||
| 3847 | + | // Deprecated in favor of g_notification_set_priority(). | |
| 3848 | + | func (x *Notification) SetUrgent(UrgentVar bool) { | |
| 3849 | + | ||
| 3850 | + | xNotificationSetUrgent(x.GoPointer(), UrgentVar) | |
| 3851 | + | ||
| 3852 | + | } | |
| 3853 | + | ||
| 3854 | + | func (c *Notification) GoPointer() uintptr { | |
| 3855 | + | return c.Ptr | |
| 3856 | + | } | |
| 3857 | + | ||
| 3858 | + | func (c *Notification) SetGoPointer(ptr uintptr) { | |
| 3859 | + | c.Ptr = ptr | |
| 3860 | + | } | |
| 3861 | + | ||
| 3862 | + | // A #GPropertyAction is a way to get a #GAction with a state value | |
| 3863 | + | // reflecting and controlling the value of a #GObject property. | |
| 3864 | + | // | |
| 3865 | + | // The state of the action will correspond to the value of the property. | |
| 3866 | + | // Changing it will change the property (assuming the requested value | |
| 3867 | + | // matches the requirements as specified in the #GParamSpec). | |
| 3868 | + | // | |
| 3869 | + | // Only the most common types are presently supported. Booleans are | |
| 3870 | + | // mapped to booleans, strings to strings, signed/unsigned integers to | |
| 3871 | + | // int32/uint32 and floats and doubles to doubles. | |
| 3872 | + | // | |
| 3873 | + | // If the property is an enum then the state will be string-typed and | |
| 3874 | + | // conversion will automatically be performed between the enum value and | |
| 3875 | + | // "nick" string as per the #GEnumValue table. | |
| 3876 | + | // | |
| 3877 | + | // Flags types are not currently supported. | |
| 3878 | + | // | |
| 3879 | + | // Properties of object types, boxed types and pointer types are not | |
| 3880 | + | // supported and probably never will be. | |
| 3881 | + | // | |
| 3882 | + | // Properties of #GVariant types are not currently supported. | |
| 3883 | + | // | |
| 3884 | + | // If the property is boolean-valued then the action will have a NULL | |
| 3885 | + | // parameter type, and activating the action (with no parameter) will | |
| 3886 | + | // toggle the value of the property. | |
| 3887 | + | // | |
| 3888 | + | // In all other cases, the parameter type will correspond to the type of | |
| 3889 | + | // the property. | |
| 3890 | + | // | |
| 3891 | + | // The general idea here is to reduce the number of locations where a | |
| 3892 | + | // particular piece of state is kept (and therefore has to be synchronised | |
| 3893 | + | // between). #GPropertyAction does not have a separate state that is kept | |
| 3894 | + | // in sync with the property value -- its state is the property value. | |
| 3895 | + | // | |
| 3896 | + | // For example, it might be useful to create a #GAction corresponding to | |
| 3897 | + | // the "visible-child-name" property of a #GtkStack so that the current | |
| 3898 | + | // page can be switched from a menu. The active radio indication in the | |
| 3899 | + | // menu is then directly determined from the active page of the | |
| 3900 | + | // #GtkStack. | |
| 3901 | + | // | |
| 3902 | + | // An anti-example would be binding the "active-id" property on a | |
| 3903 | + | // #GtkComboBox. This is because the state of the combobox itself is | |
| 3904 | + | // probably uninteresting and is actually being used to control | |
| 3905 | + | // something else. | |
| 3906 | + | // | |
| 3907 | + | // Another anti-example would be to bind to the "visible-child-name" | |
| 3908 | + | // property of a #GtkStack if this value is actually stored in | |
| 3909 | + | // #GSettings. In that case, the real source of the value is | |
| 3910 | + | // #GSettings. If you want a #GAction to control a setting stored in | |
| 3911 | + | // #GSettings, see g_settings_create_action() instead, and possibly | |
| 3912 | + | // combine its use with g_settings_bind(). | |
| 3913 | + | type PropertyAction struct { | |
| 3914 | + | gobject.Object | |
| 3915 | + | } | |
| 3916 | + | ||
| 3917 | + | func PropertyActionNewFromInternalPtr(ptr uintptr) *PropertyAction { | |
| 3918 | + | cls := &PropertyAction{} | |
| 3919 | + | cls.Ptr = ptr | |
| 3920 | + | return cls | |
| 3921 | + | } | |
| 3922 | + | ||
| 3923 | + | var xNewPropertyAction func(string, uintptr, string) uintptr | |
| 3924 | + | ||
| 3925 | + | // Creates a #GAction corresponding to the value of property | |
| 3926 | + | // @property_name on @object. | |
| 3927 | + | // | |
| 3928 | + | // The property must be existent and readable and writable (and not | |
| 3929 | + | // construct-only). | |
| 3930 | + | // | |
| 3931 | + | // This function takes a reference on @object and doesn't release it | |
| 3932 | + | // until the action is destroyed. | |
| 3933 | + | func NewPropertyAction(NameVar string, ObjectVar *gobject.Object, PropertyNameVar string) *PropertyAction { | |
| 3934 | + | NewPropertyActionPtr := xNewPropertyAction(NameVar, ObjectVar.GoPointer(), PropertyNameVar) | |
| 3935 | + | if NewPropertyActionPtr == 0 { | |
| 3936 | + | return nil | |
| 3937 | + | } | |
| 3938 | + | ||
| 3939 | + | NewPropertyActionCls := &PropertyAction{} | |
| 3940 | + | NewPropertyActionCls.Ptr = NewPropertyActionPtr | |
| 3941 | + | return NewPropertyActionCls | |
| 3942 | + | } | |
| 3943 | + | ||
| 3944 | + | func (c *PropertyAction) GoPointer() uintptr { | |
| 3945 | + | return c.Ptr | |
| 3946 | + | } | |
| 3947 | + | ||
| 3948 | + | func (c *PropertyAction) SetGoPointer(ptr uintptr) { | |
| 3949 | + | c.Ptr = ptr | |
| 3950 | + | } | |
| 3951 | + | ||
| 3952 | + | // Activates the action. | |
| 3953 | + | // | |
| 3954 | + | // @parameter must be the correct type of parameter for the action (ie: | |
| 3955 | + | // the parameter type given at construction time). If the parameter | |
| 3956 | + | // type was %NULL then @parameter must also be %NULL. | |
| 3957 | + | // | |
| 3958 | + | // If the @parameter GVariant is floating, it is consumed. | |
| 3959 | + | func (x *PropertyAction) Activate(ParameterVar *glib.Variant) { | |
| 3960 | + | ||
| 3961 | + | XGActionActivate(x.GoPointer(), ParameterVar) | |
| 3962 | + | ||
| 3963 | + | } | |
| 3964 | + | ||
| 3965 | + | // Request for the state of @action to be changed to @value. | |
| 3966 | + | // | |
| 3967 | + | // The action must be stateful and @value must be of the correct type. | |
| 3968 | + | // See g_action_get_state_type(). | |
| 3969 | + | // | |
| 3970 | + | // This call merely requests a change. The action may refuse to change | |
| 3971 | + | // its state or may change its state to something other than @value. | |
| 3972 | + | // See g_action_get_state_hint(). | |
| 3973 | + | // | |
| 3974 | + | // If the @value GVariant is floating, it is consumed. | |
| 3975 | + | func (x *PropertyAction) ChangeState(ValueVar *glib.Variant) { | |
| 3976 | + | ||
| 3977 | + | XGActionChangeState(x.GoPointer(), ValueVar) | |
| 3978 | + | ||
| 3979 | + | } | |
| 3980 | + | ||
| 3981 | + | // Checks if @action is currently enabled. | |
| 3982 | + | // | |
| 3983 | + | // An action must be enabled in order to be activated or in order to | |
| 3984 | + | // have its state changed from outside callers. | |
| 3985 | + | func (x *PropertyAction) GetEnabled() bool { | |
| 3986 | + | ||
| 3987 | + | return XGActionGetEnabled(x.GoPointer()) | |
| 3988 | + | ||
| 3989 | + | } | |
| 3990 | + | ||
| 3991 | + | // Queries the name of @action. | |
| 3992 | + | func (x *PropertyAction) GetName() string { | |
| 3993 | + | ||
| 3994 | + | return XGActionGetName(x.GoPointer()) | |
| 3995 | + | ||
| 3996 | + | } | |
| 3997 | + | ||
| 3998 | + | // Queries the type of the parameter that must be given when activating | |
| 3999 | + | // @action. | |
| 4000 | + | // | |
| 4001 | + | // When activating the action using g_action_activate(), the #GVariant | |
| 4002 | + | // given to that function must be of the type returned by this function. | |
| 4003 | + | // | |
| 4004 | + | // In the case that this function returns %NULL, you must not give any | |
| 4005 | + | // #GVariant, but %NULL instead. | |
| 4006 | + | func (x *PropertyAction) GetParameterType() *glib.VariantType { | |
| 4007 | + | ||
| 4008 | + | return XGActionGetParameterType(x.GoPointer()) | |
| 4009 | + | ||
| 4010 | + | } | |
| 4011 | + | ||
| 4012 | + | // Queries the current state of @action. | |
| 4013 | + | // | |
| 4014 | + | // If the action is not stateful then %NULL will be returned. If the | |
| 4015 | + | // action is stateful then the type of the return value is the type | |
| 4016 | + | // given by g_action_get_state_type(). | |
| 4017 | + | // | |
| 4018 | + | // The return value (if non-%NULL) should be freed with | |
| 4019 | + | // g_variant_unref() when it is no longer required. | |
| 4020 | + | func (x *PropertyAction) GetState() *glib.Variant { | |
| 4021 | + | ||
| 4022 | + | return XGActionGetState(x.GoPointer()) | |
| 4023 | + | ||
| 4024 | + | } | |
| 4025 | + | ||
| 4026 | + | // Requests a hint about the valid range of values for the state of | |
| 4027 | + | // @action. | |
| 4028 | + | // | |
| 4029 | + | // If %NULL is returned it either means that the action is not stateful | |
| 4030 | + | // or that there is no hint about the valid range of values for the | |
| 4031 | + | // state of the action. | |
| 4032 | + | // | |
| 4033 | + | // If a #GVariant array is returned then each item in the array is a | |
| 4034 | + | // possible value for the state. If a #GVariant pair (ie: two-tuple) is | |
| 4035 | + | // returned then the tuple specifies the inclusive lower and upper bound | |
| 4036 | + | // of valid values for the state. | |
| 4037 | + | // | |
| 4038 | + | // In any case, the information is merely a hint. It may be possible to | |
| 4039 | + | // have a state value outside of the hinted range and setting a value | |
| 4040 | + | // within the range may fail. | |
| 4041 | + | // | |
| 4042 | + | // The return value (if non-%NULL) should be freed with | |
| 4043 | + | // g_variant_unref() when it is no longer required. | |
| 4044 | + | func (x *PropertyAction) GetStateHint() *glib.Variant { | |
| 4045 | + | ||
| 4046 | + | return XGActionGetStateHint(x.GoPointer()) | |
| 4047 | + | ||
| 4048 | + | } | |
| 4049 | + | ||
| 4050 | + | // Queries the type of the state of @action. | |
| 4051 | + | // | |
| 4052 | + | // If the action is stateful (e.g. created with | |
| 4053 | + | // g_simple_action_new_stateful()) then this function returns the | |
| 4054 | + | // #GVariantType of the state. This is the type of the initial value | |
| 4055 | + | // given as the state. All calls to g_action_change_state() must give a | |
| 4056 | + | // #GVariant of this type and g_action_get_state() will return a | |
| 4057 | + | // #GVariant of the same type. | |
| 4058 | + | // | |
| 4059 | + | // If the action is not stateful (e.g. created with g_simple_action_new()) | |
| 4060 | + | // then this function will return %NULL. In that case, g_action_get_state() | |
| 4061 | + | // will return %NULL and you must not call g_action_change_state(). | |
| 4062 | + | func (x *PropertyAction) GetStateType() *glib.VariantType { | |
| 4063 | + | ||
| 4064 | + | return XGActionGetStateType(x.GoPointer()) | |
| 4065 | + | ||
| 4066 | + | } | |
| 4067 | + | ||
| 4068 | + | // A #GSimpleAction is the obvious simple implementation of the #GAction | |
| 4069 | + | // interface. This is the easiest way to create an action for purposes of | |
| 4070 | + | // adding it to a #GSimpleActionGroup. | |
| 4071 | + | // | |
| 4072 | + | // See also #GtkAction. | |
| 4073 | + | type SimpleAction struct { | |
| 4074 | + | gobject.Object | |
| 4075 | + | } | |
| 4076 | + | ||
| 4077 | + | func SimpleActionNewFromInternalPtr(ptr uintptr) *SimpleAction { | |
| 4078 | + | cls := &SimpleAction{} | |
| 4079 | + | cls.Ptr = ptr | |
| 4080 | + | return cls | |
| 4081 | + | } | |
| 4082 | + | ||
| 4083 | + | var xNewSimpleAction func(string, *glib.VariantType) uintptr | |
| 4084 | + | ||
| 4085 | + | // Creates a new action. | |
| 4086 | + | // | |
| 4087 | + | // The created action is stateless. See g_simple_action_new_stateful() to create | |
| 4088 | + | // an action that has state. | |
| 4089 | + | func NewSimpleAction(NameVar string, ParameterTypeVar *glib.VariantType) *SimpleAction { | |
| 4090 | + | NewSimpleActionPtr := xNewSimpleAction(NameVar, ParameterTypeVar) | |
| 4091 | + | if NewSimpleActionPtr == 0 { | |
| 4092 | + | return nil | |
| 4093 | + | } | |
| 4094 | + | ||
| 4095 | + | NewSimpleActionCls := &SimpleAction{} | |
| 4096 | + | NewSimpleActionCls.Ptr = NewSimpleActionPtr | |
| 4097 | + | return NewSimpleActionCls | |
| 4098 | + | } | |
| 4099 | + | ||
| 4100 | + | var xNewStatefulSimpleAction func(string, *glib.VariantType, *glib.Variant) uintptr | |
| 4101 | + | ||
| 4102 | + | // Creates a new stateful action. | |
| 4103 | + | // | |
| 4104 | + | // All future state values must have the same #GVariantType as the initial | |
| 4105 | + | // @state. | |
| 4106 | + | // | |
| 4107 | + | // If the @state #GVariant is floating, it is consumed. | |
| 4108 | + | func NewStatefulSimpleAction(NameVar string, ParameterTypeVar *glib.VariantType, StateVar *glib.Variant) *SimpleAction { | |
| 4109 | + | NewStatefulSimpleActionPtr := xNewStatefulSimpleAction(NameVar, ParameterTypeVar, StateVar) | |
| 4110 | + | if NewStatefulSimpleActionPtr == 0 { | |
| 4111 | + | return nil | |
| 4112 | + | } | |
| 4113 | + | ||
| 4114 | + | NewStatefulSimpleActionCls := &SimpleAction{} | |
| 4115 | + | NewStatefulSimpleActionCls.Ptr = NewStatefulSimpleActionPtr | |
| 4116 | + | return NewStatefulSimpleActionCls | |
| 4117 | + | } | |
| 4118 | + | ||
| 4119 | + | var xSimpleActionSetEnabled func(uintptr, bool) | |
| 4120 | + | ||
| 4121 | + | // Sets the action as enabled or not. | |
| 4122 | + | // | |
| 4123 | + | // An action must be enabled in order to be activated or in order to | |
| 4124 | + | // have its state changed from outside callers. | |
| 4125 | + | // | |
| 4126 | + | // This should only be called by the implementor of the action. Users | |
| 4127 | + | // of the action should not attempt to modify its enabled flag. | |
| 4128 | + | func (x *SimpleAction) SetEnabled(EnabledVar bool) { | |
| 4129 | + | ||
| 4130 | + | xSimpleActionSetEnabled(x.GoPointer(), EnabledVar) | |
| 4131 | + | ||
| 4132 | + | } | |
| 4133 | + | ||
| 4134 | + | var xSimpleActionSetState func(uintptr, *glib.Variant) | |
| 4135 | + | ||
| 4136 | + | // Sets the state of the action. | |
| 4137 | + | // | |
| 4138 | + | // This directly updates the 'state' property to the given value. | |
| 4139 | + | // | |
| 4140 | + | // This should only be called by the implementor of the action. Users | |
| 4141 | + | // of the action should not attempt to directly modify the 'state' | |
| 4142 | + | // property. Instead, they should call g_action_change_state() to | |
| 4143 | + | // request the change. | |
| 4144 | + | // | |
| 4145 | + | // If the @value GVariant is floating, it is consumed. | |
| 4146 | + | func (x *SimpleAction) SetState(ValueVar *glib.Variant) { | |
| 4147 | + | ||
| 4148 | + | xSimpleActionSetState(x.GoPointer(), ValueVar) | |
| 4149 | + | ||
| 4150 | + | } | |
| 4151 | + | ||
| 4152 | + | var xSimpleActionSetStateHint func(uintptr, *glib.Variant) | |
| 4153 | + | ||
| 4154 | + | // Sets the state hint for the action. | |
| 4155 | + | // | |
| 4156 | + | // See g_action_get_state_hint() for more information about | |
| 4157 | + | // action state hints. | |
| 4158 | + | func (x *SimpleAction) SetStateHint(StateHintVar *glib.Variant) { | |
| 4159 | + | ||
| 4160 | + | xSimpleActionSetStateHint(x.GoPointer(), StateHintVar) | |
| 4161 | + | ||
| 4162 | + | } | |
| 4163 | + | ||
| 4164 | + | func (c *SimpleAction) GoPointer() uintptr { | |
| 4165 | + | return c.Ptr | |
| 4166 | + | } | |
| 4167 | + | ||
| 4168 | + | func (c *SimpleAction) SetGoPointer(ptr uintptr) { | |
| 4169 | + | c.Ptr = ptr | |
| 4170 | + | } | |
| 4171 | + | ||
| 4172 | + | // Indicates that the action was just activated. | |
| 4173 | + | // | |
| 4174 | + | // @parameter will always be of the expected type, i.e. the parameter type | |
| 4175 | + | // specified when the action was created. If an incorrect type is given when | |
| 4176 | + | // activating the action, this signal is not emitted. | |
| 4177 | + | // | |
| 4178 | + | // Since GLib 2.40, if no handler is connected to this signal then the | |
| 4179 | + | // default behaviour for boolean-stated actions with a %NULL parameter | |
| 4180 | + | // type is to toggle them via the #GSimpleAction::change-state signal. | |
| 4181 | + | // For stateful actions where the state type is equal to the parameter | |
| 4182 | + | // type, the default is to forward them directly to | |
| 4183 | + | // #GSimpleAction::change-state. This should allow almost all users | |
| 4184 | + | // of #GSimpleAction to connect only one handler or the other. | |
| 4185 | + | func (x *SimpleAction) ConnectActivate(cb func(SimpleAction, uintptr)) { | |
| 4186 | + | fcb := func(clsPtr uintptr, ParameterVarp uintptr) { | |
| 4187 | + | fa := SimpleAction{} | |
| 4188 | + | fa.Ptr = clsPtr | |
| 4189 | + | ||
| 4190 | + | cb(fa, ParameterVarp) | |
| 4191 | + | ||
| 4192 | + | } | |
| 4193 | + | gobject.ObjectConnect(x.GoPointer(), "signal::activate", purego.NewCallback(fcb)) | |
| 4194 | + | } | |
| 4195 | + | ||
| 4196 | + | // Indicates that the action just received a request to change its | |
| 4197 | + | // state. | |
| 4198 | + | // | |
| 4199 | + | // @value will always be of the correct state type, i.e. the type of the | |
| 4200 | + | // initial state passed to g_simple_action_new_stateful(). If an incorrect | |
| 4201 | + | // type is given when requesting to change the state, this signal is not | |
| 4202 | + | // emitted. | |
| 4203 | + | // | |
| 4204 | + | // If no handler is connected to this signal then the default | |
| 4205 | + | // behaviour is to call g_simple_action_set_state() to set the state | |
| 4206 | + | // to the requested value. If you connect a signal handler then no | |
| 4207 | + | // default action is taken. If the state should change then you must | |
| 4208 | + | // call g_simple_action_set_state() from the handler. | |
| 4209 | + | // | |
| 4210 | + | // An example of a 'change-state' handler: | |
| 4211 | + | // |[<!-- language="C" --> | |
| 4212 | + | // static void | |
| 4213 | + | // change_volume_state (GSimpleAction *action, | |
| 4214 | + | // | |
| 4215 | + | // GVariant *value, | |
| 4216 | + | // gpointer user_data) | |
| 4217 | + | // | |
| 4218 | + | // { | |
| 4219 | + | // gint requested; | |
| 4220 | + | // | |
| 4221 | + | // requested = g_variant_get_int32 (value); | |
| 4222 | + | // | |
| 4223 | + | // // Volume only goes from 0 to 10 | |
| 4224 | + | // if (0 <= requested && requested <= 10) | |
| 4225 | + | // g_simple_action_set_state (action, value); | |
| 4226 | + | // } | |
| 4227 | + | // | |
| 4228 | + | // ]| | |
| 4229 | + | // | |
| 4230 | + | // The handler need not set the state to the requested value. | |
| 4231 | + | // It could set it to any value at all, or take some other action. | |
| 4232 | + | func (x *SimpleAction) ConnectChangeState(cb func(SimpleAction, uintptr)) { | |
| 4233 | + | fcb := func(clsPtr uintptr, ValueVarp uintptr) { | |
| 4234 | + | fa := SimpleAction{} | |
| 4235 | + | fa.Ptr = clsPtr | |
| 4236 | + | ||
| 4237 | + | cb(fa, ValueVarp) | |
| 4238 | + | ||
| 4239 | + | } | |
| 4240 | + | gobject.ObjectConnect(x.GoPointer(), "signal::change-state", purego.NewCallback(fcb)) | |
| 4241 | + | } | |
| 4242 | + | ||
| 4243 | + | // Activates the action. | |
| 4244 | + | // | |
| 4245 | + | // @parameter must be the correct type of parameter for the action (ie: | |
| 4246 | + | // the parameter type given at construction time). If the parameter | |
| 4247 | + | // type was %NULL then @parameter must also be %NULL. | |
| 4248 | + | // | |
| 4249 | + | // If the @parameter GVariant is floating, it is consumed. | |
| 4250 | + | func (x *SimpleAction) Activate(ParameterVar *glib.Variant) { | |
| 4251 | + | ||
| 4252 | + | XGActionActivate(x.GoPointer(), ParameterVar) | |
| 4253 | + | ||
| 4254 | + | } | |
| 4255 | + | ||
| 4256 | + | // Request for the state of @action to be changed to @value. | |
| 4257 | + | // | |
| 4258 | + | // The action must be stateful and @value must be of the correct type. | |
| 4259 | + | // See g_action_get_state_type(). | |
| 4260 | + | // | |
| 4261 | + | // This call merely requests a change. The action may refuse to change | |
| 4262 | + | // its state or may change its state to something other than @value. | |
| 4263 | + | // See g_action_get_state_hint(). | |
| 4264 | + | // | |
| 4265 | + | // If the @value GVariant is floating, it is consumed. | |
| 4266 | + | func (x *SimpleAction) ChangeState(ValueVar *glib.Variant) { | |
| 4267 | + | ||
| 4268 | + | XGActionChangeState(x.GoPointer(), ValueVar) | |
| 4269 | + | ||
| 4270 | + | } | |
| 4271 | + | ||
| 4272 | + | // Checks if @action is currently enabled. | |
| 4273 | + | // | |
| 4274 | + | // An action must be enabled in order to be activated or in order to | |
| 4275 | + | // have its state changed from outside callers. | |
| 4276 | + | func (x *SimpleAction) GetEnabled() bool { | |
| 4277 | + | ||
| 4278 | + | return XGActionGetEnabled(x.GoPointer()) | |
| 4279 | + | ||
| 4280 | + | } | |
| 4281 | + | ||
| 4282 | + | // Queries the name of @action. | |
| 4283 | + | func (x *SimpleAction) GetName() string { | |
| 4284 | + | ||
| 4285 | + | return XGActionGetName(x.GoPointer()) | |
| 4286 | + | ||
| 4287 | + | } | |
| 4288 | + | ||
| 4289 | + | // Queries the type of the parameter that must be given when activating | |
| 4290 | + | // @action. | |
| 4291 | + | // | |
| 4292 | + | // When activating the action using g_action_activate(), the #GVariant | |
| 4293 | + | // given to that function must be of the type returned by this function. | |
| 4294 | + | // | |
| 4295 | + | // In the case that this function returns %NULL, you must not give any | |
| 4296 | + | // #GVariant, but %NULL instead. | |
| 4297 | + | func (x *SimpleAction) GetParameterType() *glib.VariantType { | |
| 4298 | + | ||
| 4299 | + | return XGActionGetParameterType(x.GoPointer()) | |
| 4300 | + | ||
| 4301 | + | } | |
| 4302 | + | ||
| 4303 | + | // Queries the current state of @action. | |
| 4304 | + | // | |
| 4305 | + | // If the action is not stateful then %NULL will be returned. If the | |
| 4306 | + | // action is stateful then the type of the return value is the type | |
| 4307 | + | // given by g_action_get_state_type(). | |
| 4308 | + | // | |
| 4309 | + | // The return value (if non-%NULL) should be freed with | |
| 4310 | + | // g_variant_unref() when it is no longer required. | |
| 4311 | + | func (x *SimpleAction) GetState() *glib.Variant { | |
| 4312 | + | ||
| 4313 | + | return XGActionGetState(x.GoPointer()) | |
| 4314 | + | ||
| 4315 | + | } | |
| 4316 | + | ||
| 4317 | + | // Requests a hint about the valid range of values for the state of | |
| 4318 | + | // @action. | |
| 4319 | + | // | |
| 4320 | + | // If %NULL is returned it either means that the action is not stateful | |
| 4321 | + | // or that there is no hint about the valid range of values for the | |
| 4322 | + | // state of the action. | |
| 4323 | + | // | |
| 4324 | + | // If a #GVariant array is returned then each item in the array is a | |
| 4325 | + | // possible value for the state. If a #GVariant pair (ie: two-tuple) is | |
| 4326 | + | // returned then the tuple specifies the inclusive lower and upper bound | |
| 4327 | + | // of valid values for the state. | |
| 4328 | + | // | |
| 4329 | + | // In any case, the information is merely a hint. It may be possible to | |
| 4330 | + | // have a state value outside of the hinted range and setting a value | |
| 4331 | + | // within the range may fail. | |
| 4332 | + | // | |
| 4333 | + | // The return value (if non-%NULL) should be freed with | |
| 4334 | + | // g_variant_unref() when it is no longer required. | |
| 4335 | + | func (x *SimpleAction) GetStateHint() *glib.Variant { | |
| 4336 | + | ||
| 4337 | + | return XGActionGetStateHint(x.GoPointer()) | |
| 4338 | + | ||
| 4339 | + | } | |
| 4340 | + | ||
| 4341 | + | // Queries the type of the state of @action. | |
| 4342 | + | // | |
| 4343 | + | // If the action is stateful (e.g. created with | |
| 4344 | + | // g_simple_action_new_stateful()) then this function returns the | |
| 4345 | + | // #GVariantType of the state. This is the type of the initial value | |
| 4346 | + | // given as the state. All calls to g_action_change_state() must give a | |
| 4347 | + | // #GVariant of this type and g_action_get_state() will return a | |
| 4348 | + | // #GVariant of the same type. | |
| 4349 | + | // | |
| 4350 | + | // If the action is not stateful (e.g. created with g_simple_action_new()) | |
| 4351 | + | // then this function will return %NULL. In that case, g_action_get_state() | |
| 4352 | + | // will return %NULL and you must not call g_action_change_state(). | |
| 4353 | + | func (x *SimpleAction) GetStateType() *glib.VariantType { | |
| 4354 | + | ||
| 4355 | + | return XGActionGetStateType(x.GoPointer()) | |
| 4356 | + | ||
| 4357 | + | } | |
| 4358 | + | ||
| 4359 | + | // GSimpleIOStream creates a #GIOStream from an arbitrary #GInputStream and | |
| 4360 | + | // #GOutputStream. This allows any pair of input and output streams to be used | |
| 4361 | + | // with #GIOStream methods. | |
| 4362 | + | // | |
| 4363 | + | // This is useful when you obtained a #GInputStream and a #GOutputStream | |
| 4364 | + | // by other means, for instance creating them with platform specific methods as | |
| 4365 | + | // g_unix_input_stream_new() or g_win32_input_stream_new(), and you want | |
| 4366 | + | // to take advantage of the methods provided by #GIOStream. | |
| 4367 | + | type SimpleIOStream struct { | |
| 4368 | + | IOStream | |
| 4369 | + | } | |
| 4370 | + | ||
| 4371 | + | func SimpleIOStreamNewFromInternalPtr(ptr uintptr) *SimpleIOStream { | |
| 4372 | + | cls := &SimpleIOStream{} | |
| 4373 | + | cls.Ptr = ptr | |
| 4374 | + | return cls | |
| 4375 | + | } | |
| 4376 | + | ||
| 4377 | + | var xNewSimpleIOStream func(uintptr, uintptr) uintptr | |
| 4378 | + | ||
| 4379 | + | // Creates a new #GSimpleIOStream wrapping @input_stream and @output_stream. | |
| 4380 | + | // See also #GIOStream. | |
| 4381 | + | func NewSimpleIOStream(InputStreamVar *InputStream, OutputStreamVar *OutputStream) *IOStream { | |
| 4382 | + | NewSimpleIOStreamPtr := xNewSimpleIOStream(InputStreamVar.GoPointer(), OutputStreamVar.GoPointer()) | |
| 4383 | + | if NewSimpleIOStreamPtr == 0 { | |
| 4384 | + | return nil | |
| 4385 | + | } | |
| 4386 | + | ||
| 4387 | + | NewSimpleIOStreamCls := &IOStream{} | |
| 4388 | + | NewSimpleIOStreamCls.Ptr = NewSimpleIOStreamPtr | |
| 4389 | + | return NewSimpleIOStreamCls | |
| 4390 | + | } | |
| 4391 | + | ||
| 4392 | + | func (c *SimpleIOStream) GoPointer() uintptr { | |
| 4393 | + | return c.Ptr | |
| 4394 | + | } | |
| 4395 | + | ||
| 4396 | + | func (c *SimpleIOStream) SetGoPointer(ptr uintptr) { | |
| 4397 | + | c.Ptr = ptr | |
| 4398 | + | } | |
| 4399 | + | ||
| 4400 | + | // #GSimplePermission is a trivial implementation of #GPermission that | |
| 4401 | + | // represents a permission that is either always or never allowed. The | |
| 4402 | + | // value is given at construction and doesn't change. | |
| 4403 | + | // | |
| 4404 | + | // Calling request or release will result in errors. | |
| 4405 | + | type SimplePermission struct { | |
| 4406 | + | Permission | |
| 4407 | + | } | |
| 4408 | + | ||
| 4409 | + | func SimplePermissionNewFromInternalPtr(ptr uintptr) *SimplePermission { | |
| 4410 | + | cls := &SimplePermission{} | |
| 4411 | + | cls.Ptr = ptr | |
| 4412 | + | return cls | |
| 4413 | + | } | |
| 4414 | + | ||
| 4415 | + | var xNewSimplePermission func(bool) uintptr | |
| 4416 | + | ||
| 4417 | + | // Creates a new #GPermission instance that represents an action that is | |
| 4418 | + | // either always or never allowed. | |
| 4419 | + | func NewSimplePermission(AllowedVar bool) *Permission { | |
| 4420 | + | NewSimplePermissionPtr := xNewSimplePermission(AllowedVar) | |
| 4421 | + | if NewSimplePermissionPtr == 0 { | |
| 4422 | + | return nil | |
| 4423 | + | } | |
| 4424 | + | ||
| 4425 | + | NewSimplePermissionCls := &Permission{} | |
| 4426 | + | NewSimplePermissionCls.Ptr = NewSimplePermissionPtr | |
| 4427 | + | return NewSimplePermissionCls | |
| 4428 | + | } | |
| 4429 | + | ||
| 4430 | + | func (c *SimplePermission) GoPointer() uintptr { | |
| 4431 | + | return c.Ptr | |
| 4432 | + | } | |
| 4433 | + | ||
| 4434 | + | func (c *SimplePermission) SetGoPointer(ptr uintptr) { | |
| 4435 | + | c.Ptr = ptr | |
| 4436 | + | } | |
| 4437 | + | ||
| 4438 | + | // #GSubprocess allows the creation of and interaction with child | |
| 4439 | + | // processes. | |
| 4440 | + | // | |
| 4441 | + | // Processes can be communicated with using standard GIO-style APIs (ie: | |
| 4442 | + | // #GInputStream, #GOutputStream). There are GIO-style APIs to wait for | |
| 4443 | + | // process termination (ie: cancellable and with an asynchronous | |
| 4444 | + | // variant). | |
| 4445 | + | // | |
| 4446 | + | // There is an API to force a process to terminate, as well as a | |
| 4447 | + | // race-free API for sending UNIX signals to a subprocess. | |
| 4448 | + | // | |
| 4449 | + | // One major advantage that GIO brings over the core GLib library is | |
| 4450 | + | // comprehensive API for asynchronous I/O, such | |
| 4451 | + | // g_output_stream_splice_async(). This makes GSubprocess | |
| 4452 | + | // significantly more powerful and flexible than equivalent APIs in | |
| 4453 | + | // some other languages such as the `subprocess.py` | |
| 4454 | + | // included with Python. For example, using #GSubprocess one could | |
| 4455 | + | // create two child processes, reading standard output from the first, | |
| 4456 | + | // processing it, and writing to the input stream of the second, all | |
| 4457 | + | // without blocking the main loop. | |
| 4458 | + | // | |
| 4459 | + | // A powerful g_subprocess_communicate() API is provided similar to the | |
| 4460 | + | // `communicate()` method of `subprocess.py`. This enables very easy | |
| 4461 | + | // interaction with a subprocess that has been opened with pipes. | |
| 4462 | + | // | |
| 4463 | + | // #GSubprocess defaults to tight control over the file descriptors open | |
| 4464 | + | // in the child process, avoiding dangling-fd issues that are caused by | |
| 4465 | + | // a simple fork()/exec(). The only open file descriptors in the | |
| 4466 | + | // spawned process are ones that were explicitly specified by the | |
| 4467 | + | // #GSubprocess API (unless %G_SUBPROCESS_FLAGS_INHERIT_FDS was | |
| 4468 | + | // specified). | |
| 4469 | + | // | |
| 4470 | + | // #GSubprocess will quickly reap all child processes as they exit, | |
| 4471 | + | // avoiding "zombie processes" remaining around for long periods of | |
| 4472 | + | // time. g_subprocess_wait() can be used to wait for this to happen, | |
| 4473 | + | // but it will happen even without the call being explicitly made. | |
| 4474 | + | // | |
| 4475 | + | // As a matter of principle, #GSubprocess has no API that accepts | |
| 4476 | + | // shell-style space-separated strings. It will, however, match the | |
| 4477 | + | // typical shell behaviour of searching the PATH for executables that do | |
| 4478 | + | // not contain a directory separator in their name. By default, the `PATH` | |
| 4479 | + | // of the current process is used. You can specify | |
| 4480 | + | // %G_SUBPROCESS_FLAGS_SEARCH_PATH_FROM_ENVP to use the `PATH` of the | |
| 4481 | + | // launcher environment instead. | |
| 4482 | + | // | |
| 4483 | + | // #GSubprocess attempts to have a very simple API for most uses (ie: | |
| 4484 | + | // spawning a subprocess with arguments and support for most typical | |
| 4485 | + | // kinds of input and output redirection). See g_subprocess_new(). The | |
| 4486 | + | // #GSubprocessLauncher API is provided for more complicated cases | |
| 4487 | + | // (advanced types of redirection, environment variable manipulation, | |
| 4488 | + | // change of working directory, child setup functions, etc). | |
| 4489 | + | // | |
| 4490 | + | // A typical use of #GSubprocess will involve calling | |
| 4491 | + | // g_subprocess_new(), followed by g_subprocess_wait_async() or | |
| 4492 | + | // g_subprocess_wait(). After the process exits, the status can be | |
| 4493 | + | // checked using functions such as g_subprocess_get_if_exited() (which | |
| 4494 | + | // are similar to the familiar WIFEXITED-style POSIX macros). | |
| 4495 | + | type Subprocess struct { | |
| 4496 | + | gobject.Object | |
| 4497 | + | } | |
| 4498 | + | ||
| 4499 | + | func SubprocessNewFromInternalPtr(ptr uintptr) *Subprocess { | |
| 4500 | + | cls := &Subprocess{} | |
| 4501 | + | cls.Ptr = ptr | |
| 4502 | + | return cls | |
| 4503 | + | } | |
| 4504 | + | ||
| 4505 | + | var xNewSubprocess func(SubprocessFlags, **glib.Error, string, ...interface{}) uintptr | |
| 4506 | + | ||
| 4507 | + | // Create a new process with the given flags and varargs argument | |
| 4508 | + | // list. By default, matching the g_spawn_async() defaults, the | |
| 4509 | + | // child's stdin will be set to the system null device, and | |
| 4510 | + | // stdout/stderr will be inherited from the parent. You can use | |
| 4511 | + | // @flags to control this behavior. | |
| 4512 | + | // | |
| 4513 | + | // The argument list must be terminated with %NULL. | |
| 4514 | + | func NewSubprocess(FlagsVar SubprocessFlags, ErrorVar **glib.Error, Argv0Var string, varArgs ...interface{}) *Subprocess { | |
| 4515 | + | NewSubprocessPtr := xNewSubprocess(FlagsVar, ErrorVar, Argv0Var, varArgs...) | |
| 4516 | + | if NewSubprocessPtr == 0 { | |
| 4517 | + | return nil | |
| 4518 | + | } | |
| 4519 | + | ||
| 4520 | + | NewSubprocessCls := &Subprocess{} | |
| 4521 | + | NewSubprocessCls.Ptr = NewSubprocessPtr | |
| 4522 | + | return NewSubprocessCls | |
| 4523 | + | } | |
| 4524 | + | ||
| 4525 | + | var xNewvSubprocess func(uintptr, SubprocessFlags) uintptr | |
| 4526 | + | ||
| 4527 | + | // Create a new process with the given flags and argument list. | |
| 4528 | + | // | |
| 4529 | + | // The argument list is expected to be %NULL-terminated. | |
| 4530 | + | func NewvSubprocess(ArgvVar uintptr, FlagsVar SubprocessFlags) *Subprocess { | |
| 4531 | + | NewvSubprocessPtr := xNewvSubprocess(ArgvVar, FlagsVar) | |
| 4532 | + | if NewvSubprocessPtr == 0 { | |
| 4533 | + | return nil | |
| 4534 | + | } | |
| 4535 | + | ||
| 4536 | + | NewvSubprocessCls := &Subprocess{} | |
| 4537 | + | NewvSubprocessCls.Ptr = NewvSubprocessPtr | |
| 4538 | + | return NewvSubprocessCls | |
| 4539 | + | } | |
| 4540 | + | ||
| 4541 | + | var xSubprocessCommunicate func(uintptr, *glib.Bytes, uintptr, **glib.Bytes, **glib.Bytes) bool | |
| 4542 | + | ||
| 4543 | + | // Communicate with the subprocess until it terminates, and all input | |
| 4544 | + | // and output has been completed. | |
| 4545 | + | // | |
| 4546 | + | // If @stdin_buf is given, the subprocess must have been created with | |
| 4547 | + | // %G_SUBPROCESS_FLAGS_STDIN_PIPE. The given data is fed to the | |
| 4548 | + | // stdin of the subprocess and the pipe is closed (ie: EOF). | |
| 4549 | + | // | |
| 4550 | + | // At the same time (as not to cause blocking when dealing with large | |
| 4551 | + | // amounts of data), if %G_SUBPROCESS_FLAGS_STDOUT_PIPE or | |
| 4552 | + | // %G_SUBPROCESS_FLAGS_STDERR_PIPE were used, reads from those | |
| 4553 | + | // streams. The data that was read is returned in @stdout and/or | |
| 4554 | + | // the @stderr. | |
| 4555 | + | // | |
| 4556 | + | // If the subprocess was created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE, | |
| 4557 | + | // @stdout_buf will contain the data read from stdout. Otherwise, for | |
| 4558 | + | // subprocesses not created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE, | |
| 4559 | + | // @stdout_buf will be set to %NULL. Similar provisions apply to | |
| 4560 | + | // @stderr_buf and %G_SUBPROCESS_FLAGS_STDERR_PIPE. | |
| 4561 | + | // | |
| 4562 | + | // As usual, any output variable may be given as %NULL to ignore it. | |
| 4563 | + | // | |
| 4564 | + | // If you desire the stdout and stderr data to be interleaved, create | |
| 4565 | + | // the subprocess with %G_SUBPROCESS_FLAGS_STDOUT_PIPE and | |
| 4566 | + | // %G_SUBPROCESS_FLAGS_STDERR_MERGE. The merged result will be returned | |
| 4567 | + | // in @stdout_buf and @stderr_buf will be set to %NULL. | |
| 4568 | + | // | |
| 4569 | + | // In case of any error (including cancellation), %FALSE will be | |
| 4570 | + | // returned with @error set. Some or all of the stdin data may have | |
| 4571 | + | // been written. Any stdout or stderr data that has been read will be | |
| 4572 | + | // discarded. None of the out variables (aside from @error) will have | |
| 4573 | + | // been set to anything in particular and should not be inspected. | |
| 4574 | + | // | |
| 4575 | + | // In the case that %TRUE is returned, the subprocess has exited and the | |
| 4576 | + | // exit status inspection APIs (eg: g_subprocess_get_if_exited(), | |
| 4577 | + | // g_subprocess_get_exit_status()) may be used. | |
| 4578 | + | // | |
| 4579 | + | // You should not attempt to use any of the subprocess pipes after | |
| 4580 | + | // starting this function, since they may be left in strange states, | |
| 4581 | + | // even if the operation was cancelled. You should especially not | |
| 4582 | + | // attempt to interact with the pipes while the operation is in progress | |
| 4583 | + | // (either from another thread or if using the asynchronous version). | |
| 4584 | + | func (x *Subprocess) Communicate(StdinBufVar *glib.Bytes, CancellableVar *Cancellable, StdoutBufVar **glib.Bytes, StderrBufVar **glib.Bytes) bool { | |
| 4585 | + | ||
| 4586 | + | return xSubprocessCommunicate(x.GoPointer(), StdinBufVar, CancellableVar.GoPointer(), StdoutBufVar, StderrBufVar) | |
| 4587 | + | ||
| 4588 | + | } | |
| 4589 | + | ||
| 4590 | + | var xSubprocessCommunicateAsync func(uintptr, *glib.Bytes, uintptr, uintptr, uintptr) | |
| 4591 | + | ||
| 4592 | + | // Asynchronous version of g_subprocess_communicate(). Complete | |
| 4593 | + | // invocation with g_subprocess_communicate_finish(). | |
| 4594 | + | func (x *Subprocess) CommunicateAsync(StdinBufVar *glib.Bytes, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 4595 | + | ||
| 4596 | + | xSubprocessCommunicateAsync(x.GoPointer(), StdinBufVar, CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 4597 | + | ||
| 4598 | + | } | |
| 4599 | + | ||
| 4600 | + | var xSubprocessCommunicateFinish func(uintptr, uintptr, **glib.Bytes, **glib.Bytes) bool | |
| 4601 | + | ||
| 4602 | + | // Complete an invocation of g_subprocess_communicate_async(). | |
| 4603 | + | func (x *Subprocess) CommunicateFinish(ResultVar AsyncResult, StdoutBufVar **glib.Bytes, StderrBufVar **glib.Bytes) bool { | |
| 4604 | + | ||
| 4605 | + | return xSubprocessCommunicateFinish(x.GoPointer(), ResultVar.GoPointer(), StdoutBufVar, StderrBufVar) | |
| 4606 | + | ||
| 4607 | + | } | |
| 4608 | + | ||
| 4609 | + | var xSubprocessCommunicateUtf8 func(uintptr, string, uintptr, string, string) bool | |
| 4610 | + | ||
| 4611 | + | // Like g_subprocess_communicate(), but validates the output of the | |
| 4612 | + | // process as UTF-8, and returns it as a regular NUL terminated string. | |
| 4613 | + | // | |
| 4614 | + | // On error, @stdout_buf and @stderr_buf will be set to undefined values and | |
| 4615 | + | // should not be used. | |
| 4616 | + | func (x *Subprocess) CommunicateUtf8(StdinBufVar string, CancellableVar *Cancellable, StdoutBufVar string, StderrBufVar string) bool { | |
| 4617 | + | ||
| 4618 | + | return xSubprocessCommunicateUtf8(x.GoPointer(), StdinBufVar, CancellableVar.GoPointer(), StdoutBufVar, StderrBufVar) | |
| 4619 | + | ||
| 4620 | + | } | |
| 4621 | + | ||
| 4622 | + | var xSubprocessCommunicateUtf8Async func(uintptr, string, uintptr, uintptr, uintptr) | |
| 4623 | + | ||
| 4624 | + | // Asynchronous version of g_subprocess_communicate_utf8(). Complete | |
| 4625 | + | // invocation with g_subprocess_communicate_utf8_finish(). | |
| 4626 | + | func (x *Subprocess) CommunicateUtf8Async(StdinBufVar string, CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 4627 | + | ||
| 4628 | + | xSubprocessCommunicateUtf8Async(x.GoPointer(), StdinBufVar, CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 4629 | + | ||
| 4630 | + | } | |
| 4631 | + | ||
| 4632 | + | var xSubprocessCommunicateUtf8Finish func(uintptr, uintptr, string, string) bool | |
| 4633 | + | ||
| 4634 | + | // Complete an invocation of g_subprocess_communicate_utf8_async(). | |
| 4635 | + | func (x *Subprocess) CommunicateUtf8Finish(ResultVar AsyncResult, StdoutBufVar string, StderrBufVar string) bool { | |
| 4636 | + | ||
| 4637 | + | return xSubprocessCommunicateUtf8Finish(x.GoPointer(), ResultVar.GoPointer(), StdoutBufVar, StderrBufVar) | |
| 4638 | + | ||
| 4639 | + | } | |
| 4640 | + | ||
| 4641 | + | var xSubprocessForceExit func(uintptr) | |
| 4642 | + | ||
| 4643 | + | // Use an operating-system specific method to attempt an immediate, | |
| 4644 | + | // forceful termination of the process. There is no mechanism to | |
| 4645 | + | // determine whether or not the request itself was successful; | |
| 4646 | + | // however, you can use g_subprocess_wait() to monitor the status of | |
| 4647 | + | // the process after calling this function. | |
| 4648 | + | // | |
| 4649 | + | // On Unix, this function sends %SIGKILL. | |
| 4650 | + | func (x *Subprocess) ForceExit() { | |
| 4651 | + | ||
| 4652 | + | xSubprocessForceExit(x.GoPointer()) | |
| 4653 | + | ||
| 4654 | + | } | |
| 4655 | + | ||
| 4656 | + | var xSubprocessGetExitStatus func(uintptr) int32 | |
| 4657 | + | ||
| 4658 | + | // Check the exit status of the subprocess, given that it exited | |
| 4659 | + | // normally. This is the value passed to the exit() system call or the | |
| 4660 | + | // return value from main. | |
| 4661 | + | // | |
| 4662 | + | // This is equivalent to the system WEXITSTATUS macro. | |
| 4663 | + | // | |
| 4664 | + | // It is an error to call this function before g_subprocess_wait() and | |
| 4665 | + | // unless g_subprocess_get_if_exited() returned %TRUE. | |
| 4666 | + | func (x *Subprocess) GetExitStatus() int32 { | |
| 4667 | + | ||
| 4668 | + | return xSubprocessGetExitStatus(x.GoPointer()) | |
| 4669 | + | ||
| 4670 | + | } | |
| 4671 | + | ||
| 4672 | + | var xSubprocessGetIdentifier func(uintptr) string | |
| 4673 | + | ||
| 4674 | + | // On UNIX, returns the process ID as a decimal string. | |
| 4675 | + | // On Windows, returns the result of GetProcessId() also as a string. | |
| 4676 | + | // If the subprocess has terminated, this will return %NULL. | |
| 4677 | + | func (x *Subprocess) GetIdentifier() string { | |
| 4678 | + | ||
| 4679 | + | return xSubprocessGetIdentifier(x.GoPointer()) | |
| 4680 | + | ||
| 4681 | + | } | |
| 4682 | + | ||
| 4683 | + | var xSubprocessGetIfExited func(uintptr) bool | |
| 4684 | + | ||
| 4685 | + | // Check if the given subprocess exited normally (ie: by way of exit() | |
| 4686 | + | // or return from main()). | |
| 4687 | + | // | |
| 4688 | + | // This is equivalent to the system WIFEXITED macro. | |
| 4689 | + | // | |
| 4690 | + | // It is an error to call this function before g_subprocess_wait() has | |
| 4691 | + | // returned. | |
| 4692 | + | func (x *Subprocess) GetIfExited() bool { | |
| 4693 | + | ||
| 4694 | + | return xSubprocessGetIfExited(x.GoPointer()) | |
| 4695 | + | ||
| 4696 | + | } | |
| 4697 | + | ||
| 4698 | + | var xSubprocessGetIfSignaled func(uintptr) bool | |
| 4699 | + | ||
| 4700 | + | // Check if the given subprocess terminated in response to a signal. | |
| 4701 | + | // | |
| 4702 | + | // This is equivalent to the system WIFSIGNALED macro. | |
| 4703 | + | // | |
| 4704 | + | // It is an error to call this function before g_subprocess_wait() has | |
| 4705 | + | // returned. | |
| 4706 | + | func (x *Subprocess) GetIfSignaled() bool { | |
| 4707 | + | ||
| 4708 | + | return xSubprocessGetIfSignaled(x.GoPointer()) | |
| 4709 | + | ||
| 4710 | + | } | |
| 4711 | + | ||
| 4712 | + | var xSubprocessGetStatus func(uintptr) int32 | |
| 4713 | + | ||
| 4714 | + | // Gets the raw status code of the process, as from waitpid(). | |
| 4715 | + | // | |
| 4716 | + | // This value has no particular meaning, but it can be used with the | |
| 4717 | + | // macros defined by the system headers such as WIFEXITED. It can also | |
| 4718 | + | // be used with g_spawn_check_wait_status(). | |
| 4719 | + | // | |
| 4720 | + | // It is more likely that you want to use g_subprocess_get_if_exited() | |
| 4721 | + | // followed by g_subprocess_get_exit_status(). | |
| 4722 | + | // | |
| 4723 | + | // It is an error to call this function before g_subprocess_wait() has | |
| 4724 | + | // returned. | |
| 4725 | + | func (x *Subprocess) GetStatus() int32 { | |
| 4726 | + | ||
| 4727 | + | return xSubprocessGetStatus(x.GoPointer()) | |
| 4728 | + | ||
| 4729 | + | } | |
| 4730 | + | ||
| 4731 | + | var xSubprocessGetStderrPipe func(uintptr) uintptr | |
| 4732 | + | ||
| 4733 | + | // Gets the #GInputStream from which to read the stderr output of | |
| 4734 | + | // @subprocess. | |
| 4735 | + | // | |
| 4736 | + | // The process must have been created with %G_SUBPROCESS_FLAGS_STDERR_PIPE, | |
| 4737 | + | // otherwise %NULL will be returned. | |
| 4738 | + | func (x *Subprocess) GetStderrPipe() *InputStream { | |
| 4739 | + | ||
| 4740 | + | GetStderrPipePtr := xSubprocessGetStderrPipe(x.GoPointer()) | |
| 4741 | + | if GetStderrPipePtr == 0 { | |
| 4742 | + | return nil | |
| 4743 | + | } | |
| 4744 | + | ||
| 4745 | + | gobject.IncreaseRef(GetStderrPipePtr) | |
| 4746 | + | ||
| 4747 | + | GetStderrPipeCls := &InputStream{} | |
| 4748 | + | GetStderrPipeCls.Ptr = GetStderrPipePtr | |
| 4749 | + | return GetStderrPipeCls | |
| 4750 | + | ||
| 4751 | + | } | |
| 4752 | + | ||
| 4753 | + | var xSubprocessGetStdinPipe func(uintptr) uintptr | |
| 4754 | + | ||
| 4755 | + | // Gets the #GOutputStream that you can write to in order to give data | |
| 4756 | + | // to the stdin of @subprocess. | |
| 4757 | + | // | |
| 4758 | + | // The process must have been created with %G_SUBPROCESS_FLAGS_STDIN_PIPE and | |
| 4759 | + | // not %G_SUBPROCESS_FLAGS_STDIN_INHERIT, otherwise %NULL will be returned. | |
| 4760 | + | func (x *Subprocess) GetStdinPipe() *OutputStream { | |
| 4761 | + | ||
| 4762 | + | GetStdinPipePtr := xSubprocessGetStdinPipe(x.GoPointer()) | |
| 4763 | + | if GetStdinPipePtr == 0 { | |
| 4764 | + | return nil | |
| 4765 | + | } | |
| 4766 | + | ||
| 4767 | + | gobject.IncreaseRef(GetStdinPipePtr) | |
| 4768 | + | ||
| 4769 | + | GetStdinPipeCls := &OutputStream{} | |
| 4770 | + | GetStdinPipeCls.Ptr = GetStdinPipePtr | |
| 4771 | + | return GetStdinPipeCls | |
| 4772 | + | ||
| 4773 | + | } | |
| 4774 | + | ||
| 4775 | + | var xSubprocessGetStdoutPipe func(uintptr) uintptr | |
| 4776 | + | ||
| 4777 | + | // Gets the #GInputStream from which to read the stdout output of | |
| 4778 | + | // @subprocess. | |
| 4779 | + | // | |
| 4780 | + | // The process must have been created with %G_SUBPROCESS_FLAGS_STDOUT_PIPE, | |
| 4781 | + | // otherwise %NULL will be returned. | |
| 4782 | + | func (x *Subprocess) GetStdoutPipe() *InputStream { | |
| 4783 | + | ||
| 4784 | + | GetStdoutPipePtr := xSubprocessGetStdoutPipe(x.GoPointer()) | |
| 4785 | + | if GetStdoutPipePtr == 0 { | |
| 4786 | + | return nil | |
| 4787 | + | } | |
| 4788 | + | ||
| 4789 | + | gobject.IncreaseRef(GetStdoutPipePtr) | |
| 4790 | + | ||
| 4791 | + | GetStdoutPipeCls := &InputStream{} | |
| 4792 | + | GetStdoutPipeCls.Ptr = GetStdoutPipePtr | |
| 4793 | + | return GetStdoutPipeCls | |
| 4794 | + | ||
| 4795 | + | } | |
| 4796 | + | ||
| 4797 | + | var xSubprocessGetSuccessful func(uintptr) bool | |
| 4798 | + | ||
| 4799 | + | // Checks if the process was "successful". A process is considered | |
| 4800 | + | // successful if it exited cleanly with an exit status of 0, either by | |
| 4801 | + | // way of the exit() system call or return from main(). | |
| 4802 | + | // | |
| 4803 | + | // It is an error to call this function before g_subprocess_wait() has | |
| 4804 | + | // returned. | |
| 4805 | + | func (x *Subprocess) GetSuccessful() bool { | |
| 4806 | + | ||
| 4807 | + | return xSubprocessGetSuccessful(x.GoPointer()) | |
| 4808 | + | ||
| 4809 | + | } | |
| 4810 | + | ||
| 4811 | + | var xSubprocessGetTermSig func(uintptr) int32 | |
| 4812 | + | ||
| 4813 | + | // Get the signal number that caused the subprocess to terminate, given | |
| 4814 | + | // that it terminated due to a signal. | |
| 4815 | + | // | |
| 4816 | + | // This is equivalent to the system WTERMSIG macro. | |
| 4817 | + | // | |
| 4818 | + | // It is an error to call this function before g_subprocess_wait() and | |
| 4819 | + | // unless g_subprocess_get_if_signaled() returned %TRUE. | |
| 4820 | + | func (x *Subprocess) GetTermSig() int32 { | |
| 4821 | + | ||
| 4822 | + | return xSubprocessGetTermSig(x.GoPointer()) | |
| 4823 | + | ||
| 4824 | + | } | |
| 4825 | + | ||
| 4826 | + | var xSubprocessSendSignal func(uintptr, int32) | |
| 4827 | + | ||
| 4828 | + | // Sends the UNIX signal @signal_num to the subprocess, if it is still | |
| 4829 | + | // running. | |
| 4830 | + | // | |
| 4831 | + | // This API is race-free. If the subprocess has terminated, it will not | |
| 4832 | + | // be signalled. | |
| 4833 | + | // | |
| 4834 | + | // This API is not available on Windows. | |
| 4835 | + | func (x *Subprocess) SendSignal(SignalNumVar int32) { | |
| 4836 | + | ||
| 4837 | + | xSubprocessSendSignal(x.GoPointer(), SignalNumVar) | |
| 4838 | + | ||
| 4839 | + | } | |
| 4840 | + | ||
| 4841 | + | var xSubprocessWait func(uintptr, uintptr) bool | |
| 4842 | + | ||
| 4843 | + | // Synchronously wait for the subprocess to terminate. | |
| 4844 | + | // | |
| 4845 | + | // After the process terminates you can query its exit status with | |
| 4846 | + | // functions such as g_subprocess_get_if_exited() and | |
| 4847 | + | // g_subprocess_get_exit_status(). | |
| 4848 | + | // | |
| 4849 | + | // This function does not fail in the case of the subprocess having | |
| 4850 | + | // abnormal termination. See g_subprocess_wait_check() for that. | |
| 4851 | + | // | |
| 4852 | + | // Cancelling @cancellable doesn't kill the subprocess. Call | |
| 4853 | + | // g_subprocess_force_exit() if it is desirable. | |
| 4854 | + | func (x *Subprocess) Wait(CancellableVar *Cancellable) bool { | |
| 4855 | + | ||
| 4856 | + | return xSubprocessWait(x.GoPointer(), CancellableVar.GoPointer()) | |
| 4857 | + | ||
| 4858 | + | } | |
| 4859 | + | ||
| 4860 | + | var xSubprocessWaitAsync func(uintptr, uintptr, uintptr, uintptr) | |
| 4861 | + | ||
| 4862 | + | // Wait for the subprocess to terminate. | |
| 4863 | + | // | |
| 4864 | + | // This is the asynchronous version of g_subprocess_wait(). | |
| 4865 | + | func (x *Subprocess) WaitAsync(CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 4866 | + | ||
| 4867 | + | xSubprocessWaitAsync(x.GoPointer(), CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 4868 | + | ||
| 4869 | + | } | |
| 4870 | + | ||
| 4871 | + | var xSubprocessWaitCheck func(uintptr, uintptr) bool | |
| 4872 | + | ||
| 4873 | + | // Combines g_subprocess_wait() with g_spawn_check_wait_status(). | |
| 4874 | + | func (x *Subprocess) WaitCheck(CancellableVar *Cancellable) bool { | |
| 4875 | + | ||
| 4876 | + | return xSubprocessWaitCheck(x.GoPointer(), CancellableVar.GoPointer()) | |
| 4877 | + | ||
| 4878 | + | } | |
| 4879 | + | ||
| 4880 | + | var xSubprocessWaitCheckAsync func(uintptr, uintptr, uintptr, uintptr) | |
| 4881 | + | ||
| 4882 | + | // Combines g_subprocess_wait_async() with g_spawn_check_wait_status(). | |
| 4883 | + | // | |
| 4884 | + | // This is the asynchronous version of g_subprocess_wait_check(). | |
| 4885 | + | func (x *Subprocess) WaitCheckAsync(CancellableVar *Cancellable, CallbackVar AsyncReadyCallback, UserDataVar uintptr) { | |
| 4886 | + | ||
| 4887 | + | xSubprocessWaitCheckAsync(x.GoPointer(), CancellableVar.GoPointer(), purego.NewCallback(CallbackVar), UserDataVar) | |
| 4888 | + | ||
| 4889 | + | } | |
| 4890 | + | ||
| 4891 | + | var xSubprocessWaitCheckFinish func(uintptr, uintptr) bool | |
| 4892 | + | ||
| 4893 | + | // Collects the result of a previous call to | |
| 4894 | + | // g_subprocess_wait_check_async(). | |
| 4895 | + | func (x *Subprocess) WaitCheckFinish(ResultVar AsyncResult) bool { | |
| 4896 | + | ||
| 4897 | + | return xSubprocessWaitCheckFinish(x.GoPointer(), ResultVar.GoPointer()) | |
| 4898 | + | ||
| 4899 | + | } | |
| 4900 | + | ||
| 4901 | + | var xSubprocessWaitFinish func(uintptr, uintptr) bool | |
| 4902 | + | ||
| 4903 | + | // Collects the result of a previous call to | |
| 4904 | + | // g_subprocess_wait_async(). | |
| 4905 | + | func (x *Subprocess) WaitFinish(ResultVar AsyncResult) bool { | |
| 4906 | + | ||
| 4907 | + | return xSubprocessWaitFinish(x.GoPointer(), ResultVar.GoPointer()) | |
| 4908 | + | ||
| 4909 | + | } | |
| 4910 | + | ||
| 4911 | + | func (c *Subprocess) GoPointer() uintptr { | |
| 4912 | + | return c.Ptr | |
| 4913 | + | } | |
| 4914 | + | ||
| 4915 | + | func (c *Subprocess) SetGoPointer(ptr uintptr) { | |
| 4916 | + | c.Ptr = ptr | |
| 4917 | + | } | |
| 4918 | + | ||
| 4919 | + | // Initializes the object implementing the interface. | |
| 4920 | + | // | |
| 4921 | + | // This method is intended for language bindings. If writing in C, | |
| 4922 | + | // g_initable_new() should typically be used instead. | |
| 4923 | + | // | |
| 4924 | + | // The object must be initialized before any real use after initial | |
| 4925 | + | // construction, either with this function or g_async_initable_init_async(). | |
| 4926 | + | // | |
| 4927 | + | // Implementations may also support cancellation. If @cancellable is not %NULL, | |
| 4928 | + | // then initialization can be cancelled by triggering the cancellable object | |
| 4929 | + | // from another thread. If the operation was cancelled, the error | |
| 4930 | + | // %G_IO_ERROR_CANCELLED will be returned. If @cancellable is not %NULL and | |
| 4931 | + | // the object doesn't support cancellable initialization the error | |
| 4932 | + | // %G_IO_ERROR_NOT_SUPPORTED will be returned. | |
| 4933 | + | // | |
| 4934 | + | // If the object is not initialized, or initialization returns with an | |
| 4935 | + | // error, then all operations on the object except g_object_ref() and | |
| 4936 | + | // g_object_unref() are considered to be invalid, and have undefined | |
| 4937 | + | // behaviour. See the [introduction][ginitable] for more details. | |
| 4938 | + | // | |
| 4939 | + | // Callers should not assume that a class which implements #GInitable can be | |
| 4940 | + | // initialized multiple times, unless the class explicitly documents itself as | |
| 4941 | + | // supporting this. Generally, a class’ implementation of init() can assume | |
| 4942 | + | // (and assert) that it will only be called once. Previously, this documentation | |
| 4943 | + | // recommended all #GInitable implementations should be idempotent; that | |
| 4944 | + | // recommendation was relaxed in GLib 2.54. | |
| 4945 | + | // | |
| 4946 | + | // If a class explicitly supports being initialized multiple times, it is | |
| 4947 | + | // recommended that the method is idempotent: multiple calls with the same | |
| 4948 | + | // arguments should return the same results. Only the first call initializes | |
| 4949 | + | // the object; further calls return the result of the first call. | |
| 4950 | + | // | |
| 4951 | + | // One reason why a class might need to support idempotent initialization is if | |
| 4952 | + | // it is designed to be used via the singleton pattern, with a | |
| 4953 | + | // #GObjectClass.constructor that sometimes returns an existing instance. | |
| 4954 | + | // In this pattern, a caller would expect to be able to call g_initable_init() | |
| 4955 | + | // on the result of g_object_new(), regardless of whether it is in fact a new | |
| 4956 | + | // instance. | |
| 4957 | + | func (x *Subprocess) Init(CancellableVar *Cancellable) bool { | |
| 4958 | + | ||
| 4959 | + | return XGInitableInit(x.GoPointer(), CancellableVar.GoPointer()) | |
| 4960 | + | ||
| 4961 | + | } | |
| 4962 | + | ||
| 4963 | + | // This class contains a set of options for launching child processes, | |
| 4964 | + | // such as where its standard input and output will be directed, the | |
| 4965 | + | // argument list, the environment, and more. | |
| 4966 | + | // | |
| 4967 | + | // While the #GSubprocess class has high level functions covering | |
| 4968 | + | // popular cases, use of this class allows access to more advanced | |
| 4969 | + | // options. It can also be used to launch multiple subprocesses with | |
| 4970 | + | // a similar configuration. | |
| 4971 | + | type SubprocessLauncher struct { | |
| 4972 | + | gobject.Object | |
| 4973 | + | } | |
| 4974 | + | ||
| 4975 | + | func SubprocessLauncherNewFromInternalPtr(ptr uintptr) *SubprocessLauncher { | |
| 4976 | + | cls := &SubprocessLauncher{} | |
| 4977 | + | cls.Ptr = ptr | |
| 4978 | + | return cls | |
| 4979 | + | } | |
| 4980 | + | ||
| 4981 | + | var xNewSubprocessLauncher func(SubprocessFlags) uintptr | |
| 4982 | + | ||
| 4983 | + | // Creates a new #GSubprocessLauncher. | |
| 4984 | + | // | |
| 4985 | + | // The launcher is created with the default options. A copy of the | |
| 4986 | + | // environment of the calling process is made at the time of this call | |
| 4987 | + | // and will be used as the environment that the process is launched in. | |
| 4988 | + | func NewSubprocessLauncher(FlagsVar SubprocessFlags) *SubprocessLauncher { | |
| 4989 | + | NewSubprocessLauncherPtr := xNewSubprocessLauncher(FlagsVar) | |
| 4990 | + | if NewSubprocessLauncherPtr == 0 { | |
| 4991 | + | return nil | |
| 4992 | + | } | |
| 4993 | + | ||
| 4994 | + | NewSubprocessLauncherCls := &SubprocessLauncher{} | |
| 4995 | + | NewSubprocessLauncherCls.Ptr = NewSubprocessLauncherPtr | |
| 4996 | + | return NewSubprocessLauncherCls | |
| 4997 | + | } | |
| 4998 | + | ||
| 4999 | + | var xSubprocessLauncherClose func(uintptr) | |
| 5000 | + | ||
| 5001 | + | // Closes all the file descriptors previously passed to the object with | |
| 5002 | + | // g_subprocess_launcher_take_fd(), g_subprocess_launcher_take_stderr_fd(), etc. | |
| 5003 | + | // | |
| 5004 | + | // After calling this method, any subsequent calls to g_subprocess_launcher_spawn() or g_subprocess_launcher_spawnv() will | |
| 5005 | + | // return %G_IO_ERROR_CLOSED. This method is idempotent if | |
| 5006 | + | // called more than once. | |
| 5007 | + | // | |
| 5008 | + | // This function is called automatically when the #GSubprocessLauncher | |
| 5009 | + | // is disposed, but is provided separately so that garbage collected | |
| 5010 | + | // language bindings can call it earlier to guarantee when FDs are closed. | |
| 5011 | + | func (x *SubprocessLauncher) Close() { | |
| 5012 | + | ||
| 5013 | + | xSubprocessLauncherClose(x.GoPointer()) | |
| 5014 | + | ||
| 5015 | + | } | |
| 5016 | + | ||
| 5017 | + | var xSubprocessLauncherGetenv func(uintptr, string) string | |
| 5018 | + | ||
| 5019 | + | // Returns the value of the environment variable @variable in the | |
| 5020 | + | // environment of processes launched from this launcher. | |
| 5021 | + | // | |
| 5022 | + | // On UNIX, the returned string can be an arbitrary byte string. | |
| 5023 | + | // On Windows, it will be UTF-8. | |
| 5024 | + | func (x *SubprocessLauncher) Getenv(VariableVar string) string { | |
| 5025 | + | ||
| 5026 | + | return xSubprocessLauncherGetenv(x.GoPointer(), VariableVar) | |
| 5027 | + | ||
| 5028 | + | } | |
| 5029 | + | ||
| 5030 | + | var xSubprocessLauncherSetChildSetup func(uintptr, uintptr, uintptr, uintptr) | |
| 5031 | + | ||
| 5032 | + | // Sets up a child setup function. | |
| 5033 | + | // | |
| 5034 | + | // The child setup function will be called after fork() but before | |
| 5035 | + | // exec() on the child's side. | |
| 5036 | + | // | |
| 5037 | + | // @destroy_notify will not be automatically called on the child's side | |
| 5038 | + | // of the fork(). It will only be called when the last reference on the | |
| 5039 | + | // #GSubprocessLauncher is dropped or when a new child setup function is | |
| 5040 | + | // given. | |
| 5041 | + | // | |
| 5042 | + | // %NULL can be given as @child_setup to disable the functionality. | |
| 5043 | + | // | |
| 5044 | + | // Child setup functions are only available on UNIX. | |
| 5045 | + | func (x *SubprocessLauncher) SetChildSetup(ChildSetupVar glib.SpawnChildSetupFunc, UserDataVar uintptr, DestroyNotifyVar glib.DestroyNotify) { | |
| 5046 | + | ||
| 5047 | + | xSubprocessLauncherSetChildSetup(x.GoPointer(), purego.NewCallback(ChildSetupVar), UserDataVar, purego.NewCallback(DestroyNotifyVar)) | |
| 5048 | + | ||
| 5049 | + | } | |
| 5050 | + | ||
| 5051 | + | var xSubprocessLauncherSetCwd func(uintptr, string) | |
| 5052 | + | ||
| 5053 | + | // Sets the current working directory that processes will be launched | |
| 5054 | + | // with. | |
| 5055 | + | // | |
| 5056 | + | // By default processes are launched with the current working directory | |
| 5057 | + | // of the launching process at the time of launch. | |
| 5058 | + | func (x *SubprocessLauncher) SetCwd(CwdVar string) { | |
| 5059 | + | ||
| 5060 | + | xSubprocessLauncherSetCwd(x.GoPointer(), CwdVar) | |
| 5061 | + | ||
| 5062 | + | } | |
| 5063 | + | ||
| 5064 | + | var xSubprocessLauncherSetEnviron func(uintptr, uintptr) | |
| 5065 | + | ||
| 5066 | + | // Replace the entire environment of processes launched from this | |
| 5067 | + | // launcher with the given 'environ' variable. | |
| 5068 | + | // | |
| 5069 | + | // Typically you will build this variable by using g_listenv() to copy | |
| 5070 | + | // the process 'environ' and using the functions g_environ_setenv(), | |
| 5071 | + | // g_environ_unsetenv(), etc. | |
| 5072 | + | // | |
| 5073 | + | // As an alternative, you can use g_subprocess_launcher_setenv(), | |
| 5074 | + | // g_subprocess_launcher_unsetenv(), etc. | |
| 5075 | + | // | |
| 5076 | + | // Pass an empty array to set an empty environment. Pass %NULL to inherit the | |
| 5077 | + | // parent process’ environment. As of GLib 2.54, the parent process’ environment | |
| 5078 | + | // will be copied when g_subprocess_launcher_set_environ() is called. | |
| 5079 | + | // Previously, it was copied when the subprocess was executed. This means the | |
| 5080 | + | // copied environment may now be modified (using g_subprocess_launcher_setenv(), | |
| 5081 | + | // etc.) before launching the subprocess. | |
| 5082 | + | // | |
| 5083 | + | // On UNIX, all strings in this array can be arbitrary byte strings. | |
| 5084 | + | // On Windows, they should be in UTF-8. | |
| 5085 | + | func (x *SubprocessLauncher) SetEnviron(EnvVar uintptr) { | |
| 5086 | + | ||
| 5087 | + | xSubprocessLauncherSetEnviron(x.GoPointer(), EnvVar) | |
| 5088 | + | ||
| 5089 | + | } | |
| 5090 | + | ||
| 5091 | + | var xSubprocessLauncherSetFlags func(uintptr, SubprocessFlags) | |
| 5092 | + | ||
| 5093 | + | // Sets the flags on the launcher. | |
| 5094 | + | // | |
| 5095 | + | // The default flags are %G_SUBPROCESS_FLAGS_NONE. | |
| 5096 | + | // | |
| 5097 | + | // You may not set flags that specify conflicting options for how to | |
| 5098 | + | // handle a particular stdio stream (eg: specifying both | |
| 5099 | + | // %G_SUBPROCESS_FLAGS_STDIN_PIPE and | |
| 5100 | + | // %G_SUBPROCESS_FLAGS_STDIN_INHERIT). | |
| 5101 | + | // | |
| 5102 | + | // You may also not set a flag that conflicts with a previous call to a | |
| 5103 | + | // function like g_subprocess_launcher_set_stdin_file_path() or | |
| 5104 | + | // g_subprocess_launcher_take_stdout_fd(). | |
| 5105 | + | func (x *SubprocessLauncher) SetFlags(FlagsVar SubprocessFlags) { | |
| 5106 | + | ||
| 5107 | + | xSubprocessLauncherSetFlags(x.GoPointer(), FlagsVar) | |
| 5108 | + | ||
| 5109 | + | } | |
| 5110 | + | ||
| 5111 | + | var xSubprocessLauncherSetStderrFilePath func(uintptr, string) | |
| 5112 | + | ||
| 5113 | + | // Sets the file path to use as the stderr for spawned processes. | |
| 5114 | + | // | |
| 5115 | + | // If @path is %NULL then any previously given path is unset. | |
| 5116 | + | // | |
| 5117 | + | // The file will be created or truncated when the process is spawned, as | |
| 5118 | + | // would be the case if using '2>' at the shell. | |
| 5119 | + | // | |
| 5120 | + | // If you want to send both stdout and stderr to the same file then use | |
| 5121 | + | // %G_SUBPROCESS_FLAGS_STDERR_MERGE. | |
| 5122 | + | // | |
| 5123 | + | // You may not set a stderr file path if a stderr fd is already set or | |
| 5124 | + | // if the launcher flags contain any flags directing stderr elsewhere. | |
| 5125 | + | // | |
| 5126 | + | // This feature is only available on UNIX. | |
| 5127 | + | func (x *SubprocessLauncher) SetStderrFilePath(PathVar string) { | |
| 5128 | + | ||
| 5129 | + | xSubprocessLauncherSetStderrFilePath(x.GoPointer(), PathVar) | |
| 5130 | + | ||
| 5131 | + | } | |
| 5132 | + | ||
| 5133 | + | var xSubprocessLauncherSetStdinFilePath func(uintptr, string) | |
| 5134 | + | ||
| 5135 | + | // Sets the file path to use as the stdin for spawned processes. | |
| 5136 | + | // | |
| 5137 | + | // If @path is %NULL then any previously given path is unset. | |
| 5138 | + | // | |
| 5139 | + | // The file must exist or spawning the process will fail. | |
| 5140 | + | // | |
| 5141 | + | // You may not set a stdin file path if a stdin fd is already set or if | |
| 5142 | + | // the launcher flags contain any flags directing stdin elsewhere. | |
| 5143 | + | // | |
| 5144 | + | // This feature is only available on UNIX. | |
| 5145 | + | func (x *SubprocessLauncher) SetStdinFilePath(PathVar string) { | |
| 5146 | + | ||
| 5147 | + | xSubprocessLauncherSetStdinFilePath(x.GoPointer(), PathVar) | |
| 5148 | + | ||
| 5149 | + | } | |
| 5150 | + | ||
| 5151 | + | var xSubprocessLauncherSetStdoutFilePath func(uintptr, string) | |
| 5152 | + | ||
| 5153 | + | // Sets the file path to use as the stdout for spawned processes. | |
| 5154 | + | // | |
| 5155 | + | // If @path is %NULL then any previously given path is unset. | |
| 5156 | + | // | |
| 5157 | + | // The file will be created or truncated when the process is spawned, as | |
| 5158 | + | // would be the case if using '>' at the shell. | |
| 5159 | + | // | |
| 5160 | + | // You may not set a stdout file path if a stdout fd is already set or | |
| 5161 | + | // if the launcher flags contain any flags directing stdout elsewhere. | |
| 5162 | + | // | |
| 5163 | + | // This feature is only available on UNIX. | |
| 5164 | + | func (x *SubprocessLauncher) SetStdoutFilePath(PathVar string) { | |
| 5165 | + | ||
| 5166 | + | xSubprocessLauncherSetStdoutFilePath(x.GoPointer(), PathVar) | |
| 5167 | + | ||
| 5168 | + | } | |
| 5169 | + | ||
| 5170 | + | var xSubprocessLauncherSetenv func(uintptr, string, string, bool) | |
| 5171 | + | ||
| 5172 | + | // Sets the environment variable @variable in the environment of | |
| 5173 | + | // processes launched from this launcher. | |
| 5174 | + | // | |
| 5175 | + | // On UNIX, both the variable's name and value can be arbitrary byte | |
| 5176 | + | // strings, except that the variable's name cannot contain '='. | |
| 5177 | + | // On Windows, they should be in UTF-8. | |
| 5178 | + | func (x *SubprocessLauncher) Setenv(VariableVar string, ValueVar string, OverwriteVar bool) { | |
| 5179 | + | ||
| 5180 | + | xSubprocessLauncherSetenv(x.GoPointer(), VariableVar, ValueVar, OverwriteVar) | |
| 5181 | + | ||
| 5182 | + | } | |
| 5183 | + | ||
| 5184 | + | var xSubprocessLauncherSpawn func(uintptr, **glib.Error, string, ...interface{}) uintptr | |
| 5185 | + | ||
| 5186 | + | // Creates a #GSubprocess given a provided varargs list of arguments. | |
| 5187 | + | func (x *SubprocessLauncher) Spawn(ErrorVar **glib.Error, Argv0Var string, varArgs ...interface{}) *Subprocess { | |
| 5188 | + | ||
| 5189 | + | SpawnPtr := xSubprocessLauncherSpawn(x.GoPointer(), ErrorVar, Argv0Var, varArgs...) | |
| 5190 | + | if SpawnPtr == 0 { | |
| 5191 | + | return nil | |
| 5192 | + | } | |
| 5193 | + | ||
| 5194 | + | SpawnCls := &Subprocess{} | |
| 5195 | + | SpawnCls.Ptr = SpawnPtr | |
| 5196 | + | return SpawnCls | |
| 5197 | + | ||
| 5198 | + | } | |
| 5199 | + | ||
| 5200 | + | var xSubprocessLauncherSpawnv func(uintptr, uintptr) uintptr | |
| 5201 | + | ||
| 5202 | + | // Creates a #GSubprocess given a provided array of arguments. | |
| 5203 | + | func (x *SubprocessLauncher) Spawnv(ArgvVar uintptr) *Subprocess { | |
| 5204 | + | ||
| 5205 | + | SpawnvPtr := xSubprocessLauncherSpawnv(x.GoPointer(), ArgvVar) | |
| 5206 | + | if SpawnvPtr == 0 { | |
| 5207 | + | return nil | |
| 5208 | + | } | |
| 5209 | + | ||
| 5210 | + | SpawnvCls := &Subprocess{} | |
| 5211 | + | SpawnvCls.Ptr = SpawnvPtr | |
| 5212 | + | return SpawnvCls | |
| 5213 | + | ||
| 5214 | + | } | |
| 5215 | + | ||
| 5216 | + | var xSubprocessLauncherTakeFd func(uintptr, int32, int32) | |
| 5217 | + | ||
| 5218 | + | // Transfer an arbitrary file descriptor from parent process to the | |
| 5219 | + | // child. This function takes ownership of the @source_fd; it will be closed | |
| 5220 | + | // in the parent when @self is freed. | |
| 5221 | + | // | |
| 5222 | + | // By default, all file descriptors from the parent will be closed. | |
| 5223 | + | // This function allows you to create (for example) a custom `pipe()` or | |
| 5224 | + | // `socketpair()` before launching the process, and choose the target | |
| 5225 | + | // descriptor in the child. | |
| 5226 | + | // | |
| 5227 | + | // An example use case is GNUPG, which has a command line argument | |
| 5228 | + | // `--passphrase-fd` providing a file descriptor number where it expects | |
| 5229 | + | // the passphrase to be written. | |
| 5230 | + | func (x *SubprocessLauncher) TakeFd(SourceFdVar int32, TargetFdVar int32) { | |
| 5231 | + | ||
| 5232 | + | xSubprocessLauncherTakeFd(x.GoPointer(), SourceFdVar, TargetFdVar) | |
| 5233 | + | ||
| 5234 | + | } | |
| 5235 | + | ||
| 5236 | + | var xSubprocessLauncherTakeStderrFd func(uintptr, int32) | |
| 5237 | + | ||
| 5238 | + | // Sets the file descriptor to use as the stderr for spawned processes. | |
| 5239 | + | // | |
| 5240 | + | // If @fd is -1 then any previously given fd is unset. | |
| 5241 | + | // | |
| 5242 | + | // Note that the default behaviour is to pass stderr through to the | |
| 5243 | + | // stderr of the parent process. | |
| 5244 | + | // | |
| 5245 | + | // The passed @fd belongs to the #GSubprocessLauncher. It will be | |
| 5246 | + | // automatically closed when the launcher is finalized. The file | |
| 5247 | + | // descriptor will also be closed on the child side when executing the | |
| 5248 | + | // spawned process. | |
| 5249 | + | // | |
| 5250 | + | // You may not set a stderr fd if a stderr file path is already set or | |
| 5251 | + | // if the launcher flags contain any flags directing stderr elsewhere. | |
| 5252 | + | // | |
| 5253 | + | // This feature is only available on UNIX. | |
| 5254 | + | func (x *SubprocessLauncher) TakeStderrFd(FdVar int32) { | |
| 5255 | + | ||
| 5256 | + | xSubprocessLauncherTakeStderrFd(x.GoPointer(), FdVar) | |
| 5257 | + | ||
| 5258 | + | } | |
| 5259 | + | ||
| 5260 | + | var xSubprocessLauncherTakeStdinFd func(uintptr, int32) | |
| 5261 | + | ||
| 5262 | + | // Sets the file descriptor to use as the stdin for spawned processes. | |
| 5263 | + | // | |
| 5264 | + | // If @fd is -1 then any previously given fd is unset. | |
| 5265 | + | // | |
| 5266 | + | // Note that if your intention is to have the stdin of the calling | |
| 5267 | + | // process inherited by the child then %G_SUBPROCESS_FLAGS_STDIN_INHERIT | |
| 5268 | + | // is a better way to go about doing that. | |
| 5269 | + | // | |
| 5270 | + | // The passed @fd is noted but will not be touched in the current | |
| 5271 | + | // process. It is therefore necessary that it be kept open by the | |
| 5272 | + | // caller until the subprocess is spawned. The file descriptor will | |
| 5273 | + | // also not be explicitly closed on the child side, so it must be marked | |
| 5274 | + | // O_CLOEXEC if that's what you want. | |
| 5275 | + | // | |
| 5276 | + | // You may not set a stdin fd if a stdin file path is already set or if | |
| 5277 | + | // the launcher flags contain any flags directing stdin elsewhere. | |
| 5278 | + | // | |
| 5279 | + | // This feature is only available on UNIX. | |
| 5280 | + | func (x *SubprocessLauncher) TakeStdinFd(FdVar int32) { | |
| 5281 | + | ||
| 5282 | + | xSubprocessLauncherTakeStdinFd(x.GoPointer(), FdVar) | |
| 5283 | + | ||
| 5284 | + | } | |
| 5285 | + | ||
| 5286 | + | var xSubprocessLauncherTakeStdoutFd func(uintptr, int32) | |
| 5287 | + | ||
| 5288 | + | // Sets the file descriptor to use as the stdout for spawned processes. | |
| 5289 | + | // | |
| 5290 | + | // If @fd is -1 then any previously given fd is unset. | |
| 5291 | + | // | |
| 5292 | + | // Note that the default behaviour is to pass stdout through to the | |
| 5293 | + | // stdout of the parent process. | |
| 5294 | + | // | |
| 5295 | + | // The passed @fd is noted but will not be touched in the current | |
| 5296 | + | // process. It is therefore necessary that it be kept open by the | |
| 5297 | + | // caller until the subprocess is spawned. The file descriptor will | |
| 5298 | + | // also not be explicitly closed on the child side, so it must be marked | |
| 5299 | + | // O_CLOEXEC if that's what you want. | |
| 5300 | + | // | |
| 5301 | + | // You may not set a stdout fd if a stdout file path is already set or | |
| 5302 | + | // if the launcher flags contain any flags directing stdout elsewhere. | |
| 5303 | + | // | |
| 5304 | + | // This feature is only available on UNIX. | |
| 5305 | + | func (x *SubprocessLauncher) TakeStdoutFd(FdVar int32) { | |
| 5306 | + | ||
| 5307 | + | xSubprocessLauncherTakeStdoutFd(x.GoPointer(), FdVar) | |
| 5308 | + | ||
| 5309 | + | } | |
| 5310 | + | ||
| 5311 | + | var xSubprocessLauncherUnsetenv func(uintptr, string) | |
| 5312 | + | ||
| 5313 | + | // Removes the environment variable @variable from the environment of | |
| 5314 | + | // processes launched from this launcher. | |
| 5315 | + | // | |
| 5316 | + | // On UNIX, the variable's name can be an arbitrary byte string not | |
| 5317 | + | // containing '='. On Windows, it should be in UTF-8. | |
| 5318 | + | func (x *SubprocessLauncher) Unsetenv(VariableVar string) { | |
| 5319 | + | ||
| 5320 | + | xSubprocessLauncherUnsetenv(x.GoPointer(), VariableVar) | |
| 5321 | + | ||
| 5322 | + | } | |
| 5323 | + | ||
| 5324 | + | func (c *SubprocessLauncher) GoPointer() uintptr { | |
| 5325 | + | return c.Ptr | |
| 5326 | + | } | |
| 5327 | + | ||
| 5328 | + | func (c *SubprocessLauncher) SetGoPointer(ptr uintptr) { | |
| 5329 | + | c.Ptr = ptr | |
| 5330 | + | } | |
| 5331 | + | ||
| 5332 | + | // A helper class for testing code which uses D-Bus without touching the user's | |
| 5333 | + | // session bus. | |
| 5334 | + | // | |
| 5335 | + | // Note that #GTestDBus modifies the user’s environment, calling setenv(). | |
| 5336 | + | // This is not thread-safe, so all #GTestDBus calls should be completed before | |
| 5337 | + | // threads are spawned, or should have appropriate locking to ensure no access | |
| 5338 | + | // conflicts to environment variables shared between #GTestDBus and other | |
| 5339 | + | // threads. | |
| 5340 | + | // | |
| 5341 | + | // ## Creating unit tests using GTestDBus | |
| 5342 | + | // | |
| 5343 | + | // Testing of D-Bus services can be tricky because normally we only ever run | |
| 5344 | + | // D-Bus services over an existing instance of the D-Bus daemon thus we | |
| 5345 | + | // usually don't activate D-Bus services that are not yet installed into the | |
| 5346 | + | // target system. The #GTestDBus object makes this easier for us by taking care | |
| 5347 | + | // of the lower level tasks such as running a private D-Bus daemon and looking | |
| 5348 | + | // up uninstalled services in customizable locations, typically in your source | |
| 5349 | + | // code tree. | |
| 5350 | + | // | |
| 5351 | + | // The first thing you will need is a separate service description file for the | |
| 5352 | + | // D-Bus daemon. Typically a `services` subdirectory of your `tests` directory | |
| 5353 | + | // is a good place to put this file. | |
| 5354 | + | // | |
| 5355 | + | // The service file should list your service along with an absolute path to the | |
| 5356 | + | // uninstalled service executable in your source tree. Using autotools we would | |
| 5357 | + | // achieve this by adding a file such as `my-server.service.in` in the services | |
| 5358 | + | // directory and have it processed by configure. | |
| 5359 | + | // |[ | |
| 5360 | + | // | |
| 5361 | + | // [D-BUS Service] | |
| 5362 | + | // Name=org.gtk.GDBus.Examples.ObjectManager | |
| 5363 | + | // Exec=@abs_top_builddir@/gio/tests/gdbus-example-objectmanager-server | |
| 5364 | + | // | |
| 5365 | + | // ]| | |
| 5366 | + | // You will also need to indicate this service directory in your test | |
| 5367 | + | // fixtures, so you will need to pass the path while compiling your | |
| 5368 | + | // test cases. Typically this is done with autotools with an added | |
| 5369 | + | // preprocessor flag specified to compile your tests such as: | |
| 5370 | + | // |[ | |
| 5371 | + | // | |
| 5372 | + | // -DTEST_SERVICES=\""$(abs_top_builddir)/tests/services"\" | |
| 5373 | + | // | |
| 5374 | + | // ]| | |
| 5375 | + | // | |
| 5376 | + | // Once you have a service definition file which is local to your source tree, | |
| 5377 | + | // | |
| 5378 | + | // you can proceed to set up a GTest fixture using the #GTestDBus scaffolding. | |
| 5379 | + | // | |
| 5380 | + | // An example of a test fixture for D-Bus services can be found | |
| 5381 | + | // here: | |
| 5382 | + | // [gdbus-test-fixture.c](https://gitlab.gnome.org/GNOME/glib/-/blob/HEAD/gio/tests/gdbus-test-fixture.c) | |
| 5383 | + | // | |
| 5384 | + | // Note that these examples only deal with isolating the D-Bus aspect of your | |
| 5385 | + | // service. To successfully run isolated unit tests on your service you may need | |
| 5386 | + | // some additional modifications to your test case fixture. For example; if your | |
| 5387 | + | // service uses GSettings and installs a schema then it is important that your test service | |
| 5388 | + | // not load the schema in the ordinary installed location (chances are that your service | |
| 5389 | + | // and schema files are not yet installed, or worse; there is an older version of the | |
| 5390 | + | // schema file sitting in the install location). | |
| 5391 | + | // | |
| 5392 | + | // Most of the time we can work around these obstacles using the | |
| 5393 | + | // environment. Since the environment is inherited by the D-Bus daemon | |
| 5394 | + | // created by #GTestDBus and then in turn inherited by any services the | |
| 5395 | + | // D-Bus daemon activates, using the setup routine for your fixture is | |
| 5396 | + | // a practical place to help sandbox your runtime environment. For the | |
| 5397 | + | // rather typical GSettings case we can work around this by setting | |
| 5398 | + | // `GSETTINGS_SCHEMA_DIR` to the in tree directory holding your schemas | |
| 5399 | + | // in the above fixture_setup() routine. | |
| 5400 | + | // | |
| 5401 | + | // The GSettings schemas need to be locally pre-compiled for this to work. This can be achieved | |
| 5402 | + | // by compiling the schemas locally as a step before running test cases, an autotools setup might | |
| 5403 | + | // do the following in the directory holding schemas: | |
| 5404 | + | // |[ | |
| 5405 | + | // | |
| 5406 | + | // all-am: | |
| 5407 | + | // $(GLIB_COMPILE_SCHEMAS) . | |
| 5408 | + | // | |
| 5409 | + | // CLEANFILES += gschemas.compiled | |
| 5410 | + | // | |
| 5411 | + | // ]| | |
| 5412 | + | type TestDBus struct { | |
| 5413 | + | gobject.Object | |
| 5414 | + | } | |
| 5415 | + | ||
| 5416 | + | func TestDBusNewFromInternalPtr(ptr uintptr) *TestDBus { | |
| 5417 | + | cls := &TestDBus{} | |
| 5418 | + | cls.Ptr = ptr | |
| 5419 | + | return cls | |
| 5420 | + | } | |
| 5421 | + | ||
| 5422 | + | var xNewTestDBus func(TestDBusFlags) uintptr | |
| 5423 | + | ||
| 5424 | + | // Create a new #GTestDBus object. | |
| 5425 | + | func NewTestDBus(FlagsVar TestDBusFlags) *TestDBus { | |
| 5426 | + | NewTestDBusPtr := xNewTestDBus(FlagsVar) | |
| 5427 | + | if NewTestDBusPtr == 0 { | |
| 5428 | + | return nil | |
| 5429 | + | } | |
| 5430 | + | ||
| 5431 | + | NewTestDBusCls := &TestDBus{} | |
| 5432 | + | NewTestDBusCls.Ptr = NewTestDBusPtr | |
| 5433 | + | return NewTestDBusCls | |
| 5434 | + | } | |
| 5435 | + | ||
| 5436 | + | var xTestDBusAddServiceDir func(uintptr, string) | |
| 5437 | + | ||
| 5438 | + | // Add a path where dbus-daemon will look up .service files. This can't be | |
| 5439 | + | // called after g_test_dbus_up(). | |
| 5440 | + | func (x *TestDBus) AddServiceDir(PathVar string) { | |
| 5441 | + | ||
| 5442 | + | xTestDBusAddServiceDir(x.GoPointer(), PathVar) | |
| 5443 | + | ||
| 5444 | + | } | |
| 5445 | + | ||
| 5446 | + | var xTestDBusDown func(uintptr) | |
| 5447 | + | ||
| 5448 | + | // Stop the session bus started by g_test_dbus_up(). | |
| 5449 | + | // | |
| 5450 | + | // This will wait for the singleton returned by g_bus_get() or g_bus_get_sync() | |
| 5451 | + | // to be destroyed. This is done to ensure that the next unit test won't get a | |
| 5452 | + | // leaked singleton from this test. | |
| 5453 | + | func (x *TestDBus) Down() { | |
| 5454 | + | ||
| 5455 | + | xTestDBusDown(x.GoPointer()) | |
| 5456 | + | ||
| 5457 | + | } | |
| 5458 | + | ||
| 5459 | + | var xTestDBusGetBusAddress func(uintptr) string | |
| 5460 | + | ||
| 5461 | + | // Get the address on which dbus-daemon is running. If g_test_dbus_up() has not | |
| 5462 | + | // been called yet, %NULL is returned. This can be used with | |
| 5463 | + | // g_dbus_connection_new_for_address(). | |
| 5464 | + | func (x *TestDBus) GetBusAddress() string { | |
| 5465 | + | ||
| 5466 | + | return xTestDBusGetBusAddress(x.GoPointer()) | |
| 5467 | + | ||
| 5468 | + | } | |
| 5469 | + | ||
| 5470 | + | var xTestDBusGetFlags func(uintptr) TestDBusFlags | |
| 5471 | + | ||
| 5472 | + | // Get the flags of the #GTestDBus object. | |
| 5473 | + | func (x *TestDBus) GetFlags() TestDBusFlags { | |
| 5474 | + | ||
| 5475 | + | return xTestDBusGetFlags(x.GoPointer()) | |
| 5476 | + | ||
| 5477 | + | } | |
| 5478 | + | ||
| 5479 | + | var xTestDBusStop func(uintptr) | |
| 5480 | + | ||
| 5481 | + | // Stop the session bus started by g_test_dbus_up(). | |
| 5482 | + | // | |
| 5483 | + | // Unlike g_test_dbus_down(), this won't verify the #GDBusConnection | |
| 5484 | + | // singleton returned by g_bus_get() or g_bus_get_sync() is destroyed. Unit | |
| 5485 | + | // tests wanting to verify behaviour after the session bus has been stopped | |
| 5486 | + | // can use this function but should still call g_test_dbus_down() when done. | |
| 5487 | + | func (x *TestDBus) Stop() { | |
| 5488 | + | ||
| 5489 | + | xTestDBusStop(x.GoPointer()) | |
| 5490 | + | ||
| 5491 | + | } | |
| 5492 | + | ||
| 5493 | + | var xTestDBusUp func(uintptr) | |
| 5494 | + | ||
| 5495 | + | // Start a dbus-daemon instance and set DBUS_SESSION_BUS_ADDRESS. After this | |
| 5496 | + | // call, it is safe for unit tests to start sending messages on the session bus. | |
| 5497 | + | // | |
| 5498 | + | // If this function is called from setup callback of g_test_add(), | |
| 5499 | + | // g_test_dbus_down() must be called in its teardown callback. | |
| 5500 | + | // | |
| 5501 | + | // If this function is called from unit test's main(), then g_test_dbus_down() | |
| 5502 | + | // must be called after g_test_run(). | |
| 5503 | + | func (x *TestDBus) Up() { | |
| 5504 | + | ||
| 5505 | + | xTestDBusUp(x.GoPointer()) | |
| 5506 | + | ||
| 5507 | + | } | |
| 5508 | + | ||
| 5509 | + | func (c *TestDBus) GoPointer() uintptr { | |
| 5510 | + | return c.Ptr | |
| 5511 | + | } | |
| 5512 | + | ||
| 5513 | + | func (c *TestDBus) SetGoPointer(ptr uintptr) { | |
| 5514 | + | c.Ptr = ptr | |
| 5515 | + | } | |
| 5516 | + | ||
| 5517 | + | func init() { | |
| 5518 | + | lib, err := purego.Dlopen(core.GetPath("GIO"), purego.RTLD_NOW|purego.RTLD_GLOBAL) | |
| 5519 | + | if err != nil { | |
| 5520 | + | panic(err) | |
| 5521 | + | } | |
| 5522 | + | core.PuregoSafeRegister(&xIoErrorQuark, lib, "g_io_error_quark") | |
| 5523 | + | core.PuregoSafeRegister(&xResolverErrorQuark, lib, "g_resolver_error_quark") | |
| 5524 | + | core.PuregoSafeRegister(&xResourceErrorQuark, lib, "g_resource_error_quark") | |
| 5525 | + | core.PuregoSafeRegister(&xTlsChannelBindingErrorQuark, lib, "g_tls_channel_binding_error_quark") | |
| 5526 | + | core.PuregoSafeRegister(&xTlsErrorQuark, lib, "g_tls_error_quark") | |
| 5527 | + | ||
| 5528 | + | core.PuregoSafeRegister(&xNewBytesIcon, lib, "g_bytes_icon_new") | |
| 5529 | + | ||
| 5530 | + | core.PuregoSafeRegister(&xBytesIconGetBytes, lib, "g_bytes_icon_get_bytes") | |
| 5531 | + | ||
| 5532 | + | core.PuregoSafeRegister(&xNewDBusAuthObserver, lib, "g_dbus_auth_observer_new") | |
| 5533 | + | ||
| 5534 | + | core.PuregoSafeRegister(&xDBusAuthObserverAllowMechanism, lib, "g_dbus_auth_observer_allow_mechanism") | |
| 5535 | + | core.PuregoSafeRegister(&xDBusAuthObserverAuthorizeAuthenticatedPeer, lib, "g_dbus_auth_observer_authorize_authenticated_peer") | |
| 5536 | + | ||
| 5537 | + | core.PuregoSafeRegister(&xNewFinishDBusConnection, lib, "g_dbus_connection_new_finish") | |
| 5538 | + | core.PuregoSafeRegister(&xNewForAddressFinishDBusConnection, lib, "g_dbus_connection_new_for_address_finish") | |
| 5539 | + | core.PuregoSafeRegister(&xNewForAddressSyncDBusConnection, lib, "g_dbus_connection_new_for_address_sync") | |
| 5540 | + | core.PuregoSafeRegister(&xNewSyncDBusConnection, lib, "g_dbus_connection_new_sync") | |
| 5541 | + | ||
| 5542 | + | core.PuregoSafeRegister(&xDBusConnectionAddFilter, lib, "g_dbus_connection_add_filter") | |
| 5543 | + | core.PuregoSafeRegister(&xDBusConnectionCall, lib, "g_dbus_connection_call") | |
| 5544 | + | core.PuregoSafeRegister(&xDBusConnectionCallFinish, lib, "g_dbus_connection_call_finish") | |
| 5545 | + | core.PuregoSafeRegister(&xDBusConnectionCallSync, lib, "g_dbus_connection_call_sync") | |
| 5546 | + | core.PuregoSafeRegister(&xDBusConnectionCallWithUnixFdList, lib, "g_dbus_connection_call_with_unix_fd_list") | |
| 5547 | + | core.PuregoSafeRegister(&xDBusConnectionCallWithUnixFdListFinish, lib, "g_dbus_connection_call_with_unix_fd_list_finish") | |
| 5548 | + | core.PuregoSafeRegister(&xDBusConnectionCallWithUnixFdListSync, lib, "g_dbus_connection_call_with_unix_fd_list_sync") | |
| 5549 | + | core.PuregoSafeRegister(&xDBusConnectionClose, lib, "g_dbus_connection_close") | |
| 5550 | + | core.PuregoSafeRegister(&xDBusConnectionCloseFinish, lib, "g_dbus_connection_close_finish") | |
| 5551 | + | core.PuregoSafeRegister(&xDBusConnectionCloseSync, lib, "g_dbus_connection_close_sync") | |
| 5552 | + | core.PuregoSafeRegister(&xDBusConnectionEmitSignal, lib, "g_dbus_connection_emit_signal") | |
| 5553 | + | core.PuregoSafeRegister(&xDBusConnectionExportActionGroup, lib, "g_dbus_connection_export_action_group") | |
| 5554 | + | core.PuregoSafeRegister(&xDBusConnectionExportMenuModel, lib, "g_dbus_connection_export_menu_model") | |
| 5555 | + | core.PuregoSafeRegister(&xDBusConnectionFlush, lib, "g_dbus_connection_flush") | |
| 5556 | + | core.PuregoSafeRegister(&xDBusConnectionFlushFinish, lib, "g_dbus_connection_flush_finish") | |
| 5557 | + | core.PuregoSafeRegister(&xDBusConnectionFlushSync, lib, "g_dbus_connection_flush_sync") | |
| 5558 | + | core.PuregoSafeRegister(&xDBusConnectionGetCapabilities, lib, "g_dbus_connection_get_capabilities") | |
| 5559 | + | core.PuregoSafeRegister(&xDBusConnectionGetExitOnClose, lib, "g_dbus_connection_get_exit_on_close") | |
| 5560 | + | core.PuregoSafeRegister(&xDBusConnectionGetFlags, lib, "g_dbus_connection_get_flags") | |
| 5561 | + | core.PuregoSafeRegister(&xDBusConnectionGetGuid, lib, "g_dbus_connection_get_guid") | |
| 5562 | + | core.PuregoSafeRegister(&xDBusConnectionGetLastSerial, lib, "g_dbus_connection_get_last_serial") | |
| 5563 | + | core.PuregoSafeRegister(&xDBusConnectionGetPeerCredentials, lib, "g_dbus_connection_get_peer_credentials") | |
| 5564 | + | core.PuregoSafeRegister(&xDBusConnectionGetStream, lib, "g_dbus_connection_get_stream") | |
| 5565 | + | core.PuregoSafeRegister(&xDBusConnectionGetUniqueName, lib, "g_dbus_connection_get_unique_name") | |
| 5566 | + | core.PuregoSafeRegister(&xDBusConnectionIsClosed, lib, "g_dbus_connection_is_closed") | |
| 5567 | + | core.PuregoSafeRegister(&xDBusConnectionRegisterObject, lib, "g_dbus_connection_register_object") | |
| 5568 | + | core.PuregoSafeRegister(&xDBusConnectionRegisterObjectWithClosures, lib, "g_dbus_connection_register_object_with_closures") | |
| 5569 | + | core.PuregoSafeRegister(&xDBusConnectionRegisterSubtree, lib, "g_dbus_connection_register_subtree") | |
| 5570 | + | core.PuregoSafeRegister(&xDBusConnectionRemoveFilter, lib, "g_dbus_connection_remove_filter") | |
| 5571 | + | core.PuregoSafeRegister(&xDBusConnectionSendMessage, lib, "g_dbus_connection_send_message") | |
| 5572 | + | core.PuregoSafeRegister(&xDBusConnectionSendMessageWithReply, lib, "g_dbus_connection_send_message_with_reply") | |
| 5573 | + | core.PuregoSafeRegister(&xDBusConnectionSendMessageWithReplyFinish, lib, "g_dbus_connection_send_message_with_reply_finish") | |
| 5574 | + | core.PuregoSafeRegister(&xDBusConnectionSendMessageWithReplySync, lib, "g_dbus_connection_send_message_with_reply_sync") | |
| 5575 | + | core.PuregoSafeRegister(&xDBusConnectionSetExitOnClose, lib, "g_dbus_connection_set_exit_on_close") | |
| 5576 | + | core.PuregoSafeRegister(&xDBusConnectionSignalSubscribe, lib, "g_dbus_connection_signal_subscribe") | |
| 5577 | + | core.PuregoSafeRegister(&xDBusConnectionSignalUnsubscribe, lib, "g_dbus_connection_signal_unsubscribe") | |
| 5578 | + | core.PuregoSafeRegister(&xDBusConnectionStartMessageProcessing, lib, "g_dbus_connection_start_message_processing") | |
| 5579 | + | core.PuregoSafeRegister(&xDBusConnectionUnexportActionGroup, lib, "g_dbus_connection_unexport_action_group") | |
| 5580 | + | core.PuregoSafeRegister(&xDBusConnectionUnexportMenuModel, lib, "g_dbus_connection_unexport_menu_model") | |
| 5581 | + | core.PuregoSafeRegister(&xDBusConnectionUnregisterObject, lib, "g_dbus_connection_unregister_object") | |
| 5582 | + | core.PuregoSafeRegister(&xDBusConnectionUnregisterSubtree, lib, "g_dbus_connection_unregister_subtree") | |
| 5583 | + | ||
| 5584 | + | core.PuregoSafeRegister(&xNewDBusMessage, lib, "g_dbus_message_new") | |
| 5585 | + | core.PuregoSafeRegister(&xNewFromBlobDBusMessage, lib, "g_dbus_message_new_from_blob") | |
| 5586 | + | core.PuregoSafeRegister(&xNewMethodCallDBusMessage, lib, "g_dbus_message_new_method_call") | |
| 5587 | + | core.PuregoSafeRegister(&xNewSignalDBusMessage, lib, "g_dbus_message_new_signal") | |
| 5588 | + | ||
| 5589 | + | core.PuregoSafeRegister(&xDBusMessageCopy, lib, "g_dbus_message_copy") | |
| 5590 | + | core.PuregoSafeRegister(&xDBusMessageGetArg0, lib, "g_dbus_message_get_arg0") | |
| 5591 | + | core.PuregoSafeRegister(&xDBusMessageGetBody, lib, "g_dbus_message_get_body") | |
| 5592 | + | core.PuregoSafeRegister(&xDBusMessageGetByteOrder, lib, "g_dbus_message_get_byte_order") | |
| 5593 | + | core.PuregoSafeRegister(&xDBusMessageGetDestination, lib, "g_dbus_message_get_destination") | |
| 5594 | + | core.PuregoSafeRegister(&xDBusMessageGetErrorName, lib, "g_dbus_message_get_error_name") | |
| 5595 | + | core.PuregoSafeRegister(&xDBusMessageGetFlags, lib, "g_dbus_message_get_flags") | |
| 5596 | + | core.PuregoSafeRegister(&xDBusMessageGetHeader, lib, "g_dbus_message_get_header") | |
| 5597 | + | core.PuregoSafeRegister(&xDBusMessageGetHeaderFields, lib, "g_dbus_message_get_header_fields") | |
| 5598 | + | core.PuregoSafeRegister(&xDBusMessageGetInterface, lib, "g_dbus_message_get_interface") | |
| 5599 | + | core.PuregoSafeRegister(&xDBusMessageGetLocked, lib, "g_dbus_message_get_locked") | |
| 5600 | + | core.PuregoSafeRegister(&xDBusMessageGetMember, lib, "g_dbus_message_get_member") | |
| 5601 | + | core.PuregoSafeRegister(&xDBusMessageGetMessageType, lib, "g_dbus_message_get_message_type") | |
| 5602 | + | core.PuregoSafeRegister(&xDBusMessageGetNumUnixFds, lib, "g_dbus_message_get_num_unix_fds") | |
| 5603 | + | core.PuregoSafeRegister(&xDBusMessageGetPath, lib, "g_dbus_message_get_path") | |
| 5604 | + | core.PuregoSafeRegister(&xDBusMessageGetReplySerial, lib, "g_dbus_message_get_reply_serial") | |
| 5605 | + | core.PuregoSafeRegister(&xDBusMessageGetSender, lib, "g_dbus_message_get_sender") | |
| 5606 | + | core.PuregoSafeRegister(&xDBusMessageGetSerial, lib, "g_dbus_message_get_serial") | |
| 5607 | + | core.PuregoSafeRegister(&xDBusMessageGetSignature, lib, "g_dbus_message_get_signature") | |
| 5608 | + | core.PuregoSafeRegister(&xDBusMessageGetUnixFdList, lib, "g_dbus_message_get_unix_fd_list") | |
| 5609 | + | core.PuregoSafeRegister(&xDBusMessageLock, lib, "g_dbus_message_lock") | |
| 5610 | + | core.PuregoSafeRegister(&xDBusMessageNewMethodError, lib, "g_dbus_message_new_method_error") | |
| 5611 | + | core.PuregoSafeRegister(&xDBusMessageNewMethodErrorLiteral, lib, "g_dbus_message_new_method_error_literal") | |
| 5612 | + | core.PuregoSafeRegister(&xDBusMessageNewMethodErrorValist, lib, "g_dbus_message_new_method_error_valist") | |
| 5613 | + | core.PuregoSafeRegister(&xDBusMessageNewMethodReply, lib, "g_dbus_message_new_method_reply") | |
| 5614 | + | core.PuregoSafeRegister(&xDBusMessagePrint, lib, "g_dbus_message_print") | |
| 5615 | + | core.PuregoSafeRegister(&xDBusMessageSetBody, lib, "g_dbus_message_set_body") | |
| 5616 | + | core.PuregoSafeRegister(&xDBusMessageSetByteOrder, lib, "g_dbus_message_set_byte_order") | |
| 5617 | + | core.PuregoSafeRegister(&xDBusMessageSetDestination, lib, "g_dbus_message_set_destination") | |
| 5618 | + | core.PuregoSafeRegister(&xDBusMessageSetErrorName, lib, "g_dbus_message_set_error_name") | |
| 5619 | + | core.PuregoSafeRegister(&xDBusMessageSetFlags, lib, "g_dbus_message_set_flags") | |
| 5620 | + | core.PuregoSafeRegister(&xDBusMessageSetHeader, lib, "g_dbus_message_set_header") | |
| 5621 | + | core.PuregoSafeRegister(&xDBusMessageSetInterface, lib, "g_dbus_message_set_interface") | |
| 5622 | + | core.PuregoSafeRegister(&xDBusMessageSetMember, lib, "g_dbus_message_set_member") | |
| 5623 | + | core.PuregoSafeRegister(&xDBusMessageSetMessageType, lib, "g_dbus_message_set_message_type") | |
| 5624 | + | core.PuregoSafeRegister(&xDBusMessageSetNumUnixFds, lib, "g_dbus_message_set_num_unix_fds") | |
| 5625 | + | core.PuregoSafeRegister(&xDBusMessageSetPath, lib, "g_dbus_message_set_path") | |
| 5626 | + | core.PuregoSafeRegister(&xDBusMessageSetReplySerial, lib, "g_dbus_message_set_reply_serial") | |
| 5627 | + | core.PuregoSafeRegister(&xDBusMessageSetSender, lib, "g_dbus_message_set_sender") | |
| 5628 | + | core.PuregoSafeRegister(&xDBusMessageSetSerial, lib, "g_dbus_message_set_serial") | |
| 5629 | + | core.PuregoSafeRegister(&xDBusMessageSetSignature, lib, "g_dbus_message_set_signature") | |
| 5630 | + | core.PuregoSafeRegister(&xDBusMessageSetUnixFdList, lib, "g_dbus_message_set_unix_fd_list") | |
| 5631 | + | core.PuregoSafeRegister(&xDBusMessageToBlob, lib, "g_dbus_message_to_blob") | |
| 5632 | + | core.PuregoSafeRegister(&xDBusMessageToGerror, lib, "g_dbus_message_to_gerror") | |
| 5633 | + | ||
| 5634 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetConnection, lib, "g_dbus_method_invocation_get_connection") | |
| 5635 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetInterfaceName, lib, "g_dbus_method_invocation_get_interface_name") | |
| 5636 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetMessage, lib, "g_dbus_method_invocation_get_message") | |
| 5637 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetMethodInfo, lib, "g_dbus_method_invocation_get_method_info") | |
| 5638 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetMethodName, lib, "g_dbus_method_invocation_get_method_name") | |
| 5639 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetObjectPath, lib, "g_dbus_method_invocation_get_object_path") | |
| 5640 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetParameters, lib, "g_dbus_method_invocation_get_parameters") | |
| 5641 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetPropertyInfo, lib, "g_dbus_method_invocation_get_property_info") | |
| 5642 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetSender, lib, "g_dbus_method_invocation_get_sender") | |
| 5643 | + | core.PuregoSafeRegister(&xDBusMethodInvocationGetUserData, lib, "g_dbus_method_invocation_get_user_data") | |
| 5644 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnDbusError, lib, "g_dbus_method_invocation_return_dbus_error") | |
| 5645 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnError, lib, "g_dbus_method_invocation_return_error") | |
| 5646 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnErrorLiteral, lib, "g_dbus_method_invocation_return_error_literal") | |
| 5647 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnErrorValist, lib, "g_dbus_method_invocation_return_error_valist") | |
| 5648 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnGerror, lib, "g_dbus_method_invocation_return_gerror") | |
| 5649 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnValue, lib, "g_dbus_method_invocation_return_value") | |
| 5650 | + | core.PuregoSafeRegister(&xDBusMethodInvocationReturnValueWithUnixFdList, lib, "g_dbus_method_invocation_return_value_with_unix_fd_list") | |
| 5651 | + | core.PuregoSafeRegister(&xDBusMethodInvocationTakeError, lib, "g_dbus_method_invocation_take_error") | |
| 5652 | + | ||
| 5653 | + | core.PuregoSafeRegister(&xNewSyncDBusServer, lib, "g_dbus_server_new_sync") | |
| 5654 | + | ||
| 5655 | + | core.PuregoSafeRegister(&xDBusServerGetClientAddress, lib, "g_dbus_server_get_client_address") | |
| 5656 | + | core.PuregoSafeRegister(&xDBusServerGetFlags, lib, "g_dbus_server_get_flags") | |
| 5657 | + | core.PuregoSafeRegister(&xDBusServerGetGuid, lib, "g_dbus_server_get_guid") | |
| 5658 | + | core.PuregoSafeRegister(&xDBusServerIsActive, lib, "g_dbus_server_is_active") | |
| 5659 | + | core.PuregoSafeRegister(&xDBusServerStart, lib, "g_dbus_server_start") | |
| 5660 | + | core.PuregoSafeRegister(&xDBusServerStop, lib, "g_dbus_server_stop") | |
| 5661 | + | ||
| 5662 | + | core.PuregoSafeRegister(&xNewMenu, lib, "g_menu_new") | |
| 5663 | + | ||
| 5664 | + | core.PuregoSafeRegister(&xMenuAppend, lib, "g_menu_append") | |
| 5665 | + | core.PuregoSafeRegister(&xMenuAppendItem, lib, "g_menu_append_item") | |
| 5666 | + | core.PuregoSafeRegister(&xMenuAppendSection, lib, "g_menu_append_section") | |
| 5667 | + | core.PuregoSafeRegister(&xMenuAppendSubmenu, lib, "g_menu_append_submenu") | |
| 5668 | + | core.PuregoSafeRegister(&xMenuFreeze, lib, "g_menu_freeze") | |
| 5669 | + | core.PuregoSafeRegister(&xMenuInsert, lib, "g_menu_insert") | |
| 5670 | + | core.PuregoSafeRegister(&xMenuInsertItem, lib, "g_menu_insert_item") | |
| 5671 | + | core.PuregoSafeRegister(&xMenuInsertSection, lib, "g_menu_insert_section") | |
| 5672 | + | core.PuregoSafeRegister(&xMenuInsertSubmenu, lib, "g_menu_insert_submenu") | |
| 5673 | + | core.PuregoSafeRegister(&xMenuPrepend, lib, "g_menu_prepend") | |
| 5674 | + | core.PuregoSafeRegister(&xMenuPrependItem, lib, "g_menu_prepend_item") | |
| 5675 | + | core.PuregoSafeRegister(&xMenuPrependSection, lib, "g_menu_prepend_section") | |
| 5676 | + | core.PuregoSafeRegister(&xMenuPrependSubmenu, lib, "g_menu_prepend_submenu") | |
| 5677 | + | core.PuregoSafeRegister(&xMenuRemove, lib, "g_menu_remove") | |
| 5678 | + | core.PuregoSafeRegister(&xMenuRemoveAll, lib, "g_menu_remove_all") | |
| 5679 | + | ||
| 5680 | + | core.PuregoSafeRegister(&xNewMenuItem, lib, "g_menu_item_new") | |
| 5681 | + | core.PuregoSafeRegister(&xNewFromModelMenuItem, lib, "g_menu_item_new_from_model") | |
| 5682 | + | core.PuregoSafeRegister(&xNewSectionMenuItem, lib, "g_menu_item_new_section") | |
| 5683 | + | core.PuregoSafeRegister(&xNewSubmenuMenuItem, lib, "g_menu_item_new_submenu") | |
| 5684 | + | ||
| 5685 | + | core.PuregoSafeRegister(&xMenuItemGetAttribute, lib, "g_menu_item_get_attribute") | |
| 5686 | + | core.PuregoSafeRegister(&xMenuItemGetAttributeValue, lib, "g_menu_item_get_attribute_value") | |
| 5687 | + | core.PuregoSafeRegister(&xMenuItemGetLink, lib, "g_menu_item_get_link") | |
| 5688 | + | core.PuregoSafeRegister(&xMenuItemSetActionAndTarget, lib, "g_menu_item_set_action_and_target") | |
| 5689 | + | core.PuregoSafeRegister(&xMenuItemSetActionAndTargetValue, lib, "g_menu_item_set_action_and_target_value") | |
| 5690 | + | core.PuregoSafeRegister(&xMenuItemSetAttribute, lib, "g_menu_item_set_attribute") | |
| 5691 | + | core.PuregoSafeRegister(&xMenuItemSetAttributeValue, lib, "g_menu_item_set_attribute_value") | |
| 5692 | + | core.PuregoSafeRegister(&xMenuItemSetDetailedAction, lib, "g_menu_item_set_detailed_action") | |
| 5693 | + | core.PuregoSafeRegister(&xMenuItemSetIcon, lib, "g_menu_item_set_icon") | |
| 5694 | + | core.PuregoSafeRegister(&xMenuItemSetLabel, lib, "g_menu_item_set_label") | |
| 5695 | + | core.PuregoSafeRegister(&xMenuItemSetLink, lib, "g_menu_item_set_link") | |
| 5696 | + | core.PuregoSafeRegister(&xMenuItemSetSection, lib, "g_menu_item_set_section") | |
| 5697 | + | core.PuregoSafeRegister(&xMenuItemSetSubmenu, lib, "g_menu_item_set_submenu") | |
| 5698 | + | ||
| 5699 | + | core.PuregoSafeRegister(&xNewNotification, lib, "g_notification_new") | |
| 5700 | + | ||
| 5701 | + | core.PuregoSafeRegister(&xNotificationAddButton, lib, "g_notification_add_button") | |
| 5702 | + | core.PuregoSafeRegister(&xNotificationAddButtonWithTarget, lib, "g_notification_add_button_with_target") | |
| 5703 | + | core.PuregoSafeRegister(&xNotificationAddButtonWithTargetValue, lib, "g_notification_add_button_with_target_value") | |
| 5704 | + | core.PuregoSafeRegister(&xNotificationSetBody, lib, "g_notification_set_body") | |
| 5705 | + | core.PuregoSafeRegister(&xNotificationSetCategory, lib, "g_notification_set_category") | |
| 5706 | + | core.PuregoSafeRegister(&xNotificationSetDefaultAction, lib, "g_notification_set_default_action") | |
| 5707 | + | core.PuregoSafeRegister(&xNotificationSetDefaultActionAndTarget, lib, "g_notification_set_default_action_and_target") | |
| 5708 | + | core.PuregoSafeRegister(&xNotificationSetDefaultActionAndTargetValue, lib, "g_notification_set_default_action_and_target_value") | |
| 5709 | + | core.PuregoSafeRegister(&xNotificationSetIcon, lib, "g_notification_set_icon") | |
| 5710 | + | core.PuregoSafeRegister(&xNotificationSetPriority, lib, "g_notification_set_priority") | |
| 5711 | + | core.PuregoSafeRegister(&xNotificationSetTitle, lib, "g_notification_set_title") | |
| 5712 | + | core.PuregoSafeRegister(&xNotificationSetUrgent, lib, "g_notification_set_urgent") | |
| 5713 | + | ||
| 5714 | + | core.PuregoSafeRegister(&xNewPropertyAction, lib, "g_property_action_new") | |
| 5715 | + | ||
| 5716 | + | core.PuregoSafeRegister(&xNewSimpleAction, lib, "g_simple_action_new") | |
| 5717 | + | core.PuregoSafeRegister(&xNewStatefulSimpleAction, lib, "g_simple_action_new_stateful") | |
| 5718 | + | ||
| 5719 | + | core.PuregoSafeRegister(&xSimpleActionSetEnabled, lib, "g_simple_action_set_enabled") | |
| 5720 | + | core.PuregoSafeRegister(&xSimpleActionSetState, lib, "g_simple_action_set_state") | |
| 5721 | + | core.PuregoSafeRegister(&xSimpleActionSetStateHint, lib, "g_simple_action_set_state_hint") | |
| 5722 | + | ||
| 5723 | + | core.PuregoSafeRegister(&xNewSimpleIOStream, lib, "g_simple_io_stream_new") | |
| 5724 | + | ||
| 5725 | + | core.PuregoSafeRegister(&xNewSimplePermission, lib, "g_simple_permission_new") | |
| 5726 | + | ||
| 5727 | + | core.PuregoSafeRegister(&xNewSubprocess, lib, "g_subprocess_new") | |
| 5728 | + | core.PuregoSafeRegister(&xNewvSubprocess, lib, "g_subprocess_newv") | |
| 5729 | + | ||
| 5730 | + | core.PuregoSafeRegister(&xSubprocessCommunicate, lib, "g_subprocess_communicate") | |
| 5731 | + | core.PuregoSafeRegister(&xSubprocessCommunicateAsync, lib, "g_subprocess_communicate_async") | |
| 5732 | + | core.PuregoSafeRegister(&xSubprocessCommunicateFinish, lib, "g_subprocess_communicate_finish") | |
| 5733 | + | core.PuregoSafeRegister(&xSubprocessCommunicateUtf8, lib, "g_subprocess_communicate_utf8") | |
| 5734 | + | core.PuregoSafeRegister(&xSubprocessCommunicateUtf8Async, lib, "g_subprocess_communicate_utf8_async") | |
| 5735 | + | core.PuregoSafeRegister(&xSubprocessCommunicateUtf8Finish, lib, "g_subprocess_communicate_utf8_finish") | |
| 5736 | + | core.PuregoSafeRegister(&xSubprocessForceExit, lib, "g_subprocess_force_exit") | |
| 5737 | + | core.PuregoSafeRegister(&xSubprocessGetExitStatus, lib, "g_subprocess_get_exit_status") | |
| 5738 | + | core.PuregoSafeRegister(&xSubprocessGetIdentifier, lib, "g_subprocess_get_identifier") | |
| 5739 | + | core.PuregoSafeRegister(&xSubprocessGetIfExited, lib, "g_subprocess_get_if_exited") | |
| 5740 | + | core.PuregoSafeRegister(&xSubprocessGetIfSignaled, lib, "g_subprocess_get_if_signaled") | |
| 5741 | + | core.PuregoSafeRegister(&xSubprocessGetStatus, lib, "g_subprocess_get_status") | |
| 5742 | + | core.PuregoSafeRegister(&xSubprocessGetStderrPipe, lib, "g_subprocess_get_stderr_pipe") | |
| 5743 | + | core.PuregoSafeRegister(&xSubprocessGetStdinPipe, lib, "g_subprocess_get_stdin_pipe") | |
| 5744 | + | core.PuregoSafeRegister(&xSubprocessGetStdoutPipe, lib, "g_subprocess_get_stdout_pipe") | |
| 5745 | + | core.PuregoSafeRegister(&xSubprocessGetSuccessful, lib, "g_subprocess_get_successful") | |
| 5746 | + | core.PuregoSafeRegister(&xSubprocessGetTermSig, lib, "g_subprocess_get_term_sig") | |
| 5747 | + | core.PuregoSafeRegister(&xSubprocessSendSignal, lib, "g_subprocess_send_signal") | |
| 5748 | + | core.PuregoSafeRegister(&xSubprocessWait, lib, "g_subprocess_wait") | |
| 5749 | + | core.PuregoSafeRegister(&xSubprocessWaitAsync, lib, "g_subprocess_wait_async") | |
| 5750 | + | core.PuregoSafeRegister(&xSubprocessWaitCheck, lib, "g_subprocess_wait_check") | |
| 5751 | + | core.PuregoSafeRegister(&xSubprocessWaitCheckAsync, lib, "g_subprocess_wait_check_async") | |
| 5752 | + | core.PuregoSafeRegister(&xSubprocessWaitCheckFinish, lib, "g_subprocess_wait_check_finish") | |
| 5753 | + | core.PuregoSafeRegister(&xSubprocessWaitFinish, lib, "g_subprocess_wait_finish") | |
| 5754 | + | ||
| 5755 | + | core.PuregoSafeRegister(&xNewSubprocessLauncher, lib, "g_subprocess_launcher_new") | |
| 5756 | + | ||
| 5757 | + | core.PuregoSafeRegister(&xSubprocessLauncherClose, lib, "g_subprocess_launcher_close") | |
| 5758 | + | core.PuregoSafeRegister(&xSubprocessLauncherGetenv, lib, "g_subprocess_launcher_getenv") | |
| 5759 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetChildSetup, lib, "g_subprocess_launcher_set_child_setup") | |
| 5760 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetCwd, lib, "g_subprocess_launcher_set_cwd") | |
| 5761 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetEnviron, lib, "g_subprocess_launcher_set_environ") | |
| 5762 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetFlags, lib, "g_subprocess_launcher_set_flags") | |
| 5763 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetStderrFilePath, lib, "g_subprocess_launcher_set_stderr_file_path") | |
| 5764 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetStdinFilePath, lib, "g_subprocess_launcher_set_stdin_file_path") | |
| 5765 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetStdoutFilePath, lib, "g_subprocess_launcher_set_stdout_file_path") | |
| 5766 | + | core.PuregoSafeRegister(&xSubprocessLauncherSetenv, lib, "g_subprocess_launcher_setenv") | |
| 5767 | + | core.PuregoSafeRegister(&xSubprocessLauncherSpawn, lib, "g_subprocess_launcher_spawn") | |
| 5768 | + | core.PuregoSafeRegister(&xSubprocessLauncherSpawnv, lib, "g_subprocess_launcher_spawnv") | |
| 5769 | + | core.PuregoSafeRegister(&xSubprocessLauncherTakeFd, lib, "g_subprocess_launcher_take_fd") | |
| 5770 | + | core.PuregoSafeRegister(&xSubprocessLauncherTakeStderrFd, lib, "g_subprocess_launcher_take_stderr_fd") | |
| 5771 | + | core.PuregoSafeRegister(&xSubprocessLauncherTakeStdinFd, lib, "g_subprocess_launcher_take_stdin_fd") | |
| 5772 | + | core.PuregoSafeRegister(&xSubprocessLauncherTakeStdoutFd, lib, "g_subprocess_launcher_take_stdout_fd") | |
| 5773 | + | core.PuregoSafeRegister(&xSubprocessLauncherUnsetenv, lib, "g_subprocess_launcher_unsetenv") | |
| 5774 | + | ||
| 5775 | + | core.PuregoSafeRegister(&xNewTestDBus, lib, "g_test_dbus_new") | |
| 5776 | + | ||
| 5777 | + | core.PuregoSafeRegister(&xTestDBusAddServiceDir, lib, "g_test_dbus_add_service_dir") | |
| 5778 | + | core.PuregoSafeRegister(&xTestDBusDown, lib, "g_test_dbus_down") | |
| 5779 | + | core.PuregoSafeRegister(&xTestDBusGetBusAddress, lib, "g_test_dbus_get_bus_address") | |
| 5780 | + | core.PuregoSafeRegister(&xTestDBusGetFlags, lib, "g_test_dbus_get_flags") | |
| 5781 | + | core.PuregoSafeRegister(&xTestDBusStop, lib, "g_test_dbus_stop") | |
| 5782 | + | core.PuregoSafeRegister(&xTestDBusUp, lib, "g_test_dbus_up") | |
| 5783 | + | ||
| 5784 | + | } | |