1 /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* This Source Code Form is subject to the terms of the Mozilla Public 3 * License, v. 2.0. If a copy of the MPL was not distributed with this 4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 5 6 #ifndef __NS_SVGGENERICCONTAINERFRAME_H__ 7 #define __NS_SVGGENERICCONTAINERFRAME_H__ 8 9 #include "mozilla/Attributes.h" 10 #include "gfxMatrix.h" 11 #include "nsFrame.h" 12 #include "nsLiteralString.h" 13 #include "nsQueryFrame.h" 14 #include "nsSVGContainerFrame.h" 15 16 class nsIAtom; 17 class nsIFrame; 18 class nsIPresShell; 19 class nsStyleContext; 20 21 class nsSVGGenericContainerFrame : public nsSVGDisplayContainerFrame 22 { 23 friend nsIFrame* 24 NS_NewSVGGenericContainerFrame(nsIPresShell* aPresShell, nsStyleContext* aContext); 25 26 protected: nsSVGGenericContainerFrame(nsStyleContext * aContext)27 explicit nsSVGGenericContainerFrame(nsStyleContext* aContext) 28 : nsSVGDisplayContainerFrame(aContext) {} 29 30 public: 31 NS_DECL_FRAMEARENA_HELPERS 32 33 // nsIFrame: 34 virtual nsresult AttributeChanged(int32_t aNameSpaceID, 35 nsIAtom* aAttribute, 36 int32_t aModType) override; 37 /** 38 * Get the "type" of the frame 39 * 40 * @see nsGkAtoms::svgGenericContainerFrame 41 */ 42 virtual nsIAtom* GetType() const override; 43 44 #ifdef DEBUG_FRAME_DUMP GetFrameName(nsAString & aResult)45 virtual nsresult GetFrameName(nsAString& aResult) const override 46 { 47 return MakeFrameName(NS_LITERAL_STRING("SVGGenericContainer"), aResult); 48 } 49 #endif 50 51 // nsSVGContainerFrame methods: 52 virtual gfxMatrix GetCanvasTM() override; 53 }; 54 55 #endif // __NS_SVGGENERICCONTAINERFRAME_H__ 56