Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Side by Side Diff: third_party/WebKit/Source/platform/scroll/ScrollableArea.h

Issue 1496693005: Update RootFrameViewport::userScroll to distribute scrolls between viewports. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: override scrollAnimatorEnabled in VisualViewport Created 5 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
240 virtual GraphicsLayer* layerForHorizontalScrollbar() const { return 0; } 240 virtual GraphicsLayer* layerForHorizontalScrollbar() const { return 0; }
241 virtual GraphicsLayer* layerForVerticalScrollbar() const { return 0; } 241 virtual GraphicsLayer* layerForVerticalScrollbar() const { return 0; }
242 virtual GraphicsLayer* layerForScrollCorner() const { return 0; } 242 virtual GraphicsLayer* layerForScrollCorner() const { return 0; }
243 bool hasLayerForHorizontalScrollbar() const; 243 bool hasLayerForHorizontalScrollbar() const;
244 bool hasLayerForVerticalScrollbar() const; 244 bool hasLayerForVerticalScrollbar() const;
245 bool hasLayerForScrollCorner() const; 245 bool hasLayerForScrollCorner() const;
246 246
247 void layerForScrollingDidChange(WebCompositorAnimationTimeline*); 247 void layerForScrollingDidChange(WebCompositorAnimationTimeline*);
248 248
249 void cancelScrollAnimation(); 249 void cancelScrollAnimation();
250 void cancelProgrammaticScrollAnimation(); 250 virtual void cancelProgrammaticScrollAnimation();
251 251
252 virtual ~ScrollableArea(); 252 virtual ~ScrollableArea();
253 253
254 // Called when any of horizontal scrollbar, vertical scrollbar and scroll co rner is setNeedsPaintInvalidation. 254 // Called when any of horizontal scrollbar, vertical scrollbar and scroll co rner is setNeedsPaintInvalidation.
255 virtual void scrollControlWasSetNeedsPaintInvalidation() = 0; 255 virtual void scrollControlWasSetNeedsPaintInvalidation() = 0;
256 256
257 // Returns the default scroll style this area should scroll with when not 257 // Returns the default scroll style this area should scroll with when not
258 // explicitly specified. E.g. The scrolling behavior of an element can be 258 // explicitly specified. E.g. The scrolling behavior of an element can be
259 // specified in CSS. 259 // specified in CSS.
260 virtual ScrollBehavior scrollBehaviorStyle() const { return ScrollBehaviorIn stant; } 260 virtual ScrollBehavior scrollBehaviorStyle() const { return ScrollBehaviorIn stant; }
261 261
262 // TODO(bokan): This is only used in FrameView to check scrollability but is 262 // TODO(bokan): This is only used in FrameView to check scrollability but is
263 // needed here to allow RootFrameViewport to preserve wheelHandler 263 // needed here to allow RootFrameViewport to preserve wheelHandler
264 // semantics. Not sure why it's FrameView specific, it could probably be 264 // semantics. Not sure why it's FrameView specific, it could probably be
265 // generalized to other types of ScrollableAreas. 265 // generalized to other types of ScrollableAreas.
266 virtual bool isScrollable() { return true; } 266 virtual bool isScrollable() { return true; }
267 267
268 // TODO(bokan): FrameView::setScrollPosition uses updateScrollbars to scroll 268 // TODO(bokan): FrameView::setScrollPosition uses updateScrollbars to scroll
269 // which bails out early if its already in updateScrollbars, the effect bein g 269 // which bails out early if its already in updateScrollbars, the effect bein g
270 // that programmatic scrolls (i.e. setScrollPosition) are disabled when in 270 // that programmatic scrolls (i.e. setScrollPosition) are disabled when in
271 // updateScrollbars. Expose this here to allow RootFrameViewport to match th e 271 // updateScrollbars. Expose this here to allow RootFrameViewport to match th e
272 // semantics for now but it should be cleaned up at the source. 272 // semantics for now but it should be cleaned up at the source.
273 virtual bool isProgrammaticallyScrollable() { return true; } 273 virtual bool isProgrammaticallyScrollable() { return true; }
274 274
275 // Subtracts space occupied by this ScrollableArea's scrollbars. 275 // Subtracts space occupied by this ScrollableArea's scrollbars.
276 // Does nothing if overlay scrollbars are enabled. 276 // Does nothing if overlay scrollbars are enabled.
277 IntSize excludeScrollbars(const IntSize&) const; 277 IntSize excludeScrollbars(const IntSize&) const;
278 278
279 static ScrollbarOrientation scrollbarOrientationFromDirection(ScrollDirectio nPhysical);
bokan 2015/12/04 20:42:52 Why public? Also, just make it a normal method lik
ymalik 2015/12/07 17:53:14 Done.
280
279 // Need to promptly let go of owned animator objects. 281 // Need to promptly let go of owned animator objects.
280 EAGERLY_FINALIZE(); 282 EAGERLY_FINALIZE();
281 DEFINE_INLINE_VIRTUAL_TRACE() { } 283 DEFINE_INLINE_VIRTUAL_TRACE() { }
282 284
283 protected: 285 protected:
284 ScrollableArea(); 286 ScrollableArea();
285 287
288 float scrollStep(ScrollGranularity, ScrollbarOrientation) const;
289
286 void setScrollOrigin(const IntPoint&); 290 void setScrollOrigin(const IntPoint&);
287 void resetScrollOriginChanged() { m_scrollOriginChanged = false; } 291 void resetScrollOriginChanged() { m_scrollOriginChanged = false; }
288 292
289 // Needed to let the animators call scrollPositionChanged. 293 // Needed to let the animators call scrollPositionChanged.
290 friend class ScrollAnimatorBase; 294 friend class ScrollAnimatorBase;
291 friend class ProgrammaticScrollAnimator; 295 friend class ProgrammaticScrollAnimator;
292 void scrollPositionChanged(const DoublePoint&, ScrollType); 296 void scrollPositionChanged(const DoublePoint&, ScrollType);
293 297
294 void clearScrollAnimators(); 298 void clearScrollAnimators();
295 299
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
352 // vertical-lr / ltr NO NO 356 // vertical-lr / ltr NO NO
353 // vertical-lr / rtl NO YES 357 // vertical-lr / rtl NO YES
354 // vertical-rl / ltr YES NO 358 // vertical-rl / ltr YES NO
355 // vertical-rl / rtl YES YES 359 // vertical-rl / rtl YES YES
356 IntPoint m_scrollOrigin; 360 IntPoint m_scrollOrigin;
357 }; 361 };
358 362
359 } // namespace blink 363 } // namespace blink
360 364
361 #endif // ScrollableArea_h 365 #endif // ScrollableArea_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698