| | |
| | | inline QWindow *window() const; |
| | | inline WindowItemDelegate *delegate() const; |
| | | |
| | | inline QVariant windowAttribute(const QString &key) const; |
| | | void setWindowAttribute(const QString &key, const QVariant &var); |
| | | |
| | | inline bool isHitTestVisible(const QObject *obj) const; |
| | | bool setHitTestVisible(const QObject *obj, bool visible); |
| | | |
| | |
| | | |
| | | enum WindowContextHook { |
| | | CentralizeHook = 1, |
| | | RaiseWindowHook, |
| | | ShowSystemMenuHook, |
| | | DefaultColorsHook, |
| | | WindowAttributeChangedHook, |
| | | DrawWindows10BorderHook, // Only works on Windows 10 |
| | | SystemButtonAreaChangedHook, // Only works on Mac |
| | | }; |
| | |
| | | void notifyWinIdChange(); |
| | | |
| | | protected: |
| | | virtual void winIdChanged(QWindow *oldWindow, bool destroyed) = 0; |
| | | virtual void winIdChanged(QWindow *oldWindow) = 0; |
| | | |
| | | protected: |
| | | QObject *m_host{}; |
| | | std::unique_ptr<WindowItemDelegate> m_delegate; |
| | | QWindow *m_windowHandle{}; |
| | | QPointer<QWindow> m_windowHandleGuard; |
| | | |
| | | QSet<const QObject *> m_hitTestVisibleItems; |
| | | #ifdef Q_OS_MAC |
| | |
| | | |
| | | QObject *m_titleBar{}; |
| | | std::array<QObject *, WindowAgentBase::NumSystemButton> m_systemButtons{}; |
| | | |
| | | QVariantHash m_windowAttributes; |
| | | }; |
| | | |
| | | inline QObject *AbstractWindowContext::host() const { |
| | |
| | | return m_delegate.get(); |
| | | } |
| | | |
| | | inline QVariant AbstractWindowContext::windowAttribute(const QString &key) const { |
| | | return m_windowAttributes.value(key); |
| | | } |
| | | |
| | | inline bool AbstractWindowContext::isHitTestVisible(const QObject *obj) const { |
| | | return m_hitTestVisibleItems.contains(obj); |
| | | } |