/******************************************************************************
*	File		-	gui.h
*	Author		-	Joey Pollack
*	Date		-	2021/09/09 (y/m/d)
*	Mod Date	-	2021/09/09 (y/m/d)
*	Description	-	The main class that manages Dear ImGui
******************************************************************************/

#ifndef GUI_H_
#define GUI_H_

#include <utils/opRes.h>

namespace lunarium
{
    class Window;
    class GUI
    {
    public:
        static GUI& GetInstance();
        static void FreeInstance();
        OpRes Initialize(Window* pWindow);
        void Shutdown();

        void NewFrame();
        void EndFrame();
        void ShowDemoWindow();

        bool WantCaptureKeyboard() const;

    private:
        GUI();
        GUI(const GUI&) = delete;
        const GUI operator=(const GUI&) = delete;

    private:
        static GUI* mpInstance;
        bool mbIsInit;
        bool mbShowDemo;
    };
}

#endif // GIU_H_