summaryrefslogtreecommitdiffstats
path: root/native/src/subscription.rs
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-11-10 02:32:57 +0100
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2020-11-10 02:32:57 +0100
commitd6d5cf0294b1231f4909a782e90b491cc6838fae (patch)
tree41e746cb2559df2e2c8c94715cd6bd1c9c10617e /native/src/subscription.rs
parentc53022e8dff6fc6286b60bc897232fe4cb6e6202 (diff)
downloadiced-d6d5cf0294b1231f4909a782e90b491cc6838fae.tar.gz
iced-d6d5cf0294b1231f4909a782e90b491cc6838fae.tar.bz2
iced-d6d5cf0294b1231f4909a782e90b491cc6838fae.zip
Restore hotkeys in `pane_grid` example
- Implement `subscription::events_with` - Remove `pane_grid::KeyPressEvent` - Return closest sibling in `pane_grid::State::close`
Diffstat (limited to '')
-rw-r--r--native/src/subscription.rs22
1 files changed, 21 insertions, 1 deletions
diff --git a/native/src/subscription.rs b/native/src/subscription.rs
index 0d002c6c..18750abf 100644
--- a/native/src/subscription.rs
+++ b/native/src/subscription.rs
@@ -43,5 +43,25 @@ use events::Events;
/// [`Subscription`]: type.Subscription.html
/// [`Event`]: ../enum.Event.html
pub fn events() -> Subscription<Event> {
- Subscription::from_recipe(Events)
+ Subscription::from_recipe(Events { f: Some })
+}
+
+/// Returns a [`Subscription`] that filters all the runtime events with the
+/// provided function, producing messages accordingly.
+///
+/// This subscription will call the provided function for every [`Event`]
+/// handled by the runtime. If the function:
+///
+/// - Returns `None`, the [`Event`] will be discarded.
+/// - Returns `Some` message, the `Message` will be produced.
+///
+/// [`Subscription`]: type.Subscription.html
+/// [`Event`]: ../enum.Event.html
+pub fn events_with<Message>(
+ f: fn(Event) -> Option<Message>,
+) -> Subscription<Message>
+where
+ Message: 'static + Send,
+{
+ Subscription::from_recipe(Events { f })
}