From a54bc400fa69491ad72ad97f74742ec28cbe849a Mon Sep 17 00:00:00 2001 From: tsepez Date: Fri, 27 May 2016 11:13:09 -0700 Subject: Add back-pointer to "Associated widget" to CFWL_WidgetImp. This is the last use of CFX_PrivateData, which is now removed. Review-Url: https://codereview.chromium.org/2016743002 --- xfa/fwl/core/fwl_widgetimp.cpp | 37 +++++++++++++++---------------------- xfa/fwl/core/fwl_widgetimp.h | 8 +++----- xfa/fwl/core/ifwl_widget.h | 13 +++++++------ 3 files changed, 25 insertions(+), 33 deletions(-) (limited to 'xfa/fwl/core') diff --git a/xfa/fwl/core/fwl_widgetimp.cpp b/xfa/fwl/core/fwl_widgetimp.cpp index 38e3a1ff28..1c0d28379d 100644 --- a/xfa/fwl/core/fwl_widgetimp.cpp +++ b/xfa/fwl/core/fwl_widgetimp.cpp @@ -111,14 +111,14 @@ void IFWL_Widget::SetLayoutItem(void* pItem) { GetImpl()->SetLayoutItem(pItem); } -FWL_Error IFWL_Widget::SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback) { - return GetImpl()->SetPrivateData(module_id, pData, callback); +void* IFWL_Widget::GetAssociateWidget() const { + return GetImpl()->GetAssociateWidget(); } -void* IFWL_Widget::GetPrivateData(void* module_id) { - return GetImpl()->GetPrivateData(module_id); + +void IFWL_Widget::SetAssociateWidget(void* pAssociate) { + GetImpl()->SetAssociateWidget(pAssociate); } + FWL_Error IFWL_Widget::Update() { return GetImpl()->Update(); } @@ -330,20 +330,6 @@ void CFWL_WidgetImp::SetStates(uint32_t dwStates, FX_BOOL bSet) { } return; } -FWL_Error CFWL_WidgetImp::SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback) { - if (!m_pPrivateData) { - m_pPrivateData = new CFX_PrivateData; - } - m_pPrivateData->SetPrivateData(module_id, pData, callback); - return FWL_Error::Succeeded; -} -void* CFWL_WidgetImp::GetPrivateData(void* module_id) { - if (!m_pPrivateData) - return NULL; - return m_pPrivateData->GetPrivateData(module_id); -} FWL_Error CFWL_WidgetImp::Update() { return FWL_Error::Succeeded; } @@ -533,15 +519,23 @@ void CFWL_WidgetImp::SetLayoutItem(void* pItem) { m_pLayoutItem = pItem; } +void* CFWL_WidgetImp::GetAssociateWidget() const { + return m_pAssociate; +} + +void CFWL_WidgetImp::SetAssociateWidget(void* pAssociate) { + m_pAssociate = pAssociate; +} + CFWL_WidgetImp::CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties, IFWL_Widget* pOuter) : m_pProperties(new CFWL_WidgetImpProperties), - m_pPrivateData(nullptr), m_pDelegate(nullptr), m_pCurDelegate(nullptr), m_pOuter(pOuter), m_pInterface(nullptr), m_pLayoutItem(nullptr), + m_pAssociate(nullptr), m_iLock(0), m_nEventKey(0) { *m_pProperties = properties; @@ -550,7 +544,6 @@ CFWL_WidgetImp::CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties, } CFWL_WidgetImp::~CFWL_WidgetImp() { - delete m_pPrivateData; delete m_pProperties; } diff --git a/xfa/fwl/core/fwl_widgetimp.h b/xfa/fwl/core/fwl_widgetimp.h index 8a887126e3..be97c060f2 100644 --- a/xfa/fwl/core/fwl_widgetimp.h +++ b/xfa/fwl/core/fwl_widgetimp.h @@ -52,10 +52,6 @@ class CFWL_WidgetImp { uint32_t dwStylesExRemoved); virtual uint32_t GetStates(); virtual void SetStates(uint32_t dwStates, FX_BOOL bSet = TRUE); - virtual FWL_Error SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback); - virtual void* GetPrivateData(void* module_id); virtual FWL_Error Update(); virtual FWL_Error LockUpdate(); virtual FWL_Error UnlockUpdate(); @@ -82,6 +78,8 @@ class CFWL_WidgetImp { void SetEventKey(uint32_t key); void* GetLayoutItem() const; void SetLayoutItem(void* pItem); + void* GetAssociateWidget() const; + void SetAssociateWidget(void* pAssociate); protected: friend class CFWL_WidgetImpDelegate; @@ -159,12 +157,12 @@ class CFWL_WidgetImp { CFWL_WidgetMgr* m_pWidgetMgr; CFWL_AppImp* m_pOwnerApp; CFWL_WidgetImpProperties* m_pProperties; - CFX_PrivateData* m_pPrivateData; IFWL_WidgetDelegate* m_pDelegate; IFWL_WidgetDelegate* m_pCurDelegate; IFWL_Widget* m_pOuter; IFWL_Widget* m_pInterface; void* m_pLayoutItem; + void* m_pAssociate; int32_t m_iLock; uint32_t m_nEventKey; }; diff --git a/xfa/fwl/core/ifwl_widget.h b/xfa/fwl/core/ifwl_widget.h index e9da806291..0b864fee7d 100644 --- a/xfa/fwl/core/ifwl_widget.h +++ b/xfa/fwl/core/ifwl_widget.h @@ -18,13 +18,16 @@ // FWL contains three parallel inheritance hierarchies, which reference each // other via pointers as follows: // -// m_pIface m_pImpl +// m_pAssociate +// <---------------------------------- // CFWL_Widget ----------> IFWL_Widget ----------> CFWL_WidgetImp -// | | | +// | m_pIface | m_pImpl | // A A A // | | | // CFWL_... IFWL_... CFWL_...Imp // +// TODO(tsepez): Collapse these into a single hierarchy. +// enum class FWL_Type { Unknown = 0, @@ -79,10 +82,8 @@ class IFWL_Widget { void SetEventKey(uint32_t key); void* GetLayoutItem() const; void SetLayoutItem(void* pItem); - FWL_Error SetPrivateData(void* module_id, - void* pData, - PD_CALLBACK_FREEDATA callback); - void* GetPrivateData(void* module_id); + void* GetAssociateWidget() const; + void SetAssociateWidget(void* pAssociate); FWL_Error Update(); FWL_Error LockUpdate(); FWL_Error UnlockUpdate(); -- cgit v1.2.3