diff options
Diffstat (limited to 'layout/fixedgrid/fixedgrid.go')
| -rw-r--r-- | layout/fixedgrid/fixedgrid.go | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/layout/fixedgrid/fixedgrid.go b/layout/fixedgrid/fixedgrid.go deleted file mode 100644 index a9fabf8..0000000 --- a/layout/fixedgrid/fixedgrid.go +++ /dev/null @@ -1,88 +0,0 @@ -package fixedgrid - -import ( - "fmt" - "image" - "image/color" - "image/draw" - - "github.com/faiface/gui" - "github.com/faiface/gui/layout" -) - -type FixedGrid struct { - Columns int - Rows int - Background color.Color - Gap int - - *layout.Layout -} - -func New(env gui.Env, options ...func(*FixedGrid)) *FixedGrid { - ret := &FixedGrid{ - // Bounds: image.ZR, - Background: image.Black, - Columns: 1, - Rows: 1, - Gap: 0, - } - - for _, f := range options { - f(ret) - } - - ret.Layout = layout.New(env, ret.layout, ret.redraw) - return ret -} - -func (g *FixedGrid) layout(bounds image.Rectangle) map[string]image.Rectangle { - gap := g.Gap - cols := g.Columns - rows := g.Rows - - w := (bounds.Dx() - (cols+1)*gap) / cols - h := (bounds.Dy() - (rows+1)*gap) / rows - - ret := make(map[string]image.Rectangle) - X := gap + bounds.Min.X - Y := gap + bounds.Min.Y - for x := 0; x < cols; x++ { - for y := 0; y < rows; y++ { - ret[fmt.Sprintf("%d;%d", x, y)] = image.Rect(X, Y, X+w, Y+h) - Y += gap + h - } - Y = gap + bounds.Min.Y - X += gap + w - } - - return ret -} - -func Background(c color.Color) func(*FixedGrid) { - return func(grid *FixedGrid) { - grid.Background = c - } -} - -func Gap(g int) func(*FixedGrid) { - return func(grid *FixedGrid) { - grid.Gap = g - } -} - -func Columns(cols int) func(*FixedGrid) { - return func(grid *FixedGrid) { - grid.Columns = cols - } -} - -func Rows(rows int) func(*FixedGrid) { - return func(grid *FixedGrid) { - grid.Rows = rows - } -} - -func (g *FixedGrid) redraw(drw draw.Image, bounds image.Rectangle) { - draw.Draw(drw, bounds, image.NewUniform(g.Background), image.ZP, draw.Src) -} |