OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2007 Apple Inc. All rights 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 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
49 , m_nextLineBox(0) | 49 , m_nextLineBox(0) |
50 , m_includeLogicalLeftEdge(false) | 50 , m_includeLogicalLeftEdge(false) |
51 , m_includeLogicalRightEdge(false) | 51 , m_includeLogicalRightEdge(false) |
52 , m_descendantsHaveSameLineHeightAndBaseline(true) | 52 , m_descendantsHaveSameLineHeightAndBaseline(true) |
53 , m_baselineType(AlphabeticBaseline) | 53 , m_baselineType(AlphabeticBaseline) |
54 , m_hasAnnotationsBefore(false) | 54 , m_hasAnnotationsBefore(false) |
55 , m_hasAnnotationsAfter(false) | 55 , m_hasAnnotationsAfter(false) |
56 , m_lineBreakBidiStatusEor(WTF::Unicode::LeftToRight) | 56 , m_lineBreakBidiStatusEor(WTF::Unicode::LeftToRight) |
57 , m_lineBreakBidiStatusLastStrong(WTF::Unicode::LeftToRight) | 57 , m_lineBreakBidiStatusLastStrong(WTF::Unicode::LeftToRight) |
58 , m_lineBreakBidiStatusLast(WTF::Unicode::LeftToRight) | 58 , m_lineBreakBidiStatusLast(WTF::Unicode::LeftToRight) |
| 59 , m_isFirstAfterPageBreak(false) |
59 #if ENABLE(ASSERT) | 60 #if ENABLE(ASSERT) |
60 , m_hasBadChildList(false) | 61 , m_hasBadChildList(false) |
61 #endif | 62 #endif |
62 { | 63 { |
63 // Internet Explorer and Firefox always create a marker for list items,
even when the list-style-type is none. We do not make a marker | 64 // Internet Explorer and Firefox always create a marker for list items,
even when the list-style-type is none. We do not make a marker |
64 // in the list-style-type: none case, since it is wasteful to do so. Ho
wever, in order to match other browsers we have to pretend like | 65 // in the list-style-type: none case, since it is wasteful to do so. Ho
wever, in order to match other browsers we have to pretend like |
65 // an invisible marker exists. The side effect of having an invisible m
arker is that the quirks mode behavior of shrinking lines with no | 66 // an invisible marker exists. The side effect of having an invisible m
arker is that the quirks mode behavior of shrinking lines with no |
66 // text children must not apply. This change also means that gaps will
exist between image bullet list items. Even when the list bullet | 67 // text children must not apply. This change also means that gaps will
exist between image bullet list items. Even when the list bullet |
67 // is an image, the line is still considered to be immune from the quirk
. | 68 // is an image, the line is still considered to be immune from the quirk
. |
68 m_hasTextChildren = obj.style()->display() == LIST_ITEM; | 69 m_hasTextChildren = obj.style()->display() == LIST_ITEM; |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
281 } | 282 } |
282 | 283 |
283 bool descendantsHaveSameLineHeightAndBaseline() const { return m_descendants
HaveSameLineHeightAndBaseline; } | 284 bool descendantsHaveSameLineHeightAndBaseline() const { return m_descendants
HaveSameLineHeightAndBaseline; } |
284 void clearDescendantsHaveSameLineHeightAndBaseline() | 285 void clearDescendantsHaveSameLineHeightAndBaseline() |
285 { | 286 { |
286 m_descendantsHaveSameLineHeightAndBaseline = false; | 287 m_descendantsHaveSameLineHeightAndBaseline = false; |
287 if (parent() && parent()->descendantsHaveSameLineHeightAndBaseline()) | 288 if (parent() && parent()->descendantsHaveSameLineHeightAndBaseline()) |
288 parent()->clearDescendantsHaveSameLineHeightAndBaseline(); | 289 parent()->clearDescendantsHaveSameLineHeightAndBaseline(); |
289 } | 290 } |
290 | 291 |
| 292 bool isFirstAfterPageBreak() const { return m_isFirstAfterPageBreak; } |
| 293 void setIsFirstAfterPageBreak(bool isFirstAfterPageBreak) { m_isFirstAfterPa
geBreak = isFirstAfterPageBreak; } |
| 294 |
291 private: | 295 private: |
292 void addBoxShadowVisualOverflow(LayoutRect& logicalVisualOverflow); | 296 void addBoxShadowVisualOverflow(LayoutRect& logicalVisualOverflow); |
293 void addBorderOutsetVisualOverflow(LayoutRect& logicalVisualOverflow); | 297 void addBorderOutsetVisualOverflow(LayoutRect& logicalVisualOverflow); |
294 void addOutlineVisualOverflow(LayoutRect& logicalVisualOverflow); | 298 void addOutlineVisualOverflow(LayoutRect& logicalVisualOverflow); |
295 void addTextBoxVisualOverflow(InlineTextBox*, GlyphOverflowAndFallbackFontsM
ap&, LayoutRect& logicalVisualOverflow); | 299 void addTextBoxVisualOverflow(InlineTextBox*, GlyphOverflowAndFallbackFontsM
ap&, LayoutRect& logicalVisualOverflow); |
296 void addReplacedChildOverflow(const InlineBox*, LayoutRect& logicalLayoutOve
rflow, LayoutRect& logicalVisualOverflow); | 300 void addReplacedChildOverflow(const InlineBox*, LayoutRect& logicalLayoutOve
rflow, LayoutRect& logicalVisualOverflow); |
297 | 301 |
298 void setLayoutOverflow(const LayoutRect&, const LayoutRect&); | 302 void setLayoutOverflow(const LayoutRect&, const LayoutRect&); |
299 void setVisualOverflow(const LayoutRect&, const LayoutRect&); | 303 void setVisualOverflow(const LayoutRect&, const LayoutRect&); |
300 | 304 |
(...skipping 26 matching lines...) Expand all Loading... |
327 unsigned m_baselineType : 1; // FontBaseline | 331 unsigned m_baselineType : 1; // FontBaseline |
328 | 332 |
329 // If the line contains any ruby runs, then this will be true. | 333 // If the line contains any ruby runs, then this will be true. |
330 unsigned m_hasAnnotationsBefore : 1; | 334 unsigned m_hasAnnotationsBefore : 1; |
331 unsigned m_hasAnnotationsAfter : 1; | 335 unsigned m_hasAnnotationsAfter : 1; |
332 | 336 |
333 unsigned m_lineBreakBidiStatusEor : 5; // WTF::Unicode::Direction | 337 unsigned m_lineBreakBidiStatusEor : 5; // WTF::Unicode::Direction |
334 unsigned m_lineBreakBidiStatusLastStrong : 5; // WTF::Unicode::Direction | 338 unsigned m_lineBreakBidiStatusLastStrong : 5; // WTF::Unicode::Direction |
335 unsigned m_lineBreakBidiStatusLast : 5; // WTF::Unicode::Direction | 339 unsigned m_lineBreakBidiStatusLast : 5; // WTF::Unicode::Direction |
336 | 340 |
| 341 unsigned m_isFirstAfterPageBreak : 1; |
| 342 |
337 // End of RootInlineBox-specific members. | 343 // End of RootInlineBox-specific members. |
338 | 344 |
339 #if ENABLE(ASSERT) | 345 #if ENABLE(ASSERT) |
340 private: | 346 private: |
341 unsigned m_hasBadChildList : 1; | 347 unsigned m_hasBadChildList : 1; |
342 #endif | 348 #endif |
343 }; | 349 }; |
344 | 350 |
345 DEFINE_INLINE_BOX_TYPE_CASTS(InlineFlowBox); | 351 DEFINE_INLINE_BOX_TYPE_CASTS(InlineFlowBox); |
346 | 352 |
(...skipping 11 matching lines...) Expand all Loading... |
358 } | 364 } |
359 | 365 |
360 } // namespace blink | 366 } // namespace blink |
361 | 367 |
362 #ifndef NDEBUG | 368 #ifndef NDEBUG |
363 // Outside the WebCore namespace for ease of invocation from gdb. | 369 // Outside the WebCore namespace for ease of invocation from gdb. |
364 void showTree(const blink::InlineFlowBox*); | 370 void showTree(const blink::InlineFlowBox*); |
365 #endif | 371 #endif |
366 | 372 |
367 #endif // InlineFlowBox_h | 373 #endif // InlineFlowBox_h |
OLD | NEW |