summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eventBindings.go48
-rw-r--r--find.go70
-rw-r--r--place.go9
3 files changed, 70 insertions, 57 deletions
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)