drawText method

void drawText(
  1. Canvas canvas
)

Implementation

void drawText(Canvas canvas) {
  double value;
  String str;
  for (int j = 0; j < mLineCount; j++) {
    value = mMaxVolume! - mMultiple! * j;
    str = NumberUtil.formatCompact(value, baseUnit);
    var tp = getTextPainter(str);
    tp.layout();
    tp.paint(
      canvas,
      Offset(mWidth - tp.width, mDrawHeight / mLineCount * j + tp.height / 2),
    );
  }

  var startText =
      NumberUtil.formatFixed(mBuyData!.first.price, quoteUnit) ?? '';
  TextPainter startTP = getTextPainter(startText);
  startTP.layout();
  startTP.paint(canvas, Offset(0, getBottomTextY(startTP.height)));

  double centerPrice = (mBuyData!.last.price + mSellData!.first.price) / 2;

  var center = NumberUtil.formatFixed(centerPrice, quoteUnit) ?? '';
  TextPainter centerTP = getTextPainter(center);
  centerTP.layout();
  centerTP.paint(
    canvas,
    Offset(mDrawWidth - centerTP.width / 2, getBottomTextY(centerTP.height)),
  );

  var endText =
      NumberUtil.formatFixed(mSellData!.last.price, quoteUnit) ?? '';
  TextPainter endTP = getTextPainter(endText);
  endTP.layout();
  endTP.paint(
    canvas,
    Offset(mWidth - endTP.width, getBottomTextY(endTP.height)),
  );

  var leftHalfText = NumberUtil.formatFixed(
          (mBuyData!.first.price + centerPrice) / 2, quoteUnit) ??
      '';
  TextPainter leftHalfTP = getTextPainter(leftHalfText);
  leftHalfTP.layout();
  leftHalfTP.paint(
    canvas,
    Offset((mDrawWidth - leftHalfTP.width) / 2,
        getBottomTextY(leftHalfTP.height)),
  );

  var rightHalfText = NumberUtil.formatFixed(
          (mSellData!.last.price + centerPrice) / 2, quoteUnit) ??
      '';
  TextPainter rightHalfTP = getTextPainter(rightHalfText);
  rightHalfTP.layout();
  rightHalfTP.paint(
    canvas,
    Offset((mDrawWidth + mWidth - rightHalfTP.width) / 2,
        getBottomTextY(rightHalfTP.height)),
  );

  if (isLongPress == true) {
    if (pressOffset!.dx <= mDrawWidth) {
      int index = _indexOfTranslateX(
        pressOffset!.dx,
        0,
        mBuyData!.length - 1,
        getBuyX,
      );
      drawLeftSelectView(canvas, index); // buy

      int indexRight = mBuyData!.length - index - 1;
      if (indexRight < mSellData!.length) {
        drawRightSelectView(canvas, indexRight);
      }
    } else {
      int index = _indexOfTranslateX(
        pressOffset!.dx,
        0,
        mSellData!.length - 1,
        getSellX,
      );
      drawRightSelectView(canvas, index); // sell
      int indexLeft = mBuyData!.length - index - 1;
      if (indexLeft >= 0 && indexLeft < mBuyData!.length) {
        drawLeftSelectView(canvas, indexLeft);
      }
    }
  }
}