Commit 8d9bf107 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

linechart: add axis_draw_all helper method

parent 9996b3f2
Loading
Loading
Loading
Loading
+11 −33
Original line number Diff line number Diff line
@@ -135,42 +135,20 @@ ReturnCode draw(
      to_unit(layer->measures, config.margins[3]).value);

  // render axes
  AxisDefinition axis_top;
  if (auto rc = axis_expand_auto(config.axis_top, AxisPosition::TOP, domain_x, &axis_top); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_top, border_box, AxisPosition::TOP, layer); rc) {
    return rc;
  }

  AxisDefinition axis_right;
  if (auto rc = axis_expand_auto(config.axis_right, AxisPosition::RIGHT, domain_y, &axis_right); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_right, border_box, AxisPosition::RIGHT, layer); rc) {
    return rc;
  }

  AxisDefinition axis_bottom;
  if (auto rc = axis_expand_auto(config.axis_bottom, AxisPosition::BOTTOM, domain_x, &axis_bottom); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_bottom, border_box, AxisPosition::BOTTOM, layer); rc) {
    return rc;
  }

  AxisDefinition axis_left;
  if (auto rc = axis_expand_auto(config.axis_left, AxisPosition::LEFT, domain_y, &axis_left); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_left, border_box, AxisPosition::LEFT, layer); rc) {
  if (auto rc = axis_draw_all(
        border_box,
        domain_x,
        domain_y,
        config.axis_top,
        config.axis_right,
        config.axis_bottom,
        config.axis_left,
        layer);
        !rc) {
    return rc;
  }

  // render series
  for (const auto& s : config.series) {
    if (auto rc = drawSeries(s, domain_x, domain_y, border_box, layer); !rc) {
      return rc;
+48 −0
Original line number Diff line number Diff line
@@ -297,5 +297,53 @@ ReturnCode axis_expand_auto(
  return axis_expand_linear_geom(domain, out); // FIXME
}

ReturnCode axis_draw_all(
    const Rectangle& clip,
    const DomainConfig& domain_x,
    const DomainConfig& domain_y,
    const AxisDefinition& axis_top_,
    const AxisDefinition& axis_right_,
    const AxisDefinition& axis_bottom_,
    const AxisDefinition& axis_left_,
    Layer* layer) {
  AxisDefinition axis_top;
  if (auto rc = axis_expand_auto(axis_top_, AxisPosition::TOP, domain_x, &axis_top); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_top, clip, AxisPosition::TOP, layer); rc) {
    return rc;
  }

  AxisDefinition axis_right;
  if (auto rc = axis_expand_auto(axis_right_, AxisPosition::RIGHT, domain_y, &axis_right); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_right, clip, AxisPosition::RIGHT, layer); rc) {
    return rc;
  }

  AxisDefinition axis_bottom;
  if (auto rc = axis_expand_auto(axis_bottom_, AxisPosition::BOTTOM, domain_x, &axis_bottom); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_bottom, clip, AxisPosition::BOTTOM, layer); rc) {
    return rc;
  }

  AxisDefinition axis_left;
  if (auto rc = axis_expand_auto(axis_left_, AxisPosition::LEFT, domain_y, &axis_left); !rc) {
    return rc;
  }

  if (auto rc = renderAxis(axis_left, clip, AxisPosition::LEFT, layer); rc) {
    return rc;
  }

  return OK;
}

} // namespace plotfx
+10 −0
Original line number Diff line number Diff line
@@ -98,5 +98,15 @@ ReturnCode axis_expand_auto(
    const DomainConfig& domain,
    AxisDefinition* out);

ReturnCode axis_draw_all(
    const Rectangle& clip,
    const DomainConfig& domain_x,
    const DomainConfig& domain_y,
    const AxisDefinition& axis_top,
    const AxisDefinition& axis_right,
    const AxisDefinition& axis_bottom,
    const AxisDefinition& axis_left,
    Layer* layer);

} // namespace plotfx