From 061bf1b37d88ff05feb1abc5c663080ad9c5c0b5 Mon Sep 17 00:00:00 2001 From: Brian Buller Date: Thu, 14 Aug 2025 14:47:55 -0500 Subject: [PATCH] Searcher size --- example/ui_screen.go | 22 +++++++++++++++++++++- wdgt_searcher.go | 5 +++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/example/ui_screen.go b/example/ui_screen.go index 183590f..d03aea8 100644 --- a/example/ui_screen.go +++ b/example/ui_screen.go @@ -58,14 +58,26 @@ func (s *UiScreen) Init(ui *Ui) { dat = append(dat, RandomString(15)) } searcher.SetData(dat) + searcher.SetSelectFunc(func(idx int, v string) bool { + s.log.Log("Searcher Value Selected: %s", v) + return true + }) + searcher.SetH(10) hl.Add(searcher) db := w.NewButton("test-bd-1", ui.style) db.SetLabel("Button 1") - db.SetOnPressed( + db.SetOnPressed(func() bool { + s.log.Log("Button 1 Pressed") + return true + }) hl.Add(db) db = w.NewButton("test-bd-2", ui.style) db.SetLabel("Button 2") + db.SetOnPressed(func() bool { + s.log.Log("Button 2 Pressed") + return true + }) hl.Add(db) s.ll.Add(hl) @@ -76,11 +88,19 @@ func (s *UiScreen) Init(ui *Ui) { btnCancel := w.NewButton("btn-cancel", ui.style) btnCancel.SetLabel("Cancel") + btnCancel.SetOnPressed(func() bool { + s.log.Log("Cancel Pressed") + return true + }) btnL.Add(btnCancel) btnL.AddFlag(btnCancel, w.LFAlignVBottom) btnOk := w.NewButton("btn-ok", ui.style) btnOk.SetLabel("Ok") + btnOk.SetOnPressed(func() bool { + s.log.Log("Ok Pressed") + return true + }) btnL.Add(btnOk) btnL.AddFlag(btnOk, w.LFAlignVBottom) s.ll.Add(btnL) diff --git a/wdgt_searcher.go b/wdgt_searcher.go index cec7411..5eb691e 100644 --- a/wdgt_searcher.go +++ b/wdgt_searcher.go @@ -175,7 +175,8 @@ func (w *Searcher) Draw(screen tcell.Screen) { } dStyle := w.style.Dim(!w.active) if len(w.title) > 0 { - wh.TitledBorderFilled(w.x, w.y, w.x+w.w, w.y+w.h, w.title, wh.BRD_CSIMPLE, dStyle, screen) + wh.TitledBorderFilled(w.x, w.y, w.x+w.w, w.y+w.h-1, w.title, wh.BRD_CSIMPLE, dStyle, screen) + // w.Log("Searcher<%s> Bounds: %d,%d -> %d,%d", w.Id(), w.x, w.y, w.x+w.w, w.y+w.h) } else { wh.BorderFilled(w.x, w.y, w.x+w.w, w.y+w.h, wh.BRD_CSIMPLE, dStyle, screen) } @@ -197,7 +198,7 @@ func (w *Searcher) Draw(screen tcell.Screen) { } wh.DrawText(x, y, w.filteredData[i], st, screen) y++ - if y >= w.y+w.h { + if y >= w.y+w.h-1 { break } }