summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/settings/mod.rs (renamed from src/settings.rs)15
-rw-r--r--src/settings/not_windows.rs14
-rw-r--r--src/settings/windows.rs21
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,
+ }
+ }
+}