summaryrefslogtreecommitdiffstats
path: root/winit
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--runtime/src/window.rs (renamed from winit/src/window.rs)28
-rw-r--r--winit/Cargo.toml6
-rw-r--r--winit/src/application.rs14
-rw-r--r--winit/src/application/state.rs2
-rw-r--r--winit/src/clipboard.rs14
-rw-r--r--winit/src/lib.rs7
-rw-r--r--winit/src/system.rs4
7 files changed, 40 insertions, 35 deletions
diff --git a/winit/src/window.rs b/runtime/src/window.rs
index 6ac58e20..236064f7 100644
--- a/winit/src/window.rs
+++ b/runtime/src/window.rs
@@ -1,7 +1,27 @@
-//! Interact with the window of your application.
-use crate::core::window::{Mode, UserAttention};
-use crate::native::command::{self, Command};
-use crate::native::window::Action;
+//! Build window-based GUI applications.
+mod action;
+
+pub use action::Action;
+
+use crate::command::{self, Command};
+use crate::core::time::Instant;
+use crate::core::window::{Event, Mode, UserAttention};
+use crate::futures::subscription::{self, Subscription};
+
+/// Subscribes to the frames of the window of the running application.
+///
+/// The resulting [`Subscription`] will produce items at a rate equal to the
+/// refresh rate of the window. Note that this rate may be variable, as it is
+/// normally managed by the graphics driver and/or the OS.
+///
+/// In any case, this [`Subscription`] is useful to smoothly draw application-driven
+/// animations without missing any frames.
+pub fn frames() -> Subscription<Instant> {
+ subscription::raw_events(|event, _status| match event {
+ iced_core::Event::Window(Event::RedrawRequested(at)) => Some(at),
+ _ => None,
+ })
+}
/// Closes the current window and exits the application.
pub fn close<Message>() -> Command<Message> {
diff --git a/winit/Cargo.toml b/winit/Cargo.toml
index 21c14f68..bfd22093 100644
--- a/winit/Cargo.toml
+++ b/winit/Cargo.toml
@@ -13,7 +13,7 @@ categories = ["gui"]
[features]
trace = ["tracing", "tracing-core", "tracing-subscriber"]
chrome-trace = ["trace", "tracing-chrome"]
-debug = ["iced_native/debug"]
+debug = ["iced_runtime/debug"]
system = ["sysinfo"]
application = []
@@ -27,9 +27,9 @@ version = "0.27"
git = "https://github.com/iced-rs/winit.git"
rev = "940457522e9fb9f5dac228b0ecfafe0138b4048c"
-[dependencies.iced_native]
+[dependencies.iced_runtime]
version = "0.9"
-path = "../native"
+path = "../runtime"
[dependencies.iced_graphics]
version = "0.7"
diff --git a/winit/src/application.rs b/winit/src/application.rs
index d863c846..9666fcae 100644
--- a/winit/src/application.rs
+++ b/winit/src/application.rs
@@ -16,10 +16,10 @@ use crate::core::{Event, Size};
use crate::futures::futures;
use crate::futures::{Executor, Runtime, Subscription};
use crate::graphics::compositor::{self, Compositor};
-use crate::native::clipboard;
-use crate::native::program::Program;
-use crate::native::user_interface::{self, UserInterface};
-use crate::native::{Command, Debug};
+use crate::runtime::clipboard;
+use crate::runtime::program::Program;
+use crate::runtime::user_interface::{self, UserInterface};
+use crate::runtime::{Command, Debug};
use crate::style::application::{Appearance, StyleSheet};
use crate::{Clipboard, Error, Proxy, Settings};
@@ -709,9 +709,9 @@ pub fn run_command<A, E>(
E: Executor,
<A::Renderer as core::Renderer>::Theme: StyleSheet,
{
- use iced_native::command;
- use iced_native::system;
- use iced_native::window;
+ use crate::runtime::command;
+ use crate::runtime::system;
+ use crate::runtime::window;
for action in command.actions() {
match action {
diff --git a/winit/src/application/state.rs b/winit/src/application/state.rs
index b727e03c..c37ccca6 100644
--- a/winit/src/application/state.rs
+++ b/winit/src/application/state.rs
@@ -3,7 +3,7 @@ use crate::conversion;
use crate::core;
use crate::core::{Color, Point, Size};
use crate::graphics::Viewport;
-use crate::native::Debug;
+use crate::runtime::Debug;
use crate::Application;
use std::marker::PhantomData;
diff --git a/winit/src/clipboard.rs b/winit/src/clipboard.rs
index 22509130..7271441d 100644
--- a/winit/src/clipboard.rs
+++ b/winit/src/clipboard.rs
@@ -1,6 +1,4 @@
//! Access the clipboard.
-use crate::native::clipboard::Action;
-use crate::native::command::{self, Command};
/// A buffer for short-term storage and transfer within and between
/// applications.
@@ -64,15 +62,3 @@ impl crate::core::Clipboard for Clipboard {
self.write(contents)
}
}
-
-/// Read the current contents of the clipboard.
-pub fn read<Message>(
- f: impl Fn(Option<String>) -> Message + 'static,
-) -> Command<Message> {
- Command::single(command::Action::Clipboard(Action::Read(Box::new(f))))
-}
-
-/// Write the given contents to the clipboard.
-pub fn write<Message>(contents: String) -> Command<Message> {
- Command::single(command::Action::Clipboard(Action::Write(contents)))
-}
diff --git a/winit/src/lib.rs b/winit/src/lib.rs
index 0d8c04d3..5cde510a 100644
--- a/winit/src/lib.rs
+++ b/winit/src/lib.rs
@@ -31,9 +31,9 @@
#![allow(clippy::inherent_to_string, clippy::type_complexity)]
#![cfg_attr(docsrs, feature(doc_cfg))]
pub use iced_graphics as graphics;
-pub use iced_native as native;
-pub use iced_native::core;
-pub use iced_native::futures;
+pub use iced_runtime as runtime;
+pub use iced_runtime::core;
+pub use iced_runtime::futures;
pub use iced_style as style;
pub use winit;
@@ -42,7 +42,6 @@ pub mod application;
pub mod clipboard;
pub mod conversion;
pub mod settings;
-pub mod window;
#[cfg(feature = "system")]
pub mod system;
diff --git a/winit/src/system.rs b/winit/src/system.rs
index 3a6a8a8e..069efa29 100644
--- a/winit/src/system.rs
+++ b/winit/src/system.rs
@@ -1,7 +1,7 @@
//! Access the native system.
use crate::graphics::compositor;
-use crate::native::command::{self, Command};
-use crate::native::system::{Action, Information};
+use crate::runtime::command::{self, Command};
+use crate::runtime::system::{Action, Information};
/// Query for available system information.
pub fn fetch_information<Message>(