dash-frontend: popup manager

This commit is contained in:
Aleksander
2025-11-27 23:28:10 +01:00
parent 192ffab4fd
commit 7d581c1561
12 changed files with 259 additions and 13 deletions

View File

@@ -8,8 +8,10 @@ use wgui::{
};
use crate::{
frontend::FrontendTask,
tab::{Tab, TabParams, TabType},
util::{self, desktop_finder::DesktopEntry},
views,
};
pub struct TabApps {
@@ -95,10 +97,14 @@ impl AppList {
let data = parser_state.parse_template(doc_params, "AppEntry", params.layout, list_parent.id, template_params)?;
let button = data.fetch_component_as::<ComponentButton>("button")?;
button.on_click(Box::new(move |_common, _evt| {
log::info!("click");
Ok(())
}));
button.on_click({
let frontend = params.frontend.clone();
Box::new(move |_common, _evt| {
frontend.borrow_mut().push_task(FrontendTask::MountPopup);
Ok(())
})
});
self.data.push(data);

View File

@@ -6,7 +6,7 @@ use wgui::{
layout::{Layout, WidgetID},
};
use crate::frontend::{FrontendTask, RcFrontend};
use crate::frontend::{FrontendTask, FrontendWidgets, RcFrontend};
pub mod apps;
pub mod games;
@@ -30,6 +30,7 @@ pub struct TabParams<'a> {
pub layout: &'a mut Layout,
pub parent_id: WidgetID,
pub frontend: &'a RcFrontend,
pub frontend_widgets: &'a FrontendWidgets,
pub settings: &'a mut crate::settings::Settings,
}