summaryrefslogtreecommitdiffstats
path: root/native/src/widget/operation/scrollable.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-03-04 05:37:11 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2023-03-04 05:37:11 +0100
commit3a0d34c0240f4421737a6a08761f99d6f8140d02 (patch)
treec9a4a6b8e9c1db1b8fcd05bc98e3f131d5ef4bd5 /native/src/widget/operation/scrollable.rs
parentc54409d1711e1f615c7ea4b02c082954e340632a (diff)
downloadiced-3a0d34c0240f4421737a6a08761f99d6f8140d02.tar.gz
iced-3a0d34c0240f4421737a6a08761f99d6f8140d02.tar.bz2
iced-3a0d34c0240f4421737a6a08761f99d6f8140d02.zip
Create `iced_widget` subcrate and re-organize the whole codebase
Diffstat (limited to 'native/src/widget/operation/scrollable.rs')
-rw-r--r--native/src/widget/operation/scrollable.rs54
1 files changed, 0 insertions, 54 deletions
diff --git a/native/src/widget/operation/scrollable.rs b/native/src/widget/operation/scrollable.rs
deleted file mode 100644
index 3b20631f..00000000
--- a/native/src/widget/operation/scrollable.rs
+++ /dev/null
@@ -1,54 +0,0 @@
-//! Operate on widgets that can be scrolled.
-use crate::widget::{Id, Operation};
-
-/// The internal state of a widget that can be scrolled.
-pub trait Scrollable {
- /// Snaps the scroll of the widget to the given `percentage` along the horizontal & vertical axis.
- fn snap_to(&mut self, offset: RelativeOffset);
-}
-
-/// Produces an [`Operation`] that snaps the widget with the given [`Id`] to
-/// the provided `percentage`.
-pub fn snap_to<T>(target: Id, offset: RelativeOffset) -> impl Operation<T> {
- struct SnapTo {
- target: Id,
- offset: RelativeOffset,
- }
-
- impl<T> Operation<T> for SnapTo {
- fn container(
- &mut self,
- _id: Option<&Id>,
- operate_on_children: &mut dyn FnMut(&mut dyn Operation<T>),
- ) {
- operate_on_children(self)
- }
-
- fn scrollable(&mut self, state: &mut dyn Scrollable, id: Option<&Id>) {
- if Some(&self.target) == id {
- state.snap_to(self.offset);
- }
- }
- }
-
- SnapTo { target, offset }
-}
-
-/// The amount of offset in each direction of a [`Scrollable`].
-///
-/// A value of `0.0` means start, while `1.0` means end.
-#[derive(Debug, Clone, Copy, PartialEq, Default)]
-pub struct RelativeOffset {
- /// The amount of horizontal offset
- pub x: f32,
- /// The amount of vertical offset
- pub y: f32,
-}
-
-impl RelativeOffset {
- /// A relative offset that points to the top-left of a [`Scrollable`].
- pub const START: Self = Self { x: 0.0, y: 0.0 };
-
- /// A relative offset that points to the bottom-right of a [`Scrollable`].
- pub const END: Self = Self { x: 1.0, y: 1.0 };
-}