diff --git a/eventBindings.go b/eventBindings.go index 3ca09e2..47ab97b 100644 --- a/eventBindings.go +++ b/eventBindings.go @@ -61,54 +61,6 @@ func setSuperMouse(g *gocui.Gui, v *gocui.View) error { return nil } -var wtf bool - -/* -func (tk *guiWidget) verifyRect() bool { - if !tk.Visible() { - // log.Info("verifyRect() tk is not visible", tk.cuiName) - return false - } - vw0, vh0, vw1, vh1, err := me.baseGui.ViewPosition(tk.cuiName) - if err != nil { - // log.Printf("verifyRect() gocui err=%v cuiName=%s v.Name=%s", err, tk.cuiName, tk.v.Name()) - vw0, vh0, vw1, vh1, err = me.baseGui.ViewPosition(tk.v.Name()) - if err != nil { - log.Printf("verifyRect() ACTUAL FAIL gocui err=%v cuiName=%s v.Name=%s", err, tk.cuiName, tk.v.Name()) - return false - } - // return false - } - var ok bool = true - if vw0 != tk.full.w0 { - // log.Info("verifyRect() FIXING w0", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.w0, "w0 =", vw0) - tk.full.w0 = vw0 - ok = false - } - if vw1 != tk.full.w1 { - // log.Info("verifyRect() FIXING w1", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.w1, "w1 =", vw1) - tk.full.w1 = vw1 - ok = false - } - if vh0 != tk.full.h0 { - // log.Info("verifyRect() FIXING h0", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.h0) - tk.full.h0 = vh0 - ok = false - } - if vh1 != tk.full.h1 { - // log.Info("verifyRect() FIXING h1", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.h1) - tk.full.h1 = vh1 - ok = false - } - if !ok { - // log.Info("verifyRect() NEED TO FIX RECT HERE", tk.cuiName) - // tk.dumpWidget("verifyRect() FIXME") - } - // log.Printf("verifyRect() OK cuiName=%s v.Name=%s", tk.cuiName, tk.v.Name()) - return true -} -*/ - func (tk *guiWidget) makeTK(ddItems []string) { items := strings.Join(ddItems, "\n") var err error diff --git a/find.go b/find.go index 3c76755..672fc40 100644 --- a/find.go +++ b/find.go @@ -32,6 +32,13 @@ func findByXY(w int, h int) []*guiWidget { return rootW.findByXYreal(w, h) } +func (r rectType) inRect(w int, h int) bool { + if (r.w0 <= w) && (w <= r.w1) && (r.h0 <= h) && (h <= r.h1) { + return true + } + return false +} + // this checks a widget to see if it is under (W,H), then checks the widget's children // anything that matches is passed back as an array of widgets func (tk *guiWidget) findByXYreal(w int, h int) []*guiWidget { @@ -43,9 +50,16 @@ func (tk *guiWidget) findByXYreal(w int, h int) []*guiWidget { // check the location to see if this is under (W,H) // if it is, return this widget - if (tk.gocuiSize.w0 <= w) && (w <= tk.gocuiSize.w1) && - (tk.gocuiSize.h0 <= h) && (h <= tk.gocuiSize.h1) { + // if (tk.gocuiSize.w0 <= w) && (w <= tk.gocuiSize.w1) && + // (tk.gocuiSize.h0 <= h) && (h <= tk.gocuiSize.h1) { + if tk.gocuiSize.inRect(w, h) { widgets = append(widgets, tk) + } else { + // if (tk.full.w0 <= w) && (w <= tk.full.w1) && + // (tk.full.h0 <= h) && (h <= tk.full.h1) { + if tk.full.inRect(w, h) { + widgets = append(widgets, tk) + } // log.Log(GOCUI, "findByXY() found", widget.node.WidgetType, w, h) } } @@ -79,6 +93,54 @@ func (tk *guiWidget) findWindows() []*guiWidget { return found } +/* +var wtf bool + +func (tk *guiWidget) verifyRect() bool { + if !tk.Visible() { + // log.Info("verifyRect() tk is not visible", tk.cuiName) + return false + } + vw0, vh0, vw1, vh1, err := me.baseGui.ViewPosition(tk.cuiName) + if err != nil { + // log.Printf("verifyRect() gocui err=%v cuiName=%s v.Name=%s", err, tk.cuiName, tk.v.Name()) + vw0, vh0, vw1, vh1, err = me.baseGui.ViewPosition(tk.v.Name()) + if err != nil { + log.Printf("verifyRect() ACTUAL FAIL gocui err=%v cuiName=%s v.Name=%s", err, tk.cuiName, tk.v.Name()) + return false + } + // return false + } + var ok bool = true + if vw0 != tk.full.w0 { + // log.Info("verifyRect() FIXING w0", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.w0, "w0 =", vw0) + tk.full.w0 = vw0 + ok = false + } + if vw1 != tk.full.w1 { + // log.Info("verifyRect() FIXING w1", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.w1, "w1 =", vw1) + tk.full.w1 = vw1 + ok = false + } + if vh0 != tk.full.h0 { + // log.Info("verifyRect() FIXING h0", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.h0) + tk.full.h0 = vh0 + ok = false + } + if vh1 != tk.full.h1 { + // log.Info("verifyRect() FIXING h1", tk.cuiName, vw0, vw1, vh0, vh1, tk.gocuiSize.h1) + tk.full.h1 = vh1 + ok = false + } + if !ok { + // log.Info("verifyRect() NEED TO FIX RECT HERE", tk.cuiName) + // tk.dumpWidget("verifyRect() FIXME") + } + // log.Printf("verifyRect() OK cuiName=%s v.Name=%s", tk.cuiName, tk.v.Name()) + return true +} +*/ + func (tk *guiWidget) setFullSize() bool { r := tk.getFullSize() @@ -121,10 +183,10 @@ func (tk *guiWidget) gridFullSize() rectType { r.w1 = cr.w1 r.h1 = cr.h1 first = false - child.dumpWidget(fmt.Sprintf("grid(f)")) + // child.dumpWidget(fmt.Sprintf("grid(f)")) continue } - child.dumpWidget(fmt.Sprintf("grid()")) + // child.dumpWidget(fmt.Sprintf("grid()")) // use the lowest width and hight from children widgets if r.w0 > cr.w0 { r.w0 = cr.w0 diff --git a/place.go b/place.go index 31da1fa..c400bb8 100644 --- a/place.go +++ b/place.go @@ -4,7 +4,6 @@ package main import ( - "fmt" "strings" "go.wit.com/log" @@ -89,7 +88,7 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) { return startW, startH case widget.Tab: case widget.Grid: - tk.dumpWidget(fmt.Sprintf("PlaceGridS(%d,%d)", startW, startH)) + // tk.dumpWidget(fmt.Sprintf("PlaceGridS(%d,%d)", startW, startH)) // if you reset the values here, grid horizontal stacking doesn't work anymore // tk.widths = make(map[int]int) // how tall each row in the grid is // tk.heights = make(map[int]int) // how wide each column in the grid is @@ -98,7 +97,7 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) { tk.full.h0 = newH tk.full.w1 = newW tk.full.h1 = newH - tk.dumpWidget(fmt.Sprintf("PlaceGridE(%d,%d)", newW, newH)) + // tk.dumpWidget(fmt.Sprintf("PlaceGridE(%d,%d)", newW, newH)) return newW, newH case widget.Box: tk.placeBox(startW, startH) @@ -106,7 +105,7 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) { tk.full.h0 = startH tk.full.w1 = startW tk.full.h1 = startH - tk.dumpWidget(fmt.Sprintf("PlaceBox(%d,%d)", startW, startH)) + // tk.dumpWidget(fmt.Sprintf("PlaceBox(%d,%d)", startW, startH)) return 0, 0 case widget.Stdout: tk.setStdoutWH(startW, startH) @@ -137,7 +136,7 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) { log.Log(INFO, "REAL HEIGHT sizeW:", sizeW, "sizeH:", sizeH) } newH = newH - startH - tk.dumpWidget(fmt.Sprintf("PlaceGroup(%d,%d)", maxW, newH)) + // tk.dumpWidget(fmt.Sprintf("PlaceGroup(%d,%d)", maxW, newH)) return maxW, newH default: tk.gocuiSetWH(startW, startH)