Index: xfa/src/fwl/src/core/fwl_widgetimp.cpp |
diff --git a/xfa/src/fwl/src/core/fwl_widgetimp.cpp b/xfa/src/fwl/src/core/fwl_widgetimp.cpp |
index 4cba92a1cfbb6d8826cd9db142653f06e86d22f2..95e235d12a309977e226b6012e27b0912d0cfaaa 100644 |
--- a/xfa/src/fwl/src/core/fwl_widgetimp.cpp |
+++ b/xfa/src/fwl/src/core/fwl_widgetimp.cpp |
@@ -499,30 +499,15 @@ IFWL_Widget* CFWL_WidgetImp::GetInterface() const { |
void CFWL_WidgetImp::SetInterface(IFWL_Widget* pInterface) { |
m_pInterface = pInterface; |
} |
-CFWL_WidgetImp::CFWL_WidgetImp(IFWL_Widget* pOuter) |
- : m_pProperties(NULL), |
- m_pPrivateData(NULL), |
- m_pDelegate(NULL), |
- m_pCurDelegate(NULL), |
- m_pOuter(pOuter), |
- m_pInterface(NULL), |
- m_iLock(0) { |
- m_pProperties = new CFWL_WidgetImpProperties; |
- m_pWidgetMgr = (CFWL_WidgetMgr*)FWL_GetWidgetMgr(); |
- FXSYS_assert(m_pWidgetMgr != NULL); |
-} |
CFWL_WidgetImp::CFWL_WidgetImp(const CFWL_WidgetImpProperties& properties, |
IFWL_Widget* pOuter) |
- : m_pProperties(NULL), |
+ : m_pProperties(new CFWL_WidgetImpProperties), |
m_pPrivateData(NULL), |
m_pDelegate(NULL), |
m_pCurDelegate(NULL), |
m_pOuter(pOuter), |
m_pInterface(NULL), |
m_iLock(0) { |
- if (!m_pProperties) { |
- m_pProperties = new CFWL_WidgetImpProperties; |
- } |
*m_pProperties = properties; |
m_pWidgetMgr = (CFWL_WidgetMgr*)FWL_GetWidgetMgr(); |
FXSYS_assert(m_pWidgetMgr != NULL); |
@@ -1040,9 +1025,8 @@ FWL_ERR CFWL_WidgetImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, |
} |
class CFWL_CustomImp : public CFWL_WidgetImp { |
public: |
- CFWL_CustomImp(IFWL_Widget* pOuter = NULL); |
CFWL_CustomImp(const CFWL_WidgetImpProperties& properties, |
- IFWL_Widget* pOuter = NULL); |
+ IFWL_Widget* pOuter); |
virtual FWL_ERR GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize = FALSE); |
virtual FWL_ERR Update(); |
virtual FWL_ERR SetProxy(IFWL_Proxy* pProxy); |
@@ -1050,8 +1034,6 @@ class CFWL_CustomImp : public CFWL_WidgetImp { |
protected: |
IFWL_Proxy* m_pProxy; |
}; |
-CFWL_CustomImp::CFWL_CustomImp(IFWL_Widget* pOuter) |
- : CFWL_WidgetImp(pOuter), m_pProxy(NULL) {} |
CFWL_CustomImp::CFWL_CustomImp(const CFWL_WidgetImpProperties& properties, |
IFWL_Widget* pOuter) |
: CFWL_WidgetImp(properties, pOuter), m_pProxy(NULL) {} |
@@ -1072,15 +1054,17 @@ FWL_ERR CFWL_CustomImp::SetProxy(IFWL_Proxy* pProxy) { |
m_pProxy = pProxy; |
return FWL_ERR_Succeeded; |
} |
-IFWL_Custom::IFWL_Custom() { |
-} |
-FWL_ERR IFWL_Custom::Initialize(const CFWL_WidgetImpProperties& properties, |
- IFWL_Widget* pOuter) { |
+ |
+// static |
+IFWL_Custom* IFWL_Custom::Create(const CFWL_WidgetImpProperties& properties, |
+ IFWL_Widget* pOuter) { |
+ IFWL_Custom* pCustom = new IFWL_Custom; |
CFWL_CustomImp* pCustomImpl = new CFWL_CustomImp(properties, pOuter); |
- SetImpl(pCustomImpl); |
- pCustomImpl->SetInterface(this); |
- return pCustomImpl->Initialize(); |
+ pCustom->SetImpl(pCustomImpl); |
+ pCustomImpl->SetInterface(pCustom); |
+ return pCustom; |
} |
+IFWL_Custom::IFWL_Custom() {} |
FWL_ERR IFWL_Custom::SetProxy(IFWL_Proxy* pProxy) { |
return static_cast<CFWL_CustomImp*>(GetImpl())->SetProxy(pProxy); |
} |