LCOV - code coverage report
Current view: top level - dom/svg - SVGTextPathElement.cpp (source / functions) Hit Total Coverage
Test: output.info Lines: 0 25 0.0 %
Date: 2017-07-14 16:53:18 Functions: 0 12 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             : #include "mozilla/dom/SVGTextPathElement.h"
       8             : #include "mozilla/dom/SVGTextPathElementBinding.h"
       9             : #include "nsSVGElement.h"
      10             : #include "nsGkAtoms.h"
      11             : #include "nsError.h"
      12             : 
      13           0 : NS_IMPL_NS_NEW_NAMESPACED_SVG_ELEMENT(TextPath)
      14             : 
      15             : namespace mozilla {
      16             : namespace dom {
      17             : 
      18             : class SVGAnimatedLength;
      19             : 
      20             : JSObject*
      21           0 : SVGTextPathElement::WrapNode(JSContext *aCx, JS::Handle<JSObject*> aGivenProto)
      22             : {
      23           0 :   return SVGTextPathElementBinding::Wrap(aCx, this, aGivenProto);
      24             : }
      25             : 
      26             : nsSVGElement::LengthInfo SVGTextPathElement::sLengthInfo[2] =
      27             : {
      28             :   // from SVGTextContentElement:
      29             :   { &nsGkAtoms::textLength, 0, nsIDOMSVGLength::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::XY },
      30             :   // from SVGTextPathElement:
      31             :   { &nsGkAtoms::startOffset, 0, nsIDOMSVGLength::SVG_LENGTHTYPE_NUMBER, SVGContentUtils::X }
      32             : };
      33             : 
      34             : nsSVGEnumMapping SVGTextPathElement::sMethodMap[] = {
      35             :   {&nsGkAtoms::align, TEXTPATH_METHODTYPE_ALIGN},
      36             :   {&nsGkAtoms::stretch, TEXTPATH_METHODTYPE_STRETCH},
      37             :   {nullptr, 0}
      38             : };
      39             : 
      40             : nsSVGEnumMapping SVGTextPathElement::sSpacingMap[] = {
      41             :   {&nsGkAtoms::_auto, TEXTPATH_SPACINGTYPE_AUTO},
      42             :   {&nsGkAtoms::exact, TEXTPATH_SPACINGTYPE_EXACT},
      43             :   {nullptr, 0}
      44             : };
      45             : 
      46             : nsSVGElement::EnumInfo SVGTextPathElement::sEnumInfo[3] =
      47             : {
      48             :   // from SVGTextContentElement:
      49             :   { &nsGkAtoms::lengthAdjust,
      50             :     sLengthAdjustMap,
      51             :     SVG_LENGTHADJUST_SPACING
      52             :   },
      53             :   // from SVGTextPathElement:
      54             :   { &nsGkAtoms::method,
      55             :     sMethodMap,
      56             :     TEXTPATH_METHODTYPE_ALIGN
      57             :   },
      58             :   { &nsGkAtoms::spacing,
      59             :     sSpacingMap,
      60             :     TEXTPATH_SPACINGTYPE_EXACT
      61             :   }
      62             : };
      63             : 
      64             : nsSVGElement::StringInfo SVGTextPathElement::sStringInfo[2] =
      65             : {
      66             :   { &nsGkAtoms::href, kNameSpaceID_None, true },
      67             :   { &nsGkAtoms::href, kNameSpaceID_XLink, true }
      68             : };
      69             : 
      70             : //----------------------------------------------------------------------
      71             : // Implementation
      72             : 
      73           0 : SVGTextPathElement::SVGTextPathElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo)
      74           0 :   : SVGTextPathElementBase(aNodeInfo)
      75             : {
      76           0 : }
      77             : 
      78             : //----------------------------------------------------------------------
      79             : // nsIDOMNode methods
      80             : 
      81           0 : NS_IMPL_ELEMENT_CLONE_WITH_INIT(SVGTextPathElement)
      82             : 
      83             : already_AddRefed<SVGAnimatedString>
      84           0 : SVGTextPathElement::Href()
      85             : {
      86           0 :   return mStringAttributes[HREF].IsExplicitlySet()
      87             :          ? mStringAttributes[HREF].ToDOMAnimatedString(this)
      88           0 :          : mStringAttributes[XLINK_HREF].ToDOMAnimatedString(this);
      89             : }
      90             : 
      91             : //----------------------------------------------------------------------
      92             : 
      93             : already_AddRefed<SVGAnimatedLength>
      94           0 : SVGTextPathElement::StartOffset()
      95             : {
      96           0 :   return mLengthAttributes[STARTOFFSET].ToDOMAnimatedLength(this);
      97             : }
      98             : 
      99             : already_AddRefed<SVGAnimatedEnumeration>
     100           0 : SVGTextPathElement::Method()
     101             : {
     102           0 :   return mEnumAttributes[METHOD].ToDOMAnimatedEnum(this);
     103             : }
     104             : 
     105             : already_AddRefed<SVGAnimatedEnumeration>
     106           0 : SVGTextPathElement::Spacing()
     107             : {
     108           0 :   return mEnumAttributes[SPACING].ToDOMAnimatedEnum(this);
     109             : }
     110             : 
     111             : //----------------------------------------------------------------------
     112             : // nsIContent methods
     113             : 
     114             : NS_IMETHODIMP_(bool)
     115           0 : SVGTextPathElement::IsAttributeMapped(const nsIAtom* name) const
     116             : {
     117             :   static const MappedAttributeEntry* const map[] = {
     118             :     sColorMap,
     119             :     sFillStrokeMap,
     120             :     sFontSpecificationMap,
     121             :     sGraphicsMap,
     122             :     sTextContentElementsMap
     123             :   };
     124             : 
     125           0 :   return FindAttributeDependence(name, map) ||
     126           0 :     SVGTextPathElementBase::IsAttributeMapped(name);
     127             : }
     128             : 
     129             : //----------------------------------------------------------------------
     130             : // nsSVGElement overrides
     131             : 
     132             : nsSVGElement::LengthAttributesInfo
     133           0 : SVGTextPathElement::GetLengthInfo()
     134             : {
     135             :   return LengthAttributesInfo(mLengthAttributes, sLengthInfo,
     136           0 :                               ArrayLength(sLengthInfo));
     137             : }
     138             : 
     139             : nsSVGElement::EnumAttributesInfo
     140           0 : SVGTextPathElement::GetEnumInfo()
     141             : {
     142             :   return EnumAttributesInfo(mEnumAttributes, sEnumInfo,
     143           0 :                             ArrayLength(sEnumInfo));
     144             : }
     145             : 
     146             : nsSVGElement::StringAttributesInfo
     147           0 : SVGTextPathElement::GetStringInfo()
     148             : {
     149             :   return StringAttributesInfo(mStringAttributes, sStringInfo,
     150           0 :                               ArrayLength(sStringInfo));
     151             : }
     152             : 
     153             : } // namespace dom
     154             : } // namespace mozilla

Generated by: LCOV version 1.13