gocui: preliminary log() output window

Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
Jeff Carr 2023-04-13 07:04:41 -05:00
parent 74bdf03b76
commit 2fec7356ea
2 changed files with 24 additions and 2 deletions

View File

@ -1,7 +1,9 @@
package main
import (
"fmt"
"os"
"strings"
witlog "git.wit.org/wit/gui/log"
)
@ -12,9 +14,24 @@ var logWarn bool = false
var logInfo bool = false
var logVerbose bool = false
var outputS []string
func log(a ...any) {
witlog.Where = "wit/gocui"
witlog.Log(a...)
s := fmt.Sprint(a...)
tmp := strings.Split(s, "\n")
outputS = append(outputS, tmp...)
if (len(outputS) > 50) {
outputS = outputS[10:]
}
if (me.baseGui != nil) {
v, _ := me.baseGui.View("msg")
if (v != nil) {
v.Clear()
fmt.Fprintln(v, strings.Join(outputS, "\n"))
}
}
}
func sleep(a ...any) {

View File

@ -11,12 +11,15 @@ import (
"github.com/awesome-gocui/gocui"
)
var outputW int = 80
var outputH int = 24
func moveMsg(g *gocui.Gui) {
mx, my := g.MousePosition()
if !movingMsg && (mx != initialMouseX || my != initialMouseY) {
movingMsg = true
}
g.SetView("msg", mx-xOffset, my-yOffset, mx-xOffset+20, my-yOffset+7, 0)
g.SetView("msg", mx-xOffset, my-yOffset, mx-xOffset+outputW, my-yOffset+outputH, 0)
}
func showMsg(g *gocui.Gui, v *gocui.View) error {
@ -31,14 +34,16 @@ func showMsg(g *gocui.Gui, v *gocui.View) error {
if l, err = v.Line(cy); err != nil {
l = ""
}
// setOutput(me.rootNode)
maxX, maxY := g.Size()
if v, err := g.SetView("msg", maxX/2-10, maxY/2, maxX/2+10, maxY/2+7, 0); err == nil || errors.Is(err, gocui.ErrUnknownView) {
if v, err := g.SetView("msg", maxX/2, maxY/2, maxX/2+outputW, maxY/2+outputH, 0); err == nil || errors.Is(err, gocui.ErrUnknownView) {
v.Clear()
v.SelBgColor = gocui.ColorCyan
v.SelFgColor = gocui.ColorBlack
l += "foo\n" + "bar\n"
fmt.Fprintln(v, l)
}
g.SetViewOnTop("msg")
return nil
}