aboutsummaryrefslogtreecommitdiffstats
path: root/examples/layout/label.go
blob: f46f25f29b2661ad75a3b15ab210fff24cbc45cb (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
package main

import (
	"image"
	"image/color"
	"image/draw"

	"github.com/faiface/gui"
)

func Label(env gui.Env, theme *Theme, text string, colr color.Color) {
	textImg := MakeTextImage(text, theme.Face, theme.Text)

	redraw := func(r image.Rectangle) func(draw.Image) image.Rectangle {
		return func(drw draw.Image) image.Rectangle {
			draw.Draw(drw, r, &image.Uniform{colr}, image.ZP, draw.Src)
			DrawLeftCentered(drw, r.Add(image.Pt(5, 0)), textImg, draw.Over)
			return r
		}
	}

	var (
		r image.Rectangle
	)

	for e := range env.Events() {
		switch e := e.(type) {
		case gui.Resize:
			r = e.Rectangle
			env.Draw() <- redraw(r)
		}
	}

	close(env.Draw())
}