chore: dialog default to overlay

This commit is contained in:
Ashley Wulber 2026-06-12 15:10:29 -04:00 committed by Ashley Wulber
parent cde1989e78
commit 94d2c18a23
2 changed files with 15 additions and 5 deletions

View file

@ -393,7 +393,7 @@ pub enum Container<'a> {
transparent: bool,
},
Custom(Box<dyn Fn(&Theme) -> iced_container::Style + 'a>),
Dialog,
Dialog(bool),
Dropdown,
HeaderBar {
focused: bool,
@ -688,14 +688,17 @@ impl iced_container::Catalog for Theme {
}
}
Container::Dialog => iced_container::Style {
Container::Dialog(is_overlay) => iced_container::Style {
icon_color: Some(Color::from(cosmic.primary(self.transparent).on)),
text_color: Some(Color::from(cosmic.primary(self.transparent).on)),
background: Some(iced::Background::Color(
cosmic.primary(self.transparent).base.into(),
cosmic.primary(self.transparent && !is_overlay).base.into(),
)),
border: Border {
color: cosmic.primary(self.transparent).divider.into(),
color: cosmic
.primary(self.transparent && !is_overlay)
.divider
.into(),
width: 1.0,
radius: cosmic.corner_radii.radius_m.into(),
},

View file

@ -18,6 +18,7 @@ pub struct Dialog<'a, Message> {
height: Option<Length>,
max_width: Option<Pixels>,
max_height: Option<Pixels>,
is_overlay: bool,
}
impl<Message> Default for Dialog<'_, Message> {
@ -40,6 +41,7 @@ impl<'a, Message> Dialog<'a, Message> {
height: None,
max_width: None,
max_height: None,
is_overlay: true,
}
}
@ -97,6 +99,11 @@ impl<'a, Message> Dialog<'a, Message> {
self.max_width = Some(max_width.into());
self
}
pub fn is_overlay(mut self, is_overlay: bool) -> Self {
self.is_overlay = is_overlay;
self
}
}
impl<'a, Message: Clone + 'static> From<Dialog<'a, Message>> for Element<'a, Message> {
@ -157,7 +164,7 @@ impl<'a, Message: Clone + 'static> From<Dialog<'a, Message>> for Element<'a, Mes
let mut container = widget::container(
widget::column::with_children([content_row.into(), button_row.into()]).spacing(space_l),
)
.class(style::Container::Dialog)
.class(style::Container::Dialog(dialog.is_overlay))
.padding(space_m)
.width(dialog.width.unwrap_or(Length::Fixed(570.0)));