Code

windows portability fixes by guenter knauf[M f3
[rrdtool-all.git] / program / src / rrd_graph.h
index 6ed66d2f4327a9e89e1ede3b63fc87e46117b9f2..700ded09774139bfac06e6c8c636719b35b4c81e 100644 (file)
@@ -1,3 +1,9 @@
+/*****************************************************************************
+ * RRDtool 1.2.30  Copyright by Tobi Oetiker, 1997-2009
+ *****************************************************************************
+ * rrd_graph.h  RRD Common Graphic header
+ *****************************************************************************/
+
 #ifndef _RRD_GRAPH_H
 #define _RRD_GRAPH_H
 
 #include "rrd_rpncalc.h"
 #include "rrd_gfx.h"
 
+/* for basename */
+#ifdef HAVE_LIBGEN_H
+#include <libgen.h>
+#else
+#include "plbasename.h"
+#endif
+
 #define MAX_VNAME_LEN 255
 #define DEF_NAM_FMT "%255[-_A-Za-z0-9]"
 
 #define ALTYGRID        0x01   /* use alternative y grid algorithm */
 #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          0x10    /* Turn off minor gridlines */
-#define ONLY_GRAPH       0x20   /* use only graph */
-#define FORCE_RULES_LEGEND 0x40        /* force printing of HRULE and VRULE legend */
+#define ALTAUTOSCALE_MIN 0x04  /* use alternative algorithm to find lower bounds */
+#define ALTAUTOSCALE_MAX 0x08  /* use alternative algorithm to find upper bounds */
+#define NOLEGEND        0x10   /* use no legend */
+#define NOMINOR          0x20    /* Turn off minor gridlines */
+#define ONLY_GRAPH       0x40   /* use only graph */
+#define FORCE_RULES_LEGEND 0x80        /* force printing of HRULE and VRULE legend */
 
-#define FORCE_UNITS 0x80        /* mask for all FORCE_UNITS_* flags */
-#define FORCE_UNITS_SI 0x80     /* force use of SI units in Y axis (no effect in linear graph, SI instead of E in log graph) */
+#define FORCE_UNITS 0x100        /* mask for all FORCE_UNITS_* flags */
+#define FORCE_UNITS_SI 0x100     /* force use of SI units in Y axis (no effect in linear graph, SI instead of E in log graph) */
+#define NO_RRDTOOL_TAG 0x200    /* disable the rrdtool tag */
 
 enum tmt_en {TMT_SECOND=0,TMT_MINUTE,TMT_HOUR,TMT_DAY,
             TMT_WEEK,TMT_MONTH,TMT_YEAR};
@@ -164,6 +179,11 @@ typedef struct image_desc_t {
     xlab_t         xlab_user;      /* user defined labeling for xaxis */
     char           xlab_form[210]; /* format for the label on the xaxis */
 
+    double         second_axis_scale; /* relative to the first axis (0 to disable) */
+    double         second_axis_shift; /* how much is it shifted vs the first axis */
+    char           second_axis_legend[210]; /* label to put on the seond axis */
+    char           second_axis_format[210]; /* format for the numbers on the scond axis */
+
     double         ygridstep;      /* user defined step for y grid */
     int            ylabfact;       /* every how many y grid shall a label be written ? */
     double         tabwidth;       /* tabwdith */
@@ -191,11 +211,13 @@ typedef struct image_desc_t {
 #endif
     long           ximg,yimg;      /* total size of the image */
     double         magfact;        /* numerical magnitude*/
-    long         base;            /* 1000 or 1024 depending on what we graph */
+    long         base;             /* 1000 or 1024 depending on what we graph */
     char           symbol;         /* magnitude symbol for y-axis */
     float          viewfactor;     /* how should the numbers on the y-axis be scaled for viewing ? */
-    int            unitsexponent;    /* 10*exponent for units on y-asis */
+    int            unitsexponent;  /* 10*exponent for units on y-asis */
     int            unitslength;    /* width of the yaxis labels */
+    int            forceleftspace; /* do not kill the space to the left of the y-axis if there is no grid */
+
     int            extra_flags;    /* flags for boolean options */
     /* data elements */
 
@@ -246,7 +268,6 @@ int rrd_graph(int, char **, char ***, int *, int *, FILE *, double *, double *);
 void rrd_graph_init(image_desc_t *);
 void rrd_graph_options(int, char **, image_desc_t *);
 void rrd_graph_script(int, char **, image_desc_t *, int);
-int rrd_graph_check_vname(image_desc_t *, char *, char *);
 int rrd_graph_color(image_desc_t *, char *, char *, int);
 int bad_format(char *);
 int vdef_parse(struct graph_desc_t *,const char *const);