| Index: xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp
|
| diff --git a/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp
|
| index c35ae75de6fe10e7d60ca5283f1f4a5afe47a6e2..265337616bd356eac97cbe2b3eb1823942017ea0 100644
|
| --- a/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp
|
| +++ b/xfa/src/fwl/src/basewidget/fwl_comboboximp.cpp
|
| @@ -18,9 +18,6 @@
|
| #include "include/fwl_listboximp.h"
|
| #include "include/fwl_formproxyimp.h"
|
| #include "include/fwl_comboboximp.h"
|
| -IFWL_ComboBox* IFWL_ComboBox::Create() {
|
| - return new IFWL_ComboBox;
|
| -}
|
| IFWL_ComboBox::IFWL_ComboBox() {
|
| }
|
| FWL_ERR IFWL_ComboBox::Initialize(const CFWL_WidgetImpProperties& properties,
|
| @@ -342,7 +339,7 @@ void CFWL_ComboListImpDelegate::OnDropListFocusChanged(CFWL_Message* pMsg,
|
| CFWL_ComboBoxImp* pOuter =
|
| static_cast<CFWL_ComboBoxImp*>(m_pOwner->m_pOuter->GetImpl());
|
| if (pKill->m_pSetFocus == m_pOwner->m_pOuter ||
|
| - pKill->m_pSetFocus == pOuter->m_pEdit) {
|
| + pKill->m_pSetFocus == pOuter->m_pEdit.get()) {
|
| pOuter->ShowDropList(FALSE);
|
| }
|
| }
|
| @@ -472,8 +469,6 @@ void CFWL_ComboListImpDelegate::OnDropListKeyDown(CFWL_MsgKey* pKey) {
|
| }
|
| CFWL_ComboBoxImp::CFWL_ComboBoxImp(IFWL_Widget* pOuter)
|
| : CFWL_WidgetImp(pOuter),
|
| - m_pEdit(NULL),
|
| - m_pListBox(NULL),
|
| m_pForm(NULL),
|
| m_bLButtonDown(FALSE),
|
| m_iCurSel(-1),
|
| @@ -487,8 +482,6 @@ CFWL_ComboBoxImp::CFWL_ComboBoxImp(IFWL_Widget* pOuter)
|
| CFWL_ComboBoxImp::CFWL_ComboBoxImp(const CFWL_WidgetImpProperties& properties,
|
| IFWL_Widget* pOuter)
|
| : CFWL_WidgetImp(properties, pOuter),
|
| - m_pEdit(NULL),
|
| - m_pListBox(NULL),
|
| m_pForm(NULL),
|
| m_bLButtonDown(FALSE),
|
| m_iCurSel(-1),
|
| @@ -500,14 +493,6 @@ CFWL_ComboBoxImp::CFWL_ComboBoxImp(const CFWL_WidgetImpProperties& properties,
|
| m_rtHandler.Reset();
|
| }
|
| CFWL_ComboBoxImp::~CFWL_ComboBoxImp() {
|
| - if (m_pEdit) {
|
| - m_pEdit->Release();
|
| - m_pEdit = NULL;
|
| - }
|
| - if (m_pListBox) {
|
| - m_pListBox->Release();
|
| - m_pListBox = NULL;
|
| - }
|
| }
|
| FWL_ERR CFWL_ComboBoxImp::GetClassName(CFX_WideString& wsClass) const {
|
| wsClass = FWL_CLASS_ComboBox;
|
| @@ -531,14 +516,14 @@ FWL_ERR CFWL_ComboBoxImp::Initialize() {
|
| }
|
| prop.m_pDataProvider = m_pProperties->m_pDataProvider;
|
| CFWL_ComboListImp* pList = new CFWL_ComboListImp(prop, m_pInterface);
|
| - m_pListBox = IFWL_ListBox::Create();
|
| - pList->SetInterface(m_pListBox);
|
| + m_pListBox.reset(new IFWL_ListBox);
|
| + pList->SetInterface(m_pListBox.get());
|
| m_pListBox->SetImpl(pList);
|
| pList->Initialize();
|
| if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_DropDown) && !m_pEdit) {
|
| CFWL_ComboEditImp* pEdit = new CFWL_ComboEditImp(m_pInterface);
|
| - m_pEdit = IFWL_Edit::Create();
|
| - pEdit->SetInterface(m_pEdit);
|
| + m_pEdit.reset(new IFWL_Edit);
|
| + pEdit->SetInterface(m_pEdit.get());
|
| m_pEdit->SetImpl(pEdit);
|
| pEdit->Initialize();
|
| pEdit->SetOuter(m_pInterface);
|
| @@ -591,8 +576,8 @@ FWL_ERR CFWL_ComboBoxImp::ModifyStylesEx(FX_DWORD dwStylesExAdded,
|
| FX_BOOL bRemoveDropDown = dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown;
|
| if (bAddDropDown && !m_pEdit) {
|
| CFWL_ComboEditImp* pEdit = new CFWL_ComboEditImp(m_pInterface);
|
| - m_pEdit = IFWL_Edit::Create();
|
| - pEdit->SetInterface(m_pEdit);
|
| + m_pEdit.reset(new IFWL_Edit);
|
| + pEdit->SetInterface(m_pEdit.get());
|
| m_pEdit->SetImpl(pEdit);
|
| pEdit->Initialize();
|
| pEdit->SetOuter(m_pInterface);
|
| @@ -663,8 +648,8 @@ FWL_ERR CFWL_ComboBoxImp::DrawWidget(CFX_Graphics* pGraphics,
|
| IFWL_ListBoxDP* pData = static_cast<IFWL_ListBoxDP*>(
|
| static_cast<CFWL_ComboListImp*>(m_pListBox->GetImpl())
|
| ->m_pProperties->m_pDataProvider);
|
| - void* p =
|
| - pData->GetItemData(m_pListBox, pData->GetItem(m_pListBox, m_iCurSel));
|
| + void* p = pData->GetItemData(m_pListBox.get(),
|
| + pData->GetItem(m_pListBox.get(), m_iCurSel));
|
| if (p != NULL) {
|
| param.m_pData = p;
|
| }
|
| @@ -721,10 +706,10 @@ FWL_ERR CFWL_ComboBoxImp::SetThemeProvider(IFWL_ThemeProvider* pThemeProvider) {
|
| if (!pThemeProvider)
|
| return FWL_ERR_Indefinite;
|
| m_pProperties->m_pThemeProvider = pThemeProvider;
|
| - if (m_pListBox && pThemeProvider->IsValidWidget(m_pListBox)) {
|
| + if (m_pListBox && pThemeProvider->IsValidWidget(m_pListBox.get())) {
|
| m_pListBox->SetThemeProvider(pThemeProvider);
|
| }
|
| - if (m_pEdit && pThemeProvider->IsValidWidget(m_pEdit)) {
|
| + if (m_pEdit && pThemeProvider->IsValidWidget(m_pEdit.get())) {
|
| m_pEdit->SetThemeProvider(pThemeProvider);
|
| }
|
| return FWL_ERR_Succeeded;
|
| @@ -826,9 +811,7 @@ FX_BOOL CFWL_ComboBoxImp::EditUndo(const CFX_ByteStringC& bsRecord) {
|
| return m_pEdit->Undo(bsRecord);
|
| }
|
| IFWL_ListBox* CFWL_ComboBoxImp::GetListBoxt() {
|
| - if (!m_pListBox)
|
| - return FALSE;
|
| - return m_pListBox;
|
| + return m_pListBox.get();
|
| }
|
| FX_BOOL CFWL_ComboBoxImp::AfterFocusShowDropList() {
|
| if (!m_bNeedShowList) {
|
| @@ -1072,12 +1055,13 @@ void CFWL_ComboBoxImp::ReSetTheme() {
|
| m_pProperties->m_pThemeProvider = pTheme;
|
| }
|
| if (m_pListBox) {
|
| - if (!m_pListBox->GetThemeProvider() && pTheme->IsValidWidget(m_pListBox)) {
|
| + if (!m_pListBox->GetThemeProvider() &&
|
| + pTheme->IsValidWidget(m_pListBox.get())) {
|
| m_pListBox->SetThemeProvider(pTheme);
|
| }
|
| }
|
| if (m_pEdit) {
|
| - if (!m_pEdit->GetThemeProvider() && pTheme->IsValidWidget(m_pEdit)) {
|
| + if (!m_pEdit->GetThemeProvider() && pTheme->IsValidWidget(m_pEdit.get())) {
|
| m_pEdit->SetThemeProvider(pTheme);
|
| }
|
| }
|
| @@ -1171,8 +1155,8 @@ void CFWL_ComboBoxImp::InitProxyForm() {
|
| propForm.m_pOwner = m_pInterface;
|
| propForm.m_dwStyles = FWL_WGTSTYLE_Popup;
|
| propForm.m_dwStates = FWL_WGTSTATE_Invisible;
|
| - m_pProxy = new CFWL_FormProxyImp(propForm, m_pListBox);
|
| - m_pForm = IFWL_Form::Create();
|
| + m_pProxy = new CFWL_FormProxyImp(propForm, m_pListBox.get());
|
| + m_pForm = new IFWL_Form;
|
| m_pProxy->SetInterface(m_pForm);
|
| m_pForm->SetImpl(m_pProxy);
|
| m_pProxy->Initialize();
|
| @@ -1199,8 +1183,8 @@ void CFWL_ComboBoxImp::DisForm_InitComboList() {
|
| prop.m_pDataProvider = m_pProperties->m_pDataProvider;
|
| prop.m_pThemeProvider = m_pProperties->m_pThemeProvider;
|
| CFWL_ComboListImp* pList = new CFWL_ComboListImp(prop, m_pInterface);
|
| - m_pListBox = IFWL_ListBox::Create();
|
| - pList->SetInterface(m_pListBox);
|
| + m_pListBox.reset(new IFWL_ListBox);
|
| + pList->SetInterface(m_pListBox.get());
|
| m_pListBox->SetImpl(pList);
|
| pList->Initialize();
|
| }
|
| @@ -1214,8 +1198,8 @@ void CFWL_ComboBoxImp::DisForm_InitComboEdit() {
|
| if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_DropDown) == 0) {
|
| }
|
| CFWL_ComboEditImp* pEdit = new CFWL_ComboEditImp(prop, m_pInterface);
|
| - m_pEdit = IFWL_Edit::Create();
|
| - pEdit->SetInterface(m_pEdit);
|
| + m_pEdit.reset(new IFWL_Edit);
|
| + pEdit->SetInterface(m_pEdit.get());
|
| m_pEdit->SetImpl(pEdit);
|
| pEdit->Initialize();
|
| pEdit->SetOuter(m_pInterface);
|
| @@ -1493,7 +1477,7 @@ void CFWL_ComboBoxImpDelegate::OnFocusChanged(CFWL_Message* pMsg,
|
| FX_BOOL bDropDown = m_pOwner->IsDropDownStyle();
|
| if (bSet) {
|
| m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
|
| - if (bDropDown && pSrcTarget != m_pOwner->m_pListBox) {
|
| + if (bDropDown && pSrcTarget != m_pOwner->m_pListBox.get()) {
|
| if (!m_pOwner->m_pEdit)
|
| return;
|
| static_cast<CFWL_ComboEditImp*>(m_pOwner->m_pEdit->GetImpl())
|
| @@ -1503,7 +1487,7 @@ void CFWL_ComboBoxImpDelegate::OnFocusChanged(CFWL_Message* pMsg,
|
| }
|
| } else {
|
| m_pOwner->m_pProperties->m_dwStates &= ~FWL_WGTSTATE_Focused;
|
| - if (bDropDown && pDstTarget != m_pOwner->m_pListBox) {
|
| + if (bDropDown && pDstTarget != m_pOwner->m_pListBox.get()) {
|
| if (!m_pOwner->m_pEdit)
|
| return;
|
| static_cast<CFWL_ComboEditImp*>(m_pOwner->m_pEdit->GetImpl())
|
| @@ -1713,7 +1697,7 @@ void CFWL_ComboBoxImpDelegate::DisForm_OnFocusChanged(CFWL_Message* pMsg,
|
| m_pOwner->m_pProperties->m_dwStates |= FWL_WGTSTATE_Focused;
|
| if ((m_pOwner->m_pEdit->GetStates() & FWL_WGTSTATE_Focused) == 0) {
|
| CFWL_MsgSetFocus msg;
|
| - msg.m_pDstTarget = m_pOwner->m_pEdit;
|
| + msg.m_pDstTarget = m_pOwner->m_pEdit.get();
|
| msg.m_pSrcTarget = NULL;
|
| IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL);
|
| pDelegate->OnProcessMessage(&msg);
|
| @@ -1723,7 +1707,7 @@ void CFWL_ComboBoxImpDelegate::DisForm_OnFocusChanged(CFWL_Message* pMsg,
|
| m_pOwner->DisForm_ShowDropList(FALSE);
|
| CFWL_MsgKillFocus msg;
|
| msg.m_pDstTarget = NULL;
|
| - msg.m_pSrcTarget = m_pOwner->m_pEdit;
|
| + msg.m_pSrcTarget = m_pOwner->m_pEdit.get();
|
| IFWL_WidgetDelegate* pDelegate = m_pOwner->m_pEdit->SetDelegate(NULL);
|
| pDelegate->OnProcessMessage(&msg);
|
| }
|
|
|