Index: xfa/fwl/core/ifwl_combobox.cpp |
diff --git a/xfa/fwl/core/ifwl_combobox.cpp b/xfa/fwl/core/ifwl_combobox.cpp |
index edc430a0f24304242879491e301ede471b4993db..dcd2cf850e384b65b7d08ab0225652523caa6322 100644 |
--- a/xfa/fwl/core/ifwl_combobox.cpp |
+++ b/xfa/fwl/core/ifwl_combobox.cpp |
@@ -20,8 +20,9 @@ |
#include "xfa/fwl/core/ifwl_formproxy.h" |
#include "xfa/fwl/core/ifwl_themeprovider.h" |
-IFWL_ComboBox::IFWL_ComboBox(const CFWL_WidgetImpProperties& properties) |
- : IFWL_Widget(properties, nullptr), |
+IFWL_ComboBox::IFWL_ComboBox(const IFWL_App* app, |
+ const CFWL_WidgetImpProperties& properties) |
+ : IFWL_Widget(app, properties, nullptr), |
m_pForm(nullptr), |
m_bLButtonDown(FALSE), |
m_iCurSel(-1), |
@@ -35,18 +36,16 @@ IFWL_ComboBox::IFWL_ComboBox(const CFWL_WidgetImpProperties& properties) |
IFWL_ComboBox::~IFWL_ComboBox() {} |
-FWL_Type IFWL_ComboBox::GetClassID() const { |
- return FWL_Type::ComboBox; |
-} |
- |
-FWL_Error IFWL_ComboBox::Initialize() { |
- if (m_pWidgetMgr->IsFormDisabled()) |
- return DisForm_Initialize(); |
+void IFWL_ComboBox::Initialize() { |
+ IFWL_Widget::Initialize(); |
+ m_pDelegate = new CFWL_ComboBoxImpDelegate(this); |
- if (IFWL_Widget::Initialize() != FWL_Error::Succeeded) |
- return FWL_Error::Indefinite; |
+ if (m_pWidgetMgr->IsFormDisabled()) { |
+ DisForm_InitComboList(); |
+ DisForm_InitComboEdit(); |
+ return; |
+ } |
- m_pDelegate = new CFWL_ComboBoxImpDelegate(this); |
CFWL_WidgetImpProperties prop; |
prop.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
prop.m_dwStyles |= FWL_WGTSTYLE_Border | FWL_WGTSTYLE_VScroll; |
@@ -54,11 +53,11 @@ FWL_Error IFWL_ComboBox::Initialize() { |
prop.m_dwStyleExes |= FWL_STYLEEXT_LTB_Icon; |
prop.m_pDataProvider = m_pProperties->m_pDataProvider; |
- m_pListBox.reset(new IFWL_ComboList(prop, this)); |
+ 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(prop2, this)); |
+ m_pEdit.reset(new IFWL_ComboEdit(m_pOwnerApp, prop2, this)); |
m_pEdit->Initialize(); |
m_pEdit->SetOuter(this); |
} |
@@ -66,7 +65,6 @@ FWL_Error IFWL_ComboBox::Initialize() { |
m_pEdit->SetParent(this); |
SetStates(m_pProperties->m_dwStates); |
- return FWL_Error::Succeeded; |
} |
void IFWL_ComboBox::Finalize() { |
@@ -79,6 +77,10 @@ void IFWL_ComboBox::Finalize() { |
IFWL_Widget::Finalize(); |
} |
+FWL_Type IFWL_ComboBox::GetClassID() const { |
+ return FWL_Type::ComboBox; |
+} |
+ |
FWL_Error IFWL_ComboBox::GetWidgetRect(CFX_RectF& rect, FX_BOOL bAutoSize) { |
if (bAutoSize) { |
rect.Reset(); |
@@ -113,7 +115,7 @@ FWL_Error IFWL_ComboBox::ModifyStylesEx(uint32_t dwStylesExAdded, |
bool bRemoveDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown); |
if (bAddDropDown && !m_pEdit) { |
CFWL_WidgetImpProperties prop; |
- m_pEdit.reset(new IFWL_ComboEdit(prop, nullptr)); |
+ m_pEdit.reset(new IFWL_ComboEdit(m_pOwnerApp, prop, nullptr)); |
m_pEdit->Initialize(); |
m_pEdit->SetOuter(this); |
m_pEdit->SetParent(this); |
@@ -712,23 +714,13 @@ void IFWL_ComboBox::InitProxyForm() { |
propForm.m_dwStyles = FWL_WGTSTYLE_Popup; |
propForm.m_dwStates = FWL_WGTSTATE_Invisible; |
- m_pForm = new IFWL_FormProxy(propForm, m_pListBox.get()); |
+ 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->SetDelegate(m_pListProxyDelegate); |
} |
-FWL_Error IFWL_ComboBox::DisForm_Initialize() { |
- if (IFWL_Widget::Initialize() != FWL_Error::Succeeded) |
- return FWL_Error::Indefinite; |
- |
- m_pDelegate = new CFWL_ComboBoxImpDelegate(this); |
- DisForm_InitComboList(); |
- DisForm_InitComboEdit(); |
- return FWL_Error::Succeeded; |
-} |
- |
void IFWL_ComboBox::DisForm_InitComboList() { |
if (m_pListBox) |
return; |
@@ -739,18 +731,18 @@ void IFWL_ComboBox::DisForm_InitComboList() { |
prop.m_dwStates = FWL_WGTSTATE_Invisible; |
prop.m_pDataProvider = m_pProperties->m_pDataProvider; |
prop.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pListBox.reset(new IFWL_ComboList(prop, this)); |
+ m_pListBox.reset(new IFWL_ComboList(m_pOwnerApp, prop, this)); |
m_pListBox->Initialize(); |
} |
void IFWL_ComboBox::DisForm_InitComboEdit() { |
- if (m_pEdit) { |
+ if (m_pEdit) |
return; |
- } |
+ |
CFWL_WidgetImpProperties prop; |
prop.m_pParent = this; |
prop.m_pThemeProvider = m_pProperties->m_pThemeProvider; |
- m_pEdit.reset(new IFWL_ComboEdit(prop, this)); |
+ m_pEdit.reset(new IFWL_ComboEdit(m_pOwnerApp, prop, this)); |
m_pEdit->Initialize(); |
m_pEdit->SetOuter(this); |
} |
@@ -807,9 +799,9 @@ FX_BOOL IFWL_ComboBox::DisForm_IsDropListShowed() { |
FWL_Error IFWL_ComboBox::DisForm_ModifyStylesEx(uint32_t dwStylesExAdded, |
uint32_t dwStylesExRemoved) { |
- if (!m_pEdit) { |
+ if (!m_pEdit) |
DisForm_InitComboEdit(); |
- } |
+ |
bool bAddDropDown = !!(dwStylesExAdded & FWL_STYLEEXT_CMB_DropDown); |
bool bDelDropDown = !!(dwStylesExRemoved & FWL_STYLEEXT_CMB_DropDown); |
dwStylesExRemoved &= ~FWL_STYLEEXT_CMB_DropDown; |
@@ -1376,7 +1368,7 @@ void CFWL_ComboProxyImpDelegate::OnDrawWidget(CFX_Graphics* pGraphics, |
} |
void CFWL_ComboProxyImpDelegate::OnLButtonDown(CFWL_MsgMouse* pMsg) { |
- IFWL_App* pApp = m_pForm->GetOwnerApp(); |
+ const IFWL_App* pApp = m_pForm->GetOwnerApp(); |
if (!pApp) |
return; |
@@ -1397,7 +1389,7 @@ void CFWL_ComboProxyImpDelegate::OnLButtonDown(CFWL_MsgMouse* pMsg) { |
void CFWL_ComboProxyImpDelegate::OnLButtonUp(CFWL_MsgMouse* pMsg) { |
m_bLButtonDown = FALSE; |
- IFWL_App* pApp = m_pForm->GetOwnerApp(); |
+ const IFWL_App* pApp = m_pForm->GetOwnerApp(); |
if (!pApp) |
return; |