// Copyright (c) 2012-2023 Wojciech Figat. All rights reserved.
#pragma once
#include "Window.h"
#include "CriticalSection.h"
///
/// Window objects manager service.
///
class WindowsManager
{
public:
///
/// The window objects collection mutex.
///
static CriticalSection WindowsLocker;
///
/// The window objects collection.
///
static Array Windows;
public:
///
/// Gets the window by native handle.
///
/// The native window handle.
/// Found window or null if cannot find it.
static Window* GetByNativePtr(void* handle);
public:
// Used by WindowBase
static void Register(Window* win);
static void Unregister(Window* win);
};