diff options
author | 2022-11-19 10:29:37 -0800 | |
---|---|---|
committer | 2022-12-29 10:21:23 -0800 | |
commit | d91f4f6aa74d0693179a02167d626efa3ac4c20b (patch) | |
tree | 293852763793fbf6cb142fffac222ee7a87a1edf /style | |
parent | a6d0d5773f0561a841a84b538523cbd97e91eccd (diff) | |
download | iced-d91f4f6aa74d0693179a02167d626efa3ac4c20b.tar.gz iced-d91f4f6aa74d0693179a02167d626efa3ac4c20b.tar.bz2 iced-d91f4f6aa74d0693179a02167d626efa3ac4c20b.zip |
Add multidirectional scrolling capabilities to the existing Scrollable.
Diffstat (limited to 'style')
-rw-r--r-- | style/src/scrollable.rs | 17 | ||||
-rw-r--r-- | style/src/theme.rs | 24 |
2 files changed, 40 insertions, 1 deletions
diff --git a/style/src/scrollable.rs b/style/src/scrollable.rs index c6d7d537..64ed8462 100644 --- a/style/src/scrollable.rs +++ b/style/src/scrollable.rs @@ -37,11 +37,26 @@ pub trait StyleSheet { /// Produces the style of an active scrollbar. fn active(&self, style: &Self::Style) -> Scrollbar; - /// Produces the style of an hovered scrollbar. + /// Produces the style of a hovered scrollbar. fn hovered(&self, style: &Self::Style) -> Scrollbar; /// Produces the style of a scrollbar that is being dragged. fn dragging(&self, style: &Self::Style) -> Scrollbar { self.hovered(style) } + + /// Produces the style of an active horizontal scrollbar. + fn active_horizontal(&self, style: &Self::Style) -> Scrollbar { + self.active(style) + } + + /// Produces the style of a hovered horizontal scrollbar. + fn hovered_horizontal(&self, style: &Self::Style) -> Scrollbar { + self.hovered(style) + } + + /// Produces the style of a horizontal scrollbar that is being dragged. + fn dragging_horizontal(&self, style: &Self::Style) -> Scrollbar { + self.hovered_horizontal(style) + } } diff --git a/style/src/theme.rs b/style/src/theme.rs index 271d9a29..cef8f2be 100644 --- a/style/src/theme.rs +++ b/style/src/theme.rs @@ -925,6 +925,30 @@ impl scrollable::StyleSheet for Theme { Scrollable::Custom(custom) => custom.dragging(self), } } + + fn active_horizontal(&self, style: &Self::Style) -> scrollable::Scrollbar { + match style { + Scrollable::Default => self.active(style), + Scrollable::Custom(custom) => custom.active_horizontal(self), + } + } + + fn hovered_horizontal(&self, style: &Self::Style) -> scrollable::Scrollbar { + match style { + Scrollable::Default => self.hovered(style), + Scrollable::Custom(custom) => custom.hovered_horizontal(self), + } + } + + fn dragging_horizontal( + &self, + style: &Self::Style, + ) -> scrollable::Scrollbar { + match style { + Scrollable::Default => self.hovered_horizontal(style), + Scrollable::Custom(custom) => custom.dragging_horizontal(self), + } + } } /// The style of text. |