bar + overlaybackend refactor

This commit is contained in:
galister
2025-07-03 02:42:49 +09:00
parent 9bbc7b2d22
commit 40f50a147b
65 changed files with 1743 additions and 1935 deletions

View File

@@ -0,0 +1,45 @@
use crate::{
backend::overlay::{OverlayData, OverlayState},
gui::panel::GuiPanel,
state::AppState,
};
pub const BAR_NAME: &str = "bar";
struct BarState {}
#[allow(clippy::significant_drop_tightening)]
pub fn create_bar<O>(app: &mut AppState) -> anyhow::Result<OverlayData<O>>
where
O: Default,
{
let state = BarState {};
let (mut panel, parser) = GuiPanel::new_from_template(app, "gui/bar.xml", state)?;
for (id, widget_id) in parser.ids {
match id.as_ref() {
"lock" => {}
"anchor" => {}
"mouse" => {}
"fade" => {}
"move" => {}
"resize" => {}
"inout" => {}
"delete" => {}
_ => {}
}
}
panel.update_layout()?;
Ok(OverlayData {
state: OverlayState {
name: BAR_NAME.into(),
want_visible: true,
interactable: true,
spawn_scale: 0.15,
..Default::default()
},
..OverlayData::from_backend(Box::new(panel))
})
}