| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 303 void scrollbarVisibilityChanged() override; | 303 void scrollbarVisibilityChanged() override; |
| 304 IntRect scrollableAreaBoundingBox() const override; | 304 IntRect scrollableAreaBoundingBox() const override; |
| 305 void registerForAnimation() override; | 305 void registerForAnimation() override; |
| 306 void deregisterForAnimation() override; | 306 void deregisterForAnimation() override; |
| 307 bool userInputScrollable(ScrollbarOrientation) const override; | 307 bool userInputScrollable(ScrollbarOrientation) const override; |
| 308 bool shouldPlaceVerticalScrollbarOnLeft() const override; | 308 bool shouldPlaceVerticalScrollbarOnLeft() const override; |
| 309 int pageStep(ScrollbarOrientation) const override; | 309 int pageStep(ScrollbarOrientation) const override; |
| 310 ScrollBehavior scrollBehaviorStyle() const override; | 310 ScrollBehavior scrollBehaviorStyle() const override; |
| 311 CompositorAnimationTimeline* compositorAnimationTimeline() const override; | 311 CompositorAnimationTimeline* compositorAnimationTimeline() const override; |
| 312 | 312 |
| 313 double scrollXOffset() const { | |
| 314 return m_scrollOffset.width() + scrollOrigin().x(); | |
| 315 } | |
| 316 double scrollYOffset() const { | |
| 317 return m_scrollOffset.height() + scrollOrigin().y(); | |
| 318 } | |
| 319 | |
| 320 DoubleSize scrollOffset() const { return m_scrollOffset; } | 313 DoubleSize scrollOffset() const { return m_scrollOffset; } |
| 321 | 314 |
| 322 // FIXME: We shouldn't allow access to m_overflowRect outside this class. | 315 // FIXME: We shouldn't allow access to m_overflowRect outside this class. |
| 323 LayoutRect overflowRect() const { return m_overflowRect; } | 316 LayoutRect overflowRect() const { return m_overflowRect; } |
| 324 | 317 |
| 325 void scrollToPosition(const DoublePoint& scrollPosition, | |
| 326 ScrollOffsetClamping = ScrollOffsetUnclamped, | |
| 327 ScrollBehavior = ScrollBehaviorInstant, | |
| 328 ScrollType = ProgrammaticScroll); | |
| 329 | |
| 330 void scrollToOffset(const DoubleSize& scrollOffset, | 318 void scrollToOffset(const DoubleSize& scrollOffset, |
| 331 ScrollOffsetClamping clamp = ScrollOffsetUnclamped, | |
| 332 ScrollBehavior scrollBehavior = ScrollBehaviorInstant, | 319 ScrollBehavior scrollBehavior = ScrollBehaviorInstant, |
| 333 ScrollType scrollType = ProgrammaticScroll) { | 320 ScrollType scrollType = ProgrammaticScroll) { |
| 334 scrollToPosition(-scrollOrigin() + scrollOffset, clamp, scrollBehavior, | 321 ScrollableArea::setScrollPosition(-scrollOrigin() + scrollOffset, |
| 335 scrollType); | 322 scrollType, scrollBehavior); |
| 336 } | |
| 337 | |
| 338 void scrollToXOffset(double x, | |
| 339 ScrollOffsetClamping clamp = ScrollOffsetUnclamped, | |
| 340 ScrollBehavior scrollBehavior = ScrollBehaviorInstant) { | |
| 341 scrollToOffset(DoubleSize(x, scrollYOffset()), clamp, scrollBehavior); | |
| 342 } | |
| 343 | |
| 344 void scrollToYOffset(double y, | |
| 345 ScrollOffsetClamping clamp = ScrollOffsetUnclamped, | |
| 346 ScrollBehavior scrollBehavior = ScrollBehaviorInstant) { | |
| 347 scrollToOffset(DoubleSize(scrollXOffset(), y), clamp, scrollBehavior); | |
| 348 } | 323 } |
| 349 | 324 |
| 350 void setScrollPosition( | 325 void setScrollPosition( |
| 351 const DoublePoint& position, | 326 const DoublePoint& position, |
| 352 ScrollType scrollType, | 327 ScrollType scrollType, |
| 353 ScrollBehavior scrollBehavior = ScrollBehaviorInstant) override { | 328 ScrollBehavior scrollBehavior = ScrollBehaviorInstant) override { |
| 354 scrollToOffset(toDoubleSize(position), ScrollOffsetClamped, scrollBehavior, | 329 scrollToOffset(toDoubleSize(position), scrollBehavior, scrollType); |
| 355 scrollType); | |
| 356 } | 330 } |
| 357 | 331 |
| 332 // This will set the scroll position without clamping, and it will do all |
| 333 // post-update work even if the scroll position didn't change. |
| 334 void setScrollPositionUnconditionally(const DoublePoint&, |
| 335 ScrollType = ProgrammaticScroll); |
| 336 |
| 358 // TODO(szager): Actually run these after all of layout is finished. Currentl
y, they | 337 // TODO(szager): Actually run these after all of layout is finished. Currentl
y, they |
| 359 // run at the end of box()'es layout (or after all flexbox layout has finished
) but while | 338 // run at the end of box()'es layout (or after all flexbox layout has finished
) but while |
| 360 // document layout is still happening. | 339 // document layout is still happening. |
| 361 void updateAfterLayout(); | 340 void updateAfterLayout(); |
| 362 void clampScrollPositionsAfterLayout(); | 341 void clampScrollPositionsAfterLayout(); |
| 363 | 342 |
| 364 void updateAfterStyleChange(const ComputedStyle*); | 343 void updateAfterStyleChange(const ComputedStyle*); |
| 365 void updateAfterOverflowRecalc(); | 344 void updateAfterOverflowRecalc(); |
| 366 | 345 |
| 367 bool updateAfterCompositingChange() override; | 346 bool updateAfterCompositingChange() override; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 389 LayoutUnit scrollHeight() const; | 368 LayoutUnit scrollHeight() const; |
| 390 int pixelSnappedScrollWidth() const; | 369 int pixelSnappedScrollWidth() const; |
| 391 int pixelSnappedScrollHeight() const; | 370 int pixelSnappedScrollHeight() const; |
| 392 | 371 |
| 393 int verticalScrollbarWidth( | 372 int verticalScrollbarWidth( |
| 394 OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const; | 373 OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const; |
| 395 int horizontalScrollbarHeight( | 374 int horizontalScrollbarHeight( |
| 396 OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const; | 375 OverlayScrollbarClipBehavior = IgnoreOverlayScrollbarSize) const; |
| 397 | 376 |
| 398 DoubleSize adjustedScrollOffset() const { | 377 DoubleSize adjustedScrollOffset() const { |
| 399 return DoubleSize(scrollXOffset(), scrollYOffset()); | 378 return toDoubleSize(DoublePoint(scrollOrigin()) + m_scrollOffset); |
| 400 } | 379 } |
| 401 | 380 |
| 402 void positionOverflowControls(); | 381 void positionOverflowControls(); |
| 403 | 382 |
| 404 // isPointInResizeControl() is used for testing if a pointer/touch position is
in the resize control | 383 // isPointInResizeControl() is used for testing if a pointer/touch position is
in the resize control |
| 405 // area. | 384 // area. |
| 406 bool isPointInResizeControl(const IntPoint& absolutePoint, | 385 bool isPointInResizeControl(const IntPoint& absolutePoint, |
| 407 ResizerHitTestType) const; | 386 ResizerHitTestType) const; |
| 408 bool hitTestOverflowControls(HitTestResult&, const IntPoint& localPoint); | 387 bool hitTestOverflowControls(HitTestResult&, const IntPoint& localPoint); |
| 409 | 388 |
| (...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 610 | 589 |
| 611 DEFINE_TYPE_CASTS(PaintLayerScrollableArea, | 590 DEFINE_TYPE_CASTS(PaintLayerScrollableArea, |
| 612 ScrollableArea, | 591 ScrollableArea, |
| 613 scrollableArea, | 592 scrollableArea, |
| 614 scrollableArea->isPaintLayerScrollableArea(), | 593 scrollableArea->isPaintLayerScrollableArea(), |
| 615 scrollableArea.isPaintLayerScrollableArea()); | 594 scrollableArea.isPaintLayerScrollableArea()); |
| 616 | 595 |
| 617 } // namespace blink | 596 } // namespace blink |
| 618 | 597 |
| 619 #endif // LayerScrollableArea_h | 598 #endif // LayerScrollableArea_h |
| OLD | NEW |