convertFromV2 static method

Map<EnumSpWMLElementType, SpWMLFontStyleParams> convertFromV2(
  1. Map<String, dynamic> src
)

(en) Generate OverrideMap for version 3 from SpWML font style version 2 saved data.

(ja) SpWMLのフォントスタイルバージョン2の保存データからバージョン3用のOverrideMapを生成します。

  • src : The data of v2.

Implementation

static Map<EnumSpWMLElementType, SpWMLFontStyleParams> convertFromV2(
    Map<String, dynamic> src) {
  Map<EnumSpWMLElementType, SpWMLFontStyleParams> r = {};
  String textFontName = src['textFontName'];
  String textColor = src['textColor'];
  double lineHeight = src['textHeight'];
  double textMTop = src['textMTop'];
  double hHeight = src['hHeight'];
  double hMTop = double.parse(src['hMTop'].toString());
  // common
  r[EnumSpWMLElementType.href] = SpWMLFontStyleParams(
      fontFamily: src['hrefFontName'],
      mT: textMTop,
      lineHeight: lineHeight,
      fontSize: src['body1Size'],
      letterSpacing: src['body1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['hrefWeight']),
      textColor: src['hrefColor'],
      textDeco: EnumTextDecoration.values.byName(src['hrefDeco']),
      textDecoStyle:
          EnumTextDecorationStyle.values.byName(src['hrefDecoStyle']),
      textDecoThickness: src['hrefDecoThickness'],
      textDecoColor: src['hrefColor']);
  r[EnumSpWMLElementType.text] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: textMTop,
      lineHeight: lineHeight,
      fontSize: src['body1Size'],
      letterSpacing: src['body1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['body1Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.menu] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: lineHeight,
      fontSize: src['body1Size'],
      letterSpacing: src['body1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['body1Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.ruby] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: lineHeight,
      fontSize: src['body1Size'],
      letterSpacing: src['body1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['body1Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.btn] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: 1.0,
      fontSize: src['buttonSize'],
      letterSpacing: src['buttonLetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['buttonWeight']),
      textColor: textColor);
  // material v2
  r[EnumSpWMLElementType.h1] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: hMTop,
      lineHeight: hHeight,
      fontSize: src['h1Size'],
      letterSpacing: src['h1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['h1Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.h2] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: hMTop,
      lineHeight: hHeight,
      fontSize: src['h2Size'],
      letterSpacing: src['h2LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['h2Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.h3] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: hMTop,
      lineHeight: hHeight,
      fontSize: src['h3Size'],
      letterSpacing: src['h3LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['h3Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.h4] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: hMTop,
      lineHeight: hHeight,
      fontSize: src['h4Size'],
      letterSpacing: src['h4LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['h4Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.h5] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: hMTop,
      lineHeight: hHeight,
      fontSize: src['h5Size'],
      letterSpacing: src['h5LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['h5Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.h6] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: hMTop,
      lineHeight: hHeight,
      fontSize: src['h6Size'],
      letterSpacing: src['h6LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['h6Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.subtitle1] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: 1.0,
      fontSize: src['subtitle1Size'],
      letterSpacing: src['subtitle1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['subtitle1Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.subtitle2] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: 1.0,
      fontSize: src['subtitle2Size'],
      letterSpacing: src['subtitle2LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['subtitle2Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.body1] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: textMTop,
      lineHeight: lineHeight,
      fontSize: src['body1Size'],
      letterSpacing: src['body1LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['body1Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.body2] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: textMTop,
      lineHeight: lineHeight,
      fontSize: src['body2Size'],
      letterSpacing: src['body2LetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['body2Weight']),
      textColor: textColor);
  r[EnumSpWMLElementType.caption] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: 1.0,
      fontSize: src['captionSize'],
      letterSpacing: src['captionLetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['captionWeight']),
      textColor: textColor);
  r[EnumSpWMLElementType.overline] = SpWMLFontStyleParams(
      fontFamily: textFontName,
      mT: 0,
      lineHeight: 1.0,
      fontSize: src['overlineSize'],
      letterSpacing: src['overlineLetterSpacing'],
      fontWeight: EnumFontWeight.values.byName(src['overlineWeight']),
      textColor: textColor);
  return r;
}