#![allow(unused_variables)]
use windows::Win32::Foundation::*;
#[cfg(feature = "raw_input")]
use crate::raw_input;
use crate::{device::*, geometry::*, ime::*, window::Window};
use std::path::Path;
pub struct Draw<'a> {
pub window: &'a Window,
}
pub struct Activated<'a> {
pub window: &'a Window,
}
pub struct Inactivated<'a> {
pub window: &'a Window,
}
pub struct Closed<'a> {
pub window: &'a Window,
}
pub struct Moved<'a> {
pub window: &'a Window,
pub position: ScreenPosition,
}
#[derive(Clone, Copy, PartialEq, Eq, Debug)]
pub enum ResizingEdge {
Left,
Right,
Top,
TopLeft,
TopRight,
Bottom,
BottomLeft,
BottomRight,
}
pub struct Resizing<'a> {
pub window: &'a Window,
pub size: &'a mut PhysicalSize<u32>,
pub edge: ResizingEdge,
}
pub struct Resized<'a> {
pub window: &'a Window,
pub size: PhysicalSize<u32>,
}
pub struct Minimized<'a> {
pub window: &'a Window,
}
pub struct Maximized<'a> {
pub window: &'a Window,
pub size: PhysicalSize<u32>,
}
pub struct Restored<'a> {
pub window: &'a Window,
pub size: PhysicalSize<u32>,
}
pub struct DpiChanged<'a> {
pub window: &'a Window,
pub new_dpi: u32,
}
pub struct MouseInput<'a> {
pub window: &'a Window,
pub button: MouseButton,
pub button_state: KeyState,
pub mouse_state: MouseState<'a>,
}
pub struct CursorMoved<'a> {
pub window: &'a Window,
pub mouse_state: MouseState<'a>,
}
pub struct CursorEntered<'a> {
pub window: &'a Window,
pub mouse_state: MouseState<'a>,
}
pub struct CursorLeaved<'a> {
pub window: &'a Window,
pub mouse_state: MouseState<'a>,
}
pub struct MouseWheel<'a> {
pub window: &'a Window,
pub axis: MouseWheelAxis,
pub distance: i32,
pub mouse_state: MouseState<'a>,
}
pub struct KeyInput<'a> {
pub window: &'a Window,
pub key_code: KeyCode,
pub state: KeyState,
pub prev_pressed: bool,
}
pub struct CharInput<'a> {
pub window: &'a Window,
pub c: char,
}
pub struct ImeStartComposition<'a> {
pub window: &'a Window,
}
pub struct ImeComposition<'a> {
pub window: &'a Window,
pub composition: &'a Composition,
pub candidate_list: Option<&'a CandidateList>,
}
pub struct ImeEndComposition<'a> {
pub window: &'a Window,
pub result: Option<&'a str>,
}
pub struct DropFiles<'a> {
pub window: &'a Window,
pub paths: &'a [&'a Path],
pub position: PhysicalPosition<i32>,
}
#[cfg(feature = "raw_input")]
pub struct RawInput<'a> {
pub window: &'a Window,
pub data: &'a raw_input::InputData,
}
#[cfg(feature = "raw_input")]
pub struct RawInputDeviceChange<'a> {
pub window: &'a Window,
pub device: &'a raw_input::Device,
pub state: raw_input::DeviceChangeState,
}
#[derive(Debug)]
pub struct Other {
pub hwnd: HWND,
pub message: u32,
pub wparam: WPARAM,
pub lparam: LPARAM,
}
pub trait EventHandler {
fn idle(&mut self) {}
fn pre_processing(&mut self) {}
fn post_processing(&mut self) {}
fn draw(&mut self, ev: Draw) {}
fn activated(&mut self, ev: Activated) {}
fn inactivated(&mut self, ev: Inactivated) {}
fn closed(&mut self, ev: Closed) {}
fn moved(&mut self, ev: Moved) {}
fn resizing(&mut self, ev: Resizing) {}
fn resized(&mut self, ev: Resized) {}
fn minimized(&mut self, ev: Minimized) {}
fn maximized(&mut self, ev: Maximized) {}
fn restored(&mut self, ev: Restored) {}
fn dpi_changed(&mut self, ev: DpiChanged) {}
fn mouse_input(&mut self, ev: MouseInput) {}
fn cursor_moved(&mut self, ev: CursorMoved) {}
fn cursor_entered(&mut self, ev: CursorEntered) {}
fn cursor_leaved(&mut self, ev: CursorLeaved) {}
fn mouse_wheel(&mut self, ev: MouseWheel) {}
fn key_input(&mut self, ev: KeyInput) {}
fn char_input(&mut self, ev: CharInput) {}
fn ime_start_composition(&mut self, ev: ImeStartComposition) {}
fn ime_composition(&mut self, ev: ImeComposition) {}
fn ime_end_composition(&mut self, ev: ImeEndComposition) {}
fn drop_files(&mut self, ev: DropFiles) {}
#[cfg(feature = "raw_input")]
fn raw_input(&mut self, ev: RawInput) {}
#[cfg(feature = "raw_input")]
fn raw_input_device_change(&mut self, ev: RawInputDeviceChange) {}
fn other(&mut self, ev: Other) -> Option<isize> {
None
}
}