88 lines
2.4 KiB
C++
88 lines
2.4 KiB
C++
#include "GuiApplication.h"
|
|
|
|
#include "Widget.h"
|
|
#include "UiInterfaceFactory.h"
|
|
#include "Window.h"
|
|
#include "TextElement.h"
|
|
#include "WindowManager.h"
|
|
#include "TextEditorView.h"
|
|
#include "AudioEditorView.h"
|
|
#include "ImageEditorView.h"
|
|
#include "WebClientView.h"
|
|
#include "TabbedPanelWidget.h"
|
|
#include "TopBar.h"
|
|
#include "StatusBar.h"
|
|
#include "HorizontalSpacer.h"
|
|
#include "FileLogger.h"
|
|
|
|
GuiApplication::GuiApplication()
|
|
: AbstractDesktopApp(),
|
|
mMainApplication(),
|
|
mDesktopManager(DesktopManager::Create())
|
|
{
|
|
|
|
}
|
|
|
|
GuiApplication::~GuiApplication()
|
|
{
|
|
|
|
}
|
|
|
|
void GuiApplication::SetMainApplication(MainApplicationPtr app)
|
|
{
|
|
mMainApplication = app;
|
|
mDesktopManager->SetMainApp(app);
|
|
}
|
|
|
|
void GuiApplication::SetUpWidget()
|
|
{
|
|
auto mainWindow = mDesktopManager->GetWindowManager()->GetMainWindow();
|
|
mainWindow->SetSize(800, 600);
|
|
|
|
auto tabbedPanel = TabbedPanelWidget::Create();
|
|
|
|
auto textEditor = TextEditorView::Create();
|
|
auto path = mMainApplication->GetCommandLineArgs()->getLaunchPath();
|
|
path /= "out.txt";
|
|
textEditor->GetController()->SetSavePath(path);
|
|
textEditor->GetController()->SetLoadPath(path);
|
|
textEditor->Initialize();
|
|
tabbedPanel->AddPanel(std::move(textEditor), "Text Editor");
|
|
|
|
auto audioEditor = AudioEditorView::Create();
|
|
tabbedPanel->AddPanel(std::move(audioEditor), "Audio Editor");
|
|
|
|
auto imageEditor = ImageEditorView::Create();
|
|
tabbedPanel->AddPanel(std::move(imageEditor), "Image Editor");
|
|
|
|
auto webClient = WebClientView::Create();
|
|
tabbedPanel->AddPanel(std::move(webClient), "Web Client");
|
|
|
|
auto topBar = TopBar::Create();
|
|
auto statusBar = StatusBar::Create();
|
|
|
|
auto horizontalSpace = HorizontalSpacer::Create();
|
|
horizontalSpace->AddWidgetWithScale(std::move(topBar), 1);
|
|
horizontalSpace->AddWidgetWithScale(std::move(tabbedPanel), 20);
|
|
horizontalSpace->AddWidgetWithScale(std::move(statusBar), 1);
|
|
|
|
mainWindow->AddWidget(std::move(horizontalSpace));
|
|
}
|
|
|
|
void GuiApplication::Run()
|
|
{
|
|
auto mainWindow = mDesktopManager->GetWindowManager()->GetMainWindow();
|
|
SetUpWidget();
|
|
|
|
MLOG_INFO("Creating Window Interface");
|
|
auto window_interface = UiInterfaceFactory::create(mDesktopManager.get());
|
|
|
|
window_interface->initialize();
|
|
window_interface->addWindow(mainWindow);
|
|
window_interface->showWindow(mainWindow);
|
|
window_interface->loop();
|
|
|
|
window_interface->shutDown();
|
|
|
|
MLOG_INFO("Window Interface Shut Down");
|
|
}
|