summaryrefslogtreecommitdiffstats
path: root/style
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2022-11-19 10:29:37 -0800
committerLibravatar bungoboingo <shankern@protonmail.com>2022-12-29 10:21:23 -0800
commitd91f4f6aa74d0693179a02167d626efa3ac4c20b (patch)
tree293852763793fbf6cb142fffac222ee7a87a1edf /style
parenta6d0d5773f0561a841a84b538523cbd97e91eccd (diff)
downloadiced-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.rs17
-rw-r--r--style/src/theme.rs24
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.