callPath method

dynamic callPath(
  1. double x,
  2. double y,
  3. double w,
  4. double h,
)

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;
}