#include "GuiApplication.h" #include #include "Widget.h" #include "HorizontalSpacer.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() { mDesktopManager = DesktopManager::Create(); } GuiApplication::~GuiApplication() { } void GuiApplication::SetMainApplication(MainApplicationPtr app) { mMainApplication = app; //mDesktopManager->SetMainApp(shared_from_this()); } void GuiApplication::Run() { auto mainWindow = mDesktopManager->GetWindowManager()->GetMainWindow(); mainWindow->SetSize(800, 600); auto label = Label::Create(); label->SetLabel("Click the button!!"); label->SetBackgroundColor(Color::Create(0, 200, 200)); auto button = Button::Create(); button->SetLabel("Ok"); button->SetBackgroundColor(Color::Create(0, 0, 200)); auto spacer = HorizontalSpacer::Create(); spacer->AddWidget(label); spacer->AddWidget(button); mainWindow->AddWidget(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); window_interface.ShutDown(); }