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

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

Issue 2520413002: Rename common methods between ifwl and cfwl. (Closed)
Patch Set: Created 4 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 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/ifwl_combobox.h" 7 #include "xfa/fwl/core/ifwl_combobox.h"
8 8
9 #include <algorithm> 9 #include <algorithm>
10 #include <memory> 10 #include <memory>
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
200 200
201 if (m_iCurSel >= 0) { 201 if (m_iCurSel >= 0) {
202 if (!m_pListBox) 202 if (!m_pListBox)
203 return; 203 return;
204 204
205 CFX_WideString wsText; 205 CFX_WideString wsText;
206 IFWL_ComboBox::DataProvider* pData = 206 IFWL_ComboBox::DataProvider* pData =
207 static_cast<IFWL_ComboBox::DataProvider*>( 207 static_cast<IFWL_ComboBox::DataProvider*>(
208 m_pProperties->m_pDataProvider); 208 m_pProperties->m_pDataProvider);
209 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel); 209 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel);
210 m_pListBox->GetItemText(hItem, wsText); 210 m_pListBox->GetDataProviderItemText(hItem, wsText);
211 211
212 CFWL_ThemeText theme_text; 212 CFWL_ThemeText theme_text;
213 theme_text.m_pWidget = this; 213 theme_text.m_pWidget = this;
214 theme_text.m_iPart = CFWL_Part::Caption; 214 theme_text.m_iPart = CFWL_Part::Caption;
215 theme_text.m_dwStates = m_iBtnState; 215 theme_text.m_dwStates = m_iBtnState;
216 theme_text.m_pGraphics = pGraphics; 216 theme_text.m_pGraphics = pGraphics;
217 theme_text.m_matrix.Concat(*pMatrix); 217 theme_text.m_matrix.Concat(*pMatrix);
218 theme_text.m_rtPart = rtTextBk; 218 theme_text.m_rtPart = rtTextBk;
219 theme_text.m_dwStates = (m_pProperties->m_dwStates & FWL_WGTSTATE_Focused) 219 theme_text.m_dwStates = (m_pProperties->m_dwStates & FWL_WGTSTATE_Focused)
220 ? CFWL_PartState_Selected 220 ? CFWL_PartState_Selected
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
254 bool bClearSel = iSel < 0 || iSel >= iCount; 254 bool bClearSel = iSel < 0 || iSel >= iCount;
255 if (IsDropDownStyle() && m_pEdit) { 255 if (IsDropDownStyle() && m_pEdit) {
256 if (bClearSel) { 256 if (bClearSel) {
257 m_pEdit->SetText(CFX_WideString()); 257 m_pEdit->SetText(CFX_WideString());
258 } else { 258 } else {
259 CFX_WideString wsText; 259 CFX_WideString wsText;
260 IFWL_ComboBox::DataProvider* pData = 260 IFWL_ComboBox::DataProvider* pData =
261 static_cast<IFWL_ComboBox::DataProvider*>( 261 static_cast<IFWL_ComboBox::DataProvider*>(
262 m_pProperties->m_pDataProvider); 262 m_pProperties->m_pDataProvider);
263 CFWL_ListItem* hItem = pData->GetItem(this, iSel); 263 CFWL_ListItem* hItem = pData->GetItem(this, iSel);
264 m_pListBox->GetItemText(hItem, wsText); 264 m_pListBox->GetDataProviderItemText(hItem, wsText);
265 m_pEdit->SetText(wsText); 265 m_pEdit->SetText(wsText);
266 } 266 }
267 m_pEdit->Update(); 267 m_pEdit->Update();
268 } 268 }
269 m_iCurSel = bClearSel ? -1 : iSel; 269 m_iCurSel = bClearSel ? -1 : iSel;
270 } 270 }
271 271
272 void IFWL_ComboBox::SetStates(uint32_t dwStates, bool bSet) { 272 void IFWL_ComboBox::SetStates(uint32_t dwStates, bool bSet) {
273 if (IsDropDownStyle() && m_pEdit) 273 if (IsDropDownStyle() && m_pEdit)
274 m_pEdit->SetStates(dwStates, bSet); 274 m_pEdit->SetStates(dwStates, bSet);
(...skipping 16 matching lines...) Expand all
291 if (m_pEdit) { 291 if (m_pEdit) {
292 m_pEdit->GetText(wsText, nStart, nCount); 292 m_pEdit->GetText(wsText, nStart, nCount);
293 return; 293 return;
294 } 294 }
295 if (!m_pListBox) 295 if (!m_pListBox)
296 return; 296 return;
297 297
298 IFWL_ComboBox::DataProvider* pData = 298 IFWL_ComboBox::DataProvider* pData =
299 static_cast<IFWL_ComboBox::DataProvider*>(m_pProperties->m_pDataProvider); 299 static_cast<IFWL_ComboBox::DataProvider*>(m_pProperties->m_pDataProvider);
300 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel); 300 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel);
301 m_pListBox->GetItemText(hItem, wsText); 301 m_pListBox->GetDataProviderItemText(hItem, wsText);
302 } 302 }
303 303
304 void IFWL_ComboBox::OpenDropDownList(bool bActivate) { 304 void IFWL_ComboBox::OpenDropDownList(bool bActivate) {
305 ShowDropList(bActivate); 305 ShowDropList(bActivate);
306 } 306 }
307 307
308 void IFWL_ComboBox::GetBBox(CFX_RectF& rect) const { 308 void IFWL_ComboBox::GetBBox(CFX_RectF& rect) const {
309 if (m_pWidgetMgr->IsFormDisabled()) { 309 if (m_pWidgetMgr->IsFormDisabled()) {
310 DisForm_GetBBox(rect); 310 DisForm_GetBBox(rect);
311 return; 311 return;
312 } 312 }
313 313
314 rect = m_pProperties->m_rtWidget; 314 rect = m_pProperties->m_rtWidget;
315 if (!m_pListBox || !IsDropListVisible()) 315 if (!m_pListBox || !IsDropListVisible())
316 return; 316 return;
317 317
318 CFX_RectF rtList; 318 CFX_RectF rtList;
319 m_pListBox->GetWidgetRect(rtList); 319 m_pListBox->GetWidgetRect(rtList);
320 rtList.Offset(rect.left, rect.top); 320 rtList.Offset(rect.left, rect.top);
321 rect.Union(rtList); 321 rect.Union(rtList);
322 } 322 }
323 323
324 void IFWL_ComboBox::EditModifyStylesEx(uint32_t dwStylesExAdded, 324 void IFWL_ComboBox::EditModifyStylesEx(uint32_t dwStylesExAdded,
325 uint32_t dwStylesExRemoved) { 325 uint32_t dwStylesExRemoved) {
326 if (m_pEdit) 326 if (m_pEdit)
327 m_pEdit->ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved); 327 m_pEdit->ModifyStylesEx(dwStylesExAdded, dwStylesExRemoved);
328 } 328 }
329 329
330 FX_FLOAT IFWL_ComboBox::GetListHeight() { 330 FX_FLOAT IFWL_ComboBox::GetDataProviderListHeight() {
331 return static_cast<IFWL_ComboBox::DataProvider*>( 331 return static_cast<IFWL_ComboBox::DataProvider*>(
332 m_pProperties->m_pDataProvider) 332 m_pProperties->m_pDataProvider)
333 ->GetListHeight(this); 333 ->GetListHeight(this);
334 } 334 }
335 335
336 void IFWL_ComboBox::DrawStretchHandler(CFX_Graphics* pGraphics, 336 void IFWL_ComboBox::DrawStretchHandler(CFX_Graphics* pGraphics,
337 const CFX_Matrix* pMatrix) { 337 const CFX_Matrix* pMatrix) {
338 CFWL_ThemeBackground param; 338 CFWL_ThemeBackground param;
339 param.m_pGraphics = pGraphics; 339 param.m_pGraphics = pGraphics;
340 param.m_iPart = CFWL_Part::StretchHandler; 340 param.m_iPart = CFWL_Part::StretchHandler;
(...skipping 23 matching lines...) Expand all
364 return; 364 return;
365 } 365 }
366 366
367 m_pListBox->ChangeSelected(m_iCurSel); 367 m_pListBox->ChangeSelected(m_iCurSel);
368 ResetListItemAlignment(); 368 ResetListItemAlignment();
369 369
370 uint32_t dwStyleAdd = m_pProperties->m_dwStyleExes & 370 uint32_t dwStyleAdd = m_pProperties->m_dwStyleExes &
371 (FWL_STYLEEXT_CMB_Sort | FWL_STYLEEXT_CMB_OwnerDraw); 371 (FWL_STYLEEXT_CMB_Sort | FWL_STYLEEXT_CMB_OwnerDraw);
372 m_pListBox->ModifyStylesEx(dwStyleAdd, 0); 372 m_pListBox->ModifyStylesEx(dwStyleAdd, 0);
373 m_pListBox->GetWidgetRect(m_rtList, true); 373 m_pListBox->GetWidgetRect(m_rtList, true);
374 FX_FLOAT fHeight = GetListHeight(); 374 FX_FLOAT fHeight = GetDataProviderListHeight();
375 if (fHeight > 0 && m_rtList.height > GetListHeight()) { 375 if (fHeight > 0 && m_rtList.height > GetDataProviderListHeight()) {
npm 2016/11/22 16:36:16 Do we need to call this method three times?
dsinclair 2016/11/22 16:42:15 Done.
376 m_rtList.height = GetListHeight(); 376 m_rtList.height = GetDataProviderListHeight();
377 m_pListBox->ModifyStyles(FWL_WGTSTYLE_VScroll, 0); 377 m_pListBox->ModifyStyles(FWL_WGTSTYLE_VScroll, 0);
378 } 378 }
379 379
380 CFX_RectF rtAnchor; 380 CFX_RectF rtAnchor;
381 rtAnchor.Set(0, 0, m_pProperties->m_rtWidget.width, 381 rtAnchor.Set(0, 0, m_pProperties->m_rtWidget.width,
382 m_pProperties->m_rtWidget.height); 382 m_pProperties->m_rtWidget.height);
383 383
384 m_rtList.width = std::max(m_rtList.width, m_rtClient.width); 384 m_rtList.width = std::max(m_rtList.width, m_rtClient.width);
385 m_rtProxy = m_rtList; 385 m_rtProxy = m_rtList;
386 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_ListDrag) 386 if (m_pProperties->m_dwStyleExes & FWL_STYLEEXT_CMB_ListDrag)
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
428 m_pEdit->SetSelected(); 428 m_pEdit->SetSelected();
429 } 429 }
430 m_iCurSel = iMatch; 430 m_iCurSel = iMatch;
431 } 431 }
432 432
433 void IFWL_ComboBox::SyncEditText(int32_t iListItem) { 433 void IFWL_ComboBox::SyncEditText(int32_t iListItem) {
434 CFX_WideString wsText; 434 CFX_WideString wsText;
435 IFWL_ComboBox::DataProvider* pData = 435 IFWL_ComboBox::DataProvider* pData =
436 static_cast<IFWL_ComboBox::DataProvider*>(m_pProperties->m_pDataProvider); 436 static_cast<IFWL_ComboBox::DataProvider*>(m_pProperties->m_pDataProvider);
437 CFWL_ListItem* hItem = pData->GetItem(this, iListItem); 437 CFWL_ListItem* hItem = pData->GetItem(this, iListItem);
438 m_pListBox->GetItemText(hItem, wsText); 438 m_pListBox->GetDataProviderItemText(hItem, wsText);
439 m_pEdit->SetText(wsText); 439 m_pEdit->SetText(wsText);
440 m_pEdit->Update(); 440 m_pEdit->Update();
441 m_pEdit->SetSelected(); 441 m_pEdit->SetSelected();
442 } 442 }
443 443
444 void IFWL_ComboBox::Layout() { 444 void IFWL_ComboBox::Layout() {
445 if (m_pWidgetMgr->IsFormDisabled()) 445 if (m_pWidgetMgr->IsFormDisabled())
446 return DisForm_Layout(); 446 return DisForm_Layout();
447 447
448 GetClientRect(m_rtClient); 448 GetClientRect(m_rtClient);
(...skipping 12 matching lines...) Expand all
461 rtEdit.Set(m_rtClient.left, m_rtClient.top, m_rtClient.width - fBtn, 461 rtEdit.Set(m_rtClient.left, m_rtClient.top, m_rtClient.width - fBtn,
462 m_rtClient.height); 462 m_rtClient.height);
463 m_pEdit->SetWidgetRect(rtEdit); 463 m_pEdit->SetWidgetRect(rtEdit);
464 464
465 if (m_iCurSel >= 0) { 465 if (m_iCurSel >= 0) {
466 CFX_WideString wsText; 466 CFX_WideString wsText;
467 IFWL_ComboBox::DataProvider* pData = 467 IFWL_ComboBox::DataProvider* pData =
468 static_cast<IFWL_ComboBox::DataProvider*>( 468 static_cast<IFWL_ComboBox::DataProvider*>(
469 m_pProperties->m_pDataProvider); 469 m_pProperties->m_pDataProvider);
470 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel); 470 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel);
471 m_pListBox->GetItemText(hItem, wsText); 471 m_pListBox->GetDataProviderItemText(hItem, wsText);
472 m_pEdit->LockUpdate(); 472 m_pEdit->LockUpdate();
473 m_pEdit->SetText(wsText); 473 m_pEdit->SetText(wsText);
474 m_pEdit->UnlockUpdate(); 474 m_pEdit->UnlockUpdate();
475 } 475 }
476 m_pEdit->Update(); 476 m_pEdit->Update();
477 } 477 }
478 478
479 void IFWL_ComboBox::ResetTheme() { 479 void IFWL_ComboBox::ResetTheme() {
480 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; 480 IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider;
481 if (!pTheme) { 481 if (!pTheme) {
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
797 rtEdit.Set(m_rtContent.left, m_rtContent.top, m_rtContent.width - fBtn, 797 rtEdit.Set(m_rtContent.left, m_rtContent.top, m_rtContent.width - fBtn,
798 m_rtContent.height); 798 m_rtContent.height);
799 m_pEdit->SetWidgetRect(rtEdit); 799 m_pEdit->SetWidgetRect(rtEdit);
800 800
801 if (m_iCurSel >= 0) { 801 if (m_iCurSel >= 0) {
802 CFX_WideString wsText; 802 CFX_WideString wsText;
803 IFWL_ComboBox::DataProvider* pData = 803 IFWL_ComboBox::DataProvider* pData =
804 static_cast<IFWL_ComboBox::DataProvider*>( 804 static_cast<IFWL_ComboBox::DataProvider*>(
805 m_pProperties->m_pDataProvider); 805 m_pProperties->m_pDataProvider);
806 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel); 806 CFWL_ListItem* hItem = pData->GetItem(this, m_iCurSel);
807 m_pListBox->GetItemText(hItem, wsText); 807 m_pListBox->GetDataProviderItemText(hItem, wsText);
808 m_pEdit->LockUpdate(); 808 m_pEdit->LockUpdate();
809 m_pEdit->SetText(wsText); 809 m_pEdit->SetText(wsText);
810 m_pEdit->UnlockUpdate(); 810 m_pEdit->UnlockUpdate();
811 } 811 }
812 m_pEdit->Update(); 812 m_pEdit->Update();
813 } 813 }
814 814
815 void IFWL_ComboBox::OnProcessMessage(CFWL_Message* pMessage) { 815 void IFWL_ComboBox::OnProcessMessage(CFWL_Message* pMessage) {
816 if (m_pWidgetMgr->IsFormDisabled()) { 816 if (m_pWidgetMgr->IsFormDisabled()) {
817 DisForm_OnProcessMessage(pMessage); 817 DisForm_OnProcessMessage(pMessage);
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
983 if (bDropDown && m_pEdit) { 983 if (bDropDown && m_pEdit) {
984 CFX_WideString wsText; 984 CFX_WideString wsText;
985 m_pEdit->GetText(wsText); 985 m_pEdit->GetText(wsText);
986 iCurSel = m_pListBox->MatchItem(wsText); 986 iCurSel = m_pListBox->MatchItem(wsText);
987 if (iCurSel >= 0) { 987 if (iCurSel >= 0) {
988 CFX_WideString wsTemp; 988 CFX_WideString wsTemp;
989 IFWL_ComboBox::DataProvider* pData = 989 IFWL_ComboBox::DataProvider* pData =
990 static_cast<IFWL_ComboBox::DataProvider*>( 990 static_cast<IFWL_ComboBox::DataProvider*>(
991 m_pProperties->m_pDataProvider); 991 m_pProperties->m_pDataProvider);
992 CFWL_ListItem* hItem = pData->GetItem(this, iCurSel); 992 CFWL_ListItem* hItem = pData->GetItem(this, iCurSel);
993 m_pListBox->GetItemText(hItem, wsTemp); 993 m_pListBox->GetDataProviderItemText(hItem, wsTemp);
994 bMatchEqual = wsText == wsTemp; 994 bMatchEqual = wsText == wsTemp;
995 } 995 }
996 } 996 }
997 if (iCurSel < 0) { 997 if (iCurSel < 0) {
998 iCurSel = 0; 998 iCurSel = 0;
999 } else if (!bDropDown || bMatchEqual) { 999 } else if (!bDropDown || bMatchEqual) {
1000 if ((bUp && iCurSel == 0) || (bDown && iCurSel == iCount - 1)) 1000 if ((bUp && iCurSel == 0) || (bDown && iCurSel == iCount - 1))
1001 return; 1001 return;
1002 if (bUp) 1002 if (bUp)
1003 iCurSel--; 1003 iCurSel--;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
1119 1119
1120 bool bMatchEqual = false; 1120 bool bMatchEqual = false;
1121 int32_t iCurSel = m_iCurSel; 1121 int32_t iCurSel = m_iCurSel;
1122 if (m_pEdit) { 1122 if (m_pEdit) {
1123 CFX_WideString wsText; 1123 CFX_WideString wsText;
1124 m_pEdit->GetText(wsText); 1124 m_pEdit->GetText(wsText);
1125 iCurSel = pComboList->MatchItem(wsText); 1125 iCurSel = pComboList->MatchItem(wsText);
1126 if (iCurSel >= 0) { 1126 if (iCurSel >= 0) {
1127 CFX_WideString wsTemp; 1127 CFX_WideString wsTemp;
1128 CFWL_ListItem* item = m_pListBox->GetSelItem(iCurSel); 1128 CFWL_ListItem* item = m_pListBox->GetSelItem(iCurSel);
1129 m_pListBox->GetItemText(item, wsTemp); 1129 m_pListBox->GetDataProviderItemText(item, wsTemp);
1130 bMatchEqual = wsText == wsTemp; 1130 bMatchEqual = wsText == wsTemp;
1131 } 1131 }
1132 } 1132 }
1133 if (iCurSel < 0) { 1133 if (iCurSel < 0) {
1134 iCurSel = 0; 1134 iCurSel = 0;
1135 } else if (bMatchEqual) { 1135 } else if (bMatchEqual) {
1136 if ((bUp && iCurSel == 0) || (bDown && iCurSel == iCount - 1)) 1136 if ((bUp && iCurSel == 0) || (bDown && iCurSel == iCount - 1))
1137 return; 1137 return;
1138 if (bUp) 1138 if (bUp)
1139 iCurSel--; 1139 iCurSel--;
1140 else 1140 else
1141 iCurSel++; 1141 iCurSel++;
1142 } 1142 }
1143 m_iCurSel = iCurSel; 1143 m_iCurSel = iCurSel;
1144 SyncEditText(m_iCurSel); 1144 SyncEditText(m_iCurSel);
1145 return; 1145 return;
1146 } 1146 }
1147 if (m_pEdit) 1147 if (m_pEdit)
1148 m_pEdit->GetDelegate()->OnProcessMessage(pMsg); 1148 m_pEdit->GetDelegate()->OnProcessMessage(pMsg);
1149 } 1149 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698