Skip to content

Instantly share code, notes, and snippets.

@silvasur
Created November 3, 2013 12:10
Show Gist options
  • Save silvasur/7289570 to your computer and use it in GitHub Desktop.
Save silvasur/7289570 to your computer and use it in GitHub Desktop.
A demo for the gtk.ColorButton widget
package main
import (
"fmt"
"github.com/mattn/go-gtk/gdk"
"github.com/mattn/go-gtk/gtk"
)
func main() {
gtk.Init(nil)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
vbox := gtk.NewVBox(false, 0)
colbtn := gtk.NewColorButton()
colbtn.SetTitle("Test")
vbox.PackStart(colbtn, false, false, 3)
hbox := gtk.NewHBox(false, 0)
input := gtk.NewEntry()
hbox.PackStart(input, true, true, 3)
setbtn := gtk.NewButtonWithLabel("Set color")
setbtn.Connect("clicked", func() {
colbtn.SetColor(gdk.NewColor(input.GetText()))
})
hbox.PackStart(setbtn, false, false, 3)
vbox.PackStart(hbox, false, false, 3)
alphachk := gtk.NewCheckButtonWithLabel("Use Alpha")
alphachk.Connect("toggled", func() {
colbtn.SetUseAlpha(alphachk.GetActive())
})
vbox.PackStart(alphachk, false, false, 3)
applybtn := gtk.NewButtonWithLabel("Apply color selection")
applybtn.Connect("clicked", func() {
window.ModifyBG(gtk.STATE_NORMAL, colbtn.GetColor())
if colbtn.GetUseAlpha() {
fmt.Printf("Alpha: %04x\n", colbtn.GetAlpha())
} else {
fmt.Println("Alpha not used")
}
})
vbox.PackStart(applybtn, false, false, 3)
window.Add(vbox)
window.SetDefaultSize(500, 200)
window.Connect("destroy", gtk.MainQuit)
window.ShowAll()
gtk.Main()
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment