OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) | 3 * (C) 2000 Antti Koivisto (koivisto@kde.org) |
4 * (C) 2000 Dirk Mueller (mueller@kde.org) | 4 * (C) 2000 Dirk Mueller (mueller@kde.org) |
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) | 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) |
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. | 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. |
7 * All rights reserved. | 7 * All rights reserved. |
8 * Copyright (C) 2009 Google Inc. All rights reserved. | 8 * Copyright (C) 2009 Google Inc. All rights reserved. |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 996 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1007 | 1007 |
1008 // Subclasses must reimplement this method to compute the size and position | 1008 // Subclasses must reimplement this method to compute the size and position |
1009 // of this object and all its descendants. | 1009 // of this object and all its descendants. |
1010 // | 1010 // |
1011 // By default, layout only lays out the children that are marked for layout. | 1011 // By default, layout only lays out the children that are marked for layout. |
1012 // In some cases, layout has to force laying out more children. An example is | 1012 // In some cases, layout has to force laying out more children. An example is |
1013 // when the width of the LayoutObject changes as this impacts children with | 1013 // when the width of the LayoutObject changes as this impacts children with |
1014 // 'width' set to auto. | 1014 // 'width' set to auto. |
1015 virtual void layout() = 0; | 1015 virtual void layout() = 0; |
1016 virtual bool updateImageLoadingPriorities() { return false; } | 1016 virtual bool updateImageLoadingPriorities() { return false; } |
1017 void setHasPendingResourceUpdate(bool hasPendingResourceUpdate) { | |
1018 m_bitfields.setHasPendingResourceUpdate(hasPendingResourceUpdate); | |
1019 } | |
1020 bool hasPendingResourceUpdate() const { | |
1021 return m_bitfields.hasPendingResourceUpdate(); | |
1022 } | |
1023 | 1017 |
1024 void handleSubtreeModifications(); | 1018 void handleSubtreeModifications(); |
1025 virtual void subtreeDidChange() {} | 1019 virtual void subtreeDidChange() {} |
1026 | 1020 |
1027 // Flags used to mark if an object consumes subtree change notifications. | 1021 // Flags used to mark if an object consumes subtree change notifications. |
1028 bool consumesSubtreeChangeNotification() const { | 1022 bool consumesSubtreeChangeNotification() const { |
1029 return m_bitfields.consumesSubtreeChangeNotification(); | 1023 return m_bitfields.consumesSubtreeChangeNotification(); |
1030 } | 1024 } |
1031 void setConsumesSubtreeChangeNotification() { | 1025 void setConsumesSubtreeChangeNotification() { |
1032 m_bitfields.setConsumesSubtreeChangeNotification(true); | 1026 m_bitfields.setConsumesSubtreeChangeNotification(true); |
(...skipping 1067 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2100 m_isInline(true), | 2094 m_isInline(true), |
2101 m_isAtomicInlineLevel(false), | 2095 m_isAtomicInlineLevel(false), |
2102 m_horizontalWritingMode(true), | 2096 m_horizontalWritingMode(true), |
2103 m_hasLayer(false), | 2097 m_hasLayer(false), |
2104 m_hasOverflowClip(false), | 2098 m_hasOverflowClip(false), |
2105 m_hasTransformRelatedProperty(false), | 2099 m_hasTransformRelatedProperty(false), |
2106 m_hasReflection(false), | 2100 m_hasReflection(false), |
2107 m_hasCounterNodeMap(false), | 2101 m_hasCounterNodeMap(false), |
2108 m_everHadLayout(false), | 2102 m_everHadLayout(false), |
2109 m_ancestorLineBoxDirty(false), | 2103 m_ancestorLineBoxDirty(false), |
2110 m_hasPendingResourceUpdate(false), | |
2111 m_isInsideFlowThread(false), | 2104 m_isInsideFlowThread(false), |
2112 m_subtreeChangeListenerRegistered(false), | 2105 m_subtreeChangeListenerRegistered(false), |
2113 m_notifiedOfSubtreeChange(false), | 2106 m_notifiedOfSubtreeChange(false), |
2114 m_consumesSubtreeChangeNotification(false), | 2107 m_consumesSubtreeChangeNotification(false), |
2115 m_childrenInline(false), | 2108 m_childrenInline(false), |
2116 m_containsInlineWithOutlineAndContinuation(false), | 2109 m_containsInlineWithOutlineAndContinuation(false), |
2117 m_alwaysCreateLineBoxesForLayoutInline(false), | 2110 m_alwaysCreateLineBoxesForLayoutInline(false), |
2118 m_previousBackgroundObscured(false), | 2111 m_previousBackgroundObscured(false), |
2119 m_isBackgroundAttachmentFixedObject(false), | 2112 m_isBackgroundAttachmentFixedObject(false), |
2120 m_isScrollAnchorObject(false), | 2113 m_isScrollAnchorObject(false), |
2121 m_scrollAnchorDisablingStyleChanged(false), | 2114 m_scrollAnchorDisablingStyleChanged(false), |
2122 m_hasBoxDecorationBackground(false), | 2115 m_hasBoxDecorationBackground(false), |
2123 m_positionedState(IsStaticallyPositioned), | 2116 m_positionedState(IsStaticallyPositioned), |
2124 m_selectionState(SelectionNone), | 2117 m_selectionState(SelectionNone), |
2125 m_backgroundObscurationState(BackgroundObscurationStatusInvalid), | 2118 m_backgroundObscurationState(BackgroundObscurationStatusInvalid), |
2126 m_fullPaintInvalidationReason(PaintInvalidationNone) {} | 2119 m_fullPaintInvalidationReason(PaintInvalidationNone) {} |
2127 | 2120 |
2128 // 32 bits have been used in the first word, and 18 in the second. | 2121 // 32 bits have been used in the first word, and 19 in the second. |
2129 | 2122 |
2130 // Self needs layout means that this layout object is marked for a full | 2123 // Self needs layout means that this layout object is marked for a full |
2131 // layout. This is the default layout but it is expensive as it recomputes | 2124 // layout. This is the default layout but it is expensive as it recomputes |
2132 // everything. For CSS boxes, this includes the width (laying out the line | 2125 // everything. For CSS boxes, this includes the width (laying out the line |
2133 // boxes again), the margins (due to block collapsing margins), the | 2126 // boxes again), the margins (due to block collapsing margins), the |
2134 // positions, the height and the potential overflow. | 2127 // positions, the height and the potential overflow. |
2135 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); | 2128 ADD_BOOLEAN_BITFIELD(selfNeedsLayout, SelfNeedsLayout); |
2136 | 2129 |
2137 // A positioned movement layout is a specialized type of layout used on | 2130 // A positioned movement layout is a specialized type of layout used on |
2138 // positioned objects that only visually moved. This layout is used when | 2131 // positioned objects that only visually moved. This layout is used when |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2239 ADD_BOOLEAN_BITFIELD(hasReflection, HasReflection); | 2232 ADD_BOOLEAN_BITFIELD(hasReflection, HasReflection); |
2240 | 2233 |
2241 // This boolean is used to know if this LayoutObject has one (or more) | 2234 // This boolean is used to know if this LayoutObject has one (or more) |
2242 // associated CounterNode(s). | 2235 // associated CounterNode(s). |
2243 // See class comment in LayoutCounter.h for more detail. | 2236 // See class comment in LayoutCounter.h for more detail. |
2244 ADD_BOOLEAN_BITFIELD(hasCounterNodeMap, HasCounterNodeMap); | 2237 ADD_BOOLEAN_BITFIELD(hasCounterNodeMap, HasCounterNodeMap); |
2245 | 2238 |
2246 ADD_BOOLEAN_BITFIELD(everHadLayout, EverHadLayout); | 2239 ADD_BOOLEAN_BITFIELD(everHadLayout, EverHadLayout); |
2247 ADD_BOOLEAN_BITFIELD(ancestorLineBoxDirty, AncestorLineBoxDirty); | 2240 ADD_BOOLEAN_BITFIELD(ancestorLineBoxDirty, AncestorLineBoxDirty); |
2248 | 2241 |
2249 ADD_BOOLEAN_BITFIELD(hasPendingResourceUpdate, HasPendingResourceUpdate); | |
2250 | |
2251 ADD_BOOLEAN_BITFIELD(isInsideFlowThread, IsInsideFlowThread); | 2242 ADD_BOOLEAN_BITFIELD(isInsideFlowThread, IsInsideFlowThread); |
2252 | 2243 |
2253 ADD_BOOLEAN_BITFIELD(subtreeChangeListenerRegistered, | 2244 ADD_BOOLEAN_BITFIELD(subtreeChangeListenerRegistered, |
2254 SubtreeChangeListenerRegistered); | 2245 SubtreeChangeListenerRegistered); |
2255 ADD_BOOLEAN_BITFIELD(notifiedOfSubtreeChange, NotifiedOfSubtreeChange); | 2246 ADD_BOOLEAN_BITFIELD(notifiedOfSubtreeChange, NotifiedOfSubtreeChange); |
2256 ADD_BOOLEAN_BITFIELD(consumesSubtreeChangeNotification, | 2247 ADD_BOOLEAN_BITFIELD(consumesSubtreeChangeNotification, |
2257 ConsumesSubtreeChangeNotification); | 2248 ConsumesSubtreeChangeNotification); |
2258 | 2249 |
2259 // from LayoutBlock | 2250 // from LayoutBlock |
2260 ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline); | 2251 ADD_BOOLEAN_BITFIELD(childrenInline, ChildrenInline); |
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2597 CORE_EXPORT void showLineTree(const blink::LayoutObject*); | 2588 CORE_EXPORT void showLineTree(const blink::LayoutObject*); |
2598 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1); | 2589 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1); |
2599 // We don't make object2 an optional parameter so that showLayoutTree | 2590 // We don't make object2 an optional parameter so that showLayoutTree |
2600 // can be called from gdb easily. | 2591 // can be called from gdb easily. |
2601 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1, | 2592 CORE_EXPORT void showLayoutTree(const blink::LayoutObject* object1, |
2602 const blink::LayoutObject* object2); | 2593 const blink::LayoutObject* object2); |
2603 | 2594 |
2604 #endif | 2595 #endif |
2605 | 2596 |
2606 #endif // LayoutObject_h | 2597 #endif // LayoutObject_h |
OLD | NEW |