diff options
author | 2023-10-02 20:18:15 +0200 | |
---|---|---|
committer | 2024-02-01 13:16:28 +0100 | |
commit | b5f1ca169567f47b3976de5b4c5a2b1ce37656d5 (patch) | |
tree | 326fae951f16d98ba6141e6cd20d6e7d02e8c71d /style | |
parent | b95f3ab12f863f4de668e4e6f8a75b7d3acdf2b7 (diff) | |
download | iced-b5f1ca169567f47b3976de5b4c5a2b1ce37656d5.tar.gz iced-b5f1ca169567f47b3976de5b4c5a2b1ce37656d5.tar.bz2 iced-b5f1ca169567f47b3976de5b4c5a2b1ce37656d5.zip |
Introduce support for disabling a `checkbox`
Diffstat (limited to 'style')
-rw-r--r-- | style/src/checkbox.rs | 3 | ||||
-rw-r--r-- | style/src/theme.rs | 40 |
2 files changed, 41 insertions, 2 deletions
diff --git a/style/src/checkbox.rs b/style/src/checkbox.rs index d96ea4ad..82c1766f 100644 --- a/style/src/checkbox.rs +++ b/style/src/checkbox.rs @@ -24,4 +24,7 @@ pub trait StyleSheet { /// Produces the hovered [`Appearance`] of a checkbox. fn hovered(&self, style: &Self::Style, is_checked: bool) -> Appearance; + + /// Produces the disabled [`Appearance`] of a checkbox. + fn disabled(&self, style: &Self::Style, is_checked: bool) -> Appearance; } diff --git a/style/src/theme.rs b/style/src/theme.rs index 8d1ff237..e003a93b 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -319,7 +319,7 @@ impl checkbox::StyleSheet for Theme { Checkbox::Secondary => checkbox_appearance( palette.background.base.text, palette.background.base, - palette.background.base, + palette.background.weak, is_checked, ), Checkbox::Success => checkbox_appearance( @@ -355,7 +355,7 @@ impl checkbox::StyleSheet for Theme { Checkbox::Secondary => checkbox_appearance( palette.background.base.text, palette.background.weak, - palette.background.base, + palette.background.weak, is_checked, ), Checkbox::Success => checkbox_appearance( @@ -373,6 +373,42 @@ impl checkbox::StyleSheet for Theme { Checkbox::Custom(custom) => custom.hovered(self, is_checked), } } + + fn disabled( + &self, + style: &Self::Style, + is_checked: bool, + ) -> checkbox::Appearance { + let palette = self.extended_palette(); + + match style { + Checkbox::Primary => checkbox_appearance( + palette.primary.strong.text, + palette.background.weak, + palette.background.strong, + is_checked, + ), + Checkbox::Secondary => checkbox_appearance( + palette.background.strong.color, + palette.background.weak, + palette.background.weak, + is_checked, + ), + Checkbox::Success => checkbox_appearance( + palette.success.base.text, + palette.background.weak, + palette.success.weak, + is_checked, + ), + Checkbox::Danger => checkbox_appearance( + palette.danger.base.text, + palette.background.weak, + palette.danger.weak, + is_checked, + ), + Checkbox::Custom(custom) => custom.active(self, is_checked), + } + } } fn checkbox_appearance( |