| OLD | NEW | 
|---|
| 1 /* | 1 /* | 
| 2  * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. | 2  * Copyright (C) 2010, 2011 Apple Inc. All rights reserved. | 
| 3  * | 3  * | 
| 4  * Redistribution and use in source and binary forms, with or without | 4  * Redistribution and use in source and binary forms, with or without | 
| 5  * modification, are permitted provided that the following conditions | 5  * modification, are permitted provided that the following conditions | 
| 6  * are met: | 6  * are met: | 
| 7  * 1. Redistributions of source code must retain the above copyright | 7  * 1. Redistributions of source code must retain the above copyright | 
| 8  *    notice, this list of conditions and the following disclaimer. | 8  *    notice, this list of conditions and the following disclaimer. | 
| 9  * 2. Redistributions in binary form must reproduce the above copyright | 9  * 2. Redistributions in binary form must reproduce the above copyright | 
| 10  *    notice, this list of conditions and the following disclaimer in the | 10  *    notice, this list of conditions and the following disclaimer in the | 
| (...skipping 498 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 509     , m_lastMomemtumScrollTimestamp(0) | 509     , m_lastMomemtumScrollTimestamp(0) | 
| 510     , m_startTime(0) | 510     , m_startTime(0) | 
| 511     , m_snapRubberBandTimer(this, &ScrollAnimatorChromiumMac::snapRubberBandTime
      rFired) | 511     , m_snapRubberBandTimer(this, &ScrollAnimatorChromiumMac::snapRubberBandTime
      rFired) | 
| 512 #endif | 512 #endif | 
| 513     , m_drawingIntoLayer(false) | 513     , m_drawingIntoLayer(false) | 
| 514     , m_haveScrolledSincePageLoad(false) | 514     , m_haveScrolledSincePageLoad(false) | 
| 515 { | 515 { | 
| 516     m_scrollAnimationHelperDelegate.adoptNS([[ScrollAnimationHelperDelegate allo
      c] initWithScrollAnimator:this]); | 516     m_scrollAnimationHelperDelegate.adoptNS([[ScrollAnimationHelperDelegate allo
      c] initWithScrollAnimator:this]); | 
| 517     m_scrollAnimationHelper.adoptNS([[NSClassFromString(@"NSScrollAnimationHelpe
      r") alloc] initWithDelegate:m_scrollAnimationHelperDelegate.get()]); | 517     m_scrollAnimationHelper.adoptNS([[NSClassFromString(@"NSScrollAnimationHelpe
      r") alloc] initWithDelegate:m_scrollAnimationHelperDelegate.get()]); | 
| 518 | 518 | 
| 519 #if USE(WK_SCROLLBAR_PAINTER) | 519     if (isScrollbarOverlayAPIAvailable()) { | 
| 520     m_scrollbarPainterControllerDelegate.adoptNS([[ScrollbarPainterControllerDel
      egate alloc] initWithScrollAnimator:this]); | 520         m_scrollbarPainterControllerDelegate.adoptNS([[ScrollbarPainterControlle
      rDelegate alloc] initWithScrollAnimator:this]); | 
| 521     m_scrollbarPainterController = wkMakeScrollbarPainterController(m_scrollbarP
      ainterControllerDelegate.get()); | 521         m_scrollbarPainterController = wkMakeScrollbarPainterController(m_scroll
      barPainterControllerDelegate.get()); | 
| 522     m_scrollbarPainterDelegate.adoptNS([[ScrollbarPainterDelegate alloc] initWit
      hScrollAnimator:this]); | 522         m_scrollbarPainterDelegate.adoptNS([[ScrollbarPainterDelegate alloc] ini
      tWithScrollAnimator:this]); | 
| 523 #endif | 523     } | 
| 524 } | 524 } | 
| 525 | 525 | 
| 526 ScrollAnimatorChromiumMac::~ScrollAnimatorChromiumMac() | 526 ScrollAnimatorChromiumMac::~ScrollAnimatorChromiumMac() | 
| 527 { | 527 { | 
| 528 #if USE(WK_SCROLLBAR_PAINTER) | 528     if (isScrollbarOverlayAPIAvailable()) { | 
| 529     [m_scrollbarPainterControllerDelegate.get() scrollAnimatorDestroyed]; | 529         [m_scrollbarPainterControllerDelegate.get() scrollAnimatorDestroyed]; | 
| 530     [(id)m_scrollbarPainterController.get() setDelegate:nil]; | 530         [(id)m_scrollbarPainterController.get() setDelegate:nil]; | 
| 531     [m_scrollbarPainterDelegate.get() scrollAnimatorDestroyed]; | 531         [m_scrollbarPainterDelegate.get() scrollAnimatorDestroyed]; | 
| 532     [m_scrollAnimationHelperDelegate.get() scrollAnimatorDestroyed]; | 532         [m_scrollAnimationHelperDelegate.get() scrollAnimatorDestroyed]; | 
| 533 #endif | 533     } | 
| 534 } | 534 } | 
| 535 | 535 | 
| 536 bool ScrollAnimatorChromiumMac::scroll(ScrollbarOrientation orientation, ScrollG
      ranularity granularity, float step, float multiplier) | 536 bool ScrollAnimatorChromiumMac::scroll(ScrollbarOrientation orientation, ScrollG
      ranularity granularity, float step, float multiplier) | 
| 537 { | 537 { | 
| 538     m_haveScrolledSincePageLoad = true; | 538     m_haveScrolledSincePageLoad = true; | 
| 539 | 539 | 
| 540 #if !ENABLE(SMOOTH_SCROLLING) | 540 #if !ENABLE(SMOOTH_SCROLLING) | 
| 541     return ScrollAnimator::scroll(orientation, granularity, step, multiplier); | 541     return ScrollAnimator::scroll(orientation, granularity, step, multiplier); | 
| 542 #endif | 542 #endif | 
| 543 | 543 | 
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 625 | 625 | 
| 626     if (newPosY == m_currentPosY) | 626     if (newPosY == m_currentPosY) | 
| 627         return; | 627         return; | 
| 628 | 628 | 
| 629     m_currentPosY = newPosY; | 629     m_currentPosY = newPosY; | 
| 630     notityPositionChanged(); | 630     notityPositionChanged(); | 
| 631 } | 631 } | 
| 632 | 632 | 
| 633 void ScrollAnimatorChromiumMac::notityPositionChanged() | 633 void ScrollAnimatorChromiumMac::notityPositionChanged() | 
| 634 { | 634 { | 
| 635 #if USE(WK_SCROLLBAR_PAINTER) | 635     if (isScrollbarOverlayAPIAvailable()) | 
| 636     wkContentAreaScrolled(m_scrollbarPainterController.get()); | 636         wkContentAreaScrolled(m_scrollbarPainterController.get()); | 
| 637 #endif |  | 
| 638     ScrollAnimator::notityPositionChanged(); | 637     ScrollAnimator::notityPositionChanged(); | 
| 639 } | 638 } | 
| 640 | 639 | 
| 641 void ScrollAnimatorChromiumMac::contentAreaWillPaint() const | 640 void ScrollAnimatorChromiumMac::contentAreaWillPaint() const | 
| 642 { | 641 { | 
| 643 #if USE(WK_SCROLLBAR_PAINTER) | 642     if (isScrollbarOverlayAPIAvailable()) | 
| 644     wkContentAreaWillPaint(m_scrollbarPainterController.get()); | 643         wkContentAreaWillPaint(m_scrollbarPainterController.get()); | 
| 645 #endif |  | 
| 646 } | 644 } | 
| 647 | 645 | 
| 648 void ScrollAnimatorChromiumMac::mouseEnteredContentArea() const | 646 void ScrollAnimatorChromiumMac::mouseEnteredContentArea() const | 
| 649 { | 647 { | 
| 650 #if USE(WK_SCROLLBAR_PAINTER) | 648     if (isScrollbarOverlayAPIAvailable()) | 
| 651     wkMouseEnteredContentArea(m_scrollbarPainterController.get()); | 649         wkMouseEnteredContentArea(m_scrollbarPainterController.get()); | 
| 652 #endif |  | 
| 653 } | 650 } | 
| 654 | 651 | 
| 655 void ScrollAnimatorChromiumMac::mouseExitedContentArea() const | 652 void ScrollAnimatorChromiumMac::mouseExitedContentArea() const | 
| 656 { | 653 { | 
| 657 #if USE(WK_SCROLLBAR_PAINTER) | 654     if (isScrollbarOverlayAPIAvailable()) | 
| 658     wkMouseExitedContentArea(m_scrollbarPainterController.get()); | 655         wkMouseExitedContentArea(m_scrollbarPainterController.get()); | 
| 659 #endif |  | 
| 660 } | 656 } | 
| 661 | 657 | 
| 662 void ScrollAnimatorChromiumMac::mouseMovedInContentArea() const | 658 void ScrollAnimatorChromiumMac::mouseMovedInContentArea() const | 
| 663 { | 659 { | 
| 664 #if USE(WK_SCROLLBAR_PAINTER) | 660     if (isScrollbarOverlayAPIAvailable()) | 
| 665     wkMouseMovedInContentArea(m_scrollbarPainterController.get()); | 661         wkMouseMovedInContentArea(m_scrollbarPainterController.get()); | 
| 666 #endif |  | 
| 667 } | 662 } | 
| 668 | 663 | 
| 669 void ScrollAnimatorChromiumMac::willStartLiveResize() | 664 void ScrollAnimatorChromiumMac::willStartLiveResize() | 
| 670 { | 665 { | 
| 671 #if USE(WK_SCROLLBAR_PAINTER) | 666     if (isScrollbarOverlayAPIAvailable()) | 
| 672     wkWillStartLiveResize(m_scrollbarPainterController.get()); | 667         wkWillStartLiveResize(m_scrollbarPainterController.get()); | 
| 673 #endif |  | 
| 674 } | 668 } | 
| 675 | 669 | 
| 676 void ScrollAnimatorChromiumMac::contentsResized() const | 670 void ScrollAnimatorChromiumMac::contentsResized() const | 
| 677 { | 671 { | 
| 678 #if USE(WK_SCROLLBAR_PAINTER) | 672     if (isScrollbarOverlayAPIAvailable()) | 
| 679     wkContentAreaResized(m_scrollbarPainterController.get()); | 673         wkContentAreaResized(m_scrollbarPainterController.get()); | 
| 680 #endif |  | 
| 681 } | 674 } | 
| 682 | 675 | 
| 683 void ScrollAnimatorChromiumMac::willEndLiveResize() | 676 void ScrollAnimatorChromiumMac::willEndLiveResize() | 
| 684 { | 677 { | 
| 685 #if USE(WK_SCROLLBAR_PAINTER) | 678     if (isScrollbarOverlayAPIAvailable()) | 
| 686     wkWillEndLiveResize(m_scrollbarPainterController.get()); | 679         wkWillEndLiveResize(m_scrollbarPainterController.get()); | 
| 687 #endif |  | 
| 688 } | 680 } | 
| 689 | 681 | 
| 690 void ScrollAnimatorChromiumMac::contentAreaDidShow() const | 682 void ScrollAnimatorChromiumMac::contentAreaDidShow() const | 
| 691 { | 683 { | 
| 692 #if USE(WK_SCROLLBAR_PAINTER) | 684     if (isScrollbarOverlayAPIAvailable()) | 
| 693     wkContentAreaDidShow(m_scrollbarPainterController.get()); | 685         wkContentAreaDidShow(m_scrollbarPainterController.get()); | 
| 694 #endif |  | 
| 695 } | 686 } | 
| 696 | 687 | 
| 697 void ScrollAnimatorChromiumMac::contentAreaDidHide() const | 688 void ScrollAnimatorChromiumMac::contentAreaDidHide() const | 
| 698 { | 689 { | 
| 699 #if USE(WK_SCROLLBAR_PAINTER) | 690     if (isScrollbarOverlayAPIAvailable()) | 
| 700     wkContentAreaDidHide(m_scrollbarPainterController.get()); | 691         wkContentAreaDidHide(m_scrollbarPainterController.get()); | 
| 701 #endif |  | 
| 702 } | 692 } | 
| 703 | 693 | 
| 704 void ScrollAnimatorChromiumMac::didBeginScrollGesture() const | 694 void ScrollAnimatorChromiumMac::didBeginScrollGesture() const | 
| 705 { | 695 { | 
| 706 #if USE(WK_SCROLLBAR_PAINTER) | 696     if (isScrollbarOverlayAPIAvailable()) | 
| 707     wkDidBeginScrollGesture(m_scrollbarPainterController.get()); | 697         wkDidBeginScrollGesture(m_scrollbarPainterController.get()); | 
| 708 #endif |  | 
| 709 } | 698 } | 
| 710 | 699 | 
| 711 void ScrollAnimatorChromiumMac::didEndScrollGesture() const | 700 void ScrollAnimatorChromiumMac::didEndScrollGesture() const | 
| 712 { | 701 { | 
| 713 #if USE(WK_SCROLLBAR_PAINTER) | 702     if (isScrollbarOverlayAPIAvailable()) | 
| 714     wkDidEndScrollGesture(m_scrollbarPainterController.get()); | 703         wkDidEndScrollGesture(m_scrollbarPainterController.get()); | 
| 715 #endif |  | 
| 716 } | 704 } | 
| 717 | 705 | 
| 718 void ScrollAnimatorChromiumMac::didAddVerticalScrollbar(Scrollbar* scrollbar) | 706 void ScrollAnimatorChromiumMac::didAddVerticalScrollbar(Scrollbar* scrollbar) | 
| 719 { | 707 { | 
| 720 #if USE(WK_SCROLLBAR_PAINTER) | 708     if (isScrollbarOverlayAPIAvailable()) { | 
| 721     WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChromiumM
      ac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar); | 709         WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChrom
      iumMac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar)
      ; | 
| 722     wkScrollbarPainterSetDelegate(painter, m_scrollbarPainterDelegate.get()); | 710         wkScrollbarPainterSetDelegate(painter, m_scrollbarPainterDelegate.get())
      ; | 
| 723     wkSetPainterForPainterController(m_scrollbarPainterController.get(), painter
      , false); | 711         wkSetPainterForPainterController(m_scrollbarPainterController.get(), pai
      nter, false); | 
| 724     if (scrollableArea()->inLiveResize()) | 712         if (scrollableArea()->inLiveResize()) | 
| 725         wkSetScrollbarPainterKnobAlpha(painter, 1); | 713             wkSetScrollbarPainterKnobAlpha(painter, 1); | 
| 726 #else | 714     } | 
| 727     UNUSED_PARAM(scrollbar); |  | 
| 728 #endif |  | 
| 729 } | 715 } | 
| 730 | 716 | 
| 731 void ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar(Scrollbar* scrollbar
      ) | 717 void ScrollAnimatorChromiumMac::willRemoveVerticalScrollbar(Scrollbar* scrollbar
      ) | 
| 732 { | 718 { | 
| 733 #if USE(WK_SCROLLBAR_PAINTER) | 719     if (isScrollbarOverlayAPIAvailable()) { | 
| 734     WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChromiumM
      ac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar); | 720         WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChrom
      iumMac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar)
      ; | 
| 735     wkScrollbarPainterSetDelegate(painter, nil); | 721         wkScrollbarPainterSetDelegate(painter, nil); | 
| 736     wkSetPainterForPainterController(m_scrollbarPainterController.get(), nil, fa
      lse); | 722         wkSetPainterForPainterController(m_scrollbarPainterController.get(), nil
      , false); | 
| 737 #else | 723     } | 
| 738     UNUSED_PARAM(scrollbar); |  | 
| 739 #endif |  | 
| 740 } | 724 } | 
| 741 | 725 | 
| 742 void ScrollAnimatorChromiumMac::didAddHorizontalScrollbar(Scrollbar* scrollbar) | 726 void ScrollAnimatorChromiumMac::didAddHorizontalScrollbar(Scrollbar* scrollbar) | 
| 743 { | 727 { | 
| 744 #if USE(WK_SCROLLBAR_PAINTER) | 728     if (isScrollbarOverlayAPIAvailable()) { | 
| 745     WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChromiumM
      ac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar); | 729         WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChrom
      iumMac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar)
      ; | 
| 746     wkScrollbarPainterSetDelegate(painter, m_scrollbarPainterDelegate.get()); | 730         wkScrollbarPainterSetDelegate(painter, m_scrollbarPainterDelegate.get())
      ; | 
| 747     wkSetPainterForPainterController(m_scrollbarPainterController.get(), painter
      , true); | 731         wkSetPainterForPainterController(m_scrollbarPainterController.get(), pai
      nter, true); | 
| 748     if (scrollableArea()->inLiveResize()) | 732         if (scrollableArea()->inLiveResize()) | 
| 749         wkSetScrollbarPainterKnobAlpha(painter, 1); | 733             wkSetScrollbarPainterKnobAlpha(painter, 1); | 
| 750 #else | 734     } | 
| 751     UNUSED_PARAM(scrollbar); |  | 
| 752 #endif |  | 
| 753 } | 735 } | 
| 754 | 736 | 
| 755 void ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar(Scrollbar* scrollb
      ar) | 737 void ScrollAnimatorChromiumMac::willRemoveHorizontalScrollbar(Scrollbar* scrollb
      ar) | 
| 756 { | 738 { | 
| 757 #if USE(WK_SCROLLBAR_PAINTER) | 739     if (isScrollbarOverlayAPIAvailable()) { | 
| 758     WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChromiumM
      ac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar); | 740         WKScrollbarPainterRef painter = static_cast<WebCore::ScrollbarThemeChrom
      iumMac*>(WebCore::ScrollbarTheme::nativeTheme())->painterForScrollbar(scrollbar)
      ; | 
| 759     wkScrollbarPainterSetDelegate(painter, nil); | 741         wkScrollbarPainterSetDelegate(painter, nil); | 
| 760     wkSetPainterForPainterController(m_scrollbarPainterController.get(), nil, tr
      ue); | 742         wkSetPainterForPainterController(m_scrollbarPainterController.get(), nil
      , true); | 
| 761 #else | 743     } | 
| 762     UNUSED_PARAM(scrollbar); |  | 
| 763 #endif |  | 
| 764 } | 744 } | 
| 765 | 745 | 
| 766 void ScrollAnimatorChromiumMac::cancelAnimations() | 746 void ScrollAnimatorChromiumMac::cancelAnimations() | 
| 767 { | 747 { | 
| 768     m_haveScrolledSincePageLoad = false; | 748     m_haveScrolledSincePageLoad = false; | 
| 769 | 749 | 
| 770 #if USE(WK_SCROLLBAR_PAINTER) | 750     if (isScrollbarOverlayAPIAvailable()) { | 
| 771     if (scrollbarPaintTimerIsActive()) | 751         if (scrollbarPaintTimerIsActive()) | 
| 772         stopScrollbarPaintTimer(); | 752             stopScrollbarPaintTimer(); | 
| 773     [m_scrollbarPainterDelegate.get() cancelAnimations]; | 753         [m_scrollbarPainterDelegate.get() cancelAnimations]; | 
| 774 #endif | 754     } | 
| 775 } | 755 } | 
| 776 | 756 | 
| 777 #if ENABLE(RUBBER_BANDING) | 757 #if ENABLE(RUBBER_BANDING) | 
| 778 | 758 | 
| 779 static const float scrollVelocityZeroingTimeout = 0.10f; | 759 static const float scrollVelocityZeroingTimeout = 0.10f; | 
| 780 static const float rubberbandStiffness = 20; | 760 static const float rubberbandStiffness = 20; | 
| 781 static const float rubberbandDirectionLockStretchRatio = 1; | 761 static const float rubberbandDirectionLockStretchRatio = 1; | 
| 782 static const float rubberbandMinimumRequiredDeltaBeforeStretch = 10; | 762 static const float rubberbandMinimumRequiredDeltaBeforeStretch = 10; | 
| 783 static const float rubberbandAmplitude = 0.31f; | 763 static const float rubberbandAmplitude = 0.31f; | 
| 784 static const float rubberbandPeriod = 1.6f; | 764 static const float rubberbandPeriod = 1.6f; | 
| (...skipping 450 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1235         rectInViewCoordinates = verticalScrollbar->convertToContainingView(scrol
      lerThumb); | 1215         rectInViewCoordinates = verticalScrollbar->convertToContainingView(scrol
      lerThumb); | 
| 1236 | 1216 | 
| 1237     if (rectInViewCoordinates == m_visibleScrollerThumbRect) | 1217     if (rectInViewCoordinates == m_visibleScrollerThumbRect) | 
| 1238         return; | 1218         return; | 
| 1239 | 1219 | 
| 1240     m_scrollableArea->setVisibleScrollerThumbRect(rectInViewCoordinates); | 1220     m_scrollableArea->setVisibleScrollerThumbRect(rectInViewCoordinates); | 
| 1241     m_visibleScrollerThumbRect = rectInViewCoordinates; | 1221     m_visibleScrollerThumbRect = rectInViewCoordinates; | 
| 1242 } | 1222 } | 
| 1243 | 1223 | 
| 1244 } // namespace WebCore | 1224 } // namespace WebCore | 
| OLD | NEW | 
|---|