StrutStyle.fromTextStyle constructor

StrutStyle.fromTextStyle(
  1. TextStyle textStyle,
  2. {String fontFamily,
  3. List<String> fontFamilyFallback,
  4. double fontSize,
  5. double height,
  6. double leading,
  7. FontWeight fontWeight,
  8. FontStyle fontStyle,
  9. bool forceStrutHeight,
  10. String debugLabel,
  11. String package}
)

Builds a StrutStyle that contains values of the equivalent properties in the provided textStyle.

The textStyle parameter must not be null.

The named parameters override the textStyle's argument's properties. Since TextStyle does not contain leading or forceStrutHeight, these values will take on default values (null and false) unless otherwise specified.

If provided, fontSize must be positive and non-zero, leading must be zero or positive.

When textStyle has a package and a new package is also specified, the entire font family fallback list should be redefined since the textStyle's package data is inherited by being prepended onto the font family names. If fontFamilyFallback is meant to be empty, pass an empty list instead of null. This prevents the previous package name from being prepended twice.

Implementation

StrutStyle.fromTextStyle(
  TextStyle textStyle, {
  String fontFamily,
  List<String> fontFamilyFallback,
  double fontSize,
  double height,
  this.leading, // TextStyle does not have an equivalent (yet).
  FontWeight fontWeight,
  FontStyle fontStyle,
  this.forceStrutHeight,
  String debugLabel,
  String package,
}) : assert(textStyle != null),
     assert(fontSize == null || fontSize > 0),
     assert(leading == null || leading >= 0),
     assert(package == null || (package != null && (fontFamily != null || fontFamilyFallback != null))),
     fontFamily = fontFamily != null ? (package == null ? fontFamily : 'packages/$package/$fontFamily') : textStyle.fontFamily,
     _fontFamilyFallback = fontFamilyFallback ?? textStyle.fontFamilyFallback,
     height = height ?? textStyle.height,
     fontSize = fontSize ?? textStyle.fontSize,
     fontWeight = fontWeight ?? textStyle.fontWeight,
     fontStyle = fontStyle ?? textStyle.fontStyle,
     debugLabel = debugLabel ?? textStyle.debugLabel,
     _package = package;