raclettui 0.2.1

Build terminal-themed wayland layer shell applications with Rust.
Documentation
use raclettui::events::{KeyCode, WindowEvent};
use raclettui::{Anchor, KeyboardInteractivity, Layer, WindowBuilder};

use ratatui::{
    Terminal,
    border,
    style::{Style, Styled, Color},
    widgets::{Block, Paragraph}
};

fn main() {
    env_logger::init();

    let window = WindowBuilder::new()
        .set_namespace("example")
        .set_width(300)
        .set_height(300)
        .set_layer(Layer::Overlay)
        .set_anchor(Anchor::Top)
        .set_keyboard_interactivity(KeyboardInteractivity::OnDemand)
        .set_bg_alpha(0.5)
        .init()
        .unwrap();

    let events = window.events();
    let mut terminal = Terminal::new(window).unwrap();

    loop {
        terminal.draw(|f| {
            let size = f.area();
            let paragraph = Paragraph::new("Hello World")
                .block(
                    Block::new()
                    .borders(border!(TOP, BOTTOM, RIGHT, LEFT))
                )
                .set_style(
                    Style::new()
                        .fg(Color::Red)
                        .bg(Color::Blue)
                );
            f.render_widget(paragraph, size);
        }).unwrap();

        for ev in events.drain() {
            if let WindowEvent::Keyboard(key_event) = ev {
                match key_event.code {
                    KeyCode::Char('q') | KeyCode::Esc => return,
                    _ => {}
                }
            }
        }
    }
}