wgui: Separate user and wgui assets, topmost widgets (poc)

This commit is contained in:
Aleksander
2025-10-05 13:48:58 +02:00
parent 71d7d50e35
commit 3dff9c5882
32 changed files with 442 additions and 151 deletions

View File

@@ -3,6 +3,7 @@ use std::{cell::RefCell, collections::VecDeque, rc::Rc};
use chrono::Timelike;
use glam::Vec2;
use wgui::{
assets::AssetPath,
components::button::ComponentButton,
event::{CallbackDataCommon, EventAlterables, EventListenerCollection},
globals::WguiGlobals,
@@ -56,7 +57,7 @@ impl Frontend {
params.listeners,
&ParseDocumentParams {
globals: globals.clone(),
path: "gui/dashboard.xml",
path: AssetPath::BuiltIn("gui/dashboard.xml"),
extra: Default::default(),
},
&LayoutParams { resize_to_parent: true },

View File

@@ -1,6 +1,7 @@
use std::{collections::HashMap, rc::Rc};
use wgui::{
assets::AssetPath,
components::button::ComponentButton,
layout::WidgetPair,
parser::{Fetchable, ParseDocumentParams, ParserData, ParserState},
@@ -36,7 +37,7 @@ impl TabApps {
pub fn new(mut tab_params: TabParams) -> anyhow::Result<Self> {
let doc_params = &ParseDocumentParams {
globals: tab_params.globals.clone(),
path: "gui/tab/apps.xml",
path: AssetPath::BuiltIn("gui/tab/apps.xml"),
extra: Default::default(),
};

View File

@@ -1,4 +1,7 @@
use wgui::parser::{ParseDocumentParams, ParserState};
use wgui::{
assets::AssetPath,
parser::{ParseDocumentParams, ParserState},
};
use crate::tab::{Tab, TabParams, TabType};
@@ -18,7 +21,7 @@ impl TabGames {
let state = wgui::parser::parse_from_assets(
&ParseDocumentParams {
globals: params.globals.clone(),
path: "gui/tab/games.xml",
path: AssetPath::BuiltIn("gui/tab/games.xml"),
extra: Default::default(),
},
params.layout,

View File

@@ -1,4 +1,5 @@
use wgui::{
assets::AssetPath,
components::button::ComponentButton,
i18n::Translation,
parser::{Fetchable, ParseDocumentParams, ParserState},
@@ -38,7 +39,7 @@ impl TabHome {
let state = wgui::parser::parse_from_assets(
&ParseDocumentParams {
globals: params.globals.clone(),
path: "gui/tab/home.xml",
path: AssetPath::BuiltIn("gui/tab/home.xml"),
extra: Default::default(),
},
params.layout,

View File

@@ -1,4 +1,7 @@
use wgui::parser::{ParseDocumentParams, ParserState};
use wgui::{
assets::AssetPath,
parser::{ParseDocumentParams, ParserState},
};
use crate::tab::{Tab, TabParams, TabType};
@@ -18,7 +21,7 @@ impl TabMonado {
let state = wgui::parser::parse_from_assets(
&ParseDocumentParams {
globals: params.globals.clone(),
path: "gui/tab/monado.xml",
path: AssetPath::BuiltIn("gui/tab/monado.xml"),
extra: Default::default(),
},
params.layout,

View File

@@ -1,4 +1,7 @@
use wgui::parser::{ParseDocumentParams, ParserState};
use wgui::{
assets::AssetPath,
parser::{ParseDocumentParams, ParserState},
};
use crate::tab::{Tab, TabParams, TabType};
@@ -18,7 +21,7 @@ impl TabProcesses {
let state = wgui::parser::parse_from_assets(
&ParseDocumentParams {
globals: params.globals.clone(),
path: "gui/tab/processes.xml",
path: AssetPath::BuiltIn("gui/tab/processes.xml"),
extra: Default::default(),
},
params.layout,

View File

@@ -1,4 +1,7 @@
use wgui::parser::{ParseDocumentParams, ParserState};
use wgui::{
assets::AssetPath,
parser::{ParseDocumentParams, ParserState},
};
use crate::tab::{Tab, TabParams, TabType};
@@ -18,7 +21,7 @@ impl TabSettings {
let state = wgui::parser::parse_from_assets(
&ParseDocumentParams {
globals: params.globals.clone(),
path: "gui/tab/settings.xml",
path: AssetPath::BuiltIn("gui/tab/settings.xml"),
extra: Default::default(),
},
params.layout,

View File

@@ -2,6 +2,7 @@ use gio::prelude::{AppInfoExt, IconExt};
use gtk::traits::IconThemeExt;
#[derive(Debug)]
#[allow(dead_code)] // TODO: remove this
pub struct DesktopEntry {
pub exec_path: String,
pub exec_args: Vec<String>,
@@ -10,6 +11,7 @@ pub struct DesktopEntry {
pub categories: Vec<String>,
}
#[allow(dead_code)] // TODO: remove this
pub struct EntrySearchCell {
pub exec_path: String,
pub exec_args: Vec<String>,