summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar MG_REX <49415741+ThisIsRex@users.noreply.github.com>2022-05-04 18:56:27 +0300
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2022-10-05 19:07:02 +0200
commitd95c216b2db76dd812b960d39499dc5e03a81ffc (patch)
tree0ec579b7ec603bfbb2b37495b4fa22d51516b9c7
parent2278bade55b2bcd530c8c9a30a22d5f800921e55 (diff)
downloadiced-d95c216b2db76dd812b960d39499dc5e03a81ffc.tar.gz
iced-d95c216b2db76dd812b960d39499dc5e03a81ffc.tar.bz2
iced-d95c216b2db76dd812b960d39499dc5e03a81ffc.zip
Add `is_selected` argument in `radio::StyleSheet`
-rw-r--r--native/src/widget/radio.rs4
-rw-r--r--style/src/radio.rs4
-rw-r--r--style/src/theme.rs14
3 files changed, 15 insertions, 7 deletions
diff --git a/native/src/widget/radio.rs b/native/src/widget/radio.rs
index c9152d05..cb83f745 100644
--- a/native/src/widget/radio.rs
+++ b/native/src/widget/radio.rs
@@ -230,9 +230,9 @@ where
let mut children = layout.children();
let custom_style = if is_mouse_over {
- theme.hovered(self.style)
+ theme.hovered(self.style, self.is_selected)
} else {
- theme.active(self.style)
+ theme.active(self.style, self.is_selected)
};
{
diff --git a/style/src/radio.rs b/style/src/radio.rs
index a4d4a83b..d14ea33e 100644
--- a/style/src/radio.rs
+++ b/style/src/radio.rs
@@ -15,7 +15,7 @@ pub struct Appearance {
pub trait StyleSheet {
type Style: Default + Copy;
- fn active(&self, style: Self::Style) -> Appearance;
+ fn active(&self, style: Self::Style, is_selected: bool) -> Appearance;
- fn hovered(&self, style: Self::Style) -> Appearance;
+ fn hovered(&self, style: Self::Style, is_selected: bool) -> Appearance;
}
diff --git a/style/src/theme.rs b/style/src/theme.rs
index 9e9abfa0..ea538c3a 100644
--- a/style/src/theme.rs
+++ b/style/src/theme.rs
@@ -415,7 +415,11 @@ impl pick_list::StyleSheet for Theme {
impl radio::StyleSheet for Theme {
type Style = ();
- fn active(&self, _style: Self::Style) -> radio::Appearance {
+ fn active(
+ &self,
+ _style: Self::Style,
+ _is_selected: bool,
+ ) -> radio::Appearance {
let palette = self.extended_palette();
radio::Appearance {
@@ -427,8 +431,12 @@ impl radio::StyleSheet for Theme {
}
}
- fn hovered(&self, style: Self::Style) -> radio::Appearance {
- let active = self.active(style);
+ fn hovered(
+ &self,
+ style: Self::Style,
+ is_selected: bool,
+ ) -> radio::Appearance {
+ let active = self.active(style, is_selected);
let palette = self.extended_palette();
radio::Appearance {