michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: #ifndef __NS_SVGFILTERPAINTCALLBACK_H__ michael@0: #define __NS_SVGFILTERPAINTCALLBACK_H__ michael@0: michael@0: class nsIFrame; michael@0: class nsRenderingContext; michael@0: michael@0: struct nsIntRect; michael@0: michael@0: class nsSVGFilterPaintCallback { michael@0: public: michael@0: /** michael@0: * Paint the frame contents. michael@0: * SVG frames will have had matrix propagation set to false already. michael@0: * Non-SVG frames have to do their own thing. michael@0: * The caller will do a Save()/Restore() as necessary so feel free michael@0: * to mess with context state. michael@0: * The context will be configured to use the "user space" coordinate michael@0: * system. michael@0: * @param aDirtyRect the dirty rect *in user space pixels* michael@0: * @param aTransformRoot the outermost frame whose transform should be taken michael@0: * into account when painting an SVG glyph michael@0: */ michael@0: virtual void Paint(nsRenderingContext *aContext, nsIFrame *aTarget, michael@0: const nsIntRect *aDirtyRect, michael@0: nsIFrame* aTransformRoot) = 0; michael@0: }; michael@0: michael@0: #endif