Simple windowed application: Difference between revisions

Content added Content deleted
m (added whitespace before the TOC, added a Task (bold) header, enumerated the contents of the window to be created.)
(→‎{{header|Go}}: Update for library API changes)
Line 832: Line 832:


import (
import (
"fmt"
"fmt"
"github.com/mattn/go-gtk/gtk"
"github.com/mattn/go-gtk/gtk"
)
)


func main() {
func main() {
gtk.Init(nil)
gtk.Init(nil)
window := gtk.Window(gtk.GTK_WINDOW_TOPLEVEL)
window := gtk.NewWindow(gtk.WINDOW_TOPLEVEL)
window.SetTitle("Click me")
window.SetTitle("Click me")
label := gtk.Label("There have been no clicks yet")
label := gtk.NewLabel("There have been no clicks yet")
var clicks int
var clicks int
button := gtk.ButtonWithLabel("click me")
button := gtk.NewButtonWithLabel("click me")
button.Clicked(func() {
button.Clicked(func() {
clicks++
clicks++
if clicks == 1 {
if clicks == 1 {
label.SetLabel("Button clicked 1 time")
label.SetLabel("Button clicked 1 time")
} else {
} else {
label.SetLabel(fmt.Sprintf("Button clicked %d times",
label.SetLabel(fmt.Sprintf("Button clicked %d times",
clicks))
clicks))
}
}
})
})
vbox := gtk.VBox(false, 1)
vbox := gtk.NewVBox(false, 1)
vbox.Add(label)
vbox.Add(label)
vbox.Add(button)
vbox.Add(button)
window.Add(vbox)
window.Add(vbox)
window.Connect("destroy", func() {
window.Connect("destroy", func() {
gtk.MainQuit()
gtk.MainQuit()
})
})
window.ShowAll()
window.ShowAll()
gtk.Main()
gtk.Main()
}</lang>
}</lang>