[chromium] Change WebLayer from a concrete type to a pure virtual interface
[WebKit-https.git] / Source / WebKit / chromium / src / WebLayerImpl.h
1 /*
2  * Copyright (C) 2011 Google Inc. All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions
6  * are met:
7  *
8  * 1.  Redistributions of source code must retain the above copyright
9  *     notice, this list of conditions and the following disclaimer.
10  * 2.  Redistributions in binary form must reproduce the above copyright
11  *     notice, this list of conditions and the following disclaimer in the
12  *     documentation and/or other materials provided with the distribution.
13  *
14  * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY
15  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
16  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
17  * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY
18  * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
19  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
20  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
21  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
23  * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */
25
26 #ifndef WebLayerImpl_h
27 #define WebLayerImpl_h
28
29 #include <public/WebLayer.h>
30 #include <wtf/RefPtr.h>
31
32 namespace WebCore {
33 class LayerChromium;
34 }
35
36 namespace WebKit {
37
38 class WebLayerImpl : public WebLayer {
39 public:
40     explicit WebLayerImpl(PassRefPtr<WebCore::LayerChromium>);
41     virtual ~WebLayerImpl();
42
43     // WebLayer implementation.
44     virtual int id() const OVERRIDE;
45     virtual void invalidateRect(const WebFloatRect&) OVERRIDE;
46     virtual void invalidate() OVERRIDE;
47     virtual void addChild(WebLayer*) OVERRIDE;
48     virtual void insertChild(WebLayer*, size_t index) OVERRIDE;
49     virtual void replaceChild(WebLayer* reference, WebLayer* newLayer) OVERRIDE;
50     virtual void setChildren(const WebVector<WebLayer*>&) OVERRIDE;
51     virtual void removeFromParent() OVERRIDE;
52     virtual void removeAllChildren() OVERRIDE;
53     virtual void setAnchorPoint(const WebFloatPoint&) OVERRIDE;
54     virtual WebFloatPoint anchorPoint() const OVERRIDE;
55     virtual void setAnchorPointZ(float) OVERRIDE;
56     virtual float anchorPointZ() const OVERRIDE;
57     virtual void setBounds(const WebSize&) OVERRIDE;
58     virtual WebSize bounds() const OVERRIDE;
59     virtual void setMasksToBounds(bool) OVERRIDE;
60     virtual bool masksToBounds() const OVERRIDE;
61     virtual void setMaskLayer(WebLayer*) OVERRIDE;
62     virtual void setReplicaLayer(WebLayer*) OVERRIDE;
63     virtual void setOpacity(float) OVERRIDE;
64     virtual float opacity() const OVERRIDE;
65     virtual void setOpaque(bool) OVERRIDE;
66     virtual bool opaque() const OVERRIDE;
67     virtual void setPosition(const WebFloatPoint&) OVERRIDE;
68     virtual WebFloatPoint position() const OVERRIDE;
69     virtual void setSublayerTransform(const SkMatrix44&) OVERRIDE;
70     virtual void setSublayerTransform(const WebTransformationMatrix&) OVERRIDE;
71     virtual SkMatrix44 sublayerTransform() const OVERRIDE;
72     virtual void setTransform(const SkMatrix44&) OVERRIDE;
73     virtual void setTransform(const WebTransformationMatrix&) OVERRIDE;
74     virtual SkMatrix44 transform() const OVERRIDE;
75     virtual void setDrawsContent(bool) OVERRIDE;
76     virtual bool drawsContent() const OVERRIDE;
77     virtual void setPreserves3D(bool) OVERRIDE;
78     virtual void setUseParentBackfaceVisibility(bool) OVERRIDE;
79     virtual void setBackgroundColor(WebColor) OVERRIDE;
80     virtual void setFilters(const WebFilterOperations&) OVERRIDE;
81     virtual void setBackgroundFilters(const WebFilterOperations&) OVERRIDE;
82     virtual void setDebugBorderColor(const WebColor&) OVERRIDE;
83     virtual void setDebugBorderWidth(float) OVERRIDE;
84     virtual void setDebugName(WebString) OVERRIDE;
85     virtual void setAnimationDelegate(WebAnimationDelegate*) OVERRIDE;
86     virtual bool addAnimation(WebAnimation*) OVERRIDE;
87     virtual void removeAnimation(int animationId) OVERRIDE;
88     virtual void removeAnimation(int animationId, WebAnimation::TargetProperty) OVERRIDE;
89     virtual void pauseAnimation(int animationId, double timeOffset) OVERRIDE;
90     virtual void suspendAnimations(double monotonicTime) OVERRIDE;
91     virtual void resumeAnimations(double monotonicTime) OVERRIDE;
92     virtual bool hasActiveAnimation() OVERRIDE;
93     virtual void transferAnimationsTo(WebLayer*) OVERRIDE;
94     virtual void setForceRenderSurface(bool) OVERRIDE;
95     virtual void setScrollPosition(WebPoint) OVERRIDE;
96     virtual void setScrollable(bool) OVERRIDE;
97     virtual void setHaveWheelEventHandlers(bool) OVERRIDE;
98     virtual void setShouldScrollOnMainThread(bool) OVERRIDE;
99     virtual void setNonFastScrollableRegion(const WebVector<WebRect>&) OVERRIDE;
100     virtual void setIsContainerForFixedPositionLayers(bool) OVERRIDE;
101     virtual void setFixedToContainerLayer(bool) OVERRIDE;
102
103     WebCore::LayerChromium* layer() const;
104
105 protected:
106     RefPtr<WebCore::LayerChromium> m_layer;
107 };
108
109 } // namespace WebKit
110
111 #endif // WebLayerImpl_h