diff options
author | 2020-01-16 05:54:22 +0100 | |
---|---|---|
committer | 2020-01-16 05:54:22 +0100 | |
commit | c96492b95660640eb2dd66a77c96ad32d5d5b0ae (patch) | |
tree | d072f613ac78a7389456681b48650badaca8d60b /winit/src | |
parent | d6b20d3e796951e6b42726fddc78fbb1b9aaa094 (diff) | |
download | iced-c96492b95660640eb2dd66a77c96ad32d5d5b0ae.tar.gz iced-c96492b95660640eb2dd66a77c96ad32d5d5b0ae.tar.bz2 iced-c96492b95660640eb2dd66a77c96ad32d5d5b0ae.zip |
Expose `window::Mode` in `iced`
Although the Fullscreen API in the Web platform has some limitations, it
is still useful to be able to support fullscreen on the native side.
Diffstat (limited to 'winit/src')
-rw-r--r-- | winit/src/application.rs | 6 | ||||
-rw-r--r-- | winit/src/conversion.rs | 24 | ||||
-rw-r--r-- | winit/src/lib.rs | 2 | ||||
-rw-r--r-- | winit/src/mode.rs | 9 |
4 files changed, 27 insertions, 14 deletions
diff --git a/winit/src/application.rs b/winit/src/application.rs index 3de0476f..9e8eaebb 100644 --- a/winit/src/application.rs +++ b/winit/src/application.rs @@ -2,7 +2,7 @@ use crate::{ conversion, input::{keyboard, mouse}, subscription, window, Cache, Clipboard, Command, Debug, Element, Event, - MouseCursor, Settings, Size, Subscription, UserInterface, + Mode, MouseCursor, Settings, Size, Subscription, UserInterface, }; /// An interactive, native cross-platform application. @@ -80,8 +80,8 @@ pub trait Application: Sized { /// By default, an application will run in windowed mode. /// /// [`Application`]: trait.Application.html - fn mode(&self) -> window::Mode { - window::Mode::Windowed + fn mode(&self) -> Mode { + Mode::Windowed } /// Runs the [`Application`]. diff --git a/winit/src/conversion.rs b/winit/src/conversion.rs index 16ed7547..725b2d86 100644 --- a/winit/src/conversion.rs +++ b/winit/src/conversion.rs @@ -7,23 +7,25 @@ use crate::{ keyboard::{KeyCode, ModifiersState}, mouse, ButtonState, }, - window, MouseCursor, + Mode, MouseCursor, }; -/// Convert a `Mode` from [`iced_native`] to a [`winit`] fullscreen mode. +/// Converts a [`Mode`] to a [`winit`] fullscreen mode. +/// +/// [`Mode`]: pub fn fullscreen( monitor: winit::monitor::MonitorHandle, - mode: window::Mode, + mode: Mode, ) -> Option<winit::window::Fullscreen> { match mode { - window::Mode::Windowed => None, - window::Mode::Fullscreen => { + Mode::Windowed => None, + Mode::Fullscreen => { Some(winit::window::Fullscreen::Borderless(monitor)) } } } -/// Convert a `MouseCursor` from [`iced_native`] to a [`winit`] cursor icon. +/// Converts a `MouseCursor` from [`iced_native`] to a [`winit`] cursor icon. /// /// [`winit`]: https://github.com/rust-windowing/winit /// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native @@ -39,7 +41,7 @@ pub fn mouse_cursor(mouse_cursor: MouseCursor) -> winit::window::CursorIcon { } } -/// Convert a `MouseButton` from [`winit`] to an [`iced_native`] mouse button. +/// Converts a `MouseButton` from [`winit`] to an [`iced_native`] mouse button. /// /// [`winit`]: https://github.com/rust-windowing/winit /// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native @@ -52,7 +54,7 @@ pub fn mouse_button(mouse_button: winit::event::MouseButton) -> mouse::Button { } } -/// Convert an `ElementState` from [`winit`] to an [`iced_native`] button state. +/// Converts an `ElementState` from [`winit`] to an [`iced_native`] button state. /// /// [`winit`]: https://github.com/rust-windowing/winit /// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native @@ -63,8 +65,8 @@ pub fn button_state(element_state: winit::event::ElementState) -> ButtonState { } } -/// Convert some `ModifiersState` from [`winit`] to an [`iced_native`] modifiers -/// state. +/// Converts some `ModifiersState` from [`winit`] to an [`iced_native`] +/// modifiers state. /// /// [`winit`]: https://github.com/rust-windowing/winit /// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native @@ -79,7 +81,7 @@ pub fn modifiers_state( } } -/// Convert a `VirtualKeyCode` from [`winit`] to an [`iced_native`] key code. +/// Converts a `VirtualKeyCode` from [`winit`] to an [`iced_native`] key code. /// /// [`winit`]: https://github.com/rust-windowing/winit /// [`iced_native`]: https://github.com/hecrj/iced/tree/master/native diff --git a/winit/src/lib.rs b/winit/src/lib.rs index ffc662fb..9000f977 100644 --- a/winit/src/lib.rs +++ b/winit/src/lib.rs @@ -30,6 +30,7 @@ pub mod settings; mod application; mod clipboard; +mod mode; mod subscription; // We disable debug capabilities on release builds unless the `debug` feature @@ -42,6 +43,7 @@ mod debug; mod debug; pub use application::Application; +pub use mode::Mode; pub use settings::Settings; use clipboard::Clipboard; diff --git a/winit/src/mode.rs b/winit/src/mode.rs new file mode 100644 index 00000000..37464711 --- /dev/null +++ b/winit/src/mode.rs @@ -0,0 +1,9 @@ +/// The mode of a window-based application. +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub enum Mode { + /// The application appears in its own window. + Windowed, + + /// The application takes the whole screen of its current monitor. + Fullscreen, +} |