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

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

Issue 2387883002: Use float for scroll offset. (Closed)
Patch Set: Fix README.md Created 4 years, 2 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Computer, Inc. All rights reserved. 2 * Copyright (C) 2006 Apple Computer, 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
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY 13 * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR 16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR 19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY 20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */ 24 */
25 25
26 #ifndef ScrollTypes_h 26 #ifndef ScrollTypes_h
27 #define ScrollTypes_h 27 #define ScrollTypes_h
28 28
29 #include "platform/geometry/FloatSize.h" 29 #include "platform/geometry/FloatPoint.h"
30 #include "wtf/Assertions.h" 30 #include "wtf/Assertions.h"
31 31
32 namespace blink { 32 namespace blink {
33 33
34 // A ScrollOffset represents an offset from the scroll origin of a
35 // ScrollableArea. Note that "scroll origin" is not the same as the layout
36 // concept of "location", nor is it necessarily coincident with the top/left of
37 // the ScrollableArea's overflow rect. See core/layout/README.md for more
38 // information.
39 typedef FloatSize ScrollOffset;
40
41 inline ScrollOffset toScrollOffset(const FloatPoint& p) {
42 return ScrollOffset(p.x(), p.y());
43 }
44
34 enum ScrollDirection { 45 enum ScrollDirection {
35 ScrollUpIgnoringWritingMode, 46 ScrollUpIgnoringWritingMode,
36 ScrollDownIgnoringWritingMode, 47 ScrollDownIgnoringWritingMode,
37 ScrollLeftIgnoringWritingMode, 48 ScrollLeftIgnoringWritingMode,
38 ScrollRightIgnoringWritingMode, 49 ScrollRightIgnoringWritingMode,
39 50
40 ScrollBlockDirectionBackward, 51 ScrollBlockDirectionBackward,
41 ScrollBlockDirectionForward, 52 ScrollBlockDirectionForward,
42 ScrollInlineDirectionBackward, 53 ScrollInlineDirectionBackward,
43 ScrollInlineDirectionForward 54 ScrollInlineDirectionForward
(...skipping 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
207 bool didScroll() { return didScrollX || didScrollY; } 218 bool didScroll() { return didScrollX || didScrollY; }
208 219
209 bool didScrollX; 220 bool didScrollX;
210 bool didScrollY; 221 bool didScrollY;
211 222
212 // In pixels. 223 // In pixels.
213 float unusedScrollDeltaX; 224 float unusedScrollDeltaX;
214 float unusedScrollDeltaY; 225 float unusedScrollDeltaY;
215 }; 226 };
216 227
217 inline FloatSize toScrollDelta(ScrollbarOrientation orientation, float delta) { 228 inline ScrollOffset toScrollDelta(ScrollbarOrientation orientation,
218 return orientation == HorizontalScrollbar ? FloatSize(delta, 0.0f) 229 float delta) {
219 : FloatSize(0.0f, delta); 230 return orientation == HorizontalScrollbar ? ScrollOffset(delta, 0.0f)
231 : ScrollOffset(0.0f, delta);
220 } 232 }
221 233
222 inline FloatSize toScrollDelta(ScrollDirectionPhysical dir, float delta) { 234 inline ScrollOffset toScrollDelta(ScrollDirectionPhysical dir, float delta) {
223 if (dir == ScrollUp || dir == ScrollLeft) 235 if (dir == ScrollUp || dir == ScrollLeft)
224 delta = -delta; 236 delta = -delta;
225 237
226 return (dir == ScrollLeft || dir == ScrollRight) ? FloatSize(delta, 0) 238 return (dir == ScrollLeft || dir == ScrollRight) ? ScrollOffset(delta, 0)
227 : FloatSize(0, delta); 239 : ScrollOffset(0, delta);
228 } 240 }
229 241
230 typedef unsigned ScrollbarControlPartMask; 242 typedef unsigned ScrollbarControlPartMask;
231 243
232 } // namespace blink 244 } // namespace blink
233 245
234 #endif 246 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698