/* -*- 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"

interface nsIDOMSVGAnimatedLength;
interface nsIDOMSVGAnimatedEnumeration;
interface nsIDOMSVGAnimatedInteger;

[scriptable, uuid(974C7633-0258-4BE7-B1AE-E0ED1964C87F)]
interface nsIDOMSVGFilterElement
  : 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.)
        
    nsIDOMSVGElement,
    nsIDOMSVGURIReference,
    nsIDOMSVGLangSpace,
    nsIDOMSVGExternalResourcesRequired,
    nsIDOMSVGStylable,
*/
{ 
    readonly attribute nsIDOMSVGAnimatedEnumeration filterUnits;
    readonly attribute nsIDOMSVGAnimatedEnumeration primitiveUnits;
    readonly attribute nsIDOMSVGAnimatedLength      x;
    readonly attribute nsIDOMSVGAnimatedLength      y;
    readonly attribute nsIDOMSVGAnimatedLength      width;
    readonly attribute nsIDOMSVGAnimatedLength      height;

    readonly attribute nsIDOMSVGAnimatedInteger    filterResX;
    readonly attribute nsIDOMSVGAnimatedInteger    filterResY;

    void setFilterRes (in unsigned long filterResX, in unsigned long filterResY);
};


