diff options
Diffstat (limited to '')
| -rw-r--r-- | src/dialog.rs | 11 | ||||
| -rw-r--r-- | src/widget.rs | 1 | ||||
| -rw-r--r-- | src/widget/button.rs | 15 |
3 files changed, 24 insertions, 3 deletions
diff --git a/src/dialog.rs b/src/dialog.rs index 3a79dd4..c5e008c 100644 --- a/src/dialog.rs +++ b/src/dialog.rs @@ -1,10 +1,12 @@ use std::borrow::Cow; -use iced::widget::text; +use iced::widget::{Space, text}; use iced_dialog::button; +use iced_material::button::filled_tonal; use crate::Message; use crate::types::Element; +use crate::widget::button::danger; pub const UNSAVED_CHANGES_TITLE: &str = "Hold on for a sec!"; pub const WARNING_TITLE: &str = "Heads up!"; @@ -31,8 +33,11 @@ impl From<Action> for Vec<Element<'_, Message>> { Action::None => vec![], Action::Close => vec![button("Close", Message::DialogYes).into()], Action::UnsavedChanges(_) => vec![ - button("Don't Save", Message::DialogNo).into(), - button("Save", Message::DialogYes).into(), + button("Don't Save", Message::DialogNo).style(danger).into(), + Space::with_width(20).into(), + button("Save", Message::DialogYes) + .style(filled_tonal) + .into(), button("Cancel", Message::DialogCancel).into(), ], } diff --git a/src/widget.rs b/src/widget.rs index 5ebe1f9..bb12de0 100644 --- a/src/widget.rs +++ b/src/widget.rs @@ -3,6 +3,7 @@ use iced_material::Theme; use crate::types::Element; +pub mod button; pub mod tip { pub use super::tooltip::Position; } diff --git a/src/widget/button.rs b/src/widget/button.rs new file mode 100644 index 0000000..5a1975b --- /dev/null +++ b/src/widget/button.rs @@ -0,0 +1,15 @@ +use iced::widget::button::{Status, Style}; +use iced_material::Theme; +use iced_material::button::styled; + +pub fn danger(theme: &Theme, status: Status) -> Style { + let primary = theme.colors().error; + + let foreground = primary.on_error; + let background = primary.color; + let disabled = theme.colors().surface.on_surface; + + let shadow_color = theme.colors().shadow; + + styled(background, foreground, disabled, shadow_color, 0, status) +} |
