From 327055934009dc416be6234db8e4d26fab81fb80 Mon Sep 17 00:00:00 2001 From: SineStriker <55847490+SineStriker@users.noreply.github.com> Date: ćšć, 21 12æ 2023 23:21:28 +0800 Subject: [PATCH] Merge pull request #8 from stdware/stylesupport --- src/core/windowagentbase.cpp | 48 +++++++++++++++++------------------------------- 1 files changed, 17 insertions(+), 31 deletions(-) diff --git a/src/core/windowagentbase.cpp b/src/core/windowagentbase.cpp index b179042..72b1229 100644 --- a/src/core/windowagentbase.cpp +++ b/src/core/windowagentbase.cpp @@ -1,10 +1,14 @@ #include "windowagentbase.h" #include "windowagentbase_p.h" +#include <QWKCore/qwkconfig.h> + #include "qwkglobal_p.h" -#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) +#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT) # include "win32windowcontext_p.h" +#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT) +# include "cocoawindowcontext_p.h" #else # include "qtwindowcontext_p.h" #endif @@ -28,20 +32,20 @@ if (windowContextFactoryMethod) { return windowContextFactoryMethod(); } -#if defined(Q_OS_WINDOWS) && !defined(QWINDOWKIT_FORCE_QT_WINDOW_CONTEXT) + +#if defined(Q_OS_WINDOWS) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT) return new Win32WindowContext(); +#elif defined(Q_OS_MAC) && !QWINDOWKIT_CONFIG(FORCE_QT_WINDOW_CONTEXT) + return new CocoaWindowContext(); #else return new QtWindowContext(); #endif } - bool WindowAgentBasePrivate::setup(QObject *host, WindowItemDelegate *delegate) { - std::unique_ptr<AbstractWindowContext> ctx(createContext()); - if (!ctx->setup(host, delegate)) { - return false; - } - context = std::move(ctx); - return true; + void WindowAgentBasePrivate::setup(QObject *host, WindowItemDelegate *delegate) { + auto ctx = createContext(); + ctx->setup(host, delegate); + context.reset(ctx); } WindowAgentBase::~WindowAgentBase() = default; @@ -51,32 +55,14 @@ d->context->showSystemMenu(pos); } - void WindowAgentBase::startSystemMove(const QPoint &pos) { - Q_D(WindowAgentBase); - auto win = d->context->window(); - if (!win) { - return; - } - - Q_UNUSED(pos) - win->startSystemMove(); - } - - void WindowAgentBase::startSystemResize(Qt::Edges edges, const QPoint &pos) { - Q_D(WindowAgentBase); - auto win = d->context->window(); - if (!win) { - return; - } - - Q_UNUSED(pos) - win->startSystemResize(edges); - } - void WindowAgentBase::centralize() { + Q_D(WindowAgentBase); + d->context->virtual_hook(AbstractWindowContext::CentralizeHook, nullptr); } void WindowAgentBase::raise() { + Q_D(WindowAgentBase); + d->context->virtual_hook(AbstractWindowContext::RaiseWindowHook, nullptr); } WindowAgentBase::WindowAgentBase(WindowAgentBasePrivate &d, QObject *parent) -- Gitblit v1.9.1