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/. */
6 /* DOM object for element.style */
8 #ifndef nsDOMCSSAttributeDeclaration_h
9 #define nsDOMCSSAttributeDeclaration_h
11 #include "mozilla/Attributes.h"
12 #include "nsDOMCSSDeclaration.h"
14 #include "nsAutoPtr.h"
22 class nsDOMCSSAttributeDeclaration MOZ_FINAL
: public nsDOMCSSDeclaration
25 typedef mozilla::dom::Element Element
;
26 nsDOMCSSAttributeDeclaration(Element
* aContent
, bool aIsSMILOverride
);
28 NS_DECL_CYCLE_COLLECTING_ISUPPORTS
29 NS_DECL_CYCLE_COLLECTION_SKIPPABLE_SCRIPT_HOLDER_CLASS_AMBIGUOUS(nsDOMCSSAttributeDeclaration
,
32 // If GetCSSDeclaration returns non-null, then the decl it returns
33 // is owned by our current style rule.
34 virtual mozilla::css::Declaration
* GetCSSDeclaration(bool aAllocate
) MOZ_OVERRIDE
;
35 virtual void GetCSSParsingEnvironment(CSSParsingEnvironment
& aCSSParseEnv
) MOZ_OVERRIDE
;
36 NS_IMETHOD
GetParentRule(nsIDOMCSSRule
**aParent
) MOZ_OVERRIDE
;
38 virtual nsINode
* GetParentObject() MOZ_OVERRIDE
;
40 NS_IMETHOD
SetPropertyValue(const nsCSSProperty aPropID
,
41 const nsAString
& aValue
) MOZ_OVERRIDE
;
44 ~nsDOMCSSAttributeDeclaration();
46 virtual nsresult
SetCSSDeclaration(mozilla::css::Declaration
* aDecl
) MOZ_OVERRIDE
;
47 virtual nsIDocument
* DocToUpdate() MOZ_OVERRIDE
;
49 nsRefPtr
<Element
> mElement
;
51 /* If true, this indicates that this nsDOMCSSAttributeDeclaration
52 * should interact with mContent's SMIL override style rule (rather
53 * than the inline style rule).
55 const bool mIsSMILOverride
;
58 #endif /* nsDOMCSSAttributeDeclaration_h */