From f3a3176b359554ffe5e67bfcd5e63dbb1aa830b2 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Thu, 12 Apr 2012 11:16:17 +0200 Subject: [PATCH] graph: add shading for line graphs Pretty simple, just a continually ligher shade of gray off the top X border, and rightmost Y border. Signed-off-by: Jens Axboe --- graph.c | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/graph.c b/graph.c index 81b1524d..040e344f 100644 --- a/graph.c +++ b/graph.c @@ -267,17 +267,36 @@ static void draw_bars(struct graph *bg, cairo_t *cr, struct graph_label *lb, } } -static void graph_draw_common(struct graph *g, cairo_t *cr, - double *x1, double *y1, double *x2, double *y2) +static void graph_draw_common(struct graph *g, cairo_t *cr, double *x1, + double *y1, double *x2, double *y2) { - cairo_set_source_rgb(cr, 0, 0, 0); - cairo_set_line_width(cr, 0.8); + const double shade_col[3][3] = { { 0.55, 0.54, 0.54 }, + { 0.80, 0.78, 0.78 }, + { 0.93, 0.91, 0.91 } }; + int i; *x1 = 0.10 * g->xdim; *x2 = 0.95 * g->xdim; *y1 = 0.10 * g->ydim; *y2 = 0.90 * g->ydim; + /* + * Add shade + */ + cairo_set_line_width(cr, 1.0); + for (i = 0; i < 3; i++) { + float offset = i + 1.0; + + cairo_set_source_rgb(cr, shade_col[i][0], shade_col[i][1], shade_col[i][2]); + cairo_move_to(cr, offset + *x1, *y1 - offset); + cairo_line_to(cr, *x2 + offset, *y1 - offset); + cairo_line_to(cr, *x2 + offset, *y2 - offset); + cairo_stroke(cr); + } + + cairo_set_source_rgb(cr, 0, 0, 0); + cairo_set_line_width(cr, 1.2); + cairo_move_to(cr, *x1, *y1); cairo_line_to(cr, *x1, *y2); cairo_line_to(cr, *x2, *y2); -- 2.25.1