diff options
Diffstat (limited to 'toolkit')
| -rw-r--r-- | toolkit/gocui/Makefile | 4 | ||||
| -rw-r--r-- | toolkit/gocui/button.go | 48 | ||||
| -rwxr-xr-x | toolkit/gocui/gocui | bin | 3409595 -> 0 bytes | |||
| -rw-r--r-- | toolkit/gocui/greeter.go | 23 | ||||
| -rw-r--r-- | toolkit/gocui/widget.go | 26 |
5 files changed, 93 insertions, 8 deletions
diff --git a/toolkit/gocui/Makefile b/toolkit/gocui/Makefile index 42798cc..27f23ed 100644 --- a/toolkit/gocui/Makefile +++ b/toolkit/gocui/Makefile @@ -1,8 +1,8 @@ all: plugin - ldd ../gocli.so + ldd ../gocui.so build: GO111MODULE="off" go build plugin: - GO111MODULE="off" go build -buildmode=plugin -o ../gocli.so + GO111MODULE="off" go build -buildmode=plugin -o ../gocui.so diff --git a/toolkit/gocui/button.go b/toolkit/gocui/button.go new file mode 100644 index 0000000..8fb6e05 --- /dev/null +++ b/toolkit/gocui/button.go @@ -0,0 +1,48 @@ +package main + +import ( + "errors" + "fmt" + "log" + "strings" + + "github.com/awesome-gocui/gocui" +) + +func (w *Widget) AddButton() { +// func (g greeting) AddButton() { + log.Println("gui.gocui.AddButton()", w.Name) + addButton2(w.Name, w.Event) +} + +func addButton2(name string, e func(*Widget) *Widget) { + addButton(name) +} + +func addButton(name string) error { + t := len(name) + v, err := baseGui.SetView(name, currentX, currentY, currentX+t+3, currentY+2, 0) + if err == nil { + return err + } + if !errors.Is(err, gocui.ErrUnknownView) { + return err + } + + v.Wrap = true + fmt.Fprintln(v, " " + name) + fmt.Fprintln(v, strings.Repeat("foo\n", 2)) + + if _, err := baseGui.SetCurrentView(name); err != nil { + return err + } + + views = append(views, name) + curView = len(views) - 1 + idxView += 1 + currentY += 3 + if (groupSize < len(views)) { + groupSize = len(views) + } + return nil +} diff --git a/toolkit/gocui/gocui b/toolkit/gocui/gocui Binary files differdeleted file mode 100755 index 094619c..0000000 --- a/toolkit/gocui/gocui +++ /dev/null diff --git a/toolkit/gocui/greeter.go b/toolkit/gocui/greeter.go index de6ee68..e3094e5 100644 --- a/toolkit/gocui/greeter.go +++ b/toolkit/gocui/greeter.go @@ -1,28 +1,37 @@ package main import ( - "errors" - "fmt" "log" - "strings" - "github.com/awesome-gocui/gocui" + // "errors" + // "fmt" + // "strings" + // "github.com/awesome-gocui/gocui" ) type greeting string +// stores the raw toolkit internals +type toolkit struct { + id string + Name string + + OnChanged func(toolkit) +} + // this is exported var Greeter greeting +var Toolkit toolkit // func main() { func (g greeting) Greet() { - fmt.Println("Hello Universe") + log.Println("Hello Universe") Init() // ToolkitMain() } func (g greeting) JcarrButton() { - fmt.Println("Hello GreetButton meet Universe") + log.Println("Hello GreetButton meet Universe") addButton("Greet foo") addButton("Greet foo 2") } @@ -39,6 +48,7 @@ func (g greeting) AddButton(name string) { addButton(name) } +/* func addButton(name string) error { t := len(name) v, err := baseGui.SetView(name, currentX, currentY, currentX+t+3, currentY+2, 0) @@ -66,3 +76,4 @@ func addButton(name string) error { } return nil } +*/ diff --git a/toolkit/gocui/widget.go b/toolkit/gocui/widget.go new file mode 100644 index 0000000..758ac38 --- /dev/null +++ b/toolkit/gocui/widget.go @@ -0,0 +1,26 @@ +package main + +// passes information between the toolkit library (plugin) + +// All Toolkit interactions should be done via a channel or Queue() + +// This is the only thing that is passed between the toolkit plugin + +// what names should be used? This is not part of [[Graphical Widget]] +// Event() seems like a good name. +// Could a protobuf be used here? (Can functions be passed?) +type Widget struct { + i int + s string + + Name string + Width int + Height int + + Event func(*Widget) *Widget + + // Probably deprecate these + OnChanged func(*Widget) + Custom func(*Widget) + OnExit func(*Widget) +} |
