summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPietro Gagliardi <[email protected]>2014-10-17 13:16:36 -0400
committerPietro Gagliardi <[email protected]>2014-10-17 13:16:36 -0400
commitd2e1c9f261e1b6cfe3097638028525de0df43252 (patch)
tree6489adcbddfc2887c3bb493b4937f20d17d30fc2
parent61a21b87aa9623ca8202cd845a8beaf6fdf4e327 (diff)
Forgot the modified test, oops.
-rw-r--r--newctrl/yz_repaint_test.go128
1 files changed, 128 insertions, 0 deletions
diff --git a/newctrl/yz_repaint_test.go b/newctrl/yz_repaint_test.go
new file mode 100644
index 0000000..8ea3cde
--- /dev/null
+++ b/newctrl/yz_repaint_test.go
@@ -0,0 +1,128 @@
+// 21 august 2014
+
+package ui
+
+import (
+ "image"
+ "image/color"
+ "image/draw"
+ "strconv"
+)
+
+type repainter struct {
+ img *image.RGBA
+ area Area
+ x TextField
+ y TextField
+ width TextField
+ height TextField
+ repaint Button
+ all Button
+ grid Grid
+
+ xv int
+ yv int
+ wv int
+ hv int
+}
+
+func newRepainter(times int) *repainter {
+ r := new(repainter)
+ r.img = tileImage(times)
+ r.area = NewArea(r.img.Rect.Dx(), r.img.Rect.Dy(), r)
+ r.area.OnTextFieldDismissed(r.tfdone)
+ r.x = NewTextField()
+ r.x.OnChanged(r.setx)
+ r.y = NewTextField()
+ r.y.OnChanged(r.sety)
+ r.width = NewTextField()
+ r.width.OnChanged(r.setwidth)
+ r.height = NewTextField()
+ r.height.OnChanged(r.setheight)
+ r.repaint = NewButton("Rect")
+ r.repaint.OnClicked(r.dorect)
+ r.all = NewButton("All")
+ r.all.OnClicked(r.doall)
+ grid := NewGrid()
+ grid.Add(r.area, nil, South, true, Fill, true, Fill, 3, 6)
+ grid.Add(r.x, nil, East, true, Fill, false, LeftTop, 1, 1)
+ grid.Add(r.y, nil, South, true, Fill, false, LeftTop, 1, 1)
+ grid.Add(r.width, nil, South, true, Fill, false, LeftTop, 1, 1)
+ grid.Add(r.height, nil, South, true, Fill, false, LeftTop, 1, 1)
+ grid.Add(r.repaint, nil, South, true, Fill, true, Fill, 1, 1)
+ grid.Add(r.all, nil, South, true, Center, false, LeftTop, 1, 1)
+ r.grid = grid
+ r.grid.SetPadded(*spaced)
+ return r
+}
+
+func (r *repainter) Paint(rect image.Rectangle) *image.RGBA {
+ return r.img.SubImage(rect).(*image.RGBA)
+}
+
+func (r *repainter) Mouse(me MouseEvent) {
+ if me.Up == 1 {
+ r.area.OpenTextFieldAt(me.Pos.X, me.Pos.Y)
+ }
+}
+
+func (r *repainter) tfdone() {
+ println(r.area.TextFieldText())
+}
+
+func (r *repainter) Key(ke KeyEvent) bool { return false }
+
+func (r *repainter) setx() {
+ i, err := strconv.Atoi(r.x.Text())
+ if err != nil {
+ r.x.Invalid(err.Error())
+ return
+ }
+ r.x.Invalid("")
+ r.xv = i
+}
+
+func (r *repainter) sety() {
+ i, err := strconv.Atoi(r.y.Text())
+ if err != nil {
+ r.y.Invalid(err.Error())
+ return
+ }
+ r.y.Invalid("")
+ r.yv = i
+}
+
+func (r *repainter) setwidth() {
+ i, err := strconv.Atoi(r.width.Text())
+ if err != nil {
+ r.width.Invalid(err.Error())
+ return
+ }
+ r.width.Invalid("")
+ r.wv = i
+}
+
+func (r *repainter) setheight() {
+ i, err := strconv.Atoi(r.height.Text())
+ if err != nil {
+ r.height.Invalid(err.Error())
+ return
+ }
+ r.height.Invalid("")
+ r.hv = i
+}
+
+func (r *repainter) alter(rect image.Rectangle, c color.Color) {
+ draw.Draw(r.img, rect, &image.Uniform{c}, image.ZP, draw.Over)
+}
+
+func (r *repainter) dorect() {
+ rect := image.Rect(r.xv, r.yv, r.xv+r.wv, r.yv+r.hv)
+ r.alter(rect, color.RGBA{255, 0, 255, 128})
+ r.area.Repaint(rect)
+}
+
+func (r *repainter) doall() {
+ r.alter(r.img.Rect, color.RGBA{255, 255, 0, 128})
+ r.area.RepaintAll()
+}