NS_IMETHODIMP DOMSVGLength::SetValueInSpecifiedUnits(float aValue) { if (!IsFinite(aValue)) { return NS_ERROR_ILLEGAL_VALUE; } ErrorResult rv; SetValueInSpecifiedUnits(aValue, rv); return rv.StealNSResult(); }
void wxSVGLength::SetValueAsString(const wxString& n) { m_valueInSpecifiedUnits = 0; m_unitType = wxSVG_LENGTHTYPE_NUMBER; wxString value = n.Strip(wxString::both); wxString unit; if (value.length()>=2) { const wxString s_numeric = wxT("0123456789"); const wxString s_numericFirst = wxT("+-.Ee") + s_numeric; if (!s_numeric.Contains(value.Right(1))) { if (s_numericFirst.Contains(value.Mid(value.Length()-2,1))) { unit = value.Right(1); value = value.Left(value.Length()-1); } else { unit = value.Right(2); value = value.Left(value.Length()-2); } } } double d; if (!value.ToDouble(&d)) return; m_valueInSpecifiedUnits = d; if (unit.length() == 0); else if (unit == wxT("px")) m_unitType = wxSVG_LENGTHTYPE_PX; else if (unit.Right(1) == wxT("%")) m_unitType = wxSVG_LENGTHTYPE_PERCENTAGE; else if (unit == wxT("em")) m_unitType = wxSVG_LENGTHTYPE_EMS; else if (unit == wxT("ex")) m_unitType = wxSVG_LENGTHTYPE_EXS; else if (unit == wxT("cm")) m_unitType = wxSVG_LENGTHTYPE_CM; else if (unit == wxT("mm")) m_unitType = wxSVG_LENGTHTYPE_MM; else if (unit == wxT("in")) m_unitType = wxSVG_LENGTHTYPE_IN; else if (unit == wxT("pt")) m_unitType = wxSVG_LENGTHTYPE_PT; else if (unit == wxT("pc")) m_unitType = wxSVG_LENGTHTYPE_PC; SetValueInSpecifiedUnits(m_valueInSpecifiedUnits); }
void wxSVGLength::NewValueSpecifiedUnits(wxSVG_LENGTHTYPE unitType, double valueInSpecifiedUnits) { m_unitType = unitType; SetValueInSpecifiedUnits(valueInSpecifiedUnits); }