summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-09-01 19:21:49 +0700
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2021-09-02 13:29:34 +0700
commit76698ff2b5753e637b14533650c0d28e681be3c5 (patch)
tree6b3376df6ac84598b03f2885598b7908e993fe4a /src
parentb7b7741578257bbf6a8b873c360182e2c9b920ab (diff)
downloadiced-76698ff2b5753e637b14533650c0d28e681be3c5.tar.gz
iced-76698ff2b5753e637b14533650c0d28e681be3c5.tar.bz2
iced-76698ff2b5753e637b14533650c0d28e681be3c5.zip
Make `Command` implementations platform-specific
This allows us to introduce a platform-specific `Action` to both `iced_native` and `iced_web` and remove the `Clipboard` from `Application::update` to maintain purity. Additionally, this should let us implement further actions to let users query and modify the shell environment (e.g. window, clipboard, and more!)
Diffstat (limited to 'src')
-rw-r--r--src/application.rs31
-rw-r--r--src/sandbox.rs9
2 files changed, 10 insertions, 30 deletions
diff --git a/src/application.rs b/src/application.rs
index 78280e98..81add963 100644
--- a/src/application.rs
+++ b/src/application.rs
@@ -1,7 +1,5 @@
use crate::window;
-use crate::{
- Clipboard, Color, Command, Element, Executor, Menu, Settings, Subscription,
-};
+use crate::{Color, Command, Element, Executor, Menu, Settings, Subscription};
/// An interactive cross-platform application.
///
@@ -80,7 +78,7 @@ use crate::{
/// String::from("A cool application")
/// }
///
-/// fn update(&mut self, _message: Self::Message, _clipboard: &mut Clipboard) -> Command<Self::Message> {
+/// fn update(&mut self, _message: Self::Message) -> Command<Self::Message> {
/// Command::none()
/// }
///
@@ -129,11 +127,7 @@ pub trait Application: Sized {
/// this method.
///
/// Any [`Command`] returned will be executed immediately in the background.
- fn update(
- &mut self,
- message: Self::Message,
- clipboard: &mut Clipboard,
- ) -> Command<Self::Message>;
+ fn update(&mut self, message: Self::Message) -> Command<Self::Message>;
/// Returns the event [`Subscription`] for the current state of the
/// application.
@@ -249,14 +243,9 @@ where
{
type Renderer = crate::renderer::Renderer;
type Message = A::Message;
- type Clipboard = iced_winit::Clipboard;
-
- fn update(
- &mut self,
- message: Self::Message,
- clipboard: &mut iced_winit::Clipboard,
- ) -> Command<Self::Message> {
- self.0.update(message, clipboard)
+
+ fn update(&mut self, message: Self::Message) -> Command<Self::Message> {
+ self.0.update(message)
}
fn view(&mut self) -> Element<'_, Self::Message> {
@@ -329,12 +318,8 @@ where
self.0.title()
}
- fn update(
- &mut self,
- message: Self::Message,
- clipboard: &mut Clipboard,
- ) -> Command<Self::Message> {
- self.0.update(message, clipboard)
+ fn update(&mut self, message: Self::Message) -> Command<Self::Message> {
+ self.0.update(message)
}
fn subscription(&self) -> Subscription<Self::Message> {
diff --git a/src/sandbox.rs b/src/sandbox.rs
index cb3cf624..a0bb316e 100644
--- a/src/sandbox.rs
+++ b/src/sandbox.rs
@@ -1,6 +1,5 @@
use crate::{
- Application, Clipboard, Color, Command, Element, Error, Settings,
- Subscription,
+ Application, Color, Command, Element, Error, Settings, Subscription,
};
/// A sandboxed [`Application`].
@@ -162,11 +161,7 @@ where
T::title(self)
}
- fn update(
- &mut self,
- message: T::Message,
- _clipboard: &mut Clipboard,
- ) -> Command<T::Message> {
+ fn update(&mut self, message: T::Message) -> Command<T::Message> {
T::update(self, message);
Command::none()