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 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
99 static bool scrollBehaviorFromString(const String&, ScrollBehavior&); | 99 static bool scrollBehaviorFromString(const String&, ScrollBehavior&); |
100 | 100 |
101 bool inLiveResize() const { return m_inLiveResize; } | 101 bool inLiveResize() const { return m_inLiveResize; } |
102 void willStartLiveResize(); | 102 void willStartLiveResize(); |
103 void willEndLiveResize(); | 103 void willEndLiveResize(); |
104 | 104 |
105 void contentAreaWillPaint() const; | 105 void contentAreaWillPaint() const; |
106 void mouseEnteredContentArea() const; | 106 void mouseEnteredContentArea() const; |
107 void mouseExitedContentArea() const; | 107 void mouseExitedContentArea() const; |
108 void mouseMovedInContentArea() const; | 108 void mouseMovedInContentArea() const; |
109 void mouseEnteredScrollbar(Scrollbar*) const; | 109 void mouseEnteredScrollbar(Scrollbar&) const; |
110 void mouseExitedScrollbar(Scrollbar*) const; | 110 void mouseExitedScrollbar(Scrollbar&) const; |
111 void contentAreaDidShow() const; | 111 void contentAreaDidShow() const; |
112 void contentAreaDidHide() const; | 112 void contentAreaDidHide() const; |
113 | 113 |
114 void finishCurrentScrollAnimations() const; | 114 void finishCurrentScrollAnimations() const; |
115 | 115 |
116 virtual void didAddScrollbar(Scrollbar*, ScrollbarOrientation); | 116 virtual void didAddScrollbar(Scrollbar&, ScrollbarOrientation); |
117 virtual void willRemoveScrollbar(Scrollbar*, ScrollbarOrientation); | 117 virtual void willRemoveScrollbar(Scrollbar&, ScrollbarOrientation); |
118 | 118 |
119 virtual void contentsResized(); | 119 virtual void contentsResized(); |
120 | 120 |
121 bool hasOverlayScrollbars() const; | 121 bool hasOverlayScrollbars() const; |
122 void setScrollbarOverlayStyle(ScrollbarOverlayStyle); | 122 void setScrollbarOverlayStyle(ScrollbarOverlayStyle); |
123 ScrollbarOverlayStyle scrollbarOverlayStyle() const { return static_cast<Scr
ollbarOverlayStyle>(m_scrollbarOverlayStyle); } | 123 ScrollbarOverlayStyle scrollbarOverlayStyle() const { return static_cast<Scr
ollbarOverlayStyle>(m_scrollbarOverlayStyle); } |
124 | 124 |
125 // This getter will create a ScrollAnimatorBase if it doesn't already exist. | 125 // This getter will create a ScrollAnimatorBase if it doesn't already exist. |
126 ScrollAnimatorBase* scrollAnimator() const; | 126 ScrollAnimatorBase& scrollAnimator() const; |
127 | 127 |
128 // This getter will return null if the ScrollAnimatorBase hasn't been create
d yet. | 128 // This getter will return null if the ScrollAnimatorBase hasn't been create
d yet. |
129 ScrollAnimatorBase* existingScrollAnimator() const { return m_scrollAnimator
.get(); } | 129 ScrollAnimatorBase* existingScrollAnimator() const { return m_scrollAnimator
.get(); } |
130 | 130 |
131 ProgrammaticScrollAnimator* programmaticScrollAnimator() const; | 131 ProgrammaticScrollAnimator& programmaticScrollAnimator() const; |
132 ProgrammaticScrollAnimator* existingProgrammaticScrollAnimator() const { ret
urn m_programmaticScrollAnimator.get(); } | 132 ProgrammaticScrollAnimator* existingProgrammaticScrollAnimator() const { ret
urn m_programmaticScrollAnimator.get(); } |
133 | 133 |
134 const IntPoint& scrollOrigin() const { return m_scrollOrigin; } | 134 const IntPoint& scrollOrigin() const { return m_scrollOrigin; } |
135 bool scrollOriginChanged() const { return m_scrollOriginChanged; } | 135 bool scrollOriginChanged() const { return m_scrollOriginChanged; } |
136 | 136 |
137 | 137 |
138 // This is used to determine whether the incoming fractional scroll offset s
hould | 138 // This is used to determine whether the incoming fractional scroll offset s
hould |
139 // be truncated to integer. Current rule is that if preferCompositingToLCDTe
xtEnabled() | 139 // be truncated to integer. Current rule is that if preferCompositingToLCDTe
xtEnabled() |
140 // is disabled (which is true on low-dpi device by default) we should do the
truncation. | 140 // is disabled (which is true on low-dpi device by default) we should do the
truncation. |
141 // The justification is that non-composited elements using fractional scroll
offsets | 141 // The justification is that non-composited elements using fractional scroll
offsets |
142 // is causing too much nasty bugs but does not add too benefit on low-dpi de
vices. | 142 // is causing too much nasty bugs but does not add too benefit on low-dpi de
vices. |
143 virtual bool shouldUseIntegerScrollOffset() const { return !RuntimeEnabledFe
atures::fractionalScrollOffsetsEnabled(); } | 143 virtual bool shouldUseIntegerScrollOffset() const { return !RuntimeEnabledFe
atures::fractionalScrollOffsetsEnabled(); } |
144 | 144 |
145 virtual bool isActive() const = 0; | 145 virtual bool isActive() const = 0; |
146 virtual int scrollSize(ScrollbarOrientation) const = 0; | 146 virtual int scrollSize(ScrollbarOrientation) const = 0; |
147 void setScrollbarNeedsPaintInvalidation(Scrollbar*); | 147 void setScrollbarNeedsPaintInvalidation(ScrollbarOrientation); |
148 virtual bool isScrollCornerVisible() const = 0; | 148 virtual bool isScrollCornerVisible() const = 0; |
149 virtual IntRect scrollCornerRect() const = 0; | 149 virtual IntRect scrollCornerRect() const = 0; |
150 void setScrollCornerNeedsPaintInvalidation(); | 150 void setScrollCornerNeedsPaintInvalidation(); |
151 virtual void getTickmarks(Vector<IntRect>&) const { } | 151 virtual void getTickmarks(Vector<IntRect>&) const { } |
152 | 152 |
153 // Convert points and rects between the scrollbar and its containing Widget. | 153 // Convert points and rects between the scrollbar and its containing Widget. |
154 // The client needs to implement these in order to be aware of layout effect
s | 154 // The client needs to implement these in order to be aware of layout effect
s |
155 // like CSS transforms. | 155 // like CSS transforms. |
156 virtual IntRect convertFromScrollbarToContainingWidget(const Scrollbar* scro
llbar, const IntRect& scrollbarRect) const | 156 virtual IntRect convertFromScrollbarToContainingWidget(const Scrollbar& scro
llbar, const IntRect& scrollbarRect) const |
157 { | 157 { |
158 return scrollbar->Widget::convertToContainingWidget(scrollbarRect); | 158 return scrollbar.Widget::convertToContainingWidget(scrollbarRect); |
159 } | 159 } |
160 virtual IntRect convertFromContainingWidgetToScrollbar(const Scrollbar* scro
llbar, const IntRect& parentRect) const | 160 virtual IntRect convertFromContainingWidgetToScrollbar(const Scrollbar& scro
llbar, const IntRect& parentRect) const |
161 { | 161 { |
162 return scrollbar->Widget::convertFromContainingWidget(parentRect); | 162 return scrollbar.Widget::convertFromContainingWidget(parentRect); |
163 } | 163 } |
164 virtual IntPoint convertFromScrollbarToContainingWidget(const Scrollbar* scr
ollbar, const IntPoint& scrollbarPoint) const | 164 virtual IntPoint convertFromScrollbarToContainingWidget(const Scrollbar& scr
ollbar, const IntPoint& scrollbarPoint) const |
165 { | 165 { |
166 return scrollbar->Widget::convertToContainingWidget(scrollbarPoint); | 166 return scrollbar.Widget::convertToContainingWidget(scrollbarPoint); |
167 } | 167 } |
168 virtual IntPoint convertFromContainingWidgetToScrollbar(const Scrollbar* scr
ollbar, const IntPoint& parentPoint) const | 168 virtual IntPoint convertFromContainingWidgetToScrollbar(const Scrollbar& scr
ollbar, const IntPoint& parentPoint) const |
169 { | 169 { |
170 return scrollbar->Widget::convertFromContainingWidget(parentPoint); | 170 return scrollbar.Widget::convertFromContainingWidget(parentPoint); |
171 } | 171 } |
172 | 172 |
173 virtual Scrollbar* horizontalScrollbar() const { return 0; } | 173 virtual Scrollbar* horizontalScrollbar() const { return nullptr; } |
174 virtual Scrollbar* verticalScrollbar() const { return 0; } | 174 virtual Scrollbar* verticalScrollbar() const { return nullptr; } |
175 | 175 |
176 // scrollPosition is relative to the scrollOrigin. i.e. If the page is RTL | 176 // scrollPosition is relative to the scrollOrigin. i.e. If the page is RTL |
177 // then scrollPosition will be negative. By default, scrollPositionDouble() | 177 // then scrollPosition will be negative. By default, scrollPositionDouble() |
178 // just call into scrollPosition(). Subclass can override scrollPositionDoub
le() | 178 // just call into scrollPosition(). Subclass can override scrollPositionDoub
le() |
179 // to return floating point precision scrolloffset. | 179 // to return floating point precision scrolloffset. |
180 // FIXME: Remove scrollPosition(). crbug.com/414283. | 180 // FIXME: Remove scrollPosition(). crbug.com/414283. |
181 virtual IntPoint scrollPosition() const = 0; | 181 virtual IntPoint scrollPosition() const = 0; |
182 virtual DoublePoint scrollPositionDouble() const { return DoublePoint(scroll
Position()); } | 182 virtual DoublePoint scrollPositionDouble() const { return DoublePoint(scroll
Position()); } |
183 virtual IntPoint minimumScrollPosition() const = 0; | 183 virtual IntPoint minimumScrollPosition() const = 0; |
184 virtual DoublePoint minimumScrollPositionDouble() const { return DoublePoint
(minimumScrollPosition()); } | 184 virtual DoublePoint minimumScrollPositionDouble() const { return DoublePoint
(minimumScrollPosition()); } |
(...skipping 160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
345 // vertical-lr / ltr NO NO | 345 // vertical-lr / ltr NO NO |
346 // vertical-lr / rtl NO YES | 346 // vertical-lr / rtl NO YES |
347 // vertical-rl / ltr YES NO | 347 // vertical-rl / ltr YES NO |
348 // vertical-rl / rtl YES YES | 348 // vertical-rl / rtl YES YES |
349 IntPoint m_scrollOrigin; | 349 IntPoint m_scrollOrigin; |
350 }; | 350 }; |
351 | 351 |
352 } // namespace blink | 352 } // namespace blink |
353 | 353 |
354 #endif // ScrollableArea_h | 354 #endif // ScrollableArea_h |
OLD | NEW |