| Index: xfa/fwl/core/ifwl_edit.cpp
|
| diff --git a/xfa/fwl/core/ifwl_edit.cpp b/xfa/fwl/core/ifwl_edit.cpp
|
| index b826bd2f02f0050285f1cf2948dd134c5e4f817d..8edc69d57811ec25a8d9e7656ee0f4d638572349 100644
|
| --- a/xfa/fwl/core/ifwl_edit.cpp
|
| +++ b/xfa/fwl/core/ifwl_edit.cpp
|
| @@ -10,6 +10,7 @@
|
| #include <memory>
|
| #include <vector>
|
|
|
| +#include "third_party/base/ptr_util.h"
|
| #include "third_party/base/stl_util.h"
|
| #include "xfa/fde/cfde_txtedtengine.h"
|
| #include "xfa/fde/fde_gedevice.h"
|
| @@ -74,33 +75,18 @@ IFWL_Edit::IFWL_Edit(const IFWL_App* app,
|
| m_rtClient.Reset();
|
| m_rtEngine.Reset();
|
| m_rtStatic.Reset();
|
| -}
|
| -
|
| -IFWL_Edit::~IFWL_Edit() {
|
| - ClearRecord();
|
| -}
|
| -
|
| -void IFWL_Edit::Initialize() {
|
| - IFWL_Widget::Initialize();
|
| - if (!m_pDelegate)
|
| - m_pDelegate = new CFWL_EditImpDelegate(this);
|
|
|
| + SetDelegate(pdfium::MakeUnique<CFWL_EditImpDelegate>(this));
|
| InitCaret();
|
| if (!m_pEdtEngine)
|
| InitEngine();
|
| }
|
|
|
| -void IFWL_Edit::Finalize() {
|
| +IFWL_Edit::~IFWL_Edit() {
|
| if (m_pProperties->m_dwStates & FWL_WGTSTATE_Focused)
|
| ShowCaret(FALSE);
|
| - if (m_pHorzScrollBar)
|
| - m_pHorzScrollBar->Finalize();
|
| - if (m_pVertScrollBar)
|
| - m_pVertScrollBar->Finalize();
|
|
|
| - delete m_pDelegate;
|
| - m_pDelegate = nullptr;
|
| - IFWL_Widget::Finalize();
|
| + ClearRecord();
|
| }
|
|
|
| FWL_Type IFWL_Edit::GetClassID() const {
|
| @@ -1472,9 +1458,12 @@ void IFWL_Edit::InitScrollBar(FX_BOOL bVert) {
|
| prop.m_dwStates = FWL_WGTSTATE_Disabled | FWL_WGTSTATE_Invisible;
|
| prop.m_pParent = this;
|
| prop.m_pThemeProvider = m_pProperties->m_pThemeProvider;
|
| - IFWL_ScrollBar* pScrollBar = new IFWL_ScrollBar(m_pOwnerApp, prop, this);
|
| - pScrollBar->Initialize();
|
| - (bVert ? &m_pVertScrollBar : &m_pHorzScrollBar)->reset(pScrollBar);
|
| +
|
| + IFWL_ScrollBar* sb = new IFWL_ScrollBar(m_pOwnerApp, prop, this);
|
| + if (bVert)
|
| + m_pVertScrollBar.reset(sb);
|
| + else
|
| + m_pHorzScrollBar.reset(sb);
|
| }
|
|
|
| void IFWL_Edit::InitEngine() {
|
| @@ -1571,7 +1560,6 @@ void IFWL_Edit::InitCaret() {
|
| if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_InnerCaret)) {
|
| CFWL_WidgetImpProperties prop;
|
| m_pCaret.reset(new IFWL_Caret(m_pOwnerApp, prop, this));
|
| - m_pCaret->Initialize();
|
| m_pCaret->SetParent(this);
|
| m_pCaret->SetStates(m_pProperties->m_dwStates);
|
| }
|
|
|