//! Interact with the window of your application. use crate::command::{self, Command}; use iced_native::window; pub use window::{Event, Id, Mode, RedrawRequest, frames, UserAttention}; /// Closes the window. pub fn close(id: window::Id) -> Command { Command::single(command::Action::Window(id, window::Action::Close)) } /// Begins dragging the window while the left mouse button is held. pub fn drag(id: window::Id) -> Command { Command::single(command::Action::Window(id, window::Action::Drag)) } /// Spawns a new window. pub fn spawn( id: window::Id, settings: window::Settings, ) -> Command { Command::single(command::Action::Window( id, window::Action::Spawn { settings }, )) } /// Resizes the window to the given logical dimensions. pub fn resize( id: window::Id, width: u32, height: u32, ) -> Command { Command::single(command::Action::Window( id, window::Action::Resize { width, height }, )) } /// Sets the window to maximized or back. pub fn maximize(id: window::Id, value: bool) -> Command { Command::single(command::Action::Window( id, window::Action::Maximize(value), )) } /// Set the window to minimized or back. pub fn minimize(id: window::Id, value: bool) -> Command { Command::single(command::Action::Window( id, window::Action::Minimize(value), )) } /// Moves a window to the given logical coordinates. pub fn move_to(id: window::Id, x: i32, y: i32) -> Command { Command::single(command::Action::Window(id, window::Action::Move { x, y })) } /// Sets the [`Mode`] of the window. pub fn set_mode(id: window::Id, mode: Mode) -> Command { Command::single(command::Action::Window(id, window::Action::SetMode(mode))) } /// Sets the window to maximized or back. pub fn toggle_maximize(id: window::Id) -> Command { Command::single(command::Action::Window(id, window::Action::ToggleMaximize)) } /// Fetches the current [`Mode`] of the window. pub fn fetch_mode( id: window::Id, f: impl FnOnce(Mode) -> Message + 'static, ) -> Command { Command::single(command::Action::Window( id, window::Action::FetchMode(Box::new(f)), )) }