| 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. All r
ights reserved. | 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r
ights reserved. |
| 7 * Copyright (C) 2009 Google Inc. All rights reserved. | 7 * Copyright (C) 2009 Google Inc. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 122 bool operator!=(const AnnotatedRegionValue& o) const | 122 bool operator!=(const AnnotatedRegionValue& o) const |
| 123 { | 123 { |
| 124 return !(*this == o); | 124 return !(*this == o); |
| 125 } | 125 } |
| 126 | 126 |
| 127 LayoutRect bounds; | 127 LayoutRect bounds; |
| 128 bool draggable; | 128 bool draggable; |
| 129 }; | 129 }; |
| 130 | 130 |
| 131 typedef WTF::HashSet<const RenderObject*> RenderObjectAncestorLineboxDirtySet; | 131 typedef WTF::HashSet<const RenderObject*> RenderObjectAncestorLineboxDirtySet; |
| 132 typedef WTF::HashMap<const RenderLayer*, Vector<IntRect> > LayerHitTestRects; |
| 132 | 133 |
| 133 #ifndef NDEBUG | 134 #ifndef NDEBUG |
| 134 const int showTreeCharacterOffset = 39; | 135 const int showTreeCharacterOffset = 39; |
| 135 #endif | 136 #endif |
| 136 | 137 |
| 137 // Base class for all rendering tree objects. | 138 // Base class for all rendering tree objects. |
| 138 class RenderObject : public CachedImageClient, public MemoryReporterTag { | 139 class RenderObject : public CachedImageClient, public MemoryReporterTag { |
| 139 friend class RenderBlock; | 140 friend class RenderBlock; |
| 140 friend class RenderLayer; | 141 friend class RenderLayer; |
| 141 friend class RenderObjectChildList; | 142 friend class RenderObjectChildList; |
| (...skipping 791 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 933 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const; | 934 virtual const RenderObject* pushMappingToContainer(const RenderLayerModelObj
ect* ancestorToStopAt, RenderGeometryMap&) const; |
| 934 | 935 |
| 935 bool shouldUseTransformFromContainer(const RenderObject* container) const; | 936 bool shouldUseTransformFromContainer(const RenderObject* container) const; |
| 936 void getTransformFromContainer(const RenderObject* container, const LayoutSi
ze& offsetInContainer, TransformationMatrix&) const; | 937 void getTransformFromContainer(const RenderObject* container, const LayoutSi
ze& offsetInContainer, TransformationMatrix&) const; |
| 937 | 938 |
| 938 // return true if this object requires a new stacking context | 939 // return true if this object requires a new stacking context |
| 939 bool createsGroup() const { return isTransparent() || hasMask() || hasFilter
() || hasBlendMode(); } | 940 bool createsGroup() const { return isTransparent() || hasMask() || hasFilter
() || hasBlendMode(); } |
| 940 | 941 |
| 941 virtual void addFocusRingRects(Vector<IntRect>&, const LayoutPoint& /* addit
ionalOffset */, const RenderLayerModelObject* /* paintContainer */ = 0) { }; | 942 virtual void addFocusRingRects(Vector<IntRect>&, const LayoutPoint& /* addit
ionalOffset */, const RenderLayerModelObject* /* paintContainer */ = 0) { }; |
| 942 | 943 |
| 944 // Compute a list of hit-test rectangles per composited layer rooted at this
renderer. |
| 945 virtual void computeLayerHitTestRects(LayerHitTestRects&) const; |
| 946 |
| 943 LayoutRect absoluteOutlineBounds() const | 947 LayoutRect absoluteOutlineBounds() const |
| 944 { | 948 { |
| 945 return outlineBoundsForRepaint(0); | 949 return outlineBoundsForRepaint(0); |
| 946 } | 950 } |
| 947 | 951 |
| 948 // Return the renderer whose background style is used to paint the root back
ground. Should only be called on the renderer for which isRoot() is true. | 952 // Return the renderer whose background style is used to paint the root back
ground. Should only be called on the renderer for which isRoot() is true. |
| 949 RenderObject* rendererForRootBackground(); | 953 RenderObject* rendererForRootBackground(); |
| 950 | 954 |
| 951 RespectImageOrientationEnum shouldRespectImageOrientation() const; | 955 RespectImageOrientationEnum shouldRespectImageOrientation() const; |
| 952 | 956 |
| 953 protected: | 957 protected: |
| 954 inline bool layerCreationAllowedForSubtree() const; | 958 inline bool layerCreationAllowedForSubtree() const; |
| 955 | 959 |
| 960 void enclosingCompositedLayerAndOffset(const RenderLayer**, LayoutPoint&) co
nst; |
| 961 |
| 956 // Overrides should call the superclass at the end | 962 // Overrides should call the superclass at the end |
| 957 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle); | 963 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle); |
| 958 // Overrides should call the superclass at the start | 964 // Overrides should call the superclass at the start |
| 959 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); | 965 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); |
| 960 void propagateStyleToAnonymousChildren(bool blockChildrenOnly = false); | 966 void propagateStyleToAnonymousChildren(bool blockChildrenOnly = false); |
| 961 | 967 |
| 962 void drawLineForBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2, Bo
xSide, | 968 void drawLineForBoxSide(GraphicsContext*, int x1, int y1, int x2, int y2, Bo
xSide, |
| 963 Color, EBorderStyle, int adjbw1, int adjbw2, bool an
tialias = false); | 969 Color, EBorderStyle, int adjbw1, int adjbw2, bool an
tialias = false); |
| 964 | 970 |
| 965 void paintFocusRing(PaintInfo&, const LayoutPoint&, RenderStyle*); | 971 void paintFocusRing(PaintInfo&, const LayoutPoint&, RenderStyle*); |
| 966 void paintOutline(PaintInfo&, const LayoutRect&); | 972 void paintOutline(PaintInfo&, const LayoutRect&); |
| 967 void addPDFURLRect(GraphicsContext*, const LayoutRect&); | 973 void addPDFURLRect(GraphicsContext*, const LayoutRect&); |
| 968 | 974 |
| 969 virtual LayoutRect viewRect() const; | 975 virtual LayoutRect viewRect() const; |
| 970 | 976 |
| 971 void adjustRectForOutlineAndShadow(LayoutRect&) const; | 977 void adjustRectForOutlineAndShadow(LayoutRect&) const; |
| 972 | 978 |
| 973 void clearLayoutRootIfNeeded() const; | 979 void clearLayoutRootIfNeeded() const; |
| 974 virtual void willBeDestroyed(); | 980 virtual void willBeDestroyed(); |
| 975 void arenaDelete(RenderArena*, void* objectBase); | 981 void arenaDelete(RenderArena*, void* objectBase); |
| 976 | 982 |
| 977 virtual bool canBeReplacedWithInlineRunIn() const; | 983 virtual bool canBeReplacedWithInlineRunIn() const; |
| 978 | 984 |
| 979 virtual void insertedIntoTree(); | 985 virtual void insertedIntoTree(); |
| 980 virtual void willBeRemovedFromTree(); | 986 virtual void willBeRemovedFromTree(); |
| 981 | 987 |
| 982 void setDocumentForAnonymous(Document* document) { ASSERT(isAnonymous()); m_
node = document; } | 988 void setDocumentForAnonymous(Document* document) { ASSERT(isAnonymous()); m_
node = document; } |
| 983 | 989 |
| 990 // Add hit-test rects for the render tree rooted at this node to the provide
d collection on a |
| 991 // per-composited-layer basis. CurrentCompositedLayer must be the enclosing
composited layer, |
| 992 // and layerOffset is the current offset within this layer. Subclass impleme
ntations will add |
| 993 // any offset for this renderer within it's container, so callers should pro
vide only the |
| 994 // offset of the container within it's layer. |
| 995 virtual void addLayerHitTestRects(LayerHitTestRects&, const RenderLayer* cur
rentCompositedLayer, const LayoutPoint& layerOffset) const; |
| 996 |
| 997 // Add hit-test rects for this renderer only to the provided list. layerOffs
et is the offset of this renderer within |
| 998 // the current composited layer that should be used for each result. |
| 999 virtual void computeOwnHitTestRects(Vector<IntRect>&, const LayoutPoint& lay
erOffset) const { }; |
| 1000 |
| 984 private: | 1001 private: |
| 985 RenderFlowThread* locateFlowThreadContainingBlock() const; | 1002 RenderFlowThread* locateFlowThreadContainingBlock() const; |
| 986 void removeFromRenderFlowThread(); | 1003 void removeFromRenderFlowThread(); |
| 987 void removeFromRenderFlowThreadRecursive(RenderFlowThread*); | 1004 void removeFromRenderFlowThreadRecursive(RenderFlowThread*); |
| 988 | 1005 |
| 989 bool shouldRepaintForStyleDifference(StyleDifference) const; | 1006 bool shouldRepaintForStyleDifference(StyleDifference) const; |
| 990 bool hasImmediateNonWhitespaceTextChild() const; | 1007 bool hasImmediateNonWhitespaceTextChild() const; |
| 991 | 1008 |
| 992 RenderStyle* cachedFirstLineStyle() const; | 1009 RenderStyle* cachedFirstLineStyle() const; |
| 993 StyleDifference adjustStyleDifference(StyleDifference, unsigned contextSensi
tiveProperties) const; | 1010 StyleDifference adjustStyleDifference(StyleDifference, unsigned contextSensi
tiveProperties) const; |
| (...skipping 325 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1319 // Outside the WebCore namespace for ease of invocation from gdb. | 1336 // Outside the WebCore namespace for ease of invocation from gdb. |
| 1320 void showTree(const WebCore::RenderObject*); | 1337 void showTree(const WebCore::RenderObject*); |
| 1321 void showLineTree(const WebCore::RenderObject*); | 1338 void showLineTree(const WebCore::RenderObject*); |
| 1322 void showRenderTree(const WebCore::RenderObject* object1); | 1339 void showRenderTree(const WebCore::RenderObject* object1); |
| 1323 // We don't make object2 an optional parameter so that showRenderTree | 1340 // We don't make object2 an optional parameter so that showRenderTree |
| 1324 // can be called from gdb easily. | 1341 // can be called from gdb easily. |
| 1325 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO
bject* object2); | 1342 void showRenderTree(const WebCore::RenderObject* object1, const WebCore::RenderO
bject* object2); |
| 1326 #endif | 1343 #endif |
| 1327 | 1344 |
| 1328 #endif // RenderObject_h | 1345 #endif // RenderObject_h |
| OLD | NEW |