getValue method

double? getValue(
  1. InheritedProperties resolved, {
  2. double? baseValue,
  3. double? scaleFactor,
})

Calculates value in logical pixel.

Implementation

double? getValue(
  InheritedProperties resolved, {
  double? baseValue,
  double? scaleFactor,
}) {
  double value;
  var effectiveScaleFactor = scaleFactor ?? 1.0;

  switch (unit) {
    case CssLengthUnit.auto:
      return null;
    case CssLengthUnit.em:
      baseValue ??= resolved.style.fontSize;
      if (baseValue == null) {
        return null;
      }

      value = baseValue * number;
      effectiveScaleFactor = 1;
      break;
    case CssLengthUnit.percentage:
      if (baseValue == null) {
        return null;
      }

      value = baseValue * number / 100;
      effectiveScaleFactor = 1;
      break;
    case CssLengthUnit.pt:
      value = number * 96 / 72;
      break;
    case CssLengthUnit.px:
      value = number;
      break;
  }

  return value * effectiveScaleFactor;
}