2020-05-02 07:31:03 +00:00
|
|
|
#include "GuiApplication.h"
|
|
|
|
|
|
|
|
#include "Widget.h"
|
|
|
|
#include "HorizontalSpacer.h"
|
2020-06-20 15:34:10 +00:00
|
|
|
#include "TextBox.h"
|
2020-05-02 07:31:03 +00:00
|
|
|
#include "Button.h"
|
|
|
|
#include "Label.h"
|
|
|
|
#include "XcbInterface.h"
|
|
|
|
#include "XcbKeyboard.h"
|
|
|
|
#include "Window.h"
|
|
|
|
#include "TextElement.h"
|
|
|
|
#include "WindowManager.h"
|
|
|
|
|
|
|
|
GuiApplication::GuiApplication()
|
2020-06-20 15:34:10 +00:00
|
|
|
: AbstractDesktopApp(),
|
|
|
|
mMainApplication(),
|
|
|
|
mDesktopManager(DesktopManager::Create())
|
2020-05-02 07:31:03 +00:00
|
|
|
{
|
2020-06-20 15:34:10 +00:00
|
|
|
|
2020-05-02 07:31:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
GuiApplication::~GuiApplication()
|
|
|
|
{
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
void GuiApplication::SetMainApplication(MainApplicationPtr app)
|
|
|
|
{
|
2020-06-20 15:34:10 +00:00
|
|
|
mMainApplication = app;
|
2020-05-02 07:31:03 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void GuiApplication::Run()
|
|
|
|
{
|
2020-06-20 15:34:10 +00:00
|
|
|
auto mainWindow = mDesktopManager->GetWindowManager()->GetMainWindow();
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
mainWindow->SetSize(800, 600);
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
auto label = Label::Create();
|
|
|
|
label->SetLabel("Type text!!");
|
|
|
|
label->SetBackgroundColor(Color::Create(0, 200, 200));
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
auto textBox = TextBox::Create();
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
auto button = Button::Create();
|
|
|
|
button->SetLabel("Save");
|
|
|
|
button->SetBackgroundColor(Color::Create(0, 0, 200));
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
auto spacer = HorizontalSpacer::Create();
|
|
|
|
spacer->AddWidget(std::move(label));
|
|
|
|
spacer->AddWidget(std::move(textBox));
|
|
|
|
spacer->AddWidget(std::move(button));
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
mainWindow->AddWidget(std::move(spacer));
|
|
|
|
mDesktopManager->SetKeyboard(XcbKeyboard::Create());
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
bool useOpenGl = false;
|
|
|
|
XcbInterface window_interface;
|
|
|
|
window_interface.SetUseOpenGl(useOpenGl);
|
|
|
|
window_interface.Initialize();
|
|
|
|
window_interface.AddWindow(mainWindow);
|
|
|
|
window_interface.ShowWindow(mainWindow);
|
|
|
|
if(useOpenGl)
|
|
|
|
{
|
|
|
|
window_interface.CreateOpenGlDrawable(mainWindow);
|
|
|
|
}
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
window_interface.Loop(mDesktopManager.get());
|
2020-05-02 07:31:03 +00:00
|
|
|
|
2020-06-20 15:34:10 +00:00
|
|
|
window_interface.ShutDown();
|
2020-05-02 07:31:03 +00:00
|
|
|
|
|
|
|
}
|