Index: xfa/fwl/core/cfwl_widgetmgr.h |
diff --git a/xfa/fwl/core/cfwl_widgetmgr.h b/xfa/fwl/core/cfwl_widgetmgr.h |
index 25c5735a98ac104c46431e7d072c937c3a5f8851..10176c25983ad03fc163c872eeda9186d1646f87 100644 |
--- a/xfa/fwl/core/cfwl_widgetmgr.h |
+++ b/xfa/fwl/core/cfwl_widgetmgr.h |
@@ -18,7 +18,6 @@ |
#define FWL_WGTMGR_DisableForm 0x00000002 |
class CFWL_Message; |
-class CFWL_WidgetMgrDelegate; |
class CXFA_FFApp; |
class CXFA_FWLAdapterWidgetMgr; |
class CFX_Graphics; |
@@ -44,86 +43,84 @@ class CFWL_WidgetMgrItem { |
#endif |
}; |
-class CFWL_WidgetMgr { |
+class IFWL_WidgetMgrDelegate { |
+ public: |
+ virtual void OnSetCapability( |
+ uint32_t dwCapability = FWL_WGTMGR_DisableThread) = 0; |
+ virtual void OnProcessMessageToForm(CFWL_Message* pMessage) = 0; |
+ virtual void OnDrawWidget(IFWL_Widget* pWidget, |
+ CFX_Graphics* pGraphics, |
+ const CFX_Matrix* pMatrix) = 0; |
+}; |
+ |
+class CFWL_WidgetMgr : public IFWL_WidgetMgrDelegate { |
public: |
explicit CFWL_WidgetMgr(CXFA_FFApp* pAdapterNative); |
~CFWL_WidgetMgr(); |
+ // IFWL_WidgetMgrDelegate |
+ void OnSetCapability( |
+ uint32_t dwCapability = FWL_WGTMGR_DisableThread) override; |
+ void OnProcessMessageToForm(CFWL_Message* pMessage) override; |
+ void OnDrawWidget(IFWL_Widget* pWidget, |
+ CFX_Graphics* pGraphics, |
+ const CFX_Matrix* pMatrix) override; |
+ |
IFWL_Widget* GetParentWidget(IFWL_Widget* pWidget) const; |
IFWL_Widget* GetOwnerWidget(IFWL_Widget* pWidget) const; |
- IFWL_Widget* GetFirstSiblingWidget(IFWL_Widget* pWidget) const; |
- IFWL_Widget* GetPriorSiblingWidget(IFWL_Widget* pWidget) const; |
IFWL_Widget* GetNextSiblingWidget(IFWL_Widget* pWidget) const; |
- IFWL_Widget* GetLastSiblingWidget(IFWL_Widget* pWidget) const; |
IFWL_Widget* GetFirstChildWidget(IFWL_Widget* pWidget) const; |
- IFWL_Widget* GetLastChildWidget(IFWL_Widget* pWidget) const; |
IFWL_Widget* GetSystemFormWidget(IFWL_Widget* pWidget) const; |
- bool SetWidgetIndex(IFWL_Widget* pWidget, int32_t nIndex); |
- FWL_Error RepaintWidget(IFWL_Widget* pWidget, |
- const CFX_RectF* pRect = nullptr); |
+ void RepaintWidget(IFWL_Widget* pWidget, const CFX_RectF* pRect = nullptr); |
- void AddWidget(IFWL_Widget* pWidget); |
void InsertWidget(IFWL_Widget* pParent, |
IFWL_Widget* pChild, |
int32_t nIndex = -1); |
void RemoveWidget(IFWL_Widget* pWidget); |
void SetOwner(IFWL_Widget* pOwner, IFWL_Widget* pOwned); |
void SetParent(IFWL_Widget* pParent, IFWL_Widget* pChild); |
- bool IsChild(IFWL_Widget* pChild, IFWL_Widget* pParent); |
- FWL_Error SetWidgetRect_Native(IFWL_Widget* pWidget, const CFX_RectF& rect); |
+ |
+ void SetWidgetRect_Native(IFWL_Widget* pWidget, const CFX_RectF& rect); |
+ |
IFWL_Widget* GetWidgetAtPoint(IFWL_Widget* pParent, FX_FLOAT fx, FX_FLOAT fy); |
+ |
void NotifySizeChanged(IFWL_Widget* pForm, FX_FLOAT fx, FX_FLOAT fy); |
- IFWL_Widget* nextTab(IFWL_Widget* parent, IFWL_Widget* focus, bool& bFind); |
- int32_t CountRadioButtonGroup(IFWL_Widget* pFirst); |
- IFWL_Widget* GetSiblingRadioButton(IFWL_Widget* pWidget, bool bNext); |
- IFWL_Widget* GetRadioButtonGroupHeader(IFWL_Widget* pRadioButton); |
+ |
+ IFWL_Widget* NextTab(IFWL_Widget* parent, IFWL_Widget* focus, bool& bFind); |
+ |
void GetSameGroupRadioButton(IFWL_Widget* pRadioButton, |
- CFX_ArrayTemplate<IFWL_Widget*>& group); |
- IFWL_Widget* GetDefaultButton(IFWL_Widget* pParent); |
+ CFX_ArrayTemplate<IFWL_Widget*>& group) const; |
+ IFWL_Widget* GetDefaultButton(IFWL_Widget* pParent) const; |
void AddRedrawCounts(IFWL_Widget* pWidget); |
- void ResetRedrawCounts(IFWL_Widget* pWidget); |
- CXFA_FWLAdapterWidgetMgr* GetAdapterWidgetMgr() const { return m_pAdapter; } |
- CFWL_WidgetMgrDelegate* GetDelegate() const { return m_pDelegate.get(); } |
- CFWL_WidgetMgrItem* GetWidgetMgrItem(IFWL_Widget* pWidget) const; |
- bool IsThreadEnabled(); |
- bool IsFormDisabled(); |
- bool GetAdapterPopupPos(IFWL_Widget* pWidget, |
+ |
+ bool IsFormDisabled() const { |
+ return !!(m_dwCapability & FWL_WGTMGR_DisableForm); |
+ } |
+ |
+ void GetAdapterPopupPos(IFWL_Widget* pWidget, |
FX_FLOAT fMinHeight, |
FX_FLOAT fMaxHeight, |
const CFX_RectF& rtAnchor, |
- CFX_RectF& rtPopup); |
+ CFX_RectF& rtPopup) const; |
- protected: |
- friend class CFWL_WidgetMgrDelegate; |
+ private: |
+ IFWL_Widget* GetFirstSiblingWidget(IFWL_Widget* pWidget) const; |
+ IFWL_Widget* GetPriorSiblingWidget(IFWL_Widget* pWidget) const; |
+ IFWL_Widget* GetLastChildWidget(IFWL_Widget* pWidget) const; |
+ CFWL_WidgetMgrItem* GetWidgetMgrItem(IFWL_Widget* pWidget) const; |
- int32_t TravelWidgetMgr(CFWL_WidgetMgrItem* pParent, |
- int32_t* pIndex, |
- CFWL_WidgetMgrItem* pItem, |
- IFWL_Widget** pWidget = nullptr); |
- bool IsAbleNative(IFWL_Widget* pWidget) const; |
+ void SetWidgetIndex(IFWL_Widget* pWidget, int32_t nIndex); |
- uint32_t m_dwCapability; |
- std::unique_ptr<CFWL_WidgetMgrDelegate> m_pDelegate; |
- std::map<IFWL_Widget*, std::unique_ptr<CFWL_WidgetMgrItem>> m_mapWidgetItem; |
- CXFA_FWLAdapterWidgetMgr* const m_pAdapter; |
-#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) |
- CFX_RectF m_rtScreen; |
-#endif |
-}; |
+ int32_t CountRadioButtonGroup(IFWL_Widget* pFirst) const; |
+ IFWL_Widget* GetRadioButtonGroupHeader(IFWL_Widget* pRadioButton) const; |
-class CFWL_WidgetMgrDelegate { |
- public: |
- explicit CFWL_WidgetMgrDelegate(CFWL_WidgetMgr* pWidgetMgr); |
- ~CFWL_WidgetMgrDelegate() {} |
+ void ResetRedrawCounts(IFWL_Widget* pWidget); |
- FWL_Error OnSetCapability(uint32_t dwCapability = FWL_WGTMGR_DisableThread); |
- void OnProcessMessageToForm(CFWL_Message* pMessage); |
- void OnDrawWidget(IFWL_Widget* pWidget, |
- CFX_Graphics* pGraphics, |
- const CFX_Matrix* pMatrix); |
+ bool IsThreadEnabled() const { |
+ return !(m_dwCapability & FWL_WGTMGR_DisableThread); |
+ } |
- protected: |
void DrawChild(IFWL_Widget* pParent, |
const CFX_RectF& rtClip, |
CFX_Graphics* pGraphics, |
@@ -138,9 +135,16 @@ class CFWL_WidgetMgrDelegate { |
bool IsNeedRepaint(IFWL_Widget* pWidget, |
CFX_Matrix* pMatrix, |
const CFX_RectF& rtDirty); |
- bool bUseOffscreenDirect(IFWL_Widget* pWidget); |
+ bool UseOffscreenDirect(IFWL_Widget* pWidget) const; |
- CFWL_WidgetMgr* m_pWidgetMgr; |
+ bool IsAbleNative(IFWL_Widget* pWidget) const; |
+ |
+ uint32_t m_dwCapability; |
+ std::map<IFWL_Widget*, std::unique_ptr<CFWL_WidgetMgrItem>> m_mapWidgetItem; |
+ CXFA_FWLAdapterWidgetMgr* const m_pAdapter; |
+#if (_FX_OS_ == _FX_WIN32_DESKTOP_) || (_FX_OS_ == _FX_WIN64_) |
+ CFX_RectF m_rtScreen; |
+#endif |
}; |
#endif // XFA_FWL_CORE_CFWL_WIDGETMGR_H_ |