OLD | NEW |
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 <map> | 7 #include <map> |
8 | 8 |
9 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h" | 9 #include "fpdfsdk/pdfwindow/PWL_ScrollBar.h" |
10 #include "fpdfsdk/pdfwindow/PWL_Utils.h" | 10 #include "fpdfsdk/pdfwindow/PWL_Utils.h" |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
110 | 110 |
111 ~CPWL_MsgControl() { Default(); } | 111 ~CPWL_MsgControl() { Default(); } |
112 | 112 |
113 void Default() { | 113 void Default() { |
114 m_aMousePath.RemoveAll(); | 114 m_aMousePath.RemoveAll(); |
115 m_aKeyboardPath.RemoveAll(); | 115 m_aKeyboardPath.RemoveAll(); |
116 m_pMainMouseWnd = nullptr; | 116 m_pMainMouseWnd = nullptr; |
117 m_pMainKeyboardWnd = nullptr; | 117 m_pMainKeyboardWnd = nullptr; |
118 } | 118 } |
119 | 119 |
120 FX_BOOL IsWndCreated(const CPWL_Wnd* pWnd) const { | 120 bool IsWndCreated(const CPWL_Wnd* pWnd) const { |
121 return m_pCreatedWnd == pWnd; | 121 return m_pCreatedWnd == pWnd; |
122 } | 122 } |
123 | 123 |
124 FX_BOOL IsMainCaptureMouse(const CPWL_Wnd* pWnd) const { | 124 bool IsMainCaptureMouse(const CPWL_Wnd* pWnd) const { |
125 return pWnd == m_pMainMouseWnd; | 125 return pWnd == m_pMainMouseWnd; |
126 } | 126 } |
127 | 127 |
128 FX_BOOL IsWndCaptureMouse(const CPWL_Wnd* pWnd) const { | 128 bool IsWndCaptureMouse(const CPWL_Wnd* pWnd) const { |
129 if (pWnd) { | 129 if (pWnd) { |
130 for (int32_t i = 0, sz = m_aMousePath.GetSize(); i < sz; i++) { | 130 for (int32_t i = 0, sz = m_aMousePath.GetSize(); i < sz; i++) { |
131 if (m_aMousePath.GetAt(i) == pWnd) | 131 if (m_aMousePath.GetAt(i) == pWnd) |
132 return TRUE; | 132 return true; |
133 } | 133 } |
134 } | 134 } |
135 | 135 |
136 return FALSE; | 136 return false; |
137 } | 137 } |
138 | 138 |
139 FX_BOOL IsMainCaptureKeyboard(const CPWL_Wnd* pWnd) const { | 139 bool IsMainCaptureKeyboard(const CPWL_Wnd* pWnd) const { |
140 return pWnd == m_pMainKeyboardWnd; | 140 return pWnd == m_pMainKeyboardWnd; |
141 } | 141 } |
142 | 142 |
143 FX_BOOL IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const { | 143 bool IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const { |
144 if (pWnd) { | 144 if (pWnd) { |
145 for (int32_t i = 0, sz = m_aKeyboardPath.GetSize(); i < sz; i++) { | 145 for (int32_t i = 0, sz = m_aKeyboardPath.GetSize(); i < sz; i++) { |
146 if (m_aKeyboardPath.GetAt(i) == pWnd) | 146 if (m_aKeyboardPath.GetAt(i) == pWnd) |
147 return TRUE; | 147 return true; |
148 } | 148 } |
149 } | 149 } |
150 | 150 |
151 return FALSE; | 151 return false; |
152 } | 152 } |
153 | 153 |
154 void SetFocus(CPWL_Wnd* pWnd) { | 154 void SetFocus(CPWL_Wnd* pWnd) { |
155 m_aKeyboardPath.RemoveAll(); | 155 m_aKeyboardPath.RemoveAll(); |
156 | 156 |
157 if (pWnd) { | 157 if (pWnd) { |
158 m_pMainKeyboardWnd = pWnd; | 158 m_pMainKeyboardWnd = pWnd; |
159 | 159 |
160 CPWL_Wnd* pParent = pWnd; | 160 CPWL_Wnd* pParent = pWnd; |
161 while (pParent) { | 161 while (pParent) { |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
200 CFX_ArrayTemplate<CPWL_Wnd*> m_aKeyboardPath; | 200 CFX_ArrayTemplate<CPWL_Wnd*> m_aKeyboardPath; |
201 CPWL_Wnd* m_pCreatedWnd; | 201 CPWL_Wnd* m_pCreatedWnd; |
202 CPWL_Wnd* m_pMainMouseWnd; | 202 CPWL_Wnd* m_pMainMouseWnd; |
203 CPWL_Wnd* m_pMainKeyboardWnd; | 203 CPWL_Wnd* m_pMainKeyboardWnd; |
204 }; | 204 }; |
205 | 205 |
206 CPWL_Wnd::CPWL_Wnd() | 206 CPWL_Wnd::CPWL_Wnd() |
207 : m_pVScrollBar(nullptr), | 207 : m_pVScrollBar(nullptr), |
208 m_rcWindow(), | 208 m_rcWindow(), |
209 m_rcClip(), | 209 m_rcClip(), |
210 m_bCreated(FALSE), | 210 m_bCreated(false), |
211 m_bVisible(FALSE), | 211 m_bVisible(false), |
212 m_bNotifying(FALSE), | 212 m_bNotifying(false), |
213 m_bEnabled(TRUE) {} | 213 m_bEnabled(true) {} |
214 | 214 |
215 CPWL_Wnd::~CPWL_Wnd() { | 215 CPWL_Wnd::~CPWL_Wnd() { |
216 ASSERT(m_bCreated == FALSE); | 216 ASSERT(m_bCreated == false); |
217 } | 217 } |
218 | 218 |
219 CFX_ByteString CPWL_Wnd::GetClassName() const { | 219 CFX_ByteString CPWL_Wnd::GetClassName() const { |
220 return "CPWL_Wnd"; | 220 return "CPWL_Wnd"; |
221 } | 221 } |
222 | 222 |
223 void CPWL_Wnd::Create(const PWL_CREATEPARAM& cp) { | 223 void CPWL_Wnd::Create(const PWL_CREATEPARAM& cp) { |
224 if (!IsValid()) { | 224 if (!IsValid()) { |
225 m_sPrivateParam = cp; | 225 m_sPrivateParam = cp; |
226 | 226 |
(...skipping 14 matching lines...) Expand all Loading... |
241 ccp.mtChild = CFX_Matrix(1, 0, 0, 1, 0, 0); | 241 ccp.mtChild = CFX_Matrix(1, 0, 0, 1, 0, 0); |
242 | 242 |
243 CreateScrollBar(ccp); | 243 CreateScrollBar(ccp); |
244 CreateChildWnd(ccp); | 244 CreateChildWnd(ccp); |
245 | 245 |
246 m_bVisible = HasFlag(PWS_VISIBLE); | 246 m_bVisible = HasFlag(PWS_VISIBLE); |
247 | 247 |
248 OnCreated(); | 248 OnCreated(); |
249 | 249 |
250 RePosChildWnd(); | 250 RePosChildWnd(); |
251 m_bCreated = TRUE; | 251 m_bCreated = true; |
252 } | 252 } |
253 } | 253 } |
254 | 254 |
255 void CPWL_Wnd::OnCreate(PWL_CREATEPARAM& cp) {} | 255 void CPWL_Wnd::OnCreate(PWL_CREATEPARAM& cp) {} |
256 | 256 |
257 void CPWL_Wnd::OnCreated() {} | 257 void CPWL_Wnd::OnCreated() {} |
258 | 258 |
259 void CPWL_Wnd::OnDestroy() {} | 259 void CPWL_Wnd::OnDestroy() {} |
260 | 260 |
261 void CPWL_Wnd::InvalidateFocusHandler(IPWL_FocusHandler* handler) { | 261 void CPWL_Wnd::InvalidateFocusHandler(IPWL_FocusHandler* handler) { |
(...skipping 15 matching lines...) Expand all Loading... |
277 for (int32_t i = m_aChildren.GetSize() - 1; i >= 0; i--) { | 277 for (int32_t i = m_aChildren.GetSize() - 1; i >= 0; i--) { |
278 if (CPWL_Wnd* pChild = m_aChildren[i]) { | 278 if (CPWL_Wnd* pChild = m_aChildren[i]) { |
279 pChild->Destroy(); | 279 pChild->Destroy(); |
280 delete pChild; | 280 delete pChild; |
281 pChild = nullptr; | 281 pChild = nullptr; |
282 } | 282 } |
283 } | 283 } |
284 | 284 |
285 if (m_sPrivateParam.pParentWnd) | 285 if (m_sPrivateParam.pParentWnd) |
286 m_sPrivateParam.pParentWnd->OnNotify(this, PNM_REMOVECHILD); | 286 m_sPrivateParam.pParentWnd->OnNotify(this, PNM_REMOVECHILD); |
287 m_bCreated = FALSE; | 287 m_bCreated = false; |
288 } | 288 } |
289 | 289 |
290 DestroyMsgControl(); | 290 DestroyMsgControl(); |
291 | 291 |
292 FXSYS_memset(&m_sPrivateParam, 0, sizeof(PWL_CREATEPARAM)); | 292 FXSYS_memset(&m_sPrivateParam, 0, sizeof(PWL_CREATEPARAM)); |
293 m_aChildren.RemoveAll(); | 293 m_aChildren.RemoveAll(); |
294 m_pVScrollBar = nullptr; | 294 m_pVScrollBar = nullptr; |
295 } | 295 } |
296 | 296 |
297 void CPWL_Wnd::Move(const CFX_FloatRect& rcNew, | 297 void CPWL_Wnd::Move(const CFX_FloatRect& rcNew, bool bReset, bool bRefresh) { |
298 FX_BOOL bReset, | |
299 FX_BOOL bRefresh) { | |
300 if (IsValid()) { | 298 if (IsValid()) { |
301 CFX_FloatRect rcOld = GetWindowRect(); | 299 CFX_FloatRect rcOld = GetWindowRect(); |
302 | 300 |
303 m_rcWindow = rcNew; | 301 m_rcWindow = rcNew; |
304 m_rcWindow.Normalize(); | 302 m_rcWindow.Normalize(); |
305 | 303 |
306 if (rcOld.left != rcNew.left || rcOld.right != rcNew.right || | 304 if (rcOld.left != rcNew.left || rcOld.right != rcNew.right || |
307 rcOld.top != rcNew.top || rcOld.bottom != rcNew.bottom) { | 305 rcOld.top != rcNew.top || rcOld.bottom != rcNew.bottom) { |
308 if (bReset) { | 306 if (bReset) { |
309 RePosChildWnd(); | 307 RePosChildWnd(); |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
422 rcWin.bottom += PWL_INVALIDATE_INFLATE; | 420 rcWin.bottom += PWL_INVALIDATE_INFLATE; |
423 | 421 |
424 if (CFX_SystemHandler* pSH = GetSystemHandler()) { | 422 if (CFX_SystemHandler* pSH = GetSystemHandler()) { |
425 if (CPDFSDK_Widget* widget = m_sPrivateParam.pAttachedWidget) | 423 if (CPDFSDK_Widget* widget = m_sPrivateParam.pAttachedWidget) |
426 pSH->InvalidateRect(widget, rcWin); | 424 pSH->InvalidateRect(widget, rcWin); |
427 } | 425 } |
428 } | 426 } |
429 } | 427 } |
430 | 428 |
431 #define PWL_IMPLEMENT_KEY_METHOD(key_method_name) \ | 429 #define PWL_IMPLEMENT_KEY_METHOD(key_method_name) \ |
432 FX_BOOL CPWL_Wnd::key_method_name(uint16_t nChar, uint32_t nFlag) { \ | 430 bool CPWL_Wnd::key_method_name(uint16_t nChar, uint32_t nFlag) { \ |
433 if (IsValid() && IsVisible() && IsEnabled()) { \ | 431 if (IsValid() && IsVisible() && IsEnabled()) { \ |
434 if (IsWndCaptureKeyboard(this)) { \ | 432 if (IsWndCaptureKeyboard(this)) { \ |
435 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \ | 433 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \ |
436 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { \ | 434 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { \ |
437 if (IsWndCaptureKeyboard(pChild)) { \ | 435 if (IsWndCaptureKeyboard(pChild)) { \ |
438 return pChild->key_method_name(nChar, nFlag); \ | 436 return pChild->key_method_name(nChar, nFlag); \ |
439 } \ | 437 } \ |
440 } \ | 438 } \ |
441 } \ | 439 } \ |
442 } \ | 440 } \ |
443 } \ | 441 } \ |
444 return FALSE; \ | 442 return false; \ |
445 } | 443 } |
446 | 444 |
447 #define PWL_IMPLEMENT_MOUSE_METHOD(mouse_method_name) \ | 445 #define PWL_IMPLEMENT_MOUSE_METHOD(mouse_method_name) \ |
448 FX_BOOL CPWL_Wnd::mouse_method_name(const CFX_FloatPoint& point, \ | 446 bool CPWL_Wnd::mouse_method_name(const CFX_FloatPoint& point, \ |
449 uint32_t nFlag) { \ | 447 uint32_t nFlag) { \ |
450 if (IsValid() && IsVisible() && IsEnabled()) { \ | 448 if (IsValid() && IsVisible() && IsEnabled()) { \ |
451 if (IsWndCaptureMouse(this)) { \ | 449 if (IsWndCaptureMouse(this)) { \ |
452 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \ | 450 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \ |
453 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { \ | 451 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { \ |
454 if (IsWndCaptureMouse(pChild)) { \ | 452 if (IsWndCaptureMouse(pChild)) { \ |
455 return pChild->mouse_method_name(pChild->ParentToChild(point), \ | 453 return pChild->mouse_method_name(pChild->ParentToChild(point), \ |
456 nFlag); \ | 454 nFlag); \ |
457 } \ | 455 } \ |
458 } \ | 456 } \ |
459 } \ | 457 } \ |
460 SetCursor(); \ | 458 SetCursor(); \ |
461 } else { \ | 459 } else { \ |
462 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \ | 460 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { \ |
463 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { \ | 461 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { \ |
464 if (pChild->WndHitTest(pChild->ParentToChild(point))) { \ | 462 if (pChild->WndHitTest(pChild->ParentToChild(point))) { \ |
465 return pChild->mouse_method_name(pChild->ParentToChild(point), \ | 463 return pChild->mouse_method_name(pChild->ParentToChild(point), \ |
466 nFlag); \ | 464 nFlag); \ |
467 } \ | 465 } \ |
468 } \ | 466 } \ |
469 } \ | 467 } \ |
470 if (WndHitTest(point)) \ | 468 if (WndHitTest(point)) \ |
471 SetCursor(); \ | 469 SetCursor(); \ |
472 } \ | 470 } \ |
473 } \ | 471 } \ |
474 return FALSE; \ | 472 return false; \ |
475 } | 473 } |
476 | 474 |
477 PWL_IMPLEMENT_KEY_METHOD(OnKeyDown) | 475 PWL_IMPLEMENT_KEY_METHOD(OnKeyDown) |
478 PWL_IMPLEMENT_KEY_METHOD(OnKeyUp) | 476 PWL_IMPLEMENT_KEY_METHOD(OnKeyUp) |
479 PWL_IMPLEMENT_KEY_METHOD(OnChar) | 477 PWL_IMPLEMENT_KEY_METHOD(OnChar) |
480 | 478 |
481 PWL_IMPLEMENT_MOUSE_METHOD(OnLButtonDblClk) | 479 PWL_IMPLEMENT_MOUSE_METHOD(OnLButtonDblClk) |
482 PWL_IMPLEMENT_MOUSE_METHOD(OnLButtonDown) | 480 PWL_IMPLEMENT_MOUSE_METHOD(OnLButtonDown) |
483 PWL_IMPLEMENT_MOUSE_METHOD(OnLButtonUp) | 481 PWL_IMPLEMENT_MOUSE_METHOD(OnLButtonUp) |
484 PWL_IMPLEMENT_MOUSE_METHOD(OnMButtonDblClk) | 482 PWL_IMPLEMENT_MOUSE_METHOD(OnMButtonDblClk) |
485 PWL_IMPLEMENT_MOUSE_METHOD(OnMButtonDown) | 483 PWL_IMPLEMENT_MOUSE_METHOD(OnMButtonDown) |
486 PWL_IMPLEMENT_MOUSE_METHOD(OnMButtonUp) | 484 PWL_IMPLEMENT_MOUSE_METHOD(OnMButtonUp) |
487 PWL_IMPLEMENT_MOUSE_METHOD(OnRButtonDown) | 485 PWL_IMPLEMENT_MOUSE_METHOD(OnRButtonDown) |
488 PWL_IMPLEMENT_MOUSE_METHOD(OnRButtonUp) | 486 PWL_IMPLEMENT_MOUSE_METHOD(OnRButtonUp) |
489 PWL_IMPLEMENT_MOUSE_METHOD(OnMouseMove) | 487 PWL_IMPLEMENT_MOUSE_METHOD(OnMouseMove) |
490 | 488 |
491 FX_BOOL CPWL_Wnd::OnMouseWheel(short zDelta, | 489 bool CPWL_Wnd::OnMouseWheel(short zDelta, |
492 const CFX_FloatPoint& point, | 490 const CFX_FloatPoint& point, |
493 uint32_t nFlag) { | 491 uint32_t nFlag) { |
494 if (IsValid() && IsVisible() && IsEnabled()) { | 492 if (IsValid() && IsVisible() && IsEnabled()) { |
495 SetCursor(); | 493 SetCursor(); |
496 if (IsWndCaptureKeyboard(this)) { | 494 if (IsWndCaptureKeyboard(this)) { |
497 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { | 495 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { |
498 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { | 496 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { |
499 if (IsWndCaptureKeyboard(pChild)) { | 497 if (IsWndCaptureKeyboard(pChild)) { |
500 return pChild->OnMouseWheel(zDelta, pChild->ParentToChild(point), | 498 return pChild->OnMouseWheel(zDelta, pChild->ParentToChild(point), |
501 nFlag); | 499 nFlag); |
502 } | 500 } |
503 } | 501 } |
504 } | 502 } |
505 } | 503 } |
506 } | 504 } |
507 return FALSE; | 505 return false; |
508 } | 506 } |
509 | 507 |
510 void CPWL_Wnd::AddChild(CPWL_Wnd* pWnd) { | 508 void CPWL_Wnd::AddChild(CPWL_Wnd* pWnd) { |
511 m_aChildren.Add(pWnd); | 509 m_aChildren.Add(pWnd); |
512 } | 510 } |
513 | 511 |
514 void CPWL_Wnd::RemoveChild(CPWL_Wnd* pWnd) { | 512 void CPWL_Wnd::RemoveChild(CPWL_Wnd* pWnd) { |
515 for (int32_t i = m_aChildren.GetSize() - 1; i >= 0; i--) { | 513 for (int32_t i = m_aChildren.GetSize() - 1; i >= 0; i--) { |
516 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { | 514 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { |
517 if (pChild == pWnd) { | 515 if (pChild == pWnd) { |
(...skipping 13 matching lines...) Expand all Loading... |
531 AddChild(pWnd); | 529 AddChild(pWnd); |
532 break; | 530 break; |
533 case PNM_REMOVECHILD: | 531 case PNM_REMOVECHILD: |
534 RemoveChild(pWnd); | 532 RemoveChild(pWnd); |
535 break; | 533 break; |
536 default: | 534 default: |
537 break; | 535 break; |
538 } | 536 } |
539 } | 537 } |
540 | 538 |
541 FX_BOOL CPWL_Wnd::IsValid() const { | 539 bool CPWL_Wnd::IsValid() const { |
542 return m_bCreated; | 540 return m_bCreated; |
543 } | 541 } |
544 | 542 |
545 const PWL_CREATEPARAM& CPWL_Wnd::GetCreationParam() const { | 543 const PWL_CREATEPARAM& CPWL_Wnd::GetCreationParam() const { |
546 return m_sPrivateParam; | 544 return m_sPrivateParam; |
547 } | 545 } |
548 | 546 |
549 CPWL_Wnd* CPWL_Wnd::GetParentWindow() const { | 547 CPWL_Wnd* CPWL_Wnd::GetParentWindow() const { |
550 return m_sPrivateParam.pParentWnd; | 548 return m_sPrivateParam.pParentWnd; |
551 } | 549 } |
(...skipping 12 matching lines...) Expand all Loading... |
564 rcClient.Normalize(); | 562 rcClient.Normalize(); |
565 return rcWindow.Contains(rcClient) ? rcClient : CFX_FloatRect(); | 563 return rcWindow.Contains(rcClient) ? rcClient : CFX_FloatRect(); |
566 } | 564 } |
567 | 565 |
568 CFX_FloatPoint CPWL_Wnd::GetCenterPoint() const { | 566 CFX_FloatPoint CPWL_Wnd::GetCenterPoint() const { |
569 CFX_FloatRect rcClient = GetClientRect(); | 567 CFX_FloatRect rcClient = GetClientRect(); |
570 return CFX_FloatPoint((rcClient.left + rcClient.right) * 0.5f, | 568 return CFX_FloatPoint((rcClient.left + rcClient.right) * 0.5f, |
571 (rcClient.top + rcClient.bottom) * 0.5f); | 569 (rcClient.top + rcClient.bottom) * 0.5f); |
572 } | 570 } |
573 | 571 |
574 FX_BOOL CPWL_Wnd::HasFlag(uint32_t dwFlags) const { | 572 bool CPWL_Wnd::HasFlag(uint32_t dwFlags) const { |
575 return (m_sPrivateParam.dwFlags & dwFlags) != 0; | 573 return (m_sPrivateParam.dwFlags & dwFlags) != 0; |
576 } | 574 } |
577 | 575 |
578 void CPWL_Wnd::RemoveFlag(uint32_t dwFlags) { | 576 void CPWL_Wnd::RemoveFlag(uint32_t dwFlags) { |
579 m_sPrivateParam.dwFlags &= ~dwFlags; | 577 m_sPrivateParam.dwFlags &= ~dwFlags; |
580 } | 578 } |
581 | 579 |
582 void CPWL_Wnd::AddFlag(uint32_t dwFlags) { | 580 void CPWL_Wnd::AddFlag(uint32_t dwFlags) { |
583 m_sPrivateParam.dwFlags |= dwFlags; | 581 m_sPrivateParam.dwFlags |= dwFlags; |
584 } | 582 } |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
697 if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) { | 695 if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) { |
698 if (pMsgCtrl->IsWndCaptureKeyboard(this)) | 696 if (pMsgCtrl->IsWndCaptureKeyboard(this)) |
699 pMsgCtrl->KillFocus(); | 697 pMsgCtrl->KillFocus(); |
700 } | 698 } |
701 } | 699 } |
702 | 700 |
703 void CPWL_Wnd::OnSetFocus() {} | 701 void CPWL_Wnd::OnSetFocus() {} |
704 | 702 |
705 void CPWL_Wnd::OnKillFocus() {} | 703 void CPWL_Wnd::OnKillFocus() {} |
706 | 704 |
707 FX_BOOL CPWL_Wnd::WndHitTest(const CFX_FloatPoint& point) const { | 705 bool CPWL_Wnd::WndHitTest(const CFX_FloatPoint& point) const { |
708 return IsValid() && IsVisible() && GetWindowRect().Contains(point.x, point.y); | 706 return IsValid() && IsVisible() && GetWindowRect().Contains(point.x, point.y); |
709 } | 707 } |
710 | 708 |
711 FX_BOOL CPWL_Wnd::ClientHitTest(const CFX_FloatPoint& point) const { | 709 bool CPWL_Wnd::ClientHitTest(const CFX_FloatPoint& point) const { |
712 return IsValid() && IsVisible() && GetClientRect().Contains(point.x, point.y); | 710 return IsValid() && IsVisible() && GetClientRect().Contains(point.x, point.y); |
713 } | 711 } |
714 | 712 |
715 const CPWL_Wnd* CPWL_Wnd::GetRootWnd() const { | 713 const CPWL_Wnd* CPWL_Wnd::GetRootWnd() const { |
716 if (m_sPrivateParam.pParentWnd) | 714 if (m_sPrivateParam.pParentWnd) |
717 return m_sPrivateParam.pParentWnd->GetRootWnd(); | 715 return m_sPrivateParam.pParentWnd->GetRootWnd(); |
718 | 716 |
719 return this; | 717 return this; |
720 } | 718 } |
721 | 719 |
722 void CPWL_Wnd::SetVisible(FX_BOOL bVisible) { | 720 void CPWL_Wnd::SetVisible(bool bVisible) { |
723 if (IsValid()) { | 721 if (IsValid()) { |
724 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { | 722 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { |
725 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { | 723 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { |
726 pChild->SetVisible(bVisible); | 724 pChild->SetVisible(bVisible); |
727 } | 725 } |
728 } | 726 } |
729 | 727 |
730 if (bVisible != m_bVisible) { | 728 if (bVisible != m_bVisible) { |
731 m_bVisible = bVisible; | 729 m_bVisible = bVisible; |
732 RePosChildWnd(); | 730 RePosChildWnd(); |
733 InvalidateRect(); | 731 InvalidateRect(); |
734 } | 732 } |
735 } | 733 } |
736 } | 734 } |
737 | 735 |
738 void CPWL_Wnd::SetClipRect(const CFX_FloatRect& rect) { | 736 void CPWL_Wnd::SetClipRect(const CFX_FloatRect& rect) { |
739 m_rcClip = rect; | 737 m_rcClip = rect; |
740 m_rcClip.Normalize(); | 738 m_rcClip.Normalize(); |
741 } | 739 } |
742 | 740 |
743 const CFX_FloatRect& CPWL_Wnd::GetClipRect() const { | 741 const CFX_FloatRect& CPWL_Wnd::GetClipRect() const { |
744 return m_rcClip; | 742 return m_rcClip; |
745 } | 743 } |
746 | 744 |
747 FX_BOOL CPWL_Wnd::IsReadOnly() const { | 745 bool CPWL_Wnd::IsReadOnly() const { |
748 return HasFlag(PWS_READONLY); | 746 return HasFlag(PWS_READONLY); |
749 } | 747 } |
750 | 748 |
751 void CPWL_Wnd::RePosChildWnd() { | 749 void CPWL_Wnd::RePosChildWnd() { |
752 CFX_FloatRect rcContent = CPWL_Utils::DeflateRect( | 750 CFX_FloatRect rcContent = CPWL_Utils::DeflateRect( |
753 GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth())); | 751 GetWindowRect(), (FX_FLOAT)(GetBorderWidth() + GetInnerBorderWidth())); |
754 | 752 |
755 CPWL_ScrollBar* pVSB = GetVScrollBar(); | 753 CPWL_ScrollBar* pVSB = GetVScrollBar(); |
756 | 754 |
757 CFX_FloatRect rcVScroll = | 755 CFX_FloatRect rcVScroll = |
758 CFX_FloatRect(rcContent.right - PWL_SCROLLBAR_WIDTH, rcContent.bottom, | 756 CFX_FloatRect(rcContent.right - PWL_SCROLLBAR_WIDTH, rcContent.bottom, |
759 rcContent.right - 1.0f, rcContent.top); | 757 rcContent.right - 1.0f, rcContent.top); |
760 | 758 |
761 if (pVSB) | 759 if (pVSB) |
762 pVSB->Move(rcVScroll, TRUE, FALSE); | 760 pVSB->Move(rcVScroll, true, false); |
763 } | 761 } |
764 | 762 |
765 void CPWL_Wnd::CreateChildWnd(const PWL_CREATEPARAM& cp) {} | 763 void CPWL_Wnd::CreateChildWnd(const PWL_CREATEPARAM& cp) {} |
766 | 764 |
767 void CPWL_Wnd::SetCursor() { | 765 void CPWL_Wnd::SetCursor() { |
768 if (IsValid()) { | 766 if (IsValid()) { |
769 if (CFX_SystemHandler* pSH = GetSystemHandler()) { | 767 if (CFX_SystemHandler* pSH = GetSystemHandler()) { |
770 int32_t nCursorType = GetCreationParam().eCursorType; | 768 int32_t nCursorType = GetCreationParam().eCursorType; |
771 pSH->SetCursor(nCursorType); | 769 pSH->SetCursor(nCursorType); |
772 } | 770 } |
773 } | 771 } |
774 } | 772 } |
775 | 773 |
776 void CPWL_Wnd::CreateMsgControl() { | 774 void CPWL_Wnd::CreateMsgControl() { |
777 if (!m_sPrivateParam.pMsgControl) | 775 if (!m_sPrivateParam.pMsgControl) |
778 m_sPrivateParam.pMsgControl = new CPWL_MsgControl(this); | 776 m_sPrivateParam.pMsgControl = new CPWL_MsgControl(this); |
779 } | 777 } |
780 | 778 |
781 void CPWL_Wnd::DestroyMsgControl() { | 779 void CPWL_Wnd::DestroyMsgControl() { |
782 if (CPWL_MsgControl* pMsgControl = GetMsgControl()) | 780 if (CPWL_MsgControl* pMsgControl = GetMsgControl()) |
783 if (pMsgControl->IsWndCreated(this)) | 781 if (pMsgControl->IsWndCreated(this)) |
784 delete pMsgControl; | 782 delete pMsgControl; |
785 } | 783 } |
786 | 784 |
787 CPWL_MsgControl* CPWL_Wnd::GetMsgControl() const { | 785 CPWL_MsgControl* CPWL_Wnd::GetMsgControl() const { |
788 return m_sPrivateParam.pMsgControl; | 786 return m_sPrivateParam.pMsgControl; |
789 } | 787 } |
790 | 788 |
791 FX_BOOL CPWL_Wnd::IsCaptureMouse() const { | 789 bool CPWL_Wnd::IsCaptureMouse() const { |
792 return IsWndCaptureMouse(this); | 790 return IsWndCaptureMouse(this); |
793 } | 791 } |
794 | 792 |
795 FX_BOOL CPWL_Wnd::IsWndCaptureMouse(const CPWL_Wnd* pWnd) const { | 793 bool CPWL_Wnd::IsWndCaptureMouse(const CPWL_Wnd* pWnd) const { |
796 if (CPWL_MsgControl* pCtrl = GetMsgControl()) | 794 if (CPWL_MsgControl* pCtrl = GetMsgControl()) |
797 return pCtrl->IsWndCaptureMouse(pWnd); | 795 return pCtrl->IsWndCaptureMouse(pWnd); |
798 | 796 |
799 return FALSE; | 797 return false; |
800 } | 798 } |
801 | 799 |
802 FX_BOOL CPWL_Wnd::IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const { | 800 bool CPWL_Wnd::IsWndCaptureKeyboard(const CPWL_Wnd* pWnd) const { |
803 if (CPWL_MsgControl* pCtrl = GetMsgControl()) | 801 if (CPWL_MsgControl* pCtrl = GetMsgControl()) |
804 return pCtrl->IsWndCaptureKeyboard(pWnd); | 802 return pCtrl->IsWndCaptureKeyboard(pWnd); |
805 | 803 |
806 return FALSE; | 804 return false; |
807 } | 805 } |
808 | 806 |
809 FX_BOOL CPWL_Wnd::IsFocused() const { | 807 bool CPWL_Wnd::IsFocused() const { |
810 if (CPWL_MsgControl* pCtrl = GetMsgControl()) | 808 if (CPWL_MsgControl* pCtrl = GetMsgControl()) |
811 return pCtrl->IsMainCaptureKeyboard(this); | 809 return pCtrl->IsMainCaptureKeyboard(this); |
812 | 810 |
813 return FALSE; | 811 return false; |
814 } | 812 } |
815 | 813 |
816 CFX_FloatRect CPWL_Wnd::GetFocusRect() const { | 814 CFX_FloatRect CPWL_Wnd::GetFocusRect() const { |
817 return CPWL_Utils::InflateRect(GetWindowRect(), 1); | 815 return CPWL_Utils::InflateRect(GetWindowRect(), 1); |
818 } | 816 } |
819 | 817 |
820 FX_FLOAT CPWL_Wnd::GetFontSize() const { | 818 FX_FLOAT CPWL_Wnd::GetFontSize() const { |
821 return m_sPrivateParam.fFontSize; | 819 return m_sPrivateParam.fFontSize; |
822 } | 820 } |
823 | 821 |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
984 } | 982 } |
985 | 983 |
986 const CPWL_Wnd* CPWL_Wnd::GetFocused() const { | 984 const CPWL_Wnd* CPWL_Wnd::GetFocused() const { |
987 if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) { | 985 if (CPWL_MsgControl* pMsgCtrl = GetMsgControl()) { |
988 return pMsgCtrl->m_pMainKeyboardWnd; | 986 return pMsgCtrl->m_pMainKeyboardWnd; |
989 } | 987 } |
990 | 988 |
991 return nullptr; | 989 return nullptr; |
992 } | 990 } |
993 | 991 |
994 void CPWL_Wnd::EnableWindow(FX_BOOL bEnable) { | 992 void CPWL_Wnd::EnableWindow(bool bEnable) { |
995 if (m_bEnabled != bEnable) { | 993 if (m_bEnabled != bEnable) { |
996 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { | 994 for (int32_t i = 0, sz = m_aChildren.GetSize(); i < sz; i++) { |
997 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { | 995 if (CPWL_Wnd* pChild = m_aChildren.GetAt(i)) { |
998 pChild->EnableWindow(bEnable); | 996 pChild->EnableWindow(bEnable); |
999 } | 997 } |
1000 } | 998 } |
1001 | 999 |
1002 m_bEnabled = bEnable; | 1000 m_bEnabled = bEnable; |
1003 | 1001 |
1004 if (bEnable) | 1002 if (bEnable) |
1005 OnEnabled(); | 1003 OnEnabled(); |
1006 else | 1004 else |
1007 OnDisabled(); | 1005 OnDisabled(); |
1008 } | 1006 } |
1009 } | 1007 } |
1010 | 1008 |
1011 FX_BOOL CPWL_Wnd::IsEnabled() { | 1009 bool CPWL_Wnd::IsEnabled() { |
1012 return m_bEnabled; | 1010 return m_bEnabled; |
1013 } | 1011 } |
1014 | 1012 |
1015 void CPWL_Wnd::OnEnabled() {} | 1013 void CPWL_Wnd::OnEnabled() {} |
1016 | 1014 |
1017 void CPWL_Wnd::OnDisabled() {} | 1015 void CPWL_Wnd::OnDisabled() {} |
1018 | 1016 |
1019 FX_BOOL CPWL_Wnd::IsCTRLpressed(uint32_t nFlag) const { | 1017 bool CPWL_Wnd::IsCTRLpressed(uint32_t nFlag) const { |
1020 if (CFX_SystemHandler* pSystemHandler = GetSystemHandler()) { | 1018 if (CFX_SystemHandler* pSystemHandler = GetSystemHandler()) { |
1021 return pSystemHandler->IsCTRLKeyDown(nFlag); | 1019 return pSystemHandler->IsCTRLKeyDown(nFlag); |
1022 } | 1020 } |
1023 | 1021 |
1024 return FALSE; | 1022 return false; |
1025 } | 1023 } |
1026 | 1024 |
1027 FX_BOOL CPWL_Wnd::IsSHIFTpressed(uint32_t nFlag) const { | 1025 bool CPWL_Wnd::IsSHIFTpressed(uint32_t nFlag) const { |
1028 if (CFX_SystemHandler* pSystemHandler = GetSystemHandler()) { | 1026 if (CFX_SystemHandler* pSystemHandler = GetSystemHandler()) { |
1029 return pSystemHandler->IsSHIFTKeyDown(nFlag); | 1027 return pSystemHandler->IsSHIFTKeyDown(nFlag); |
1030 } | 1028 } |
1031 | 1029 |
1032 return FALSE; | 1030 return false; |
1033 } | 1031 } |
1034 | 1032 |
1035 FX_BOOL CPWL_Wnd::IsALTpressed(uint32_t nFlag) const { | 1033 bool CPWL_Wnd::IsALTpressed(uint32_t nFlag) const { |
1036 if (CFX_SystemHandler* pSystemHandler = GetSystemHandler()) { | 1034 if (CFX_SystemHandler* pSystemHandler = GetSystemHandler()) { |
1037 return pSystemHandler->IsALTKeyDown(nFlag); | 1035 return pSystemHandler->IsALTKeyDown(nFlag); |
1038 } | 1036 } |
1039 | 1037 |
1040 return FALSE; | 1038 return false; |
1041 } | 1039 } |
OLD | NEW |