Commit cecffaf6 authored by Paul Asmuth's avatar Paul Asmuth
Browse files

update 'axis' element to new box layout

parent d9834633
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -5,14 +5,6 @@ scale-y-min: 0;
scale-y-max: 30;
scale-x-padding: 0.6;

bars {
  xs: csv(tests/testdata/city_temperatures_london.csv, month);
  ys: csv(tests/testdata/city_temperatures_london.csv, temperature);
  labels: csv(tests/testdata/city_temperatures_london.csv, temperature_str);
  size: 2.6em;
  color: #4572a7;
}

axis {
  position: left;
  layout: linear(5);
@@ -34,3 +26,11 @@ axis {
  layout: linear(1, align 1);
  labels: csv(tests/testdata/city_temperatures_london.csv, month_name);
}

bars {
  xs: csv(tests/testdata/city_temperatures_london.csv, month);
  ys: csv(tests/testdata/city_temperatures_london.csv, temperature);
  labels: csv(tests/testdata/city_temperatures_london.csv, temperature_str);
  size: 2.6em;
  color: #4572a7;
}
+27 −14
Original line number Diff line number Diff line
@@ -415,40 +415,38 @@ ReturnCode draw(
    const AxisDefinition& axis,
    const LayoutInfo& layout,
    Layer* frame) {
  const auto& clip = layout.content_box;

  Status rc;
  switch (axis.position) {
    case AxisPosition::LEFT:
      rc = renderAxisVertical(
          axis,
          layout.content_box.x,
          layout.content_box.y,
          layout.content_box.y + layout.content_box.h,
          layout.content_box.x + layout.content_box.w,
          layout.inner_box.y,
          layout.inner_box.y + layout.inner_box.h,
          frame);
      break;
    case AxisPosition::RIGHT:
      rc = renderAxisVertical(
          axis,
          layout.content_box.x + layout.content_box.w,
          layout.content_box.y,
          layout.content_box.y + layout.content_box.h,
          layout.content_box.x,
          layout.inner_box.y,
          layout.inner_box.y + layout.inner_box.h,
          frame);
      break;
    case AxisPosition::TOP:
      rc = renderAxisHorizontal(
          axis,
          layout.content_box.y,
          layout.content_box.x,
          layout.content_box.x + layout.content_box.w,
          layout.content_box.y + layout.content_box.h,
          layout.inner_box.x,
          layout.inner_box.x + layout.inner_box.w,
          frame);
      break;
    case AxisPosition::BOTTOM:
      rc = renderAxisHorizontal(
          axis,
          layout.content_box.y + layout.content_box.h,
          layout.content_box.x,
          layout.content_box.x + layout.content_box.w,
          layout.content_box.y,
          layout.inner_box.x,
          layout.inner_box.x + layout.inner_box.w,
          frame);
      break;
    case AxisPosition::CENTER_HORIZ:
@@ -517,6 +515,21 @@ ReturnCode configure(
      break;
  };

  switch (config->position) {
    case AxisPosition::TOP:
      config->layout.position = Position::TOP;
      break;
    case AxisPosition::BOTTOM:
      config->layout.position = Position::BOTTOM;
      break;
    case AxisPosition::LEFT:
      config->layout.position = Position::LEFT;
      break;
    case AxisPosition::RIGHT:
      config->layout.position = Position::RIGHT;
      break;
  };

  {
    ParserDefinitions pdefs = {
      {"format", bind(&confgure_format, _1, &config->label_formatter)},