LCOV - code coverage report
Current view: top level - dom/svg - SVGGradientElement.h (source / functions) Hit Total Coverage
Test: output.info Lines: 0 5 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 7 0.0 %
Legend: Lines: hit not hit

          Line data    Source code
       1             : /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
       2             : /* vim: set ts=8 sts=2 et sw=2 tw=80: */
       3             : /* This Source Code Form is subject to the terms of the Mozilla Public
       4             :  * License, v. 2.0. If a copy of the MPL was not distributed with this
       5             :  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
       6             : 
       7             : #ifndef __NS_SVGGRADIENTELEMENT_H__
       8             : #define __NS_SVGGRADIENTELEMENT_H__
       9             : 
      10             : #include "nsAutoPtr.h"
      11             : #include "nsSVGAnimatedTransformList.h"
      12             : #include "nsSVGElement.h"
      13             : #include "nsSVGLength2.h"
      14             : #include "nsSVGEnum.h"
      15             : #include "nsSVGString.h"
      16             : 
      17             : static const unsigned short SVG_SPREADMETHOD_UNKNOWN = 0;
      18             : static const unsigned short SVG_SPREADMETHOD_PAD     = 1;
      19             : static const unsigned short SVG_SPREADMETHOD_REFLECT = 2;
      20             : static const unsigned short SVG_SPREADMETHOD_REPEAT  = 3;
      21             : 
      22             : class nsSVGGradientFrame;
      23             : class nsSVGLinearGradientFrame;
      24             : class nsSVGRadialGradientFrame;
      25             : 
      26             : nsresult
      27             : NS_NewSVGLinearGradientElement(nsIContent** aResult,
      28             :                                already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
      29             : nsresult
      30             : NS_NewSVGRadialGradientElement(nsIContent** aResult,
      31             :                                already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo);
      32             : 
      33             : namespace mozilla {
      34             : namespace dom {
      35             : 
      36             : class SVGAnimatedTransformList;
      37             : 
      38             : //--------------------- Gradients------------------------
      39             : 
      40             : typedef nsSVGElement SVGGradientElementBase;
      41             : 
      42           0 : class SVGGradientElement : public SVGGradientElementBase
      43             : {
      44             :   friend class ::nsSVGGradientFrame;
      45             : 
      46             : protected:
      47             :   explicit SVGGradientElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
      48             :   virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override = 0;
      49             : 
      50             : public:
      51             :   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
      52             :                          bool aPreallocateChildren) const override = 0;
      53             : 
      54             :   // nsIContent
      55             :   NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* aAttribute) const override;
      56             : 
      57             :   virtual nsSVGAnimatedTransformList*
      58             :     GetAnimatedTransformList(uint32_t aFlags = 0) override;
      59           0 :   virtual nsIAtom* GetTransformListAttrName() const override {
      60           0 :     return nsGkAtoms::gradientTransform;
      61             :   }
      62             : 
      63             :   // WebIDL
      64             :   already_AddRefed<SVGAnimatedEnumeration> GradientUnits();
      65             :   already_AddRefed<SVGAnimatedTransformList> GradientTransform();
      66             :   already_AddRefed<SVGAnimatedEnumeration> SpreadMethod();
      67             :   already_AddRefed<SVGAnimatedString> Href();
      68             : 
      69             : protected:
      70             :   virtual EnumAttributesInfo GetEnumInfo() override;
      71             :   virtual StringAttributesInfo GetStringInfo() override;
      72             : 
      73             :   enum { GRADIENTUNITS, SPREADMETHOD };
      74             :   nsSVGEnum mEnumAttributes[2];
      75             :   static nsSVGEnumMapping sSpreadMethodMap[];
      76             :   static EnumInfo sEnumInfo[2];
      77             : 
      78             :   enum { HREF, XLINK_HREF };
      79             :   nsSVGString mStringAttributes[2];
      80             :   static StringInfo sStringInfo[2];
      81             : 
      82             :   // SVGGradientElement values
      83             :   nsAutoPtr<nsSVGAnimatedTransformList> mGradientTransform;
      84             : };
      85             : 
      86             : //---------------------Linear Gradients------------------------
      87             : 
      88             : typedef SVGGradientElement SVGLinearGradientElementBase;
      89             : 
      90           0 : class SVGLinearGradientElement : public SVGLinearGradientElementBase
      91             : {
      92             :   friend class ::nsSVGLinearGradientFrame;
      93             :   friend nsresult
      94             :     (::NS_NewSVGLinearGradientElement(nsIContent** aResult,
      95             :                                       already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo));
      96             : 
      97             : protected:
      98             :   explicit SVGLinearGradientElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
      99             :   virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
     100             : 
     101             : public:
     102             :   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
     103             :                          bool aPreallocateChildren) const override;
     104             : 
     105             :   // WebIDL
     106             :   already_AddRefed<SVGAnimatedLength> X1();
     107             :   already_AddRefed<SVGAnimatedLength> Y1();
     108             :   already_AddRefed<SVGAnimatedLength> X2();
     109             :   already_AddRefed<SVGAnimatedLength> Y2();
     110             : 
     111             : protected:
     112             : 
     113             :   virtual LengthAttributesInfo GetLengthInfo() override;
     114             : 
     115             :   enum { ATTR_X1, ATTR_Y1, ATTR_X2, ATTR_Y2 };
     116             :   nsSVGLength2 mLengthAttributes[4];
     117             :   static LengthInfo sLengthInfo[4];
     118             : };
     119             : 
     120             : //-------------------------- Radial Gradients ----------------------------
     121             : 
     122             : typedef SVGGradientElement SVGRadialGradientElementBase;
     123             : 
     124           0 : class SVGRadialGradientElement : public SVGRadialGradientElementBase
     125             : {
     126             :   friend class ::nsSVGRadialGradientFrame;
     127             :   friend nsresult
     128             :     (::NS_NewSVGRadialGradientElement(nsIContent** aResult,
     129             :                                       already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo));
     130             : 
     131             : protected:
     132             :   explicit SVGRadialGradientElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);
     133             :   virtual JSObject* WrapNode(JSContext* aCx, JS::Handle<JSObject*> aGivenProto) override;
     134             : 
     135             : public:
     136             :   virtual nsresult Clone(mozilla::dom::NodeInfo *aNodeInfo, nsINode **aResult,
     137             :                          bool aPreallocateChildren) const override;
     138             : 
     139             :   // WebIDL
     140             :   already_AddRefed<SVGAnimatedLength> Cx();
     141             :   already_AddRefed<SVGAnimatedLength> Cy();
     142             :   already_AddRefed<SVGAnimatedLength> R();
     143             :   already_AddRefed<SVGAnimatedLength> Fx();
     144             :   already_AddRefed<SVGAnimatedLength> Fy();
     145             :   already_AddRefed<SVGAnimatedLength> Fr();
     146             : protected:
     147             : 
     148             :   virtual LengthAttributesInfo GetLengthInfo() override;
     149             : 
     150             :   enum { ATTR_CX, ATTR_CY, ATTR_R, ATTR_FX, ATTR_FY, ATTR_FR };
     151             :   nsSVGLength2 mLengthAttributes[6];
     152             :   static LengthInfo sLengthInfo[6];
     153             : };
     154             : 
     155             : } // namespace dom
     156             : } // namespace mozilla
     157             : 
     158             : #endif

Generated by: LCOV version 1.13