use std::vec;
use crate::item::UCLISelectItem;
#[derive(Debug, Clone)]
pub struct UCLISelect<T> {
pub items: Vec<UCLISelectItem<T>>,
selected: i32,
pub current: i32,
pub selections: Vec<UCLISelectItem<T>>
}
impl<T> UCLISelect<T> {
pub fn new(items: Vec<UCLISelectItem<T>>) -> Self {
Self {
items,
selected: -1, current: -1, selections: vec![]
}
}
pub fn set_selected(&mut self) -> &Self {
self.selected = self.current;
self
}
pub fn set_current(&mut self, i: i32) -> &Self {
self.current = i;
self
}
pub fn get_selected(&self) -> Option<&UCLISelectItem<T>> {
if self.selected >= 0 {
return Some(&self.items[self.selected as usize]);
}
None
}
}