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

Side by Side Diff: xfa/fwl/core/cfwl_listbox.cpp

Issue 2467503003: Remove GetWidget() overrides (Closed)
Patch Set: Created 4 years, 1 month 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 unified diff | Download patch
« no previous file with comments | « xfa/fwl/core/cfwl_listbox.h ('k') | xfa/fwl/core/cfwl_picturebox.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include "xfa/fwl/core/cfwl_listbox.h" 7 #include "xfa/fwl/core/cfwl_listbox.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
11 #include "third_party/base/stl_util.h" 11 #include "third_party/base/stl_util.h"
12 12
13 namespace {
14
15 IFWL_ListBox* ToListBox(IFWL_Widget* widget) {
16 return static_cast<IFWL_ListBox*>(widget);
17 }
18
19 } // namespace
20
13 CFWL_ListBox::CFWL_ListBox(const IFWL_App* app) : CFWL_Widget(app) {} 21 CFWL_ListBox::CFWL_ListBox(const IFWL_App* app) : CFWL_Widget(app) {}
14 22
15 CFWL_ListBox::~CFWL_ListBox() {} 23 CFWL_ListBox::~CFWL_ListBox() {}
16 24
17 void CFWL_ListBox::Initialize() { 25 void CFWL_ListBox::Initialize() {
18 ASSERT(!m_pIface); 26 ASSERT(!m_pIface);
19 27
20 std::unique_ptr<IFWL_ListBox> pListBox(new IFWL_ListBox( 28 std::unique_ptr<IFWL_ListBox> pListBox(new IFWL_ListBox(
21 m_pApp, m_pProperties->MakeWidgetImpProperties(&m_ListBoxDP), nullptr)); 29 m_pApp, m_pProperties->MakeWidgetImpProperties(&m_ListBoxDP), nullptr));
22 pListBox->Initialize(); 30 pListBox->Initialize();
23 31
24 m_pIface = std::move(pListBox); 32 m_pIface = std::move(pListBox);
25 CFWL_Widget::Initialize(); 33 CFWL_Widget::Initialize();
26 } 34 }
27 35
28 IFWL_ListBox* CFWL_ListBox::GetWidget() {
29 return static_cast<IFWL_ListBox*>(m_pIface.get());
30 }
31
32 const IFWL_ListBox* CFWL_ListBox::GetWidget() const {
33 return static_cast<IFWL_ListBox*>(m_pIface.get());
34 }
35
36 FWL_Error CFWL_ListBox::AddDIBitmap(CFX_DIBitmap* pDIB, IFWL_ListItem* pItem) { 36 FWL_Error CFWL_ListBox::AddDIBitmap(CFX_DIBitmap* pDIB, IFWL_ListItem* pItem) {
37 static_cast<CFWL_ListItem*>(pItem)->m_pDIB = pDIB; 37 static_cast<CFWL_ListItem*>(pItem)->m_pDIB = pDIB;
38 return FWL_Error::Succeeded; 38 return FWL_Error::Succeeded;
39 } 39 }
40 40
41 IFWL_ListItem* CFWL_ListBox::AddString(const CFX_WideStringC& wsAdd, 41 IFWL_ListItem* CFWL_ListBox::AddString(const CFX_WideStringC& wsAdd,
42 FX_BOOL bSelect) { 42 FX_BOOL bSelect) {
43 std::unique_ptr<CFWL_ListItem> pItem(new CFWL_ListItem); 43 std::unique_ptr<CFWL_ListItem> pItem(new CFWL_ListItem);
44 pItem->m_dwStates = 0; 44 pItem->m_dwStates = 0;
45 pItem->m_wsText = wsAdd; 45 pItem->m_wsText = wsAdd;
(...skipping 25 matching lines...) Expand all
71 return TRUE; 71 return TRUE;
72 } 72 }
73 73
74 void CFWL_ListBox::DeleteAll() { 74 void CFWL_ListBox::DeleteAll() {
75 m_ListBoxDP.m_ItemArray.clear(); 75 m_ListBoxDP.m_ItemArray.clear();
76 } 76 }
77 77
78 int32_t CFWL_ListBox::CountSelItems() { 78 int32_t CFWL_ListBox::CountSelItems() {
79 if (!GetWidget()) 79 if (!GetWidget())
80 return 0; 80 return 0;
81 return GetWidget()->CountSelItems(); 81 return ToListBox(GetWidget())->CountSelItems();
82 } 82 }
83 83
84 IFWL_ListItem* CFWL_ListBox::GetSelItem(int32_t nIndexSel) { 84 IFWL_ListItem* CFWL_ListBox::GetSelItem(int32_t nIndexSel) {
85 if (!GetWidget()) 85 if (!GetWidget())
86 return nullptr; 86 return nullptr;
87 return GetWidget()->GetSelItem(nIndexSel); 87 return ToListBox(GetWidget())->GetSelItem(nIndexSel);
88 } 88 }
89 89
90 int32_t CFWL_ListBox::GetSelIndex(int32_t nIndex) { 90 int32_t CFWL_ListBox::GetSelIndex(int32_t nIndex) {
91 if (!GetWidget()) 91 if (!GetWidget())
92 return 0; 92 return 0;
93 return GetWidget()->GetSelIndex(nIndex); 93 return ToListBox(GetWidget())->GetSelIndex(nIndex);
94 } 94 }
95 95
96 FWL_Error CFWL_ListBox::SetSelItem(IFWL_ListItem* pItem, FX_BOOL bSelect) { 96 FWL_Error CFWL_ListBox::SetSelItem(IFWL_ListItem* pItem, FX_BOOL bSelect) {
97 if (!GetWidget()) 97 if (!GetWidget())
98 return FWL_Error::Indefinite; 98 return FWL_Error::Indefinite;
99 return GetWidget()->SetSelItem(pItem, bSelect); 99 return ToListBox(GetWidget())->SetSelItem(pItem, bSelect);
100 } 100 }
101 101
102 FWL_Error CFWL_ListBox::GetItemText(IFWL_ListItem* pItem, 102 FWL_Error CFWL_ListBox::GetItemText(IFWL_ListItem* pItem,
103 CFX_WideString& wsText) { 103 CFX_WideString& wsText) {
104 if (!GetWidget()) 104 if (!GetWidget())
105 return FWL_Error::Indefinite; 105 return FWL_Error::Indefinite;
106 return GetWidget()->GetItemText(pItem, wsText); 106 return ToListBox(GetWidget())->GetItemText(pItem, wsText);
107 } 107 }
108 108
109 FWL_Error CFWL_ListBox::GetScrollPos(FX_FLOAT& fPos, FX_BOOL bVert) { 109 FWL_Error CFWL_ListBox::GetScrollPos(FX_FLOAT& fPos, FX_BOOL bVert) {
110 if (!GetWidget()) 110 if (!GetWidget())
111 return FWL_Error::Indefinite; 111 return FWL_Error::Indefinite;
112 return GetWidget()->GetScrollPos(fPos, bVert); 112 return ToListBox(GetWidget())->GetScrollPos(fPos, bVert);
113 } 113 }
114 114
115 FWL_Error CFWL_ListBox::SetItemHeight(FX_FLOAT fItemHeight) { 115 FWL_Error CFWL_ListBox::SetItemHeight(FX_FLOAT fItemHeight) {
116 m_ListBoxDP.m_fItemHeight = fItemHeight; 116 m_ListBoxDP.m_fItemHeight = fItemHeight;
117 return FWL_Error::Succeeded; 117 return FWL_Error::Succeeded;
118 } 118 }
119 119
120 IFWL_ListItem* CFWL_ListBox::GetFocusItem() { 120 IFWL_ListItem* CFWL_ListBox::GetFocusItem() {
121 for (const auto& pItem : m_ListBoxDP.m_ItemArray) { 121 for (const auto& pItem : m_ListBoxDP.m_ItemArray) {
122 if (pItem->m_dwStates & FWL_ITEMSTATE_LTB_Focused) 122 if (pItem->m_dwStates & FWL_ITEMSTATE_LTB_Focused)
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 return pItem ? static_cast<CFWL_ListItem*>(pItem)->m_pData : nullptr; 169 return pItem ? static_cast<CFWL_ListItem*>(pItem)->m_pData : nullptr;
170 } 170 }
171 171
172 IFWL_ListItem* CFWL_ListBox::GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy) { 172 IFWL_ListItem* CFWL_ListBox::GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy) {
173 CFX_RectF rtClient; 173 CFX_RectF rtClient;
174 GetWidget()->GetClientRect(rtClient); 174 GetWidget()->GetClientRect(rtClient);
175 fx -= rtClient.left; 175 fx -= rtClient.left;
176 fy -= rtClient.top; 176 fy -= rtClient.top;
177 FX_FLOAT fPosX = 0; 177 FX_FLOAT fPosX = 0;
178 FX_FLOAT fPosY = 0; 178 FX_FLOAT fPosY = 0;
179 GetWidget()->GetScrollPos(fx); 179 ToListBox(GetWidget())->GetScrollPos(fx);
180 GetWidget()->GetScrollPos(fy, FALSE); 180 ToListBox(GetWidget())->GetScrollPos(fy, FALSE);
181 int32_t nCount = m_ListBoxDP.CountItems(nullptr); 181 int32_t nCount = m_ListBoxDP.CountItems(nullptr);
182 for (int32_t i = 0; i < nCount; i++) { 182 for (int32_t i = 0; i < nCount; i++) {
183 IFWL_ListItem* pItem = m_ListBoxDP.GetItem(nullptr, i); 183 IFWL_ListItem* pItem = m_ListBoxDP.GetItem(nullptr, i);
184 if (!pItem) { 184 if (!pItem) {
185 continue; 185 continue;
186 } 186 }
187 CFX_RectF rtItem; 187 CFX_RectF rtItem;
188 m_ListBoxDP.GetItemRect(nullptr, pItem, rtItem); 188 m_ListBoxDP.GetItemRect(nullptr, pItem, rtItem);
189 rtItem.Offset(-fPosX, -fPosY); 189 rtItem.Offset(-fPosX, -fPosY);
190 if (rtItem.Contains(fx, fy)) { 190 if (rtItem.Contains(fx, fy)) {
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 m_rtItem.Reset(); 340 m_rtItem.Reset();
341 m_dwStates = 0; 341 m_dwStates = 0;
342 m_wsText = L""; 342 m_wsText = L"";
343 m_pDIB = nullptr; 343 m_pDIB = nullptr;
344 m_pData = nullptr; 344 m_pData = nullptr;
345 m_dwCheckState = 0; 345 m_dwCheckState = 0;
346 m_rtCheckBox.Reset(); 346 m_rtCheckBox.Reset();
347 } 347 }
348 348
349 CFWL_ListItem::~CFWL_ListItem() {} 349 CFWL_ListItem::~CFWL_ListItem() {}
OLDNEW
« no previous file with comments | « xfa/fwl/core/cfwl_listbox.h ('k') | xfa/fwl/core/cfwl_picturebox.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698