diff options
author | 2022-10-19 22:56:00 -0300 | |
---|---|---|
committer | 2023-01-09 11:27:04 -0800 | |
commit | 1bc0c480f9747826b244c30e92d8c4a29b576e4a (patch) | |
tree | cfe793f0ad7977c334fb729bdb989dc6a88b4496 /winit | |
parent | a386788b67bf4e008916e79a8c7dd7289a3ab3cd (diff) | |
download | iced-1bc0c480f9747826b244c30e92d8c4a29b576e4a.tar.gz iced-1bc0c480f9747826b244c30e92d8c4a29b576e4a.tar.bz2 iced-1bc0c480f9747826b244c30e92d8c4a29b576e4a.zip |
move window settings to `iced_native`
Diffstat (limited to '')
-rw-r--r-- | native/src/window/position.rs (renamed from winit/src/position.rs) | 0 | ||||
-rw-r--r-- | winit/src/icon.rs (renamed from src/window/icon.rs) | 21 | ||||
-rw-r--r-- | winit/src/lib.rs | 5 | ||||
-rw-r--r-- | winit/src/settings.rs | 21 |
4 files changed, 38 insertions, 9 deletions
diff --git a/winit/src/position.rs b/native/src/window/position.rs index c260c29e..c260c29e 100644 --- a/winit/src/position.rs +++ b/native/src/window/position.rs diff --git a/src/window/icon.rs b/winit/src/icon.rs index bacad41a..84b88b39 100644 --- a/src/window/icon.rs +++ b/winit/src/icon.rs @@ -7,7 +7,7 @@ use std::path::Path; /// The icon of a window. #[derive(Debug, Clone)] -pub struct Icon(iced_winit::winit::window::Icon); +pub struct Icon(winit::window::Icon); impl Icon { /// Creates an icon from 32bpp RGBA data. @@ -16,8 +16,7 @@ impl Icon { width: u32, height: u32, ) -> Result<Self, Error> { - let raw = - iced_winit::winit::window::Icon::from_rgba(rgba, width, height)?; + let raw = winit::window::Icon::from_rgba(rgba, width, height)?; Ok(Icon(raw)) } @@ -91,9 +90,9 @@ impl From<std::io::Error> for Error { } } -impl From<iced_winit::winit::window::BadIcon> for Error { - fn from(error: iced_winit::winit::window::BadIcon) -> Self { - use iced_winit::winit::window::BadIcon; +impl From<winit::window::BadIcon> for Error { + fn from(error: winit::window::BadIcon) -> Self { + use winit::window::BadIcon; match error { BadIcon::ByteCountNotDivisibleBy4 { byte_count } => { @@ -114,7 +113,7 @@ impl From<iced_winit::winit::window::BadIcon> for Error { } } -impl From<Icon> for iced_winit::winit::window::Icon { +impl From<Icon> for winit::window::Icon { fn from(icon: Icon) -> Self { icon.0 } @@ -170,3 +169,11 @@ impl std::error::Error for Error { Some(self) } } + +impl TryFrom<iced_native::window::Icon> for Icon { + type Error = Error; + + fn try_from(icon: iced_native::window::Icon) -> Result<Self, Self::Error> { + Icon::from_rgba(icon.rgba, icon.width, icon.height) + } +} diff --git a/winit/src/lib.rs b/winit/src/lib.rs index 9b3c0a02..eb58482b 100644 --- a/winit/src/lib.rs +++ b/winit/src/lib.rs @@ -49,7 +49,7 @@ pub mod window; pub mod system; mod error; -mod position; +mod icon; mod proxy; #[cfg(feature = "application")] @@ -58,8 +58,9 @@ pub use application::Application; pub use application::Profiler; pub use clipboard::Clipboard; pub use error::Error; -pub use position::Position; +pub use icon::Icon; pub use proxy::Proxy; pub use settings::Settings; pub use iced_graphics::Viewport; +pub use iced_native::window::Position; diff --git a/winit/src/settings.rs b/winit/src/settings.rs index ea0ba361..78c8c156 100644 --- a/winit/src/settings.rs +++ b/winit/src/settings.rs @@ -22,6 +22,7 @@ mod platform; pub use platform::PlatformSpecific; use crate::conversion; +use crate::Icon; use crate::Position; use winit::monitor::MonitorHandle; use winit::window::WindowBuilder; @@ -201,3 +202,23 @@ impl Default for Window { } } } + +impl From<iced_native::window::Settings> for Window { + fn from(settings: iced_native::window::Settings) -> Self { + Self { + size: settings.size, + position: Position::from(settings.position), + min_size: settings.min_size, + max_size: settings.max_size, + visible: settings.visible, + resizable: settings.resizable, + decorations: settings.decorations, + transparent: settings.transparent, + always_on_top: settings.always_on_top, + icon: settings.icon.and_then(|icon| { + Icon::try_from(icon).map(winit::window::Icon::from).ok() + }), + platform_specific: Default::default(), + } + } +} |