From eca2f2aa481ea9c158592767eeeaceff09060466 Mon Sep 17 00:00:00 2001 From: Jeff Carr Date: Sun, 28 Jan 2024 11:44:36 -0600 Subject: [PATCH] window is starting to draw! Signed-off-by: Jeff Carr --- add.go | 2 +- click.go | 33 +++++++++++++++++++++------------ debug.go | 21 +++++---------------- keybindings.go | 3 ++- tab.go | 20 ++++++++++++++++++++ view.go | 8 ++++---- 6 files changed, 53 insertions(+), 34 deletions(-) diff --git a/add.go b/add.go index c732ab4..705430d 100644 --- a/add.go +++ b/add.go @@ -80,5 +80,5 @@ func addWidget(n *tree.Node) { } */ } - showWidgetPlacement(n, true, "addWidget()") + nw.showWidgetPlacement(true, "addWidget()") } diff --git a/click.go b/click.go index f815aa6..1f3f144 100644 --- a/click.go +++ b/click.go @@ -100,6 +100,7 @@ func (w *guiWidget) doWidgetClick() { log.Log(NOW, "doWidgetClick() FLAG widget name =", w.String()) log.Log(NOW, "doWidgetClick() if this is the dropdown menu, handle it here?") case widget.Window: + log.Log(NOW, "doWidgetClick() START on window", w.String()) if me.currentWindow == w.node { return } @@ -112,8 +113,12 @@ func (w *guiWidget) doWidgetClick() { } me.currentWindow = w.node + log.Log(NOW, "doWidgetClick() set currentWindow to", w.String()) w.setColor(&colorActiveW) w.hideWidgets() + w.placeWidgets(me.RawW, me.RawH) + w.showWidgets() + /* w.redoTabs(me.TabW, me.TabH) for _, child := range w.children { if child.currentTab == true { @@ -124,6 +129,7 @@ func (w *guiWidget) doWidgetClick() { return } } + */ /* FIXME: redo this if ! n.hasTabs { } @@ -310,18 +316,20 @@ func findUnderMouse() *tree.Node { found = n } } - if n == me.ddview { - tk := me.ddview.TK.(*guiWidget) - log.Log(NOW, "findUnderMouse() found ddview") - if tk.Visible() { - log.Log(NOW, "findUnderMouse() and ddview is visable. hide it here. TODO: find highlighted row") - found = n - // find the actual value here and set the dropdown widget - me.baseGui.DeleteView("ddview") - } else { - log.Log(NOW, "findUnderMouse() I was lying, actually it's not found") + /* + if n == me.ddview { + tk := me.ddview.TK.(*guiWidget) + log.Log(NOW, "findUnderMouse() found ddview") + if tk.Visible() { + log.Log(NOW, "findUnderMouse() and ddview is visable. hide it here. TODO: find highlighted row") + found = n + // find the actual value here and set the dropdown widget + me.baseGui.DeleteView("ddview") + } else { + log.Log(NOW, "findUnderMouse() I was lying, actually it's not found") + } } - } + */ for _, child := range widget.children { f(child.node) @@ -332,7 +340,8 @@ func findUnderMouse() *tree.Node { // TODO: pop up menu with a list of them for _, n := range widgets { //log(logNow, "ctrlDown() FOUND widget", widget.id, widget.name) - showWidgetPlacement(n, true, "findUnderMouse() FOUND") + widget := n.TK.(*guiWidget) + widget.showWidgetPlacement(true, "findUnderMouse() FOUND") } return found } diff --git a/debug.go b/debug.go index 625a663..e6074ca 100644 --- a/debug.go +++ b/debug.go @@ -4,33 +4,22 @@ import ( "fmt" "go.wit.com/log" - "go.wit.com/toolkits/tree" "go.wit.com/widget" ) -func dumpTree(n *tree.Node, draw bool) { - w := n.TK.(*guiWidget) - log.Log(ERROR, "dumpTree n", n.WidgetId, n.WidgetType, n.String()) +func (w *guiWidget) dumpTree(draw bool) { + log.Log(ERROR, "dumpTree w", w.node.WidgetId, w.WidgetType, w.String()) if w == nil { - log.Log(ERROR, "dumpTree n.TK == nil", n.WidgetId, n.WidgetType, n.String()) + log.Log(ERROR, "dumpTree w.TK == nil", w.node.WidgetId, w.WidgetType, w.String()) return } - showWidgetPlacement(n, true, "dumpTree()") + w.showWidgetPlacement(true, "dumpTree()") for _, child := range w.children { - dumpTree(child.node, draw) + child.dumpTree(draw) } } -func showWidgetPlacement(n *tree.Node, b bool, s string) { - if n == nil { - log.Log(ERROR, "WTF w == nil") - return - } - w := n.TK.(*guiWidget) - w.showWidgetPlacement(b, s) -} - func (w *guiWidget) showWidgetPlacement(b bool, s string) { var s1 string var pId int diff --git a/keybindings.go b/keybindings.go index 669ecb3..66e11ed 100644 --- a/keybindings.go +++ b/keybindings.go @@ -118,7 +118,8 @@ func addDebugKeys(g *gocui.Gui) { // list all widgets with positions g.SetKeybinding("", 'M', gocui.ModNone, func(g *gocui.Gui, v *gocui.View) error { - dumpTree(me.treeRoot, true) + w := me.treeRoot.TK.(*guiWidget) + w.dumpTree(true) return nil }) diff --git a/tab.go b/tab.go index d2b57ce..d92c427 100644 --- a/tab.go +++ b/tab.go @@ -108,3 +108,23 @@ func (p *guiWidget) redoTabs(nextW int, nextH int) { nextW += sizeW } } + +func (p *guiWidget) drawWindow(nextW int, nextH int) { + for _, w := range p.children { + w.frame = true + + w.gocuiSetWH(nextW, nextH) + w.deleteView() + // setCurrentTab(n) + // if (len(w.cuiName) < 4) { + // w.cuiName = "abcd" + // } + + w.showView() + + sizeW := w.Width() + me.TabPadW + sizeH := w.Height() + log.Log(NOW, "redoTabs() start nextW,H =", nextW, nextH, "gocuiSize.W,H =", sizeW, sizeH, w.String()) + nextW += sizeW + } +} diff --git a/view.go b/view.go index 100d1d8..2fb6b7e 100644 --- a/view.go +++ b/view.go @@ -42,7 +42,7 @@ func (w *guiWidget) textResize() bool { changed = true } if changed { - showWidgetPlacement(w.node, true, "textResize() changed") + w.showWidgetPlacement(true, "textResize() changed") } return changed } @@ -136,12 +136,12 @@ func (w *guiWidget) recreateView() { w.v, err = me.baseGui.SetView(w.cuiName, a, b, c, d, 0) if err == nil { - showWidgetPlacement(w.node, true, "recreateView()") + w.showWidgetPlacement(true, "recreateView()") log.Log(ERROR, "recreateView() internal plugin error err = nil") return } if !errors.Is(err, gocui.ErrUnknownView) { - showWidgetPlacement(w.node, true, "recreateView()") + w.showWidgetPlacement(true, "recreateView()") log.Log(ERROR, "recreateView() internal plugin error error.IS()", err) return } @@ -174,7 +174,7 @@ func (w *guiWidget) recreateView() { } if w.String() == "CLOUDFLARE_EMAIL" { w.showWidgetPlacement(true, "w.String()="+w.String()+" w.label="+w.labelN+" "+w.cuiName) - dumpTree(w.node, true) + w.dumpTree(true) } log.Log(ERROR, "recreateView() END") }