PRBool nsSMILAnimationFunction::SetAttr(nsIAtom* aAttribute, const nsAString& aValue, nsAttrValue& aResult, nsresult* aParseResult) { PRBool foundMatch = PR_TRUE; nsresult parseResult = NS_OK; // The attributes 'by', 'from', 'to', and 'values' may be parsed differently // depending on the element & attribute we're animating. So instead of // parsing them now we re-parse them at every sample. if (aAttribute == nsGkAtoms::by || aAttribute == nsGkAtoms::from || aAttribute == nsGkAtoms::to || aAttribute == nsGkAtoms::values) { // We parse to, from, by, values at sample time. // XXX Need to flag which attribute has changed and then when we parse it at // sample time, report any errors and reset the flag mHasChanged = PR_TRUE; aResult.SetTo(aValue); } else if (aAttribute == nsGkAtoms::accumulate) { parseResult = SetAccumulate(aValue, aResult); } else if (aAttribute == nsGkAtoms::additive) { parseResult = SetAdditive(aValue, aResult); } else if (aAttribute == nsGkAtoms::calcMode) { parseResult = SetCalcMode(aValue, aResult); } else if (aAttribute == nsGkAtoms::keyTimes) { parseResult = SetKeyTimes(aValue, aResult); } else if (aAttribute == nsGkAtoms::keySplines) { parseResult = SetKeySplines(aValue, aResult); } else { foundMatch = PR_FALSE; } if (foundMatch && aParseResult) { *aParseResult = parseResult; } return foundMatch; }
void ParticleLayer3D::LoadFromYaml(const String & configPath, YamlNode * node) { ParticleLayer::LoadFromYaml(configPath, node); SetAdditive(additive); }