gocui: preliminary log() output window
Signed-off-by: Jeff Carr <jcarr@wit.com>
This commit is contained in:
parent
74bdf03b76
commit
2fec7356ea
|
@ -1,7 +1,9 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"os"
|
"os"
|
||||||
|
"strings"
|
||||||
witlog "git.wit.org/wit/gui/log"
|
witlog "git.wit.org/wit/gui/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -12,9 +14,24 @@ var logWarn bool = false
|
||||||
var logInfo bool = false
|
var logInfo bool = false
|
||||||
var logVerbose bool = false
|
var logVerbose bool = false
|
||||||
|
|
||||||
|
var outputS []string
|
||||||
|
|
||||||
func log(a ...any) {
|
func log(a ...any) {
|
||||||
witlog.Where = "wit/gocui"
|
witlog.Where = "wit/gocui"
|
||||||
witlog.Log(a...)
|
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) {
|
func sleep(a ...any) {
|
||||||
|
|
|
@ -11,12 +11,15 @@ import (
|
||||||
"github.com/awesome-gocui/gocui"
|
"github.com/awesome-gocui/gocui"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
var outputW int = 80
|
||||||
|
var outputH int = 24
|
||||||
|
|
||||||
func moveMsg(g *gocui.Gui) {
|
func moveMsg(g *gocui.Gui) {
|
||||||
mx, my := g.MousePosition()
|
mx, my := g.MousePosition()
|
||||||
if !movingMsg && (mx != initialMouseX || my != initialMouseY) {
|
if !movingMsg && (mx != initialMouseX || my != initialMouseY) {
|
||||||
movingMsg = true
|
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 {
|
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 {
|
if l, err = v.Line(cy); err != nil {
|
||||||
l = ""
|
l = ""
|
||||||
}
|
}
|
||||||
|
// setOutput(me.rootNode)
|
||||||
|
|
||||||
maxX, maxY := g.Size()
|
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.Clear()
|
||||||
v.SelBgColor = gocui.ColorCyan
|
v.SelBgColor = gocui.ColorCyan
|
||||||
v.SelFgColor = gocui.ColorBlack
|
v.SelFgColor = gocui.ColorBlack
|
||||||
l += "foo\n" + "bar\n"
|
l += "foo\n" + "bar\n"
|
||||||
fmt.Fprintln(v, l)
|
fmt.Fprintln(v, l)
|
||||||
}
|
}
|
||||||
|
g.SetViewOnTop("msg")
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue