From 8c86dae4490b0afdd55587d4caa4aa83f1da9be2 Mon Sep 17 00:00:00 2001 From: Michael Aaron Murphy Date: Thu, 12 Oct 2023 13:16:12 +0200 Subject: [PATCH] feat(rectangle_tracker): functions for widget and subscription --- src/widget/mod.rs | 1 + src/widget/rectangle_tracker/mod.rs | 21 +++++++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/widget/mod.rs b/src/widget/mod.rs index a9cc6f47..668b27d7 100644 --- a/src/widget/mod.rs +++ b/src/widget/mod.rs @@ -133,6 +133,7 @@ pub mod popover; pub use popover::{popover, Popover}; pub mod rectangle_tracker; +pub use rectangle_tracker::{rectangle_tracker, RectangleTracker}; pub use row::{row, Row}; pub mod row { diff --git a/src/widget/rectangle_tracker/mod.rs b/src/widget/rectangle_tracker/mod.rs index a927decb..f307ff8e 100644 --- a/src/widget/rectangle_tracker/mod.rs +++ b/src/widget/rectangle_tracker/mod.rs @@ -16,6 +16,27 @@ use std::{fmt::Debug, hash::Hash}; pub use iced_style::container::{Appearance, StyleSheet}; +pub fn rectangle_tracker<'a, Message, I, T>( + content: T, + id: I, + tx: UnboundedSender<(I, Rectangle)>, +) -> RectangleTrackingContainer<'a, Message, crate::Renderer, I> +where + I: Hash + Copy + Send + Sync + Debug + 'a, + T: Into>, +{ + RectangleTrackingContainer::new(content, id, tx) +} + +pub fn subscription< + I: 'static + Hash + Copy + Send + Sync + Debug, + R: 'static + Hash + Copy + Send + Sync + Debug + Eq, +>( + id: I, +) -> iced::Subscription<(I, RectangleUpdate)> { + subscription::rectangle_tracker_subscription(id) +} + #[derive(Clone, Debug)] pub struct RectangleTracker { tx: UnboundedSender<(I, Rectangle)>,