2020-02-25 00:44:40 +01:00
|
|
|
#include "WindowManager.h"
|
2023-01-29 18:58:59 +01:00
|
|
|
#include "Graphics/Graphics.h"
|
2020-02-25 00:44:40 +01:00
|
|
|
|
2021-09-29 22:12:56 +02:00
|
|
|
using namespace Seele;
|
|
|
|
|
|
|
|
|
|
WindowManager::WindowManager()
|
2020-02-25 00:44:40 +01:00
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
|
2021-09-29 22:12:56 +02:00
|
|
|
WindowManager::~WindowManager()
|
2020-02-25 00:44:40 +01:00
|
|
|
{
|
|
|
|
|
}
|
2020-03-05 11:43:38 +01:00
|
|
|
|
2023-01-29 18:58:59 +01:00
|
|
|
PWindow WindowManager::addWindow(Gfx::PGraphics graphics, const WindowCreateInfo &createInfo)
|
2020-03-05 11:43:38 +01:00
|
|
|
{
|
2023-11-01 23:12:30 +01:00
|
|
|
Gfx::OWindow handle = graphics->createWindow(createInfo);
|
|
|
|
|
OWindow window = new Window(this, handle);
|
|
|
|
|
PWindow ref = window;
|
|
|
|
|
windows.add(std::move(window));
|
|
|
|
|
return ref;
|
2021-11-01 20:25:16 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void WindowManager::notifyWindowClosed(PWindow window)
|
|
|
|
|
{
|
2023-11-05 10:36:01 +01:00
|
|
|
windows.remove(windows.find([window] (const OWindow& w) { return window == w; }));
|
2021-11-11 20:12:50 +01:00
|
|
|
if(windows.empty())
|
|
|
|
|
{
|
2022-03-19 22:45:30 +01:00
|
|
|
exit(0);
|
2021-11-11 20:12:50 +01:00
|
|
|
}
|
2020-03-05 11:43:38 +01:00
|
|
|
}
|