Merge remote-tracking branch 'origin/master' into feat/multi-window-support
# Conflicts: # Cargo.toml # core/src/window/icon.rs # core/src/window/id.rs # core/src/window/position.rs # core/src/window/settings.rs # examples/integration/src/main.rs # examples/integration_opengl/src/main.rs # glutin/src/application.rs # native/src/subscription.rs # native/src/window.rs # runtime/src/window/action.rs # src/lib.rs # src/window.rs # winit/Cargo.toml # winit/src/application.rs # winit/src/icon.rs # winit/src/settings.rs # winit/src/window.rs
This commit is contained in:
commit
633f405f3f
394 changed files with 17278 additions and 13290 deletions
|
|
@ -1,12 +1,13 @@
|
|||
//! Convert [`winit`] types into [`iced_native`] types, and viceversa.
|
||||
//!
|
||||
//! [`winit`]: https://github.com/rust-windowing/winit
|
||||
//! [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
|
||||
use crate::keyboard;
|
||||
use crate::mouse;
|
||||
use crate::touch;
|
||||
use crate::window;
|
||||
use crate::{Event, Point, Position};
|
||||
//! [`iced_native`]: https://github.com/iced-rs/iced/tree/0.9/native
|
||||
use crate::core::keyboard;
|
||||
use crate::core::mouse;
|
||||
use crate::core::touch;
|
||||
use crate::core::window;
|
||||
use crate::core::{Event, Point};
|
||||
use crate::Position;
|
||||
|
||||
/// Converts a winit window event into an iced event.
|
||||
pub fn window_event(
|
||||
|
|
@ -149,6 +150,19 @@ pub fn window_event(
|
|||
}
|
||||
}
|
||||
|
||||
/// Converts a [`window::Level`] to a [`winit`] window level.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
pub fn window_level(level: window::Level) -> winit::window::WindowLevel {
|
||||
match level {
|
||||
window::Level::Normal => winit::window::WindowLevel::Normal,
|
||||
window::Level::AlwaysOnBottom => {
|
||||
winit::window::WindowLevel::AlwaysOnBottom
|
||||
}
|
||||
window::Level::AlwaysOnTop => winit::window::WindowLevel::AlwaysOnTop,
|
||||
}
|
||||
}
|
||||
|
||||
/// Converts a [`Position`] to a [`winit`] logical position for a given monitor.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
|
|
@ -228,7 +242,7 @@ pub fn mode(mode: Option<winit::window::Fullscreen>) -> window::Mode {
|
|||
/// Converts a `MouseCursor` from [`iced_native`] to a [`winit`] cursor icon.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.9/native
|
||||
pub fn mouse_interaction(
|
||||
interaction: mouse::Interaction,
|
||||
) -> winit::window::CursorIcon {
|
||||
|
|
@ -246,21 +260,20 @@ pub fn mouse_interaction(
|
|||
winit::window::CursorIcon::EwResize
|
||||
}
|
||||
Interaction::ResizingVertically => winit::window::CursorIcon::NsResize,
|
||||
Interaction::NotAllowed => winit::window::CursorIcon::NotAllowed,
|
||||
}
|
||||
}
|
||||
|
||||
/// Converts a `MouseButton` from [`winit`] to an [`iced_native`] mouse button.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.9/native
|
||||
pub fn mouse_button(mouse_button: winit::event::MouseButton) -> mouse::Button {
|
||||
match mouse_button {
|
||||
winit::event::MouseButton::Left => mouse::Button::Left,
|
||||
winit::event::MouseButton::Right => mouse::Button::Right,
|
||||
winit::event::MouseButton::Middle => mouse::Button::Middle,
|
||||
winit::event::MouseButton::Other(other) => {
|
||||
mouse::Button::Other(other as u8)
|
||||
}
|
||||
winit::event::MouseButton::Other(other) => mouse::Button::Other(other),
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -268,7 +281,7 @@ pub fn mouse_button(mouse_button: winit::event::MouseButton) -> mouse::Button {
|
|||
/// modifiers state.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.9/native
|
||||
pub fn modifiers(
|
||||
modifiers: winit::event::ModifiersState,
|
||||
) -> keyboard::Modifiers {
|
||||
|
|
@ -295,7 +308,7 @@ pub fn cursor_position(
|
|||
/// Converts a `Touch` from [`winit`] to an [`iced_native`] touch event.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.9/native
|
||||
pub fn touch_event(
|
||||
touch: winit::event::Touch,
|
||||
scale_factor: f64,
|
||||
|
|
@ -326,7 +339,7 @@ pub fn touch_event(
|
|||
/// Converts a `VirtualKeyCode` from [`winit`] to an [`iced_native`] key code.
|
||||
///
|
||||
/// [`winit`]: https://github.com/rust-windowing/winit
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.8/native
|
||||
/// [`iced_native`]: https://github.com/iced-rs/iced/tree/0.9/native
|
||||
pub fn key_code(
|
||||
virtual_keycode: winit::event::VirtualKeyCode,
|
||||
) -> keyboard::KeyCode {
|
||||
|
|
@ -519,6 +532,15 @@ pub fn user_attention(
|
|||
}
|
||||
}
|
||||
|
||||
/// Converts some [`Icon`] into it's `winit` counterpart.
|
||||
///
|
||||
/// Returns `None` if there is an error during the conversion.
|
||||
pub fn icon(icon: window::Icon) -> Option<winit::window::Icon> {
|
||||
let (pixels, size) = icon.into_raw();
|
||||
|
||||
winit::window::Icon::from_rgba(pixels, size.width, size.height).ok()
|
||||
}
|
||||
|
||||
// As defined in: http://www.unicode.org/faq/private_use.html
|
||||
pub(crate) fn is_private_use_character(c: char) -> bool {
|
||||
matches!(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue