package main import "os" import "image" import _ "image/png" import "git.tebibyte.media/sashakoshka/stone" import _ "git.tebibyte.media/sashakoshka/stone/backends/x" var application = &stone.Application { } var caret = 0 func main () { application.SetTitle("hellorld") application.SetSize(32, 16) iconFile16, err := os.Open("assets/scaffold16.png") if err != nil { panic(err) } icon16, _, err := image.Decode(iconFile16) if err != nil { panic(err) } iconFile16.Close() iconFile32, err := os.Open("assets/scaffold32.png") if err != nil { panic(err) } icon32, _, err := image.Decode(iconFile32) if err != nil { panic(err) } iconFile16.Close() application.SetIcon([]image.Image { icon16, icon32 }) channel, err := application.Run() if err != nil { panic(err) } application.Draw() for { event := <- channel switch event.(type) { case stone.EventQuit: os.Exit(0) case stone.EventPress: button := event.(stone.EventPress).Button if button.Printable() { application.SetRune(caret, 0, rune(button)) caret ++ width, _ := application.Size() if caret >= width { caret = 0 } application.Draw() } case stone.EventResize: application.Draw() } } }