diff options
Diffstat (limited to 'xfa/fwl/core')
-rw-r--r-- | xfa/fwl/core/fwl_formimp.cpp | 4 | ||||
-rw-r--r-- | xfa/fwl/core/fwl_formimp.h | 44 | ||||
-rw-r--r-- | xfa/fwl/core/fwl_noteimp.cpp | 11 | ||||
-rw-r--r-- | xfa/fwl/core/fwl_widgetimp.cpp | 33 | ||||
-rw-r--r-- | xfa/fwl/core/fwl_widgetimp.h | 3 | ||||
-rw-r--r-- | xfa/fwl/core/fwl_widgetmgrimp.cpp | 51 | ||||
-rw-r--r-- | xfa/fwl/core/ifwl_form.h | 2 | ||||
-rw-r--r-- | xfa/fwl/core/ifwl_themeprovider.h | 2 | ||||
-rw-r--r-- | xfa/fwl/core/ifwl_widget.h | 22 |
9 files changed, 74 insertions, 98 deletions
diff --git a/xfa/fwl/core/fwl_formimp.cpp b/xfa/fwl/core/fwl_formimp.cpp index 202a092395..bcaba2c153 100644 --- a/xfa/fwl/core/fwl_formimp.cpp +++ b/xfa/fwl/core/fwl_formimp.cpp @@ -104,8 +104,8 @@ FWL_Error CFWL_FormImp::GetClassName(CFX_WideString& wsClass) const { return FWL_Error::Succeeded; } -uint32_t CFWL_FormImp::GetClassID() const { - return FWL_CLASSHASH_Form; +FWL_Type CFWL_FormImp::GetClassID() const { + return FWL_Type::Form; } FX_BOOL CFWL_FormImp::IsInstance(const CFX_WideStringC& wsClass) const { diff --git a/xfa/fwl/core/fwl_formimp.h b/xfa/fwl/core/fwl_formimp.h index f1bc51df37..9d2d394d03 100644 --- a/xfa/fwl/core/fwl_formimp.h +++ b/xfa/fwl/core/fwl_formimp.h @@ -68,27 +68,29 @@ typedef struct RestoreResizeInfo { class CFWL_FormImp : public CFWL_WidgetImp { public: CFWL_FormImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter); - virtual ~CFWL_FormImp(); - virtual FWL_Error GetClassName(CFX_WideString& wsClass) const; - virtual uint32_t GetClassID() const; - virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; - virtual FWL_Error Initialize(); - virtual FWL_Error Finalize(); - - virtual FWL_Error GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); - virtual FWL_Error GetClientRect(CFX_RectF& rect); - virtual FWL_Error Update(); - virtual FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy); - virtual FWL_Error DrawWidget(CFX_Graphics* pGraphics, - const CFX_Matrix* pMatrix = NULL); - virtual FWL_FORMSIZE GetFormSize(); - virtual FWL_Error SetFormSize(FWL_FORMSIZE eFormSize); - virtual IFWL_Widget* DoModal(); - virtual IFWL_Widget* DoModal(uint32_t& dwCommandID); - virtual FWL_Error EndDoModal(); - virtual FWL_Error SetBorderRegion(CFX_Path* pPath); - virtual void DrawBackground(CFX_Graphics* pGraphics, - IFWL_ThemeProvider* pTheme); + ~CFWL_FormImp() override; + + // CFWL_WidgetImp + FWL_Error GetClassName(CFX_WideString& wsClass) const override; + FWL_Type GetClassID() const override; + FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const override; + FWL_Error Initialize() override; + FWL_Error Finalize() override; + + FWL_Error GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE) override; + FWL_Error GetClientRect(CFX_RectF& rect) override; + FWL_Error Update() override; + FWL_WidgetHit HitTest(FX_FLOAT fx, FX_FLOAT fy) override; + FWL_Error DrawWidget(CFX_Graphics* pGraphics, + const CFX_Matrix* pMatrix = nullptr) override; + + FWL_FORMSIZE GetFormSize(); + FWL_Error SetFormSize(FWL_FORMSIZE eFormSize); + IFWL_Widget* DoModal(); + IFWL_Widget* DoModal(uint32_t& dwCommandID); + FWL_Error EndDoModal(); + FWL_Error SetBorderRegion(CFX_Path* pPath); + void DrawBackground(CFX_Graphics* pGraphics, IFWL_ThemeProvider* pTheme); CFWL_WidgetImp* GetSubFocus(); void SetSubFocus(CFWL_WidgetImp* pWidget); diff --git a/xfa/fwl/core/fwl_noteimp.cpp b/xfa/fwl/core/fwl_noteimp.cpp index 560dc3c535..5cb66efed6 100644 --- a/xfa/fwl/core/fwl_noteimp.cpp +++ b/xfa/fwl/core/fwl_noteimp.cpp @@ -426,7 +426,8 @@ FX_BOOL CFWL_NoteDriver::DoDeactivate(CFWL_MsgDeactivate* pMsg, pMsg->m_pSrcTarget->IsInstance(FX_WSTRC(L"FWL_FORMPROXY"))) { return FALSE; } - if (pMsg->m_pSrcTarget && pMsg->m_pSrcTarget->GetClassID() == 1111984755) { + if (pMsg->m_pSrcTarget && + pMsg->m_pSrcTarget->GetClassID() == FWL_Type::ToolTip) { return FALSE; } return TRUE; @@ -616,10 +617,10 @@ void CFWL_NoteDriver::MouseSecondary(CFWL_MsgMouse* pMsg) { pTarget->TransformTo(m_pHover, msLeave.m_fx, msLeave.m_fy); msLeave.m_dwFlags = 0; msLeave.m_dwCmd = FWL_MouseCommand::Leave; - DispatchMessage(&msLeave, NULL); + DispatchMessage(&msLeave, nullptr); } - if (pTarget->GetClassID() == FWL_CLASSHASH_Form) { - m_pHover = NULL; + if (pTarget->GetClassID() == FWL_Type::Form) { + m_pHover = nullptr; return; } m_pHover = pTarget; @@ -629,7 +630,7 @@ void CFWL_NoteDriver::MouseSecondary(CFWL_MsgMouse* pMsg) { msHover.m_fy = pMsg->m_fy; msHover.m_dwFlags = 0; msHover.m_dwCmd = FWL_MouseCommand::Hover; - DispatchMessage(&msHover, NULL); + DispatchMessage(&msHover, nullptr); } FX_BOOL CFWL_NoteDriver::IsValidMessage(CFWL_Message* pMessage) { if (pMessage->GetClassID() == CFWL_MessageType::Post) diff --git a/xfa/fwl/core/fwl_widgetimp.cpp b/xfa/fwl/core/fwl_widgetimp.cpp index f45a66cc2d..e72a7f385a 100644 --- a/xfa/fwl/core/fwl_widgetimp.cpp +++ b/xfa/fwl/core/fwl_widgetimp.cpp @@ -23,7 +23,6 @@ #include "xfa/fwl/core/ifwl_themeprovider.h" #include "xfa/fxfa/include/xfa_ffapp.h" -#define FWL_CLASSHASH_Menu 3957949655 #define FWL_STYLEEXT_MNU_Vert (1L << 0) IFWL_Widget::~IFWL_Widget() {} @@ -32,7 +31,7 @@ FWL_Error IFWL_Widget::GetClassName(CFX_WideString& wsClass) const { return m_pImpl->GetClassName(wsClass); } -uint32_t IFWL_Widget::GetClassID() const { +FWL_Type IFWL_Widget::GetClassID() const { return m_pImpl->GetClassID(); } @@ -191,10 +190,6 @@ FWL_Error CFWL_WidgetImp::GetClassName(CFX_WideString& wsClass) const { return FWL_Error::Succeeded; } -uint32_t CFWL_WidgetImp::GetClassID() const { - return 0; -} - FX_BOOL CFWL_WidgetImp::IsInstance(const CFX_WideStringC& wsClass) const { return FALSE; } @@ -709,30 +704,26 @@ void CFWL_WidgetImp::SetGrab(FX_BOOL bSet) { static_cast<CFWL_NoteDriver*>(pApp->GetNoteDriver()); pDriver->SetGrab(m_pInterface, bSet); } + FX_BOOL CFWL_WidgetImp::GetPopupPos(FX_FLOAT fMinHeight, FX_FLOAT fMaxHeight, const CFX_RectF& rtAnchor, CFX_RectF& rtPopup) { - if (GetClassID() == FWL_CLASSHASH_Menu) { - return GetPopupPosMenu(fMinHeight, fMaxHeight, rtAnchor, rtPopup); - } else { - if (GetClassID() == FWL_CLASSHASH_ComboBox) { - if (m_pWidgetMgr->IsFormDisabled()) { - return m_pWidgetMgr->GetAdapterPopupPos(m_pInterface, fMinHeight, - fMaxHeight, rtAnchor, rtPopup); - } else { - return GetPopupPosComboBox(fMinHeight, fMaxHeight, rtAnchor, rtPopup); - } - } else if (GetClassID() == FWL_CLASSHASH_DateTimePicker && - m_pWidgetMgr->IsFormDisabled()) { + if (GetClassID() == FWL_Type::ComboBox) { + if (m_pWidgetMgr->IsFormDisabled()) { return m_pWidgetMgr->GetAdapterPopupPos(m_pInterface, fMinHeight, fMaxHeight, rtAnchor, rtPopup); - } else { - return GetPopupPosGeneral(fMinHeight, fMaxHeight, rtAnchor, rtPopup); } + return GetPopupPosComboBox(fMinHeight, fMaxHeight, rtAnchor, rtPopup); } - return FALSE; + if (GetClassID() == FWL_Type::DateTimePicker && + m_pWidgetMgr->IsFormDisabled()) { + return m_pWidgetMgr->GetAdapterPopupPos(m_pInterface, fMinHeight, + fMaxHeight, rtAnchor, rtPopup); + } + return GetPopupPosGeneral(fMinHeight, fMaxHeight, rtAnchor, rtPopup); } + FX_BOOL CFWL_WidgetImp::GetPopupPosMenu(FX_FLOAT fMinHeight, FX_FLOAT fMaxHeight, const CFX_RectF& rtAnchor, diff --git a/xfa/fwl/core/fwl_widgetimp.h b/xfa/fwl/core/fwl_widgetimp.h index 4af2872f41..1b1ccc4b74 100644 --- a/xfa/fwl/core/fwl_widgetimp.h +++ b/xfa/fwl/core/fwl_widgetimp.h @@ -23,6 +23,7 @@ class IFWL_App; class IFWL_DataProvider; class IFWL_ThemeProvider; class IFWL_Widget; +enum class FWL_Type; class CFWL_WidgetImp { public: @@ -31,7 +32,7 @@ class CFWL_WidgetImp { virtual FWL_Error Initialize(); virtual FWL_Error Finalize(); virtual FWL_Error GetClassName(CFX_WideString& wsClass) const; - virtual uint32_t GetClassID() const; + virtual FWL_Type GetClassID() const = 0; virtual FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; virtual FWL_Error GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); diff --git a/xfa/fwl/core/fwl_widgetmgrimp.cpp b/xfa/fwl/core/fwl_widgetmgrimp.cpp index 28500c2cb2..f4ceb78c48 100644 --- a/xfa/fwl/core/fwl_widgetmgrimp.cpp +++ b/xfa/fwl/core/fwl_widgetmgrimp.cpp @@ -461,25 +461,13 @@ IFWL_Widget* CFWL_WidgetMgr::nextTab(IFWL_Widget* parent, int32_t CFWL_WidgetMgr::CountRadioButtonGroup(IFWL_Widget* pFirst) { int32_t iRet = 0; IFWL_Widget* pChild = pFirst; - while (pChild) { - if ((pChild->GetStyles() & FWL_WGTSTYLE_Group) && - pChild->GetClassID() == 3811304691) { - iRet++; - } + while (pChild) pChild = GetWidget(pChild, FWL_WGTRELATION_NextSibling); - } return iRet; } IFWL_Widget* CFWL_WidgetMgr::GetSiblingRadioButton(IFWL_Widget* pWidget, FX_BOOL bNext) { - while ((pWidget = GetWidget(pWidget, bNext ? FWL_WGTRELATION_NextSibling - : FWL_WGTRELATION_PriorSibling)) != - NULL) { - if (pWidget->GetClassID() == 3811304691) { - return pWidget; - } - } - return NULL; + return nullptr; } IFWL_Widget* CFWL_WidgetMgr::GetRadioButtonGroupHeader( IFWL_Widget* pRadioButton) { @@ -493,10 +481,6 @@ IFWL_Widget* CFWL_WidgetMgr::GetRadioButtonGroupHeader( } } pNext = GetWidget(pRadioButton, FWL_WGTRELATION_LastSibling); - if ((pNext->GetStyles() & FWL_WGTSTYLE_Group) && - pNext->GetClassID() == 3811304691) { - return pNext; - } while ((pNext = GetSiblingRadioButton(pNext, FALSE)) && pNext && pNext != pRadioButton) { if (pNext->GetStyles() & FWL_WGTSTYLE_Group) { @@ -504,10 +488,6 @@ IFWL_Widget* CFWL_WidgetMgr::GetRadioButtonGroupHeader( } } pNext = GetWidget(pRadioButton, FWL_WGTRELATION_FirstSibling); - if (pNext && (pNext->GetStyles() == FWL_WGTSTYLE_Group) && - pNext->GetClassID() == 3811304691) { - return pNext; - } return GetSiblingRadioButton(pNext, TRUE); } void CFWL_WidgetMgr::GetSameGroupRadioButton( @@ -519,9 +499,6 @@ void CFWL_WidgetMgr::GetSameGroupRadioButton( } int32_t iGroup = CountRadioButtonGroup(pFirst); if (iGroup < 2) { - if (pFirst->GetClassID() == 3811304691) { - group.Add(pFirst); - } IFWL_Widget* pNext = pFirst; while ((pNext = GetSiblingRadioButton(pNext, TRUE)) != NULL) { group.Add(pNext); @@ -532,24 +509,19 @@ void CFWL_WidgetMgr::GetSameGroupRadioButton( do { group.Add(pNext); pNext = GetSiblingRadioButton(pNext, TRUE); - if (!pNext) { - if (pFirst->GetClassID() == 3811304691) { - pNext = pFirst; - } else { - pNext = GetSiblingRadioButton(pFirst, TRUE); - } - } + if (!pNext) + pNext = GetSiblingRadioButton(pFirst, TRUE); } while (pNext && ((pNext->GetStyles() & FWL_WGTSTYLE_Group) == 0)); } IFWL_Widget* CFWL_WidgetMgr::GetDefaultButton(IFWL_Widget* pParent) { - if ((pParent->GetClassID() == 3521614244) && + if ((pParent->GetClassID() == FWL_Type::PushButton) && (pParent->GetStates() & (1 << (FWL_WGTSTATE_MAX + 2)))) { return pParent; } IFWL_Widget* child = FWL_GetWidgetMgr()->GetWidget(pParent, FWL_WGTRELATION_FirstChild); while (child) { - if ((child->GetClassID() == 3521614244) && + if ((child->GetClassID() == FWL_Type::PushButton) && (child->GetStates() & (1 << (FWL_WGTSTATE_MAX + 2)))) { return child; } @@ -831,16 +803,7 @@ FX_BOOL CFWL_WidgetMgrDelegate::IsNeedRepaint(IFWL_Widget* pWidget, FWL_GetWidgetMgr()->GetWidget(pWidget, FWL_WGTRELATION_FirstChild); if (!pChild) return TRUE; - if (pChild->GetClassID() == 3150298670) { - CFX_RectF rtTemp; - pChild->GetWidgetRect(rtTemp); - if (rtTemp.width >= rtWidget.width && rtTemp.height >= rtWidget.height) { - pChild = - FWL_GetWidgetMgr()->GetWidget(pChild, FWL_WGTRELATION_FirstChild); - if (!pChild) - return TRUE; - } - } + CFX_RectF rtChilds; rtChilds.Empty(); FX_BOOL bChildIntersectWithDirty = FALSE; diff --git a/xfa/fwl/core/ifwl_form.h b/xfa/fwl/core/ifwl_form.h index 22d6ecea12..75bec50d8e 100644 --- a/xfa/fwl/core/ifwl_form.h +++ b/xfa/fwl/core/ifwl_form.h @@ -13,9 +13,7 @@ #include "xfa/fwl/core/cfwl_widgetimpproperties.h" #define FWL_CLASS_Form L"FWL_FORM" -#define FWL_CLASSHASH_Form 881567292 #define FWL_CLASS_FormProxy L"FWL_FORMPROXY" -#define FWL_CLASSHASH_FormProxy 881567291 #define FWL_STYLEEXT_FRM_Resize (1L << 0) #define FWL_STYLEEXT_FRM_NativeBorder (1L << 1) #define FWL_STYLEEXT_FRM_RoundCorner (2L << 1) diff --git a/xfa/fwl/core/ifwl_themeprovider.h b/xfa/fwl/core/ifwl_themeprovider.h index 66e7e0c4fd..274b27958a 100644 --- a/xfa/fwl/core/ifwl_themeprovider.h +++ b/xfa/fwl/core/ifwl_themeprovider.h @@ -20,7 +20,7 @@ class IFWL_Widget; class IFWL_ThemeProvider { public: virtual ~IFWL_ThemeProvider() {} - virtual FX_BOOL IsValidWidget(IFWL_Widget* pWidget) = 0; + virtual bool IsValidWidget(IFWL_Widget* pWidget) = 0; virtual uint32_t GetThemeID(IFWL_Widget* pWidget) = 0; virtual uint32_t SetThemeID(IFWL_Widget* pWidget, uint32_t dwThemeID, diff --git a/xfa/fwl/core/ifwl_widget.h b/xfa/fwl/core/ifwl_widget.h index 691e4606c5..8bbf8da469 100644 --- a/xfa/fwl/core/ifwl_widget.h +++ b/xfa/fwl/core/ifwl_widget.h @@ -26,6 +26,26 @@ // CFWL_... IFWL_... CFWL_...Imp // +enum class FWL_Type { + Unknown = 0, + + Barcode, + Caret, + CheckBox, + ComboBox, + DateTimePicker, + Edit, + Form, + FormProxy, + ListBox, + MonthCalendar, + PictureBox, + PushButton, + ScrollBar, + SpinButton, + ToolTip +}; + class CFWL_WidgetImp; class CFX_Graphics; class IFWL_App; @@ -79,7 +99,7 @@ class IFWL_Widget { // These call into equivalent polymorphic methods of m_pImpl. There // should be no need to override these in subclasses. FWL_Error GetClassName(CFX_WideString& wsClass) const; - uint32_t GetClassID() const; + FWL_Type GetClassID() const; FX_BOOL IsInstance(const CFX_WideStringC& wsClass) const; FWL_Error Initialize(); FWL_Error Finalize(); |