| | |
| | | # ---------------------------------- |
| | | option(QWINDOWKIT_BUILD_STATIC "Build static libraries" OFF) |
| | | option(QWINDOWKIT_BUILD_WIDGETS "Build widgets module" ON) |
| | | option(QWINDOWKIT_BUILD_QUICK "Build quick module" ON) |
| | | option(QWINDOWKIT_BUILD_QUICK "Build quick module" OFF) |
| | | option(QWINDOWKIT_BUILD_EXAMPLES "Build examples" OFF) |
| | | option(QWINDOWKIT_BUILD_DOCUMENTATIONS "Build documentations" OFF) |
| | | option(QWINDOWKIT_INSTALL "Install library" ON) |
| | |
| | | Subproject commit 57ce7d2e0a720fa6734bf13b24cd5d9e843de7cb |
| | | Subproject commit 10bbb20ddf57899138dc4e1ab6c0a012cd052eb1 |
| | |
| | | find_dependency(QT NAMES Qt6 Qt5 COMPONENTS Core Gui REQUIRED) |
| | | find_dependency(Qt${QT_VERSION_MAJOR} COMPONENTS Core Gui REQUIRED) |
| | | |
| | | if ("Widgets" IN_LIST qmsetup_FIND_COMPONENTS) |
| | | find_dependency(QT NAMES Qt6 Qt5 Widgets REQUIRED) |
| | | find_dependency(Qt${QT_VERSION_MAJOR} Widgets REQUIRED) |
| | | endif() |
| | | |
| | | if ("Quick" IN_LIST qmsetup_FIND_COMPONENTS) |
| | | find_dependency(QT NAMES Qt6 Qt5 Quick REQUIRED) |
| | | find_dependency(Qt${QT_VERSION_MAJOR} Quick REQUIRED) |
| | | endif() |
| | | |
| | | include("${CMAKE_CURRENT_LIST_DIR}/QWindowKitTargets.cmake") |
| | |
| | | |
| | | qwk_add_library(${PROJECT_NAME} AUTOGEN |
| | | SOURCES ${_src} |
| | | LINKS |
| | | FEATURES cxx_std_17 |
| | | LINKS_PRIVATE ${_links_private} |
| | | QT_LINKS Core Gui |
| | | QT_INCLUDE_PRIVATE Core Gui |
| | | INCLUDE_PRIVATE kernel contexts shared |
| | | PREFIX QWK_CORE |
| | | SYNC_INCLUDE_OPTIONS ${_sync_include_options} |
| | | ) |
| | | |
| | | set_target_properties(${PROJECT_NAME} PROPERTIES |
| | | CXX_STANDARD 17 |
| | | CXX_STANDARD_REQUIRED TRUE |
| | | ) |
| | | |
| | | set(QWINDOWKIT_ENABLED_TARGETS ${QWINDOWKIT_ENABLED_TARGETS} ${PROJECT_NAME} PARENT_SCOPE) |
| | |
| | | |
| | | namespace QWK { |
| | | |
| | | namespace Private { |
| | | |
| | | class ObjectHelper : public QObject { |
| | | public: |
| | | static inline bool sendEvent(QObject *obj, QEvent *event) { |
| | | return static_cast<ObjectHelper *>(obj)->event(event); |
| | | } |
| | | }; |
| | | |
| | | } |
| | | |
| | | inline QPoint getMouseEventScenePos(const QMouseEvent *event) { |
| | | #if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) |
| | | return event->scenePosition().toPoint(); |
| | |
| | | |
| | | qwk_add_library(${PROJECT_NAME} AUTOGEN |
| | | SOURCES ${_src} |
| | | FEATURES cxx_std_17 |
| | | LINKS QWKCore |
| | | QT_LINKS Core Gui Quick |
| | | QT_INCLUDE_PRIVATE Core Gui Quick |
| | | INCLUDE_PRIVATE |
| | | PREFIX QWK_QUICK |
| | | ) |
| | | |
| | | set_target_properties(${PROJECT_NAME} PROPERTIES |
| | | CXX_STANDARD 17 |
| | | CXX_STANDARD_REQUIRED TRUE |
| | | ) |
| | | |
| | | set(QWINDOWKIT_ENABLED_TARGETS ${QWINDOWKIT_ENABLED_TARGETS} ${PROJECT_NAME} PARENT_SCOPE) |
| | |
| | | |
| | | qwk_add_library(${PROJECT_NAME} AUTOGEN |
| | | SOURCES ${_src} |
| | | FEATURES cxx_std_17 |
| | | LINKS QWKCore |
| | | QT_LINKS Core Gui Widgets |
| | | QT_INCLUDE_PRIVATE Core Gui Widgets |
| | | INCLUDE_PRIVATE |
| | | PREFIX QWK_WIDGETS |
| | | ) |
| | | |
| | | set_target_properties(${PROJECT_NAME} PROPERTIES |
| | | CXX_STANDARD 17 |
| | | CXX_STANDARD_REQUIRED TRUE |
| | | ) |
| | | |
| | | set(QWINDOWKIT_ENABLED_TARGETS ${QWINDOWKIT_ENABLED_TARGETS} ${PROJECT_NAME} PARENT_SCOPE) |
| | |
| | | |
| | | inline void resumeWidgetEventAndDraw(QWidget *w, QEvent *event) { |
| | | // Let the widget paint first |
| | | Private::ObjectHelper::sendEvent(w, event); |
| | | static_cast<QObject *>(w)->event(event); |
| | | |
| | | // Due to the timer or user action, Qt will repaint some regions spontaneously, |
| | | // even if there is no WM_PAINT message, we must wait for it to finish painting |
| | |
| | | |
| | | inline void resumeWindowEventAndDraw(QWindow *window, QEvent *event) { |
| | | // Let Qt paint first |
| | | Private::ObjectHelper::sendEvent(window, event); |
| | | static_cast<QObject *>(window)->event(event); |
| | | |
| | | // Upon receiving the WM_PAINT message, Qt will repaint the entire view, and we |
| | | // must wait for it to finish painting before drawing this top border area. |