Working some things out

This commit is contained in:
2025-08-14 14:21:19 -05:00
parent a74cf9fe61
commit acfe8be93d
9 changed files with 193 additions and 104 deletions

View File

@@ -22,8 +22,6 @@ THE SOFTWARE.
package main
import (
"math/rand"
w "git.bullercodeworks.com/brian/tcell-widgets"
"github.com/gdamore/tcell"
)
@@ -33,6 +31,7 @@ type UiScreen struct {
w, h int
widget w.Widget
ll *w.LinearLayout
log *w.Cli
widgets []w.Widget
@@ -44,27 +43,31 @@ func (s *UiScreen) Init(ui *Ui) {
s.ui = ui
s.log = w.NewCli("log", ui.style)
ll := w.NewLinearLayout("test", ui.style)
ll.SetTabbable(true)
ll.SetLogger(s.log.Log)
s.ll = w.NewLinearLayout("top", ui.style)
s.ll.SetLogger(s.log.Log)
hl := w.NewLinearLayout("dat", ui.style)
hl.SetOrientation(w.LinLayH)
hl.SetLogger(s.log.Log)
searcher := w.NewSearcher("test.searcher", ui.style)
searcher.SetLogger(s.log.Log)
searcher.SetTitle("Test Searcher")
const letters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
rStr := func(n int) string {
b := make([]byte, n)
for i := range b {
b[i] = letters[rand.Intn(len(letters))]
}
return string(b)
}
var dat []string
for i := 0; i < 1000; i++ {
dat = append(dat, rStr(15))
dat = append(dat, RandomString(15))
}
searcher.SetData(dat)
ll.Add(searcher)
hl.Add(searcher)
db := w.NewButton("test-bd-1", ui.style)
db.SetLabel("Button 1")
db.SetOnPressed(
hl.Add(db)
db = w.NewButton("test-bd-2", ui.style)
db.SetLabel("Button 2")
hl.Add(db)
s.ll.Add(hl)
btnL := w.NewLinearLayout("test.btnll", ui.style)
btnL.SetTabbable(true)
@@ -80,8 +83,8 @@ func (s *UiScreen) Init(ui *Ui) {
btnOk.SetLabel("Ok")
btnL.Add(btnOk)
btnL.AddFlag(btnOk, w.LFAlignVBottom)
ll.Add(btnL)
ll.AddFlag(btnL, w.LFAlignVBottom)
s.ll.Add(btnL)
s.ll.AddFlag(btnL, w.LFAlignVBottom)
ml := w.NewTopMenuLayout("menu", ui.style)
m := ml.Menu()
@@ -95,7 +98,7 @@ func (s *UiScreen) Init(ui *Ui) {
),
)
ml.SetLogger(s.log.Log)
ml.SetWidget(ll)
ml.SetWidget(s.ll)
ml.SetActive(true)
s.widget = ml
/*
@@ -105,7 +108,7 @@ func (s *UiScreen) Init(ui *Ui) {
dw.SetActive(true)
s.widget = dw
*/
ll.Add(s.log)
s.ll.Add(s.log)
// s.widgets = append(s.widgets, ml)
// s.widgets = append(s.widgets, s.log)
@@ -114,6 +117,7 @@ func (s *UiScreen) Init(ui *Ui) {
func (s *UiScreen) HandleResize(ev *tcell.EventResize) {
s.w, s.h = ev.Size()
s.widget.HandleResize(ev)
lgH := 20
s.log.SetPos(w.Coord{X: 0, Y: s.h - lgH - 1})
s.log.HandleResize(w.Coord{X: s.w, Y: lgH}.ResizeEvent())
@@ -124,13 +128,17 @@ func (s *UiScreen) HandleKey(ev *tcell.EventKey) bool {
// Ctrl+J is the keypad 'Enter'
ev = tcell.NewEventKey(tcell.KeyEnter, 0, 0)
}
if ev.Key() == tcell.KeyF12 {
if s.ll.Contains(s.log) {
s.ll.Delete(s.log)
} else {
s.ll.Add(s.log)
}
}
return s.widget.HandleKey(ev)
}
func (s *UiScreen) HandleTime(ev *tcell.EventTime) {}
func (s *UiScreen) Draw() {
s.widget.Draw(s.ui.tScreen)
// s.log.Draw(s.ui.tScreen)
}
func (s *UiScreen) Log(txt string, args ...any) {}
func (s *UiScreen) Draw() { s.widget.Draw(s.ui.tScreen) }
func (s *UiScreen) Log(txt string, args ...any) {}
func (s *UiScreen) Exit() {}