summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--examples/buttons/Makefile5
-rw-r--r--examples/buttons/log.go98
-rw-r--r--examples/buttons/main.go37
3 files changed, 15 insertions, 125 deletions
diff --git a/examples/buttons/Makefile b/examples/buttons/Makefile
index 74b7728..7de8165 100644
--- a/examples/buttons/Makefile
+++ b/examples/buttons/Makefile
@@ -7,7 +7,10 @@
#
run: build
- ./buttons --gui andlabs
+ ./buttons
+
+debug:
+ ./buttons --gui andlabs --gui-debug --log-debug
build-release:
go get -v -u -x .
diff --git a/examples/buttons/log.go b/examples/buttons/log.go
deleted file mode 100644
index f8279af..0000000
--- a/examples/buttons/log.go
+++ /dev/null
@@ -1,98 +0,0 @@
-// This creates a simple hello world window
-package main
-
-import (
- "fmt"
- arg "github.com/alexflint/go-arg"
- "go.wit.com/gui"
- log "go.wit.com/gui/log"
-)
-
-
-var args struct {
- Foo string
- Bar bool
- User string `arg:"env:USER"`
- Demo bool `help:"run a demo"`
- gui.GuiArgs
- log.LogArgs
-}
-
-/*
-var f1 *os.File
-var f2 *os.File
-var err error
-*/
-
-/* from gocron:
-
-// DefaultLogger is used by Cron if none is specified.
-var DefaultLogger Logger = PrintfLogger(log.New(os.Stdout, "cron: ", log.LstdFlags))
-
-// DiscardLogger can be used by callers to discard all log messages.
-var DiscardLogger Logger = PrintfLogger(log.New(ioutil.Discard, "", 0))
-
-// Logger is the interface used in this package for logging, so that any backend
-// can be plugged in. It is a subset of the github.com/go-logr/logr interface.
-type Logger interface {
- // Info logs routine messages about cron's operation.
- Info(msg string, keysAndValues ...interface{})
- // Error logs an error condition.
- Error(err error, msg string, keysAndValues ...interface{})
-}
-
-*/
-
-func init() {
- arg.MustParse(&args)
- fmt.Println(args.Foo, args.Bar, args.User)
-
- if (args.Gui != "") {
- gui.GuiArg.Gui = args.Gui
- }
- log.Log(true, "INIT() args.GuiArg.Gui =", gui.GuiArg.Gui)
-
-/*
- // from: https://github.com/robfig/cron/blob/master/logger.go
- log.Println()
- log.Println("STDOUT is now at /tmp/guilogfile")
- log.Println("STDOUT is now at /tmp/guilogfile")
- log.Println()
- f1, err = os.OpenFile(outfile, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
- if err != nil {
- log.Fatalf("error opening file: %v", err)
- }
- // hmm. is there a trick here or must this be in main()
- // defer f.Close()
-
- log.SetOutput(f1)
- log.Println("This is a test log entry")
-*/
-}
-
-/*
-func captureSTDOUT() {
- f2, _ = os.OpenFile("/tmp/my.log", os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0664)
- multiWriter := io.MultiWriter(os.Stderr, f2)
- rd, wr, err := os.Pipe()
- if err != nil {
- os.Exit(1)
- }
-
- // overwrite os.Stdout
- os.Stderr = wr
-
- go func() {
- scanner := bufio.NewScanner(rd)
- for scanner.Scan() {
- stdoutLine := scanner.Text()
- multiWriter.Write([]byte(stdoutLine + "\n"))
- }
- }()
-
- fmt.Println("foobar")
-
- // hacky sleep to ensure the go routine can write before program exits
- time.Sleep(time.Second)
-}
-*/
diff --git a/examples/buttons/main.go b/examples/buttons/main.go
index e76aaac..87841a7 100644
--- a/examples/buttons/main.go
+++ b/examples/buttons/main.go
@@ -2,20 +2,23 @@
package main
import (
- "fmt"
"log"
"strconv"
"go.wit.com/gui"
+ arg "github.com/alexflint/go-arg"
)
var title string = "Demo Plugin Window"
-var outfile string = "/tmp/guilogfile"
var myGui *gui.Node
var buttonCounter int = 5
var gridW int = 5
var gridH int = 3
+func init() {
+ arg.MustParse()
+}
+
func main() {
// This will turn on all debugging
// gui.SetDebug(true)
@@ -35,35 +38,21 @@ func buttonWindow() {
log.Println("buttonWindow() START")
w = myGui.NewWindow(title).SetText("Nueva Ventana de Botones")
- t = w.NewTab("buttonTab is this thing")
- g = t.NewGroup("buttonGroup")
- g1 := t.NewGroup("buttonGroup 2")
- more = g1.NewGroup("more")
+ t = w.NewTab("buttonTab is this thing").Pad()
+ g = t.NewGroup("buttonGroup").Pad()
+ g1 := t.NewGroup("buttonGroup 2").Pad()
+ more = g1.NewGroup("more").Pad()
g1.NewButton("hello2", func () {
log.Println("world2")
})
- more2 = g1.NewGrid("gridnuts", gridW, gridH)
+ more2 = g1.NewGrid("gridnuts", gridW, gridH).Pad()
more2.NewLabel("more2")
- g.NewButton("this app is useful for plugin debuggin", func () {
- })
- g.NewLabel("STDOUT is set to: " + outfile)
-
g.NewButton("hello", func () {
log.Println("world")
})
- g.NewButton("Load 'gocui'", func () {
- // this set the xterm and mate-terminal window title. maybe works generally?
- fmt.Println("\033]0;" + title + "blah \007")
- myGui.LoadToolkit("gocui")
- })
-
- g.NewButton("Load 'andlabs'", func () {
- myGui.LoadToolkit("andlabs")
- })
-
g.NewButton("NewButton(more)", func () {
name := "foobar " + strconv.Itoa(buttonCounter)
log.Println("NewButton(more) Adding button", name)
@@ -95,10 +84,6 @@ func buttonWindow() {
name := "neat " + strconv.Itoa(buttonCounter)
log.Println("NewGroup() Adding button", name)
buttonCounter += 1
- more.NewGroup(name)
- })
-
- g.NewButton("gui.DebugWindow()", func () {
- gui.DebugWindow()
+ more.NewGroup(name).Pad()
})
}