author Nigel Babu <>
Wed, 02 Sep 2015 11:34:47 +0530
changeset 260451 192893adb2c38cf940aba5d1f06c4f89aa75b45a
parent 260432 1f22cefbef234d7a7d30b004af735fe7a4c3dfe1
child 261502 7f87f5ec61e154013210b749119c36e46baa90f4
permissions -rw-r--r--
Backed out changeset 1f22cefbef23 (bug 1092125) for M3 bustage on CLOSED TREE

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at */


#include "mozilla/Attributes.h"
#include "nsSVGPathGeometryElement.h"
#include "SVGAnimatedPointList.h"

typedef nsSVGPathGeometryElement nsSVGPolyElementBase;

namespace mozilla {
class DOMSVGPointList;
} // namespace mozilla

class nsSVGPolyElement : public nsSVGPolyElementBase
  explicit nsSVGPolyElement(already_AddRefed<mozilla::dom::NodeInfo>& aNodeInfo);

  virtual ~nsSVGPolyElement();



  // nsIContent interface
  NS_IMETHOD_(bool) IsAttributeMapped(const nsIAtom* name) const override;

  virtual SVGAnimatedPointList* GetAnimatedPointList() override {
    return &mPoints;
  virtual nsIAtom* GetPointListAttrName() const override {
    return nsGkAtoms::points;

  // nsSVGElement methods:
  virtual bool HasValidDimensions() const override;

  // nsSVGPathGeometryElement methods:
  virtual bool AttributeDefinesGeometry(const nsIAtom *aName) override;
  virtual bool IsMarkable() override { return true; }
  virtual void GetMarkPoints(nsTArray<nsSVGMark> *aMarks) override;
  virtual bool GetGeometryBounds(Rect* aBounds, const StrokeOptions& aStrokeOptions,
                                 const Matrix& aTransform) override;

  // WebIDL
  already_AddRefed<mozilla::DOMSVGPointList> Points();
  already_AddRefed<mozilla::DOMSVGPointList> AnimatedPoints();

  SVGAnimatedPointList mPoints;