Add platform specific settings
This commit is contained in:
parent
f0a857ddde
commit
5077f1dc6a
9 changed files with 106 additions and 0 deletions
|
|
@ -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(),
|
||||
},
|
||||
}
|
||||
}
|
||||
14
src/settings/not_windows.rs
Normal file
14
src/settings/not_windows.rs
Normal file
|
|
@ -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 {}
|
||||
}
|
||||
}
|
||||
21
src/settings/windows.rs
Normal file
21
src/settings/windows.rs
Normal file
|
|
@ -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,
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue