Files
managarr-tree-widget/examples/util/mod.rs
2023-10-30 13:18:58 +01:00

52 lines
1.0 KiB
Rust

use tui_tree_widget::{TreeItem, TreeState};
pub struct StatefulTree<'a> {
pub state: TreeState<&'static str>,
pub items: Vec<TreeItem<'a, &'static str>>,
}
impl<'a> StatefulTree<'a> {
#[allow(dead_code)]
pub fn new() -> Self {
Self {
state: TreeState::default(),
items: Vec::new(),
}
}
pub fn with_items(items: Vec<TreeItem<'a, &'static str>>) -> Self {
Self {
state: TreeState::default(),
items,
}
}
pub fn first(&mut self) {
self.state.select_first(&self.items);
}
pub fn last(&mut self) {
self.state.select_last(&self.items);
}
pub fn down(&mut self) {
self.state.key_down(&self.items);
}
pub fn up(&mut self) {
self.state.key_up(&self.items);
}
pub fn left(&mut self) {
self.state.key_left();
}
pub fn right(&mut self) {
self.state.key_right();
}
pub fn toggle(&mut self) {
self.state.toggle_selected();
}
}