use std::path::PathBuf;
use crate::prelude::*;
#[cfg(feature = "egui")]
use egui_winit_vulkano::egui::Context;
use winit::dpi;
pub use winit::event::{ElementState, MouseButton, VirtualKeyCode};
#[derive(Debug, Clone)]
pub enum Event {
#[cfg(feature = "egui")]
Egui(Context),
Window(WindowEvent),
Input(InputEvent),
Destroyed,
}
#[derive(Debug, Clone)]
pub enum WindowEvent {
Resized(dpi::PhysicalSize<u32>),
CloseRequested,
Destroyed,
HoveredFile(PathBuf),
DroppedFile(PathBuf),
HoveredFileCancelled,
Focused(bool),
CursorEntered,
CursorLeft,
CursorMoved(dpi::PhysicalPosition<f64>),
MouseWheel(ScrollDelta),
}
#[derive(Debug, Clone)]
pub enum InputEvent {
MouseMotion(Vec2),
MouseWheel(ScrollDelta),
MouseInput(MouseButton, ElementState),
ReceivedCharacter(char),
KeyboardInput { input: KeyboardInput },
ModifiersChanged,
}
#[derive(Debug, Clone)]
pub enum ScrollDelta {
LineDelta(Vec2),
PixelDelta(dpi::PhysicalPosition<f64>),
}
#[derive(Debug, Clone)]
pub struct KeyboardInput {
pub scancode: u32,
pub keycode: Option<VirtualKeyCode>,
pub state: ElementState,
}