diff options
| author | Clement Benard <contact@clementbenard.com> | 2019-07-12 17:23:28 +0200 |
|---|---|---|
| committer | Clement Benard <contact@clementbenard.com> | 2019-07-12 17:23:28 +0200 |
| commit | 0cc6367a881ab7dba48ace7b111e0eb1151c10bb (patch) | |
| tree | eabadd10783b857271f12797f1a505efec85630c /layout/grid.go | |
| parent | 009f865bc5484e54f09d2173b2b3dbbf3838d391 (diff) | |
| download | gui-0cc6367a881ab7dba48ace7b111e0eb1151c10bb.zip | |
Better separation between Layout and Mux
Diffstat (limited to 'layout/grid.go')
| -rw-r--r-- | layout/grid.go | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/layout/grid.go b/layout/grid.go index 9c79343..c90821a 100644 --- a/layout/grid.go +++ b/layout/grid.go @@ -18,7 +18,7 @@ type grid struct { // NewGrid creates a familiar flexbox-like grid layout. // Each row can be a different length. -func NewGrid(env gui.Env, contents [][]*gui.Env, options ...func(*grid)) gui.Env { +func NewGrid(contents [][]*gui.Env, options ...func(*grid)) Layout { ret := &grid{ Background: image.Black, Gap: 0, @@ -29,15 +29,7 @@ func NewGrid(env gui.Env, contents [][]*gui.Env, options ...func(*grid)) gui.Env for _, f := range options { f(ret) } - - mux, env := NewMux(env, ret) - for _, row := range contents { - for _, item := range row { - *item = mux.MakeEnv() - } - } - - return env + return ret } // GridBackground changes the background of the grid to a uniform color. @@ -73,6 +65,15 @@ func (g *grid) Redraw(drw draw.Image, bounds image.Rectangle) { draw.Draw(drw, bounds, image.NewUniform(g.Background), image.ZP, draw.Src) } +func (g *grid) Items() []*gui.Env { + // 32 should be more than enough for most grids + ret := make([]*gui.Env, 0, 32) + for _, row := range g.Contents { + ret = append(ret, row...) + } + return ret +} + func (g *grid) Lay(bounds image.Rectangle) []image.Rectangle { gap := g.Gap ret := make([]image.Rectangle, 0) |