Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(507)

Unified Diff: xfa/src/fwl/src/basewidget/fwl_listboximp.cpp

Issue 1453473002: FWL refcounts never incremented (part 2). (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@xfa
Patch Set: Rebased Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: xfa/src/fwl/src/basewidget/fwl_listboximp.cpp
diff --git a/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp b/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp
index 24ec699d109cacc91b61f4ad5c7518c1ed37a131..3ef6b443cef6b90b878900b147645ed684a3e360 100644
--- a/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp
+++ b/xfa/src/fwl/src/basewidget/fwl_listboximp.cpp
@@ -10,16 +10,30 @@
#include "../core/include/fwl_widgetimp.h"
#include "include/fwl_scrollbarimp.h"
#include "include/fwl_listboximp.h"
+#include "include/fwl_comboboximp.h"
+
#define FWL_LISTBOX_ItemTextMargin 2
-IFWL_ListBox::IFWL_ListBox() {
-}
-FWL_ERR IFWL_ListBox::Initialize(const CFWL_WidgetImpProperties& properties,
- IFWL_Widget* pOuter) {
+
+// static
+IFWL_ListBox* IFWL_ListBox::Create(const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter) {
+ IFWL_ListBox* pListBox = new IFWL_ListBox;
CFWL_ListBoxImp* pListBoxImpl = new CFWL_ListBoxImp(properties, pOuter);
- SetImpl(pListBoxImpl);
- pListBoxImpl->SetInterface(this);
- return pListBoxImpl->Initialize();
+ pListBox->SetImpl(pListBoxImpl);
+ pListBoxImpl->SetInterface(pListBox);
+ return pListBox;
+}
+// static
+IFWL_ListBox* IFWL_ListBox::CreateComboList(
+ const CFWL_WidgetImpProperties& properties,
+ IFWL_Widget* pOuter) {
+ IFWL_ListBox* pListBox = new IFWL_ListBox;
+ CFWL_ListBoxImp* pComboListImpl = new CFWL_ComboListImp(properties, pOuter);
+ pListBox->SetImpl(pComboListImpl);
+ pComboListImpl->SetInterface(pListBox);
+ return pListBox;
}
+IFWL_ListBox::IFWL_ListBox() {}
int32_t IFWL_ListBox::CountSelItems() {
return static_cast<CFWL_ListBoxImp*>(GetImpl())->CountSelItems();
}
@@ -41,18 +55,7 @@ FWL_ERR IFWL_ListBox::GetScrollPos(FX_FLOAT& fPos, FX_BOOL bVert) {
FWL_ERR* IFWL_ListBox::Sort(IFWL_ListBoxCompare* pCom) {
return static_cast<CFWL_ListBoxImp*>(GetImpl())->Sort(pCom);
}
-CFWL_ListBoxImp::CFWL_ListBoxImp(IFWL_Widget* pOuter)
- : CFWL_WidgetImp(pOuter),
- m_dwTTOStyles(0),
- m_iTTOAligns(0),
- m_hAnchor(NULL),
- m_fScorllBarWidth(0),
- m_bLButtonDown(FALSE),
- m_pScrollBarTP(NULL) {
- m_rtClient.Reset();
- m_rtConent.Reset();
- m_rtStatic.Reset();
-}
+
CFWL_ListBoxImp::CFWL_ListBoxImp(const CFWL_WidgetImpProperties& properties,
IFWL_Widget* pOuter)
: CFWL_WidgetImp(properties, pOuter),
@@ -945,8 +948,8 @@ void CFWL_ListBoxImp::InitScrollBar(FX_BOOL bVert) {
prop.m_dwStates = FWL_WGTSTATE_Invisible;
prop.m_pParent = m_pInterface;
prop.m_pThemeProvider = m_pScrollBarTP;
- 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_ListBoxImp::SortItem() {}
« no previous file with comments | « xfa/src/fwl/src/basewidget/fwl_formproxyimp.cpp ('k') | xfa/src/fwl/src/basewidget/fwl_monthcalendarimp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698