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

Side by Side Diff: fpdfsdk/src/pdfwindow/PWL_IconList.cpp

Issue 1737593006: Re-land "Replace CPDF_Rect and CPDF_Point with CFX types." (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Ooops. Created 4 years, 9 months 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 | « fpdfsdk/src/pdfwindow/PWL_Icon.cpp ('k') | fpdfsdk/src/pdfwindow/PWL_Label.cpp » ('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 "fpdfsdk/include/pdfwindow/PWL_IconList.h" 7 #include "fpdfsdk/include/pdfwindow/PWL_IconList.h"
8 8
9 #include "fpdfsdk/include/pdfwindow/PWL_Label.h" 9 #include "fpdfsdk/include/pdfwindow/PWL_Label.h"
10 #include "fpdfsdk/include/pdfwindow/PWL_ListCtrl.h" 10 #include "fpdfsdk/include/pdfwindow/PWL_ListCtrl.h"
(...skipping 15 matching lines...) Expand all
26 CFX_ByteString CPWL_IconList_Item::GetClassName() const { 26 CFX_ByteString CPWL_IconList_Item::GetClassName() const {
27 return "CPWL_IconList_Item"; 27 return "CPWL_IconList_Item";
28 } 28 }
29 29
30 FX_FLOAT CPWL_IconList_Item::GetItemHeight(FX_FLOAT fLimitWidth) { 30 FX_FLOAT CPWL_IconList_Item::GetItemHeight(FX_FLOAT fLimitWidth) {
31 return PWL_IconList_ITEM_HEIGHT; 31 return PWL_IconList_ITEM_HEIGHT;
32 } 32 }
33 33
34 void CPWL_IconList_Item::DrawThisAppearance(CFX_RenderDevice* pDevice, 34 void CPWL_IconList_Item::DrawThisAppearance(CFX_RenderDevice* pDevice,
35 CFX_Matrix* pUser2Device) { 35 CFX_Matrix* pUser2Device) {
36 CPDF_Rect rcClient = GetClientRect(); 36 CFX_FloatRect rcClient = GetClientRect();
37 37
38 if (m_bSelected) { 38 if (m_bSelected) {
39 if (IsEnabled()) { 39 if (IsEnabled()) {
40 CPWL_Utils::DrawFillRect( 40 CPWL_Utils::DrawFillRect(
41 pDevice, pUser2Device, rcClient, 41 pDevice, pUser2Device, rcClient,
42 CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_SELBACKCOLOR, 42 CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_SELBACKCOLOR,
43 GetTransparency())); 43 GetTransparency()));
44 } else { 44 } else {
45 CPWL_Utils::DrawFillRect( 45 CPWL_Utils::DrawFillRect(
46 pDevice, pUser2Device, rcClient, 46 pDevice, pUser2Device, rcClient,
47 CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_LIGHTGRAYCOLOR, 47 CPWL_Utils::PWLColorToFXColor(PWL_DEFAULT_LIGHTGRAYCOLOR,
48 GetTransparency())); 48 GetTransparency()));
49 } 49 }
50 } 50 }
51 51
52 CPDF_Rect rcIcon = rcClient; 52 CFX_FloatRect rcIcon = rcClient;
53 rcIcon.left += PWL_IconList_ITEM_ICON_LEFTMARGIN; 53 rcIcon.left += PWL_IconList_ITEM_ICON_LEFTMARGIN;
54 rcIcon.right = rcIcon.left + PWL_IconList_ITEM_WIDTH; 54 rcIcon.right = rcIcon.left + PWL_IconList_ITEM_WIDTH;
55 55
56 CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nIconIndex, rcIcon, 56 CPWL_Utils::DrawIconAppStream(pDevice, pUser2Device, m_nIconIndex, rcIcon,
57 m_crIcon, m_pText->GetTextColor(), 57 m_crIcon, m_pText->GetTextColor(),
58 GetTransparency()); 58 GetTransparency());
59 } 59 }
60 60
61 void CPWL_IconList_Item::SetSelect(FX_BOOL bSelected) { 61 void CPWL_IconList_Item::SetSelect(FX_BOOL bSelected) {
62 m_bSelected = bSelected; 62 m_bSelected = bSelected;
(...skipping 29 matching lines...) Expand all
92 92
93 void CPWL_IconList_Item::SetText(const CFX_WideString& str) { 93 void CPWL_IconList_Item::SetText(const CFX_WideString& str) {
94 m_pText->SetText(str.c_str()); 94 m_pText->SetText(str.c_str());
95 } 95 }
96 96
97 CFX_WideString CPWL_IconList_Item::GetText() const { 97 CFX_WideString CPWL_IconList_Item::GetText() const {
98 return m_pText->GetText(); 98 return m_pText->GetText();
99 } 99 }
100 100
101 void CPWL_IconList_Item::RePosChildWnd() { 101 void CPWL_IconList_Item::RePosChildWnd() {
102 CPDF_Rect rcClient = GetClientRect(); 102 CFX_FloatRect rcClient = GetClientRect();
103 103
104 rcClient.left += 104 rcClient.left +=
105 (PWL_IconList_ITEM_ICON_LEFTMARGIN + PWL_IconList_ITEM_WIDTH + 105 (PWL_IconList_ITEM_ICON_LEFTMARGIN + PWL_IconList_ITEM_WIDTH +
106 PWL_IconList_ITEM_ICON_LEFTMARGIN); 106 PWL_IconList_ITEM_ICON_LEFTMARGIN);
107 107
108 m_pText->Move(rcClient, TRUE, FALSE); 108 m_pText->Move(rcClient, TRUE, FALSE);
109 } 109 }
110 110
111 void CPWL_IconList_Item::SetIconFillColor(const CPWL_Color& color) { 111 void CPWL_IconList_Item::SetIconFillColor(const CPWL_Color& color) {
112 m_crIcon = color; 112 m_crIcon = color;
(...skipping 30 matching lines...) Expand all
143 PWL_CREATEPARAM icp = cp; 143 PWL_CREATEPARAM icp = cp;
144 icp.pParentWnd = this; 144 icp.pParentWnd = this;
145 icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_NOREFRESHCLIP; 145 icp.dwFlags = PWS_CHILD | PWS_VISIBLE | PWS_NOREFRESHCLIP;
146 pNewItem->Create(icp); 146 pNewItem->Create(icp);
147 } 147 }
148 148
149 SetItemSpace(PWL_IconList_ITEM_SPACE); 149 SetItemSpace(PWL_IconList_ITEM_SPACE);
150 ResetContent(0); 150 ResetContent(0);
151 151
152 if (CPWL_Wnd* pParent = GetParentWindow()) { 152 if (CPWL_Wnd* pParent = GetParentWindow()) {
153 CPDF_Rect rcScroll = GetScrollArea(); 153 CFX_FloatRect rcScroll = GetScrollArea();
154 GetScrollPos(); 154 GetScrollPos();
155 155
156 PWL_SCROLL_INFO sInfo; 156 PWL_SCROLL_INFO sInfo;
157 sInfo.fContentMin = rcScroll.bottom; 157 sInfo.fContentMin = rcScroll.bottom;
158 sInfo.fContentMax = rcScroll.top; 158 sInfo.fContentMax = rcScroll.top;
159 sInfo.fPlateWidth = GetClientRect().Height(); 159 sInfo.fPlateWidth = GetClientRect().Height();
160 sInfo.fSmallStep = 13.0f; 160 sInfo.fSmallStep = 13.0f;
161 sInfo.fBigStep = sInfo.fPlateWidth; 161 sInfo.fBigStep = sInfo.fPlateWidth;
162 162
163 pParent->OnNotify(this, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&sInfo); 163 pParent->OnNotify(this, PNM_SETSCROLLINFO, SBT_VSCROLL, (intptr_t)&sInfo);
164 } 164 }
165 } 165 }
166 166
167 FX_BOOL CPWL_IconList_Content::OnLButtonDown(const CPDF_Point& point, 167 FX_BOOL CPWL_IconList_Content::OnLButtonDown(const CFX_FloatPoint& point,
168 FX_DWORD nFlag) { 168 FX_DWORD nFlag) {
169 SetFocus(); 169 SetFocus();
170 170
171 SetCapture(); 171 SetCapture();
172 m_bMouseDown = TRUE; 172 m_bMouseDown = TRUE;
173 173
174 int32_t nItemIndex = FindItemIndex(point); 174 int32_t nItemIndex = FindItemIndex(point);
175 SetSelect(nItemIndex); 175 SetSelect(nItemIndex);
176 ScrollToItem(nItemIndex); 176 ScrollToItem(nItemIndex);
177 177
178 return TRUE; 178 return TRUE;
179 } 179 }
180 180
181 FX_BOOL CPWL_IconList_Content::OnLButtonUp(const CPDF_Point& point, 181 FX_BOOL CPWL_IconList_Content::OnLButtonUp(const CFX_FloatPoint& point,
182 FX_DWORD nFlag) { 182 FX_DWORD nFlag) {
183 m_bMouseDown = FALSE; 183 m_bMouseDown = FALSE;
184 ReleaseCapture(); 184 ReleaseCapture();
185 185
186 return TRUE; 186 return TRUE;
187 } 187 }
188 188
189 FX_BOOL CPWL_IconList_Content::OnMouseMove(const CPDF_Point& point, 189 FX_BOOL CPWL_IconList_Content::OnMouseMove(const CFX_FloatPoint& point,
190 FX_DWORD nFlag) { 190 FX_DWORD nFlag) {
191 if (m_bMouseDown) { 191 if (m_bMouseDown) {
192 int32_t nItemIndex = FindItemIndex(point); 192 int32_t nItemIndex = FindItemIndex(point);
193 SetSelect(nItemIndex); 193 SetSelect(nItemIndex);
194 ScrollToItem(nItemIndex); 194 ScrollToItem(nItemIndex);
195 } 195 }
196 196
197 return TRUE; 197 return TRUE;
198 } 198 }
199 199
(...skipping 11 matching lines...) Expand all
211 int32_t nItemIndex = m_nSelectIndex + 1; 211 int32_t nItemIndex = m_nSelectIndex + 1;
212 SetSelect(nItemIndex); 212 SetSelect(nItemIndex);
213 ScrollToItem(nItemIndex); 213 ScrollToItem(nItemIndex);
214 } 214 }
215 return TRUE; 215 return TRUE;
216 } 216 }
217 217
218 return FALSE; 218 return FALSE;
219 } 219 }
220 220
221 int32_t CPWL_IconList_Content::FindItemIndex(const CPDF_Point& point) { 221 int32_t CPWL_IconList_Content::FindItemIndex(const CFX_FloatPoint& point) {
222 int32_t nIndex = 0; 222 int32_t nIndex = 0;
223 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { 223 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) {
224 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { 224 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) {
225 CPDF_Rect rcWnd = pChild->ChildToParent(pChild->GetWindowRect()); 225 CFX_FloatRect rcWnd = pChild->ChildToParent(pChild->GetWindowRect());
226 226
227 if (point.y < rcWnd.top) { 227 if (point.y < rcWnd.top) {
228 nIndex = i; 228 nIndex = i;
229 } 229 }
230 } 230 }
231 } 231 }
232 232
233 return nIndex; 233 return nIndex;
234 } 234 }
235 235
236 void CPWL_IconList_Content::ScrollToItem(int32_t nItemIndex) { 236 void CPWL_IconList_Content::ScrollToItem(int32_t nItemIndex) {
237 CPDF_Rect rcClient = GetClientRect(); 237 CFX_FloatRect rcClient = GetClientRect();
238 238
239 if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex)) { 239 if (CPWL_IconList_Item* pItem = GetListItem(nItemIndex)) {
240 CPDF_Rect rcOrigin = pItem->GetWindowRect(); 240 CFX_FloatRect rcOrigin = pItem->GetWindowRect();
241 CPDF_Rect rcWnd = pItem->ChildToParent(rcOrigin); 241 CFX_FloatRect rcWnd = pItem->ChildToParent(rcOrigin);
242 242
243 if (!(rcWnd.bottom > rcClient.bottom && rcWnd.top < rcClient.top)) { 243 if (!(rcWnd.bottom > rcClient.bottom && rcWnd.top < rcClient.top)) {
244 CPDF_Point ptScroll = GetScrollPos(); 244 CFX_FloatPoint ptScroll = GetScrollPos();
245 245
246 if (rcWnd.top > rcClient.top) { 246 if (rcWnd.top > rcClient.top) {
247 ptScroll.y = rcOrigin.top; 247 ptScroll.y = rcOrigin.top;
248 } else if (rcWnd.bottom < rcClient.bottom) { 248 } else if (rcWnd.bottom < rcClient.bottom) {
249 ptScroll.y = rcOrigin.bottom + rcClient.Height(); 249 ptScroll.y = rcOrigin.bottom + rcClient.Height();
250 } 250 }
251 251
252 SetScrollPos(ptScroll); 252 SetScrollPos(ptScroll);
253 ResetFace(); 253 ResetFace();
254 InvalidateRect(); 254 InvalidateRect();
(...skipping 136 matching lines...) Expand 10 before | Expand all | Expand 10 after
391 RePosChildWnd(); 391 RePosChildWnd();
392 } else { 392 } else {
393 } 393 }
394 } else { 394 } else {
395 if (pScrollBar->IsVisible()) { 395 if (pScrollBar->IsVisible()) {
396 pScrollBar->SetVisible(FALSE); 396 pScrollBar->SetVisible(FALSE);
397 RePosChildWnd(); 397 RePosChildWnd();
398 } 398 }
399 399
400 if (m_pListContent) 400 if (m_pListContent)
401 m_pListContent->SetScrollPos(CPDF_Point(0.0f, 0.0f)); 401 m_pListContent->SetScrollPos(CFX_FloatPoint(0.0f, 0.0f));
402 } 402 }
403 403
404 pScrollBar->OnNotify(pWnd, PNM_SETSCROLLINFO, wParam, lParam); 404 pScrollBar->OnNotify(pWnd, PNM_SETSCROLLINFO, wParam, lParam);
405 } 405 }
406 } 406 }
407 return; 407 return;
408 case PNM_SCROLLWINDOW: 408 case PNM_SCROLLWINDOW:
409 if (m_pListContent) { 409 if (m_pListContent) {
410 m_pListContent->SetScrollPos(CPDF_Point(0.0f, *(FX_FLOAT*)lParam)); 410 m_pListContent->SetScrollPos(
411 CFX_FloatPoint(0.0f, *(FX_FLOAT*)lParam));
411 m_pListContent->ResetFace(); 412 m_pListContent->ResetFace();
412 m_pListContent->InvalidateRect(NULL); 413 m_pListContent->InvalidateRect(NULL);
413 } 414 }
414 return; 415 return;
415 case PNM_SETSCROLLPOS: 416 case PNM_SETSCROLLPOS:
416 if (CPWL_ScrollBar* pScrollBar = GetVScrollBar()) 417 if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
417 pScrollBar->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam); 418 pScrollBar->OnNotify(pWnd, PNM_SETSCROLLPOS, wParam, lParam);
418 return; 419 return;
419 } 420 }
420 } 421 }
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
455 456
456 CFX_WideString CPWL_IconList::GetListString(int32_t nItemIndex) const { 457 CFX_WideString CPWL_IconList::GetListString(int32_t nItemIndex) const {
457 return m_pListContent->GetListString(nItemIndex); 458 return m_pListContent->GetListString(nItemIndex);
458 } 459 }
459 460
460 void CPWL_IconList::SetIconFillColor(const CPWL_Color& color) { 461 void CPWL_IconList::SetIconFillColor(const CPWL_Color& color) {
461 m_pListContent->SetIconFillColor(color); 462 m_pListContent->SetIconFillColor(color);
462 } 463 }
463 464
464 FX_BOOL CPWL_IconList::OnMouseWheel(short zDelta, 465 FX_BOOL CPWL_IconList::OnMouseWheel(short zDelta,
465 const CPDF_Point& point, 466 const CFX_FloatPoint& point,
466 FX_DWORD nFlag) { 467 FX_DWORD nFlag) {
467 CPDF_Point ptScroll = m_pListContent->GetScrollPos(); 468 CFX_FloatPoint ptScroll = m_pListContent->GetScrollPos();
468 CPDF_Rect rcScroll = m_pListContent->GetScrollArea(); 469 CFX_FloatRect rcScroll = m_pListContent->GetScrollArea();
469 CPDF_Rect rcContents = m_pListContent->GetClientRect(); 470 CFX_FloatRect rcContents = m_pListContent->GetClientRect();
470 471
471 if (rcScroll.top - rcScroll.bottom > rcContents.Height()) { 472 if (rcScroll.top - rcScroll.bottom > rcContents.Height()) {
472 CPDF_Point ptNew = ptScroll; 473 CFX_FloatPoint ptNew = ptScroll;
473 474
474 if (zDelta > 0) 475 if (zDelta > 0)
475 ptNew.y += 30; 476 ptNew.y += 30;
476 else 477 else
477 ptNew.y -= 30; 478 ptNew.y -= 30;
478 479
479 if (ptNew.y > rcScroll.top) 480 if (ptNew.y > rcScroll.top)
480 ptNew.y = rcScroll.top; 481 ptNew.y = rcScroll.top;
481 if (ptNew.y < rcScroll.bottom + rcContents.Height()) 482 if (ptNew.y < rcScroll.bottom + rcContents.Height())
482 ptNew.y = rcScroll.bottom + rcContents.Height(); 483 ptNew.y = rcScroll.bottom + rcContents.Height();
483 if (ptNew.y < rcScroll.bottom) 484 if (ptNew.y < rcScroll.bottom)
484 ptNew.y = rcScroll.bottom; 485 ptNew.y = rcScroll.bottom;
485 486
486 if (ptNew.y != ptScroll.y) { 487 if (ptNew.y != ptScroll.y) {
487 m_pListContent->SetScrollPos(ptNew); 488 m_pListContent->SetScrollPos(ptNew);
488 m_pListContent->ResetFace(); 489 m_pListContent->ResetFace();
489 m_pListContent->InvalidateRect(NULL); 490 m_pListContent->InvalidateRect(NULL);
490 491
491 if (CPWL_ScrollBar* pScrollBar = GetVScrollBar()) 492 if (CPWL_ScrollBar* pScrollBar = GetVScrollBar())
492 pScrollBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL, 493 pScrollBar->OnNotify(this, PNM_SETSCROLLPOS, SBT_VSCROLL,
493 (intptr_t)&ptNew.y); 494 (intptr_t)&ptNew.y);
494 495
495 return TRUE; 496 return TRUE;
496 } 497 }
497 } 498 }
498 499
499 return FALSE; 500 return FALSE;
500 } 501 }
OLDNEW
« no previous file with comments | « fpdfsdk/src/pdfwindow/PWL_Icon.cpp ('k') | fpdfsdk/src/pdfwindow/PWL_Label.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698