diff options
Diffstat (limited to 'crates/material_theme/src')
| -rw-r--r-- | crates/material_theme/src/dialog.rs | 30 |
1 files changed, 23 insertions, 7 deletions
diff --git a/crates/material_theme/src/dialog.rs b/crates/material_theme/src/dialog.rs index 68c61b5..a022548 100644 --- a/crates/material_theme/src/dialog.rs +++ b/crates/material_theme/src/dialog.rs @@ -1,25 +1,41 @@ -use iced_widget::container::Style; +use iced_dialog::dialog::{Catalog, Style, StyleFn}; +use iced_widget::container; use iced_widget::core::{Background, border}; use super::{Theme, text}; -impl iced_dialog::dialog::Catalog for Theme { - fn default_container<'a>() - -> <Self as iced_widget::container::Catalog>::Class<'a> { +impl Catalog for Theme { + type Class<'a> = StyleFn<'a, Self>; + + fn default<'a>() -> <Self as Catalog>::Class<'a> { + Box::new(default) + } + + fn default_container<'a>() -> <Self as container::Catalog>::Class<'a> { Box::new(default_container) } fn default_title<'a>() -> <Self as iced_widget::text::Catalog>::Class<'a> { Box::new(text::surface) } + + fn style(&self, class: &<Self as Catalog>::Class<'_>) -> Style { + class(self) + } } -pub fn default_container(theme: &Theme) -> Style { +pub fn default_container(theme: &Theme) -> container::Style { let colors = theme.colorscheme.surface; - Style { + container::Style { background: Some(Background::Color(colors.surface_container.high)), text_color: Some(colors.on_surface_variant), border: border::rounded(28), - ..Style::default() + ..container::Style::default() + } +} + +pub fn default(theme: &Theme) -> Style { + Style { + backdrop_color: theme.colorscheme.scrim, } } |
