Files
wayvr/dash-frontend/src/tab/mod.rs
2025-11-06 21:12:26 +01:00

52 lines
920 B
Rust

use std::rc::Rc;
use wgui::{
components::button::ComponentButton,
event::CallbackDataCommon,
globals::WguiGlobals,
layout::{Layout, WidgetID},
};
use crate::frontend::{FrontendTask, RcFrontend};
pub mod apps;
pub mod games;
pub mod home;
pub mod monado;
pub mod processes;
pub mod settings;
#[derive(Clone, Copy, Debug)]
pub enum TabType {
Home,
Apps,
Games,
Monado,
Processes,
Settings,
}
pub struct TabParams<'a> {
pub globals: &'a WguiGlobals,
pub layout: &'a mut Layout,
pub parent_id: WidgetID,
pub frontend: &'a RcFrontend,
pub settings: &'a mut crate::settings::Settings,
}
pub trait Tab {
#[allow(dead_code)]
fn get_type(&self) -> TabType;
}
impl TabType {
pub fn register_button(this_rc: RcFrontend, btn: &Rc<ComponentButton>, tab: TabType) {
btn.on_click({
Box::new(move |_common, _evt| {
this_rc.borrow_mut().push_task(FrontendTask::SetTab(tab));
Ok(())
})
});
}
}