stuff-from-scratch/src/client/GuiApplication.cpp
2022-12-02 13:44:52 +00:00

54 lines
1.2 KiB
C++

#include "GuiApplication.h"
#include "UiInterfaceFactory.h"
#include "Window.h"
#include "WindowManager.h"
#include "DesktopManager.h"
#include "FontsManager.h"
#include "MainApplication.h"
#include "AbstractUiInterface.h"
#include "Widget.h"
#include "FileLogger.h"
GuiApplication::GuiApplication(std::unique_ptr<CommandLineArgs> args)
: AbstractDesktopApp(),
mMainApplication(MainApplication::Create()),
mDesktopManager(DesktopManager::Create(this))
{
mMainApplication->initialize(args ? std::move(args) : CommandLineArgs::Create());
}
GuiApplication::~GuiApplication()
{
}
AbstractApp* GuiApplication::getMainApplication() const
{
return mMainApplication.get();
}
void GuiApplication::initializeViews()
{
mDesktopManager->getWindowManager()->getMainWindow()->setSize(800, 600);
}
void GuiApplication::setUiInterfaceBackend(UiInterfaceFactory::Backend backend)
{
mUiInterfaceBackend = backend;
}
void GuiApplication::run()
{
initializeViews();
MLOG_INFO("Creating Window Interface");
mUiInterface = UiInterfaceFactory::create(mDesktopManager.get(), mUiInterfaceBackend);
mUiInterface->loop();
MLOG_INFO("Window Interface Shut Down");
mMainApplication->shutDown();
}