init

Function init 

Source
pub fn init(alternative_screen: bool) -> App
Examples found in repository?
examples/main.rs (line 40)
6fn main() {
7    const LOREM: &str = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
8Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
9Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
10Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
11
12Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean purus lectus, pharetra interdum felis id, suscipit pulvinar arcu.
13Fusce ut eleifend orci. Vestibulum nec fringilla neque.
14Nullam risus lacus, tincidunt non odio non, mattis rutrum sem.
15Interdum et malesuada fames ac ante ipsum primis in faucibus.
16Sed condimentum, arcu eu euismod accumsan, diam odio tristique arcu, volutpat egestas elit nunc nec erat.
17Pellentesque eget quam ac dolor suscipit blandit.
18Curabitur suscipit condimentum mauris, eget porta justo vulputate lobortis.
19Nullam et tempor ligula.
20Mauris porta pellentesque tellus quis sagittis.
21Phasellus sit amet elit nec ipsum dictum laoreet luctus id ligula. Sed ac pretium tellus.
22Fusce sit amet congue ex, et varius enim.
23Praesent sit amet pretium augue, vitae volutpat ipsum.
24
25Suspendisse lacinia malesuada dolor, sed pellentesque eros egestas ac.
26Donec porta, tortor eget cursus commodo, sapien lacus congue magna, non lacinia ipsum nunc ac nunc.
27Morbi vel dui vel mi luctus mattis nec nec nulla.
28Integer a lacinia sapien. Nullam sed tortor massa.
29Sed sit amet feugiat ante, non egestas neque.
30Donec bibendum ultricies viverra.
31Sed sit amet tincidunt magna.
32Nam eget massa viverra, efficitur eros vel, tempus velit.
33Aenean luctus lectus massa, nec sagittis dui congue vel.
34Donec id mauris diam.
35Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.
36Sed bibendum sem ac auctor malesuada.
37Praesent auctor, augue quis pellentesque sollicitudin, erat orci porta lectus, a malesuada justo sem at erat.
38Phasellus maximus justo eu lacus pharetra ullamcorper.";
39    let term = libtui::terminal::Terminal::default();
40    let mut app = libtui::init(true);
41    app.push(Window::new("Jeff".to_owned(),
42                         (term.get_size().0 / 2, term.get_size().1 / 2),
43                         (0, 0),
44                         LOREM.to_owned(),
45                         None,
46                         None,
47                         [true, true, true, false]));
48    app.push(Window::new("Jeff2".to_owned(), (term.get_size().0 / 2 - 2, term.get_size().1 / 2), (term.get_size().0 / 2 + 1, 0), LOREM.to_owned(), Some((1, 6)), None, [true, true, true, true]));
49    app.push(Window::new("Cmds".to_owned(), (term.get_size().0, term.get_size().1 / 2), (0, term.get_size().1 / 2 + 1), ":".to_owned(), None, None, [false, false, false, true]));
50    const BORDER: [&str; 4] = ["\x1b[7m ", " \x1b[0m", "\x1b[7m ", " \x1b[0m"];
51    let conf = Config { title:            Location::Center,
52                        border_connector: BORDER,
53                        border_len:       [1, 1, 1, 1],
54                        border_h:         " ",
55                        border_v:         "\x1b[7m \x1b[0m",
56                        line_num:         LineNum { std_num_color: "\x1b[7m", current_num_color: "\x1b[43;30m" } };
57    loop {
58        let keys = get_keys();
59
60        match keys {
61            | Keys::CtrlChar('q') => break,
62            | Keys::Arrow(ArrowKey::Right) => {
63                let app_win = app.wins[0].dimensions.clone();
64                app.wins[0].set_size((app_win.width + 1, app_win.height));
65            },
66            | Keys::Arrow(ArrowKey::Left) => {
67                let app_win = app.wins[0].dimensions.clone();
68                app.wins[0].set_size((app_win.width - 1, app_win.height));
69            },
70            | Keys::Arrow(ArrowKey::Up) => {
71                let app_win = app.wins[0].dimensions.clone();
72                app.wins[0].set_size((app_win.width, app_win.height - 1));
73            },
74            | Keys::Arrow(ArrowKey::Down) => {
75                let app_win = app.wins[0].dimensions.clone();
76                app.wins[0].set_size((app_win.width, app_win.height + 1));
77            },
78            | _ => ()
79        };
80        let app_win = app.wins[0].dimensions.clone();
81        app.wins[1].pos.x = app_win.width + 1;
82        app.wins[1].set_size((term.get_size().0 - app_win.width - 2, app_win.height));
83        app.wins[2].pos.y = app_win.height;
84        app.wins[2].set_size((term.get_size().0, term.get_size().1 - app_win.height));
85        app.render(&conf);
86    }
87}