#ifndef KEYEVENT_HPP_INCLUDED
#define KEYEVENT_HPP_INCLUDED

#include <cstdint>
#include "Object.hpp"

namespace Internal
{
    class KeyEvent : public Object
    {
        public:
            KeyEvent(const void* Obj);
            KeyEvent(Object Source, std::int32_t ID, std::int64_t When, std::int32_t Modifiers,
                     std::int32_t KeyCode, std::uint16_t KeyChar, std::int32_t KeyLocation);

            KeyEvent() = default;
            KeyEvent(KeyEvent&& Obj) = default;
            KeyEvent(const KeyEvent& Obj) = default;
            KeyEvent& operator=(KeyEvent&& Obj) = default;
            KeyEvent& operator=(const KeyEvent& Obj) = default;
    };
}

#endif // KEYEVENT_HPP_INCLUDED
