#[derive(Debug, Clone)]
pub enum InputEvent {
    KeyboardInput { key_code: u32, state: KeyState },
    GamepadConnected { gamepad_id: usize },
    GamepadDisconnected { gamepad_id: usize },
}

#[derive(Debug, Clone, Copy)]
pub enum KeyState {
    Pressed,
    Released,
}

pub enum AppEvent {
    Keyboard {
        key: winit::keyboard::KeyCode,
        state: winit::event::ElementState,
    },
    Mouse {
        button: winit::event::MouseButton,
        state: winit::event::ElementState,
    },
    #[cfg(feature = "gamepad")]
    Gamepad(gilrs::Event),
    FileDropped(crate::ecs::input::resources::DroppedFile),
    FileDroppedPath(std::path::PathBuf),
    FileHovered(std::path::PathBuf),
    FileHoverCancelled,
    Suspended,
    Resumed,
}
