From 84ef238611127b9d964ecb54bea283e0141d2998 Mon Sep 17 00:00:00 2001 From: Sine Striker <trueful@163.com> Date: 周三, 13 12月 2023 14:16:42 +0800 Subject: [PATCH] Add qt context option --- src/core/CMakeLists.txt | 18 ++++++++++++++++-- src/core/contexts/qtwindowcontext.cpp | 2 +- CMakeLists.txt | 2 ++ src/core/windowagentbase.cpp | 4 ++-- 4 files changed, 21 insertions(+), 5 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b9d18d8..01f9fad 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,6 +13,8 @@ option(QWINDOWKIT_BUILD_DOCUMENTATIONS "Build documentations" OFF) option(QWINDOWKIT_INSTALL "Install library" ON) +option(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT "Enable Qt Window Context anyway" OFF) + # ---------------------------------- # CMake Settings # ---------------------------------- diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index c3e7cf1..71c0e72 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -20,13 +20,26 @@ contexts/abstractwindowcontext.cpp ) +set(_defines_private) + if(WIN32) list(APPEND _src qwindowkit_windows.h qwindowkit_windows.cpp - contexts/win32windowcontext_p.h - contexts/win32windowcontext.cpp ) + + if(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) + list(APPEND _src + contexts/qtwindowcontext_p.h + contexts/qtwindowcontext.cpp + ) + list(APPEND _defines_private QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) + else() + list(APPEND _src + contexts/win32windowcontext_p.h + contexts/win32windowcontext.cpp + ) + endif() else() list(APPEND _src contexts/qtwindowcontext_p.h @@ -44,6 +57,7 @@ qwk_add_library(${PROJECT_NAME} AUTOGEN SOURCES ${_src} + DEFINES_PRIVATE ${_defines_private} LINKS QT_LINKS Core Gui QT_INCLUDE_PRIVATE Core Gui diff --git a/src/core/contexts/qtwindowcontext.cpp b/src/core/contexts/qtwindowcontext.cpp index 9baa24c..ea2bba5 100644 --- a/src/core/contexts/qtwindowcontext.cpp +++ b/src/core/contexts/qtwindowcontext.cpp @@ -54,7 +54,7 @@ } bool QtWindowContext::setupHost() { - return false; + return true; } } \ No newline at end of file diff --git a/src/core/windowagentbase.cpp b/src/core/windowagentbase.cpp index 65b7dad..b179042 100644 --- a/src/core/windowagentbase.cpp +++ b/src/core/windowagentbase.cpp @@ -3,7 +3,7 @@ #include "qwkglobal_p.h" -#ifdef Q_OS_WINDOWS +#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) # include "win32windowcontext_p.h" #else # include "qtwindowcontext_p.h" @@ -28,7 +28,7 @@ if (windowContextFactoryMethod) { return windowContextFactoryMethod(); } -#ifdef Q_OS_WINDOWS +#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) return new Win32WindowContext(); #else return new QtWindowContext(); -- Gitblit v1.9.1