watch rework

This commit is contained in:
galister
2026-01-08 01:06:54 +09:00
parent 89e8d606a8
commit 4d1154cdcb
25 changed files with 376 additions and 730 deletions

View File

@@ -16,7 +16,6 @@
"HIDE_GRAB_HELP": "Greif-Hilfe ausblenden",
"ANIMATION_SPEED": "UI-Animationsgeschwindigkeit",
"ROUND_MULTIPLIER": "UI-Kantenrundung",
"SINGLE_SET_MODE": "Einzelnes Modus",
"USE_SKYBOX": "Skybox aktivieren",
"USE_PASSTHROUGH": "Passthrough aktivieren",
"CLOCK_12H": "12-Stunden-Uhr",
@@ -48,7 +47,6 @@
"SCREEN_RENDER_DOWN": "Bildschirm bei niedrigerer Auflösung rendern",
"UPRIGHT_SCREEN_FIX_HELP": "Behebt hochstehende Bildschirme auf einigen Desktops",
"DOUBLE_CURSOR_FIX_HELP": "Aktivieren Sie dies, wenn Sie 2 Cursor sehen",
"SINGLE_SET_MODE_HELP": "Optimieren Sie die Anzeige für die Arbeit mit einem einzelnen Monitor",
"XR_CLICK_SENSITIVITY_HELP": "Analoge Trigger-Empfindlichkeit",
"XR_CLICK_SENSITIVITY_RELEASE_HELP": "Muss niedriger als Klick sein",
"CLICK_FREEZE_TIME_MS_HELP": "Hilft bei der Präzision von Doppelklicks",
@@ -102,4 +100,4 @@
},
"TERMINATE_PROCESS": "Prozess beenden",
"GAME_LAUNCHED": "Spiel gestartet"
}
}

View File

@@ -10,7 +10,7 @@
"HIDE_GRAB_HELP": "Hide grab help",
"ANIMATION_SPEED": "UI Animation speed",
"ROUND_MULTIPLIER": "UI Edge roundness",
"SINGLE_SET_MODE": "Single set mode",
"SETS_ON_WATCH": "Sets on watch",
"USE_SKYBOX": "Enable skybox",
"USE_PASSTHROUGH": "Enable passthrough",
"CLOCK_12H": "12-hour clock",
@@ -49,7 +49,6 @@
"UPRIGHT_SCREEN_FIX_HELP": "Fixes upright screens on some desktops",
"DOUBLE_CURSOR_FIX_HELP": "Enable this if you see 2 cursors",
"SINGLE_SET_MODE_HELP": "Optimize the watch for working with a single set",
"XR_CLICK_SENSITIVITY_HELP": "Analog trigger sensitivity",
"XR_CLICK_SENSITIVITY_RELEASE_HELP": "Must be lower than click",
"CLICK_FREEZE_TIME_MS_HELP": "Helps with double-click precision",

View File

@@ -16,7 +16,6 @@
"HIDE_GRAB_HELP": "掴み操作のヘルプを非表示にする",
"ANIMATION_SPEED": "UIアニメーション速度",
"ROUND_MULTIPLIER": "UI エッジの丸み",
"SINGLE_SET_MODE": "単一設定モード",
"USE_SKYBOX": "スカイボックスを有効にする",
"USE_PASSTHROUGH": "パススルーを有効にする",
"CLOCK_12H": "12時間制",
@@ -48,7 +47,6 @@
"SCREEN_RENDER_DOWN": "低い解像度で画面をレンダリングする",
"UPRIGHT_SCREEN_FIX_HELP": "一部のデスクトップで縦向きの画面を修正",
"DOUBLE_CURSOR_FIX_HELP": "2つのカーソルが表示される場合は、これを有効にします",
"SINGLE_SET_MODE_HELP": "シングルセットでの作業用に最適化",
"XR_CLICK_SENSITIVITY_HELP": "アナログトリガの感度",
"XR_CLICK_SENSITIVITY_RELEASE_HELP": "クリックより低くする必要があります",
"CLICK_FREEZE_TIME_MS_HELP": "ダブルクリックの精度向上に役立ちます",

View File

@@ -10,7 +10,6 @@
"HIDE_GRAB_HELP": "Ukryj pomoc dotyczącą chwytania",
"ANIMATION_SPEED": "Prędkość animacji UI",
"ROUND_MULTIPLIER": "Zaokrąglenie krawędzi UI",
"SINGLE_SET_MODE": "Tryb pojedynczego zestawu",
"USE_SKYBOX": "Włącz niebo",
"USE_PASSTHROUGH": "Włącz passthrough",
"CLOCK_12H": "Zegar 12-godzinny",
@@ -42,7 +41,6 @@
"SCREEN_RENDER_DOWN": "Renderuj ekran w niższej rozdzielczości",
"UPRIGHT_SCREEN_FIX_HELP": "Naprawia pionowe ekrany na niektórych komputerach",
"DOUBLE_CURSOR_FIX_HELP": "Włącz to, jeśli widzisz 2 kursory",
"SINGLE_SET_MODE_HELP": "Zoptymalizuj oglądanie dla pracy z jednym zestawem",
"XR_CLICK_SENSITIVITY_HELP": "Czułość analogowego spustu",
"XR_CLICK_SENSITIVITY_RELEASE_HELP": "Musi być niższa niż kliknięcie",
"CLICK_FREEZE_TIME_MS_HELP": "Pomaga w precyzji podwójnego kliknięcia",
@@ -102,4 +100,4 @@
},
"TERMINATE_PROCESS": "Zakończ proces",
"GAME_LAUNCHED": "Gra uruchomiona"
}
}

View File

@@ -36,22 +36,29 @@ impl<T> Tab<T> for TabSettings<T> {
fn update(&mut self, frontend: &mut Frontend<T>, data: &mut T) -> anyhow::Result<()> {
let config = frontend.interface.general_config(data);
let mut changed = false;
for task in self.tasks.drain() {
match task {
Task::UpdateBool(setting, n) => {
setting.get_frontend_task().map(|task| frontend.tasks.push(task));
*setting.mut_bool(config) = n;
changed = true;
}
Task::UpdateFloat(setting, n) => {
setting.get_frontend_task().map(|task| frontend.tasks.push(task));
*setting.mut_f32(config) = n;
changed = true;
}
Task::UpdateInt(setting, n) => {
setting.get_frontend_task().map(|task| frontend.tasks.push(task));
*setting.mut_i32(config) = n;
changed = true;
}
}
}
if changed {
frontend.interface.config_changed(data);
}
Ok(())
}
}
@@ -70,7 +77,7 @@ enum SettingType {
KeyboardSoundEnabled,
UprightScreenFix,
DoubleCursorFix,
SingleSetMode,
SetsOnWatch,
HideGrabHelp,
XrClickSensitivity,
XrClickSensitivityRelease,
@@ -103,7 +110,7 @@ impl SettingType {
Self::KeyboardSoundEnabled => &mut config.keyboard_sound_enabled,
Self::UprightScreenFix => &mut config.upright_screen_fix,
Self::DoubleCursorFix => &mut config.double_cursor_fix,
Self::SingleSetMode => &mut config.single_set_mode,
Self::SetsOnWatch => &mut config.sets_on_watch,
Self::HideGrabHelp => &mut config.hide_grab_help,
Self::AllowSliding => &mut config.allow_sliding,
Self::FocusFollowsMouseMode => &mut config.focus_follows_mouse_mode,
@@ -158,7 +165,7 @@ impl SettingType {
Self::KeyboardSoundEnabled => Ok("APP_SETTINGS.KEYBOARD_SOUND_ENABLED"),
Self::UprightScreenFix => Ok("APP_SETTINGS.UPRIGHT_SCREEN_FIX"),
Self::DoubleCursorFix => Ok("APP_SETTINGS.DOUBLE_CURSOR_FIX"),
Self::SingleSetMode => Ok("APP_SETTINGS.SINGLE_SET_MODE"),
Self::SetsOnWatch => Ok("APP_SETTINGS.SETS_ON_WATCH"),
Self::HideGrabHelp => Ok("APP_SETTINGS.HIDE_GRAB_HELP"),
Self::XrClickSensitivity => Ok("APP_SETTINGS.XR_CLICK_SENSITIVITY"),
Self::XrClickSensitivityRelease => Ok("APP_SETTINGS.XR_CLICK_SENSITIVITY_RELEASE"),
@@ -186,7 +193,6 @@ impl SettingType {
match self {
Self::UprightScreenFix => Some("APP_SETTINGS.UPRIGHT_SCREEN_FIX_HELP"),
Self::DoubleCursorFix => Some("APP_SETTINGS.DOUBLE_CURSOR_FIX_HELP"),
Self::SingleSetMode => Some("APP_SETTINGS.SINGLE_SET_MODE_HELP"),
Self::XrClickSensitivity => Some("APP_SETTINGS.XR_CLICK_SENSITIVITY_HELP"),
Self::XrClickSensitivityRelease => Some("APP_SETTINGS.XR_CLICK_SENSITIVITY_RELEASE_HELP"),
Self::FocusFollowsMouseMode => Some("APP_SETTINGS.FOCUS_FOLLOWS_MOUSE_MODE_HELP"),
@@ -207,7 +213,7 @@ impl SettingType {
| Self::RoundMultiplier
| Self::UprightScreenFix
| Self::DoubleCursorFix
| Self::SingleSetMode
| Self::SetsOnWatch
| Self::UseSkybox
| Self::UsePassthrough
| Self::ScreenRenderDown => true,
@@ -388,7 +394,7 @@ impl<T> TabSettings<T> {
checkbox!(mp, c, SettingType::HideGrabHelp);
slider_f32!(mp, c, SettingType::AnimationSpeed, 0.5, 5.0, 0.1); // min, max, step
slider_f32!(mp, c, SettingType::RoundMultiplier, 0.5, 5.0, 0.1);
checkbox!(mp, c, SettingType::SingleSetMode);
checkbox!(mp, c, SettingType::SetsOnWatch);
checkbox!(mp, c, SettingType::UseSkybox);
checkbox!(mp, c, SettingType::UsePassthrough);
checkbox!(mp, c, SettingType::Clock12h);