#ifndef __Event__
#define __Event__

#include "../Core/types.h"

struct Event {
    enum {
        KEY_DOWN,
        KEY_UP,
        CHAR,
        MOUSE_LEFT_DOWN,
        MOUSE_LEFT_UP,
        MOUSE_RIGHT_DOWN,
        MOUSE_RIGHT_UP,
        MOUSE_MIDDLE_DOWN,
        MOUSE_MIDDLE_UP,
        MOUSE_WHEEL,
        MOUSE_MOVE,
        MOUSE_ENTER,
        MOUSE_LEAVE,
        MOUSE_LEFT_CLICK,
        MOUSE_RIGHT_CLICK,
        FOCUS_GAINED,
        FOCUS_LOST,
        DRAG_BEGIN,
        DRAG,
        DRAG_END,
        VALUE_CHANGED
    };

    int type;
    uint32 keyCode;
    float mouseX, mouseY;
    float scroll;
};

#endif