summaryrefslogtreecommitdiff
path: root/size.go
diff options
context:
space:
mode:
Diffstat (limited to 'size.go')
-rw-r--r--size.go31
1 files changed, 23 insertions, 8 deletions
diff --git a/size.go b/size.go
index 5b9ff1f..4439298 100644
--- a/size.go
+++ b/size.go
@@ -9,6 +9,19 @@ import (
"go.wit.com/widget"
)
+func (tk *guiWidget) Hidden() bool {
+ if tk.parent == nil {
+ return tk.node.Hidden()
+ }
+ if tk.parent.node.WidgetId == 0 {
+ return tk.node.Hidden()
+ }
+ if tk.parent.Hidden() {
+ return true
+ }
+ return tk.node.Hidden()
+}
+
func (tk *guiWidget) Size() (int, int) {
if tk == nil {
return 0, 0
@@ -18,7 +31,7 @@ func (tk *guiWidget) Size() (int, int) {
}
// don't count hidden widgets in size calculations
- if tk.node.Hidden() {
+ if tk.Hidden() {
return 0, 0
}
@@ -27,7 +40,7 @@ func (tk *guiWidget) Size() (int, int) {
var maxH int = 0
var maxW int = 0
for _, child := range tk.children {
- if tk.node.Hidden() {
+ if tk.Hidden() {
continue
}
sizeW, sizeH := child.Size()
@@ -48,7 +61,7 @@ func (tk *guiWidget) Size() (int, int) {
maxH := tk.gocuiSize.Height()
for _, child := range tk.children {
- if tk.node.Hidden() {
+ if tk.Hidden() {
continue
}
sizeW, sizeH := child.Size()
@@ -62,8 +75,10 @@ func (tk *guiWidget) Size() (int, int) {
return maxW + me.GroupPadW + 3, maxH
case widget.Label:
return len(tk.String()) + 2, 1
+ case widget.Textbox:
+ return len(tk.String()) + 2, 3 // TODO: compute this based on 'window dense'
case widget.Checkbox:
- return len(tk.String()) + 2, 3
+ return len(tk.String()) + 2, 3 // TODO: compute this based on 'window dense'
}
if tk.isFake {
return 0, 0
@@ -72,13 +87,13 @@ func (tk *guiWidget) Size() (int, int) {
}
func (w *guiWidget) sizeGrid() (int, int) {
- if w.node.Hidden() {
+ if w.Hidden() {
return 0, 0
}
// first compute the max sizes of the rows and columns
for _, child := range w.children {
- if w.node.Hidden() {
+ if w.Hidden() {
continue
}
sizeW, sizeH := child.Size()
@@ -110,14 +125,14 @@ func (w *guiWidget) sizeBox() (int, int) {
if w.node.WidgetType != widget.Box {
return 0, 0
}
- if w.node.Hidden() {
+ if w.Hidden() {
return 0, 0
}
var maxW int = 0
var maxH int = 0
for _, child := range w.children {
- if w.node.Hidden() {
+ if w.Hidden() {
continue
}
sizeW, sizeH := child.Size()