mirror of
https://github.com/UnnoTed/wireguird
synced 2025-02-05 17:25:30 +00:00
7508f721d1
- Add settings window - Fix libappindicator3 dependency problem - Add support for multiple tunnels - Add tunnel name length check - Add wireguard error messages
82 lines
1.2 KiB
Go
82 lines
1.2 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"path/filepath"
|
|
"strings"
|
|
|
|
"github.com/ungerik/go-dry"
|
|
)
|
|
|
|
func main() {
|
|
list := []string{
|
|
"ApplicationWindow",
|
|
"ScrolledWindow",
|
|
"AboutDialog",
|
|
"CheckButton",
|
|
"ColorButton",
|
|
"MenuButton",
|
|
"HeaderBar",
|
|
"MenuItem",
|
|
"Notebook",
|
|
"TextView",
|
|
"Viewport",
|
|
"ListBox",
|
|
"Spinner",
|
|
"Button",
|
|
"Switch",
|
|
"Window",
|
|
"Entry",
|
|
"Label",
|
|
"Stack",
|
|
"Box",
|
|
}
|
|
|
|
target := ""
|
|
flag.StringVar(&target, "target", "", "-target=./gui")
|
|
flag.Parse()
|
|
|
|
if err := Generate(list, target); err != nil {
|
|
panic(err)
|
|
}
|
|
}
|
|
|
|
func Generate(list []string, target string) error {
|
|
|
|
txt := `package get
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/gotk3/gotk3/gtk"
|
|
)
|
|
|
|
var Builder *gtk.Builder
|
|
`
|
|
for _, el := range list {
|
|
vel := strings.ToLower(el)
|
|
|
|
txt += `
|
|
func ` + el + `(name string) (*gtk.` + el + `, error) {
|
|
obj, err := Builder.GetObject(name)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
` + vel + `1, ok := obj.(*gtk.` + el + `)
|
|
if !ok {
|
|
return nil, errors.New("cant get *gtk.` + el + `: " + name)
|
|
}
|
|
|
|
return ` + vel + `1, nil
|
|
}
|
|
`
|
|
}
|
|
|
|
if err := dry.FileSetString(filepath.Join(target, "./gtk.go"), txt); err != nil {
|
|
return err
|
|
}
|
|
|
|
return nil
|
|
}
|