summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--eventMouseClick.go7
-rw-r--r--place.go22
-rw-r--r--treeDraw.go42
-rw-r--r--treeWidget.go58
-rw-r--r--window.go29
5 files changed, 67 insertions, 91 deletions
diff --git a/eventMouseClick.go b/eventMouseClick.go
index 6ebd800..8c32910 100644
--- a/eventMouseClick.go
+++ b/eventMouseClick.go
@@ -15,11 +15,6 @@ func (tk *guiWidget) redrawWindow(w int, h int) {
}
tk.setFullSize() // might make the green box the right size
- // draw the current window
- // w = tk.gocuiSize.w0 + 4
- // h = tk.gocuiSize.h0 + 4
- w = w + 4
- h = h + 4
tk.DrawAt(w, h)
tk.setColor(&colorActiveW) // sets the window to Green BG
tk.placeWidgets(w, h) // compute the sizes & places for each widget
@@ -47,7 +42,7 @@ func (tk *guiWidget) doWidgetClick(w int, h int) {
me.currentWindow.isCurrent = true
tk.active = false
- tk.redrawWindow(tk.gocuiSize.w0, tk.gocuiSize.h0)
+ tk.redrawWindow(w, h)
return
case widget.Group:
if tk.active {
diff --git a/place.go b/place.go
index ddd488d..12bb156 100644
--- a/place.go
+++ b/place.go
@@ -75,27 +75,13 @@ func (tk *guiWidget) placeWidgets(startW int, startH int) (int, int) {
switch tk.node.WidgetType {
case widget.Window:
- newW := startW
- newH := startH
- // var maxH int = 0
for _, child := range tk.children {
- child.placeWidgets(newW, newH)
- sizeW, sizeH := child.Size()
- /*
- if sizeW < 20 {
- sizeW = 20
- }
- */
- newW += sizeW
- newH += sizeH
- /*
- if sizeH > maxH {
- maxH = sizeH
- }
- */
+ child.placeWidgets(startW, startH)
+ sizeW, _ := child.Size()
+ startW += sizeW + 4 // add the width to move the next widget over
}
- return newW - startW, newH - startH
+ return startW, startH
case widget.Tab:
case widget.Grid:
return tk.placeGrid(startW, startH)
diff --git a/treeDraw.go b/treeDraw.go
index 39db38d..9f71eb2 100644
--- a/treeDraw.go
+++ b/treeDraw.go
@@ -101,7 +101,7 @@ func (w *guiWidget) DrawAt(offsetW, offsetH int) {
w.setColor(&colorActiveW)
w.placeWidgets(offsetW, offsetH) // compute the sizes & places for each widget
w.active = false
- w.dumpWidget("DrawAt()")
+ w.dumpWidget(fmt.Sprintf("DrawAt(%d,%d)", offsetW, offsetH))
}
func (w *guiWidget) simpleDrawAt(offsetW, offsetH int) {
@@ -139,3 +139,43 @@ func (w *guiWidget) drawTree(draw bool) {
child.drawTree(draw)
}
}
+
+func (w *guiWidget) Show() {
+ // don't display fake widgets
+ if w.isFake {
+ return
+ }
+
+ // deprecate this
+ // if this isn't in the binary tree
+ // it's some internal widget so always display those
+ if w.node == nil {
+ w.drawView()
+ return
+ }
+
+ // deprecate this
+ // always show window titles
+ if w.node.WidgetType == widget.Window {
+ w.drawView()
+ return
+ }
+
+ /*
+ // if the widget is not in the current displayed windo
+ if !w.IsCurrent() {
+ // log.Log(GOCUI, "Show() w.IsCurrent == false. NOT drawing", w.cuiName, w.String())
+ return
+ }
+ */
+
+ // this comes from the application developer
+ // finally, check if the widget State is hidden or not
+ if w.node.Hidden() {
+ // log.Log(GOCUI, "Show() w.node.Hidden() = false. not drawing", w.cuiName, w.String())
+ // don't display hidden widgets
+ return
+ }
+ // log.Log(GOCUI, "Show() doing w.drawView()", w.cuiName, w.String())
+ w.drawView()
+}
diff --git a/treeWidget.go b/treeWidget.go
index 3d69788..784aac4 100644
--- a/treeWidget.go
+++ b/treeWidget.go
@@ -103,64 +103,6 @@ func (tk *guiWidget) Visible() bool {
return true
}
-func (w *guiWidget) Show() {
- // always should the dropdown widget
- /*
- if w == me.dropdownV {
- me.dropdownV.drawView()
- return
- }
- */
-
- // don't display fake widgets
- if w.isFake {
- return
- }
-
- // if this isn't in the binary tree
- // it's some internal widget so always display those
- if w.node == nil {
- w.drawView()
- return
- }
-
- // always show window titles
- if w.node.WidgetType == widget.Window {
- w.drawView()
- return
- }
-
- /*
- if w.node.WidgetType == widget.Dropdown {
- log.Log(NOW, "Show() dropdown", w.cuiName, w.String())
- log.Log(NOW, "Show() dropdown n.Strings() =", w.node.Strings())
- }
- if w.node.WidgetType == widget.Combobox {
- log.Log(NOW, "Show() dropdown", w.cuiName, w.String())
- log.Log(NOW, "Show() dropdown n.Strings() =", w.node.Strings())
- }
- */
-
- // if the widget is not in the current displayed windo
- // then ignore it
- // log.Log(GOCUI, "Show() widget =", w.cuiName, w.String())
- // log.Log(GOCUI, "Show() w.IsCurrent() returned", w.IsCurrent())
- if !w.IsCurrent() {
- // log.Log(GOCUI, "Show() w.IsCurrent == false. NOT drawing", w.cuiName, w.String())
- return
- }
-
- // finally, check if the widget State is hidden or not
- if w.node.Hidden() {
- // log.Log(GOCUI, "Show() w.node.Hidden() = false. not drawing", w.cuiName, w.String())
- // don't display hidden widgets
- return
- }
- // log.Log(GOCUI, "Show() doing w.drawView()", w.cuiName, w.String())
- // okay, if you made it this far, then display the widget
- w.drawView()
-}
-
func (tk *guiWidget) Hide() {
tk.deleteView()
}
diff --git a/window.go b/window.go
index 36e1aed..ed9debe 100644
--- a/window.go
+++ b/window.go
@@ -4,18 +4,23 @@
package main
import (
+ "fmt"
+
"go.wit.com/widget"
)
// re-draws the buttons for each of the windows
-func (w *guiWidget) redoWindows(nextW int, nextH int) {
- var startW int = nextW
- var startH int = nextH
+func (tk *guiWidget) redoWindows(nextW int, nextH int) {
- for _, child := range w.children {
+ for _, child := range tk.children {
if child.node.WidgetType != widget.Window {
continue
}
+ child.gocuiSize.w0 = nextW
+ child.gocuiSize.h0 = nextH
+
+ tmp := fmt.Sprintf("redoWindowsS (%d,%d)", nextW, nextH)
+ child.dumpWidget(tmp)
child.frame = false
child.hasTabs = false
@@ -23,10 +28,18 @@ func (w *guiWidget) redoWindows(nextW int, nextH int) {
// this should make the window the full size and re-draw it
child.setFullSize() // child.gocuiSetWH(nextW, nextH)
child.Hide()
- child.drawView()
+ child.DrawAt(nextW, nextH)
+ child.Show()
+
+ tmp = fmt.Sprintf("redoWindowsE (%d,%d)", nextW, nextH)
+ child.dumpWidget(tmp)
- sizeW := child.gocuiSize.Width()
- nextW += sizeW + 4
- child.redoWindows(startW+3, startH+2)
+ nextW += child.gocuiSize.Width() + 4
+ child.redoWindows(nextW, nextH)
+ /*
+ sizeW := child.gocuiSize.Width()
+ nextW += sizeW + 4
+ child.redoWindows(startW+3, startH+2)
+ */
}
}