Index: xfa/fwl/core/ifwl_combobox.cpp |
diff --git a/xfa/fwl/core/ifwl_combobox.cpp b/xfa/fwl/core/ifwl_combobox.cpp |
index 123dc9bea97aaeca46c0ba9a5a84385d446a6df8..28a5977425a3c588673228bf10ef3eed2690ad17 100644 |
--- a/xfa/fwl/core/ifwl_combobox.cpp |
+++ b/xfa/fwl/core/ifwl_combobox.cpp |
@@ -6,6 +6,7 @@ |
#include "xfa/fwl/core/ifwl_combobox.h" |
+#include "third_party/base/ptr_util.h" |
#include "xfa/fde/cfde_txtedtengine.h" |
#include "xfa/fde/tto/fde_textout.h" |
#include "xfa/fwl/core/cfwl_message.h" |
@@ -32,13 +33,8 @@ IFWL_ComboBox::IFWL_ComboBox(const IFWL_App* app, |
m_rtClient.Reset(); |
m_rtBtn.Reset(); |
m_rtHandler.Reset(); |
-} |
- |
-IFWL_ComboBox::~IFWL_ComboBox() {} |
-void IFWL_ComboBox::Initialize() { |
- IFWL_Widget::Initialize(); |
- m_pDelegate = new CFWL_ComboBoxImpDelegate(this); |
+ SetDelegate(pdfium::MakeUnique<CFWL_ComboBoxImpDelegate>(this)); |
if (m_pWidgetMgr->IsFormDisabled()) { |
DisForm_InitComboList(); |
@@ -54,11 +50,9 @@ void IFWL_ComboBox::Initialize() { |
prop.m_pDataProvider = m_pProperties->m_pDataProvider; |
m_pListBox.reset(new IFWL_ComboList(m_pOwnerApp, prop, this)); |
- m_pListBox->Initialize(); |
if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_DropDown) && !m_pEdit) { |
CFWL_WidgetImpProperties prop2; |
m_pEdit.reset(new IFWL_ComboEdit(m_pOwnerApp, prop2, this)); |
- m_pEdit->Initialize(); |
m_pEdit->SetOuter(this); |
} |
if (m_pEdit) |
@@ -67,15 +61,7 @@ void IFWL_ComboBox::Initialize() { |
SetStates(m_pProperties->m_dwStates); |
} |
-void IFWL_ComboBox::Finalize() { |
- if (m_pEdit) |
- m_pEdit->Finalize(); |
- |
- m_pListBox->Finalize(); |
- delete m_pDelegate; |
- m_pDelegate = nullptr; |
- IFWL_Widget::Finalize(); |
-} |
+IFWL_ComboBox::~IFWL_ComboBox() {} |
FWL_Type IFWL_ComboBox::GetClassID() const { |
return FWL_Type::ComboBox; |
@@ -116,7 +102,6 @@ FWL_Error IFWL_ComboBox::ModifyStylesEx(uint32_t dwStylesExAdded, |
if (bAddDropDown && !m_pEdit) { |
CFWL_WidgetImpProperties prop; |
m_pEdit.reset(new IFWL_ComboEdit(m_pOwnerApp, prop, nullptr)); |
- m_pEdit->Initialize(); |
m_pEdit->SetOuter(this); |
m_pEdit->SetParent(this); |
} else if (bRemoveDropDown && m_pEdit) { |
@@ -715,7 +700,6 @@ void IFWL_ComboBox::InitProxyForm() { |
propForm.m_dwStates = FWL_WGTSTATE_Invisible; |
m_pForm = new IFWL_FormProxy(m_pOwnerApp, propForm, m_pListBox.get()); |
- m_pForm->Initialize(); |
m_pListBox->SetParent(m_pForm); |
m_pListProxyDelegate = new CFWL_ComboProxyImpDelegate(m_pForm, this); |
m_pForm->SetCurrentDelegate(m_pListProxyDelegate); |
@@ -732,7 +716,6 @@ void IFWL_ComboBox::DisForm_InitComboList() { |
prop.m_pDataProvider = m_pProperties->m_pDataProvider; |
prop.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
m_pListBox.reset(new IFWL_ComboList(m_pOwnerApp, prop, this)); |
- m_pListBox->Initialize(); |
} |
void IFWL_ComboBox::DisForm_InitComboEdit() { |
@@ -743,7 +726,6 @@ void IFWL_ComboBox::DisForm_InitComboEdit() { |
prop.m_pParent = this; |
prop.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
m_pEdit.reset(new IFWL_ComboEdit(m_pOwnerApp, prop, this)); |
- m_pEdit->Initialize(); |
m_pEdit->SetOuter(this); |
} |