summaryrefslogtreecommitdiffstats
path: root/native/src/event.rs
blob: 91f33bd58eaf6470ce8b1f153253a90d8d332183 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! Handle events of a user interface.
use crate::{keyboard, mouse, window};

/// A user interface event.
///
/// _**Note:** This type is largely incomplete! If you need to track
/// additional events, feel free to [open an issue] and share your use case!_
///
/// [open an issue]: https://github.com/hecrj/iced/issues
#[derive(Debug, Clone, PartialEq)]
pub enum Event {
    /// A keyboard event
    Keyboard(keyboard::Event),

    /// A mouse event
    Mouse(mouse::Event),

    /// A window event
    Window(window::Event),
}

/// The status of an [`Event`] after being processed.
///
/// [`Event`]: enum.Event.html
/// [`UserInterface`]: ../struct.UserInterface.html
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Status {
    /// The [`Event`] was _NOT_ handled by any widget.
    ///
    /// [`Event`]: enum.Event.html
    Ignored,

    /// The [`Event`] was handled and processed by a widget.
    ///
    /// [`Event`]: enum.Event.html
    Captured,
}