Example #1
0
float
SVGContentUtils::CoordToFloat(nsSVGElement *aContent,
                              const nsStyleCoord &aCoord)
{
    switch (aCoord.GetUnit()) {
    case eStyleUnit_Factor:
        // user units
        return aCoord.GetFactorValue();

    case eStyleUnit_Coord:
        return nsPresContext::AppUnitsToFloatCSSPixels(aCoord.GetCoordValue());

    case eStyleUnit_Percent: {
        SVGSVGElement* ctx = aContent->GetCtx();
        return ctx ? aCoord.GetPercentValue() * ctx->GetLength(SVGContentUtils::XY) : 0.0f;
    }
    default:
        return 0.0f;
    }
}