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

Unified Diff: sky/engine/platform/scroll/ScrollableArea.h

Issue 879993004: Remove ScrollableArea and Scrollbar (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 11 months 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/platform/scroll/ScrollTypes.h ('k') | sky/engine/platform/scroll/ScrollableArea.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/platform/scroll/ScrollableArea.h
diff --git a/sky/engine/platform/scroll/ScrollableArea.h b/sky/engine/platform/scroll/ScrollableArea.h
deleted file mode 100644
index 0eb0ef4a4078ff8b873c19f26bdd473e1d081287..0000000000000000000000000000000000000000
--- a/sky/engine/platform/scroll/ScrollableArea.h
+++ /dev/null
@@ -1,189 +0,0 @@
-/*
- * Copyright (C) 2008, 2011 Apple Inc. All Rights Reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
- * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
- * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
- * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
- * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
- * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#ifndef SKY_ENGINE_PLATFORM_SCROLL_SCROLLABLEAREA_H_
-#define SKY_ENGINE_PLATFORM_SCROLL_SCROLLABLEAREA_H_
-
-#include "sky/engine/platform/PlatformExport.h"
-#include "sky/engine/platform/scroll/ScrollAnimator.h"
-#include "sky/engine/platform/scroll/Scrollbar.h"
-#include "sky/engine/wtf/Noncopyable.h"
-#include "sky/engine/wtf/Vector.h"
-
-namespace blink {
-
-class FloatPoint;
-class HostWindow;
-class ScrollAnimator;
-
-enum ScrollBehavior {
- ScrollBehaviorAuto,
- ScrollBehaviorInstant,
- ScrollBehaviorSmooth,
-};
-
-enum IncludeScrollbarsInRect {
- ExcludeScrollbars,
- IncludeScrollbars,
-};
-
-class PLATFORM_EXPORT ScrollableArea {
- WTF_MAKE_NONCOPYABLE(ScrollableArea);
-public:
- static int pixelsPerLineStep();
- static float minFractionToStepWhenPaging();
- static int maxOverlapBetweenPages();
-
- // The window that hosts the ScrollView. The ScrollView will communicate scrolls and repaints to the
- // host window in the window's coordinate space.
- virtual HostWindow* hostWindow() const = 0;
-
- bool scroll(ScrollDirection, ScrollGranularity, float delta = 1);
- void scrollToOffsetWithoutAnimation(const FloatPoint&);
- void scrollToOffsetWithoutAnimation(ScrollbarOrientation, float offset);
-
- static bool scrollBehaviorFromString(const String&, ScrollBehavior&);
-
- // Functions for controlling if you can scroll past the end of the document.
- bool constrainsScrollingToContentEdge() const { return m_constrainsScrollingToContentEdge; }
- void setConstrainsScrollingToContentEdge(bool constrainsScrollingToContentEdge) { m_constrainsScrollingToContentEdge = constrainsScrollingToContentEdge; }
-
- void setVerticalScrollElasticity(ScrollElasticity scrollElasticity) { m_verticalScrollElasticity = scrollElasticity; }
- ScrollElasticity verticalScrollElasticity() const { return static_cast<ScrollElasticity>(m_verticalScrollElasticity); }
-
- void setHorizontalScrollElasticity(ScrollElasticity scrollElasticity) { m_horizontalScrollElasticity = scrollElasticity; }
- ScrollElasticity horizontalScrollElasticity() const { return static_cast<ScrollElasticity>(m_horizontalScrollElasticity); }
-
- void contentAreaDidShow() const;
- void contentAreaDidHide() const;
-
- void finishCurrentScrollAnimations() const;
-
- void didAddScrollbar(Scrollbar*, ScrollbarOrientation);
- void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation);
-
- void contentsResized();
-
- bool hasOverlayScrollbars() const;
-
- // This getter will create a ScrollAnimator if it doesn't already exist.
- ScrollAnimator* scrollAnimator() const;
-
- // This getter will return null if the ScrollAnimator hasn't been created yet.
- ScrollAnimator* existingScrollAnimator() const { return m_animators ? m_animators->scrollAnimator.get() : 0; }
-
- const IntPoint& scrollOrigin() const { return m_scrollOrigin; }
- bool scrollOriginChanged() const { return m_scrollOriginChanged; }
-
- // FIXME(bokan): Meaningless name, rename to isActiveFocus
- virtual bool isActive() const = 0;
- virtual int scrollSize(ScrollbarOrientation) const = 0;
-
- // Convert points and rects between the scrollbar and its containing view.
- // The client needs to implement these in order to be aware of layout effects
- // like CSS transforms.
- virtual IntRect convertFromScrollbarToContainingView(const Scrollbar*, const IntRect&) const = 0;
- virtual IntRect convertFromContainingViewToScrollbar(const Scrollbar*, const IntRect&) const = 0;
- virtual IntPoint convertFromScrollbarToContainingView(const Scrollbar*, const IntPoint&) const = 0;
- virtual IntPoint convertFromContainingViewToScrollbar(const Scrollbar*, const IntPoint&) const = 0;
-
- virtual Scrollbar* horizontalScrollbar() const = 0;
- virtual Scrollbar* verticalScrollbar() const = 0;
-
- // scrollPosition is relative to the scrollOrigin. i.e. If the page is RTL
- // then scrollPosition will be negative.
- virtual IntPoint scrollPosition() const = 0;
- virtual IntPoint minimumScrollPosition() const = 0;
- virtual IntPoint maximumScrollPosition() const = 0;
-
- virtual IntSize contentsSize() const = 0;
-
- bool shouldSuspendScrollAnimations() const { return true; }
-
- IntPoint clampScrollPosition(const IntPoint&) const;
-
- // Returns true if the GraphicsLayer tree needs to be rebuilt.
- virtual bool updateAfterCompositingChange() = 0;
-
- virtual bool userInputScrollable(ScrollbarOrientation) const = 0;
- virtual bool shouldPlaceVerticalScrollbarOnLeft() const = 0;
-
- int scrollPosition(ScrollbarOrientation orientation) { return orientation == HorizontalScrollbar ? scrollPosition().x() : scrollPosition().y(); }
- int minimumScrollPosition(ScrollbarOrientation orientation) { return orientation == HorizontalScrollbar ? minimumScrollPosition().x() : minimumScrollPosition().y(); }
- int maximumScrollPosition(ScrollbarOrientation orientation) { return orientation == HorizontalScrollbar ? maximumScrollPosition().x() : maximumScrollPosition().y(); }
- int clampScrollPosition(ScrollbarOrientation orientation, int pos) { return std::max(std::min(pos, maximumScrollPosition(orientation)), minimumScrollPosition(orientation)); }
-
-protected:
- ScrollableArea();
- virtual ~ScrollableArea();
-
- void setScrollOrigin(const IntPoint&);
- void resetScrollOriginChanged() { m_scrollOriginChanged = false; }
-
-private:
- void scrollPositionChanged(const IntPoint&);
-
- // NOTE: Only called from the ScrollAnimator.
- friend class ScrollAnimator;
- void setScrollOffsetFromAnimation(const IntPoint&);
-
- // This function should be overriden by subclasses to perform the actual
- // scroll of the content.
- virtual void setScrollOffset(const IntPoint&) = 0;
-
- int lineStep(ScrollbarOrientation) const;
- int documentStep(ScrollbarOrientation) const;
- virtual int pageStep(ScrollbarOrientation) const = 0;
- float pixelStep(ScrollbarOrientation) const;
-
- struct ScrollableAreaAnimators {
- OwnPtr<ScrollAnimator> scrollAnimator;
- };
-
- mutable OwnPtr<ScrollableAreaAnimators> m_animators;
- unsigned m_constrainsScrollingToContentEdge : 1;
-
- unsigned m_verticalScrollElasticity : 2; // ScrollElasticity
- unsigned m_horizontalScrollElasticity : 2; // ScrollElasticity
-
- unsigned m_scrollOriginChanged : 1;
-
- // There are 8 possible combinations of writing mode and direction. Scroll origin will be non-zero in the x or y axis
- // if there is any reversed direction or writing-mode. The combinations are:
- // writing-mode / direction scrollOrigin.x() set scrollOrigin.y() set
- // horizontal-tb / ltr NO NO
- // horizontal-tb / rtl YES NO
- // horizontal-bt / ltr NO YES
- // horizontal-bt / rtl YES YES
- // vertical-lr / ltr NO NO
- // vertical-lr / rtl NO YES
- // vertical-rl / ltr YES NO
- // vertical-rl / rtl YES YES
- IntPoint m_scrollOrigin;
-};
-
-} // namespace blink
-
-#endif // SKY_ENGINE_PLATFORM_SCROLL_SCROLLABLEAREA_H_
« no previous file with comments | « sky/engine/platform/scroll/ScrollTypes.h ('k') | sky/engine/platform/scroll/ScrollableArea.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698