summaryrefslogtreecommitdiffstats
path: root/web
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-09 05:36:49 +0200
committerLibravatar Héctor Ramón Jiménez <hector0193@gmail.com>2019-10-09 05:36:49 +0200
commita92a0b73ed7ed935df762d06c4249894fd35b227 (patch)
treefe5f67c3b7c2cc84d29e5345e02463f0b4ef6913 /web
parent1a93f0ef4a669f37654efcf2102a9d59ada34f9e (diff)
downloadiced-a92a0b73ed7ed935df762d06c4249894fd35b227.tar.gz
iced-a92a0b73ed7ed935df762d06c4249894fd35b227.tar.bz2
iced-a92a0b73ed7ed935df762d06c4249894fd35b227.zip
Move `winit` logic from `iced` to `iced_winit`
- Added new `renderer::Windowed` trait. This shoud allow users to easily try different renderers by simply changing one line. - Renamed `UserInterface` traits to `Application`, as the `run` method takes total control of the current thread. - Moved `MouseCursor` back to `iced_native`. The new `renderer::Windowed` trait returns one on `draw`. - Split `iced_native` renderer in multiple modules, for consistency.
Diffstat (limited to 'web')
-rw-r--r--web/src/bus.rs4
-rw-r--r--web/src/lib.rs18
2 files changed, 11 insertions, 11 deletions
diff --git a/web/src/bus.rs b/web/src/bus.rs
index d76466f5..b4fd67c7 100644
--- a/web/src/bus.rs
+++ b/web/src/bus.rs
@@ -1,4 +1,4 @@
-use crate::Application;
+use crate::Instance;
use std::rc::Rc;
@@ -14,7 +14,7 @@ where
pub fn new() -> Self {
Self {
publish: Rc::new(Box::new(|message, root| {
- let app = root.unwrap_mut::<Application<Message>>();
+ let app = root.unwrap_mut::<Instance<Message>>();
app.update(message)
})),
diff --git a/web/src/lib.rs b/web/src/lib.rs
index caf17df5..04848d07 100644
--- a/web/src/lib.rs
+++ b/web/src/lib.rs
@@ -11,7 +11,7 @@ pub use element::Element;
pub use iced_core::{Align, Color, Justify, Length};
pub use widget::*;
-pub trait UserInterface {
+pub trait Application {
type Message;
fn update(
@@ -25,23 +25,23 @@ pub trait UserInterface {
where
Self: 'static + Sized,
{
+ let app = Instance::new(self);
+
let window = web_sys::window().unwrap();
let document = window.document().unwrap();
let body = document.body().unwrap();
-
- let app = Application::new(self);
-
let vdom = dodrio::Vdom::new(&body, app);
+
vdom.forget();
}
}
-struct Application<Message> {
- ui: RefCell<Box<dyn UserInterface<Message = Message>>>,
+struct Instance<Message> {
+ ui: RefCell<Box<dyn Application<Message = Message>>>,
}
-impl<Message> Application<Message> {
- fn new(ui: impl UserInterface<Message = Message> + 'static) -> Self {
+impl<Message> Instance<Message> {
+ fn new(ui: impl Application<Message = Message> + 'static) -> Self {
Self {
ui: RefCell::new(Box::new(ui)),
}
@@ -55,7 +55,7 @@ impl<Message> Application<Message> {
}
}
-impl<Message> dodrio::Render for Application<Message>
+impl<Message> dodrio::Render for Instance<Message>
where
Message: 'static,
{