maycoon_theme/theme/
dummy.rs

1use crate::globals::Globals;
2use crate::id::WidgetId;
3use crate::style::{
4    DefaultContainerStyles, DefaultInteractiveStyles, DefaultStyles, DefaultTextStyles, Style,
5};
6use crate::theme::Theme;
7use peniko::Color;
8
9/// A dummy theme that only returns [None] or [Color::WHITE].
10///
11/// Useful for testing.
12#[derive(Debug, Copy, Clone, Default)]
13pub struct DummyTheme(Globals);
14
15impl Theme for DummyTheme {
16    fn of(&self, _id: WidgetId) -> Option<Style> {
17        None
18    }
19
20    fn defaults(&self) -> DefaultStyles {
21        DefaultStyles::new(
22            DefaultTextStyles::new(Color::WHITE, Color::WHITE),
23            DefaultContainerStyles::new(Color::WHITE, Color::WHITE),
24            DefaultInteractiveStyles::new(Color::WHITE, Color::WHITE, Color::WHITE, Color::WHITE),
25        )
26    }
27
28    fn window_background(&self) -> Color {
29        Color::WHITE
30    }
31
32    fn globals(&self) -> &Globals {
33        &self.0
34    }
35
36    fn globals_mut(&mut self) -> &mut Globals {
37        &mut self.0
38    }
39}