display_list, add_display views (wip)
[skip ci]
This commit is contained in:
@@ -66,16 +66,12 @@ impl TabHome {
|
||||
let btn_processes = state.fetch_component_as::<ComponentButton>("btn_processes")?;
|
||||
let btn_settings = state.fetch_component_as::<ComponentButton>("btn_settings")?;
|
||||
|
||||
let frontend = params.frontend;
|
||||
Frontend::register_button_task(frontend.clone(), &btn_apps, FrontendTask::SetTab(TabType::Apps));
|
||||
Frontend::register_button_task(frontend.clone(), &btn_games, FrontendTask::SetTab(TabType::Games));
|
||||
Frontend::register_button_task(frontend.clone(), &btn_monado, FrontendTask::SetTab(TabType::Monado));
|
||||
Frontend::register_button_task(
|
||||
frontend.clone(),
|
||||
&btn_processes,
|
||||
FrontendTask::SetTab(TabType::Processes),
|
||||
);
|
||||
Frontend::register_button_task(frontend.clone(), &btn_settings, FrontendTask::SetTab(TabType::Settings));
|
||||
let tasks = params.frontend_tasks;
|
||||
tasks.handle_button(btn_apps, FrontendTask::SetTab(TabType::Apps));
|
||||
tasks.handle_button(btn_games, FrontendTask::SetTab(TabType::Games));
|
||||
tasks.handle_button(btn_monado, FrontendTask::SetTab(TabType::Monado));
|
||||
tasks.handle_button(btn_processes, FrontendTask::SetTab(TabType::Processes));
|
||||
tasks.handle_button(btn_settings, FrontendTask::SetTab(TabType::Settings));
|
||||
|
||||
Ok(Self { state })
|
||||
}
|
||||
|
||||
@@ -2,8 +2,9 @@ use wgui::{
|
||||
globals::WguiGlobals,
|
||||
layout::{Layout, WidgetID},
|
||||
};
|
||||
use wlx_common::dash_interface;
|
||||
|
||||
use crate::frontend::RcFrontend;
|
||||
use crate::frontend::{FrontendTasks, RcFrontend};
|
||||
|
||||
pub mod apps;
|
||||
pub mod games;
|
||||
@@ -28,9 +29,21 @@ pub struct TabParams<'a> {
|
||||
pub parent_id: WidgetID,
|
||||
pub frontend: &'a RcFrontend,
|
||||
pub settings: &'a mut crate::settings::Settings,
|
||||
pub frontend_tasks: &'a FrontendTasks,
|
||||
}
|
||||
|
||||
pub struct TabUpdateParams<'a> {
|
||||
pub globals: &'a WguiGlobals,
|
||||
pub frontend_tasks: &'a FrontendTasks,
|
||||
pub layout: &'a mut Layout,
|
||||
pub interface: &'a mut Box<dyn dash_interface::DashInterface>,
|
||||
}
|
||||
|
||||
pub trait Tab {
|
||||
#[allow(dead_code)]
|
||||
fn get_type(&self) -> TabType;
|
||||
|
||||
fn update(&mut self, _params: TabUpdateParams) -> anyhow::Result<()> {
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,19 +1,29 @@
|
||||
use wgui::{
|
||||
assets::AssetPath,
|
||||
parser::{ParseDocumentParams, ParserState},
|
||||
parser::{Fetchable, ParseDocumentParams, ParserState},
|
||||
};
|
||||
|
||||
use crate::tab::{Tab, TabParams, TabType};
|
||||
use crate::{
|
||||
tab::{Tab, TabParams, TabType, TabUpdateParams},
|
||||
views::display_list,
|
||||
};
|
||||
|
||||
pub struct TabProcesses {
|
||||
#[allow(dead_code)]
|
||||
pub state: ParserState,
|
||||
|
||||
view_display_list: display_list::View,
|
||||
}
|
||||
|
||||
impl Tab for TabProcesses {
|
||||
fn get_type(&self) -> TabType {
|
||||
TabType::Games
|
||||
}
|
||||
|
||||
fn update(&mut self, params: TabUpdateParams) -> anyhow::Result<()> {
|
||||
self.view_display_list.update(params.layout, params.interface)?;
|
||||
Ok(())
|
||||
}
|
||||
}
|
||||
|
||||
impl TabProcesses {
|
||||
@@ -28,6 +38,14 @@ impl TabProcesses {
|
||||
params.parent_id,
|
||||
)?;
|
||||
|
||||
Ok(Self { state })
|
||||
Ok(Self {
|
||||
view_display_list: display_list::View::new(display_list::Params {
|
||||
layout: params.layout,
|
||||
parent_id: state.get_widget_id("display_list_parent")?,
|
||||
globals: params.globals.clone(),
|
||||
frontend_tasks: params.frontend_tasks.clone(),
|
||||
})?,
|
||||
state,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user