summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--draw.go76
-rw-r--r--showStdout.go4
-rw-r--r--structs.go4
-rw-r--r--view.go72
-rw-r--r--widget.go4
5 files changed, 82 insertions, 78 deletions
diff --git a/draw.go b/draw.go
index 6e7304c..0e485d6 100644
--- a/draw.go
+++ b/draw.go
@@ -1,5 +1,14 @@
package main
+import (
+ "errors"
+ "fmt"
+ "strconv"
+
+ "github.com/awesome-gocui/gocui"
+ log "go.wit.com/log"
+)
+
var toggle bool = true
func (w *guiWidget) DrawAt(offsetW, offsetH int) {
@@ -36,3 +45,70 @@ func (w *guiWidget) drawTree(draw bool) {
child.drawTree(draw)
}
}
+
+// display's the text of the widget in gocui
+// create or recreate the gocui widget visible
+// will create a new gocui view if there isn't one or if it has been moved
+// deletes the old view if it exists and recreates it
+func (w *guiWidget) recreateView() {
+ var err error
+ log.Log(INFO, "recreateView() START", w.WidgetType, w.String())
+ if me.baseGui == nil {
+ log.Log(ERROR, "recreateView() ERROR: me.baseGui == nil", w)
+ return
+ }
+
+ if w.cuiName == "" {
+ log.Log(ERROR, "recreateView() w.cuiName was not set for widget", w)
+ w.cuiName = strconv.Itoa(w.node.WidgetId) + " TK"
+ }
+ log.Log(INFO, "recreateView() labelN =", w.labelN)
+
+ // this deletes the button from gocui
+ me.baseGui.DeleteView(w.cuiName)
+ w.v = nil
+
+ w.textResize()
+ a := w.gocuiSize.w0
+ b := w.gocuiSize.h0
+ c := w.gocuiSize.w1
+ d := w.gocuiSize.h1
+
+ w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0)
+ if err == nil {
+ w.showWidgetPlacement("recreateView()")
+ log.Log(ERROR, "recreateView() internal plugin error err = nil")
+ return
+ }
+ if !errors.Is(err, gocui.ErrUnknownView) {
+ w.showWidgetPlacement("recreateView()")
+ log.Log(ERROR, "recreateView() internal plugin error error.IS()", err)
+ return
+ }
+
+ // this sets up the keybinding for the name of the window
+ // does this really need to be done? I think we probably already
+ // know everything about where all the widgets are so we could bypass
+ // the gocui package and just handle all the mouse events internally here (?)
+ // for now, the w.v.Name is a string "1", "2", "3", etc from the widgetId
+
+ // set the binding for this gocui view now that it has been created
+ // gocui handles overlaps of views so it will run on the view that is clicked on
+ me.baseGui.SetKeybinding(w.v.Name(), gocui.MouseLeft, gocui.ModNone, click)
+
+ // this actually sends the text to display to gocui
+ w.v.Wrap = true
+ w.v.Frame = w.frame
+ w.v.Clear()
+ fmt.Fprint(w.v, w.labelN)
+
+ // if you don't do this here, it will be black & white only
+ if w.color != nil {
+ w.v.FrameColor = w.color.frame
+ w.v.FgColor = w.color.fg
+ w.v.BgColor = w.color.bg
+ w.v.SelFgColor = w.color.selFg
+ w.v.SelBgColor = w.color.selBg
+ }
+ log.Log(INFO, "recreateView() END")
+}
diff --git a/showStdout.go b/showStdout.go
index 13dd61a..22e6d8e 100644
--- a/showStdout.go
+++ b/showStdout.go
@@ -19,8 +19,8 @@ func moveMsg(g *gocui.Gui) {
movingMsg = true
}
g.SetView("msg", mx-xOffset, my-yOffset, mx-xOffset+outputW, my-yOffset+outputH+me.FramePadH, 0)
- me.startOutputW = mx-xOffset
- me.startOutputH = my-yOffset
+ me.startOutputW = mx - xOffset
+ me.startOutputH = my - yOffset
g.SetViewOnBottom("msg")
}
diff --git a/structs.go b/structs.go
index 365a43c..5dc3fea 100644
--- a/structs.go
+++ b/structs.go
@@ -42,8 +42,8 @@ type config struct {
ctrlDown *tree.Node // shown if you click the mouse when the ctrl key is pressed
currentWindow *guiWidget // this is the current tab or window to show
logStdout *tree.Node // where to show STDOUT
- startOutputW int
- startOutputH int
+ startOutputW int
+ startOutputH int
helpLabel *gocui.View
// this is a floating widget that we show whenever the user clicks on a
diff --git a/view.go b/view.go
index 9b0270a..afbc1f7 100644
--- a/view.go
+++ b/view.go
@@ -2,13 +2,8 @@ package main
import (
"bufio"
- "errors"
- "fmt"
- "strconv"
"strings"
- "github.com/awesome-gocui/gocui"
-
"go.wit.com/log"
"go.wit.com/widget"
)
@@ -48,73 +43,6 @@ func (w *guiWidget) textResize() bool {
return changed
}
-// display's the text of the widget in gocui
-// create or recreate the gocui widget visible
-// will create a new gocui view if there isn't one or if it has been moved
-// deletes the old view if it exists and recreates it
-func (w *guiWidget) recreateView() {
- var err error
- log.Log(INFO, "recreateView() START", w.WidgetType, w.String())
- if me.baseGui == nil {
- log.Log(ERROR, "recreateView() ERROR: me.baseGui == nil", w)
- return
- }
-
- if w.cuiName == "" {
- log.Log(ERROR, "recreateView() w.cuiName was not set for widget", w)
- w.cuiName = strconv.Itoa(w.node.WidgetId) + " TK"
- }
- log.Log(INFO, "recreateView() labelN =", w.labelN)
-
- // this deletes the button from gocui
- me.baseGui.DeleteView(w.cuiName)
- w.v = nil
-
- w.textResize()
- a := w.gocuiSize.w0
- b := w.gocuiSize.h0
- c := w.gocuiSize.w1
- d := w.gocuiSize.h1
-
- w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0)
- if err == nil {
- w.showWidgetPlacement("recreateView()")
- log.Log(ERROR, "recreateView() internal plugin error err = nil")
- return
- }
- if !errors.Is(err, gocui.ErrUnknownView) {
- w.showWidgetPlacement("recreateView()")
- log.Log(ERROR, "recreateView() internal plugin error error.IS()", err)
- return
- }
-
- // this sets up the keybinding for the name of the window
- // does this really need to be done? I think we probably already
- // know everything about where all the widgets are so we could bypass
- // the gocui package and just handle all the mouse events internally here (?)
- // for now, the w.v.Name is a string "1", "2", "3", etc from the widgetId
-
- // set the binding for this gocui view now that it has been created
- // gocui handles overlaps of views so it will run on the view that is clicked on
- me.baseGui.SetKeybinding(w.v.Name(), gocui.MouseLeft, gocui.ModNone, click)
-
- // this actually sends the text to display to gocui
- w.v.Wrap = true
- w.v.Frame = w.frame
- w.v.Clear()
- fmt.Fprint(w.v, w.labelN)
-
- // if you don't do this here, it will be black & white only
- if w.color != nil {
- w.v.FrameColor = w.color.frame
- w.v.FgColor = w.color.fg
- w.v.BgColor = w.color.bg
- w.v.SelFgColor = w.color.selFg
- w.v.SelBgColor = w.color.selBg
- }
- log.Log(INFO, "recreateView() END")
-}
-
func (w *guiWidget) hideWidgets() {
if w == nil {
return
diff --git a/widget.go b/widget.go
index 0f54750..923032b 100644
--- a/widget.go
+++ b/widget.go
@@ -103,7 +103,7 @@ func (tk *guiWidget) Visible() bool {
func (w *guiWidget) Show() {
// always should the dropdown widget
- if w== me.dropdownV {
+ if w == me.dropdownV {
me.dropdownV.recreateView()
return
}
@@ -130,7 +130,7 @@ func (w *guiWidget) Show() {
// then ignore it
log.Log(NOW, "Show() widget =", w.cuiName, w.String())
log.Log(NOW, "Show() w.IsCurrent() returned", w.IsCurrent())
- if ! w.IsCurrent() {
+ if !w.IsCurrent() {
log.Log(NOW, "Show() NOT drawing", w.cuiName, w.String())
return
}