diff options
author | 2023-04-12 04:51:19 +0200 | |
---|---|---|
committer | 2023-04-12 04:51:19 +0200 | |
commit | ce8e92ca7a4ed0f4fe284c9042f863f7c83ba03a (patch) | |
tree | f9be0c6e0d8f9e2af6170f4370677918c4b43a2a /style/src | |
parent | ca828f03f5aab9efacc9d63d4149363333035a0c (diff) | |
parent | 7e7e66586d990788ffd77b17e98357e74252f497 (diff) | |
download | iced-ce8e92ca7a4ed0f4fe284c9042f863f7c83ba03a.tar.gz iced-ce8e92ca7a4ed0f4fe284c9042f863f7c83ba03a.tar.bz2 iced-ce8e92ca7a4ed0f4fe284c9042f863f7c83ba03a.zip |
Merge pull request #1744 from JungleTryne/disable-text-input
Add functionality to make `TextInput` disabled
Diffstat (limited to 'style/src')
-rw-r--r-- | style/src/text_input.rs | 6 | ||||
-rw-r--r-- | style/src/theme.rs | 24 |
2 files changed, 30 insertions, 0 deletions
diff --git a/style/src/text_input.rs b/style/src/text_input.rs index 73b05852..2616ad5a 100644 --- a/style/src/text_input.rs +++ b/style/src/text_input.rs @@ -33,6 +33,9 @@ pub trait StyleSheet { /// Produces the [`Color`] of the value of a text input. fn value_color(&self, style: &Self::Style) -> Color; + /// Produces the [`Color`] of the value of a disabled text input. + fn disabled_color(&self, style: &Self::Style) -> Color; + /// Produces the [`Color`] of the selection of a text input. fn selection_color(&self, style: &Self::Style) -> Color; @@ -40,4 +43,7 @@ pub trait StyleSheet { fn hovered(&self, style: &Self::Style) -> Appearance { self.focused(style) } + + /// Produces the style of a disabled text input. + fn disabled(&self, style: &Self::Style) -> Appearance; } diff --git a/style/src/theme.rs b/style/src/theme.rs index 0d974a19..6bd82a96 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -1093,4 +1093,28 @@ impl text_input::StyleSheet for Theme { palette.primary.weak.color } + + fn disabled(&self, style: &Self::Style) -> text_input::Appearance { + if let TextInput::Custom(custom) = style { + return custom.disabled(self); + } + + let palette = self.extended_palette(); + + text_input::Appearance { + background: palette.background.weak.color.into(), + border_radius: 2.0, + border_width: 1.0, + border_color: palette.background.strong.color, + icon_color: palette.background.strong.color, + } + } + + fn disabled_color(&self, style: &Self::Style) -> Color { + if let TextInput::Custom(custom) = style { + return custom.disabled_color(self); + } + + self.placeholder_color(style) + } } |