custom_chunk/
custom_chunk.rs1use 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 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}