Fully functional audio settings, add sprite_src for <Button>

This commit is contained in:
Aleksander
2025-12-06 12:08:25 +01:00
parent e83997bc08
commit bc5075a732
14 changed files with 457 additions and 28 deletions

View File

@@ -1,4 +1,5 @@
use crate::{
assets::AssetPath,
components::{Component, button, tooltip},
drawing::Color,
i18n::Translation,
@@ -27,6 +28,7 @@ pub fn parse_component_button<'a>(
let mut tooltip: Option<String> = None;
let mut tooltip_side: Option<tooltip::TooltipSide> = None;
let mut sticky: bool = false;
let mut sprite_src: Option<AssetPath> = None;
let mut translation: Option<Translation> = None;
@@ -60,6 +62,18 @@ pub fn parse_component_button<'a>(
"hover_border_color" => {
parse_color_opt(value, &mut hover_border_color);
}
"sprite_src" | "sprite_src_ext" | "sprite_src_internal" => {
let asset_path = match key {
"sprite_src" => AssetPath::BuiltIn(value),
"sprite_src_ext" => AssetPath::Filesystem(value),
"sprite_src_internal" => AssetPath::WguiInternal(value),
_ => unreachable!(),
};
if !value.is_empty() {
sprite_src = Some(asset_path);
}
}
"tooltip" => tooltip = Some(String::from(value)),
"tooltip_side" => {
tooltip_side = match value {
@@ -98,6 +112,7 @@ pub fn parse_component_button<'a>(
text: Translation::from_translation_key(&t),
}),
sticky,
sprite_src,
},
)?;