#include "GuiApplication.h" #include "Widget.h" #include "HorizontalSpacer.h" #include "TextBox.h" #include "Button.h" #include "Label.h" #include "XcbInterface.h" #include "XcbKeyboard.h" #include "Window.h" #include "TextElement.h" #include "WindowManager.h" GuiApplication::GuiApplication() : AbstractDesktopApp(), mMainApplication(), mDesktopManager(DesktopManager::Create()) { } GuiApplication::~GuiApplication() { } void GuiApplication::SetMainApplication(MainApplicationPtr app) { mMainApplication = app; } void GuiApplication::Run() { auto mainWindow = mDesktopManager->GetWindowManager()->GetMainWindow(); mainWindow->SetSize(800, 600); auto label = Label::Create(); label->SetLabel("Type text!!"); label->SetBackgroundColor(Color::Create(0, 200, 200)); auto textBox = TextBox::Create(); auto button = Button::Create(); button->SetLabel("Save"); button->SetBackgroundColor(Color::Create(0, 0, 200)); auto spacer = HorizontalSpacer::Create(); spacer->AddWidget(std::move(label)); spacer->AddWidget(std::move(textBox)); spacer->AddWidget(std::move(button)); mainWindow->AddWidget(std::move(spacer)); mDesktopManager->SetKeyboard(XcbKeyboard::Create()); 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); } window_interface.Loop(mDesktopManager.get()); window_interface.ShutDown(); }