72 lines
2 KiB
Rust
72 lines
2 KiB
Rust
use crate::time::Instant;
|
|
use crate::{Point, Size};
|
|
|
|
use std::path::PathBuf;
|
|
|
|
/// A window-related event.
|
|
#[derive(PartialEq, Clone, Debug)]
|
|
pub enum Event {
|
|
/// A window was opened.
|
|
Opened {
|
|
/// The position of the opened window. This is relative to the top-left corner of the desktop
|
|
/// the window is on, including virtual desktops. Refers to window's "inner" position,
|
|
/// or the client area, in logical pixels.
|
|
///
|
|
/// **Note**: Not available in Wayland.
|
|
position: Option<Point>,
|
|
/// The size of the created window. This is its "inner" size, or the size of the
|
|
/// client area, in logical pixels.
|
|
size: Size,
|
|
},
|
|
|
|
/// A window was closed.
|
|
Closed,
|
|
|
|
/// A window was moved.
|
|
Moved {
|
|
/// The new logical x location of the window
|
|
x: i32,
|
|
/// The new logical y location of the window
|
|
y: i32,
|
|
},
|
|
|
|
/// A window was resized.
|
|
Resized {
|
|
/// The new logical width of the window
|
|
width: u32,
|
|
/// The new logical height of the window
|
|
height: u32,
|
|
},
|
|
|
|
/// A window redraw was requested.
|
|
///
|
|
/// The [`Instant`] contains the current time.
|
|
RedrawRequested(Instant),
|
|
|
|
/// The user has requested for the window to close.
|
|
CloseRequested,
|
|
|
|
/// A window was focused.
|
|
Focused,
|
|
|
|
/// A window was unfocused.
|
|
Unfocused,
|
|
|
|
/// A file is being hovered over the window.
|
|
///
|
|
/// When the user hovers multiple files at once, this event will be emitted
|
|
/// for each file separately.
|
|
FileHovered(PathBuf),
|
|
|
|
/// A file has been dropped into the window.
|
|
///
|
|
/// When the user drops multiple files at once, this event will be emitted
|
|
/// for each file separately.
|
|
FileDropped(PathBuf),
|
|
|
|
/// A file was hovered, but has exited the window.
|
|
///
|
|
/// There will be a single `FilesHoveredLeft` event triggered even if
|
|
/// multiple files were hovered.
|
|
FilesHoveredLeft,
|
|
}
|