From e6d6ed89bc84009c5ea94d5e2c770833afb80f21 Mon Sep 17 00:00:00 2001 From: oetiker Date: Sat, 25 Jan 2003 22:50:32 +0000 Subject: [PATCH] added function (--no-minor) to turn off minor gridlines on graphs -- Travis Brown git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@173 a5681a0c-68f1-0310-ab6d-d61299d08faa --- CONTRIBUTORS | 1 + examples/4charts.pl.in | 2 +- src/rrd_graph.c | 53 ++++++++++++++++++++++++++++---------------------- src/rrd_graph.h | 1 + 4 files changed, 33 insertions(+), 24 deletions(-) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 7e6f1ac..7e1f291 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -55,6 +55,7 @@ Debugging and code contributions Sean Summers (RPM .spec) Christophe Van Ginneken (--no-legend) Wolfgang Schrimm xport function + Travis Brown Documentation diff --git a/examples/4charts.pl.in b/examples/4charts.pl.in index 67dfdad..9df0f7b 100755 --- a/examples/4charts.pl.in +++ b/examples/4charts.pl.in @@ -1,4 +1,4 @@ -#! /usr/sepp/bin/perl +#! /usr/bin/perl #makes things work when run without install use lib qw( ../bindings/perl-shared/blib/lib ../bindings/perl-shared/blib/arch ); diff --git a/src/rrd_graph.c b/src/rrd_graph.c index 38956d7..a037563 100644 --- a/src/rrd_graph.c +++ b/src/rrd_graph.c @@ -1591,7 +1591,7 @@ int draw_horizontal_grid(image_desc_t *im) MGRIDWIDTH, im->graph_col[GRC_MGRID], im->grid_dash_on, im->grid_dash_off); - } else { + } else if (!(im->extra_flags & NOMINOR)) { gfx_new_dashed_line ( im->canvas, X0-1,Y0, X1+1,Y0, @@ -1721,27 +1721,30 @@ vertical_grid( /* paint the minor grid */ - for(ti = find_first_time(im->start, - im->xlab_user.gridtm, - im->xlab_user.gridst), - timajor = find_first_time(im->start, - im->xlab_user.mgridtm, - im->xlab_user.mgridst); - ti < im->end; - ti = find_next_time(ti,im->xlab_user.gridtm,im->xlab_user.gridst) - ){ - /* are we inside the graph ? */ - if (ti < im->start || ti > im->end) continue; - while (timajor < ti) { - timajor = find_next_time(timajor, - im->xlab_user.mgridtm, im->xlab_user.mgridst); - } - if (ti == timajor) continue; /* skip as falls on major grid line */ - X0 = xtr(im,ti); - gfx_new_dashed_line(im->canvas,X0,Y0+1, X0,Y1-1,GRIDWIDTH, - im->graph_col[GRC_GRID], - im->grid_dash_on, im->grid_dash_off); - + if (!(im->extra_flags & NOMINOR)) + { + for(ti = find_first_time(im->start, + im->xlab_user.gridtm, + im->xlab_user.gridst), + timajor = find_first_time(im->start, + im->xlab_user.mgridtm, + im->xlab_user.mgridst); + ti < im->end; + ti = find_next_time(ti,im->xlab_user.gridtm,im->xlab_user.gridst) + ){ + /* are we inside the graph ? */ + if (ti < im->start || ti > im->end) continue; + while (timajor < ti) { + timajor = find_next_time(timajor, + im->xlab_user.mgridtm, im->xlab_user.mgridst); + } + if (ti == timajor) continue; /* skip as falls on major grid line */ + X0 = xtr(im,ti); + gfx_new_dashed_line(im->canvas,X0,Y0+1, X0,Y1-1,GRIDWIDTH, + im->graph_col[GRC_GRID], + im->grid_dash_on, im->grid_dash_off); + + } } /* paint the major grid */ @@ -2708,6 +2711,7 @@ rrd_graph_options(int argc, char *argv[],image_desc_t *im) {"zoom", required_argument, 0, 'm'}, {"no-legend", no_argument, 0, 'g'}, {"alt-y-grid", no_argument, 0, 'Y'}, + {"no-minor", no_argument, 0, 'I'}, {"alt-autoscale", no_argument, 0, 'A'}, {"alt-autoscale-max", no_argument, 0, 'M'}, {"units-exponent",required_argument, 0, 'X'}, @@ -2719,13 +2723,16 @@ rrd_graph_options(int argc, char *argv[],image_desc_t *im) opt = getopt_long(argc, argv, - "s:e:x:y:v:w:h:iu:l:rb:oc:n:m:t:f:a:zgYAMX:S:N", + "s:e:x:y:v:w:h:iu:l:rb:oc:n:m:t:f:a:I:zgYAMX:S:N", long_options, &option_index); if (opt == EOF) break; switch(opt) { + case 'I': + im->extra_flags |= NOMINOR; + break; case 'Y': im->extra_flags |= ALTYGRID; break; diff --git a/src/rrd_graph.h b/src/rrd_graph.h index 0f9079a..cf99c8e 100644 --- a/src/rrd_graph.h +++ b/src/rrd_graph.h @@ -12,6 +12,7 @@ #define ALTAUTOSCALE 0x02 /* use alternative algorithm to find lower and upper bounds */ #define ALTAUTOSCALE_MAX 0x04 /* use alternative algorithm to find upper bounds */ #define NOLEGEND 0x08 /* use no legend */ +#define NOMINOR 0x20 /* Turn off minor gridlines */ enum tmt_en {TMT_SECOND=0,TMT_MINUTE,TMT_HOUR,TMT_DAY, -- 2.11.0