From fa9e1d96ea1924b51749b775ea0e67e69bc8a305 Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Fri, 3 May 2024 13:25:58 +0200 Subject: Introduce dynamic `opacity` support for `Image` and `Svg` --- widget/src/svg.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'widget/src/svg.rs') diff --git a/widget/src/svg.rs b/widget/src/svg.rs index c1fccba1..4551bcad 100644 --- a/widget/src/svg.rs +++ b/widget/src/svg.rs @@ -30,6 +30,7 @@ where content_fit: ContentFit, class: Theme::Class<'a>, rotation: Rotation, + opacity: f32, } impl<'a, Theme> Svg<'a, Theme> @@ -45,6 +46,7 @@ where content_fit: ContentFit::Contain, class: Theme::default(), rotation: Rotation::default(), + opacity: 1.0, } } @@ -103,6 +105,15 @@ where self.rotation = rotation.into(); self } + + /// Sets the opacity of the [`Svg`]. + /// + /// It should be in the [0.0, 1.0] range—`0.0` meaning completely transparent, + /// and `1.0` meaning completely opaque. + pub fn opacity(mut self, opacity: impl Into) -> Self { + self.opacity = opacity.into(); + self + } } impl<'a, Message, Theme, Renderer> Widget @@ -204,6 +215,7 @@ where style.color, drawing_bounds, self.rotation.radians(), + self.opacity, ); }; -- cgit