package main
import "core:fmt"
import "core:strings"
import "gloam:term"
main :: proc() {
term.install_signal_handlers()
term.enable_raw_mode()
defer term.disable_raw_mode()
b: strings.Builder
strings.builder_init(&b, 0, 512)
defer {
strings.builder_reset(&b)
term.reset_style(&b)
fmt.print(strings.to_string(b))
strings.builder_destroy(&b)
}
for !term.should_quit() {
term.apply_style(&b, {fg = 34})
key := term.read_key()
if key.kind == .CtrlC {
break
}
strings.write_string(&b, "\x1b[1;1H")
strings.write_string(&b, "\x1b[0J")
for y in 0 ..< 10 {
i := y * 20
for x in 0 ..< 20 {
if key.kind == .Char && i + x == int(key.char) {
term.apply_style(&b, {fg = 31})
}
strings.write_byte(&b, 'x')
term.apply_style(&b, {fg = 34})
}
strings.write_string(&b, "\x1b[1E")
}
fmt.print(strings.to_string(b))
strings.builder_reset(&b)
term.reset_style(&b)
free_all(context.temp_allocator)
}
}