diff options
author | 2021-09-01 19:21:49 +0700 | |
---|---|---|
committer | 2021-09-02 13:29:34 +0700 | |
commit | 76698ff2b5753e637b14533650c0d28e681be3c5 (patch) | |
tree | 6b3376df6ac84598b03f2885598b7908e993fe4a /src | |
parent | b7b7741578257bbf6a8b873c360182e2c9b920ab (diff) | |
download | iced-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.rs | 31 | ||||
-rw-r--r-- | src/sandbox.rs | 9 |
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() |