1use tuit::prelude::*;
4use tuit::std::stdout_render::StdoutRenderer;
5use tuit::style::{Ansi4, Colour::Ansi16, Style};
6use tuit::terminal::ConstantSize;
7use tuit::widgets::builtins::sweeper::Sweeper;
8use tuit::widgets::builtins::{Buttons, Text};
9
10#[cfg(not(feature = "ansi_renderer"))]
11fn main() {
12 println!("You must apply the stdout_render feature to view this example. Use `cargo --features stdout_render`");
13}
14
15#[cfg(feature = "ansi_renderer")]
16fn main() {
17 let mut terminal: ConstantSize<57, 14> = ConstantSize::new();
18 let mut renderer = StdoutRenderer::default();
25
26 let sweeper = Sweeper::of_colour(Ansi16(Ansi4::BrightCyan));
27 sweeper.drawn(&mut terminal).ok();
28
29 let query = Text::new("Continue?").with_margin(1);
30 let mut buttons = Buttons::new(&[" Yes ", " No "]);
31
32 buttons.selected_button_style = Style::new().fg(Ansi16(Ansi4::BrightWhite)).inverted();
33
34 let buttons = buttons.select_last();
35
36 let prompt = query.on_top_of(buttons).centered();
37
38 prompt.use_backdrop(Ansi16(Ansi4::Yellow)).drawn(&mut terminal).expect("Infallible");
39
40 prompt.drawn(&mut terminal).ok();
41
42 renderer.render(terminal).ok();
43}