| 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 "../../include/pdfwindow/PDFWindow.h" | 7 #include "../../include/pdfwindow/PDFWindow.h" |
| 8 #include "../../include/pdfwindow/PWL_Wnd.h" | 8 #include "../../include/pdfwindow/PWL_Wnd.h" |
| 9 #include "../../include/pdfwindow/PWL_ScrollBar.h" | 9 #include "../../include/pdfwindow/PWL_ScrollBar.h" |
| 10 #include "../../include/pdfwindow/PWL_Utils.h" | 10 #include "../../include/pdfwindow/PWL_Utils.h" |
| (...skipping 29 matching lines...) Expand all Loading... |
| 40 fMin = max; | 40 fMin = max; |
| 41 fMax = min; | 41 fMax = min; |
| 42 } | 42 } |
| 43 else | 43 else |
| 44 { | 44 { |
| 45 fMin = min; | 45 fMin = min; |
| 46 fMax = max; | 46 fMax = max; |
| 47 } | 47 } |
| 48 } | 48 } |
| 49 | 49 |
| 50 FX_BOOL»PWL_FLOATRANGE::In(FX_FLOAT x) const | 50 bool» PWL_FLOATRANGE::In(FX_FLOAT x) const |
| 51 { | 51 { |
| 52 return (IsFloatBigger(x,fMin) || IsFloatEqual(x, fMin)) && | 52 return (IsFloatBigger(x,fMin) || IsFloatEqual(x, fMin)) && |
| 53 (IsFloatSmaller(x, fMax) || IsFloatEqual(x, fMax)); | 53 (IsFloatSmaller(x, fMax) || IsFloatEqual(x, fMax)); |
| 54 } | 54 } |
| 55 | 55 |
| 56 FX_FLOAT PWL_FLOATRANGE::GetWidth() const | 56 FX_FLOAT PWL_FLOATRANGE::GetWidth() const |
| 57 { | 57 { |
| 58 return fMax - fMin; | 58 return fMax - fMin; |
| 59 } | 59 } |
| 60 | 60 |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 void PWL_SCROLL_PRIVATEDATA::SetSmallStep(FX_FLOAT step) | 92 void PWL_SCROLL_PRIVATEDATA::SetSmallStep(FX_FLOAT step) |
| 93 { | 93 { |
| 94 fSmallStep = step; | 94 fSmallStep = step; |
| 95 } | 95 } |
| 96 | 96 |
| 97 void PWL_SCROLL_PRIVATEDATA::SetBigStep(FX_FLOAT step) | 97 void PWL_SCROLL_PRIVATEDATA::SetBigStep(FX_FLOAT step) |
| 98 { | 98 { |
| 99 fBigStep = step; | 99 fBigStep = step; |
| 100 } | 100 } |
| 101 | 101 |
| 102 FX_BOOL PWL_SCROLL_PRIVATEDATA::SetPos(FX_FLOAT pos) | 102 bool PWL_SCROLL_PRIVATEDATA::SetPos(FX_FLOAT pos) |
| 103 { | 103 { |
| 104 if (ScrollRange.In(pos)) | 104 if (ScrollRange.In(pos)) |
| 105 { | 105 { |
| 106 fScrollPos = pos; | 106 fScrollPos = pos; |
| 107 » » return TRUE; | 107 » » return true; |
| 108 } | 108 } |
| 109 » return FALSE; | 109 » return false; |
| 110 } | 110 } |
| 111 | 111 |
| 112 void PWL_SCROLL_PRIVATEDATA::AddSmall() | 112 void PWL_SCROLL_PRIVATEDATA::AddSmall() |
| 113 { | 113 { |
| 114 if (!SetPos(fScrollPos + fSmallStep)) | 114 if (!SetPos(fScrollPos + fSmallStep)) |
| 115 SetPos(ScrollRange.fMax); | 115 SetPos(ScrollRange.fMax); |
| 116 } | 116 } |
| 117 | 117 |
| 118 void PWL_SCROLL_PRIVATEDATA::SubSmall() | 118 void PWL_SCROLL_PRIVATEDATA::SubSmall() |
| 119 { | 119 { |
| (...skipping 13 matching lines...) Expand all Loading... |
| 133 SetPos(ScrollRange.fMin); | 133 SetPos(ScrollRange.fMin); |
| 134 } | 134 } |
| 135 | 135 |
| 136 /* ------------------------------- CPWL_SBButton -------------------------------
*/ | 136 /* ------------------------------- CPWL_SBButton -------------------------------
*/ |
| 137 | 137 |
| 138 CPWL_SBButton::CPWL_SBButton(PWL_SCROLLBAR_TYPE eScrollBarType,PWL_SBBUTTON_TYPE
eButtonType) | 138 CPWL_SBButton::CPWL_SBButton(PWL_SCROLLBAR_TYPE eScrollBarType,PWL_SBBUTTON_TYPE
eButtonType) |
| 139 { | 139 { |
| 140 m_eScrollBarType = eScrollBarType; | 140 m_eScrollBarType = eScrollBarType; |
| 141 m_eSBButtonType = eButtonType; | 141 m_eSBButtonType = eButtonType; |
| 142 | 142 |
| 143 » m_bMouseDown = FALSE; | 143 » m_bMouseDown = false; |
| 144 } | 144 } |
| 145 | 145 |
| 146 CPWL_SBButton::~CPWL_SBButton() | 146 CPWL_SBButton::~CPWL_SBButton() |
| 147 { | 147 { |
| 148 | 148 |
| 149 } | 149 } |
| 150 | 150 |
| 151 CFX_ByteString CPWL_SBButton::GetClassName() const | 151 CFX_ByteString CPWL_SBButton::GetClassName() const |
| 152 { | 152 { |
| 153 return "CPWL_SBButton"; | 153 return "CPWL_SBButton"; |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 352 //draw inner border | 352 //draw inner border |
| 353 rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f); | 353 rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f); |
| 354 CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device
, rcDraw, | 354 CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device
, rcDraw, |
| 355 ArgbEncode(nTransparancy,255,255,255),1.
0f); | 355 ArgbEncode(nTransparancy,255,255,255),1.
0f); |
| 356 | 356 |
| 357 //draw background | 357 //draw background |
| 358 | 358 |
| 359 rcDraw = CPWL_Utils::DeflateRect(rectWnd,1.0f); | 359 rcDraw = CPWL_Utils::DeflateRect(rectWnd,1.0f); |
| 360 | 360 |
| 361 if (IsEnabled()) | 361 if (IsEnabled()) |
| 362 » » » » » CPWL_Utils::DrawShadow(pDevice, pUser2De
vice, TRUE, FALSE, rcDraw, nTransparancy, 80, 220); | 362 » » » » » CPWL_Utils::DrawShadow(pDevice, pUser2De
vice, true, false, rcDraw, nTransparancy, 80, 220); |
| 363 else | 363 else |
| 364 CPWL_Utils::DrawFillRect(pDevice, pUser2
Device, rcDraw, ArgbEncode(255,255,255,255)); | 364 CPWL_Utils::DrawFillRect(pDevice, pUser2
Device, rcDraw, ArgbEncode(255,255,255,255)); |
| 365 | 365 |
| 366 //draw arrow | 366 //draw arrow |
| 367 | 367 |
| 368 if (rectWnd.top - rectWnd.bottom > 6.0f ) | 368 if (rectWnd.top - rectWnd.bottom > 6.0f ) |
| 369 { | 369 { |
| 370 FX_FLOAT fX = rectWnd.left + 1.5f; | 370 FX_FLOAT fX = rectWnd.left + 1.5f; |
| 371 FX_FLOAT fY = rectWnd.bottom; | 371 FX_FLOAT fY = rectWnd.bottom; |
| 372 CPDF_Point pts[7] = { | 372 CPDF_Point pts[7] = { |
| (...skipping 22 matching lines...) Expand all Loading... |
| 395 ArgbEncode(nTransparancy,100,100,100),0.
0f); | 395 ArgbEncode(nTransparancy,100,100,100),0.
0f); |
| 396 | 396 |
| 397 //draw inner border | 397 //draw inner border |
| 398 rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f); | 398 rcDraw = CPWL_Utils::DeflateRect(rectWnd,0.5f); |
| 399 CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device
, rcDraw, | 399 CPWL_Utils::DrawStrokeRect(pDevice, pUser2Device
, rcDraw, |
| 400 ArgbEncode(nTransparancy,255,255,255),1.
0f); | 400 ArgbEncode(nTransparancy,255,255,255),1.
0f); |
| 401 | 401 |
| 402 //draw background | 402 //draw background |
| 403 rcDraw = CPWL_Utils::DeflateRect(rectWnd,1.0f); | 403 rcDraw = CPWL_Utils::DeflateRect(rectWnd,1.0f); |
| 404 if (IsEnabled()) | 404 if (IsEnabled()) |
| 405 » » » » » CPWL_Utils::DrawShadow(pDevice, pUser2De
vice, TRUE, FALSE, rcDraw, nTransparancy, 80, 220); | 405 » » » » » CPWL_Utils::DrawShadow(pDevice, pUser2De
vice, true, false, rcDraw, nTransparancy, 80, 220); |
| 406 else | 406 else |
| 407 CPWL_Utils::DrawFillRect(pDevice, pUser2
Device, rcDraw, ArgbEncode(255,255,255,255)); | 407 CPWL_Utils::DrawFillRect(pDevice, pUser2
Device, rcDraw, ArgbEncode(255,255,255,255)); |
| 408 | 408 |
| 409 //draw arrow | 409 //draw arrow |
| 410 | 410 |
| 411 if (rectWnd.top - rectWnd.bottom > 6.0f ) | 411 if (rectWnd.top - rectWnd.bottom > 6.0f ) |
| 412 { | 412 { |
| 413 FX_FLOAT fX = rectWnd.left + 1.5f; | 413 FX_FLOAT fX = rectWnd.left + 1.5f; |
| 414 FX_FLOAT fY = rectWnd.bottom; | 414 FX_FLOAT fY = rectWnd.bottom; |
| 415 | 415 |
| (...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 558 break; | 558 break; |
| 559 default: | 559 default: |
| 560 break; | 560 break; |
| 561 } | 561 } |
| 562 break; | 562 break; |
| 563 default: | 563 default: |
| 564 break; | 564 break; |
| 565 } | 565 } |
| 566 } | 566 } |
| 567 | 567 |
| 568 FX_BOOL CPWL_SBButton::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag) | 568 bool CPWL_SBButton::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag) |
| 569 { | 569 { |
| 570 CPWL_Wnd::OnLButtonDown(point,nFlag); | 570 CPWL_Wnd::OnLButtonDown(point,nFlag); |
| 571 | 571 |
| 572 if (CPWL_Wnd * pParent = GetParentWindow()) | 572 if (CPWL_Wnd * pParent = GetParentWindow()) |
| 573 pParent->OnNotify(this,PNM_LBUTTONDOWN,0,(intptr_t)&point); | 573 pParent->OnNotify(this,PNM_LBUTTONDOWN,0,(intptr_t)&point); |
| 574 | 574 |
| 575 » m_bMouseDown = TRUE; | 575 » m_bMouseDown = true; |
| 576 SetCapture(); | 576 SetCapture(); |
| 577 | 577 |
| 578 » return TRUE; | 578 » return true; |
| 579 } | 579 } |
| 580 | 580 |
| 581 FX_BOOL CPWL_SBButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) | 581 bool CPWL_SBButton::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) |
| 582 { | 582 { |
| 583 CPWL_Wnd::OnLButtonUp(point,nFlag); | 583 CPWL_Wnd::OnLButtonUp(point,nFlag); |
| 584 | 584 |
| 585 if (CPWL_Wnd * pParent = GetParentWindow()) | 585 if (CPWL_Wnd * pParent = GetParentWindow()) |
| 586 pParent->OnNotify(this,PNM_LBUTTONUP,0,(intptr_t)&point); | 586 pParent->OnNotify(this,PNM_LBUTTONUP,0,(intptr_t)&point); |
| 587 | 587 |
| 588 » m_bMouseDown = FALSE; | 588 » m_bMouseDown = false; |
| 589 ReleaseCapture(); | 589 ReleaseCapture(); |
| 590 | 590 |
| 591 » return TRUE; | 591 » return true; |
| 592 } | 592 } |
| 593 | 593 |
| 594 FX_BOOL CPWL_SBButton::OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag) | 594 bool CPWL_SBButton::OnMouseMove(const CPDF_Point & point, FX_DWORD nFlag) |
| 595 { | 595 { |
| 596 CPWL_Wnd::OnMouseMove(point,nFlag); | 596 CPWL_Wnd::OnMouseMove(point,nFlag); |
| 597 | 597 |
| 598 if (CPWL_Wnd * pParent = GetParentWindow()) | 598 if (CPWL_Wnd * pParent = GetParentWindow()) |
| 599 { | 599 { |
| 600 pParent->OnNotify(this,PNM_MOUSEMOVE,0,(intptr_t)&point); | 600 pParent->OnNotify(this,PNM_MOUSEMOVE,0,(intptr_t)&point); |
| 601 | 601 |
| 602 /* | 602 /* |
| 603 if (m_bMouseDown && (m_eSBButtonType == PSBT_MIN || m_eSBButtonT
ype == PSBT_MAX)) | 603 if (m_bMouseDown && (m_eSBButtonType == PSBT_MIN || m_eSBButtonT
ype == PSBT_MAX)) |
| 604 { | 604 { |
| 605 if (!pParent->OnNotify(this,PNM_LBUTTONDOWN,nFlags,(intp
tr_t)&point)) | 605 if (!pParent->OnNotify(this,PNM_LBUTTONDOWN,nFlags,(intp
tr_t)&point)) |
| 606 » » » » return FALSE; | 606 » » » » return false; |
| 607 } | 607 } |
| 608 */ | 608 */ |
| 609 } | 609 } |
| 610 | 610 |
| 611 » return TRUE; | 611 » return true; |
| 612 } | 612 } |
| 613 | 613 |
| 614 /* ------------------------------- CPWL_ScrollBar ------------------------------
---- */ | 614 /* ------------------------------- CPWL_ScrollBar ------------------------------
---- */ |
| 615 | 615 |
| 616 CPWL_ScrollBar::CPWL_ScrollBar(PWL_SCROLLBAR_TYPE sbType): | 616 CPWL_ScrollBar::CPWL_ScrollBar(PWL_SCROLLBAR_TYPE sbType): |
| 617 m_sbType(sbType), | 617 m_sbType(sbType), |
| 618 m_pMinButton(NULL), | 618 m_pMinButton(NULL), |
| 619 m_pMaxButton(NULL), | 619 m_pMaxButton(NULL), |
| 620 m_pPosButton(NULL), | 620 m_pPosButton(NULL), |
| 621 » m_bMouseDown(FALSE), | 621 » m_bMouseDown(false), |
| 622 » m_bMinOrMax(FALSE), | 622 » m_bMinOrMax(false), |
| 623 » m_bNotifyForever(TRUE) | 623 » m_bNotifyForever(true) |
| 624 { | 624 { |
| 625 } | 625 } |
| 626 | 626 |
| 627 CPWL_ScrollBar::~CPWL_ScrollBar() | 627 CPWL_ScrollBar::~CPWL_ScrollBar() |
| 628 { | 628 { |
| 629 } | 629 } |
| 630 | 630 |
| 631 CFX_ByteString CPWL_ScrollBar::GetClassName() const | 631 CFX_ByteString CPWL_ScrollBar::GetClassName() const |
| 632 { | 632 { |
| 633 return "CPWL_ScrollBar"; | 633 return "CPWL_ScrollBar"; |
| (...skipping 24 matching lines...) Expand all Loading... |
| 658 { | 658 { |
| 659 fBWidth = (rcClient.right - rcClient.left - PWL_SCROLLBA
R_POSBUTTON_MINWIDTH - 2) / 2; | 659 fBWidth = (rcClient.right - rcClient.left - PWL_SCROLLBA
R_POSBUTTON_MINWIDTH - 2) / 2; |
| 660 | 660 |
| 661 if (fBWidth > 0) | 661 if (fBWidth > 0) |
| 662 { | 662 { |
| 663 rcMinButton = CPDF_Rect(rcClient.left,rcClient.b
ottom, | 663 rcMinButton = CPDF_Rect(rcClient.left,rcClient.b
ottom, |
| 664 rcClient.left + fBWidth,rcClient.top); | 664 rcClient.left + fBWidth,rcClient.top); |
| 665 rcMaxButton = CPDF_Rect(rcClient.right - fBWidth
,rcClient.bottom, | 665 rcMaxButton = CPDF_Rect(rcClient.right - fBWidth
,rcClient.bottom, |
| 666 rcClient.right,rcClient.top); | 666 rcClient.right,rcClient.top); |
| 667 } | 667 } |
| 668 » » » else SetVisible(FALSE); | 668 » » » else SetVisible(false); |
| 669 } | 669 } |
| 670 break; | 670 break; |
| 671 case SBT_VSCROLL: | 671 case SBT_VSCROLL: |
| 672 if (IsFloatBigger(rcClient.top - rcClient.bottom, PWL_SCROLLBAR_
BUTTON_WIDTH * 2 + PWL_SCROLLBAR_POSBUTTON_MINWIDTH + 2)) | 672 if (IsFloatBigger(rcClient.top - rcClient.bottom, PWL_SCROLLBAR_
BUTTON_WIDTH * 2 + PWL_SCROLLBAR_POSBUTTON_MINWIDTH + 2)) |
| 673 { | 673 { |
| 674 rcMinButton = CPDF_Rect(rcClient.left,rcClient.top - PWL
_SCROLLBAR_BUTTON_WIDTH, | 674 rcMinButton = CPDF_Rect(rcClient.left,rcClient.top - PWL
_SCROLLBAR_BUTTON_WIDTH, |
| 675 rcClient.right,rcClient.top); | 675 rcClient.right,rcClient.top); |
| 676 rcMaxButton = CPDF_Rect(rcClient.left,rcClient.bottom, | 676 rcMaxButton = CPDF_Rect(rcClient.left,rcClient.bottom, |
| 677 rcClient.right,rcClient.bottom + PWL_SCROLLBAR_B
UTTON_WIDTH); | 677 rcClient.right,rcClient.bottom + PWL_SCROLLBAR_B
UTTON_WIDTH); |
| 678 } | 678 } |
| 679 else | 679 else |
| 680 { | 680 { |
| 681 fBWidth = (rcClient.top - rcClient.bottom - PWL_SCROLLBA
R_POSBUTTON_MINWIDTH - 2) / 2; | 681 fBWidth = (rcClient.top - rcClient.bottom - PWL_SCROLLBA
R_POSBUTTON_MINWIDTH - 2) / 2; |
| 682 | 682 |
| 683 if (IsFloatBigger(fBWidth, 0)) | 683 if (IsFloatBigger(fBWidth, 0)) |
| 684 { | 684 { |
| 685 rcMinButton = CPDF_Rect(rcClient.left,rcClient.t
op - fBWidth, | 685 rcMinButton = CPDF_Rect(rcClient.left,rcClient.t
op - fBWidth, |
| 686 rcClient.right,rcClient.top); | 686 rcClient.right,rcClient.top); |
| 687 rcMaxButton = CPDF_Rect(rcClient.left,rcClient.b
ottom, | 687 rcMaxButton = CPDF_Rect(rcClient.left,rcClient.b
ottom, |
| 688 rcClient.right,rcClient.bottom + fBWidth
); | 688 rcClient.right,rcClient.bottom + fBWidth
); |
| 689 } | 689 } |
| 690 » » » else SetVisible(FALSE); | 690 » » » else SetVisible(false); |
| 691 } | 691 } |
| 692 break; | 692 break; |
| 693 } | 693 } |
| 694 | 694 |
| 695 if (m_pMinButton) | 695 if (m_pMinButton) |
| 696 m_pMinButton->Move(rcMinButton, TRUE, FALSE); | 696 m_pMinButton->Move(rcMinButton, true, false); |
| 697 if (m_pMaxButton) | 697 if (m_pMaxButton) |
| 698 m_pMaxButton->Move(rcMaxButton, TRUE, FALSE); | 698 m_pMaxButton->Move(rcMaxButton, true, false); |
| 699 MovePosButton(FALSE); | 699 MovePosButton(false); |
| 700 } | 700 } |
| 701 | 701 |
| 702 void CPWL_ScrollBar::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream) | 702 void CPWL_ScrollBar::GetThisAppearanceStream(CFX_ByteTextBuf & sAppStream) |
| 703 { | 703 { |
| 704 CPDF_Rect rectWnd = GetWindowRect(); | 704 CPDF_Rect rectWnd = GetWindowRect(); |
| 705 | 705 |
| 706 if (IsVisible() && !rectWnd.IsEmpty()) | 706 if (IsVisible() && !rectWnd.IsEmpty()) |
| 707 { | 707 { |
| 708 CFX_ByteTextBuf sButton; | 708 CFX_ByteTextBuf sButton; |
| 709 | 709 |
| 710 sButton << "q\n"; | 710 sButton << "q\n"; |
| 711 » » sButton << "0 w\n" << CPWL_Utils::GetColorAppStream(GetBackgroun
dColor(),TRUE); | 711 » » sButton << "0 w\n" << CPWL_Utils::GetColorAppStream(GetBackgroun
dColor(),true); |
| 712 sButton << rectWnd.left << " " << rectWnd.bottom << " " | 712 sButton << rectWnd.left << " " << rectWnd.bottom << " " |
| 713 << rectWnd.right - rectWnd.left << " " << rectWn
d.top - rectWnd.bottom << " re b Q\n"; | 713 << rectWnd.right - rectWnd.left << " " << rectWn
d.top - rectWnd.bottom << " re b Q\n"; |
| 714 | 714 |
| 715 sAppStream << sButton; | 715 sAppStream << sButton; |
| 716 } | 716 } |
| 717 } | 717 } |
| 718 | 718 |
| 719 void CPWL_ScrollBar::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix*
pUser2Device) | 719 void CPWL_ScrollBar::DrawThisAppearance(CFX_RenderDevice* pDevice, CPDF_Matrix*
pUser2Device) |
| 720 { | 720 { |
| 721 CPDF_Rect rectWnd = GetWindowRect(); | 721 CPDF_Rect rectWnd = GetWindowRect(); |
| 722 | 722 |
| 723 if (IsVisible() && !rectWnd.IsEmpty()) | 723 if (IsVisible() && !rectWnd.IsEmpty()) |
| 724 { | 724 { |
| 725 CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rectWnd, GetBack
groundColor(), GetTransparency()); | 725 CPWL_Utils::DrawFillRect(pDevice, pUser2Device, rectWnd, GetBack
groundColor(), GetTransparency()); |
| 726 | 726 |
| 727 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, | 727 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, |
| 728 CPDF_Point(rectWnd.left+2.0f,rectWnd.top-2.0f), CPDF_Poi
nt(rectWnd.left+2.0f,rectWnd.bottom+2.0f), | 728 CPDF_Point(rectWnd.left+2.0f,rectWnd.top-2.0f), CPDF_Poi
nt(rectWnd.left+2.0f,rectWnd.bottom+2.0f), |
| 729 ArgbEncode(GetTransparency(), 100, 100, 100), 1.0f); | 729 ArgbEncode(GetTransparency(), 100, 100, 100), 1.0f); |
| 730 | 730 |
| 731 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, | 731 CPWL_Utils::DrawStrokeLine(pDevice, pUser2Device, |
| 732 CPDF_Point(rectWnd.right-2.0f,rectWnd.top-2.0f), CPDF_Po
int(rectWnd.right-2.0f,rectWnd.bottom+2.0f), | 732 CPDF_Point(rectWnd.right-2.0f,rectWnd.top-2.0f), CPDF_Po
int(rectWnd.right-2.0f,rectWnd.bottom+2.0f), |
| 733 ArgbEncode(GetTransparency(), 100, 100, 100),1.0f); | 733 ArgbEncode(GetTransparency(), 100, 100, 100),1.0f); |
| 734 } | 734 } |
| 735 } | 735 } |
| 736 | 736 |
| 737 FX_BOOL CPWL_ScrollBar::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag) | 737 bool CPWL_ScrollBar::OnLButtonDown(const CPDF_Point & point, FX_DWORD nFlag) |
| 738 { | 738 { |
| 739 CPWL_Wnd::OnLButtonDown(point,nFlag); | 739 CPWL_Wnd::OnLButtonDown(point,nFlag); |
| 740 | 740 |
| 741 if (HasFlag(PWS_AUTOTRANSPARENT)) | 741 if (HasFlag(PWS_AUTOTRANSPARENT)) |
| 742 { | 742 { |
| 743 if (GetTransparency() != 255) | 743 if (GetTransparency() != 255) |
| 744 { | 744 { |
| 745 SetTransparency(255); | 745 SetTransparency(255); |
| 746 InvalidateRect(); | 746 InvalidateRect(); |
| 747 } | 747 } |
| (...skipping 22 matching lines...) Expand all Loading... |
| 770 rcClient.right,rcPosButt
on.bottom); | 770 rcClient.right,rcPosButt
on.bottom); |
| 771 break; | 771 break; |
| 772 } | 772 } |
| 773 | 773 |
| 774 rcMinArea.Normalize(); | 774 rcMinArea.Normalize(); |
| 775 rcMaxArea.Normalize(); | 775 rcMaxArea.Normalize(); |
| 776 | 776 |
| 777 if (rcMinArea.Contains(point.x,point.y)) | 777 if (rcMinArea.Contains(point.x,point.y)) |
| 778 { | 778 { |
| 779 m_sData.SubBig(); | 779 m_sData.SubBig(); |
| 780 » » » MovePosButton(TRUE); | 780 » » » MovePosButton(true); |
| 781 NotifyScrollWindow(); | 781 NotifyScrollWindow(); |
| 782 } | 782 } |
| 783 | 783 |
| 784 if (rcMaxArea.Contains(point.x,point.y)) | 784 if (rcMaxArea.Contains(point.x,point.y)) |
| 785 { | 785 { |
| 786 m_sData.AddBig(); | 786 m_sData.AddBig(); |
| 787 » » » MovePosButton(TRUE); | 787 » » » MovePosButton(true); |
| 788 NotifyScrollWindow(); | 788 NotifyScrollWindow(); |
| 789 } | 789 } |
| 790 } | 790 } |
| 791 | 791 |
| 792 » return TRUE; | 792 » return true; |
| 793 } | 793 } |
| 794 | 794 |
| 795 FX_BOOL CPWL_ScrollBar::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) | 795 bool CPWL_ScrollBar::OnLButtonUp(const CPDF_Point & point, FX_DWORD nFlag) |
| 796 { | 796 { |
| 797 CPWL_Wnd::OnLButtonUp(point,nFlag); | 797 CPWL_Wnd::OnLButtonUp(point,nFlag); |
| 798 | 798 |
| 799 if (HasFlag(PWS_AUTOTRANSPARENT)) | 799 if (HasFlag(PWS_AUTOTRANSPARENT)) |
| 800 { | 800 { |
| 801 if (GetTransparency() != PWL_SCROLLBAR_TRANSPARANCY) | 801 if (GetTransparency() != PWL_SCROLLBAR_TRANSPARANCY) |
| 802 { | 802 { |
| 803 SetTransparency(PWL_SCROLLBAR_TRANSPARANCY); | 803 SetTransparency(PWL_SCROLLBAR_TRANSPARANCY); |
| 804 InvalidateRect(); | 804 InvalidateRect(); |
| 805 } | 805 } |
| 806 } | 806 } |
| 807 | 807 |
| 808 EndTimer(); | 808 EndTimer(); |
| 809 » m_bMouseDown = FALSE; | 809 » m_bMouseDown = false; |
| 810 | 810 |
| 811 » return TRUE; | 811 » return true; |
| 812 } | 812 } |
| 813 | 813 |
| 814 void CPWL_ScrollBar::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, int
ptr_t lParam) | 814 void CPWL_ScrollBar::OnNotify(CPWL_Wnd* pWnd, FX_DWORD msg, intptr_t wParam, int
ptr_t lParam) |
| 815 { | 815 { |
| 816 CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam); | 816 CPWL_Wnd::OnNotify(pWnd,msg,wParam,lParam); |
| 817 | 817 |
| 818 switch (msg) | 818 switch (msg) |
| 819 { | 819 { |
| 820 case PNM_LBUTTONDOWN: | 820 case PNM_LBUTTONDOWN: |
| 821 if (pWnd == m_pMinButton) | 821 if (pWnd == m_pMinButton) |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 915 | 915 |
| 916 if (!m_pMaxButton) | 916 if (!m_pMaxButton) |
| 917 { | 917 { |
| 918 m_pMaxButton = new CPWL_SBButton(m_sbType,PSBT_MAX); | 918 m_pMaxButton = new CPWL_SBButton(m_sbType,PSBT_MAX); |
| 919 m_pMaxButton->Create(scp); | 919 m_pMaxButton->Create(scp); |
| 920 } | 920 } |
| 921 | 921 |
| 922 if (!m_pPosButton) | 922 if (!m_pPosButton) |
| 923 { | 923 { |
| 924 m_pPosButton = new CPWL_SBButton(m_sbType,PSBT_POS); | 924 m_pPosButton = new CPWL_SBButton(m_sbType,PSBT_POS); |
| 925 » » m_pPosButton->SetVisible(FALSE); | 925 » » m_pPosButton->SetVisible(false); |
| 926 m_pPosButton->Create(scp); | 926 m_pPosButton->Create(scp); |
| 927 } | 927 } |
| 928 } | 928 } |
| 929 | 929 |
| 930 FX_FLOAT CPWL_ScrollBar::GetScrollBarWidth() const | 930 FX_FLOAT CPWL_ScrollBar::GetScrollBarWidth() const |
| 931 { | 931 { |
| 932 if (!IsVisible()) return 0; | 932 if (!IsVisible()) return 0; |
| 933 | 933 |
| 934 return PWL_SCROLLBAR_WIDTH; | 934 return PWL_SCROLLBAR_WIDTH; |
| 935 } | 935 } |
| 936 | 936 |
| 937 void CPWL_ScrollBar::SetScrollRange(FX_FLOAT fMin,FX_FLOAT fMax,FX_FLOAT fClient
Width) | 937 void CPWL_ScrollBar::SetScrollRange(FX_FLOAT fMin,FX_FLOAT fMax,FX_FLOAT fClient
Width) |
| 938 { | 938 { |
| 939 if (m_pPosButton) | 939 if (m_pPosButton) |
| 940 { | 940 { |
| 941 m_sData.SetScrollRange(fMin,fMax); | 941 m_sData.SetScrollRange(fMin,fMax); |
| 942 m_sData.SetClientWidth(fClientWidth); | 942 m_sData.SetClientWidth(fClientWidth); |
| 943 | 943 |
| 944 if (IsFloatSmaller(m_sData.ScrollRange.GetWidth(), 0.0f)) | 944 if (IsFloatSmaller(m_sData.ScrollRange.GetWidth(), 0.0f)) |
| 945 { | 945 { |
| 946 » » » m_pPosButton->SetVisible(FALSE); | 946 » » » m_pPosButton->SetVisible(false); |
| 947 } | 947 } |
| 948 else | 948 else |
| 949 { | 949 { |
| 950 » » » m_pPosButton->SetVisible(TRUE); | 950 » » » m_pPosButton->SetVisible(true); |
| 951 » » » MovePosButton(TRUE); | 951 » » » MovePosButton(true); |
| 952 } | 952 } |
| 953 } | 953 } |
| 954 } | 954 } |
| 955 | 955 |
| 956 void CPWL_ScrollBar::SetScrollPos(FX_FLOAT fPos) | 956 void CPWL_ScrollBar::SetScrollPos(FX_FLOAT fPos) |
| 957 { | 957 { |
| 958 FX_FLOAT fOldPos = m_sData.fScrollPos; | 958 FX_FLOAT fOldPos = m_sData.fScrollPos; |
| 959 | 959 |
| 960 m_sData.SetPos(fPos); | 960 m_sData.SetPos(fPos); |
| 961 | 961 |
| 962 if (!IsFloatEqual(m_sData.fScrollPos, fOldPos)) | 962 if (!IsFloatEqual(m_sData.fScrollPos, fOldPos)) |
| 963 » » MovePosButton(TRUE); | 963 » » MovePosButton(true); |
| 964 } | 964 } |
| 965 | 965 |
| 966 void CPWL_ScrollBar::SetScrollStep(FX_FLOAT fBigStep,FX_FLOAT fSmallStep) | 966 void CPWL_ScrollBar::SetScrollStep(FX_FLOAT fBigStep,FX_FLOAT fSmallStep) |
| 967 { | 967 { |
| 968 m_sData.SetBigStep(fBigStep); | 968 m_sData.SetBigStep(fBigStep); |
| 969 m_sData.SetSmallStep(fSmallStep); | 969 m_sData.SetSmallStep(fSmallStep); |
| 970 } | 970 } |
| 971 | 971 |
| 972 void CPWL_ScrollBar::MovePosButton(FX_BOOL bRefresh) | 972 void CPWL_ScrollBar::MovePosButton(bool bRefresh) |
| 973 { | 973 { |
| 974 ASSERT (m_pPosButton != NULL); | 974 ASSERT (m_pPosButton != NULL); |
| 975 ASSERT (m_pMinButton != NULL); | 975 ASSERT (m_pMinButton != NULL); |
| 976 ASSERT (m_pMaxButton != NULL); | 976 ASSERT (m_pMaxButton != NULL); |
| 977 | 977 |
| 978 if (m_pPosButton->IsVisible()) | 978 if (m_pPosButton->IsVisible()) |
| 979 { | 979 { |
| 980 | 980 |
| 981 | 981 |
| 982 | 982 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1024 } | 1024 } |
| 1025 | 1025 |
| 1026 rcPosButton = CPDF_Rect(rcPosArea.left, | 1026 rcPosButton = CPDF_Rect(rcPosArea.left, |
| 1027 fBottom, | 1027 fBottom, |
| 1028 rcPosArea.right, | 1028 rcPosArea.right, |
| 1029 fTop); | 1029 fTop); |
| 1030 | 1030 |
| 1031 break; | 1031 break; |
| 1032 } | 1032 } |
| 1033 | 1033 |
| 1034 » » m_pPosButton->Move(rcPosButton,TRUE,bRefresh); | 1034 » » m_pPosButton->Move(rcPosButton,true,bRefresh); |
| 1035 } | 1035 } |
| 1036 } | 1036 } |
| 1037 | 1037 |
| 1038 void CPWL_ScrollBar::OnMinButtonLBDown(const CPDF_Point & point) | 1038 void CPWL_ScrollBar::OnMinButtonLBDown(const CPDF_Point & point) |
| 1039 { | 1039 { |
| 1040 m_sData.SubSmall(); | 1040 m_sData.SubSmall(); |
| 1041 » MovePosButton(TRUE); | 1041 » MovePosButton(true); |
| 1042 NotifyScrollWindow(); | 1042 NotifyScrollWindow(); |
| 1043 | 1043 |
| 1044 » m_bMinOrMax = TRUE; | 1044 » m_bMinOrMax = true; |
| 1045 | 1045 |
| 1046 EndTimer(); | 1046 EndTimer(); |
| 1047 BeginTimer(100); | 1047 BeginTimer(100); |
| 1048 } | 1048 } |
| 1049 | 1049 |
| 1050 void CPWL_ScrollBar::OnMinButtonLBUp(const CPDF_Point & point) | 1050 void CPWL_ScrollBar::OnMinButtonLBUp(const CPDF_Point & point) |
| 1051 { | 1051 { |
| 1052 } | 1052 } |
| 1053 | 1053 |
| 1054 void CPWL_ScrollBar::OnMinButtonMouseMove(const CPDF_Point & point) | 1054 void CPWL_ScrollBar::OnMinButtonMouseMove(const CPDF_Point & point) |
| 1055 { | 1055 { |
| 1056 } | 1056 } |
| 1057 | 1057 |
| 1058 void CPWL_ScrollBar::OnMaxButtonLBDown(const CPDF_Point & point) | 1058 void CPWL_ScrollBar::OnMaxButtonLBDown(const CPDF_Point & point) |
| 1059 { | 1059 { |
| 1060 m_sData.AddSmall(); | 1060 m_sData.AddSmall(); |
| 1061 » MovePosButton(TRUE); | 1061 » MovePosButton(true); |
| 1062 NotifyScrollWindow(); | 1062 NotifyScrollWindow(); |
| 1063 | 1063 |
| 1064 » m_bMinOrMax = FALSE; | 1064 » m_bMinOrMax = false; |
| 1065 | 1065 |
| 1066 EndTimer(); | 1066 EndTimer(); |
| 1067 BeginTimer(100); | 1067 BeginTimer(100); |
| 1068 } | 1068 } |
| 1069 | 1069 |
| 1070 void CPWL_ScrollBar::OnMaxButtonLBUp(const CPDF_Point & point) | 1070 void CPWL_ScrollBar::OnMaxButtonLBUp(const CPDF_Point & point) |
| 1071 { | 1071 { |
| 1072 } | 1072 } |
| 1073 | 1073 |
| 1074 void CPWL_ScrollBar::OnMaxButtonMouseMove(const CPDF_Point & point) | 1074 void CPWL_ScrollBar::OnMaxButtonMouseMove(const CPDF_Point & point) |
| 1075 { | 1075 { |
| 1076 } | 1076 } |
| 1077 | 1077 |
| 1078 void CPWL_ScrollBar::OnPosButtonLBDown(const CPDF_Point & point) | 1078 void CPWL_ScrollBar::OnPosButtonLBDown(const CPDF_Point & point) |
| 1079 { | 1079 { |
| 1080 » m_bMouseDown = TRUE; | 1080 » m_bMouseDown = true; |
| 1081 | 1081 |
| 1082 if (m_pPosButton) | 1082 if (m_pPosButton) |
| 1083 { | 1083 { |
| 1084 CPDF_Rect rcPosButton = m_pPosButton->GetWindowRect(); | 1084 CPDF_Rect rcPosButton = m_pPosButton->GetWindowRect(); |
| 1085 | 1085 |
| 1086 switch(m_sbType) | 1086 switch(m_sbType) |
| 1087 { | 1087 { |
| 1088 case SBT_HSCROLL: | 1088 case SBT_HSCROLL: |
| 1089 m_nOldPos = point.x; | 1089 m_nOldPos = point.x; |
| 1090 m_fOldPosButton = rcPosButton.left; | 1090 m_fOldPosButton = rcPosButton.left; |
| 1091 break; | 1091 break; |
| 1092 case SBT_VSCROLL: | 1092 case SBT_VSCROLL: |
| 1093 m_nOldPos = point.y; | 1093 m_nOldPos = point.y; |
| 1094 m_fOldPosButton = rcPosButton.top; | 1094 m_fOldPosButton = rcPosButton.top; |
| 1095 break; | 1095 break; |
| 1096 } | 1096 } |
| 1097 } | 1097 } |
| 1098 } | 1098 } |
| 1099 | 1099 |
| 1100 void CPWL_ScrollBar::OnPosButtonLBUp(const CPDF_Point & point) | 1100 void CPWL_ScrollBar::OnPosButtonLBUp(const CPDF_Point & point) |
| 1101 { | 1101 { |
| 1102 if (m_bMouseDown) | 1102 if (m_bMouseDown) |
| 1103 { | 1103 { |
| 1104 if (!m_bNotifyForever) | 1104 if (!m_bNotifyForever) |
| 1105 NotifyScrollWindow(); | 1105 NotifyScrollWindow(); |
| 1106 } | 1106 } |
| 1107 » m_bMouseDown = FALSE; | 1107 » m_bMouseDown = false; |
| 1108 } | 1108 } |
| 1109 | 1109 |
| 1110 void CPWL_ScrollBar::OnPosButtonMouseMove(const CPDF_Point & point) | 1110 void CPWL_ScrollBar::OnPosButtonMouseMove(const CPDF_Point & point) |
| 1111 { | 1111 { |
| 1112 FX_FLOAT fOldScrollPos = m_sData.fScrollPos; | 1112 FX_FLOAT fOldScrollPos = m_sData.fScrollPos; |
| 1113 | 1113 |
| 1114 FX_FLOAT fNewPos = 0; | 1114 FX_FLOAT fNewPos = 0; |
| 1115 | 1115 |
| 1116 switch (m_sbType) | 1116 switch (m_sbType) |
| 1117 { | 1117 { |
| (...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1156 fNewPos = m_sData.ScrollRange.fMax; | 1156 fNewPos = m_sData.ScrollRange.fMax; |
| 1157 } | 1157 } |
| 1158 | 1158 |
| 1159 m_sData.SetPos(fNewPos); | 1159 m_sData.SetPos(fNewPos); |
| 1160 | 1160 |
| 1161 break; | 1161 break; |
| 1162 } | 1162 } |
| 1163 | 1163 |
| 1164 if (!IsFloatEqual(fOldScrollPos, m_sData.fScrollPos)) | 1164 if (!IsFloatEqual(fOldScrollPos, m_sData.fScrollPos)) |
| 1165 { | 1165 { |
| 1166 » » » MovePosButton(TRUE); | 1166 » » » MovePosButton(true); |
| 1167 | 1167 |
| 1168 if (m_bNotifyForever) | 1168 if (m_bNotifyForever) |
| 1169 NotifyScrollWindow(); | 1169 NotifyScrollWindow(); |
| 1170 } | 1170 } |
| 1171 } | 1171 } |
| 1172 } | 1172 } |
| 1173 | 1173 |
| 1174 void CPWL_ScrollBar::NotifyScrollWindow() | 1174 void CPWL_ScrollBar::NotifyScrollWindow() |
| 1175 { | 1175 { |
| 1176 if (CPWL_Wnd * pParent = GetParentWindow()) | 1176 if (CPWL_Wnd * pParent = GetParentWindow()) |
| (...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1290 | 1290 |
| 1291 void CPWL_ScrollBar::TimerProc() | 1291 void CPWL_ScrollBar::TimerProc() |
| 1292 { | 1292 { |
| 1293 PWL_SCROLL_PRIVATEDATA sTemp = m_sData; | 1293 PWL_SCROLL_PRIVATEDATA sTemp = m_sData; |
| 1294 | 1294 |
| 1295 if (m_bMinOrMax)m_sData.SubSmall(); | 1295 if (m_bMinOrMax)m_sData.SubSmall(); |
| 1296 else m_sData.AddSmall(); | 1296 else m_sData.AddSmall(); |
| 1297 | 1297 |
| 1298 if (FXSYS_memcmp(&m_sData, &sTemp, sizeof(PWL_SCROLL_PRIVATEDATA)) != 0) | 1298 if (FXSYS_memcmp(&m_sData, &sTemp, sizeof(PWL_SCROLL_PRIVATEDATA)) != 0) |
| 1299 { | 1299 { |
| 1300 » » MovePosButton(TRUE); | 1300 » » MovePosButton(true); |
| 1301 NotifyScrollWindow(); | 1301 NotifyScrollWindow(); |
| 1302 } | 1302 } |
| 1303 } | 1303 } |
| OLD | NEW |