render method

  1. @override
void render()
override

Implementation

@override
void render() {
  var ctx = startRender();
  legendWidth = 0;

  ctx.font = legendFont;
  items.map((item) => ctx.measureText(legendLabel(item)).width).forEach((a) {
    if (a > legendWidth) {
      legendWidth = a.ceil();
    }
  });
  legendWidth += 30;

  double start = 0;
  for (var i = 0; i < items.length; i++) {
    if (!items[i].isActive) {
      drawSegment(ctx, i, items[i], start);
    }
    start += items[i].weight;
  }
  //draw active items over inactive
  start = 0;
  for (var i = 0; i < items.length; i++) {
    if (items[i].isActive) {
      drawSegment(ctx, i, items[i], start);
    }
    start += items[i].weight;
  }
}