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 260 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
271 .updateScrollerStyle(); | 271 .updateScrollerStyle(); |
272 } | 272 } |
273 | 273 |
274 @end | 274 @end |
275 | 275 |
276 enum FeatureToAnimate { | 276 enum FeatureToAnimate { |
277 ThumbAlpha, | 277 ThumbAlpha, |
278 TrackAlpha, | 278 TrackAlpha, |
279 UIStateTransition, | 279 UIStateTransition, |
280 ExpansionTransition | 280 ExpansionTransition |
281 }; | 281 } |
| 282 ; |
282 | 283 |
283 @class BlinkScrollbarPartAnimation; | 284 @class BlinkScrollbarPartAnimation; |
284 | 285 |
285 namespace blink { | 286 namespace blink { |
286 | 287 |
287 // This class is used to drive the animation timer for | 288 // This class is used to drive the animation timer for |
288 // BlinkScrollbarPartAnimation | 289 // BlinkScrollbarPartAnimation |
289 // objects. This is used instead of NSAnimation because CoreAnimation | 290 // objects. This is used instead of NSAnimation because CoreAnimation |
290 // establishes connections to the WindowServer, which should not be done in a | 291 // establishes connections to the WindowServer, which should not be done in a |
291 // sandboxed renderer process. | 292 // sandboxed renderer process. |
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
649 } | 650 } |
650 | 651 |
651 - (void)scrollerImp:(id)scrollerImp | 652 - (void)scrollerImp:(id)scrollerImp |
652 overlayScrollerStateChangedTo:(NSUInteger)newOverlayScrollerState { | 653 overlayScrollerStateChangedTo:(NSUInteger)newOverlayScrollerState { |
653 // The names of these states are based on their observed behavior, and are not | 654 // The names of these states are based on their observed behavior, and are not |
654 // based on documentation. | 655 // based on documentation. |
655 enum { | 656 enum { |
656 NSScrollerStateInvisible = 0, | 657 NSScrollerStateInvisible = 0, |
657 NSScrollerStateKnob = 1, | 658 NSScrollerStateKnob = 1, |
658 NSScrollerStateExpanded = 2 | 659 NSScrollerStateExpanded = 2 |
659 }; | 660 } |
| 661 ; |
660 // We do not receive notifications about the thumb un-expanding when the | 662 // We do not receive notifications about the thumb un-expanding when the |
661 // scrollbar fades away. Ensure | 663 // scrollbar fades away. Ensure |
662 // that we re-paint the thumb the next time that we transition away from being | 664 // that we re-paint the thumb the next time that we transition away from being |
663 // invisible, so that | 665 // invisible, so that |
664 // the thumb doesn't stick in an expanded state. | 666 // the thumb doesn't stick in an expanded state. |
665 if (newOverlayScrollerState == NSScrollerStateExpanded) { | 667 if (newOverlayScrollerState == NSScrollerStateExpanded) { |
666 _hasExpandedSinceInvisible = YES; | 668 _hasExpandedSinceInvisible = YES; |
667 } else if (newOverlayScrollerState != NSScrollerStateInvisible && | 669 } else if (newOverlayScrollerState != NSScrollerStateInvisible && |
668 _hasExpandedSinceInvisible) { | 670 _hasExpandedSinceInvisible) { |
669 _scrollbar->setNeedsPaintInvalidation(ThumbPart); | 671 _scrollbar->setNeedsPaintInvalidation(ThumbPart); |
(...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1016 // a relayout will happen on its own. Otherwise, we must initiate a re-layout | 1018 // a relayout will happen on its own. Otherwise, we must initiate a re-layout |
1017 // ourselves. | 1019 // ourselves. |
1018 if (!m_needsScrollerStyleUpdate) | 1020 if (!m_needsScrollerStyleUpdate) |
1019 getScrollableArea()->scrollbarStyleChanged(); | 1021 getScrollableArea()->scrollbarStyleChanged(); |
1020 | 1022 |
1021 m_needsScrollerStyleUpdate = false; | 1023 m_needsScrollerStyleUpdate = false; |
1022 } | 1024 } |
1023 | 1025 |
1024 void ScrollAnimatorMac::startScrollbarPaintTimer() { | 1026 void ScrollAnimatorMac::startScrollbarPaintTimer() { |
1025 m_initialScrollbarPaintTaskHandle = m_taskRunner->postCancellableTask( | 1027 m_initialScrollbarPaintTaskHandle = m_taskRunner->postCancellableTask( |
1026 BLINK_FROM_HERE, WTF::bind(&ScrollAnimatorMac::initialScrollbarPaintTask, | 1028 BLINK_FROM_HERE, |
1027 wrapWeakPersistent(this))); | 1029 WTF::bind(&ScrollAnimatorMac::initialScrollbarPaintTask, |
| 1030 wrapWeakPersistent(this))); |
1028 } | 1031 } |
1029 | 1032 |
1030 bool ScrollAnimatorMac::scrollbarPaintTimerIsActive() const { | 1033 bool ScrollAnimatorMac::scrollbarPaintTimerIsActive() const { |
1031 return m_initialScrollbarPaintTaskHandle.isActive(); | 1034 return m_initialScrollbarPaintTaskHandle.isActive(); |
1032 } | 1035 } |
1033 | 1036 |
1034 void ScrollAnimatorMac::stopScrollbarPaintTimer() { | 1037 void ScrollAnimatorMac::stopScrollbarPaintTimer() { |
1035 m_initialScrollbarPaintTaskHandle.cancel(); | 1038 m_initialScrollbarPaintTaskHandle.cancel(); |
1036 } | 1039 } |
1037 | 1040 |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1074 rectInViewCoordinates = | 1077 rectInViewCoordinates = |
1075 verticalScrollbar->convertToContainingWidget(scrollerThumb); | 1078 verticalScrollbar->convertToContainingWidget(scrollerThumb); |
1076 | 1079 |
1077 if (rectInViewCoordinates == m_visibleScrollerThumbRect) | 1080 if (rectInViewCoordinates == m_visibleScrollerThumbRect) |
1078 return; | 1081 return; |
1079 | 1082 |
1080 m_visibleScrollerThumbRect = rectInViewCoordinates; | 1083 m_visibleScrollerThumbRect = rectInViewCoordinates; |
1081 } | 1084 } |
1082 | 1085 |
1083 } // namespace blink | 1086 } // namespace blink |
OLD | NEW |