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