| | |
| | | #ifndef ABSTRACTWINDOWCONTEXT_P_H |
| | | #define ABSTRACTWINDOWCONTEXT_P_H |
| | | |
| | | #include <array> |
| | | |
| | | #include <QtCore/QSet> |
| | | #include <QtGui/QWindow> |
| | | #include <QtGui/QPolygon> |
| | |
| | | |
| | | class QWK_CORE_EXPORT AbstractWindowContext : public QObject { |
| | | Q_OBJECT |
| | | Q_DISABLE_COPY(AbstractWindowContext) |
| | | |
| | | public: |
| | | inline AbstractWindowContext(QWindow *window, WindowItemDelegatePtr delegate) |
| | | : m_windowHandle(window), m_delegate(std::move(delegate)) |
| | | { |
| | | inline AbstractWindowContext(QWindow *window, WindowItemDelegate *delegate) |
| | | : m_windowHandle(window), m_delegate(delegate) { |
| | | } |
| | | ~AbstractWindowContext() override; |
| | | |
| | |
| | | |
| | | void showSystemMenu(const QPoint &pos); |
| | | |
| | | QRegion hitTestShape() const; |
| | | |
| | | protected: |
| | | QWindow *m_windowHandle; |
| | | WindowItemDelegatePtr m_delegate; |
| | | WindowItemDelegate *m_delegate; |
| | | |
| | | QSet<QObject *> m_hitTestVisibleItems; |
| | | QList<QRect> m_hitTestVisibleRects; |
| | |
| | | QObject *m_titleBar{}; |
| | | std::array<QObject *, CoreWindowAgent::NumSystemButton> m_systemButtons{}; |
| | | |
| | | // Cached shape |
| | | mutable bool hitTestVisibleShapeDirty{}; |
| | | mutable QPolygon hitTestVisibleShape; |
| | | mutable QRegion hitTestVisibleShape; |
| | | }; |
| | | |
| | | inline QWindow *AbstractWindowContext::window() const { |
| | |
| | | inline QObject *AbstractWindowContext::titleBar() const { |
| | | return m_titleBar; |
| | | } |
| | | |
| | | using WindowContextPtr = std::shared_ptr<AbstractWindowContext>; |
| | | |
| | | } |
| | | |