#pragma once

#include "Window.h"

#include "Win32WindowInterface.h"
#include "AbstractUiInterface.h"

class DesktopManager;

class Win32UIInterface : public AbstractUIInterface
{
public:
    Win32UIInterface(DesktopManager* desktopManager, std::unique_ptr<FontsManager> fontsManager, bool useHardware = false);

    ~Win32UIInterface() = default;

    void initialize() override;

    void loop() override;

    void shutDown() override;

    void showWindow(mt::Window* window) override;

    void addWindow(mt::Window* window) override;

private:

    Win32WindowInterfacePtr mWindowInterface;
};