summaryrefslogtreecommitdiff
path: root/colorbox.go
diff options
context:
space:
mode:
authorKevin Chabowski <kevin@kch42.de>2013-08-14 15:04:58 +0200
committerKevin Chabowski <kevin@kch42.de>2013-08-14 15:04:58 +0200
commite1227f703fc9e754fdb7f1ca8dce8dfb36ada368 (patch)
treebed1aa5832abacc76ee56c0f67682893adad161c /colorbox.go
downloadbiomed-e1227f703fc9e754fdb7f1ca8dce8dfb36ada368.tar.gz
biomed-e1227f703fc9e754fdb7f1ca8dce8dfb36ada368.tar.bz2
biomed-e1227f703fc9e754fdb7f1ca8dce8dfb36ada368.zip
Initial commit
General idea of GUI is already there.
Diffstat (limited to 'colorbox.go')
-rw-r--r--colorbox.go36
1 files changed, 36 insertions, 0 deletions
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
+}