feat: use contextual label for full frame 3d base on stereo mode
show Full-SBS when stereo is LeftRight or RightLeft show Full-TAB when stereo is TopBottom show Full-BAT when stereo is BottomTop
This commit is contained in:
@@ -55,7 +55,10 @@
|
||||
"SPLIT_RIGHT_LEFT": "RECHTS→LINKS",
|
||||
"SPLIT_TOP_BOTTOM": "OBEN→UNTEN",
|
||||
"SPLIT_BOTTOM_TOP": "UNTEN→OBEN",
|
||||
"FULL_FRAME": "Voll 3D"
|
||||
"FULL_FRAME": "Voll 3D",
|
||||
"FULL_FRAME_SBS": "Full-SBS",
|
||||
"FULL_FRAME_TAB": "Full-TAB",
|
||||
"FULL_FRAME_BAT": "Full-BAT"
|
||||
},
|
||||
"STEREO_3D_MODE_": {},
|
||||
"ALIGN_TO_HMD": "An HMD ausrichten",
|
||||
|
||||
@@ -45,7 +45,10 @@
|
||||
"SPLIT_RIGHT_LEFT": "RIGHT→LEFT",
|
||||
"SPLIT_TOP_BOTTOM": "TOP→BOTTOM",
|
||||
"TITLE": "3D Stereo Mode",
|
||||
"FULL_FRAME": "Full 3D"
|
||||
"FULL_FRAME": "Full 3D",
|
||||
"FULL_FRAME_SBS": "Full-SBS",
|
||||
"FULL_FRAME_TAB": "Full-TAB",
|
||||
"FULL_FRAME_BAT": "Full-BAT"
|
||||
},
|
||||
"MOUSE": {
|
||||
"TITLE": "Mouse fixes",
|
||||
|
||||
@@ -55,7 +55,10 @@
|
||||
"SPLIT_RIGHT_LEFT": "DERECHA→IZQUIERDA",
|
||||
"SPLIT_TOP_BOTTOM": "ARRIBA→ABAJO",
|
||||
"SPLIT_BOTTOM_TOP": "ABAJO→ARRIBA",
|
||||
"FULL_FRAME": "3D completo"
|
||||
"FULL_FRAME": "3D completo",
|
||||
"FULL_FRAME_SBS": "Full-SBS",
|
||||
"FULL_FRAME_TAB": "Full-TAB",
|
||||
"FULL_FRAME_BAT": "Full-BAT"
|
||||
},
|
||||
"STEREO_3D_MODE_": {},
|
||||
"ALIGN_TO_HMD": "Alinear al HMD",
|
||||
|
||||
@@ -45,7 +45,10 @@
|
||||
"SPLIT_RIGHT_LEFT": "DESTRA→SINISTRA",
|
||||
"SPLIT_TOP_BOTTOM": "TOP→BOTTOM",
|
||||
"TITLE": "Modalità Stereo 3D",
|
||||
"FULL_FRAME": "3D Completo"
|
||||
"FULL_FRAME": "3D Completo",
|
||||
"FULL_FRAME_SBS": "Full-SBS",
|
||||
"FULL_FRAME_TAB": "Full-TAB",
|
||||
"FULL_FRAME_BAT": "Full-BAT"
|
||||
},
|
||||
"MOUSE": {
|
||||
"TITLE": "Correzioni del mouse",
|
||||
|
||||
@@ -54,7 +54,10 @@
|
||||
"SPLIT_RIGHT_LEFT": "右→左",
|
||||
"SPLIT_TOP_BOTTOM": "上→下",
|
||||
"SPLIT_BOTTOM_TOP": "下→上",
|
||||
"FULL_FRAME": "フル3D"
|
||||
"FULL_FRAME": "フル3D",
|
||||
"FULL_FRAME_SBS": "フルSBS",
|
||||
"FULL_FRAME_TAB": "フルTAB",
|
||||
"FULL_FRAME_BAT": "フルBAT"
|
||||
},
|
||||
"ALIGN_TO_HMD": "常にHMDの方を向く",
|
||||
"MOUSE": {
|
||||
|
||||
@@ -54,7 +54,10 @@
|
||||
"SPLIT_RIGHT_LEFT": "PRAWO→LEWO",
|
||||
"SPLIT_TOP_BOTTOM": "GÓRA→DÓŁ",
|
||||
"TITLE": "Tryb stereoskopowy 3D",
|
||||
"FULL_FRAME": "Pełny 3D"
|
||||
"FULL_FRAME": "Pełny 3D",
|
||||
"FULL_FRAME_SBS": "Full-SBS",
|
||||
"FULL_FRAME_TAB": "Full-TAB",
|
||||
"FULL_FRAME_BAT": "Full-BAT"
|
||||
},
|
||||
"ALIGN_TO_HMD": "Dopasuj do HMD",
|
||||
"MOUSE": {
|
||||
|
||||
@@ -11,6 +11,7 @@ use slotmap::Key;
|
||||
use wgui::{
|
||||
components::{button::ComponentButton, checkbox::ComponentCheckbox, slider::ComponentSlider},
|
||||
event::{CallbackDataCommon, EventAlterables, EventCallback},
|
||||
i18n::Translation,
|
||||
parser::Fetchable,
|
||||
widget::EventResult,
|
||||
};
|
||||
@@ -28,7 +29,7 @@ use crate::{
|
||||
mouse::new_mouse_tab_handler,
|
||||
pos::{PosTabState, new_pos_tab_handler},
|
||||
sprite_tab::SpriteTabHandler,
|
||||
stereo::new_stereo_tab_handler,
|
||||
stereo::{get_stereo_full_frame_translation, new_stereo_tab_handler},
|
||||
tab::ButtonPaneTabSwitcher,
|
||||
},
|
||||
state::AppState,
|
||||
@@ -502,6 +503,13 @@ fn reset_panel(
|
||||
.tabs
|
||||
.set_tab_visible(&mut common, "stereo", true);
|
||||
panel.state.stereo.reset(&mut common, &stereo);
|
||||
|
||||
// Set the checkbox label based on stereo mode
|
||||
let translation = get_stereo_full_frame_translation(&stereo);
|
||||
let c = panel
|
||||
.parser_state
|
||||
.fetch_component_as::<ComponentCheckbox>("stereo_full_frame_box")?;
|
||||
c.set_text(&mut common, Translation::from_translation_key(translation));
|
||||
} else {
|
||||
panel
|
||||
.state
|
||||
|
||||
@@ -2,6 +2,7 @@ use crate::overlays::edit::{
|
||||
EditModeWrapPanel,
|
||||
sprite_tab::{SpriteTabHandler, SpriteTabKey},
|
||||
};
|
||||
use wgui::{components::checkbox::ComponentCheckbox, i18n::Translation, parser::Fetchable};
|
||||
use wlx_common::overlays::{BackendAttribValue, StereoMode};
|
||||
|
||||
static STEREO_NAMES: [&str; 5] = ["none", "leftright", "rightleft", "topbottom", "bottomtop"];
|
||||
@@ -9,12 +10,21 @@ static STEREO_NAMES: [&str; 5] = ["none", "leftright", "rightleft", "topbottom",
|
||||
pub fn new_stereo_tab_handler(
|
||||
panel: &mut EditModeWrapPanel,
|
||||
) -> anyhow::Result<SpriteTabHandler<StereoMode>> {
|
||||
// Fetch the checkbox component first, before creating the closure
|
||||
let checkbox = panel
|
||||
.parser_state
|
||||
.fetch_component_as::<ComponentCheckbox>("stereo_full_frame_box")?;
|
||||
|
||||
SpriteTabHandler::new(
|
||||
panel,
|
||||
"stereo",
|
||||
&STEREO_NAMES,
|
||||
Box::new(|_common, state| {
|
||||
Box::new(move |common, state| {
|
||||
let stereo = *state;
|
||||
|
||||
let translation = get_stereo_full_frame_translation(&stereo);
|
||||
checkbox.set_text(common, Translation::from_translation_key(translation));
|
||||
|
||||
Box::new(move |app, owc| {
|
||||
owc.backend
|
||||
.set_attrib(app, BackendAttribValue::Stereo(stereo));
|
||||
@@ -48,3 +58,12 @@ impl SpriteTabKey for StereoMode {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_stereo_full_frame_translation(stereo: &StereoMode) -> &'static str {
|
||||
match stereo {
|
||||
StereoMode::LeftRight | StereoMode::RightLeft => "EDIT_MODE.STEREO_3D_MODE.FULL_FRAME_SBS",
|
||||
StereoMode::TopBottom => "EDIT_MODE.STEREO_3D_MODE.FULL_FRAME_TAB",
|
||||
StereoMode::BottomTop => "EDIT_MODE.STEREO_3D_MODE.FULL_FRAME_BAT",
|
||||
StereoMode::None => "EDIT_MODE.STEREO_3D_MODE.FULL_FRAME",
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user