diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/settings/mod.rs (renamed from src/settings.rs) | 15 | ||||
-rw-r--r-- | src/settings/not_windows.rs | 14 | ||||
-rw-r--r-- | src/settings/windows.rs | 21 |
3 files changed, 50 insertions, 0 deletions
diff --git a/src/settings.rs b/src/settings/mod.rs index c9ece5ef..d64cfa13 100644 --- a/src/settings.rs +++ b/src/settings/mod.rs @@ -1,5 +1,15 @@ //! Configure your application. +#[cfg(target_os = "windows")] +#[path = "windows.rs"] +pub mod platform; + +#[cfg(not(target_os = "windows"))] +#[path = "not_windows.rs"] +pub mod platform; + +pub use platform::PlatformSpecific; + /// The settings of an application. #[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] pub struct Settings { @@ -22,6 +32,9 @@ pub struct Window { /// Whether the window should have a border, a title bar, etc. pub decorations: bool, + + /// Platform specific Setting. + pub platform_specific: PlatformSpecific, } impl Default for Window { @@ -30,6 +43,7 @@ impl Default for Window { size: (1024, 768), resizable: true, decorations: true, + platform_specific: Default::default(), } } } @@ -42,6 +56,7 @@ impl From<Settings> for iced_winit::Settings { size: settings.window.size, resizable: settings.window.resizable, decorations: settings.window.decorations, + platform_specific: settings.window.platform_specific.into(), }, } } diff --git a/src/settings/not_windows.rs b/src/settings/not_windows.rs new file mode 100644 index 00000000..1ae14c7f --- /dev/null +++ b/src/settings/not_windows.rs @@ -0,0 +1,14 @@ +#![cfg(not(target_os = "windows"))] +//! Platform specific settings for not Windows. + +/// The platform specific window settings of an application. +#[cfg(not(target_os = "windows"))] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub struct PlatformSpecific {} + +#[cfg(not(target_os = "windows"))] +impl From<PlatformSpecific> for iced_winit::settings::PlatformSpecific { + fn from(_: PlatformSpecific) -> iced_winit::settings::PlatformSpecific { + iced_winit::settings::PlatformSpecific {} + } +} diff --git a/src/settings/windows.rs b/src/settings/windows.rs new file mode 100644 index 00000000..0372111f --- /dev/null +++ b/src/settings/windows.rs @@ -0,0 +1,21 @@ +#![cfg(target_os = "windows")] +//! Platform specific settings for Windows. + +/// The platform specific window settings of an application. +#[cfg(target_os = "windows")] +#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)] +pub struct PlatformSpecific { + /// Parent Window + pub parent: Option<winapi::shared::windef::HWND>, +} + +#[cfg(target_os = "windows")] +impl From<PlatformSpecific> for iced_winit::settings::PlatformSpecific { + fn from( + platform_specific: PlatformSpecific, + ) -> iced_winit::settings::PlatformSpecific { + iced_winit::settings::PlatformSpecific { + parent: platform_specific.parent, + } + } +} |