From e1227f703fc9e754fdb7f1ca8dce8dfb36ada368 Mon Sep 17 00:00:00 2001 From: Kevin Chabowski Date: Wed, 14 Aug 2013 15:04:58 +0200 Subject: Initial commit General idea of GUI is already there. --- colorbox.go | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 colorbox.go (limited to 'colorbox.go') diff --git a/colorbox.go b/colorbox.go new file mode 100644 index 0000000..a9d1583 --- /dev/null +++ b/colorbox.go @@ -0,0 +1,36 @@ +package main + +import ( + "fmt" + "github.com/mattn/go-gtk/gdk" + "github.com/mattn/go-gtk/gtk" + "image/color" +) + +func colorBox(c color.Color) *gtk.DrawingArea { + r, g, b, _ := c.RGBA() + colstring := fmt.Sprintf("#%02x%02x%02x", (r>>8)&0xff, (g>>8)&0xff, (b>>8)&0xff) + + dArea := gtk.NewDrawingArea() + var pixmap *gdk.Pixmap + var gc *gdk.GC + + dArea.Connect("configure-event", func() { + if pixmap != nil { + pixmap.Unref() + } + alloc := dArea.GetAllocation() + pixmap = gdk.NewPixmap(dArea.GetWindow().GetDrawable(), alloc.Width, alloc.Height, 24) + gc = gdk.NewGC(pixmap.GetDrawable()) + gc.SetRgbFgColor(gdk.NewColor(colstring)) + pixmap.GetDrawable().DrawRectangle(gc, true, 0, 0, -1, -1) + }) + + dArea.Connect("expose-event", func() { + if pixmap != nil { + dArea.GetWindow().GetDrawable().DrawDrawable(gc, pixmap.GetDrawable(), 0, 0, 0, 0, -1, -1) + } + }) + + return dArea +} -- cgit v1.2.3-54-g00ecf