| | |
| | | #include <QtGui/QPolygon> |
| | | |
| | | #include <QWKCore/windowagentbase.h> |
| | | #include <QWKCore/private/eventobserver_p.h> |
| | | #include <QWKCore/private/windowitemdelegate_p.h> |
| | | |
| | | namespace QWK { |
| | | |
| | | class QWK_CORE_EXPORT AbstractWindowContext : public QObject { |
| | | class QWK_CORE_EXPORT AbstractWindowContext : public QObject, public EventDispatcher { |
| | | Q_OBJECT |
| | | public: |
| | | AbstractWindowContext(); |
| | |
| | | inline QObject *titleBar() const; |
| | | bool setTitleBar(QObject *obj); |
| | | |
| | | void showSystemMenu(const QPoint &pos); |
| | | |
| | | QRegion hitTestShape() const; |
| | | bool isInSystemButtons(const QPoint &pos, WindowAgentBase::SystemButton *button) const; |
| | | bool isInTitleBarDraggableArea(const QPoint &pos) const; |
| | |
| | | enum WindowContextHook { |
| | | CentralizeHook = 1, |
| | | ShowSystemMenuHook, |
| | | NeedsDrawBordersHook, |
| | | DrawBordersHook, |
| | | QueryBorderThicknessHook |
| | | DefaultColorsHook, |
| | | DrawWindows10BorderHook, // Only works on Windows 10 |
| | | }; |
| | | virtual void virtual_hook(int id, void *data); |
| | | |
| | | void showSystemMenu(const QPoint &pos); |
| | | |
| | | protected: |
| | | virtual bool setupHost() = 0; |
| | | |
| | | protected: |
| | | QObject *m_host; |
| | | QObject *m_host{}; |
| | | std::unique_ptr<WindowItemDelegate> m_delegate; |
| | | QWindow *m_windowHandle; |
| | | QWindow *m_windowHandle{}; |
| | | |
| | | QSet<const QObject *> m_hitTestVisibleItems; |
| | | QList<QRect> m_hitTestVisibleRects; |