diff --git a/grid.go b/grid.go index 06951a8..d778c5f 100644 --- a/grid.go +++ b/grid.go @@ -59,7 +59,7 @@ type grid struct { controls []gridCell indexof map[Control]int prev int - container *container + parent *controlParent padded bool xmax int @@ -90,7 +90,6 @@ type gridCell struct { func NewGrid() Grid { return &grid{ indexof: map[Control]int{}, - container: newContainer(), } } @@ -136,7 +135,9 @@ func (g *grid) Add(control Control, nextTo Control, side Side, xexpand bool, xal xspan: xspan, yspan: yspan, } - control.setParent(g.container.parent()) + if g.parent != nil { + control.setParent(g.parent) + } // if this is the first control, just add it in directly if len(g.controls) != 0 { next := g.prev @@ -175,7 +176,10 @@ func (g *grid) SetPadded(padded bool) { } func (g *grid) setParent(p *controlParent) { - g.container.setParent(p) + g.parent = p + for _, c := range g.controls { + c.control.setParent(g.parent) + } } func (g *grid) containerShow() { @@ -210,15 +214,11 @@ func (g *grid) mkgrid() (gg [][]int, colwidths []int, rowheights []int) { } func (g *grid) resize(x int, y int, width int, height int, d *sizing) { - g.container.resize(x, y, width, height, d) - if len(g.controls) == 0 { // nothing to do return } - x, y, width, height = g.container.bounds(d) - // -2) get this Grid's padding xpadding := d.xpadding ypadding := d.ypadding diff --git a/simplegrid.go b/simplegrid.go index e5aa5eb..6279ffb 100644 --- a/simplegrid.go +++ b/simplegrid.go @@ -40,7 +40,6 @@ type simpleGrid struct { stretchyfill bool widths, heights [][]int // caches to avoid reallocating each time rowheights, colwidths []int - container *container padded bool } @@ -81,13 +80,6 @@ func NewSimpleGrid(nPerRow int, controls ...Control) SimpleGrid { heights: ch, rowheights: make([]int, nRows), colwidths: make([]int, nPerRow), - container: newContainer(), - } - p := g.container.parent() - for _, cc := range g.controls { - for _, c := range cc { - c.setParent(p) - } } return g } @@ -121,7 +113,11 @@ func (g *simpleGrid) SetPadded(padded bool) { } func (g *simpleGrid) setParent(parent *controlParent) { - g.container.setParent(parent) + for _, cc := range g.controls { + for _, c := range cc { + c.setParent(parent) + } + } } func (g *simpleGrid) containerShow() { @@ -148,11 +144,9 @@ func (g *simpleGrid) resize(x int, y int, width int, height int, d *sizing) { return b } - g.container.resize(x, y, width, height, d) if len(g.controls) == 0 { return } - x, y, width, height = g.container.bounds(d) // -1) get this SimpleGrid's padding xpadding := d.xpadding ypadding := d.ypadding