Chromium Code Reviews| 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..403caf1491c3838241e46a7af3a36a0418709847 100644 |
| --- a/xfa/fwl/core/cfwl_widgetmgr.h |
| +++ b/xfa/fwl/core/cfwl_widgetmgr.h |
| @@ -18,12 +18,12 @@ |
| #define FWL_WGTMGR_DisableForm 0x00000002 |
| class CFWL_Message; |
| -class CFWL_WidgetMgrDelegate; |
| class CXFA_FFApp; |
| class CXFA_FWLAdapterWidgetMgr; |
| class CFX_Graphics; |
| class CFX_Matrix; |
| class IFWL_Widget; |
| +class IFWL_WidgetMgrDelegate; |
| class CFWL_WidgetMgrItem { |
| public: |
| @@ -44,86 +44,84 @@ class CFWL_WidgetMgrItem { |
| #endif |
| }; |
| -class CFWL_WidgetMgr { |
| +class IFWL_WidgetMgrDelegate { |
|
Tom Sepez
2016/11/14 23:03:04
I'd expect this to be in whatever file defines IFW
dsinclair
2016/11/14 23:10:26
There is no IFWL_WidgetMgr. This file defined CFWL
npm
2016/11/15 18:20:19
So why not name this one IFWL_WidgetMgr?
Tom Sepez
2016/11/15 18:27:21
Also, who calls the delegate methods? Maybe this
dsinclair
2016/11/15 18:40:36
The delegate methods are called. We don't have nee
|
| + 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 +136,17 @@ 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::unique_ptr<IFWL_WidgetMgrDelegate> m_pDelegate; |
|
Tom Sepez
2016/11/14 23:03:04
Do we still need this now that we are one?
dsinclair
2016/11/14 23:10:26
Done.
|
| + 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_ |