summaryrefslogtreecommitdiffstats
path: root/native/src/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'native/src/window.rs')
-rw-r--r--native/src/window.rs23
1 files changed, 21 insertions, 2 deletions
diff --git a/native/src/window.rs b/native/src/window.rs
index a5cdc8ce..a8f8b10f 100644
--- a/native/src/window.rs
+++ b/native/src/window.rs
@@ -1,14 +1,22 @@
//! Build window-based GUI applications.
mod action;
mod event;
+mod icon;
+mod id;
mod mode;
+mod position;
mod redraw_request;
+mod settings;
mod user_attention;
pub use action::Action;
pub use event::Event;
+pub use icon::Icon;
+pub use id::Id;
pub use mode::Mode;
+pub use position::Position;
pub use redraw_request::RedrawRequest;
+pub use settings::Settings;
pub use user_attention::UserAttention;
use crate::subscription::{self, Subscription};
@@ -22,9 +30,20 @@ use crate::time::Instant;
///
/// In any case, this [`Subscription`] is useful to smoothly draw application-driven
/// animations without missing any frames.
-pub fn frames() -> Subscription<Instant> {
+pub fn frames() -> Subscription<Frame> {
subscription::raw_events(|event, _status| match event {
- crate::Event::Window(Event::RedrawRequested(at)) => Some(at),
+ crate::Event::Window(id, Event::RedrawRequested(at)) => {
+ Some(Frame { id, at })
+ }
_ => None,
})
}
+
+/// The returned `Frame` for a framerate subscription.
+#[derive(Debug)]
+pub struct Frame {
+ /// The `window::Id` that the `Frame` was produced in.
+ pub id: Id,
+ /// The `Instant` at which the frame was produced.
+ pub at: Instant,
+}