updates for new GUI codebase

This commit is contained in:
Jeff Carr 2025-09-09 05:28:22 -05:00
parent c717021028
commit 4fee86a80f
3 changed files with 34 additions and 26 deletions

18
argv.go
View File

@ -1,12 +1,5 @@
package main
import (
"os"
"go.wit.com/dev/alexflint/arg"
"go.wit.com/gui"
)
/*
this parses the command line arguements
this enables command line options from other packages like 'gui' and 'log'
@ -24,17 +17,6 @@ This basicwindow example demonstrates multiple windows
`
}
func init() {
gui.InitArg()
pp := arg.MustParse(&argv)
// for very new users or users unfamilar with the command line, this may help them
if argv.Demo == "version" || argv.Demo == "help" || argv.Demo == "?" {
pp.WriteHelp(os.Stdout)
os.Exit(0)
}
}
func (args) Version() string {
return "basicwindow " + VERSION
}

25
main.go
View File

@ -1,17 +1,18 @@
package main
import (
"os"
"go.wit.com/dev/alexflint/arg"
"go.wit.com/gui"
"go.wit.com/lib/gadgets"
"go.wit.com/lib/gui/prep"
"go.wit.com/log"
)
// sent via -ldflags
var VERSION string
// This is the beginning of the binary tree of widgets
var myGui *gui.Node
// this is the primary window. If you close it, the program will exit
var mainWindow *gui.Node
@ -25,20 +26,28 @@ var computers *gui.Node
var colors *gui.Node
func main() {
myGui = gui.New()
myGui.Default()
myGui.LoadToolkit("gocui")
me := new(mainType)
me.myGui = prep.Gui() // prepares the GUI package for go-args
me.pp = arg.MustParse(&argv)
// for very new users or users unfamilar with the command line, this may help them
if argv.Demo == "version" || argv.Demo == "help" || argv.Demo == "?" {
me.pp.WriteHelp(os.Stdout)
os.Exit(0)
}
me.myGui.Start() // loads the GUI toolkit (GO Plugins)
helloworld()
basicWindow = makebasicWindow()
// go will sit here until the window exits
// use this or make a loop to do something
gui.Watchdog()
}
// This initializes the first window and some widgets
func helloworld() {
mainWindow = myGui.NewWindow("primary helloworld window").SetProgName("BASEWIN1")
mainWindow = gui.RawWindow("primary helloworld window").SetProgName("BASEWIN1")
box := mainWindow.NewBox("vbox", false)
group := box.NewGroup("choices")

17
structs.go Normal file
View File

@ -0,0 +1,17 @@
// Copyright 2017-2025 WIT.COM Inc. All rights reserved.
// Use of this source code is governed by the GPL 3.0
package main
import (
"go.wit.com/dev/alexflint/arg"
"go.wit.com/lib/gui/prep"
)
var me *mainType
// this app's variables
type mainType struct {
pp *arg.Parser // for parsing the command line args. Yay to alexf lint!
myGui *prep.GuiPrep // the gui toolkit handle
}