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 |