use crate::prelude::*;
#[derive(Clone, Debug)]
pub enum TheEvent {
Context(Vec2<i32>),
MouseDown(Vec2<i32>),
Hover(Vec2<i32>),
MouseDragged(Vec2<i32>),
MouseUp(Vec2<i32>),
MouseWheel(Vec2<i32>),
KeyDown(TheValue),
KeyUp(TheValue),
KeyCodeDown(TheValue),
KeyCodeUp(TheValue),
ModifierChanged(bool, bool, bool, bool),
DropPreview(Vec2<i32>, TheDrop),
Drop(Vec2<i32>, TheDrop),
TileDropped(TheId, Uuid, usize),
StateChanged(TheId, TheWidgetState),
SetState(String, TheWidgetState),
SetStateId(Uuid, TheWidgetState),
DragStarted(TheId, String, Vec2<i32>),
DragStartedWithNoImage(TheDrop),
ValueChanged(TheId, TheValue),
SetValue(Uuid, TheValue),
ScrollBy(TheId, Vec2<i32>),
GainedFocus(TheId),
LostFocus(TheId),
GainedHover(TheId),
LostHover(TheId),
SizeChanged(TheId),
RedirectWidgetValueToLayout(TheId, TheId, TheValue),
SetStatusText(TheId, String),
IndexChanged(TheId, usize),
PaletteIndexChanged(TheId, u16),
PaletteEntriesSwapped(TheId, u16, u16),
ColorButtonClicked(TheId),
TileSelectionChanged(TheId),
TilePicked(TheId, Vec2<i32>),
TileDragStarted(TheId, Vec2<i32>, Vec2<i32>),
TileEditorClicked(TheId, Vec2<i32>),
TileEditorDragged(TheId, Vec2<i32>),
TileEditorHoverChanged(TheId, Vec2<i32>),
TileEditorDrop(TheId, Vec2<i32>, TheDrop),
TileEditorDelete(TheId, FxHashSet<(i32, i32)>),
TileEditorUp(TheId),
TileZoomBy(TheId, f32),
RenderViewClicked(TheId, Vec2<i32>),
RenderViewDragged(TheId, Vec2<i32>),
RenderViewHoverChanged(TheId, Vec2<i32>),
RenderViewLostHover(TheId),
RenderViewScrollBy(TheId, Vec2<i32>),
RenderViewUp(TheId, Vec2<i32>),
RenderViewDrop(TheId, Vec2<i32>, TheDrop),
RenderViewContext(TheId, Vec2<i32>),
TimelineMarkerSelected(TheId, TheTime),
SDFIndexChanged(TheId, u32),
ShowContextMenu(TheId, Vec2<i32>, TheContextMenu),
ShowMenu(TheId, Vec2<i32>, TheContextMenu),
ContextMenuSelected(TheId, TheId),
ContextMenuClosed(TheId),
NodeSelectedIndexChanged(TheId, Option<usize>),
NodeDragged(TheId, usize, Vec2<i32>),
NodePreviewToggled(TheId, usize, bool),
NodeConnectionAdded(TheId, Vec<(u16, u8, u16, u8)>),
NodeConnectionRemoved(TheId, Vec<(u16, u8, u16, u8)>),
NodeDeleted(TheId, usize, Vec<(u16, u8, u16, u8)>),
NodeViewScrolled(TheId, Vec2<i32>),
DialogValueOnClose(TheDialogButtonRole, String, Uuid, TheValue),
SetStackIndex(TheId, usize),
NewListItemSelected(TheId, TheId),
ScrollLayout(TheId, Vec2<i32>),
SnapperStateChanged(TheId, TheId, bool),
TreeOpenStateChanged(TheId, bool),
FileRequesterResult(TheId, Vec<std::path::PathBuf>),
ImageDecodeResult(TheId, String, TheRGBABuffer),
ExternalUrlRequested(String),
Resize,
WidgetResized(TheId, TheDim),
SetClipboard(TheValue, Option<String>),
Cut,
Copy,
Paste(TheValue, Option<String>),
ClipboardChanged,
Undo,
Redo,
Custom(TheId, TheValue),
CustomUndo(TheId, String, String),
}