OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2007 David Smith (catfish.man@gmail.com) | 4 * (C) 2007 David Smith (catfish.man@gmail.com) |
5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All r
ights reserved. |
6 * | 6 * |
7 * This library is free software; you can redistribute it and/or | 7 * This library is free software; you can redistribute it and/or |
8 * modify it under the terms of the GNU Library General Public | 8 * modify it under the terms of the GNU Library General Public |
9 * License as published by the Free Software Foundation; either | 9 * License as published by the Free Software Foundation; either |
10 * version 2 of the License, or (at your option) any later version. | 10 * version 2 of the License, or (at your option) any later version. |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 #if ENABLE(ASSERT) | 269 #if ENABLE(ASSERT) |
270 void checkPositionedObjectsNeedLayout(); | 270 void checkPositionedObjectsNeedLayout(); |
271 #endif | 271 #endif |
272 #ifndef NDEBUG | 272 #ifndef NDEBUG |
273 void showLineTreeAndMark(const InlineBox* = nullptr, const char* = nullptr,
const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr
) const; | 273 void showLineTreeAndMark(const InlineBox* = nullptr, const char* = nullptr,
const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr
) const; |
274 #endif | 274 #endif |
275 | 275 |
276 bool recalcChildOverflowAfterStyleChange(); | 276 bool recalcChildOverflowAfterStyleChange(); |
277 bool recalcOverflowAfterStyleChange(); | 277 bool recalcOverflowAfterStyleChange(); |
278 | 278 |
| 279 // An example explaining layout tree structure about first-line style: |
| 280 // <style> |
| 281 // #enclosingFirstLineStyleBlock::first-line { ... } |
| 282 // </style> |
| 283 // <div id="enclosingFirstLineStyleBlock"> |
| 284 // <div> |
| 285 // <div id="nearestInnerBlockWithFirstLine"> |
| 286 // [<span>]first line text[</span>] |
| 287 // </div> |
| 288 // </div> |
| 289 // </div> |
| 290 |
| 291 // Returns the nearest enclosing block (including this block) that contribut
es a first-line style to our first line. |
| 292 LayoutBlock* enclosingFirstLineStyleBlock() const; |
| 293 // Returns this block or the nearest inner block containing the actual first
line. |
| 294 LayoutBlockFlow* nearestInnerBlockWithFirstLine() const; |
| 295 |
279 protected: | 296 protected: |
280 void willBeDestroyed() override; | 297 void willBeDestroyed() override; |
281 | 298 |
282 void dirtyForLayoutFromPercentageHeightDescendants(SubtreeLayoutScope&); | 299 void dirtyForLayoutFromPercentageHeightDescendants(SubtreeLayoutScope&); |
283 | 300 |
284 void layout() override; | 301 void layout() override; |
285 | 302 |
286 enum PositionedLayoutBehavior { | 303 enum PositionedLayoutBehavior { |
287 DefaultLayout, | 304 DefaultLayout, |
288 LayoutOnlyFixedPositionedObjects, | 305 LayoutOnlyFixedPositionedObjects, |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
389 bool avoidsFloats() const override { return true; } | 406 bool avoidsFloats() const override { return true; } |
390 | 407 |
391 bool hitTestContents(HitTestResult&, const HitTestLocation& locationInContai
ner, const LayoutPoint& accumulatedOffset, HitTestAction); | 408 bool hitTestContents(HitTestResult&, const HitTestLocation& locationInContai
ner, const LayoutPoint& accumulatedOffset, HitTestAction); |
392 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo
utBlockFlow | 409 // FIXME-BLOCKFLOW: Remove virtualizaion when all callers have moved to Layo
utBlockFlow |
393 virtual bool hitTestFloats(HitTestResult&, const HitTestLocation&, const Lay
outPoint&) { return false; } | 410 virtual bool hitTestFloats(HitTestResult&, const HitTestLocation&, const Lay
outPoint&) { return false; } |
394 | 411 |
395 virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& loc
ationInContainer, const LayoutPoint& accumulatedOffset) const; | 412 virtual bool isPointInOverflowControl(HitTestResult&, const LayoutPoint& loc
ationInContainer, const LayoutPoint& accumulatedOffset) const; |
396 | 413 |
397 void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutU
nit& maxLogicalWidth) const; | 414 void computeBlockPreferredLogicalWidths(LayoutUnit& minLogicalWidth, LayoutU
nit& maxLogicalWidth) const; |
398 | 415 |
399 // Obtains the nearest enclosing block (including this block) that contribut
es a first-line style to our inline | |
400 // children. | |
401 LayoutBlock* firstLineBlock() const override; | |
402 | |
403 LayoutObject* hoverAncestor() const final; | 416 LayoutObject* hoverAncestor() const final; |
404 void updateDragState(bool dragOn) final; | 417 void updateDragState(bool dragOn) final; |
405 void childBecameNonInline(LayoutObject* child) final; | 418 void childBecameNonInline(LayoutObject* child) final; |
406 | 419 |
407 bool isSelectionRoot() const; | 420 bool isSelectionRoot() const; |
408 | 421 |
409 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c
onst override; | 422 void absoluteRects(Vector<IntRect>&, const LayoutPoint& accumulatedOffset) c
onst override; |
410 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override; | 423 void absoluteQuads(Vector<FloatQuad>&, bool* wasFixed) const override; |
411 | 424 |
412 public: | 425 public: |
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 // FIXME: This is temporary as we move code that accesses block flow | 502 // FIXME: This is temporary as we move code that accesses block flow |
490 // member variables out of LayoutBlock and into LayoutBlockFlow. | 503 // member variables out of LayoutBlock and into LayoutBlockFlow. |
491 friend class LayoutBlockFlow; | 504 friend class LayoutBlockFlow; |
492 }; | 505 }; |
493 | 506 |
494 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); | 507 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlock, isLayoutBlock()); |
495 | 508 |
496 } // namespace blink | 509 } // namespace blink |
497 | 510 |
498 #endif // LayoutBlock_h | 511 #endif // LayoutBlock_h |
OLD | NEW |