#pragma once

#include <Core/Common/CoreTypes.h>
#include <Core/Common/NonNullPtr.h>
#include <Core/Common/String.h>
#include <Juliet.h>

namespace Juliet
{
    struct Window;

    using WindowID = uint8;
    extern JULIET_API Window* CreatePlatformWindow(const char* title, uint16 width, uint16 height, int flags = 0 /* unused */);
    extern JULIET_API void DestroyPlatformWindow(NonNullPtr<Window> window);

    extern JULIET_API void ShowWindow(NonNullPtr<Window> window);
    extern JULIET_API void HideWindow(NonNullPtr<Window> window);

    extern JULIET_API WindowID GetWindowID(NonNullPtr<Window> window);
    extern JULIET_API void SetWindowTitle(NonNullPtr<Window> window, String title);
} // namespace Juliet
