Skip to content

Commit 9734955

Browse files
committed
dont show skymap tab if not openxr
1 parent dd3108d commit 9734955

5 files changed

Lines changed: 44 additions & 2 deletions

File tree

dash-frontend/src/tab/settings/mod.rs

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use wgui::{
55
assets::AssetPath,
66
components::tabs::ComponentTabs,
77
drawing,
8+
event::StyleSetRequest,
89
globals::WguiGlobals,
910
i18n::Translation,
1011
layout::{Layout, WidgetID},
@@ -585,7 +586,7 @@ impl<T> TabSettings<T> {
585586
Ok(())
586587
}
587588

588-
pub fn new(frontend: &mut Frontend<T>, parent_id: WidgetID, _data: &mut T) -> anyhow::Result<Self> {
589+
pub fn new(frontend: &mut Frontend<T>, parent_id: WidgetID, data: &mut T) -> anyhow::Result<Self> {
589590
let doc_params = ParseDocumentParams {
590591
globals: frontend.layout.state.globals.clone(),
591592
path: AssetPath::BuiltIn("gui/tab/settings.xml"),
@@ -595,6 +596,16 @@ impl<T> TabSettings<T> {
595596
let parser_state = wgui::parser::parse_from_assets(&doc_params, &mut frontend.layout, parent_id)?;
596597
let tasks = Tasks::default();
597598
let tabs = parser_state.fetch_component_as::<ComponentTabs>("tabs")?;
599+
600+
if !frontend.interface.get_feats(data).openxr {
601+
let skybox_btn = tabs.get_tab_button("skybox").unwrap();
602+
frontend
603+
.layout
604+
.common()
605+
.alterables
606+
.set_style(skybox_btn.get_rect(), StyleSetRequest::Display(taffy::Display::None));
607+
}
608+
598609
tabs.on_select({
599610
let tasks = tasks.clone();
600611
Rc::new(move |_common, evt| {

wayvr/src/overlays/dashboard.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,13 @@ impl DashInterface<AppState> for DashInterfaceLive {
476476
.enqueue(TaskType::Overlay(OverlayTask::ToggleDashboard));
477477
}
478478

479+
fn get_feats(&mut self, data: &mut AppState) -> dash_interface::InterfaceFeats {
480+
dash_interface::InterfaceFeats {
481+
openxr: matches!(data.xr_backend, XrBackend::OpenXR),
482+
monado: data.monado_state.is_some(),
483+
}
484+
}
485+
479486
#[cfg(feature = "openxr")]
480487
fn monado_client_list(
481488
&mut self,

wgui/src/components/tabs.rs

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ use crate::{
99
layout::WidgetPair,
1010
widget::{ConstructEssentials, div::WidgetDiv},
1111
};
12-
use std::{cell::RefCell, rc::Rc};
12+
use std::{cell::RefCell, fmt::Pointer, rc::Rc};
1313
use taffy::{
1414
AlignItems,
1515
prelude::{length, percent},
@@ -94,6 +94,16 @@ impl ComponentTabs {
9494
pub fn on_select(&self, callback: TabSelectCallback) {
9595
self.state.borrow_mut().on_select = Some(callback);
9696
}
97+
98+
pub fn get_tab_button(&self, name: &str) -> Option<Rc<ComponentButton>> {
99+
self
100+
.state
101+
.borrow_mut()
102+
.mounted_entries
103+
.iter()
104+
.find(|e| name == &*e.name)
105+
.map(|e| e.button.clone())
106+
}
97107
}
98108

99109
pub fn construct(ess: &mut ConstructEssentials, params: Params) -> anyhow::Result<(WidgetPair, Rc<ComponentTabs>)> {

wlx-common/src/dash_interface.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,12 @@ pub enum RecenterMode {
4343
Reset,
4444
}
4545

46+
#[derive(Clone, Copy)]
47+
pub struct InterfaceFeats {
48+
pub openxr: bool,
49+
pub monado: bool,
50+
}
51+
4652
pub trait DashInterface<T> {
4753
fn window_list(&mut self, data: &mut T) -> anyhow::Result<Vec<WvrWindow>>;
4854
fn window_set_visible(&mut self, data: &mut T, handle: WvrWindowHandle, visible: bool) -> anyhow::Result<()>;
@@ -68,6 +74,7 @@ pub trait DashInterface<T> {
6874
fn config_changed(&mut self, data: &mut T, kind: ConfigChangeKind);
6975
fn restart(&mut self, data: &mut T);
7076
fn toggle_dashboard(&mut self, data: &mut T);
77+
fn get_feats(&mut self, data: &mut T) -> InterfaceFeats;
7178
}
7279

7380
#[derive(Clone, Copy)]

wlx-common/src/dash_interface_emulated.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,13 @@ impl DashInterface<()> for DashInterfaceEmulated {
236236

237237
fn toggle_dashboard(&mut self, _data: &mut ()) {}
238238

239+
fn get_feats(&mut self, _data: &mut ()) -> dash_interface::InterfaceFeats {
240+
dash_interface::InterfaceFeats {
241+
openxr: true,
242+
monado: true,
243+
}
244+
}
245+
239246
fn monado_client_list(
240247
&mut self,
241248
_data: &mut (),

0 commit comments

Comments
 (0)