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 0000000..ea95303
--- /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 0000000..b757f50
--- /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 0000000..0b2f756
--- /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 0000000..1bcb38e
--- /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 0000000..c29bcad
--- /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 0000000..39b464f
--- /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 0000000..a24e916
--- /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 0000000..492cc33
--- /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 0000000..0490d95
--- /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 0000000..e83811b
--- /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 0000000..977433f
--- /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 0000000..978985d
--- /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 0000000..5f86575
--- /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 0000000..1c1ad5c
--- /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 0000000..3ccc67a
--- /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 0000000..ed581c2
--- /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 0000000..96d15de
--- /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 0000000..99b6fd3
--- /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 0000000..6fab54c
--- /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 0000000..eaab8fd
--- /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 0000000..7641ca6
--- /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 0000000..b788296
--- /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 0000000..7d94e3b
--- /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 0000000..fb614bf
--- /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 0000000..9412260
--- /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 0000000..508603f
--- /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 0000000..2f10406
--- /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 0000000..3e1b821
--- /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 18e879e..4f7d7bd 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 f57d0cf..cdf6c23 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 0000000..7faa135
--- /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
+ }
+}