Files
esdi/tui/internal/views/outputWin.go
T

39 lines
723 B
Go

package views
import (
"esdi/tui/internal/dom"
"esdi/tui/internal/events"
"esdi/tui/internal/ui"
"fmt"
"github.com/rivo/tview"
)
func bindOutputWindowEvents(
bus *events.Bus,
output *tview.TextView,
) {
bus.On(ui.PrintLogEv{}, func(e any) {
le, _ := e.(ui.PrintLogEv)
fmt.Fprintf(output, le.Log)
})
}
func BuildOutputWindow(bus *events.Bus, doc *dom.DOM) error {
var outputWin *tview.TextView
outputWin = tview.NewTextView().SetChangedFunc(func() {
bus.Emit(ui.RedrawEv{})
outputWin.ScrollToEnd()
})
outputWin.SetBorder(true).SetTitle("DebugWindow")
_, err := doc.NewUINode("output-window", nil, outputWin)
if err != nil {
return err
}
bindOutputWindowEvents(bus, outputWin)
return nil
}