Combine event and touch action regions into a single class
[WebKit-https.git] / Source / WebCore / platform / graphics / ca / win / PlatformCALayerWin.h
index ab6ead3..99bc0ce 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2010, 2013, 2015 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -13,7 +13,7 @@
  * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
  * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE COMPUTER, INC. OR
+ * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL APPLE INC. OR
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#ifndef PlatformCALayerWin_h
-#define PlatformCALayerWin_h
-
-#if USE(ACCELERATED_COMPOSITING)
+#pragma once
 
 #include "PlatformCALayer.h"
+#include <wtf/HashMap.h>
 
 namespace WebCore {
 
-class PlatformCALayerWin FINAL : public PlatformCALayer {
+class PlatformCALayerWin final : public PlatformCALayer {
 public:
-    static PassRefPtr<PlatformCALayer> create(LayerType, PlatformCALayerClient*);
-    static PassRefPtr<PlatformCALayer> create(PlatformLayer*, PlatformCALayerClient*);
+    static Ref<PlatformCALayer> create(LayerType, PlatformCALayerClient*);
+    static Ref<PlatformCALayer> create(PlatformLayer*, PlatformCALayerClient*);
     
     ~PlatformCALayerWin();
 
-    virtual bool usesTiledBackingLayer() const override { return false; }
+    void setNeedsDisplayInRect(const FloatRect& dirtyRect) override;
+    void setNeedsDisplay() override;
+
+    void copyContentsFromLayer(PlatformCALayer*) override;
+
+    PlatformCALayer* superlayer() const override;
+    void removeFromSuperlayer() override;
+    void setSublayers(const PlatformCALayerList&) override;
+    void removeAllSublayers() override;
+    void appendSublayer(PlatformCALayer&) override;
+    void insertSublayer(PlatformCALayer&, size_t index) override;
+    void replaceSublayer(PlatformCALayer& reference, PlatformCALayer&) override;
+    const PlatformCALayerList* customSublayers() const override { return m_customSublayers.get(); }
+    void adoptSublayers(PlatformCALayer& source) override;
+
+    void addAnimationForKey(const String& key, PlatformCAAnimation&) override;
+    void removeAnimationForKey(const String& key) override;
+    RefPtr<PlatformCAAnimation> animationForKey(const String& key) override;
+    void animationStarted(const String& key, MonotonicTime beginTime) override;
+    void animationEnded(const String& key) override;
 
-    virtual void setNeedsDisplay(const FloatRect* dirtyRect = 0) override;
+    void setMask(PlatformCALayer*) override;
 
-    virtual void setContentsChanged() override;
+    bool isOpaque() const override;
+    void setOpaque(bool) override;
 
-    virtual PlatformCALayer* superlayer() const override;
-    virtual void removeFromSuperlayer() override;
-    virtual void setSublayers(const PlatformCALayerList&) override;
-    virtual void removeAllSublayers() override;
-    virtual void appendSublayer(PlatformCALayer*) override;
-    virtual void insertSublayer(PlatformCALayer*, size_t index) override;
-    virtual void replaceSublayer(PlatformCALayer* reference, PlatformCALayer*) override;
-    virtual const PlatformCALayerList* customSublayers() const override { return nullptr; }
-    virtual void adoptSublayers(PlatformCALayer* source) override;
+    FloatRect bounds() const override;
+    void setBounds(const FloatRect&) override;
 
-    virtual void addAnimationForKey(const String& key, PlatformCAAnimation*) override;
-    virtual void removeAnimationForKey(const String& key) override;
-    virtual PassRefPtr<PlatformCAAnimation> animationForKey(const String& key) override;
-    virtual void animationStarted(CFTimeInterval beginTime) override;
+    FloatPoint3D position() const override;
+    void setPosition(const FloatPoint3D&) override;
 
-    virtual void setMask(PlatformCALayer*) override;
+    FloatPoint3D anchorPoint() const override;
+    void setAnchorPoint(const FloatPoint3D&) override;
 
-    virtual bool isOpaque() const override;
-    virtual void setOpaque(bool) override;
+    TransformationMatrix transform() const override;
+    void setTransform(const TransformationMatrix&) override;
 
-    virtual FloatRect bounds() const override;
-    virtual void setBounds(const FloatRect&) override;
+    TransformationMatrix sublayerTransform() const override;
+    void setSublayerTransform(const TransformationMatrix&) override;
 
-    virtual FloatPoint3D position() const override;
-    virtual void setPosition(const FloatPoint3D&) override;
+    bool isHidden() const override;
+    void setHidden(bool) override;
 
-    virtual FloatPoint3D anchorPoint() const override;
-    virtual void setAnchorPoint(const FloatPoint3D&) override;
+    bool contentsHidden() const override;
+    void setContentsHidden(bool) override;
 
-    virtual TransformationMatrix transform() const override;
-    virtual void setTransform(const TransformationMatrix&) override;
+    bool userInteractionEnabled() const override;
+    void setUserInteractionEnabled(bool) override;
 
-    virtual TransformationMatrix sublayerTransform() const override;
-    virtual void setSublayerTransform(const TransformationMatrix&) override;
+    void setBackingStoreAttached(bool) override;
+    bool backingStoreAttached() const override;
 
-    virtual void setHidden(bool) override;
+    bool geometryFlipped() const override;
+    void setGeometryFlipped(bool) override;
 
-    virtual void setGeometryFlipped(bool) override;
+    bool isDoubleSided() const override;
+    void setDoubleSided(bool) override;
 
-    virtual bool isDoubleSided() const override;
-    virtual void setDoubleSided(bool) override;
+    bool masksToBounds() const override;
+    void setMasksToBounds(bool) override;
 
-    virtual bool masksToBounds() const override;
-    virtual void setMasksToBounds(bool) override;
+    bool acceleratesDrawing() const override;
+    void setAcceleratesDrawing(bool) override;
 
-    virtual bool acceleratesDrawing() const override;
-    virtual void setAcceleratesDrawing(bool) override;
+    bool wantsDeepColorBackingStore() const override;
+    void setWantsDeepColorBackingStore(bool) override;
 
-    virtual CFTypeRef contents() const override;
-    virtual void setContents(CFTypeRef) override;
+    bool supportsSubpixelAntialiasedText() const override;
+    void setSupportsSubpixelAntialiasedText(bool) override;
 
-    virtual void setContentsRect(const FloatRect&) override;
+    bool hasContents() const override;
+    CFTypeRef contents() const override;
+    void setContents(CFTypeRef) override;
 
-    virtual void setMinificationFilter(FilterType) override;
-    virtual void setMagnificationFilter(FilterType) override;
+    void setContentsRect(const FloatRect&) override;
 
-    virtual Color backgroundColor() const override;
-    virtual void setBackgroundColor(const Color&) override;
+    void setMinificationFilter(FilterType) override;
+    void setMagnificationFilter(FilterType) override;
 
-    virtual void setBorderWidth(float) override;
+    Color backgroundColor() const override;
+    void setBackgroundColor(const Color&) override;
 
-    virtual void setBorderColor(const Color&) override;
+    void setBorderWidth(float) override;
 
-    virtual float opacity() const override;
-    virtual void setOpacity(float) override;
+    void setBorderColor(const Color&) override;
 
-#if ENABLE(CSS_FILTERS)
-    virtual void setFilters(const FilterOperations&) override;
+    float opacity() const override;
+    void setOpacity(float) override;
+
+    void setFilters(const FilterOperations&) override;
     static bool filtersCanBeComposited(const FilterOperations&) { return false; }
-    virtual void copyFiltersFrom(const PlatformCALayer*) override;
-#endif
+    void copyFiltersFrom(const PlatformCALayer&) override;
+
+    void setName(const String&) override;
+
+    void setSpeed(float) override;
 
-    virtual void setName(const String&) override;
+    void setTimeOffset(CFTimeInterval) override;
 
-    virtual void setSpeed(float) override;
+    float contentsScale() const override;
+    void setContentsScale(float) override;
 
-    virtual void setTimeOffset(CFTimeInterval) override;
+    float cornerRadius() const override;
+    void setCornerRadius(float) override;
 
-    virtual float contentsScale() const override;
-    virtual void setContentsScale(float) override;
+    FloatRoundedRect shapeRoundedRect() const override;
+    void setShapeRoundedRect(const FloatRoundedRect&) override;
 
-    virtual void setEdgeAntialiasingMask(unsigned) override { ASSERT_NOT_REACHED(); }
+    Path shapePath() const override;
+    void setShapePath(const Path&) override;
 
-    virtual GraphicsLayer::CustomAppearance customAppearance() const override { return m_customAppearance; }
-    virtual void updateCustomAppearance(GraphicsLayer::CustomAppearance customAppearance) override { m_customAppearance = customAppearance; }
+    WindRule shapeWindRule() const override;
+    void setShapeWindRule(WindRule) override;
 
-    virtual TiledBacking* tiledBacking() override { return nullptr; }
+    void setEdgeAntialiasingMask(unsigned) override;
+
+    GraphicsLayer::CustomAppearance customAppearance() const override { return m_customAppearance; }
+    void updateCustomAppearance(GraphicsLayer::CustomAppearance customAppearance) override { m_customAppearance = customAppearance; }
+
+    void setEventRegion(const EventRegion&) override { }
+
+    GraphicsLayer::EmbeddedViewID embeddedViewID() const override;
+
+    TiledBacking* tiledBacking() override;
     
-    virtual PlatformCALayer* rootLayer() const override;
-    virtual void setNeedsLayout() override;
-    virtual void setNeedsCommit() override;
+    PlatformCALayer* rootLayer() const override;
+    void setNeedsLayout() override;
+    void setNeedsCommit() override;
+    void drawTextAtPoint(CGContextRef, CGFloat x, CGFloat y, CGSize scale, CGFloat fontSize, const char* text, size_t length, CGFloat strokeWidth, Color strokeColor) const override;
 
-#ifndef NDEBUG
-    virtual void printTree() const override;
-#endif
+    String layerTreeAsString() const override;
 
-    virtual PassRefPtr<PlatformCALayer> clone(PlatformCALayerClient* owner) const override;
+    Ref<PlatformCALayer> clone(PlatformCALayerClient* owner) const override;
 
-    virtual PassRefPtr<PlatformCALayer> createCompatibleLayer(PlatformCALayer::LayerType, PlatformCALayerClient*) const override;
+    Ref<PlatformCALayer> createCompatibleLayer(PlatformCALayer::LayerType, PlatformCALayerClient*) const override;
 
 private:
     PlatformCALayerWin(LayerType, PlatformLayer*, PlatformCALayerClient* owner);
 
     HashMap<String, RefPtr<PlatformCAAnimation>> m_animations;
-    GraphicsLayer::CustomAppearance m_customAppearance;
+    std::unique_ptr<PlatformCALayerList> m_customSublayers;
+    GraphicsLayer::CustomAppearance m_customAppearance { GraphicsLayer::CustomAppearance::None };
 };
 
 }
-
-#endif // USE(ACCELERATED_COMPOSITING)
-
-#endif // PlatformCALayerWin_h