#include "chartdir.h"

void createChart(int img, const char *filename)
{
    // The data for the chart
    double data[] = {85, 156, 179.5, 211, 123};
    const char *labels[] = {"Mon", "Tue", "Wed", "Thu", "Fri"};

    // Create a XYChart object of size 270 x 270 pixels
    XYChart *c = new XYChart(270, 270);

    // Set the plot area at (40, 32) and of size 200 x 200 pixels
    PlotArea *plotarea = c->setPlotArea(40, 32, 200, 200);

    // Set the background style based on the input parameter
    if (img == 0) {
        // Has wallpaper image
        c->setWallpaper("tile.gif");
    } else if (img == 1) {
        // Use a background image as the plot area background
        plotarea->setBackground("bg.png");
    } else if (img == 2) {
        // Use white (0xffffff) and grey (0xe0e0e0) as two alternate plotarea
        // background colors
        plotarea->setBackground(0xffffff, 0xe0e0e0);
    } else {
        // Use a dark background palette
        c->setColors(Chart::whiteOnBlackPalette);
    }

    // Set the labels on the x axis
    c->xAxis()->setLabels(StringArray(labels, sizeof(labels)/sizeof(labels[0])));

    // Add a color bar layer using the given data. Use a 1 pixel 3D border for the
    // bars.
    c->addBarLayer(DoubleArray(data, sizeof(data)/sizeof(data[0])), IntArray(0, 0)
        )->setBorderColor(-1, 1);

    // Output the chart
    c->makeChart(filename);

    //free up resources
    delete c;
}

int main(int argc, char *argv[])
{
    createChart(0, "background0.png");
    createChart(1, "background1.png");
    createChart(2, "background2.png");
    createChart(3, "background3.png");
    return 0;
}

