From f9aa4aacae56e3a82bce492196ff1802f3ecaf02 Mon Sep 17 00:00:00 2001 From: Yuhang Zhao <zhaoyuhang@rankyee.com> Date: 周二, 19 12月 2023 13:05:53 +0800 Subject: [PATCH] add a convenient API --- src/widgets/widgetwindowagent.h | 24 +++++++++++++++++------- 1 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/widgets/widgetwindowagent.h b/src/widgets/widgetwindowagent.h index 791646a..94af904 100644 --- a/src/widgets/widgetwindowagent.h +++ b/src/widgets/widgetwindowagent.h @@ -3,14 +3,14 @@ #include <QtWidgets/QWidget> -#include <QWKCore/corewindowagent.h> +#include <QWKCore/windowagentbase.h> #include <QWKWidgets/qwkwidgetsglobal.h> namespace QWK { class WidgetWindowAgentPrivate; - class QWK_WIDGETS_EXPORT WidgetWindowAgent : public CoreWindowAgent { + class QWK_WIDGETS_EXPORT WidgetWindowAgent : public WindowAgentBase { Q_OBJECT Q_DECLARE_PRIVATE(WidgetWindowAgent) public: @@ -26,18 +26,28 @@ QWidget *systemButton(SystemButton button) const; void setSystemButton(SystemButton button, QWidget *w); - bool isHitTestVisible(QWidget *w) const; - void setHitTestVisible(QWidget *w, bool visible = true); - void setHitTestVisible(const QRect &rect, bool visible = true); +#ifdef Q_OS_MAC + QWidget *systemButtonArea() const; + void setSystemButtonArea(QWidget *widget); +#endif + + bool isHitTestVisible(const QWidget *w) const; + void setHitTestVisible(const QWidget *w, bool visible = true); Q_SIGNALS: - void titleBarWidgetChanged(QWidget *w); - void systemButtonChanged(SystemButton button, QWidget *w); + void titleBarWidgetChanged(const QWidget *w); + void systemButtonChanged(SystemButton button, const QWidget *w); protected: WidgetWindowAgent(WidgetWindowAgentPrivate &d, QObject *parent = nullptr); }; + inline WidgetWindowAgent *QWK_Initialize(QWidget *w) { + auto agent = new WidgetWindowAgent(w); + agent->setup(w); + return agent; + } + } #endif // WIDGETWINDOWAGENT_H \ No newline at end of file -- Gitblit v1.9.1