summaryrefslogtreecommitdiffstats
path: root/winit/src/window.rs
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/window.rs')
-rw-r--r--winit/src/window.rs71
1 files changed, 47 insertions, 24 deletions
diff --git a/winit/src/window.rs b/winit/src/window.rs
index 2306bdf1..cc486fc8 100644
--- a/winit/src/window.rs
+++ b/winit/src/window.rs
@@ -2,56 +2,79 @@
use crate::command::{self, Command};
use iced_native::window;
-pub use window::{frames, Event, Mode, RedrawRequest, UserAttention};
+pub use window::{Event, Id, Mode, RedrawRequest, frames, UserAttention};
-/// Closes the current window and exits the application.
-pub fn close<Message>() -> Command<Message> {
- Command::single(command::Action::Window(window::Action::Close))
+/// Closes the window.
+pub fn close<Message>(id: window::Id) -> Command<Message> {
+ Command::single(command::Action::Window(id, window::Action::Close))
}
/// Begins dragging the window while the left mouse button is held.
-pub fn drag<Message>() -> Command<Message> {
- Command::single(command::Action::Window(window::Action::Drag))
+pub fn drag<Message>(id: window::Id) -> Command<Message> {
+ Command::single(command::Action::Window(id, window::Action::Drag))
+}
+
+/// Spawns a new window.
+pub fn spawn<Message>(
+ id: window::Id,
+ settings: window::Settings,
+) -> Command<Message> {
+ Command::single(command::Action::Window(
+ id,
+ window::Action::Spawn { settings },
+ ))
}
/// Resizes the window to the given logical dimensions.
-pub fn resize<Message>(width: u32, height: u32) -> Command<Message> {
- Command::single(command::Action::Window(window::Action::Resize {
- width,
- height,
- }))
+pub fn resize<Message>(
+ id: window::Id,
+ width: u32,
+ height: u32,
+) -> Command<Message> {
+ Command::single(command::Action::Window(
+ id,
+ window::Action::Resize { width, height },
+ ))
}
/// Sets the window to maximized or back.
-pub fn maximize<Message>(value: bool) -> Command<Message> {
- Command::single(command::Action::Window(window::Action::Maximize(value)))
+pub fn maximize<Message>(id: window::Id, value: bool) -> Command<Message> {
+ Command::single(command::Action::Window(
+ id,
+ window::Action::Maximize(value),
+ ))
}
/// Set the window to minimized or back.
-pub fn minimize<Message>(value: bool) -> Command<Message> {
- Command::single(command::Action::Window(window::Action::Minimize(value)))
+pub fn minimize<Message>(id: window::Id, value: bool) -> Command<Message> {
+ Command::single(command::Action::Window(
+ id,
+ window::Action::Minimize(value),
+ ))
}
/// Moves a window to the given logical coordinates.
-pub fn move_to<Message>(x: i32, y: i32) -> Command<Message> {
- Command::single(command::Action::Window(window::Action::Move { x, y }))
+pub fn move_to<Message>(id: window::Id, x: i32, y: i32) -> Command<Message> {
+ Command::single(command::Action::Window(id, window::Action::Move { x, y }))
}
/// Sets the [`Mode`] of the window.
-pub fn set_mode<Message>(mode: Mode) -> Command<Message> {
- Command::single(command::Action::Window(window::Action::SetMode(mode)))
+pub fn set_mode<Message>(id: window::Id, mode: Mode) -> Command<Message> {
+ Command::single(command::Action::Window(id, window::Action::SetMode(mode)))
}
/// Sets the window to maximized or back.
-pub fn toggle_maximize<Message>() -> Command<Message> {
- Command::single(command::Action::Window(window::Action::ToggleMaximize))
+pub fn toggle_maximize<Message>(id: window::Id) -> Command<Message> {
+ Command::single(command::Action::Window(id, window::Action::ToggleMaximize))
}
/// Fetches the current [`Mode`] of the window.
pub fn fetch_mode<Message>(
+ id: window::Id,
f: impl FnOnce(Mode) -> Message + 'static,
) -> Command<Message> {
- Command::single(command::Action::Window(window::Action::FetchMode(
- Box::new(f),
- )))
+ Command::single(command::Action::Window(
+ id,
+ window::Action::FetchMode(Box::new(f)),
+ ))
}