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

Side by Side Diff: third_party/WebKit/Source/core/editing/LayoutTreeTraversal.cpp

Issue 1756763002: 2016-03-02T18:53:01 LayoutPosition Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 2016-04-25T19:02:18 Created 4 years, 7 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
(Empty)
1 // Copyright 2016 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "core/editing/LayoutTreeTraversal.h"
6
7 #include "core/layout/LayoutObject.h"
8
9 namespace blink {
10
11 LayoutObject* LayoutTreeTraversal::firstChild(const LayoutObject& layoutObject)
12 {
13 return layoutObject.slowFirstChild();
14 }
15
16 bool LayoutTreeTraversal::hasChildren(const LayoutObject& layoutObject)
17 {
18 return firstChild(layoutObject);
19 }
20
21 LayoutObject* LayoutTreeTraversal::lastChild(const LayoutObject& layoutObject)
22 {
23 return layoutObject.slowLastChild();
24 }
25
26 LayoutObject* LayoutTreeTraversal::nextSibling(const LayoutObject& layoutObject)
27 {
28 return layoutObject.nextSibling();
29 }
30
31 LayoutObject* LayoutTreeTraversal::parent(const LayoutObject& layoutObject)
32 {
33 return layoutObject.parent();
34 }
35
36 LayoutObject* LayoutTreeTraversal::previousSibling(const LayoutObject& layoutObj ect)
37 {
38 return layoutObject.previousSibling();
39 }
40
41 LayoutObject* LayoutTreeTraversal::next(const LayoutObject& layoutObject)
42 {
43 if (LayoutObject* firstChild = LayoutTreeTraversal::firstChild(layoutObject) )
44 return firstChild;
45 for (LayoutObject* runner = const_cast<LayoutObject*>(&layoutObject); runner ; runner = LayoutTreeTraversal::parent(*runner)) {
46 if (LayoutObject* nextSibling = LayoutTreeTraversal::nextSibling(*runner ))
47 return nextSibling;
48 }
49 return nullptr;
50 }
51
52 LayoutObject* LayoutTreeTraversal::previous(const LayoutObject& layoutObject)
53 {
54 if (LayoutObject* previousSibling = LayoutTreeTraversal::previousSibling(lay outObject)) {
55 LayoutObject* result = previousSibling;
56 while (LayoutObject* lastChild = LayoutTreeTraversal::lastChild(*result) )
57 result = lastChild;
58 return result;
59 }
60 return LayoutTreeTraversal::parent(layoutObject);
61 }
62
63 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/editing/LayoutTreeTraversal.h ('k') | third_party/WebKit/Source/core/editing/Position.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698