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, 2009 Apple Inc. All rights reserved. | 4 * Copyright (C) 2003, 2006, 2007, 2009 Apple Inc. All rights reserved. |
5 * Copyright (C) 2010 Google Inc. All rights reserved. | 5 * Copyright (C) 2010 Google Inc. All rights 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 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
56 BackgroundBleedClipLayer, | 56 BackgroundBleedClipLayer, |
57 }; | 57 }; |
58 | 58 |
59 enum ContentChangeType { | 59 enum ContentChangeType { |
60 ImageChanged, | 60 ImageChanged, |
61 CanvasChanged, | 61 CanvasChanged, |
62 CanvasContextChanged | 62 CanvasContextChanged |
63 }; | 63 }; |
64 | 64 |
65 class InlineFlowBox; | 65 class InlineFlowBox; |
| 66 class StickyPositionViewportConstraints; |
66 | 67 |
67 // This class is the base class for all CSS objects. | 68 // This class is the base class for all CSS objects. |
68 // | 69 // |
69 // All CSS objects follow the box model object. See THE BOX MODEL section in | 70 // All CSS objects follow the box model object. See THE BOX MODEL section in |
70 // LayoutBox for more information. | 71 // LayoutBox for more information. |
71 // | 72 // |
72 // This class actually doesn't have the box model but it exposes some common | 73 // This class actually doesn't have the box model but it exposes some common |
73 // functions or concepts that sub-classes can extend upon. For example, there | 74 // functions or concepts that sub-classes can extend upon. For example, there |
74 // are accessors for margins, borders, paddings and borderBoundingBox(). | 75 // are accessors for margins, borders, paddings and borderBoundingBox(). |
75 // | 76 // |
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
134 public: | 135 public: |
135 LayoutBoxModelObject(ContainerNode*); | 136 LayoutBoxModelObject(ContainerNode*); |
136 ~LayoutBoxModelObject() override; | 137 ~LayoutBoxModelObject() override; |
137 | 138 |
138 // This is the only way layers should ever be destroyed. | 139 // This is the only way layers should ever be destroyed. |
139 void destroyLayer(); | 140 void destroyLayer(); |
140 | 141 |
141 LayoutSize relativePositionOffset() const; | 142 LayoutSize relativePositionOffset() const; |
142 LayoutSize relativePositionLogicalOffset() const { return style()->isHorizon
talWritingMode() ? relativePositionOffset() : relativePositionOffset().transpose
dSize(); } | 143 LayoutSize relativePositionLogicalOffset() const { return style()->isHorizon
talWritingMode() ? relativePositionOffset() : relativePositionOffset().transpose
dSize(); } |
143 | 144 |
| 145 // Populates StickyPositionConstraints, setting the sticky box rect, contain
ing block rect and updating |
| 146 // the constraint offsets according to the available space. |
| 147 void computeStickyPositionConstraints(StickyPositionViewportConstraints&, co
nst FloatRect& constrainingRect) const; |
| 148 FloatRect computeStickyConstrainingRect() const; |
| 149 LayoutSize stickyPositionOffset() const; |
| 150 |
144 LayoutSize offsetForInFlowPosition() const; | 151 LayoutSize offsetForInFlowPosition() const; |
145 | 152 |
146 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin
es (LayoutFlow) | 153 // IE extensions. Used to calculate offsetWidth/Height. Overridden by inlin
es (LayoutFlow) |
147 // to return the remaining width on a given line (and the height of a single
line). | 154 // to return the remaining width on a given line (and the height of a single
line). |
148 virtual LayoutUnit offsetLeft() const; | 155 virtual LayoutUnit offsetLeft() const; |
149 virtual LayoutUnit offsetTop() const; | 156 virtual LayoutUnit offsetTop() const; |
150 virtual LayoutUnit offsetWidth() const = 0; | 157 virtual LayoutUnit offsetWidth() const = 0; |
151 virtual LayoutUnit offsetHeight() const = 0; | 158 virtual LayoutUnit offsetHeight() const = 0; |
152 | 159 |
153 int pixelSnappedOffsetLeft() const { return roundToInt(offsetLeft()); } | 160 int pixelSnappedOffsetLeft() const { return roundToInt(offsetLeft()); } |
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 // The PaintLayer associated with this object. | 373 // The PaintLayer associated with this object. |
367 // |m_layer| can be nullptr depending on the return value of layerTypeRequir
ed(). | 374 // |m_layer| can be nullptr depending on the return value of layerTypeRequir
ed(). |
368 OwnPtr<PaintLayer> m_layer; | 375 OwnPtr<PaintLayer> m_layer; |
369 }; | 376 }; |
370 | 377 |
371 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBoxModelObject, isBoxModelObject()); | 378 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBoxModelObject, isBoxModelObject()); |
372 | 379 |
373 } // namespace blink | 380 } // namespace blink |
374 | 381 |
375 #endif // LayoutBoxModelObject_h | 382 #endif // LayoutBoxModelObject_h |
OLD | NEW |