operationTable method Null safety

Widget operationTable(
  1. double widthCM
)

Implementation

Widget operationTable(double widthCM) => table(widthCM, [
      row([
        cell(space(0)),
        cell(text('C', align: bpCenter)),
        cell(text('G', align: bpCenter)),
        cell(space(0))
      ]),
      row([
        cell(center(list([
          text('+',
              offset: const Offset(0.3, -.1),
              boxOffset: const Offset(-.2, 0),
              box: true),
          space(1.2),
          text('\u2212',
              offset: const Offset(0.3, 0),
              boxOffset: const Offset(-.2, 0),
              box: true)
        ]))),
        cell(text('x', align: bpCenter)),
        cell(text('x', align: bpCenter)),
        cell(space(0))
      ]),
      row([
        cell(center(text('\u00D7',
            box: true,
            boxOffset: const Offset(-0.2, 0),
            offset: const Offset(0.3, 0)))), // multiply
        cell(text('--', align: bpCenter)),
        cell(text('x', align: bpCenter)),
        cell(space(0))
      ]),
      row([
        cell(center(text('\u00F7',
            boxOffset: const Offset(-.2, 0),
            box: true,
            offset: const Offset(0.3, -.1)))), //  divide
        cell(text('x', align: bpCenter)),
        cell(text('x', align: bpCenter)),
        cell(list(
            [text('\u200aRMD\u22600'), arrowRight(2), space(0.4), text('C')]))
      ]),
      row([
        cell(center(sqrtText('\u221Ax',
            boxOffset: const Offset(-.25, .08),
            box: true,
            offset: const Offset(0.1, 0.3)))), // sqrt(x)
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cell(list(
            [text('\u200aRMD\u22600'), arrowRight(2), space(0.4), text('C')]))
      ]),
      row([
        cell(center(list([
          space(0.7),
          text('\u200aCHS',
              offset: const Offset(0.2, 0),
              boxOffset: const Offset(-.1, 0),
              box: true,
              scale: 0.75),
          text(','),
          text(' ABS', offset: const Offset(-0.1, 0), box: true, scale: 0.75),
          space(0.7)
        ]))),
        cell(text('--', align: bpCenter)),
        cell(text('x', align: bpCenter)),
        cell(space(0))
      ]),
      row([
        cell(center(text('DBL\u00D7',
            boxOffset: const Offset(0, .07),
            offset: const Offset(0.5, 0.1),
            box: true,
            scale: 0.9))), // multiply
        cell(text('--', align: bpCenter)),
        cell(text('x', align: bpCenter)),
        cell(list([text('\u200ay\u2219x'), arrowRight(2), text('X&Y')]))
      ]),
      row([
        cell(center(text('DBL\u00F7',
            boxOffset: const Offset(0, 0.07),
            offset: const Offset(0.5, 0.1),
            box: true,
            scale: 0.91))), // multiply
        cell(text('x', align: bpCenter)),
        cell(text('o', align: bpCenter)),
        cell(list([
          text('\u200a(y&z)\u00F7x'),
          arrowRight(2),
          text('X ; '),
          text('RMD\u22600'),
          arrowRight(2),
          space(0.4),
          text('C')
        ])),
      ]),
      row([
        cell(center(text('\u200aSL',
            offset: const Offset(0.0, 0.0),
            box: true,
            boxOffset: const Offset(0, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(2),
          carry(),
          arrowLeft(3.7),
          registerBox(20, list([space(0.8), arrowLeft(17.8), point()])),
          arrowLeft(3.7),
          space(0.2),
          text('0', scale: 0.8),
          space(2)
        ]))
      ]),
      row([
        cell(center(text('SR',
            offset: const Offset(0.20, 0.0),
            box: true,
            boxOffset: const Offset(0, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(2),
          text('0', scale: 0.8, offset: const Offset(.38, 0.10)),
          space(0.5),
          arrowRight(3.7),
          registerBox(
              20,
              list([
                space(1.3),
                point(),
                arrowRight(18.0),
              ])),
          arrowRight(3.7),
          space(0.2),
          carry()
        ]))
      ]),
      row([
        cell(center(text('\u200aASR',
            offset: const Offset(-0.07, 0.0),
            box: true,
            boxOffset: const Offset(0, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(2.0),
          BPCustomItem(1.9, (Canvas c, BPItemPainter p) {
            final double ym = rowHeightMM / 2;
            var path = Path()
              ..moveTo(1.9, ym)
              ..lineTo(0, ym)
              ..lineTo(0, rowHeightMM + 0.1)
              ..lineTo(2.9, rowHeightMM + 0.1)
              ..lineTo(2.9, rowHeightMM - 0.8);
            c.drawPath(path, p.thinLine);
            path = Path()
              ..addPolygon([
                Offset(2.9, rowHeightMM - 0.7),
                Offset(2.45, rowHeightMM - 0.2),
                Offset(3.35, rowHeightMM - 0.2),
              ], true);
            c.drawPath(path, p.fill);
          }),
          registerBox(
              24,
              list([
                space(1.3),
                point(),
                arrowRight(22.0),
              ])),
          arrowRight(3.7),
          space(0.2),
          carry()
        ]))
      ]),
      row([
        cell(center(text('\u200aRL',
            offset: const Offset(-0.10, -0.04),
            box: true,
            boxOffset: const Offset(.07, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(4),
          carry(),
          space(2.3),
          point(),
          BPCustomItem(0, (Canvas c, BPItemPainter p) {
            final double ym = rowHeightMM / 2;
            var path = Path()
              ..moveTo(0, ym)
              ..lineTo(0, rowHeightMM - 0.45)
              ..lineTo(25, rowHeightMM - 0.45)
              ..lineTo(25, ym)
              ..lineTo(23.4, ym);
            c.drawPath(path, p.thinLine);
          }),
          space(-2.3),
          arrowLeft(3.7),
          registerBox(21, list([space(0.8), arrowLeft(18.8), point()])),
          arrowLeft(0)
        ]))
      ]),
      row([
        cell(center(text('RR',
            offset: const Offset(0.10, -0.04),
            box: true,
            boxOffset: const Offset(0, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(3.9),
          arrowRight(0),
          space(-1.9),
          BPCustomItem(1.9, (Canvas c, BPItemPainter p) {
            final double ym = rowHeightMM / 2;
            var path = Path()
              ..moveTo(1.9, ym)
              ..lineTo(0, ym)
              ..lineTo(0, rowHeightMM - 0.45)
              ..lineTo(27.3, rowHeightMM - 0.45)
              ..lineTo(27.3, ym);
            c.drawPath(path, p.thinLine);
          }),
          registerBox(
              24,
              list([
                space(1.3),
                point(),
                arrowRight(22.0),
              ])),
          space(1.4),
          point(),
          space(-1.4),
          arrowRight(3.7),
          space(0.2),
          carry()
        ]))
      ]),
      row([
        cell(center(text('\u200aRLC',
            offset: const Offset(-0.10, -0.04),
            box: true,
            boxOffset: const Offset(0, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(4),
          carry(),
          space(2.3),
          BPCustomItem(0, (Canvas c, BPItemPainter p) {
            final double ym = rowHeightMM / 2;
            var path = Path()
              ..moveTo(-4.3, ym)
              ..lineTo(-6.4, ym)
              ..lineTo(-6.4, rowHeightMM - 0.45)
              ..lineTo(25, rowHeightMM - 0.45)
              ..lineTo(25, ym)
              ..lineTo(23.4, ym);
            c.drawPath(path, p.thinLine);
          }),
          space(-2.3),
          arrowLeft(3.7),
          registerBox(21, list([space(0.8), arrowLeft(18.8), point()])),
          arrowLeft(0)
        ]))
      ]),
      row([
        cell(center(text('RRC',
            offset: const Offset(0.10, -0.04),
            box: true,
            boxOffset: const Offset(0, -0.08),
            scale: 0.88))),
        cell(text('x', align: bpCenter)),
        cell(text('--', align: bpCenter)),
        cellEB(list([
          space(3.9),
          arrowRight(0),
          space(-1.9),
          BPCustomItem(1.9, (Canvas c, BPItemPainter p) {
            final double ym = rowHeightMM / 2;
            var path = Path()
              ..moveTo(1.9, ym)
              ..lineTo(0, ym)
              ..lineTo(0, rowHeightMM - 0.45)
              ..lineTo(30.9, rowHeightMM - 0.45)
              ..lineTo(30.9, rowHeightMM - .9);
            c.drawPath(path, p.thinLine);
          }),
          registerBox(
              24,
              list([
                space(1.3),
                point(),
                arrowRight(22.0),
              ])),
          arrowRight(3.7),
          space(0.2),
          carry()
        ]))
      ]),
    ]);