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 mousePressed bool 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: event := event.(stone.EventPress) if stone.Button(event) == stone.MouseButtonLeft { mousePressed = true application.SetRune(0, 0, '+') application.Draw() } case stone.EventRelease: event := event.(stone.EventRelease) if stone.Button(event) == stone.MouseButtonLeft { mousePressed = false application.SetRune(0, 0, 0) application.Draw() } case stone.EventMouseMove: event := event.(stone.EventMouseMove) application.SetRune(event.X, event.Y, '#') application.Draw() case stone.EventResize: application.Draw() } } }