custom_chunk/
custom_chunk.rs

1use std::error::Error;
2
3use ratatui::{
4    prelude::{Constraint, Direction, Layout},
5    widgets::Paragraph,
6};
7use widgetui::*;
8
9struct TestChunk;
10
11pub fn chunk_generator(frame: Res<WidgetFrame>, mut chunks: ResMut<Chunks>) -> WidgetResult {
12    // A Custom macro to simplify creating your chunks!
13    let chunk = layout! {
14        frame.size(),
15        (%50),
16        (#1) => {#3, %100, #3},
17        (%50)
18    }[1][1];
19
20    chunks.register_chunk::<TestChunk>(chunk);
21
22    Ok(())
23}
24
25pub fn render(
26    mut frame: ResMut<WidgetFrame>,
27    chunks: Res<Chunks>,
28    mut events: ResMut<Events>,
29) -> WidgetResult {
30    let chunk = chunks.get_chunk::<TestChunk>()?;
31
32    frame.render_widget(Paragraph::new("Hello, world!"), chunk);
33
34    if events.key(crossterm::event::KeyCode::Char('q')) {
35        events.register_exit();
36    }
37
38    Ok(())
39}
40
41fn main() -> Result<(), Box<dyn Error>> {
42    Ok(App::new(100)?
43        .handle_panics()
44        .widgets((chunk_generator, render))
45        .run()?)
46}