From 66ac622136fdb13c04d209465534438a6e5e4fa1 Mon Sep 17 00:00:00 2001
From: galister <22305755+galister@users.noreply.github.com>
Date: Wed, 18 Jun 2025 19:03:21 +0900
Subject: [PATCH] bar + watch
---
wgui/uidev-vk/assets/bar/add.svg | 1 +
wgui/uidev-vk/assets/bar/background-off.svg | 1 +
wgui/uidev-vk/assets/bar/background.svg | 1 +
wgui/uidev-vk/assets/bar/cancel.svg | 1 +
wgui/uidev-vk/assets/bar/checkbox-checked.svg | 1 +
wgui/uidev-vk/assets/bar/checkbox.svg | 1 +
wgui/uidev-vk/assets/bar/delete.svg | 1 +
wgui/uidev-vk/assets/bar/fade.svg | 1 +
wgui/uidev-vk/assets/bar/inout.svg | 1 +
wgui/uidev-vk/assets/bar/lock.svg | 1 +
wgui/uidev-vk/assets/bar/lock_open.svg | 1 +
wgui/uidev-vk/assets/bar/mouse.svg | 1 +
wgui/uidev-vk/assets/bar/mouse_lock.svg | 1 +
wgui/uidev-vk/assets/bar/move-all.svg | 1 +
wgui/uidev-vk/assets/bar/move-horizontal.svg | 1 +
wgui/uidev-vk/assets/bar/resize.svg | 1 +
wgui/uidev-vk/assets/bar/screen-add.svg | 1 +
wgui/uidev-vk/assets/bar/screen-options.svg | 1 +
wgui/uidev-vk/assets/bar/screen-remove.svg | 1 +
wgui/uidev-vk/assets/gui/bar.xml | 50 +++++++++++++++++++
wgui/uidev-vk/assets/gui/watch.xml | 50 +++++++++++++++++++
wgui/uidev-vk/assets/watch/controller.svg | 1 +
wgui/uidev-vk/assets/watch/hmd.svg | 1 +
wgui/uidev-vk/assets/watch/keyboard.svg | 1 +
wgui/uidev-vk/assets/watch/settings.svg | 1 +
wgui/uidev-vk/assets/watch/track.svg | 1 +
wgui/uidev-vk/assets/watch/track2.svg | 1 +
wgui/uidev-vk/assets/watch/track3.svg | 1 +
wgui/uidev-vk/src/main.rs | 5 +-
wgui/uidev-vk/src/testbed/mod.rs | 1 +
wgui/uidev-vk/src/testbed/testbed_any.rs | 33 ++++++++++++
31 files changed, 163 insertions(+), 2 deletions(-)
create mode 100644 wgui/uidev-vk/assets/bar/add.svg
create mode 100644 wgui/uidev-vk/assets/bar/background-off.svg
create mode 100644 wgui/uidev-vk/assets/bar/background.svg
create mode 100644 wgui/uidev-vk/assets/bar/cancel.svg
create mode 100644 wgui/uidev-vk/assets/bar/checkbox-checked.svg
create mode 100644 wgui/uidev-vk/assets/bar/checkbox.svg
create mode 100644 wgui/uidev-vk/assets/bar/delete.svg
create mode 100644 wgui/uidev-vk/assets/bar/fade.svg
create mode 100644 wgui/uidev-vk/assets/bar/inout.svg
create mode 100644 wgui/uidev-vk/assets/bar/lock.svg
create mode 100644 wgui/uidev-vk/assets/bar/lock_open.svg
create mode 100644 wgui/uidev-vk/assets/bar/mouse.svg
create mode 100644 wgui/uidev-vk/assets/bar/mouse_lock.svg
create mode 100644 wgui/uidev-vk/assets/bar/move-all.svg
create mode 100644 wgui/uidev-vk/assets/bar/move-horizontal.svg
create mode 100644 wgui/uidev-vk/assets/bar/resize.svg
create mode 100644 wgui/uidev-vk/assets/bar/screen-add.svg
create mode 100644 wgui/uidev-vk/assets/bar/screen-options.svg
create mode 100644 wgui/uidev-vk/assets/bar/screen-remove.svg
create mode 100644 wgui/uidev-vk/assets/gui/bar.xml
create mode 100644 wgui/uidev-vk/assets/gui/watch.xml
create mode 100644 wgui/uidev-vk/assets/watch/controller.svg
create mode 100644 wgui/uidev-vk/assets/watch/hmd.svg
create mode 100644 wgui/uidev-vk/assets/watch/keyboard.svg
create mode 100644 wgui/uidev-vk/assets/watch/settings.svg
create mode 100644 wgui/uidev-vk/assets/watch/track.svg
create mode 100644 wgui/uidev-vk/assets/watch/track2.svg
create mode 100644 wgui/uidev-vk/assets/watch/track3.svg
create mode 100644 wgui/uidev-vk/src/testbed/testbed_any.rs
diff --git a/wgui/uidev-vk/assets/bar/add.svg b/wgui/uidev-vk/assets/bar/add.svg
new file mode 100644
index 00000000..ea953031
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/add.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/background-off.svg b/wgui/uidev-vk/assets/bar/background-off.svg
new file mode 100644
index 00000000..b757f501
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/background-off.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/background.svg b/wgui/uidev-vk/assets/bar/background.svg
new file mode 100644
index 00000000..0b2f7563
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/background.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/cancel.svg b/wgui/uidev-vk/assets/bar/cancel.svg
new file mode 100644
index 00000000..1bcb38ee
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/cancel.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/checkbox-checked.svg b/wgui/uidev-vk/assets/bar/checkbox-checked.svg
new file mode 100644
index 00000000..c29bcad3
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/checkbox-checked.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/checkbox.svg b/wgui/uidev-vk/assets/bar/checkbox.svg
new file mode 100644
index 00000000..39b464f8
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/checkbox.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/delete.svg b/wgui/uidev-vk/assets/bar/delete.svg
new file mode 100644
index 00000000..a24e9167
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/delete.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/fade.svg b/wgui/uidev-vk/assets/bar/fade.svg
new file mode 100644
index 00000000..492cc337
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/fade.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/inout.svg b/wgui/uidev-vk/assets/bar/inout.svg
new file mode 100644
index 00000000..0490d958
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/inout.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/lock.svg b/wgui/uidev-vk/assets/bar/lock.svg
new file mode 100644
index 00000000..e83811be
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/lock.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/lock_open.svg b/wgui/uidev-vk/assets/bar/lock_open.svg
new file mode 100644
index 00000000..977433fa
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/lock_open.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/mouse.svg b/wgui/uidev-vk/assets/bar/mouse.svg
new file mode 100644
index 00000000..978985dc
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/mouse.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/mouse_lock.svg b/wgui/uidev-vk/assets/bar/mouse_lock.svg
new file mode 100644
index 00000000..5f865757
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/mouse_lock.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/move-all.svg b/wgui/uidev-vk/assets/bar/move-all.svg
new file mode 100644
index 00000000..1c1ad5cf
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/move-all.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/move-horizontal.svg b/wgui/uidev-vk/assets/bar/move-horizontal.svg
new file mode 100644
index 00000000..3ccc67a2
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/move-horizontal.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/resize.svg b/wgui/uidev-vk/assets/bar/resize.svg
new file mode 100644
index 00000000..ed581c28
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/resize.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/screen-add.svg b/wgui/uidev-vk/assets/bar/screen-add.svg
new file mode 100644
index 00000000..96d15de0
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/screen-add.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/screen-options.svg b/wgui/uidev-vk/assets/bar/screen-options.svg
new file mode 100644
index 00000000..99b6fd34
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/screen-options.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/bar/screen-remove.svg b/wgui/uidev-vk/assets/bar/screen-remove.svg
new file mode 100644
index 00000000..6fab54cf
--- /dev/null
+++ b/wgui/uidev-vk/assets/bar/screen-remove.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/gui/bar.xml b/wgui/uidev-vk/assets/gui/bar.xml
new file mode 100644
index 00000000..eaab8fd8
--- /dev/null
+++ b/wgui/uidev-vk/assets/gui/bar.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wgui/uidev-vk/assets/gui/watch.xml b/wgui/uidev-vk/assets/gui/watch.xml
new file mode 100644
index 00000000..7641ca6f
--- /dev/null
+++ b/wgui/uidev-vk/assets/gui/watch.xml
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/wgui/uidev-vk/assets/watch/controller.svg b/wgui/uidev-vk/assets/watch/controller.svg
new file mode 100644
index 00000000..b788296a
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/controller.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/watch/hmd.svg b/wgui/uidev-vk/assets/watch/hmd.svg
new file mode 100644
index 00000000..7d94e3b9
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/hmd.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/watch/keyboard.svg b/wgui/uidev-vk/assets/watch/keyboard.svg
new file mode 100644
index 00000000..fb614bfb
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/keyboard.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/watch/settings.svg b/wgui/uidev-vk/assets/watch/settings.svg
new file mode 100644
index 00000000..94122609
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/settings.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/watch/track.svg b/wgui/uidev-vk/assets/watch/track.svg
new file mode 100644
index 00000000..508603f3
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/track.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/watch/track2.svg b/wgui/uidev-vk/assets/watch/track2.svg
new file mode 100644
index 00000000..2f10406f
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/track2.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/assets/watch/track3.svg b/wgui/uidev-vk/assets/watch/track3.svg
new file mode 100644
index 00000000..3e1b821b
--- /dev/null
+++ b/wgui/uidev-vk/assets/watch/track3.svg
@@ -0,0 +1 @@
+
diff --git a/wgui/uidev-vk/src/main.rs b/wgui/uidev-vk/src/main.rs
index 18e879ec..4f7d7bd1 100644
--- a/wgui/uidev-vk/src/main.rs
+++ b/wgui/uidev-vk/src/main.rs
@@ -1,6 +1,6 @@
use glam::{Vec2, vec2};
use std::sync::Arc;
-use testbed::Testbed;
+use testbed::{Testbed, testbed_any::TestbedAny};
use timestep::Timestep;
use tracing_subscriber::EnvFilter;
use tracing_subscriber::filter::LevelFilter;
@@ -56,7 +56,8 @@ fn load_testbed() -> anyhow::Result> {
let name = std::env::var("TESTBED").unwrap_or_default();
Ok(match name.as_str() {
"dashboard" => Box::new(TestbedDashboard::new()?),
- _ => Box::new(TestbedGeneric::new()?),
+ "" => Box::new(TestbedGeneric::new()?),
+ _ => Box::new(TestbedAny::new(&name)?),
})
}
diff --git a/wgui/uidev-vk/src/testbed/mod.rs b/wgui/uidev-vk/src/testbed/mod.rs
index f57d0cfd..cdf6c234 100644
--- a/wgui/uidev-vk/src/testbed/mod.rs
+++ b/wgui/uidev-vk/src/testbed/mod.rs
@@ -1,5 +1,6 @@
use wgui::layout::Layout;
+pub mod testbed_any;
pub mod testbed_dashboard;
pub mod testbed_generic;
diff --git a/wgui/uidev-vk/src/testbed/testbed_any.rs b/wgui/uidev-vk/src/testbed/testbed_any.rs
new file mode 100644
index 00000000..7faa135e
--- /dev/null
+++ b/wgui/uidev-vk/src/testbed/testbed_any.rs
@@ -0,0 +1,33 @@
+use crate::{assets, testbed::Testbed};
+use glam::Vec2;
+use wgui::layout::Layout;
+
+pub struct TestbedAny {
+ pub layout: Layout,
+}
+
+impl TestbedAny {
+ pub fn new(name: &str) -> anyhow::Result {
+ let path = format!("gui/{name}.xml");
+ let mut layout = Layout::new(Box::new(assets::Asset {}))?;
+
+ let parent = layout.root_widget;
+
+ let _res = wgui::parser::parse_from_assets(&mut layout, parent, &path)?;
+
+ Ok(Self { layout })
+ }
+}
+
+impl Testbed for TestbedAny {
+ fn update(&mut self, width: f32, height: f32, timestep_alpha: f32) -> anyhow::Result<()> {
+ self
+ .layout
+ .update(Vec2::new(width, height), timestep_alpha)?;
+ Ok(())
+ }
+
+ fn layout(&mut self) -> &mut Layout {
+ &mut self.layout
+ }
+}