resolve method

double resolve(
  1. BuildContext context, {
  2. double? parentSize,
})

Resolves the size value to pixels based on the context

Implementation

double resolve(BuildContext context, {double? parentSize}) {
  switch (unit) {
    case SizeUnit.px:
    case SizeUnit.pt:
      return value;
    case SizeUnit.percentage:
      if (parentSize == null) return 0;
      return value * parentSize / 100;
    case SizeUnit.rem:
      // Get the base font size from the closest MediaQuery
      final scaler = MediaQuery.textScalerOf(context);
      return value * scaler.scale(16);
    case SizeUnit.vh:
      final mediaQuery = MediaQuery.of(context);
      return value * mediaQuery.size.height / 100;
    case SizeUnit.vw:
      final mediaQuery = MediaQuery.of(context);
      return value * mediaQuery.size.width / 100;
  }
}