Files
managarr-tree-widget/examples/util/mod.rs
2022-08-31 18:28:11 +02:00

52 lines
989 B
Rust

use tui_tree_widget::{TreeItem, TreeState};
pub struct StatefulTree<'a> {
pub state: TreeState,
pub items: Vec<TreeItem<'a>>,
}
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>>) -> Self {
Self {
state: TreeState::default(),
items,
}
}
pub fn first(&mut self) {
self.state.select_first();
}
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();
}
}