Index: xfa/fwl/lightwidget/cfwl_widget.cpp |
diff --git a/xfa/fwl/lightwidget/cfwl_widget.cpp b/xfa/fwl/lightwidget/cfwl_widget.cpp |
index 8022f0afb046dcc4ebca545dbbb2f86572c462ca..3a5478a433c2ddc41633811bf02c5b1a2bbdbea5 100644 |
--- a/xfa/fwl/lightwidget/cfwl_widget.cpp |
+++ b/xfa/fwl/lightwidget/cfwl_widget.cpp |
@@ -20,7 +20,11 @@ |
#define FWL_WGT_CalcMultiLineDefWidth 120.0f |
IFWL_Widget* CFWL_Widget::GetWidget() { |
- return m_pIface; |
+ return m_pIface.get(); |
+} |
+ |
+const IFWL_Widget* CFWL_Widget::GetWidget() const { |
+ return m_pIface.get(); |
} |
FWL_Error CFWL_Widget::GetClassName(CFX_WideString& wsClass) const { |
@@ -208,18 +212,15 @@ IFWL_WidgetDelegate* CFWL_Widget::SetDelegate(IFWL_WidgetDelegate* pDelegate) { |
} |
CFWL_Widget::CFWL_Widget() |
- : m_pIface(nullptr), m_pDelegate(nullptr), m_pProperties(nullptr) { |
- m_pProperties = new CFWL_WidgetProperties; |
- m_pWidgetMgr = CFWL_WidgetMgr::GetInstance(); |
+ : m_pDelegate(nullptr), |
+ m_pWidgetMgr(CFWL_WidgetMgr::GetInstance()), |
+ m_pProperties(new CFWL_WidgetProperties) { |
ASSERT(m_pWidgetMgr); |
} |
CFWL_Widget::~CFWL_Widget() { |
- delete m_pProperties; |
- if (m_pIface) { |
+ if (m_pIface) |
m_pIface->Finalize(); |
- delete m_pIface; |
- } |
} |
FWL_Error CFWL_Widget::Repaint(const CFX_RectF* pRect) { |
@@ -233,7 +234,7 @@ FWL_Error CFWL_Widget::Repaint(const CFX_RectF* pRect) { |
m_pIface->GetWidgetRect(rect); |
rect.left = rect.top = 0; |
} |
- return m_pWidgetMgr->RepaintWidget(m_pIface, &rect); |
+ return m_pWidgetMgr->RepaintWidget(m_pIface.get(), &rect); |
} |
FWL_Error CFWL_Widget::SetFocus(FX_BOOL bFocus) { |
@@ -249,9 +250,9 @@ FWL_Error CFWL_Widget::SetFocus(FX_BOOL bFocus) { |
return FWL_Error::Indefinite; |
if (bFocus) { |
- pDriver->SetFocus(m_pIface); |
+ pDriver->SetFocus(m_pIface.get()); |
} else { |
- if (pDriver->GetFocus() == m_pIface) { |
+ if (pDriver->GetFocus() == m_pIface.get()) { |
pDriver->SetFocus(nullptr); |
} |
} |
@@ -270,7 +271,7 @@ FWL_Error CFWL_Widget::SetGrab(FX_BOOL bSet) { |
if (!pDriver) |
return FWL_Error::Indefinite; |
- pDriver->SetGrab(m_pIface, bSet); |
+ pDriver->SetGrab(m_pIface.get(), bSet); |
return FWL_Error::Succeeded; |
} |
@@ -320,7 +321,7 @@ CFX_SizeF CFWL_Widget::CalcTextSize(const CFX_WideString& wsText, |
return CFX_SizeF(); |
CFWL_ThemeText calPart; |
- calPart.m_pWidget = m_pIface; |
+ calPart.m_pWidget = m_pIface.get(); |
calPart.m_wsText = wsText; |
calPart.m_dwTTOStyles = |
bMultiLine ? FDE_TTOSTYLE_LineWrap : FDE_TTOSTYLE_SingleLine; |