#pragma once

#include "Window.h"
#include "AbstractApp.h"

#include <Windows.h>

#include <memory>

class DesktopManager;

class Win32ApplicationContext : public IApplicationContext
{
public:
    void* hInstance{ nullptr };
    int nCmdShow{ 0 };
};

class Win32WindowInterface
{
public:
    Win32WindowInterface();

    void Add(mt::Window* window, DesktopManager* desktopManager);

    void Show(mt::Window* window);
};

using Win32WindowInterfacePtr = std::unique_ptr<Win32WindowInterface>;