diff options
Diffstat (limited to 'src/crepe/facade/EventData.h')
| -rw-r--r-- | src/crepe/facade/EventData.h | 54 | 
1 files changed, 54 insertions, 0 deletions
| diff --git a/src/crepe/facade/EventData.h b/src/crepe/facade/EventData.h new file mode 100644 index 0000000..a7526b4 --- /dev/null +++ b/src/crepe/facade/EventData.h @@ -0,0 +1,54 @@ +#pragma once +#include "../api/KeyCodes.h" +#include "../types.h" +namespace crepe { +//! EventType enum for passing eventType +enum EventType { +	NONE = 0, +	MOUSE_DOWN, +	MOUSE_UP, +	MOUSE_MOVE, +	MOUSE_WHEEL, +	KEY_UP, +	KEY_DOWN, +	SHUTDOWN, +	WINDOW_MINIMIZE, +	WINDOW_MAXIMIZE, +	WINDOW_FOCUS_GAIN, +	WINDOW_FOCUS_LOST, +	WINDOW_MOVE, +	WINDOW_RESIZE, +	WINDOW_EXPOSE, +}; + +//! Struct for storing key data. +struct KeyData { +	Keycode key = Keycode::NONE; +	bool key_repeat = false; +}; + +//! Struct for storing mouse data. +struct MouseData { +	MouseButton mouse_button = MouseButton::NONE; +	ivec2 mouse_position = {-1, -1}; +	int scroll_direction = -1; +	float scroll_delta = INFINITY; +	ivec2 rel_mouse_move = {-1, -1}; +}; + +//! Struct for storing window data. +struct WindowData { +	ivec2 move_delta; +	ivec2 resize_dimension; +}; + +//! EventData struct for passing event data from facade +struct EventData { +	EventType event_type = EventType::NONE; +	union { +		KeyData key_data; +		MouseData mouse_data; +		WindowData window_data; +	} data; +}; +} // namespace crepe |