summaryrefslogtreecommitdiffstats
path: root/widget/src
diff options
context:
space:
mode:
Diffstat (limited to 'widget/src')
-rw-r--r--widget/src/button.rs2
-rw-r--r--widget/src/column.rs2
-rw-r--r--widget/src/container.rs10
-rw-r--r--widget/src/helpers.rs20
-rw-r--r--widget/src/keyed/column.rs2
-rw-r--r--widget/src/lazy.rs2
-rw-r--r--widget/src/lazy/component.rs61
-rw-r--r--widget/src/lazy/responsive.rs2
-rw-r--r--widget/src/mouse_area.rs2
-rw-r--r--widget/src/pane_grid.rs2
-rw-r--r--widget/src/pane_grid/content.rs2
-rw-r--r--widget/src/pane_grid/title_bar.rs2
-rw-r--r--widget/src/row.rs2
-rw-r--r--widget/src/scrollable.rs24
-rw-r--r--widget/src/stack.rs2
-rw-r--r--widget/src/text_input.rs43
-rw-r--r--widget/src/themer.rs4
17 files changed, 62 insertions, 122 deletions
diff --git a/widget/src/button.rs b/widget/src/button.rs
index dc949671..5d446fea 100644
--- a/widget/src/button.rs
+++ b/widget/src/button.rs
@@ -205,7 +205,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
operation.container(None, layout.bounds(), &mut |operation| {
self.content.as_widget().operate(
diff --git a/widget/src/column.rs b/widget/src/column.rs
index df7829b3..4699164c 100644
--- a/widget/src/column.rs
+++ b/widget/src/column.rs
@@ -208,7 +208,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
operation.container(None, layout.bounds(), &mut |operation| {
self.children
diff --git a/widget/src/container.rs b/widget/src/container.rs
index 51967707..e917471f 100644
--- a/widget/src/container.rs
+++ b/widget/src/container.rs
@@ -13,7 +13,7 @@ use crate::core::{
Padding, Pixels, Point, Rectangle, Shadow, Shell, Size, Theme, Vector,
Widget,
};
-use crate::runtime::Command;
+use crate::runtime::Task;
/// An element decorating some content.
///
@@ -258,7 +258,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
operation.container(
self.id.as_ref().map(|id| &id.0),
@@ -457,9 +457,9 @@ impl From<Id> for widget::Id {
}
}
-/// Produces a [`Command`] that queries the visible screen bounds of the
+/// Produces a [`Task`] that queries the visible screen bounds of the
/// [`Container`] with the given [`Id`].
-pub fn visible_bounds(id: Id) -> Command<Option<Rectangle>> {
+pub fn visible_bounds(id: Id) -> Task<Option<Rectangle>> {
struct VisibleBounds {
target: widget::Id,
depth: usize,
@@ -538,7 +538,7 @@ pub fn visible_bounds(id: Id) -> Command<Option<Rectangle>> {
}
}
- Command::widget(VisibleBounds {
+ Task::widget(VisibleBounds {
target: id.into(),
depth: 0,
scrollables: Vec::new(),
diff --git a/widget/src/helpers.rs b/widget/src/helpers.rs
index 016bafbb..62343a55 100644
--- a/widget/src/helpers.rs
+++ b/widget/src/helpers.rs
@@ -12,7 +12,7 @@ use crate::pick_list::{self, PickList};
use crate::progress_bar::{self, ProgressBar};
use crate::radio::{self, Radio};
use crate::rule::{self, Rule};
-use crate::runtime::Command;
+use crate::runtime::{Action, Task};
use crate::scrollable::{self, Scrollable};
use crate::slider::{self, Slider};
use crate::text::{self, Text};
@@ -275,7 +275,7 @@ where
state: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn operation::Operation<Message>,
+ operation: &mut dyn operation::Operation<()>,
) {
self.content
.as_widget()
@@ -477,7 +477,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn operation::Operation<Message>,
+ operation: &mut dyn operation::Operation<()>,
) {
let children = [&self.base, &self.top]
.into_iter()
@@ -929,19 +929,13 @@ where
}
/// Focuses the previous focusable widget.
-pub fn focus_previous<Message>() -> Command<Message>
-where
- Message: 'static,
-{
- Command::widget(operation::focusable::focus_previous())
+pub fn focus_previous<T>() -> Task<T> {
+ Task::effect(Action::widget(operation::focusable::focus_previous()))
}
/// Focuses the next focusable widget.
-pub fn focus_next<Message>() -> Command<Message>
-where
- Message: 'static,
-{
- Command::widget(operation::focusable::focus_next())
+pub fn focus_next<T>() -> Task<T> {
+ Task::effect(Action::widget(operation::focusable::focus_next()))
}
/// A container intercepting mouse events.
diff --git a/widget/src/keyed/column.rs b/widget/src/keyed/column.rs
index fdaadefa..69991d1f 100644
--- a/widget/src/keyed/column.rs
+++ b/widget/src/keyed/column.rs
@@ -265,7 +265,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
operation.container(None, layout.bounds(), &mut |operation| {
self.children
diff --git a/widget/src/lazy.rs b/widget/src/lazy.rs
index 04783dbe..606da22d 100644
--- a/widget/src/lazy.rs
+++ b/widget/src/lazy.rs
@@ -182,7 +182,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
self.with_element(|element| {
element.as_widget().operate(
diff --git a/widget/src/lazy/component.rs b/widget/src/lazy/component.rs
index 7ba71a02..f079c0df 100644
--- a/widget/src/lazy/component.rs
+++ b/widget/src/lazy/component.rs
@@ -59,7 +59,7 @@ pub trait Component<Message, Theme = crate::Theme, Renderer = crate::Renderer> {
fn operate(
&self,
_state: &mut Self::State,
- _operation: &mut dyn widget::Operation<Message>,
+ _operation: &mut dyn widget::Operation<()>,
) {
}
@@ -172,7 +172,7 @@ where
fn rebuild_element_with_operation(
&self,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
let heads = self.state.borrow_mut().take().unwrap().into_heads();
@@ -358,70 +358,17 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
self.rebuild_element_with_operation(operation);
- struct MapOperation<'a, B> {
- operation: &'a mut dyn widget::Operation<B>,
- }
-
- impl<'a, T, B> widget::Operation<T> for MapOperation<'a, B> {
- fn container(
- &mut self,
- id: Option<&widget::Id>,
- bounds: Rectangle,
- operate_on_children: &mut dyn FnMut(
- &mut dyn widget::Operation<T>,
- ),
- ) {
- self.operation.container(id, bounds, &mut |operation| {
- operate_on_children(&mut MapOperation { operation });
- });
- }
-
- fn focusable(
- &mut self,
- state: &mut dyn widget::operation::Focusable,
- id: Option<&widget::Id>,
- ) {
- self.operation.focusable(state, id);
- }
-
- fn text_input(
- &mut self,
- state: &mut dyn widget::operation::TextInput,
- id: Option<&widget::Id>,
- ) {
- self.operation.text_input(state, id);
- }
-
- fn scrollable(
- &mut self,
- state: &mut dyn widget::operation::Scrollable,
- id: Option<&widget::Id>,
- bounds: Rectangle,
- translation: Vector,
- ) {
- self.operation.scrollable(state, id, bounds, translation);
- }
-
- fn custom(
- &mut self,
- state: &mut dyn std::any::Any,
- id: Option<&widget::Id>,
- ) {
- self.operation.custom(state, id);
- }
- }
-
let tree = tree.state.downcast_mut::<Rc<RefCell<Option<Tree>>>>();
self.with_element(|element| {
element.as_widget().operate(
&mut tree.borrow_mut().as_mut().unwrap().children[0],
layout,
renderer,
- &mut MapOperation { operation },
+ operation,
);
});
}
diff --git a/widget/src/lazy/responsive.rs b/widget/src/lazy/responsive.rs
index f612102e..27f52617 100644
--- a/widget/src/lazy/responsive.rs
+++ b/widget/src/lazy/responsive.rs
@@ -161,7 +161,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
let state = tree.state.downcast_mut::<State>();
let mut content = self.content.borrow_mut();
diff --git a/widget/src/mouse_area.rs b/widget/src/mouse_area.rs
index d7235cf6..17cae53b 100644
--- a/widget/src/mouse_area.rs
+++ b/widget/src/mouse_area.rs
@@ -178,7 +178,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
self.content.as_widget().operate(
&mut tree.children[0],
diff --git a/widget/src/pane_grid.rs b/widget/src/pane_grid.rs
index acfa9d44..c3da3879 100644
--- a/widget/src/pane_grid.rs
+++ b/widget/src/pane_grid.rs
@@ -324,7 +324,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
operation.container(None, layout.bounds(), &mut |operation| {
self.contents
diff --git a/widget/src/pane_grid/content.rs b/widget/src/pane_grid/content.rs
index 30ad52ca..d45fc0cd 100644
--- a/widget/src/pane_grid/content.rs
+++ b/widget/src/pane_grid/content.rs
@@ -214,7 +214,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
let body_layout = if let Some(title_bar) = &self.title_bar {
let mut children = layout.children();
diff --git a/widget/src/pane_grid/title_bar.rs b/widget/src/pane_grid/title_bar.rs
index c2eeebb7..c05f1252 100644
--- a/widget/src/pane_grid/title_bar.rs
+++ b/widget/src/pane_grid/title_bar.rs
@@ -278,7 +278,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn widget::Operation<Message>,
+ operation: &mut dyn widget::Operation<()>,
) {
let mut children = layout.children();
let padded = children.next().unwrap();
diff --git a/widget/src/row.rs b/widget/src/row.rs
index fa352171..00bcf601 100644
--- a/widget/src/row.rs
+++ b/widget/src/row.rs
@@ -197,7 +197,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
operation.container(None, layout.bounds(), &mut |operation| {
self.children
diff --git a/widget/src/scrollable.rs b/widget/src/scrollable.rs
index 6fc00f87..c3d08223 100644
--- a/widget/src/scrollable.rs
+++ b/widget/src/scrollable.rs
@@ -15,7 +15,7 @@ use crate::core::{
self, Background, Border, Clipboard, Color, Element, Layout, Length,
Pixels, Point, Rectangle, Shell, Size, Theme, Vector, Widget,
};
-use crate::runtime::Command;
+use crate::runtime::{Action, Task};
pub use operation::scrollable::{AbsoluteOffset, RelativeOffset};
@@ -295,7 +295,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
let state = tree.state.downcast_mut::<State>();
@@ -952,22 +952,18 @@ impl From<Id> for widget::Id {
}
}
-/// Produces a [`Command`] that snaps the [`Scrollable`] with the given [`Id`]
+/// Produces a [`Task`] that snaps the [`Scrollable`] with the given [`Id`]
/// to the provided `percentage` along the x & y axis.
-pub fn snap_to<Message: 'static>(
- id: Id,
- offset: RelativeOffset,
-) -> Command<Message> {
- Command::widget(operation::scrollable::snap_to(id.0, offset))
+pub fn snap_to<T>(id: Id, offset: RelativeOffset) -> Task<T> {
+ Task::effect(Action::widget(operation::scrollable::snap_to(id.0, offset)))
}
-/// Produces a [`Command`] that scrolls the [`Scrollable`] with the given [`Id`]
+/// Produces a [`Task`] that scrolls the [`Scrollable`] with the given [`Id`]
/// to the provided [`AbsoluteOffset`] along the x & y axis.
-pub fn scroll_to<Message: 'static>(
- id: Id,
- offset: AbsoluteOffset,
-) -> Command<Message> {
- Command::widget(operation::scrollable::scroll_to(id.0, offset))
+pub fn scroll_to<T>(id: Id, offset: AbsoluteOffset) -> Task<T> {
+ Task::effect(Action::widget(operation::scrollable::scroll_to(
+ id.0, offset,
+ )))
}
/// Returns [`true`] if the viewport actually changed.
diff --git a/widget/src/stack.rs b/widget/src/stack.rs
index 5035541b..efa9711d 100644
--- a/widget/src/stack.rs
+++ b/widget/src/stack.rs
@@ -189,7 +189,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
operation.container(None, layout.bounds(), &mut |operation| {
self.children
diff --git a/widget/src/text_input.rs b/widget/src/text_input.rs
index dc4f83e0..4e89236b 100644
--- a/widget/src/text_input.rs
+++ b/widget/src/text_input.rs
@@ -30,7 +30,7 @@ use crate::core::{
Background, Border, Color, Element, Layout, Length, Padding, Pixels, Point,
Rectangle, Shell, Size, Theme, Vector, Widget,
};
-use crate::runtime::Command;
+use crate::runtime::{Action, Task};
/// A field that can be filled with text.
///
@@ -540,7 +540,7 @@ where
tree: &mut Tree,
_layout: Layout<'_>,
_renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
let state = tree.state.downcast_mut::<State<Renderer::Paragraph>>();
@@ -1140,35 +1140,38 @@ impl From<Id> for widget::Id {
}
}
-/// Produces a [`Command`] that focuses the [`TextInput`] with the given [`Id`].
-pub fn focus<Message: 'static>(id: Id) -> Command<Message> {
- Command::widget(operation::focusable::focus(id.0))
+/// Produces a [`Task`] that focuses the [`TextInput`] with the given [`Id`].
+pub fn focus<T>(id: Id) -> Task<T> {
+ Task::effect(Action::widget(operation::focusable::focus(id.0)))
}
-/// Produces a [`Command`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
+/// Produces a [`Task`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
/// end.
-pub fn move_cursor_to_end<Message: 'static>(id: Id) -> Command<Message> {
- Command::widget(operation::text_input::move_cursor_to_end(id.0))
+pub fn move_cursor_to_end<T>(id: Id) -> Task<T> {
+ Task::effect(Action::widget(operation::text_input::move_cursor_to_end(
+ id.0,
+ )))
}
-/// Produces a [`Command`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
+/// Produces a [`Task`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
/// front.
-pub fn move_cursor_to_front<Message: 'static>(id: Id) -> Command<Message> {
- Command::widget(operation::text_input::move_cursor_to_front(id.0))
+pub fn move_cursor_to_front<T>(id: Id) -> Task<T> {
+ Task::effect(Action::widget(operation::text_input::move_cursor_to_front(
+ id.0,
+ )))
}
-/// Produces a [`Command`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
+/// Produces a [`Task`] that moves the cursor of the [`TextInput`] with the given [`Id`] to the
/// provided position.
-pub fn move_cursor_to<Message: 'static>(
- id: Id,
- position: usize,
-) -> Command<Message> {
- Command::widget(operation::text_input::move_cursor_to(id.0, position))
+pub fn move_cursor_to<T>(id: Id, position: usize) -> Task<T> {
+ Task::effect(Action::widget(operation::text_input::move_cursor_to(
+ id.0, position,
+ )))
}
-/// Produces a [`Command`] that selects all the content of the [`TextInput`] with the given [`Id`].
-pub fn select_all<Message: 'static>(id: Id) -> Command<Message> {
- Command::widget(operation::text_input::select_all(id.0))
+/// Produces a [`Task`] that selects all the content of the [`TextInput`] with the given [`Id`].
+pub fn select_all<T>(id: Id) -> Task<T> {
+ Task::effect(Action::widget(operation::text_input::select_all(id.0)))
}
/// The state of a [`TextInput`].
diff --git a/widget/src/themer.rs b/widget/src/themer.rs
index f4597458..9eb47d84 100644
--- a/widget/src/themer.rs
+++ b/widget/src/themer.rs
@@ -104,7 +104,7 @@ where
tree: &mut Tree,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
self.content
.as_widget()
@@ -236,7 +236,7 @@ where
&mut self,
layout: Layout<'_>,
renderer: &Renderer,
- operation: &mut dyn Operation<Message>,
+ operation: &mut dyn Operation<()>,
) {
self.content.operate(layout, renderer, operation);
}