diff options
author | 2019-10-23 02:33:07 +0200 | |
---|---|---|
committer | 2019-10-23 02:33:07 +0200 | |
commit | c7ef9d0da705d8f27011fe41d2103c73aae42d2d (patch) | |
tree | bbd2baf6ac62426d278c8babef18e1cce49b3872 /src/lib.rs | |
parent | 871eb414303804233ed50d43bb9b98a7037cbd4c (diff) | |
download | iced-c7ef9d0da705d8f27011fe41d2103c73aae42d2d.tar.gz iced-c7ef9d0da705d8f27011fe41d2103c73aae42d2d.tar.bz2 iced-c7ef9d0da705d8f27011fe41d2103c73aae42d2d.zip |
Connect `iced_web` with `iced` properly
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 36 |
1 files changed, 26 insertions, 10 deletions
@@ -1,13 +1,8 @@ -pub use iced_wgpu::{Primitive, Renderer}; -pub use iced_winit::{ - button, slider, text, winit, Align, Background, Checkbox, Color, Image, - Justify, Length, Radio, Slider, Text, -}; +#[cfg_attr(target_arch = "wasm32", path = "web.rs")] +#[cfg_attr(not(target_arch = "wasm32"), path = "winit.rs")] +mod platform; -pub type Element<'a, Message> = iced_winit::Element<'a, Message, Renderer>; -pub type Row<'a, Message> = iced_winit::Row<'a, Message, Renderer>; -pub type Column<'a, Message> = iced_winit::Column<'a, Message, Renderer>; -pub type Button<'a, Message> = iced_winit::Button<'a, Message, Renderer>; +pub use platform::*; pub trait Application { type Message; @@ -20,12 +15,17 @@ pub trait Application { where Self: 'static + Sized, { - iced_winit::Application::run(Instance(self)) + #[cfg(not(target_arch = "wasm32"))] + iced_winit::Application::run(Instance(self)); + + #[cfg(target_arch = "wasm32")] + iced_web::Application::run(Instance(self)); } } struct Instance<A: Application>(A); +#[cfg(not(target_arch = "wasm32"))] impl<A> iced_winit::Application for Instance<A> where A: Application, @@ -41,3 +41,19 @@ where self.0.view() } } + +#[cfg(target_arch = "wasm32")] +impl<A> iced_web::Application for Instance<A> +where + A: Application, +{ + type Message = A::Message; + + fn update(&mut self, message: Self::Message) { + self.0.update(message); + } + + fn view(&mut self) -> Element<Self::Message> { + self.0.view() + } +} |