diff options
Diffstat (limited to 'winit/src')
| -rw-r--r-- | winit/src/application.rs | 12 | ||||
| -rw-r--r-- | winit/src/window.rs | 20 | 
2 files changed, 32 insertions, 0 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index 0496aea9..939a50c9 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -615,12 +615,21 @@ pub fn run_command<A, E>(                  }              },              command::Action::Window(action) => match action { +                window::Action::Drag => { +                    let _res = window.drag_window(); +                }                  window::Action::Resize { width, height } => {                      window.set_inner_size(winit::dpi::LogicalSize {                          width,                          height,                      });                  } +                window::Action::Maximize(value) => { +                    window.set_maximized(value); +                } +                window::Action::Minimize(value) => { +                    window.set_minimized(value); +                }                  window::Action::Move { x, y } => {                      window.set_outer_position(winit::dpi::LogicalPosition {                          x, @@ -634,6 +643,9 @@ pub fn run_command<A, E>(                          mode,                      ));                  } +                window::Action::ToggleMaximize => { +                    window.set_maximized(!window.is_maximized()) +                }                  window::Action::FetchMode(tag) => {                      let mode = if window.is_visible().unwrap_or(true) {                          conversion::mode(window.fullscreen()) diff --git a/winit/src/window.rs b/winit/src/window.rs index 265139f7..1e704c5b 100644 --- a/winit/src/window.rs +++ b/winit/src/window.rs @@ -4,6 +4,11 @@ use iced_native::window;  pub use window::{Event, Mode}; +/// 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)) +} +  /// 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 { @@ -12,6 +17,16 @@ pub fn resize<Message>(width: u32, height: u32) -> Command<Message> {      }))  } +/// Sets the window to maximized or back. +pub fn maximize<Message>(value: bool) -> Command<Message> { +    Command::single(command::Action::Window(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))) +} +  /// 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 })) @@ -22,6 +37,11 @@ pub fn set_mode<Message>(mode: Mode) -> Command<Message> {      Command::single(command::Action::Window(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)) +} +  /// Fetches the current [`Mode`] of the window.  pub fn fetch_mode<Message>(      f: impl FnOnce(Mode) -> Message + 'static,  | 
