desktop: Add RuffleEvent::ThemeChanged
This commit is contained in:
parent
14d5b3ace3
commit
52192fa9ca
|
@ -538,6 +538,10 @@ impl App {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
winit::event::Event::UserEvent(RuffleEvent::ThemeChanged(theme)) => {
|
||||||
|
self.gui.borrow().set_theme(theme);
|
||||||
|
}
|
||||||
|
|
||||||
_ => (),
|
_ => (),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
//! Custom event type for desktop ruffle
|
//! Custom event type for desktop ruffle
|
||||||
|
|
||||||
use crate::player::LaunchOptions;
|
use crate::player::LaunchOptions;
|
||||||
|
use winit::window::Theme;
|
||||||
|
|
||||||
/// User-defined events.
|
/// User-defined events.
|
||||||
pub enum RuffleEvent {
|
pub enum RuffleEvent {
|
||||||
|
@ -24,4 +25,7 @@ pub enum RuffleEvent {
|
||||||
|
|
||||||
/// The user selected an item in the right-click context menu.
|
/// The user selected an item in the right-click context menu.
|
||||||
ContextMenuItemClicked(usize),
|
ContextMenuItemClicked(usize),
|
||||||
|
|
||||||
|
/// System theme has changed.
|
||||||
|
ThemeChanged(Theme),
|
||||||
}
|
}
|
||||||
|
|
|
@ -138,6 +138,14 @@ impl GuiController {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn set_theme(&self, theme: Theme) {
|
||||||
|
self.egui_winit.egui_ctx().set_visuals(match theme {
|
||||||
|
Theme::Light => egui::Visuals::light(),
|
||||||
|
Theme::Dark => egui::Visuals::dark(),
|
||||||
|
});
|
||||||
|
self.window.request_redraw();
|
||||||
|
}
|
||||||
|
|
||||||
pub fn descriptors(&self) -> &Arc<Descriptors> {
|
pub fn descriptors(&self) -> &Arc<Descriptors> {
|
||||||
&self.descriptors
|
&self.descriptors
|
||||||
}
|
}
|
||||||
|
@ -178,11 +186,7 @@ impl GuiController {
|
||||||
}
|
}
|
||||||
|
|
||||||
if let WindowEvent::ThemeChanged(theme) = &event {
|
if let WindowEvent::ThemeChanged(theme) = &event {
|
||||||
let visuals = match theme {
|
self.set_theme(*theme);
|
||||||
Theme::Dark => egui::Visuals::dark(),
|
|
||||||
Theme::Light => egui::Visuals::light(),
|
|
||||||
};
|
|
||||||
self.egui_winit.egui_ctx().set_visuals(visuals);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if matches!(
|
if matches!(
|
||||||
|
|
Loading…
Reference in New Issue