123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123 |
- /* -*- Mode: C++; tab-width: 8; 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 "SVGAngle.h"
- #include "nsSVGAngle.h"
- #include "mozilla/dom/SVGAngleBinding.h"
- using namespace mozilla;
- using namespace mozilla::dom;
- NS_SVG_VAL_IMPL_CYCLE_COLLECTION_WRAPPERCACHED(SVGAngle, mSVGElement)
- NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGAngle, AddRef)
- NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGAngle, Release)
- JSObject*
- SVGAngle::WrapObject(JSContext* aCx, JS::Handle<JSObject*> aGivenProto)
- {
- return SVGAngleBinding::Wrap(aCx, this, aGivenProto);
- }
- uint16_t
- SVGAngle::UnitType() const
- {
- if (mType == AnimValue) {
- return mVal->mAnimValUnit;
- }
- return mVal->mBaseValUnit;
- }
- float
- SVGAngle::Value() const
- {
- if (mType == AnimValue) {
- return mVal->GetAnimValue();
- }
- return mVal->GetBaseValue();
- }
- void
- SVGAngle::SetValue(float aValue, ErrorResult& rv)
- {
- if (mType == AnimValue) {
- rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
- return;
- }
- bool isBaseVal = mType == BaseValue;
- mVal->SetBaseValue(aValue, isBaseVal ? mSVGElement.get() : nullptr,
- isBaseVal);
- }
- float
- SVGAngle::ValueInSpecifiedUnits() const
- {
- if (mType == AnimValue) {
- return mVal->mAnimVal;
- }
- return mVal->mBaseVal;
- }
- void
- SVGAngle::SetValueInSpecifiedUnits(float aValue, ErrorResult& rv)
- {
- if (mType == AnimValue) {
- rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
- return;
- } else if (mType == BaseValue) {
- mVal->SetBaseValueInSpecifiedUnits(aValue, mSVGElement);
- } else {
- mVal->mBaseVal = aValue;
- }
- }
- void
- SVGAngle::NewValueSpecifiedUnits(uint16_t unitType,
- float valueInSpecifiedUnits,
- ErrorResult& rv)
- {
- if (mType == AnimValue) {
- rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
- return;
- }
- rv = mVal->NewValueSpecifiedUnits(unitType, valueInSpecifiedUnits,
- mType == BaseValue ? mSVGElement.get()
- : nullptr);
- }
- void
- SVGAngle::ConvertToSpecifiedUnits(uint16_t unitType, ErrorResult& rv)
- {
- if (mType == AnimValue) {
- rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
- return;
- }
- rv = mVal->ConvertToSpecifiedUnits(unitType, mType == BaseValue ?
- mSVGElement.get() : nullptr);
- }
- void
- SVGAngle::SetValueAsString(const nsAString& aValue, ErrorResult& rv)
- {
- if (mType == AnimValue) {
- rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
- return;
- }
- bool isBaseVal = mType == BaseValue;
- rv = mVal->SetBaseValueString(aValue, isBaseVal ? mSVGElement.get() : nullptr,
- isBaseVal);
- }
- void
- SVGAngle::GetValueAsString(nsAString& aValue)
- {
- if (mType == AnimValue) {
- mVal->GetAnimValueString(aValue);
- } else {
- mVal->GetBaseValueString(aValue);
- }
- }
|