diff options
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/src/window.rs | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/runtime/src/window.rs b/runtime/src/window.rs index 94ee0ae5..64395993 100644 --- a/runtime/src/window.rs +++ b/runtime/src/window.rs @@ -1,7 +1,8 @@ //! Build window-based GUI applications. use crate::core::time::Instant; use crate::core::window::{ - Event, Icon, Id, Level, Mode, Screenshot, Settings, UserAttention, + Direction, Event, Icon, Id, Level, Mode, Screenshot, Settings, + UserAttention, }; use crate::core::{Point, Size}; use crate::futures::event; @@ -35,6 +36,13 @@ pub enum Action { /// button was pressed immediately before this function is called. Drag(Id), + /// Resize the window with the left mouse button until the button is + /// released. + /// + /// There’s no guarantee that this will work unless the left mouse + /// button was pressed immediately before this function is called. + DragResize(Id, Direction), + /// Resize the window to the given logical dimensions. Resize(Id, Size), @@ -272,6 +280,11 @@ pub fn drag<T>(id: Id) -> Task<T> { task::effect(crate::Action::Window(Action::Drag(id))) } +/// Begins resizing the window while the left mouse button is held. +pub fn drag_resize<T>(id: Id, direction: Direction) -> Task<T> { + task::effect(crate::Action::Window(Action::DragResize(id, direction))) +} + /// Resizes the window to the given logical dimensions. pub fn resize<T>(id: Id, new_size: Size) -> Task<T> { task::effect(crate::Action::Window(Action::Resize(id, new_size))) |