cushy/examples/manual-tabs.rs
Jonathan Johnson df479e983e
Renaming crate to Cushy
Refs #117
2023-12-27 19:02:59 -08:00

34 lines
937 B
Rust

//! This example show show to use a stack of buttons and a switcher to achieve a
//! tab-like widget.
use std::collections::HashMap;
use cushy::value::{Dynamic, Switchable};
use cushy::widget::MakeWidget;
use cushy::Run;
#[derive(Debug, Eq, PartialEq, Clone, Hash)]
enum Tab {
First,
Second,
Missing,
}
fn main() -> cushy::Result {
let mut tab_contents = HashMap::new();
tab_contents.insert(Tab::First, "This is the first tab!".make_widget());
tab_contents.insert(Tab::Second, "This is the second tab!".make_widget());
let selected_tab = Dynamic::new(Tab::First);
let tabs = selected_tab
.new_select(Tab::First, "First")
.and(selected_tab.new_select(Tab::Second, "Second"))
.and(selected_tab.new_select(Tab::Missing, "Missing"))
.into_columns();
tabs.and(selected_tab.switch_between(tab_contents))
.into_rows()
.fit_vertically()
.run()
}