mirror of https://github.com/wayvr-org/wayvr.git
save/reset playspace center
This commit is contained in:
parent
a12d1ff8f4
commit
beae8e82f5
|
|
@ -194,7 +194,11 @@
|
|||
"COLOR_PALETTE_CUSTOM_URL": "Füge dein eigenes benutzerdefiniertes Thema hinzu!",
|
||||
"COLOR_PALETTE_CUSTOM_URL2": "Klicken Sie hier, um das Web-Handbuch zu öffnen.",
|
||||
"SNAP_ANGLE_DEG": "Snap-Winkel für Fensterneigung und Rollwinkel",
|
||||
"SNAP_ANGLE_DEG_HELP": "Gegriffene Fenster rasten in diesem Winkel auf der Nick- und Rollachse ein."
|
||||
"SNAP_ANGLE_DEG_HELP": "Gegriffene Fenster rasten in diesem Winkel auf der Nick- und Rollachse ein.",
|
||||
"SAVE_PLAYSPACE_CENTER": "Playspace-Zentrum speichern",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "Nutzen Sie den aktuellen Playspace für die Zuweisung zum Zurücksetzen des Playspaces.",
|
||||
"RESET_PLAYSPACE_CENTER": "Playspace-Zentrum zurücksetzen",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "Zuvor festgelegtes Playspace-Zentrum zurücksetzen."
|
||||
},
|
||||
"HELLO": "Hallo!",
|
||||
"AUDIO": {
|
||||
|
|
|
|||
|
|
@ -167,6 +167,10 @@
|
|||
"REQUIRES_RESTART": "Requires restart",
|
||||
"RESET_PLAYSPACE": "Reset playspace",
|
||||
"RESET_PLAYSPACE_HELP": "Clear the stage space offset.",
|
||||
"SAVE_PLAYSPACE_CENTER": "Save playspace center",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "Use current playspace for reset playspace binding.",
|
||||
"RESET_PLAYSPACE_CENTER": "Reset playspace center",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "Clear previously set playspace center.",
|
||||
"RESTART_SOFTWARE": "Restart software",
|
||||
"RESTART_SOFTWARE_HELP": "Apply settings that require a restart",
|
||||
"ROUND_MULTIPLIER": "UI Edge roundness",
|
||||
|
|
|
|||
|
|
@ -194,7 +194,11 @@
|
|||
"COLOR_PALETTE_CUSTOM_URL": "¡Añade tu propio tema personalizado!",
|
||||
"COLOR_PALETTE_CUSTOM_URL2": "Haz clic para abrir el manual web.",
|
||||
"SNAP_ANGLE_DEG": "Ángulo de ajuste de cabeceo y alabeo de la ventana",
|
||||
"SNAP_ANGLE_DEG_HELP": "Las ventanas agarradas se ajustan a este ángulo en los ejes de cabeceo y balanceo."
|
||||
"SNAP_ANGLE_DEG_HELP": "Las ventanas agarradas se ajustan a este ángulo en los ejes de cabeceo y balanceo.",
|
||||
"SAVE_PLAYSPACE_CENTER": "Guardar centro del playspace",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "Usa el playspace actual para el comando de restablecer playspace.",
|
||||
"RESET_PLAYSPACE_CENTER": "Reiniciar centro del playspace",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "Borra el centro del playspace establecido previamente."
|
||||
},
|
||||
"HELLO": "¡Hola!",
|
||||
"AUDIO": {
|
||||
|
|
|
|||
|
|
@ -215,7 +215,11 @@
|
|||
"COLOR_PALETTE_CUSTOM_URL": "Aggiungi il tuo tema personalizzato!",
|
||||
"COLOR_PALETTE_CUSTOM_URL2": "Clicca per aprire il manuale web.",
|
||||
"SNAP_ANGLE_DEG": "Angolo di scatto beccheggio e rollio finestra",
|
||||
"SNAP_ANGLE_DEG_HELP": "Le finestre afferrate si allineano a questo angolo sugli assi di beccheggio e rollio."
|
||||
"SNAP_ANGLE_DEG_HELP": "Le finestre afferrate si allineano a questo angolo sugli assi di beccheggio e rollio.",
|
||||
"SAVE_PLAYSPACE_CENTER": "Salva centro playspace",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "Usa il playspace corrente per il comando di reset del playspace.",
|
||||
"RESET_PLAYSPACE_CENTER": "Ripristina centro playspace",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "Ripristina il centro del playspace impostato precedentemente."
|
||||
},
|
||||
"APPLICATION_LAUNCHER": "Lanciatore applicazioni",
|
||||
"APPLICATION_STARTED": "Applicazione avviata",
|
||||
|
|
|
|||
|
|
@ -194,7 +194,11 @@
|
|||
"COLOR_PALETTE_CUSTOM_URL": "カスタムテーマを追加しましょう!",
|
||||
"COLOR_PALETTE_CUSTOM_URL2": "クリックしてウェブマニュアルを開く。",
|
||||
"SNAP_ANGLE_DEG": "ウィンドウのピッチ・ロールのスナップ角度",
|
||||
"SNAP_ANGLE_DEG_HELP": "掴んでいるウィンドウが、ピッチ軸とロール軸でこの角度にスナップします。"
|
||||
"SNAP_ANGLE_DEG_HELP": "掴んでいるウィンドウが、ピッチ軸とロール軸でこの角度にスナップします。",
|
||||
"SAVE_PLAYSPACE_CENTER": "プレイスペースの中心を保存",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "現在のプレイスペースを、プレイスペースのリセットバインディングに使用します。",
|
||||
"RESET_PLAYSPACE_CENTER": "playspaceの中心をリセット",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "previously set playspace center をリセットします。"
|
||||
},
|
||||
"HELLO": "こんにちは!",
|
||||
"AUDIO": {
|
||||
|
|
|
|||
|
|
@ -189,7 +189,11 @@
|
|||
"COLOR_PALETTE_CUSTOM_URL": "Dodaj własny motyw!",
|
||||
"COLOR_PALETTE_CUSTOM_URL2": "Kliknij, aby otworzyć instrukcję internetową.",
|
||||
"SNAP_ANGLE_DEG": "Kąt przyciągania pochylenia i przechyłu okna",
|
||||
"SNAP_ANGLE_DEG_HELP": "Chwycone okna przyciągają się do tego kąta na osi pochylenia i obrotu."
|
||||
"SNAP_ANGLE_DEG_HELP": "Chwycone okna przyciągają się do tego kąta na osi pochylenia i obrotu.",
|
||||
"SAVE_PLAYSPACE_CENTER": "Zapisz centrum obszaru gry",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "Użyj aktualnego obszaru gry dla przypisania resetowania obszaru gry.",
|
||||
"RESET_PLAYSPACE_CENTER": "Zresetuj środek obszaru gry",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "Wyczyść poprzednio ustawiony środek obszaru playspace."
|
||||
},
|
||||
"APPLICATION_LAUNCHER": "Uruchamiacz aplikacji",
|
||||
"APPLICATIONS": "Aplikacje",
|
||||
|
|
|
|||
|
|
@ -215,7 +215,11 @@
|
|||
"COLOR_PALETTE_CUSTOM_URL": "添加自定义主题!",
|
||||
"COLOR_PALETTE_CUSTOM_URL2": "点击打开网页版手册。",
|
||||
"SNAP_ANGLE_DEG": "窗口俯仰与翻滚捕捉角度",
|
||||
"SNAP_ANGLE_DEG_HELP": "抓取的窗口在俯仰轴和翻滚轴上将对齐到此角度。"
|
||||
"SNAP_ANGLE_DEG_HELP": "抓取的窗口在俯仰轴和翻滚轴上将对齐到此角度。",
|
||||
"SAVE_PLAYSPACE_CENTER": "保存 Playspace 中心",
|
||||
"SAVE_PLAYSPACE_CENTER_HELP": "将当前活动空间用于重置活动空间的绑定。",
|
||||
"RESET_PLAYSPACE_CENTER": "重置游玩区域中心",
|
||||
"RESET_PLAYSPACE_CENTER_HELP": "清除之前设置的 Playspace 中心。"
|
||||
},
|
||||
"APPLICATION_LAUNCHER": "应用启动器",
|
||||
"APPLICATION_STARTED": "应用已启动",
|
||||
|
|
|
|||
|
|
@ -336,6 +336,36 @@ pub fn options_danger_button(
|
|||
Ok(())
|
||||
}
|
||||
|
||||
pub fn options_button(
|
||||
mp: &mut MacroParams,
|
||||
parent: WidgetID,
|
||||
translation: &str,
|
||||
icon: &str,
|
||||
task: Task,
|
||||
) -> anyhow::Result<()> {
|
||||
let id = mp.idx.to_string();
|
||||
mp.idx += 1;
|
||||
|
||||
let mut params = TemplateParams::new();
|
||||
params.insert("id", &id);
|
||||
params.insert("translation", translation);
|
||||
params.insert("icon", icon);
|
||||
|
||||
mp.parser_state
|
||||
.instantiate_template(mp.doc_params, "ButtonText", mp.layout, parent, params)?;
|
||||
|
||||
let btn = mp.parser_state.fetch_component_as::<ComponentButton>(&id)?;
|
||||
btn.on_click(Rc::new({
|
||||
let tasks = mp.tasks.clone();
|
||||
move |_common, _e| {
|
||||
tasks.push(task.clone());
|
||||
Ok(())
|
||||
}
|
||||
}));
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn options_autostart_app(
|
||||
mp: &mut MacroParams,
|
||||
parent: WidgetID,
|
||||
|
|
|
|||
|
|
@ -78,7 +78,9 @@ pub(crate) enum Task {
|
|||
OpenContextMenu(Vec2, Vec<context_menu::Cell>),
|
||||
RemoveAutostartApp(Rc<str>),
|
||||
ResetPlayspace,
|
||||
ResetPlayspaceCenter,
|
||||
RestartSoftware,
|
||||
SavePlayspaceCenter,
|
||||
SetTab(TabNameEnum),
|
||||
SettingUpdated(SettingType),
|
||||
UpdateBool(SettingType, bool),
|
||||
|
|
@ -200,6 +202,16 @@ impl<T> Tab<T> for TabSettings<T> {
|
|||
std::fs::remove_dir_all(&path)?;
|
||||
std::fs::create_dir(&path)?;
|
||||
}
|
||||
Task::SavePlayspaceCenter => {
|
||||
frontend.interface.playspace_task(data, DashPlayspaceTask::SaveCenter)?;
|
||||
return Ok(());
|
||||
}
|
||||
Task::ResetPlayspaceCenter => {
|
||||
frontend
|
||||
.interface
|
||||
.playspace_task(data, DashPlayspaceTask::ResetCenter)?;
|
||||
return Ok(());
|
||||
}
|
||||
Task::ResetPlayspace => {
|
||||
frontend.interface.playspace_task(data, DashPlayspaceTask::Reset)?;
|
||||
return Ok(());
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@ use wgui::{
|
|||
use crate::{
|
||||
tab::settings::{
|
||||
SettingType, SettingsMountParams, SettingsTab,
|
||||
macros::{options_category, options_checkbox, options_slider_f32},
|
||||
macros::{options_button, options_category, options_checkbox, options_slider_f32},
|
||||
},
|
||||
util::wgui_simple,
|
||||
};
|
||||
|
|
@ -56,6 +56,31 @@ impl State {
|
|||
|
||||
if !par.feats.openxr || par.feats.monado {
|
||||
// monado or openvr
|
||||
|
||||
options_button(
|
||||
par.mp,
|
||||
c,
|
||||
"APP_SETTINGS.RESET_PLAYSPACE",
|
||||
"dashboard/refresh.svg",
|
||||
super::Task::ResetPlayspace,
|
||||
)?;
|
||||
|
||||
options_button(
|
||||
par.mp,
|
||||
c,
|
||||
"APP_SETTINGS.SAVE_PLAYSPACE_CENTER",
|
||||
"dashboard/recenter.svg",
|
||||
super::Task::SavePlayspaceCenter,
|
||||
)?;
|
||||
|
||||
options_button(
|
||||
par.mp,
|
||||
c,
|
||||
"APP_SETTINGS.RESET_PLAYSPACE_CENTER",
|
||||
"dashboard/trash.svg",
|
||||
super::Task::ResetPlayspaceCenter,
|
||||
)?;
|
||||
|
||||
options_checkbox(par.mp, id_common_options_parent, SettingType::SpaceDragUnlocked)?;
|
||||
|
||||
options_slider_f32(
|
||||
|
|
|
|||
|
|
@ -15,13 +15,6 @@ impl State {
|
|||
"APP_SETTINGS.TROUBLESHOOTING",
|
||||
"dashboard/cpu.svg",
|
||||
)?;
|
||||
options_danger_button(
|
||||
par.mp,
|
||||
c,
|
||||
"APP_SETTINGS.RESET_PLAYSPACE",
|
||||
"dashboard/recenter.svg",
|
||||
Task::ResetPlayspace,
|
||||
)?;
|
||||
options_danger_button(
|
||||
par.mp,
|
||||
c,
|
||||
|
|
|
|||
|
|
@ -58,6 +58,9 @@ impl PlayspaceMover {
|
|||
PlayspaceTask::SaveCenter => {
|
||||
self.save_center(chaperone_mgr);
|
||||
}
|
||||
PlayspaceTask::ResetCenter => {
|
||||
self.playspace_state.openvr_space_center = Affine3A::IDENTITY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,6 +65,9 @@ impl PlayspaceMover {
|
|||
PlayspaceTask::SaveCenter => {
|
||||
self.save_center(&mut monado.ipc);
|
||||
}
|
||||
PlayspaceTask::ResetCenter => {
|
||||
self.playspace_state.openxr_space_center = Affine3A::IDENTITY;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -63,8 +63,8 @@ pub enum PlayspaceTask {
|
|||
Recenter,
|
||||
Reset,
|
||||
FixFloor,
|
||||
#[cfg(feature = "openvr")]
|
||||
SaveCenter,
|
||||
ResetCenter,
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone)]
|
||||
|
|
|
|||
|
|
@ -513,8 +513,8 @@ impl DashInterface<AppState> for DashInterfaceLive {
|
|||
DashPlayspaceTask::FixFloor => PlayspaceTask::FixFloor,
|
||||
DashPlayspaceTask::Recenter => PlayspaceTask::Recenter,
|
||||
DashPlayspaceTask::Reset => PlayspaceTask::Reset,
|
||||
#[cfg(feature = "openvr")]
|
||||
DashPlayspaceTask::SaveCenter => PlayspaceTask::SaveCenter,
|
||||
DashPlayspaceTask::ResetCenter => PlayspaceTask::ResetCenter,
|
||||
};
|
||||
app.tasks.enqueue(TaskType::Playspace(task));
|
||||
Ok(())
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ pub enum DashPlayspaceTask {
|
|||
Recenter,
|
||||
Reset,
|
||||
SaveCenter,
|
||||
ResetCenter,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy)]
|
||||
|
|
|
|||
Loading…
Reference in New Issue