diff options
author | 2023-07-06 07:00:15 +0200 | |
---|---|---|
committer | 2023-07-06 07:00:15 +0200 | |
commit | 7f805bc5dd9ed38c904d83f9ea931eed6f3234bf (patch) | |
tree | 6f0b38ab20b8fa91e5bbcc001a5738bb83d5f20a /runtime/src/window | |
parent | a057f8811bfc47afc4271f05b92263a19122d888 (diff) | |
parent | f350a2f812487af9a43c36e28d9b904e76a66474 (diff) | |
download | iced-7f805bc5dd9ed38c904d83f9ea931eed6f3234bf.tar.gz iced-7f805bc5dd9ed38c904d83f9ea931eed6f3234bf.tar.bz2 iced-7f805bc5dd9ed38c904d83f9ea931eed6f3234bf.zip |
Merge pull request #1927 from thunderstorm010/master
Add command to retrieve window size
Diffstat (limited to 'runtime/src/window')
-rw-r--r-- | runtime/src/window/action.rs | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/runtime/src/window/action.rs b/runtime/src/window/action.rs index 09be1810..b6964e36 100644 --- a/runtime/src/window/action.rs +++ b/runtime/src/window/action.rs @@ -1,4 +1,5 @@ use crate::core::window::{Icon, Level, Mode, UserAttention}; +use crate::core::Size; use crate::futures::MaybeSend; use crate::window::Screenshot; @@ -15,12 +16,9 @@ pub enum Action<T> { /// button was pressed immediately before this function is called. Drag, /// Resize the window. - Resize { - /// The new logical width of the window - width: u32, - /// The new logical height of the window - height: u32, - }, + Resize(Size<u32>), + /// Fetch the current size of the window. + FetchSize(Box<dyn FnOnce(Size<u32>) -> T + 'static>), /// Set the window to maximized or back Maximize(bool), /// Set the window to minimized or back @@ -106,7 +104,8 @@ impl<T> Action<T> { match self { Self::Close => Action::Close, Self::Drag => Action::Drag, - Self::Resize { width, height } => Action::Resize { width, height }, + Self::Resize(size) => Action::Resize(size), + Self::FetchSize(o) => Action::FetchSize(Box::new(move |s| f(o(s)))), Self::Maximize(maximized) => Action::Maximize(maximized), Self::Minimize(minimized) => Action::Minimize(minimized), Self::Move { x, y } => Action::Move { x, y }, @@ -135,10 +134,8 @@ impl<T> fmt::Debug for Action<T> { match self { Self::Close => write!(f, "Action::Close"), Self::Drag => write!(f, "Action::Drag"), - Self::Resize { width, height } => write!( - f, - "Action::Resize {{ widget: {width}, height: {height} }}" - ), + Self::Resize(size) => write!(f, "Action::Resize({size:?})"), + Self::FetchSize(_) => write!(f, "Action::FetchSize"), Self::Maximize(maximized) => { write!(f, "Action::Maximize({maximized})") } |