callPath method
Implementation
callPath(double x, double y, double w, double h) {
// print('尺寸:$x $y $w $h $kElement');
//清空数据
drawPath = {};
//计算背景绘制
var bgLinePath = [];
if (chartData.kDataL == 0) {
//只有背景线
} else {
callKyAndSc();
var ksize = kElement['k'];
//背景线 目前只在币对或周期切换的时候才绘制
// if (bgLineRepaintFlag != klineState.bgLineRepaintFlag) {
// bgLineRepaintFlag = klineState.bgLineRepaintFlag;
//整体高度-时间轴高度
bgLinePath = bgLine(x, y, w, h - kXh);
drawPath['bgLine'] = bgLinePath;
var ftbg = ftBg(x, y, w, h - kXh);
drawPath['ftbg'] = ftbg;
// }
// //和tick无关的,只有拖拽缩放才需要重绘的组件
// if (candleRepaintFlag != klineState.candleRepaintFlag) {
// candleRepaintFlag = klineState.candleRepaintFlag;
//时间轴
var timePath = timeAxis(kElement['x']!['x'], kElement['x']!['y'],
kElement['x']!['w'], kElement['x']!['h']);
drawPath['timePath'] = timePath;
//y轴
var kYPath = kYAxis(kElement['y']!['x'], kElement['y']!['y'],
kElement['y']!['w'], kElement['y']!['h']);
drawPath['kYPath'] = kYPath;
//k线
var kPath = candlePath(ksize!['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['kPath'] = kPath;
//前往日期
if (isShowGoToTime) {
var gotoTimePath =
goToTimePath(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['gotoTimePath'] = gotoTimePath;
}
//主图指标
var ztZb = ztZbPath(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['ztZb'] = ztZb;
//附图指标
var ftzb = allFtZbPath();
drawPath['ftzb'] = ftzb;
//最大最小值
var kMm = kMMPath(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['kMm'] = kMm;
//历史标记
var hisMark =
historyMarksTrade(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['hisMark'] = hisMark;
//kol标记
var kolMark = kolMarksIcon(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['kolMark'] = kolMark;
//图标 精选
var icons = marketIcon(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['icons'] = icons;
//画线
if (isShowAllLine) {
var kdraw = kDraw(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['kdraw'] = kdraw;
}
// }
// //价格图 和tick相关的
// if (priceRepaintFlag != klineState.priceRepaintFlag) {
// priceRepaintFlag = klineState.priceRepaintFlag;
// //最新价
var kctip = kCtipPath(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['kctip'] = kctip;
//指标提示
var indicatorTip = allZbTip();
drawPath['indicatorTip'] = indicatorTip;
//交易线
var trade = kTrade(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['trade'] = trade;
//交易线编辑
var tradeEdit =
kTradeEdit(ksize['x'], ksize['y'], ksize['w'], ksize['h']);
drawPath['tradeEdit'] = tradeEdit;
// //十字线 和交互有关的
// if (crossRepaintFlag != klineState.crossRepaintFlag) {
// crossRepaintFlag = klineState.crossRepaintFlag;
// //十字线
if (isShowCross) {
var cross = kCrossPath(kElement['cross']!['x'], kElement['cross']!['y'],
kElement['cross']!['w'], kElement['cross']!['h']);
drawPath['cross'] = cross;
}
// }
//tip
var tipPath = tip(kElement['cross']!['x'], kElement['cross']!['y'],
kElement['cross']!['w'], kElement['cross']!['h']);
drawPath['tip'] = tipPath;
}
return drawPath;
}