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

linechart: make chart width configurable

parent 0a7d4d71
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -46,6 +46,10 @@ char LineChart::kDefaultPointStyle[] = "none";
char LineChart::kDefaultPointSize[] = "3";
*/

LinechartSeries::LinechartSeries() :
    line_width(from_pt(2)),
    line_colour(Colour::fromRGB(0, 0, 0)) {}

LinechartConfig::LinechartConfig() :
    x_domain(PlotDomain::LINEAR),
    y_domain(PlotDomain::LINEAR),
@@ -77,6 +81,8 @@ ReturnCode drawSeries(
  }

  StrokeStyle style;
  style.line_width = series.line_width;
  style.colour = series.line_colour;
  strokePath(layer, path, style);

  return OK;
@@ -158,6 +164,7 @@ ReturnCode configureSeries(const plist::Property& prop, LinechartConfig* config)
  static const ParserDefinitions pdefs = {
    {"xs", std::bind(&parseDataSeries, std::placeholders::_1, &series.xs)},
    {"ys", std::bind(&parseDataSeries, std::placeholders::_1, &series.ys)},
    {"line-width", std::bind(&parseMeasureProp, std::placeholders::_1, &series.line_width)},
  };

  if (auto rc = parseAll(*prop.child, pdefs); !rc) {
+3 −0
Original line number Diff line number Diff line
@@ -41,8 +41,11 @@ namespace plotfx {
namespace linechart {

struct LinechartSeries {
  LinechartSeries();
  std::vector<double> xs;
  std::vector<double> ys;
  Measure line_width;
  Colour line_colour;
};

struct LinechartConfig {
+39.3 KiB (45 KiB)
Loading image diff...
+9.09 KiB
Loading image diff...
+12 −0
Original line number Diff line number Diff line
linechart {
  axis-top: manual;
  axis-right: manual;
  axis-bottom: manual;
  axis-left: manual;

  series {
    xs: 10   20   30   40   50   60    70   80  90  100;
    ys: 1.23 4.32 3.23 6.43 3.45 12.32 8.14 5.2 3.5 2.2;
    line-width: 8pt;
  }
}