X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Foutput%2Fspv-driver.c;h=a0cb023f3431a997551409a07647703cc95f40ec;hb=a4c6ba6fe1a82efa5968584b274bc096ade11d24;hp=fed7db75759c0affe80321f90ffcc74494eb9250;hpb=018a99b1d53ec1ab60e84dfe82c02ffb14232820;p=pspp diff --git a/src/output/spv-driver.c b/src/output/spv-driver.c index fed7db7575..a0cb023f34 100644 --- a/src/output/spv-driver.c +++ b/src/output/spv-driver.c @@ -22,7 +22,10 @@ #include "data/file-handle-def.h" #include "libpspp/cast.h" +#include "output/cairo-chart.h" +#include "output/chart-item.h" #include "output/group-item.h" +#include "output/image-item.h" #include "output/page-eject-item.h" #include "output/page-setup-item.h" #include "output/table-item.h" @@ -107,9 +110,25 @@ spv_submit (struct output_driver *driver, if (table_item->pt) spv_writer_put_table (spv->writer, table_item->pt); } + else if (is_chart_item (output_item)) + { + cairo_surface_t *surface = xr_draw_image_chart ( + to_chart_item (output_item), + &(struct cell_color) CELL_COLOR_BLACK, + &(struct cell_color) CELL_COLOR_WHITE); + if (cairo_surface_status (surface) == CAIRO_STATUS_SUCCESS) + spv_writer_put_image (spv->writer, surface); + cairo_surface_destroy (surface); + } + else if (is_image_item (output_item)) + spv_writer_put_image (spv->writer, to_image_item (output_item)->image); else if (is_text_item (output_item)) - spv_writer_put_text (spv->writer, to_text_item (output_item), - output_get_command_name ()); + { + char *command_id = output_get_command_name (); + spv_writer_put_text (spv->writer, to_text_item (output_item), + command_id); + free (command_id); + } else if (is_page_eject_item (output_item)) spv_writer_eject_page (spv->writer); else if (is_page_setup_item (output_item))