| Index: xfa/src/fwl/src/basewidget/fwl_editimp.cpp
|
| diff --git a/xfa/src/fwl/src/basewidget/fwl_editimp.cpp b/xfa/src/fwl/src/basewidget/fwl_editimp.cpp
|
| index 8f6611884aaa8fdd788e3fe9021153027141444e..a35d1e60bff01ce6893cf8fd53e9f431f9e219a2 100644
|
| --- a/xfa/src/fwl/src/basewidget/fwl_editimp.cpp
|
| +++ b/xfa/src/fwl/src/basewidget/fwl_editimp.cpp
|
| @@ -11,18 +11,31 @@
|
| #include "../core/include/fwl_noteimp.h"
|
| #include "../core/include/fwl_widgetimp.h"
|
| #include "../core/include/fwl_widgetmgrimp.h"
|
| -#include "include/fwl_scrollbarimp.h"
|
| -#include "include/fwl_editimp.h"
|
| #include "include/fwl_caretimp.h"
|
| -IFWL_Edit::IFWL_Edit() {
|
| -}
|
| -FWL_ERR IFWL_Edit::Initialize(const CFWL_WidgetImpProperties& properties,
|
| - IFWL_Widget* pOuter) {
|
| +#include "include/fwl_comboboximp.h"
|
| +#include "include/fwl_editimp.h"
|
| +#include "include/fwl_scrollbarimp.h"
|
| +
|
| +// static
|
| +IFWL_Edit* IFWL_Edit::Create(const CFWL_WidgetImpProperties& properties,
|
| + IFWL_Widget* pOuter) {
|
| + IFWL_Edit* pEdit = new IFWL_Edit;
|
| CFWL_EditImp* pEditImpl = new CFWL_EditImp(properties, pOuter);
|
| - SetImpl(pEditImpl);
|
| - pEditImpl->SetInterface(this);
|
| - return pEditImpl->Initialize();
|
| -}
|
| + pEdit->SetImpl(pEditImpl);
|
| + pEditImpl->SetInterface(pEdit);
|
| + return pEdit;
|
| +}
|
| +// static
|
| +IFWL_Edit* IFWL_Edit::CreateComboEdit(
|
| + const CFWL_WidgetImpProperties& properties,
|
| + IFWL_Widget* pOuter) {
|
| + IFWL_Edit* pEdit = new IFWL_Edit;
|
| + CFWL_EditImp* pComboEditImpl = new CFWL_ComboEditImp(properties, pOuter);
|
| + pEdit->SetImpl(pComboEditImpl);
|
| + pComboEditImpl->SetInterface(pEdit);
|
| + return pEdit;
|
| +}
|
| +IFWL_Edit::IFWL_Edit() {}
|
| FWL_ERR IFWL_Edit::SetText(const CFX_WideString& wsText) {
|
| return static_cast<CFWL_EditImp*>(GetImpl())->SetText(wsText);
|
| }
|
| @@ -150,29 +163,6 @@ FX_BOOL IFWL_Edit::ReplaceSpellCheckWord(CFX_PointF pointf,
|
| ->ReplaceSpellCheckWord(pointf, bsReplace);
|
| }
|
| #define FWL_EDIT_Margin 3
|
| -CFWL_EditImp::CFWL_EditImp(IFWL_Widget* pOuter)
|
| - : CFWL_WidgetImp(pOuter),
|
| - m_fVAlignOffset(0.0f),
|
| - m_fScrollOffsetX(0.0f),
|
| - m_fScrollOffsetY(0.0f),
|
| - m_pEdtEngine(NULL),
|
| - m_bLButtonDown(FALSE),
|
| - m_nSelStart(0),
|
| - m_nLimit(-1),
|
| - m_fSpaceAbove(0),
|
| - m_fSpaceBelow(0),
|
| - m_fFontSize(0),
|
| - m_bSetRange(FALSE),
|
| - m_iMin(-1),
|
| - m_iMax(0xFFFFFFF),
|
| - m_backColor(0),
|
| - m_updateBackColor(FALSE),
|
| - m_iCurRecord(-1),
|
| - m_iMaxRecord(128) {
|
| - m_rtClient.Reset();
|
| - m_rtEngine.Reset();
|
| - m_rtStatic.Reset();
|
| -}
|
| CFWL_EditImp::CFWL_EditImp(const CFWL_WidgetImpProperties& properties,
|
| IFWL_Widget* pOuter)
|
| : CFWL_WidgetImp(properties, pOuter),
|
| @@ -1670,8 +1660,8 @@ void CFWL_EditImp::InitScrollBar(FX_BOOL bVert) {
|
| prop.m_dwStates = FWL_WGTSTATE_Disabled | FWL_WGTSTATE_Invisible;
|
| prop.m_pParent = m_pInterface;
|
| prop.m_pThemeProvider = m_pProperties->m_pThemeProvider;
|
| - IFWL_ScrollBar* pScrollBar = new IFWL_ScrollBar;
|
| - pScrollBar->Initialize(prop, m_pInterface);
|
| + IFWL_ScrollBar* pScrollBar = IFWL_ScrollBar::Create(prop, m_pInterface);
|
| + pScrollBar->Initialize();
|
| (bVert ? &m_pVertScrollBar : &m_pHorzScrollBar)->reset(pScrollBar);
|
| }
|
| void CFWL_EditImp::InitEngine() {
|
| @@ -1745,8 +1735,9 @@ FX_BOOL CFWL_EditImp::ValidateNumberChar(FX_WCHAR cNum) {
|
| void CFWL_EditImp::InitCaret() {
|
| if (!m_pCaret) {
|
| if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_EDT_InnerCaret)) {
|
| - m_pCaret.reset(new IFWL_Caret);
|
| - m_pCaret->Initialize(m_pInterface);
|
| + CFWL_WidgetImpProperties prop;
|
| + m_pCaret.reset(IFWL_Caret::Create(prop, m_pInterface));
|
| + m_pCaret->Initialize();
|
| m_pCaret->SetParent(m_pInterface);
|
| m_pCaret->SetStates(m_pProperties->m_dwStates);
|
| }
|
|
|