positionCanvasToDrawContent method

void positionCanvasToDrawContent(
  1. Canvas canvas,
  2. Offset paintingOffset,
  3. Size contentSize
)

Translates and rotates the canvas such that the top-left corner of the content is drawn at the desired location on the screen, and that content is angled 45 degrees in the appropriate direction for this banner position.

Implementation

void positionCanvasToDrawContent(
    Canvas canvas, Offset paintingOffset, Size contentSize) {
  final contentOrigin = _calculateContentOrigin(paintingOffset, contentSize);
  switch (_corner) {
    case _Corner.topLeft:
      canvas
        ..translate(contentOrigin.dx, contentOrigin.dy)
        ..rotate(-pi / 4);
      break;
    case _Corner.topRight:
      canvas
        ..translate(contentOrigin.dx, contentOrigin.dy)
        ..rotate(pi / 4);
      break;
    case _Corner.bottomLeft:
      canvas
        ..translate(contentOrigin.dx, contentOrigin.dy)
        ..rotate(pi / 4);
      break;
    case _Corner.bottomRight:
      canvas
        ..translate(contentOrigin.dx, contentOrigin.dy)
        ..rotate(-pi / 4);
      break;
  }
}