use std::{error::Error, io::Stdout};
use crossterm::event::KeyEvent;
use dyn_clone::DynClone;
use tui::{backend::CrosstermBackend, layout::Rect, Frame};
use super::FrameworkClean;
#[allow(unused)]
pub trait FrameworkItem: DynClone {
fn selectable(&self) -> bool {
true
}
fn select(&mut self, framework: &FrameworkClean) -> Result<(), Box<dyn Error>> {
Ok(())
}
fn deselect(&mut self, framework: &FrameworkClean) -> Result<(), Box<dyn Error>> {
Ok(())
}
fn render(
&mut self,
frame: &mut Frame<CrosstermBackend<Stdout>>,
framework: &FrameworkClean,
area: Rect,
selected: bool,
hover: bool,
popup_render: bool,
) {
}
fn load_item(&mut self, framework: &FrameworkClean) {}
fn key_event(&mut self, framework: FrameworkClean, key: KeyEvent) {}
}