use std::io::{self, Write};
use terminal_graphics_interactive::{Event, Terminal};
fn main() -> io::Result<()> {
let mut terminal = Terminal::start()?;
let key_release = std::env::args().any(|arg| arg == "--key-release");
let released = key_release && terminal.enable_key_release()?;
let mut out = io::stdout();
let (width, height) = terminal.size();
write!(
out,
"Move, click, drag, scroll or type. q or Ctrl+C quits.\r\nsize: {width}x{height}\r\n"
)?;
if key_release {
let state = if released { "on" } else { "off" };
write!(out, "key release: {state}\r\n")?;
}
out.flush()?;
loop {
let event = terminal.wait()?;
write!(out, "{event:?}\r\n")?;
out.flush()?;
if let Event::Key(key) = event {
if key.is_char('q') || key.is_ctrl('c') {
return Ok(());
}
}
}
}