baselineOffset method

double baselineOffset(
  1. ChantContext ctxt
)

Implementation

double baselineOffset(ChantContext ctxt) {
  if (ctxt.textMeasurer.align == .baseline) return 0;
  final dcProps = <String, dynamic>{
    ...getExtraStyleProperties(ctxt),
    'base-font-family': fontFamily(ctxt),
    'base-font-size': fontSize(ctxt),
    'line-height': 1.0,
  };
  final dc = spans.first.buildParagraph(ctxt, dcProps, .start)
    ..layout(ui.ParagraphConstraints(width: double.infinity));
  final lyric = Lyric(ctxt, 'M', .directive);
  final lProps = <String, dynamic>{
    ...lyric.getExtraStyleProperties(ctxt),
    'base-font-family': lyric.fontFamily(ctxt),
    'base-font-size': lyric.fontSize(ctxt),
  };
  final l = lyric.spans.first.buildParagraph(ctxt, lProps, .start)
    ..layout(ui.ParagraphConstraints(width: double.infinity));
  return l.alphabeticBaseline - dc.alphabeticBaseline;
}