Merge pull request #2163 from hicaru/svg_hover
added svg hover, for styles impl
This commit is contained in:
commit
61e3d8502f
3 changed files with 18 additions and 2 deletions
|
|
@ -20,4 +20,7 @@ pub trait StyleSheet {
|
|||
|
||||
/// Produces the [`Appearance`] of the svg.
|
||||
fn appearance(&self, style: &Self::Style) -> Appearance;
|
||||
|
||||
/// Produces the hovered [`Appearance`] of a svg content.
|
||||
fn hovered(&self, style: &Self::Style) -> Appearance;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -939,6 +939,10 @@ impl svg::StyleSheet for Theme {
|
|||
Svg::Custom(custom) => custom.appearance(self),
|
||||
}
|
||||
}
|
||||
|
||||
fn hovered(&self, style: &Self::Style) -> svg::Appearance {
|
||||
self.appearance(style)
|
||||
}
|
||||
}
|
||||
|
||||
impl svg::StyleSheet for fn(&Theme) -> svg::Appearance {
|
||||
|
|
@ -947,6 +951,10 @@ impl svg::StyleSheet for fn(&Theme) -> svg::Appearance {
|
|||
fn appearance(&self, style: &Self::Style) -> svg::Appearance {
|
||||
(self)(style)
|
||||
}
|
||||
|
||||
fn hovered(&self, style: &Self::Style) -> svg::Appearance {
|
||||
self.appearance(style)
|
||||
}
|
||||
}
|
||||
|
||||
/// The style of a scrollable.
|
||||
|
|
|
|||
|
|
@ -141,7 +141,7 @@ where
|
|||
theme: &Renderer::Theme,
|
||||
_style: &renderer::Style,
|
||||
layout: Layout<'_>,
|
||||
_cursor: mouse::Cursor,
|
||||
cursor: mouse::Cursor,
|
||||
_viewport: &Rectangle,
|
||||
) {
|
||||
let Size { width, height } = renderer.dimensions(&self.handle);
|
||||
|
|
@ -149,6 +149,7 @@ where
|
|||
|
||||
let bounds = layout.bounds();
|
||||
let adjusted_fit = self.content_fit.fit(image_size, bounds.size());
|
||||
let is_mouse_over = cursor.is_over(bounds);
|
||||
|
||||
let render = |renderer: &mut Renderer| {
|
||||
let offset = Vector::new(
|
||||
|
|
@ -162,7 +163,11 @@ where
|
|||
..bounds
|
||||
};
|
||||
|
||||
let appearance = theme.appearance(&self.style);
|
||||
let appearance = if is_mouse_over {
|
||||
theme.hovered(&self.style)
|
||||
} else {
|
||||
theme.appearance(&self.style)
|
||||
};
|
||||
|
||||
renderer.draw(
|
||||
self.handle.clone(),
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue