drawText method
void
drawText(
- 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);
}
}
}
}