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.
This commit is contained in:
parent
d6b20d3e79
commit
c96492b956
11 changed files with 81 additions and 42 deletions
|
|
@ -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`].
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
9
winit/src/mode.rs
Normal file
9
winit/src/mode.rs
Normal file
|
|
@ -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,
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue