| | |
| | | // Copyright (C) 2023-2024 Stdware Collections |
| | | // SPDX-License-Identifier: Apache-2.0 |
| | | |
| | | #include "quickwindowagent_p.h" |
| | | |
| | | #include <QtQuick/QQuickPaintedItem> |
| | |
| | | |
| | | namespace QWK { |
| | | |
| | | #if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDER) |
| | | #if QWINDOWKIT_CONFIG(ENABLE_WINDOWS_SYSTEM_BORDERS) |
| | | // TODO: Find a way to draw native border |
| | | // We haven't found a way to place hooks in the Quick program and call the GDI API to draw |
| | | // the native border area so that we'll use the emulated drawn border for now. |
| | | |
| | | class BorderItem : public QQuickPaintedItem, |
| | | public NativeEventFilter, |
| | | public SharedEventFilter { |
| | |
| | | bool BorderItem::nativeEventFilter(const QByteArray &eventType, void *message, |
| | | QT_NATIVE_EVENT_RESULT_TYPE *result) { |
| | | Q_UNUSED(eventType) |
| | | |
| | | const auto msg = static_cast<const MSG *>(message); |
| | | switch (msg->message) { |
| | | case WM_THEMECHANGED: |
| | |
| | | } |
| | | |
| | | case WM_SETTINGCHANGE: { |
| | | if (!msg->wParam && msg->lParam && |
| | | std::wcscmp(reinterpret_cast<LPCWSTR>(msg->lParam), L"ImmersiveColorSet") == |
| | | 0) { |
| | | if (isImmersiveColorSetChange(msg->wParam, msg->lParam)) { |
| | | update(); |
| | | } |
| | | break; |
| | |
| | | |
| | | bool BorderItem::sharedEventFilter(QObject *obj, QEvent *event) { |
| | | Q_UNUSED(obj) |
| | | |
| | | switch (event->type()) { |
| | | case QEvent::WindowStateChange: { |
| | | updateGeometry(); |