#pragma once

#include <memory>

class UiEvent
{
public:

    enum class Type{
        Unknown,
        Paint,
        Mouse,
        Keyboard
    };

protected:
    UiEvent::Type mType;

public:

    UiEvent();

    virtual ~UiEvent();

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

    Type GetType() const;
};
using UiEventUPtr = std::unique_ptr<UiEvent>;
