1 unstable release
0.2.0 | Nov 17, 2024 |
---|---|
0.1.1 |
|
0.1.0 |
|
#430 in GUI
123 downloads per month
Used in too_crossterm
490KB
13K
SLoC
too
too -- a different kind of tui library
Simple examples
Centering some text:
fn main() -> std::io::Result<()> {
too::run(|ui| {
ui.center(|ui| ui.label("hello world"));
})
}
A pair of buttons to increment and decrement a counter
fn main() -> std::io::Result<()> {
let mut counter = 0;
too::run(|ui| {
ui.vertical(|ui|{
ui.horizontal(|ui|{
if ui.button("add 1").clicked() {
counter += 1;
}
if ui.button("subtract 1").clicked() {
counter -= 1;
}
});
ui.label(counter)
});
})
}
Storing state in a struct
use too::view::Ui;
#[derive(Default)]
struct App {
value: f32
}
impl App {
fn view(&mut self, ui: &Ui) {
ui.slider(&mut value);
}
}
fn main() -> std::io::Result<()> {
let mut app = App::default()
too::run(|ui| app.view(ui))
}
Storing state seperately from an application
use too::view::Ui;
#[derive(Default)]
struct State {
value: f32
}
struct App ;
impl App {
fn view(&self, state: &mut State, ui: &Ui) {
ui.slider(&mut state.value);
}
}
fn main() -> std::io::Result<()> {
let app = App;
let mut state = State::default();
too::run(|ui| app.view(&mut state, ui))
}
Some pre-made views are provided in: too::views
License: MIT OR Apache-2.0
Dependencies
~3–12MB
~132K SLoC