summaryrefslogtreecommitdiffstats
path: root/winit/src/settings.rs
diff options
context:
space:
mode:
Diffstat (limited to 'winit/src/settings.rs')
-rw-r--r--winit/src/settings.rs88
1 files changed, 3 insertions, 85 deletions
diff --git a/winit/src/settings.rs b/winit/src/settings.rs
index c0b3b047..dc0f65a5 100644
--- a/winit/src/settings.rs
+++ b/winit/src/settings.rs
@@ -1,9 +1,7 @@
//! Configure your application.
use crate::core::window;
-use crate::conversion;
-use winit::monitor::MonitorHandle;
-use winit::window::WindowBuilder;
+use std::borrow::Cow;
/// The settings of an application.
#[derive(Debug, Clone, Default)]
@@ -21,87 +19,7 @@ pub struct Settings<Flags> {
///
/// [`Application`]: crate::Application
pub flags: Flags,
-}
-
-/// Converts the window settings into a `WindowBuilder` from `winit`.
-pub fn window_builder(
- settings: window::Settings,
- title: &str,
- monitor: Option<MonitorHandle>,
- _id: Option<String>,
-) -> WindowBuilder {
- let mut window_builder = WindowBuilder::new();
-
- let (width, height) = settings.size;
-
- window_builder = window_builder
- .with_title(title)
- .with_inner_size(winit::dpi::LogicalSize { width, height })
- .with_resizable(settings.resizable)
- .with_decorations(settings.decorations)
- .with_transparent(settings.transparent)
- .with_window_icon(settings.icon.and_then(conversion::icon))
- .with_window_level(conversion::window_level(settings.level))
- .with_visible(settings.visible);
-
- if let Some(position) =
- conversion::position(monitor.as_ref(), settings.size, settings.position)
- {
- window_builder = window_builder.with_position(position);
- }
-
- if let Some((width, height)) = settings.min_size {
- window_builder = window_builder
- .with_min_inner_size(winit::dpi::LogicalSize { width, height });
- }
-
- if let Some((width, height)) = settings.max_size {
- window_builder = window_builder
- .with_max_inner_size(winit::dpi::LogicalSize { width, height });
- }
-
- #[cfg(any(
- target_os = "linux",
- target_os = "dragonfly",
- target_os = "freebsd",
- target_os = "netbsd",
- target_os = "openbsd"
- ))]
- {
- // `with_name` is available on both `WindowBuilderExtWayland` and `WindowBuilderExtX11` and they do
- // exactly the same thing. We arbitrarily choose `WindowBuilderExtWayland` here.
- use ::winit::platform::wayland::WindowBuilderExtWayland;
-
- if let Some(id) = _id {
- window_builder = window_builder.with_name(id.clone(), id);
- }
- }
-
- #[cfg(target_os = "windows")]
- {
- use winit::platform::windows::WindowBuilderExtWindows;
- #[allow(unsafe_code)]
- unsafe {
- window_builder = window_builder
- .with_parent_window(settings.platform_specific.parent);
- }
- window_builder = window_builder
- .with_drag_and_drop(settings.platform_specific.drag_and_drop);
- }
-
- #[cfg(target_os = "macos")]
- {
- use winit::platform::macos::WindowBuilderExtMacOS;
-
- window_builder = window_builder
- .with_title_hidden(settings.platform_specific.title_hidden)
- .with_titlebar_transparent(
- settings.platform_specific.titlebar_transparent,
- )
- .with_fullsize_content_view(
- settings.platform_specific.fullsize_content_view,
- );
- }
- window_builder
+ /// The fonts to load on boot.
+ pub fonts: Vec<Cow<'static, [u8]>>,
}