fixing textboxes

This commit is contained in:
Jeff Carr 2025-04-22 18:49:16 -05:00
parent 9669a63c5d
commit 4efbfa7a1d
3 changed files with 27 additions and 15 deletions

View File

@ -27,7 +27,7 @@ func doMouseClick(w int, h int) {
// can't drag or do anything when dropdown or textbox are visible
for _, tk := range findByXY(w, h) {
if tk.WidgetId() == me.dropdown.wId {
log.Info("got dropdwon click", w, h, tk.cuiName)
log.Info("got dropdown click", w, h, tk.cuiName)
tk.dropdownClicked(w, h)
return
}
@ -107,6 +107,7 @@ func doMouseClick(w int, h int) {
tk.showDropdown()
return
case widget.Textbox:
log.Log(WARN, "TODO: textbox click")
tk.prepTextbox()
return
case widget.Label:

View File

@ -111,15 +111,7 @@ func (tk *guiWidget) moveNew() {
tk.makeWindowActive()
return
}
/*
if tk.WidgetType() == widget.Flag {
me.baseGui.SetView(tk.cuiName, w-3, h-3, w+20, h+20, 0)
// tk.verifyRect()
s := fmt.Sprintf("move(%dx%d) %s ###", w, h, tk.cuiName)
tk.dumpWidget(s)
return
}
*/
if tk.WidgetType() == widget.Stdout {
if me.mouse.resize {
newW := w - me.stdout.lastW

View File

@ -40,7 +40,7 @@ func initTextbox() {
func (callertk *guiWidget) prepTextbox() {
initTextbox()
if me.textbox.tk == nil {
log.Log(GOCUI, "prepTextbox() Is Broken")
log.Log(WARN, "prepTextbox() Is Broken")
return
}
@ -51,21 +51,39 @@ func (callertk *guiWidget) prepTextbox() {
r.w1 = r.w0 + 24
r.h1 = r.h0 + 2
me.textbox.tk.forceSizes(r)
// me.textbox.tk.dumpWidget("after sizes")
me.textbox.tk.dumpWidget("after sizes")
me.textbox.callerTK = callertk
// showTextbox(callertk.String())
/*
if me.textbox.tk.v != nil {
log.Log(WARN, "WARNING textbox DeleteView()")
log.Log(WARN, "WARNING textbox DeleteView()")
log.Log(WARN, "WARNING textbox DeleteView()")
me.baseGui.DeleteView(me.textbox.tk.cuiName)
time.Sleep(time.Second)
}
*/
var err error
me.textbox.tk.v, err = me.baseGui.SetView(me.textbox.tk.cuiName, r.w0, r.h0, r.w1, r.h1, 0)
if err != nil {
log.Log(WARN, "textbox SetView() failed", err, "view name =", me.textbox.tk.cuiName)
return
}
// me.textbox.tk.Show() // actually makes the gocui view. TODO: redo this?
showTextbox(callertk.String())
}
func showTextbox(callers string) {
// tk := me.textbox.tk
// me.textbox.tk.dumpWidget("after sizes")
log.Log(WARN, "showTextbox() caller string =", callers)
// me.textbox.tk.Show() // actually makes the gocui view. TODO: redo this
if me.textbox.tk.v == nil {
log.Info("wtf went wrong")
log.Log(WARN, "textbox.tk.v == nil showTextbox() is broken")
return
}
@ -87,7 +105,8 @@ func showTextbox(callers string) {
me.textbox.active = true
// me.textbox.dumpWidget("showTextbox()")
me.baseGui.SetViewOnTop(me.textbox.tk.v.Name())
me.textbox.tk.dumpWidget("showTextbox()")
}
func theCloseTheTextbox(g *gocui.Gui, v *gocui.View) error {