use turbo_vision::prelude::*;
use turbo_vision::core::event::{KB_ALT_X, KB_ESC};
use turbo_vision::views::button::ButtonBuilder;
use turbo_vision::views::status_line::{StatusItem, StatusLine};
use turbo_vision::views::window::WindowBuilder;
const CMD_TEST: u16 = 100;
fn main() -> turbo_vision::core::error::Result<()> {
let mut app = Application::new()?;
let (width, height) = app.terminal.size();
let status_line = StatusLine::new(
Rect::new(0, height - 1, width, height),
vec![
StatusItem::new("~Alt-X~ Exit", KB_ALT_X, CM_QUIT),
StatusItem::new("~Esc~ Exit", KB_ESC, CM_QUIT),
],
);
app.set_status_line(status_line);
let mut window = WindowBuilder::new().bounds(Rect::new(20, 5, 60, 15)).title("Window with Button").build();
let button = ButtonBuilder::new().bounds(Rect::new(10, 4, 30, 6)).title("~T~est Button").command(CMD_TEST).build();
window.add(Box::new(button));
app.desktop.add(Box::new(window));
app.run();
Ok(())
}