diff options
Diffstat (limited to 'size.go')
| -rw-r--r-- | size.go | 31 |
1 files changed, 23 insertions, 8 deletions
@@ -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() |
