summaryrefslogtreecommitdiff
path: root/cmds/console-hello-world/main.go
diff options
context:
space:
mode:
authorJeff Carr <[email protected]>2022-11-06 12:59:24 -0600
committerJeff Carr <[email protected]>2022-11-06 12:59:24 -0600
commite55fb6675d692e3f44fa67b02b12661e476bd028 (patch)
treec16084dea9779f5ef244adb3937d33adb17e7bad /cmds/console-hello-world/main.go
parent099efb6b24caf9eaad50d7386636a7ac23552bde (diff)
start trying to make the tookits pluginsv0.4.3
totally minimize helloworld demo try to make a button plugin example debug changes final changes before attempting to use a golang plugin actually running gocui as a plugin add gocli-as-plugin example try to convert the go-cui toolkit into a plugin doc updates make a minimal console gui Signed-off-by: Jeff Carr <[email protected]>
Diffstat (limited to 'cmds/console-hello-world/main.go')
-rw-r--r--cmds/console-hello-world/main.go91
1 files changed, 91 insertions, 0 deletions
diff --git a/cmds/console-hello-world/main.go b/cmds/console-hello-world/main.go
new file mode 100644
index 0000000..dd360d5
--- /dev/null
+++ b/cmds/console-hello-world/main.go
@@ -0,0 +1,91 @@
+// Copyright 2014 The gocui Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "errors"
+ "fmt"
+ "log"
+
+ "github.com/awesome-gocui/gocui"
+)
+
+const delta = 1
+
+var (
+ views = []string{}
+ curView = -1
+ idxView = 0
+ currentX = 5
+ currentY = 2
+ groupSize = 0
+ baseGui *gocui.Gui
+)
+
+var helpLabel *gocui.View
+
+func main() {
+ // setup log to write to a file
+// logInit()
+
+ g, err := gocui.NewGui(gocui.OutputNormal, true)
+ baseGui = g
+ if err != nil {
+ log.Panicln(err)
+ }
+ defer g.Close()
+
+ g.Highlight = true
+ g.SelFgColor = gocui.ColorRed
+ g.SelFrameColor = gocui.ColorRed
+
+ g.SetManagerFunc(layout)
+
+ if err := initKeybindings(g); err != nil {
+ log.Panicln(err)
+ }
+ if err := newView(g); err != nil {
+ log.Panicln(err)
+ }
+
+ addButton("hello")
+ addButton("world")
+ addButton("foo")
+
+ addGroup("blank")
+ addButton("bar")
+ addButton("bar none")
+ addButton("bar going")
+
+ addGroup("te")
+ addButton("world 2")
+ addButton("foo 2")
+
+ if err := g.MainLoop(); err != nil && !errors.Is(err, gocui.ErrQuit) {
+ log.Panicln(err)
+ }
+}
+
+func layout(g *gocui.Gui) error {
+ var err error
+ maxX, _ := g.Size()
+ helpLabel, err = g.SetView("help", maxX-32, 0, maxX-1, 11, 0)
+ if err != nil {
+ if !errors.Is(err, gocui.ErrUnknownView) {
+ return err
+ }
+ fmt.Fprintln(helpLabel, "KEYBINDINGS")
+ fmt.Fprintln(helpLabel, "Enter: Click Button")
+ fmt.Fprintln(helpLabel, "Tab/Space: Switch Buttons")
+ fmt.Fprintln(helpLabel, "")
+ fmt.Fprintln(helpLabel, "h: Help")
+ fmt.Fprintln(helpLabel, "Backspace: Delete Button")
+ fmt.Fprintln(helpLabel, "Arrow keys: Move Button")
+ fmt.Fprintln(helpLabel, "t: Move Button to the top")
+ fmt.Fprintln(helpLabel, "b: Move Button to the button")
+ fmt.Fprintln(helpLabel, "Ctrl-C or Q: Exit")
+ }
+ return nil
+}