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 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. | 4 * Copyright (C) 2003, 2006, 2007 Apple Inc. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
311 setHeight(size); | 311 setHeight(size); |
312 else | 312 else |
313 setWidth(size); | 313 setWidth(size); |
314 } | 314 } |
315 | 315 |
316 LayoutPoint location() const { return m_frameRect.location(); } | 316 LayoutPoint location() const { return m_frameRect.location(); } |
317 LayoutSize locationOffset() const { | 317 LayoutSize locationOffset() const { |
318 return LayoutSize(m_frameRect.x(), m_frameRect.y()); | 318 return LayoutSize(m_frameRect.x(), m_frameRect.y()); |
319 } | 319 } |
320 LayoutSize size() const { return m_frameRect.size(); } | 320 LayoutSize size() const { return m_frameRect.size(); } |
| 321 LayoutSize previousSize() const { return m_previousSize; } |
321 IntSize pixelSnappedSize() const { return m_frameRect.pixelSnappedSize(); } | 322 IntSize pixelSnappedSize() const { return m_frameRect.pixelSnappedSize(); } |
322 | 323 |
323 void setLocation(const LayoutPoint& location) { | 324 void setLocation(const LayoutPoint& location) { |
324 if (location == m_frameRect.location()) | 325 if (location == m_frameRect.location()) |
325 return; | 326 return; |
326 m_frameRect.setLocation(location); | 327 m_frameRect.setLocation(location); |
327 locationChanged(); | 328 locationChanged(); |
328 } | 329 } |
329 | 330 |
330 // The ancestor box that this object's location and physicalLocation are | 331 // The ancestor box that this object's location and physicalLocation are |
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1301 | 1302 |
1302 // Returns true if the box intersects the viewport visible to the user. | 1303 // Returns true if the box intersects the viewport visible to the user. |
1303 bool intersectsVisibleViewport() const; | 1304 bool intersectsVisibleViewport() const; |
1304 | 1305 |
1305 bool hasNonCompositedScrollbars() const final; | 1306 bool hasNonCompositedScrollbars() const final; |
1306 | 1307 |
1307 void ensureIsReadyForPaintInvalidation() override; | 1308 void ensureIsReadyForPaintInvalidation() override; |
1308 | 1309 |
1309 virtual bool hasControlClip() const { return false; } | 1310 virtual bool hasControlClip() const { return false; } |
1310 | 1311 |
| 1312 class MutableForPainting : public LayoutObject::MutableForPainting { |
| 1313 public: |
| 1314 void setPreviousSize(const LayoutSize& size) { |
| 1315 static_cast<LayoutBox&>(m_layoutObject).m_previousSize = size; |
| 1316 } |
| 1317 |
| 1318 protected: |
| 1319 friend class LayoutBox; |
| 1320 MutableForPainting(const LayoutBox& box) |
| 1321 : LayoutObject::MutableForPainting(box) {} |
| 1322 }; |
| 1323 MutableForPainting getMutableForPainting() const { |
| 1324 return MutableForPainting(*this); |
| 1325 } |
| 1326 |
1311 protected: | 1327 protected: |
1312 virtual LayoutRect controlClipRect(const LayoutPoint&) const { | 1328 virtual LayoutRect controlClipRect(const LayoutPoint&) const { |
1313 return LayoutRect(); | 1329 return LayoutRect(); |
1314 } | 1330 } |
1315 | 1331 |
1316 void willBeDestroyed() override; | 1332 void willBeDestroyed() override; |
1317 | 1333 |
1318 void insertedIntoTree() override; | 1334 void insertedIntoTree() override; |
1319 void willBeRemovedFromTree() override; | 1335 void willBeRemovedFromTree() override; |
1320 | 1336 |
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1500 | 1516 |
1501 void locationChanged(); | 1517 void locationChanged(); |
1502 void sizeChanged(); | 1518 void sizeChanged(); |
1503 | 1519 |
1504 virtual bool isInSelfHitTestingPhase(HitTestAction hitTestAction) const { | 1520 virtual bool isInSelfHitTestingPhase(HitTestAction hitTestAction) const { |
1505 return hitTestAction == HitTestForeground; | 1521 return hitTestAction == HitTestForeground; |
1506 } | 1522 } |
1507 | 1523 |
1508 void updateBackgroundAttachmentFixedStatusAfterStyleChange(); | 1524 void updateBackgroundAttachmentFixedStatusAfterStyleChange(); |
1509 | 1525 |
| 1526 void inflateVisualRectForFilter(LayoutRect&) const; |
| 1527 void inflateVisualRectForFilterUnderContainer( |
| 1528 LayoutRect&, |
| 1529 const LayoutObject& container, |
| 1530 const LayoutBoxModelObject* ancestorToStopAt) const; |
| 1531 |
| 1532 LayoutRectOutsets m_marginBoxOutsets; |
| 1533 |
| 1534 void addSnapArea(const LayoutBox&); |
| 1535 void removeSnapArea(const LayoutBox&); |
| 1536 |
| 1537 LayoutRect debugRect() const override; |
| 1538 |
1510 // The CSS border box rect for this box. | 1539 // The CSS border box rect for this box. |
1511 // | 1540 // |
1512 // The rectangle is in this box's physical coordinates but with a | 1541 // The rectangle is in this box's physical coordinates but with a |
1513 // flipped block-flow direction (see the COORDINATE SYSTEMS section | 1542 // flipped block-flow direction (see the COORDINATE SYSTEMS section |
1514 // in LayoutBoxModelObject). The location is the distance from this | 1543 // in LayoutBoxModelObject). The location is the distance from this |
1515 // object's border edge to the container's border edge (which is not | 1544 // object's border edge to the container's border edge (which is not |
1516 // always the parent). Thus it includes any logical top/left along | 1545 // always the parent). Thus it includes any logical top/left along |
1517 // with this box's margins. | 1546 // with this box's margins. |
1518 LayoutRect m_frameRect; | 1547 LayoutRect m_frameRect; |
1519 | 1548 |
| 1549 // Previous size of m_frameRect, updated after paint invalidation. |
| 1550 LayoutSize m_previousSize; |
| 1551 |
1520 // Our intrinsic height, used for min-height: min-content etc. Maintained by | 1552 // Our intrinsic height, used for min-height: min-content etc. Maintained by |
1521 // updateLogicalHeight. This is logicalHeight() before it is clamped to | 1553 // updateLogicalHeight. This is logicalHeight() before it is clamped to |
1522 // min/max. | 1554 // min/max. |
1523 mutable LayoutUnit m_intrinsicContentLogicalHeight; | 1555 mutable LayoutUnit m_intrinsicContentLogicalHeight; |
1524 | 1556 |
1525 void inflateVisualRectForFilter(LayoutRect&) const; | |
1526 void inflateVisualRectForFilterUnderContainer( | |
1527 LayoutRect&, | |
1528 const LayoutObject& container, | |
1529 const LayoutBoxModelObject* ancestorToStopAt) const; | |
1530 | |
1531 LayoutRectOutsets m_marginBoxOutsets; | |
1532 | |
1533 void addSnapArea(const LayoutBox&); | |
1534 void removeSnapArea(const LayoutBox&); | |
1535 | |
1536 LayoutRect debugRect() const override; | |
1537 | |
1538 protected: | 1557 protected: |
1539 // The logical width of the element if it were to break its lines at every | 1558 // The logical width of the element if it were to break its lines at every |
1540 // possible opportunity. | 1559 // possible opportunity. |
1541 // | 1560 // |
1542 // See LayoutObject::minPreferredLogicalWidth() for more details. | 1561 // See LayoutObject::minPreferredLogicalWidth() for more details. |
1543 LayoutUnit m_minPreferredLogicalWidth; | 1562 LayoutUnit m_minPreferredLogicalWidth; |
1544 | 1563 |
1545 // The logical width of the element if it never breaks any lines at all. | 1564 // The logical width of the element if it never breaks any lines at all. |
1546 // | 1565 // |
1547 // See LayoutObject::maxPreferredLogicalWidth() for more details. | 1566 // See LayoutObject::maxPreferredLogicalWidth() for more details. |
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1634 breakValue == EBreakBetween::kLeft || | 1653 breakValue == EBreakBetween::kLeft || |
1635 breakValue == EBreakBetween::kPage || | 1654 breakValue == EBreakBetween::kPage || |
1636 breakValue == EBreakBetween::kRecto || | 1655 breakValue == EBreakBetween::kRecto || |
1637 breakValue == EBreakBetween::kRight || | 1656 breakValue == EBreakBetween::kRight || |
1638 breakValue == EBreakBetween::kVerso; | 1657 breakValue == EBreakBetween::kVerso; |
1639 } | 1658 } |
1640 | 1659 |
1641 } // namespace blink | 1660 } // namespace blink |
1642 | 1661 |
1643 #endif // LayoutBox_h | 1662 #endif // LayoutBox_h |
OLD | NEW |