mirror of
https://codeberg.org/unspeaker/tengri.git
synced 2026-08-07 14:16:56 +02:00
38 lines
925 B
Rust
38 lines
925 B
Rust
//! Mode 00: Direct draw, direct control
|
|
|
|
use ::tengri::{
|
|
*,
|
|
lang::*,
|
|
crossterm::event::{KeyEvent, Event::*, KeyCode::*},
|
|
ratatui::style::Color,
|
|
};
|
|
|
|
tui_app!(State {
|
|
/** User-controllable value. */
|
|
counter: usize,
|
|
});
|
|
|
|
tui_view!(self: State {
|
|
thunk(|to: &mut Tui|{
|
|
let _ = "DEMO [MODE 00]".align_sw().draw(to);
|
|
let _ = ShowSize.align_se().draw(to);
|
|
let _ = format!("Counter:\n{}", self.counter).align_c().draw(to);
|
|
Ok(Some(to.area()))
|
|
})
|
|
});
|
|
|
|
tui_keys!(self: State, input {
|
|
Ok(if let Key(KeyEvent { code, .. }) = input.0 {
|
|
match code {
|
|
Up | Right => {
|
|
self.counter = (self.counter + 1) % 10;
|
|
()
|
|
},
|
|
Down | Left => {
|
|
self.counter = if self.counter > 0 { self.counter - 1 } else { 10 - 1 };
|
|
()
|
|
},
|
|
_ => {}
|
|
}
|
|
})
|
|
});
|