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

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

Issue 2486333004: Remove IFWL methods proxied from CFWL classes (Closed)
Patch Set: Rebase to master 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
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
(...skipping 14 matching lines...) Expand all
25 25
26 void CFWL_ListBox::Initialize() { 26 void CFWL_ListBox::Initialize() {
27 ASSERT(!m_pIface); 27 ASSERT(!m_pIface);
28 28
29 m_pIface = pdfium::MakeUnique<IFWL_ListBox>( 29 m_pIface = pdfium::MakeUnique<IFWL_ListBox>(
30 m_pApp, pdfium::MakeUnique<CFWL_WidgetProperties>(this), nullptr); 30 m_pApp, pdfium::MakeUnique<CFWL_WidgetProperties>(this), nullptr);
31 31
32 CFWL_Widget::Initialize(); 32 CFWL_Widget::Initialize();
33 } 33 }
34 34
35 FWL_Error CFWL_ListBox::AddDIBitmap(CFX_DIBitmap* pDIB, CFWL_ListItem* pItem) {
36 static_cast<CFWL_ListItem*>(pItem)->m_pDIB = pDIB;
37 return FWL_Error::Succeeded;
38 }
39
40 CFWL_ListItem* CFWL_ListBox::AddString(const CFX_WideStringC& wsAdd, 35 CFWL_ListItem* CFWL_ListBox::AddString(const CFX_WideStringC& wsAdd,
41 bool bSelect) { 36 bool bSelect) {
42 std::unique_ptr<CFWL_ListItem> pItem(new CFWL_ListItem); 37 std::unique_ptr<CFWL_ListItem> pItem(new CFWL_ListItem);
43 pItem->m_dwStates = 0; 38 pItem->m_dwStates = 0;
44 pItem->m_wsText = wsAdd; 39 pItem->m_wsText = wsAdd;
45 pItem->m_dwStates = bSelect ? FWL_ITEMSTATE_LTB_Selected : 0; 40 pItem->m_dwStates = bSelect ? FWL_ITEMSTATE_LTB_Selected : 0;
46 m_ItemArray.push_back(std::move(pItem)); 41 m_ItemArray.push_back(std::move(pItem));
47 return m_ItemArray.back().get(); 42 return m_ItemArray.back().get();
48 } 43 }
49 44
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
99 void CFWL_ListBox::GetItemText(CFWL_ListItem* pItem, CFX_WideString& wsText) { 94 void CFWL_ListBox::GetItemText(CFWL_ListItem* pItem, CFX_WideString& wsText) {
100 if (GetWidget()) 95 if (GetWidget())
101 ToListBox(GetWidget())->GetItemText(pItem, wsText); 96 ToListBox(GetWidget())->GetItemText(pItem, wsText);
102 } 97 }
103 98
104 void CFWL_ListBox::GetScrollPos(FX_FLOAT& fPos, bool bVert) { 99 void CFWL_ListBox::GetScrollPos(FX_FLOAT& fPos, bool bVert) {
105 if (GetWidget()) 100 if (GetWidget())
106 ToListBox(GetWidget())->GetScrollPos(fPos, bVert); 101 ToListBox(GetWidget())->GetScrollPos(fPos, bVert);
107 } 102 }
108 103
109 FWL_Error CFWL_ListBox::SetItemHeight(FX_FLOAT fItemHeight) {
110 m_fItemHeight = fItemHeight;
111 return FWL_Error::Succeeded;
112 }
113
114 CFWL_ListItem* CFWL_ListBox::GetFocusItem() {
115 for (const auto& pItem : m_ItemArray) {
116 if (pItem->m_dwStates & FWL_ITEMSTATE_LTB_Focused)
117 return pItem.get();
118 }
119 return nullptr;
120 }
121
122 FWL_Error CFWL_ListBox::SetFocusItem(CFWL_ListItem* pItem) {
123 int32_t nIndex = GetItemIndex(GetWidget(), pItem);
124 m_ItemArray[nIndex]->m_dwStates |= FWL_ITEMSTATE_LTB_Focused;
125 return FWL_Error::Succeeded;
126 }
127
128 int32_t CFWL_ListBox::CountItems() { 104 int32_t CFWL_ListBox::CountItems() {
129 return pdfium::CollectionSize<int32_t>(m_ItemArray); 105 return pdfium::CollectionSize<int32_t>(m_ItemArray);
130 } 106 }
131 107
132 CFWL_ListItem* CFWL_ListBox::GetItem(int32_t nIndex) { 108 CFWL_ListItem* CFWL_ListBox::GetItem(int32_t nIndex) {
133 if (nIndex < 0 || nIndex >= CountItems()) 109 if (nIndex < 0 || nIndex >= CountItems())
134 return nullptr; 110 return nullptr;
135 111
136 return m_ItemArray[nIndex].get(); 112 return m_ItemArray[nIndex].get();
137 } 113 }
138 114
139 FWL_Error CFWL_ListBox::SetItemString(CFWL_ListItem* pItem,
140 const CFX_WideStringC& wsText) {
141 if (!pItem)
142 return FWL_Error::Indefinite;
143 static_cast<CFWL_ListItem*>(pItem)->m_wsText = wsText;
144 return FWL_Error::Succeeded;
145 }
146
147 FWL_Error CFWL_ListBox::GetItemString(CFWL_ListItem* pItem,
148 CFX_WideString& wsText) {
149 if (!pItem)
150 return FWL_Error::Indefinite;
151 wsText = static_cast<CFWL_ListItem*>(pItem)->m_wsText;
152 return FWL_Error::Succeeded;
153 }
154
155 FWL_Error CFWL_ListBox::SetItemData(CFWL_ListItem* pItem, void* pData) {
156 if (!pItem)
157 return FWL_Error::Indefinite;
158 static_cast<CFWL_ListItem*>(pItem)->m_pData = pData;
159 return FWL_Error::Succeeded;
160 }
161
162 void* CFWL_ListBox::GetItemData(CFWL_ListItem* pItem) {
163 return pItem ? static_cast<CFWL_ListItem*>(pItem)->m_pData : nullptr;
164 }
165
166 CFWL_ListItem* CFWL_ListBox::GetItemAtPoint(FX_FLOAT fx, FX_FLOAT fy) {
167 CFX_RectF rtClient;
168 GetWidget()->GetClientRect(rtClient);
169 fx -= rtClient.left;
170 fy -= rtClient.top;
171 FX_FLOAT fPosX = 0;
172 FX_FLOAT fPosY = 0;
173 ToListBox(GetWidget())->GetScrollPos(fx);
174 ToListBox(GetWidget())->GetScrollPos(fy, false);
175 int32_t nCount = CountItems(nullptr);
176 for (int32_t i = 0; i < nCount; i++) {
177 CFWL_ListItem* pItem = GetItem(nullptr, i);
178 if (!pItem) {
179 continue;
180 }
181 CFX_RectF rtItem;
182 GetItemRect(nullptr, pItem, rtItem);
183 rtItem.Offset(-fPosX, -fPosY);
184 if (rtItem.Contains(fx, fy)) {
185 return pItem;
186 }
187 }
188 return nullptr;
189 }
190
191 uint32_t CFWL_ListBox::GetItemStates(CFWL_ListItem* pItem) { 115 uint32_t CFWL_ListBox::GetItemStates(CFWL_ListItem* pItem) {
192 if (!pItem) 116 if (!pItem)
193 return 0; 117 return 0;
194 CFWL_ListItem* pListItem = static_cast<CFWL_ListItem*>(pItem); 118 CFWL_ListItem* pListItem = static_cast<CFWL_ListItem*>(pItem);
195 return pListItem->m_dwStates | pListItem->m_dwCheckState; 119 return pListItem->m_dwStates | pListItem->m_dwCheckState;
196 } 120 }
197 121
198 FWL_Error CFWL_ListBox::GetCaption(IFWL_Widget* pWidget, 122 FWL_Error CFWL_ListBox::GetCaption(IFWL_Widget* pWidget,
199 CFX_WideString& wsCaption) { 123 CFX_WideString& wsCaption) {
200 wsCaption = m_wsData; 124 wsCaption = L"";
201 return FWL_Error::Succeeded; 125 return FWL_Error::Succeeded;
202 } 126 }
203 127
204 int32_t CFWL_ListBox::CountItems(const IFWL_Widget* pWidget) { 128 int32_t CFWL_ListBox::CountItems(const IFWL_Widget* pWidget) {
205 return pdfium::CollectionSize<int32_t>(m_ItemArray); 129 return pdfium::CollectionSize<int32_t>(m_ItemArray);
206 } 130 }
207 131
208 CFWL_ListItem* CFWL_ListBox::GetItem(const IFWL_Widget* pWidget, 132 CFWL_ListItem* CFWL_ListBox::GetItem(const IFWL_Widget* pWidget,
209 int32_t nIndex) { 133 int32_t nIndex) {
210 if (nIndex < 0 || nIndex >= CountItems(pWidget)) 134 if (nIndex < 0 || nIndex >= CountItems(pWidget))
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 } 195 }
272 196
273 void CFWL_ListBox::SetItemRect(IFWL_Widget* pWidget, 197 void CFWL_ListBox::SetItemRect(IFWL_Widget* pWidget,
274 CFWL_ListItem* pItem, 198 CFWL_ListItem* pItem,
275 const CFX_RectF& rtItem) { 199 const CFX_RectF& rtItem) {
276 if (pItem) 200 if (pItem)
277 static_cast<CFWL_ListItem*>(pItem)->m_rtItem = rtItem; 201 static_cast<CFWL_ListItem*>(pItem)->m_rtItem = rtItem;
278 } 202 }
279 203
280 FX_FLOAT CFWL_ListBox::GetItemHeight(IFWL_Widget* pWidget) { 204 FX_FLOAT CFWL_ListBox::GetItemHeight(IFWL_Widget* pWidget) {
281 return m_fItemHeight; 205 return 20;
npm 2016/11/10 19:12:06 Isn't 0 better?
282 } 206 }
283 207
284 CFX_DIBitmap* CFWL_ListBox::GetItemIcon(IFWL_Widget* pWidget, 208 CFX_DIBitmap* CFWL_ListBox::GetItemIcon(IFWL_Widget* pWidget,
285 CFWL_ListItem* pItem) { 209 CFWL_ListItem* pItem) {
286 return static_cast<CFWL_ListItem*>(pItem)->m_pDIB; 210 return static_cast<CFWL_ListItem*>(pItem)->m_pDIB;
287 } 211 }
288 212
289 void CFWL_ListBox::GetItemCheckRect(IFWL_Widget* pWidget, 213 void CFWL_ListBox::GetItemCheckRect(IFWL_Widget* pWidget,
290 CFWL_ListItem* pItem, 214 CFWL_ListItem* pItem,
291 CFX_RectF& rtCheck) { 215 CFX_RectF& rtCheck) {
292 rtCheck = static_cast<CFWL_ListItem*>(pItem)->m_rtCheckBox; 216 rtCheck = static_cast<CFWL_ListItem*>(pItem)->m_rtCheckBox;
293 } 217 }
294 218
295 void CFWL_ListBox::SetItemCheckRect(IFWL_Widget* pWidget, 219 void CFWL_ListBox::SetItemCheckRect(IFWL_Widget* pWidget,
296 CFWL_ListItem* pItem, 220 CFWL_ListItem* pItem,
297 const CFX_RectF& rtCheck) { 221 const CFX_RectF& rtCheck) {
298 static_cast<CFWL_ListItem*>(pItem)->m_rtCheckBox = rtCheck; 222 static_cast<CFWL_ListItem*>(pItem)->m_rtCheckBox = rtCheck;
299 } 223 }
300 224
301 uint32_t CFWL_ListBox::GetItemCheckState(IFWL_Widget* pWidget, 225 uint32_t CFWL_ListBox::GetItemCheckState(IFWL_Widget* pWidget,
302 CFWL_ListItem* pItem) { 226 CFWL_ListItem* pItem) {
303 return static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState; 227 return static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState;
304 } 228 }
305 229
306 void CFWL_ListBox::SetItemCheckState(IFWL_Widget* pWidget, 230 void CFWL_ListBox::SetItemCheckState(IFWL_Widget* pWidget,
307 CFWL_ListItem* pItem, 231 CFWL_ListItem* pItem,
308 uint32_t dwCheckState) { 232 uint32_t dwCheckState) {
309 static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState = dwCheckState; 233 static_cast<CFWL_ListItem*>(pItem)->m_dwCheckState = dwCheckState;
310 } 234 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698