/* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* 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 http://mozilla.org/MPL/2.0/. */

#include "nsIDOMSVGElement.idl"

/**
 * The nsIDOMSVGPatternElement interface is the interface to an SVG
 * pattern element.
 *
 * For more information on this interface please see
 * http://www.w3.org/TR/SVG11/pservers.html
 *
 */

interface nsIDOMSVGAnimatedEnumeration;
interface nsIDOMSVGAnimatedLength;

[scriptable, uuid(A8D23223-A3DA-46DB-87F0-EA6BBCF4A7DD)]
interface nsIDOMSVGPatternElement 
  : nsIDOMSVGElement
/*
        The SVG DOM makes use of multiple interface inheritance.
        Since XPCOM only supports single interface inheritance,
        the best thing that we can do is to promise that whenever
        an object implements _this_ interface it will also
        implement the following interfaces. (We then have to QI to
        hop between them.)
        
                nsIDOMSVGURIReference,
                ?SVGTests,
                ?SVGLangSpace,
                ?SVGExternalResourcesRequired,
                nsIDOMSVGStylable,
                nsIDOMSVGFitToViewBox,
                SVGUnitTypes 
*/
{ 
  readonly attribute nsIDOMSVGAnimatedEnumeration   patternUnits;
  readonly attribute nsIDOMSVGAnimatedEnumeration   patternContentUnits;
  // SVGAnimatedTransformList
  readonly attribute nsISupports                    patternTransform;
  readonly attribute nsIDOMSVGAnimatedLength        x;
  readonly attribute nsIDOMSVGAnimatedLength        y;
  readonly attribute nsIDOMSVGAnimatedLength        width;
  readonly attribute nsIDOMSVGAnimatedLength        height;
};

