From 872b36d172527cfe7698901a48af109062c562c4 Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Sun, 13 Nov 2022 22:28:44 -0500 Subject: [PATCH] Added text input example (non-working) --- examples/type/main.go | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 examples/type/main.go diff --git a/examples/type/main.go b/examples/type/main.go new file mode 100644 index 0000000..92ebfb3 --- /dev/null +++ b/examples/type/main.go @@ -0,0 +1,52 @@ +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: + event := event.(stone.EventPress) + if stone.event.Printable() { + application.SetRune(caret, 0, rune(stone.event)) + caret ++ + application.Draw() + } + + case stone.EventResize: + application.Draw() + } + } +}