#pragma once

#include <memory>
#include <string>

#include "UiEvent.h"

class KeyboardEvent : public UiEvent
{
public:
    enum class Action
    {
        Pressed,
        Released
    };

private:

    Action mAction;
    std::string mKeyString;

public:

    KeyboardEvent();

    ~KeyboardEvent();

    static std::unique_ptr<KeyboardEvent> Create();

    void SetKeyString(const std::string& key);

    std::string GetKeyString() const;

    void SetAction(Action action);

    Action GetAction() const;

};
using KeyboardEventUPtr = std::unique_ptr<KeyboardEvent>;
