74 lines
1.9 KiB
Rust
74 lines
1.9 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 "outer" position,
|
|
/// or the window 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(Point),
|
|
|
|
/// A window was resized.
|
|
Resized(Size),
|
|
|
|
/// 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.
|
|
///
|
|
/// ## Platform-specific
|
|
///
|
|
/// - **Wayland:** Not implemented.
|
|
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.
|
|
///
|
|
/// ## Platform-specific
|
|
///
|
|
/// - **Wayland:** Not implemented.
|
|
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.
|
|
///
|
|
/// ## Platform-specific
|
|
///
|
|
/// - **Wayland:** Not implemented.
|
|
FilesHoveredLeft,
|
|
}
|