use bracket_lib::prelude::*;
use ratatui::{prelude::*, text::*, widgets::*};
use bracket_ratatui::BracketBackend;
struct State {
my_terminal: Terminal<BracketBackend>,
}
impl GameState for State {
fn tick(&mut self, ctx: &mut BTerm) {
self.my_terminal.draw(|frame| {
let area = frame.size();
frame.render_widget(
Paragraph::new("Hello Ratatui! (press 'q' to quit)")
.white()
.on_blue(),
area,
);
});
match ctx.key {
None => {}
Some(key) => {
if key == VirtualKeyCode::Q {
ctx.quit();
let x = &mut self.my_terminal.backend_mut().bracket_term;
x.quit();
}
}
}
*ctx = self.my_terminal.backend().bracket_term.clone();
}
}
fn main() -> BError {
let context = BTermBuilder::simple80x50()
.with_title("Hello Bracket Ratatui")
.build()?;
let gs: State = State {
my_terminal: Terminal::new(BracketBackend::new(context))?,
};
main_loop(gs.my_terminal.backend().bracket_term.clone(), gs)
}