add builder pattern and update examples

This commit is contained in:
Evan Almloff 2022-04-21 06:29:22 -05:00
parent 931aceca43
commit 9d9aa33e25
2 changed files with 29 additions and 6 deletions

View file

@ -3,9 +3,7 @@ use dioxus::prelude::*;
fn main() {
dioxus::tui::launch_cfg(
app,
dioxus::tui::Config {
rendering_mode: dioxus::tui::RenderingMode::Ansi,
},
dioxus::tui::Config::default().with_rendering_mode(dioxus::tui::RenderingMode::Ansi),
);
}

View file

@ -1,11 +1,36 @@
#[derive(Clone, Copy)]
#[non_exhaustive]
pub struct Config {
pub rendering_mode: RenderingMode,
pub(crate) rendering_mode: RenderingMode,
/// Controls if the terminal quit when the user presses `ctrl+c`?
/// To handle quiting on your own, use the [crate::TuiContext] root context.
pub ctrl_c_quit: bool,
pub(crate) ctrl_c_quit: bool,
/// Controls if the terminal should dislay anything, usefull for testing.
pub headless: bool,
pub(crate) headless: bool,
}
impl Config {
pub fn new() -> Self {
Self::default()
}
pub fn with_rendering_mode(self, rendering_mode: RenderingMode) -> Self {
Self {
rendering_mode,
..self
}
}
pub fn with_ctrl_c_quit(self, ctrl_c_quit: bool) -> Self {
Self {
ctrl_c_quit,
..self
}
}
pub fn with_headless(self, headless: bool) -> Self {
Self { headless, ..self }
}
}
impl Default for Config {