#pragma once

#include <memory>

#include "UiEvent.h"

class ThemeManager;
class FontsManager;

class PaintEvent : public UiEvent
{
public:
    PaintEvent(ThemeManager* themesManager, FontsManager* fontsManager);

    static std::unique_ptr<PaintEvent> Create(ThemeManager* themesManager, FontsManager* fontsManager);

    ~PaintEvent();

    ThemeManager* getThemesManager() const;
    FontsManager* getFontsManager() const;

private:
    ThemeManager* mThemeManager{ nullptr };
    FontsManager* mFontsManager{ nullptr };
};
using PaintEventUPtr = std::unique_ptr<PaintEvent>;
