/* 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/. */ #ifndef LAYOUT_STYLE_TYPEDOM_CSSMATHSUM_H_ #define LAYOUT_STYLE_TYPEDOM_CSSMATHSUM_H_ #include "js/TypeDecls.h" #include "mozilla/RefPtr.h" #include "mozilla/dom/CSSMathValue.h" #include "mozilla/dom/CSSNumericArrayBindingFwd.h" #include "mozilla/dom/CSSNumericValueBindingFwd.h" #include "nsCycleCollectionParticipant.h" #include "nsISupportsImpl.h" template class nsCOMPtr; class nsISupports; namespace mozilla { struct CSSPropertyId; class ErrorResult; struct StyleMathSum; namespace dom { class CSSNumericArray; class GlobalObject; template class Sequence; class CSSMathSum final : public CSSMathValue { public: CSSMathSum(nsCOMPtr aParent, RefPtr aValues); static RefPtr Create(nsCOMPtr aParent, const StyleMathSum& aMathSum); NS_DECL_ISUPPORTS_INHERITED NS_DECL_CYCLE_COLLECTION_CLASS_INHERITED(CSSMathSum, CSSMathValue) JSObject* WrapObject(JSContext* aCx, JS::Handle aGivenProto) override; // start of CSSMathSum Web IDL declarations // https://www.w3.org/TR/css-typed-om-1/#dom-cssmathsum-cssmathsum static already_AddRefed Constructor( const GlobalObject& aGlobal, const Sequence& aArgs, ErrorResult& aRv); CSSNumericArray* Values() const; // end of CSSMathSum Web IDL declarations void ToCssTextWithProperty(const CSSPropertyId& aPropertyId, nsACString& aDest) const; StyleMathSum ToStyleMathSum() const; private: virtual ~CSSMathSum() = default; RefPtr mValues; }; } // namespace dom } // namespace mozilla #endif // LAYOUT_STYLE_TYPEDOM_CSSMATHSUM_H_