liftof_tui/
layout.rs

1//! Main laoyt of the app
2
3use ratatui::layout::{
4  Constraint,
5  Direction,
6  Layout,
7  Rect
8};
9
10#[derive(Debug, Clone)]
11pub struct MainLayout {
12  pub menu : Rect,
13  pub main : Rect,
14  pub log  : Rect,
15  pub help : Rect
16}
17
18impl MainLayout {
19
20  pub fn new(size : Rect) -> MainLayout {
21    let chunks = Layout::default()
22    .direction(Direction::Vertical)
23    //.margin(1)
24    .constraints(
25      [
26        Constraint::Length(3),
27        Constraint::Min(2),
28        Constraint::Length(5),
29      ]
30      .as_ref(),
31    )
32    .split(size);
33    // logs and help
34    let logs_n_help = Layout::default()
35    .direction(Direction::Horizontal)
36    .constraints(
37      [Constraint::Percentage(80),
38       Constraint::Percentage(20)]
39       .as_ref(),
40    )
41    .split(chunks[2]);  
42    MainLayout {
43      //rect : chunks.to_vec()
44      menu : chunks[0],
45      main : chunks[1],
46      log  : logs_n_help[0],
47      help : logs_n_help[1],
48    }
49  }
50}
51