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

@@ -0,0 +1,39 @@
use wgui::{
assets::AssetPath,
globals::WguiGlobals,
layout::{Layout, WidgetID},
parser::{ParseDocumentParams, ParserState},
};
use crate::util::desktop_finder::DesktopEntry;
pub struct View {
#[allow(dead_code)]
pub state: ParserState,
entry: DesktopEntry,
}
pub struct Params<'a> {
pub globals: WguiGlobals,
pub entry: DesktopEntry,
pub layout: &'a mut Layout,
pub parent_id: WidgetID,
}
impl View {
pub fn new(params: Params) -> anyhow::Result<Self> {
let doc_params = &ParseDocumentParams {
globals: params.globals.clone(),
path: AssetPath::BuiltIn("gui/view/app_launcher.xml"),
extra: Default::default(),
};
let mut state = wgui::parser::parse_from_assets(doc_params, params.layout, params.parent_id)?;
Ok(Self {
entry: params.entry,
state,
})
}
}