OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All r ights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2009, 2010, 2011 Apple Inc. All r ights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 15 matching lines...) Expand all Loading... | |
26 | 26 |
27 namespace WebCore { | 27 namespace WebCore { |
28 | 28 |
29 class HitTestRequest; | 29 class HitTestRequest; |
30 class HitTestResult; | 30 class HitTestResult; |
31 class RootInlineBox; | 31 class RootInlineBox; |
32 | 32 |
33 // InlineBox represents a rectangle that occurs on a line. It corresponds to | 33 // InlineBox represents a rectangle that occurs on a line. It corresponds to |
34 // some RenderObject (i.e., it represents a portion of that RenderObject). | 34 // some RenderObject (i.e., it represents a portion of that RenderObject). |
35 class InlineBox { | 35 class InlineBox { |
36 WTF_MAKE_NONCOPYABLE(InlineBox); | |
36 public: | 37 public: |
37 InlineBox(RenderObject& obj) | 38 InlineBox(RenderObject& obj) |
38 : m_next(0) | 39 : m_next(0) |
39 , m_prev(0) | 40 , m_prev(0) |
40 , m_parent(0) | 41 , m_parent(0) |
41 , m_renderer(obj) | 42 , m_renderer(obj) |
42 , m_logicalWidth(0) | 43 , m_logicalWidth(0) |
43 #ifndef NDEBUG | 44 #ifndef NDEBUG |
44 , m_hasBadParent(false) | 45 , m_hasBadParent(false) |
45 #endif | 46 #endif |
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
175 | 176 |
176 RenderObject& renderer() const { return m_renderer; } | 177 RenderObject& renderer() const { return m_renderer; } |
177 | 178 |
178 InlineFlowBox* parent() const | 179 InlineFlowBox* parent() const |
179 { | 180 { |
180 ASSERT(!m_hasBadParent); | 181 ASSERT(!m_hasBadParent); |
181 return m_parent; | 182 return m_parent; |
182 } | 183 } |
183 void setParent(InlineFlowBox* par) { m_parent = par; } | 184 void setParent(InlineFlowBox* par) { m_parent = par; } |
184 | 185 |
185 const RootInlineBox* root() const; | 186 const RootInlineBox& root() const; |
186 RootInlineBox* root(); | 187 RootInlineBox& root(); |
187 | 188 |
188 // x() is the left side of the box in the containing block's coordinate syst em. | 189 // x() is the left side of the box in the containing block's coordinate syst em. |
189 void setX(float x) { m_topLeft.setX(x); } | 190 void setX(float x) { m_topLeft.setX(x); } |
190 float x() const { return m_topLeft.x(); } | 191 float x() const { return m_topLeft.x(); } |
191 float left() const { return m_topLeft.x(); } | 192 float left() const { return m_topLeft.x(); } |
192 | 193 |
193 // y() is the top side of the box in the containing block's coordinate syste m. | 194 // y() is the top side of the box in the containing block's coordinate syste m. |
194 void setY(float y) { m_topLeft.setY(y); } | 195 void setY(float y) { m_topLeft.setY(y); } |
195 float y() const { return m_topLeft.y(); } | 196 float y() const { return m_topLeft.y(); } |
196 float top() const { return m_topLeft.y(); } | 197 float top() const { return m_topLeft.y(); } |
(...skipping 222 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
419 #ifndef NDEBUG | 420 #ifndef NDEBUG |
420 inline void InlineBox::setHasBadParent() | 421 inline void InlineBox::setHasBadParent() |
421 { | 422 { |
422 m_hasBadParent = true; | 423 m_hasBadParent = true; |
423 } | 424 } |
424 #endif | 425 #endif |
425 | 426 |
426 #define DEFINE_INLINE_BOX_TYPE_CASTS(typeName) \ | 427 #define DEFINE_INLINE_BOX_TYPE_CASTS(typeName) \ |
427 DEFINE_TYPE_CASTS(typeName, InlineBox, box, box->is##typeName(), box.is##typ eName()) | 428 DEFINE_TYPE_CASTS(typeName, InlineBox, box, box->is##typeName(), box.is##typ eName()) |
428 | 429 |
430 // Allow equality comparisons of InlineBox's by reference or pointer, interchang eably. | |
Inactive
2014/03/03 20:25:18
I don't mind this but I'd like to hear esprehn's o
esprehn
2014/03/03 20:57:23
This is fine with me, having to marshall between r
| |
431 inline bool operator==(const InlineBox& a, const InlineBox& b) { return &a == &b ; } | |
432 inline bool operator==(const InlineBox& a, const InlineBox* b) { return &a == b; } | |
433 inline bool operator==(const InlineBox* a, const InlineBox& b) { return a == &b; } | |
434 inline bool operator!=(const InlineBox& a, const InlineBox& b) { return !(a == b ); } | |
435 inline bool operator!=(const InlineBox& a, const InlineBox* b) { return !(a == b ); } | |
436 inline bool operator!=(const InlineBox* a, const InlineBox& b) { return !(a == b ); } | |
437 | |
429 } // namespace WebCore | 438 } // namespace WebCore |
430 | 439 |
431 #ifndef NDEBUG | 440 #ifndef NDEBUG |
432 // Outside the WebCore namespace for ease of invocation from gdb. | 441 // Outside the WebCore namespace for ease of invocation from gdb. |
433 void showTree(const WebCore::InlineBox*); | 442 void showTree(const WebCore::InlineBox*); |
434 void showLineTree(const WebCore::InlineBox*); | 443 void showLineTree(const WebCore::InlineBox*); |
435 #endif | 444 #endif |
436 | 445 |
437 #endif // InlineBox_h | 446 #endif // InlineBox_h |
OLD | NEW |