aura-gui 0.2.2

UI nativa acelerada por GPU para escritorio, Android e iOS, en un solo crate: estilo tipo Tailwind, componentes, sombras, animaciones y agentes de IA. Reposo a cero. Licencia AGPL-3.0 o comercial.
//! Eventos de entrada normalizados, independientes de la plataforma.

use crate::core::geometry::Point;

#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub struct Modifiers {
    pub shift: bool,
    pub control: bool,
    pub alt: bool,
    pub command: bool,
}

#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub enum MouseButton {
    Left,
    Right,
    Middle,
}

#[derive(Clone, Debug, PartialEq)]
pub enum InputEvent {
    MouseMove {
        position: Point,
    },
    MouseDown {
        position: Point,
        button: MouseButton,
    },
    MouseUp {
        position: Point,
        button: MouseButton,
    },
    Scroll {
        position: Point,
        delta: Point,
    },
    /// `keystroke` usa el formato del keymap (`mod-shift-p`); `text` es lo que escribiría.
    KeyDown {
        keystroke: String,
        text: Option<String>,
    },
    ImePreedit {
        text: String,
        cursor: Option<usize>,
    },
    ImeCommit(String),
}