OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved. | 2 * Copyright (C) 2008, 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 22 matching lines...) Expand all Loading... |
33 #include "wtf/Vector.h" | 33 #include "wtf/Vector.h" |
34 | 34 |
35 namespace blink { | 35 namespace blink { |
36 | 36 |
37 class FloatPoint; | 37 class FloatPoint; |
38 class GraphicsLayer; | 38 class GraphicsLayer; |
39 class HostWindow; | 39 class HostWindow; |
40 class PlatformWheelEvent; | 40 class PlatformWheelEvent; |
41 class ProgrammaticScrollAnimator; | 41 class ProgrammaticScrollAnimator; |
42 class ScrollAnimator; | 42 class ScrollAnimator; |
| 43 class ScrollbarStateTransitionAnimator; |
43 | 44 |
44 enum ScrollBehavior { | 45 enum ScrollBehavior { |
45 ScrollBehaviorAuto, | 46 ScrollBehaviorAuto, |
46 ScrollBehaviorInstant, | 47 ScrollBehaviorInstant, |
47 ScrollBehaviorSmooth, | 48 ScrollBehaviorSmooth, |
48 }; | 49 }; |
49 | 50 |
50 enum IncludeScrollbarsInRect { | 51 enum IncludeScrollbarsInRect { |
51 ExcludeScrollbars, | 52 ExcludeScrollbars, |
52 IncludeScrollbars, | 53 IncludeScrollbars, |
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 void contentAreaDidShow() const; | 101 void contentAreaDidShow() const; |
101 void contentAreaDidHide() const; | 102 void contentAreaDidHide() const; |
102 | 103 |
103 void finishCurrentScrollAnimations() const; | 104 void finishCurrentScrollAnimations() const; |
104 | 105 |
105 virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation); | 106 virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation); |
106 virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation); | 107 virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation); |
107 | 108 |
108 virtual void contentsResized(); | 109 virtual void contentsResized(); |
109 | 110 |
110 bool hasOverlayScrollbars() const; | 111 virtual bool hasOverlayScrollbars() const; |
111 void setScrollbarOverlayStyle(ScrollbarOverlayStyle); | 112 void setScrollbarOverlayStyle(ScrollbarOverlayStyle); |
112 ScrollbarOverlayStyle scrollbarOverlayStyle() const { return static_cast<Scr
ollbarOverlayStyle>(m_scrollbarOverlayStyle); } | 113 ScrollbarOverlayStyle scrollbarOverlayStyle() const { return static_cast<Scr
ollbarOverlayStyle>(m_scrollbarOverlayStyle); } |
113 | 114 |
114 // This getter will create a ScrollAnimator if it doesn't already exist. | 115 // This getter will create a ScrollAnimator if it doesn't already exist. |
115 ScrollAnimator* scrollAnimator() const; | 116 ScrollAnimator* scrollAnimator() const; |
116 | 117 |
117 // This getter will return null if the ScrollAnimator hasn't been created ye
t. | 118 // This getter will return null if the ScrollAnimator hasn't been created ye
t. |
118 ScrollAnimator* existingScrollAnimator() const { return m_animators ? m_anim
ators->scrollAnimator.get() : 0; } | 119 ScrollAnimator* existingScrollAnimator() const { return m_animators ? m_anim
ators->scrollAnimator.get() : 0; } |
119 | 120 |
120 ProgrammaticScrollAnimator* programmaticScrollAnimator() const; | 121 ProgrammaticScrollAnimator* programmaticScrollAnimator() const; |
121 ProgrammaticScrollAnimator* existingProgrammaticScrollAnimator() const | 122 ProgrammaticScrollAnimator* existingProgrammaticScrollAnimator() const |
122 { | 123 { |
123 return m_animators ? m_animators->programmaticScrollAnimator.get() : 0; | 124 return m_animators ? m_animators->programmaticScrollAnimator.get() : 0; |
124 } | 125 } |
125 | 126 |
| 127 // This getter will create a ScrollbarStateTransitionAnimator if needed and
doesn't already exist. |
| 128 ScrollbarStateTransitionAnimator* scrollbarStateTransitionAnimator() const; |
| 129 // This getter will return null if the ScrollbarStateTransitionAnimator hasn
't been created yet. |
| 130 ScrollbarStateTransitionAnimator* existingScrollbarStateTransitionAnimator()
const |
| 131 { |
| 132 return m_animators ? m_animators->scrollbarStateTransitionAnimator.get()
: 0; |
| 133 } |
| 134 |
| 135 bool isDuringStateTransitionAnimation() const; |
| 136 void stateTransitionInProgress(); |
| 137 |
126 const IntPoint& scrollOrigin() const { return m_scrollOrigin; } | 138 const IntPoint& scrollOrigin() const { return m_scrollOrigin; } |
127 bool scrollOriginChanged() const { return m_scrollOriginChanged; } | 139 bool scrollOriginChanged() const { return m_scrollOriginChanged; } |
128 | 140 |
129 // FIXME(bokan): Meaningless name, rename to isActiveFocus | 141 // FIXME(bokan): Meaningless name, rename to isActiveFocus |
130 virtual bool isActive() const = 0; | 142 virtual bool isActive() const = 0; |
131 virtual int scrollSize(ScrollbarOrientation) const = 0; | 143 virtual int scrollSize(ScrollbarOrientation) const = 0; |
132 virtual void invalidateScrollbar(Scrollbar*, const IntRect&); | 144 virtual void invalidateScrollbar(Scrollbar*, const IntRect&); |
133 virtual bool isScrollCornerVisible() const = 0; | 145 virtual bool isScrollCornerVisible() const = 0; |
134 virtual IntRect scrollCornerRect() const = 0; | 146 virtual IntRect scrollCornerRect() const = 0; |
135 virtual void invalidateScrollCorner(const IntRect&); | 147 virtual void invalidateScrollCorner(const IntRect&); |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
185 | 197 |
186 // NOTE: Only called from Internals for testing. | 198 // NOTE: Only called from Internals for testing. |
187 void setScrollOffsetFromInternals(const IntPoint&); | 199 void setScrollOffsetFromInternals(const IntPoint&); |
188 | 200 |
189 IntPoint clampScrollPosition(const IntPoint&) const; | 201 IntPoint clampScrollPosition(const IntPoint&) const; |
190 | 202 |
191 // Let subclasses provide a way of asking for and servicing scroll | 203 // Let subclasses provide a way of asking for and servicing scroll |
192 // animations. | 204 // animations. |
193 bool scheduleAnimation(); | 205 bool scheduleAnimation(); |
194 void serviceScrollAnimations(double monotonicTime); | 206 void serviceScrollAnimations(double monotonicTime); |
| 207 void serviceScrollbarAnimations(); |
195 | 208 |
196 virtual bool usesCompositedScrolling() const { return false; } | 209 virtual bool usesCompositedScrolling() const { return false; } |
197 | 210 |
198 // Returns true if the GraphicsLayer tree needs to be rebuilt. | 211 // Returns true if the GraphicsLayer tree needs to be rebuilt. |
199 virtual bool updateAfterCompositingChange() { return false; } | 212 virtual bool updateAfterCompositingChange() { return false; } |
200 | 213 |
201 virtual bool userInputScrollable(ScrollbarOrientation) const = 0; | 214 virtual bool userInputScrollable(ScrollbarOrientation) const = 0; |
202 virtual bool shouldPlaceVerticalScrollbarOnLeft() const = 0; | 215 virtual bool shouldPlaceVerticalScrollbarOnLeft() const = 0; |
203 | 216 |
204 // Convenience functions | 217 // Convenience functions |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
263 virtual int documentStep(ScrollbarOrientation) const; | 276 virtual int documentStep(ScrollbarOrientation) const; |
264 virtual float pixelStep(ScrollbarOrientation) const; | 277 virtual float pixelStep(ScrollbarOrientation) const; |
265 | 278 |
266 // Stores the paint invalidations for the scrollbars during layout. | 279 // Stores the paint invalidations for the scrollbars during layout. |
267 IntRect m_horizontalBarDamage; | 280 IntRect m_horizontalBarDamage; |
268 IntRect m_verticalBarDamage; | 281 IntRect m_verticalBarDamage; |
269 | 282 |
270 struct ScrollableAreaAnimators { | 283 struct ScrollableAreaAnimators { |
271 OwnPtr<ScrollAnimator> scrollAnimator; | 284 OwnPtr<ScrollAnimator> scrollAnimator; |
272 OwnPtr<ProgrammaticScrollAnimator> programmaticScrollAnimator; | 285 OwnPtr<ProgrammaticScrollAnimator> programmaticScrollAnimator; |
| 286 OwnPtr<ScrollbarStateTransitionAnimator> scrollbarStateTransitionAnimato
r; |
273 }; | 287 }; |
274 | 288 |
275 mutable OwnPtr<ScrollableAreaAnimators> m_animators; | 289 mutable OwnPtr<ScrollableAreaAnimators> m_animators; |
276 unsigned m_constrainsScrollingToContentEdge : 1; | 290 unsigned m_constrainsScrollingToContentEdge : 1; |
277 | 291 |
278 unsigned m_inLiveResize : 1; | 292 unsigned m_inLiveResize : 1; |
279 | 293 |
280 unsigned m_verticalScrollElasticity : 2; // ScrollElasticity | 294 unsigned m_verticalScrollElasticity : 2; // ScrollElasticity |
281 unsigned m_horizontalScrollElasticity : 2; // ScrollElasticity | 295 unsigned m_horizontalScrollElasticity : 2; // ScrollElasticity |
282 | 296 |
(...skipping 11 matching lines...) Expand all Loading... |
294 // vertical-lr / ltr NO NO | 308 // vertical-lr / ltr NO NO |
295 // vertical-lr / rtl NO YES | 309 // vertical-lr / rtl NO YES |
296 // vertical-rl / ltr YES NO | 310 // vertical-rl / ltr YES NO |
297 // vertical-rl / rtl YES YES | 311 // vertical-rl / rtl YES YES |
298 IntPoint m_scrollOrigin; | 312 IntPoint m_scrollOrigin; |
299 }; | 313 }; |
300 | 314 |
301 } // namespace blink | 315 } // namespace blink |
302 | 316 |
303 #endif // ScrollableArea_h | 317 #endif // ScrollableArea_h |
OLD | NEW |