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

Side by Side Diff: Source/core/editing/VisiblePosition.h

Issue 299353004: Oilpan: move editing objects to the heap. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Rebased + tidied Created 6 years, 6 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) 2004, 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2004, 2008 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 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 // Callers who do not know where on the line the position is, 42 // Callers who do not know where on the line the position is,
43 // but would like UPSTREAM if at a line break or DOWNSTREAM 43 // but would like UPSTREAM if at a line break or DOWNSTREAM
44 // otherwise, need a clear way to specify that. The 44 // otherwise, need a clear way to specify that. The
45 // constructors auto-correct UPSTREAM to DOWNSTREAM if the 45 // constructors auto-correct UPSTREAM to DOWNSTREAM if the
46 // position is not at a line break. 46 // position is not at a line break.
47 #define VP_UPSTREAM_IF_POSSIBLE UPSTREAM 47 #define VP_UPSTREAM_IF_POSSIBLE UPSTREAM
48 48
49 class InlineBox; 49 class InlineBox;
50 class Node; 50 class Node;
51 51
52 class VisiblePosition { 52 class VisiblePosition FINAL {
53 ALLOW_ONLY_INLINE_ALLOCATION();
haraken 2014/05/28 15:35:25 Who uses VisiblePosition in collections? Can this
sof 2014/05/28 22:06:06 No one is it turns out; don't need more than DISAL
53 public: 54 public:
54 // NOTE: UPSTREAM affinity will be used only if pos is at end of a wrapped l ine, 55 // NOTE: UPSTREAM affinity will be used only if pos is at end of a wrapped l ine,
55 // otherwise it will be converted to DOWNSTREAM 56 // otherwise it will be converted to DOWNSTREAM
56 VisiblePosition() : m_affinity(VP_DEFAULT_AFFINITY) { } 57 VisiblePosition() : m_affinity(VP_DEFAULT_AFFINITY) { }
57 explicit VisiblePosition(const Position&, EAffinity = VP_DEFAULT_AFFINITY); 58 explicit VisiblePosition(const Position&, EAffinity = VP_DEFAULT_AFFINITY);
58 explicit VisiblePosition(const PositionWithAffinity&); 59 explicit VisiblePosition(const PositionWithAffinity&);
59 60
60 void clear() { m_deepPosition.clear(); } 61 void clear() { m_deepPosition.clear(); }
61 62
62 bool isNull() const { return m_deepPosition.isNull(); } 63 bool isNull() const { return m_deepPosition.isNull(); }
(...skipping 29 matching lines...) Expand all
92 } 93 }
93 94
94 // Rect is local to the returned renderer 95 // Rect is local to the returned renderer
95 LayoutRect localCaretRect(RenderObject*&) const; 96 LayoutRect localCaretRect(RenderObject*&) const;
96 // Bounds of (possibly transformed) caret in absolute coords 97 // Bounds of (possibly transformed) caret in absolute coords
97 IntRect absoluteCaretBounds() const; 98 IntRect absoluteCaretBounds() const;
98 // Abs x/y position of the caret ignoring transforms. 99 // Abs x/y position of the caret ignoring transforms.
99 // FIXME: navigation with transforms should be smarter. 100 // FIXME: navigation with transforms should be smarter.
100 int lineDirectionPointForBlockDirectionNavigation() const; 101 int lineDirectionPointForBlockDirectionNavigation() const;
101 102
103 void trace(Visitor*);
104
102 #ifndef NDEBUG 105 #ifndef NDEBUG
103 void debugPosition(const char* msg = "") const; 106 void debugPosition(const char* msg = "") const;
104 void formatForDebugger(char* buffer, unsigned length) const; 107 void formatForDebugger(char* buffer, unsigned length) const;
105 void showTreeForThis() const; 108 void showTreeForThis() const;
106 #endif 109 #endif
107 110
108 private: 111 private:
109 void init(const Position&, EAffinity); 112 void init(const Position&, EAffinity);
110 Position canonicalPosition(const Position&); 113 Position canonicalPosition(const Position&);
111 114
(...skipping 27 matching lines...) Expand all
139 142
140 } // namespace WebCore 143 } // namespace WebCore
141 144
142 #ifndef NDEBUG 145 #ifndef NDEBUG
143 // Outside the WebCore namespace for ease of invocation from gdb. 146 // Outside the WebCore namespace for ease of invocation from gdb.
144 void showTree(const WebCore::VisiblePosition*); 147 void showTree(const WebCore::VisiblePosition*);
145 void showTree(const WebCore::VisiblePosition&); 148 void showTree(const WebCore::VisiblePosition&);
146 #endif 149 #endif
147 150
148 #endif // VisiblePosition_h 151 #endif // VisiblePosition_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698