use std::path::PathBuf;
use magma_app::magma_ecs::entities::Entity;
use magma_math::IVec2;
use crate::window::WindowTheme;
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowResized {
pub window: Entity,
pub width: u32,
pub height: u32,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct RedrawRequested;
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowCreated {
pub window: Entity,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowCloseRequested {
pub window: Entity,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowClosed {
pub window: Entity,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowDestroyed;
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Default)]
pub struct CursorMoved {
pub window: Entity,
pub position: IVec2,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct CursorEntered {
pub window: Entity,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct CursorLeft {
pub window: Entity,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowFocused {
pub window: Entity,
pub focus: bool,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub enum WindowOcclusion {
Occluded { window: Entity },
NotOccluded { window: Entity },
}
#[derive(Clone, PartialEq, Eq, PartialOrd, Ord, Hash, Debug)]
pub enum FileDragDrop {
Dropped { window: Entity, path: PathBuf },
Hovered { window: Entity, path: PathBuf },
HoverCanceled { window: Entity },
}
#[derive(Clone, Copy, PartialEq, Eq, Hash, Debug, Default)]
pub struct WindowMoved {
pub window: Entity,
pub position: IVec2,
}
#[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash, Debug, Default)]
pub struct WindowThemeChanged {
pub window: Entity,
pub theme: WindowTheme,
}