performLayout method

  1. @override
void performLayout(
  1. ChantContext ctxt
)
override

Implementation

@override
void performLayout(ChantContext ctxt) {
  super.performLayout(ctxt);

  final first = notes[0];
  final second = notes[1];
  final third = notes[2];
  final fourth = notes[3];
  final fifth = notes[4];

  GlyphCode firstGlyph;
  var fourthGlyph = GlyphCode.punctumQuadratum;
  GlyphCode fifthGlyph;

  if (first.liquescent == LiquescentType.initioDebilis.value) {
    firstGlyph = GlyphCode.terminatingDesLiquescent;
  } else if (first.shape == NoteShape.quilisma) {
    firstGlyph = GlyphCode.quilisma;
  } else {
    firstGlyph = GlyphCode.punctumQuadratum;
  }

  if (hasFlag(fifth.liquescent, LiquescentType.small)) {
    fourthGlyph = GlyphCode.punctumQuadratumDesLiquescent;
    fifthGlyph = GlyphCode.terminatingDesLiquescent;
  } else if (hasFlag(fifth.liquescent, LiquescentType.ascending)) {
    fifthGlyph = GlyphCode.punctumQuadratumAscLiquescent;
  } else if (hasFlag(fifth.liquescent, LiquescentType.descending)) {
    fifthGlyph = GlyphCode.punctumQuadratumDesLiquescent;
  } else {
    fifthGlyph = GlyphCode.punctumQuadratum;
  }

  build(ctxt)
    ..noteAt(first, firstGlyph)
    ..withPorrectusSwash(start: second, end: third)
    ..noteAt(fourth, fourthGlyph)
    ..noteAt(fifth, fifthGlyph);

  finishLayout(ctxt);
}