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, 2012 Google Inc. All rights reserved. | 5 * Copyright (C) 2010, 2012 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 10 matching lines...) Expand all Loading... |
21 */ | 21 */ |
22 | 22 |
23 #ifndef RenderLayerModelObject_h | 23 #ifndef RenderLayerModelObject_h |
24 #define RenderLayerModelObject_h | 24 #define RenderLayerModelObject_h |
25 | 25 |
26 #include "core/rendering/RenderObject.h" | 26 #include "core/rendering/RenderObject.h" |
27 | 27 |
28 namespace WebCore { | 28 namespace WebCore { |
29 | 29 |
30 class RenderLayer; | 30 class RenderLayer; |
| 31 class RenderLayerBacking; |
31 class ScrollableArea; | 32 class ScrollableArea; |
32 | 33 |
33 class RenderLayerModelObject : public RenderObject { | 34 class RenderLayerModelObject : public RenderObject { |
34 public: | 35 public: |
35 explicit RenderLayerModelObject(ContainerNode*); | 36 explicit RenderLayerModelObject(ContainerNode*); |
36 virtual ~RenderLayerModelObject(); | 37 virtual ~RenderLayerModelObject(); |
37 | 38 |
38 // Called by RenderObject::willBeDestroyed() and is the only way layers shou
ld ever be destroyed | 39 // Called by RenderObject::willBeDestroyed() and is the only way layers shou
ld ever be destroyed |
39 void destroyLayer(); | 40 void destroyLayer(); |
40 | 41 |
41 bool hasSelfPaintingLayer() const; | 42 bool hasSelfPaintingLayer() const; |
42 RenderLayer* layer() const { return m_layer; } | 43 RenderLayer* layer() const { return m_layer; } |
43 ScrollableArea* scrollableArea() const; | 44 ScrollableArea* scrollableArea() const; |
44 | 45 |
45 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle) O
VERRIDE; | 46 virtual void styleWillChange(StyleDifference, const RenderStyle* newStyle) O
VERRIDE; |
46 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; | 47 virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle) OV
ERRIDE; |
47 virtual void updateFromStyle() { } | 48 virtual void updateFromStyle() { } |
48 | 49 |
49 virtual bool requiresLayer() const = 0; | 50 virtual bool requiresLayer() const = 0; |
50 | 51 |
51 // Returns true if the background is painted opaque in the given rect. | 52 // Returns true if the background is painted opaque in the given rect. |
52 // The query rect is given in local coordinate system. | 53 // The query rect is given in local coordinate system. |
53 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const { re
turn false; } | 54 virtual bool backgroundIsKnownToBeOpaqueInRect(const LayoutRect&) const { re
turn false; } |
54 | 55 |
55 // This is null for anonymous renderers. | 56 // This is null for anonymous renderers. |
56 ContainerNode* node() const { return toContainerNode(RenderObject::node());
} | 57 ContainerNode* node() const { return toContainerNode(RenderObject::node());
} |
57 | 58 |
| 59 RenderLayerBacking* backing() const; |
| 60 |
58 protected: | 61 protected: |
59 void ensureLayer(); | 62 void ensureLayer(); |
60 | 63 |
61 virtual void willBeDestroyed() OVERRIDE; | 64 virtual void willBeDestroyed() OVERRIDE; |
62 | 65 |
63 virtual void addLayerHitTestRects(LayerHitTestRects&, const RenderLayer*, co
nst LayoutPoint&, const LayoutRect&) const OVERRIDE; | 66 virtual void addLayerHitTestRects(LayerHitTestRects&, const RenderLayer*, co
nst LayoutPoint&, const LayoutRect&) const OVERRIDE; |
64 | 67 |
65 private: | 68 private: |
66 virtual bool isLayerModelObject() const OVERRIDE FINAL { return true; } | 69 virtual bool isLayerModelObject() const OVERRIDE FINAL { return true; } |
67 | 70 |
(...skipping 17 matching lines...) Expand all Loading... |
85 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isLayerModelObject()); | 88 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isLayerModelObject()); |
86 return static_cast<const RenderLayerModelObject*>(object); | 89 return static_cast<const RenderLayerModelObject*>(object); |
87 } | 90 } |
88 | 91 |
89 // This will catch anyone doing an unnecessary cast. | 92 // This will catch anyone doing an unnecessary cast. |
90 void toRenderLayerModelObject(const RenderLayerModelObject*); | 93 void toRenderLayerModelObject(const RenderLayerModelObject*); |
91 | 94 |
92 } // namespace WebCore | 95 } // namespace WebCore |
93 | 96 |
94 #endif // RenderLayerModelObject_h | 97 #endif // RenderLayerModelObject_h |
OLD | NEW |