diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/platform/bootstrap/Bootstrap.cpp | 6 | ||||
-rw-r--r-- | src/platform/bootstrap/CMakeLists.txt | 10 | ||||
-rw-r--r-- | src/platform/gui/xcb/UiApplication.cpp | 8 |
3 files changed, 17 insertions, 7 deletions
diff --git a/src/platform/bootstrap/Bootstrap.cpp b/src/platform/bootstrap/Bootstrap.cpp index e9183550..bcf12613 100644 --- a/src/platform/bootstrap/Bootstrap.cpp +++ b/src/platform/bootstrap/Bootstrap.cpp @@ -1,10 +1,11 @@ #include "cru/platform/bootstrap/Bootstrap.h" -#include "cru/base/Base.h" #if defined(_WIN32) #include "cru/platform/gui/win/UiApplication.h" #elif defined(__APPLE__) #include "cru/platform/gui/osx/UiApplication.h" +#elif defined(__unix) +#include "cru/platform/gui/xcb/UiApplication.h" #else #endif @@ -15,7 +16,8 @@ cru::platform::gui::IUiApplication* CreateUiApplication() { #elif defined(__APPLE__) return new cru::platform::gui::osx::OsxUiApplication(); #else - NotImplemented(); + return new cru::platform::gui::xcb::XcbUiApplication(); #endif + NotImplemented(); } } // namespace cru::platform::bootstrap diff --git a/src/platform/bootstrap/CMakeLists.txt b/src/platform/bootstrap/CMakeLists.txt index 41f1e3d3..24cdff2b 100644 --- a/src/platform/bootstrap/CMakeLists.txt +++ b/src/platform/bootstrap/CMakeLists.txt @@ -17,10 +17,10 @@ if(WIN32) elseif(APPLE) target_link_libraries(CruPlatformGraphicsBootstrap PUBLIC CruPlatformGraphicsQuartz) target_link_libraries(CruPlatformBootstrap PUBLIC CruPlatformGuiOsx) -elseif(EMSCRIPTEN) - target_link_libraries(CruPlatformGraphicsBootstrap PUBLIC CruBase) - target_link_libraries(CruPlatformBootstrap PUBLIC CruBase) # TODO: Remember to change this. -else() +elseif(UNIX) target_link_libraries(CruPlatformGraphicsBootstrap PUBLIC CruPlatformGraphicsCairo) - target_link_libraries(CruPlatformBootstrap PUBLIC CruPlatformGraphicsCairo) + target_link_libraries(CruPlatformBootstrap PUBLIC CruPlatformGuiXcb) +else() + target_link_libraries(CruPlatformGraphicsBootstrap PUBLIC CruBase) + target_link_libraries(CruPlatformBootstrap PUBLIC CruBase) endif() diff --git a/src/platform/gui/xcb/UiApplication.cpp b/src/platform/gui/xcb/UiApplication.cpp index b95e669a..9daac385 100644 --- a/src/platform/gui/xcb/UiApplication.cpp +++ b/src/platform/gui/xcb/UiApplication.cpp @@ -1,5 +1,6 @@ #include "cru/platform/gui/xcb/UiApplication.h" +#include "cru/base/Base.h" #include "cru/platform/graphics/cairo/CairoGraphicsFactory.h" #include "cru/platform/gui/Window.h" #include "cru/platform/gui/xcb/Cursor.h" @@ -23,6 +24,7 @@ XcbUiApplication::XcbUiApplication( int screen_num; xcb_connection_t *connection = xcb_connect(NULL, &screen_num); + xcb_connection_ = connection; this->CheckXcbConnectionError(); event_loop_.SetPoll(xcb_get_file_descriptor(connection), POLLIN, @@ -44,6 +46,10 @@ XcbUiApplication::~XcbUiApplication() { } } +graphics::cairo::CairoGraphicsFactory *XcbUiApplication::GetCairoFactory() { + return cairo_factory_; +} + void XcbUiApplication::CheckXcbConnectionError() { if (xcb_connection_has_error(this->xcb_connection_)) { throw XcbException("xcb_connection_has_error returned non-zero."); @@ -144,6 +150,8 @@ XcbUiApplication::GetGraphicsFactory() { ICursorManager *XcbUiApplication::GetCursorManager() { return cursor_manager_; } +IClipboard *XcbUiApplication::GetClipboard() { NotImplemented(); } + IMenu *XcbUiApplication::GetApplicationMenu() { return nullptr; } void XcbUiApplication::RegisterWindow(XcbWindow *window) { |