X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_graph.h;h=0593d4a931207c1351c3d235c121d160c99a298c;hp=de968a70b44db05fad224d91f24180d3f8e4b342;hb=afdc1dabafc566180b57ec64c9c5504c2c8e2775;hpb=65878d5b2342b37186d9557f314e8a37dbc86de2 diff --git a/src/rrd_graph.h b/src/rrd_graph.h index de968a7..0593d4a 100644 --- a/src/rrd_graph.h +++ b/src/rrd_graph.h @@ -11,11 +11,14 @@ #include #include + #include "rrd_tool.h" #include "rrd_rpncalc.h" -#define MAX_VNAME_LEN 255 -#define DEF_NAM_FMT "%255[-_A-Za-z0-9]" +#ifdef WIN32 +# include +# define MAXPATH MAX_PATH +#endif #define ALTYGRID 0x01 /* use alternative y grid algorithm */ #define ALTAUTOSCALE 0x02 /* use alternative algorithm to find lower and upper bounds */ @@ -30,6 +33,7 @@ #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 FULL_SIZE_MODE 0x200 /* -width and -height indicate the total size of the image */ +#define NO_RRDTOOL_TAG 0x400 /* disable the rrdtool tag */ enum tmt_en { TMT_SECOND = 0, TMT_MINUTE, TMT_HOUR, TMT_DAY, TMT_WEEK, TMT_MONTH, TMT_YEAR @@ -54,6 +58,7 @@ enum vdef_op_en { VDEF_MAXIMUM = 0 /* like the MAX in (G)PRINT */ , VDEF_MINIMUM /* like the MIN in (G)PRINT */ , VDEF_AVERAGE /* like the AVERAGE in (G)PRINT */ + , VDEF_STDEV /* the standard deviation */ , VDEF_PERCENT /* Nth percentile */ , VDEF_TOTAL /* average multiplied by time */ , VDEF_FIRST /* first non-unknown value and time */ @@ -61,15 +66,20 @@ enum vdef_op_en { , VDEF_LSLSLOPE /* least squares line slope */ , VDEF_LSLINT /* least squares line y_intercept */ , VDEF_LSLCORREL /* least squares line correlation coefficient */ + , VDEF_PERCENTNAN /* Nth percentile ignoring NAN*/ }; -enum text_prop_en { TEXT_PROP_DEFAULT = 0, /* default settings */ +enum text_prop_en { + TEXT_PROP_DEFAULT = 0, /* default settings */ TEXT_PROP_TITLE, /* properties for the title */ TEXT_PROP_AXIS, /* for the numbers next to the axis */ TEXT_PROP_UNIT, /* for the vertical unit description */ - TEXT_PROP_LEGEND, /* fot the legend below the graph */ + TEXT_PROP_LEGEND, /* for the legend below the graph */ + TEXT_PROP_WATERMARK, /* for the little text to the side of the graph */ TEXT_PROP_LAST }; +enum legend_pos{ NORTH = 0, WEST, SOUTH, EAST }; +enum legend_direction { TOP_DOWN = 0, BOTTOM_UP }; enum gfx_if_en { IF_PNG = 0, IF_SVG, IF_EPS, IF_PDF }; enum gfx_en { GFX_LINE = 0, GFX_AREA, GFX_TEXT }; @@ -88,6 +98,7 @@ typedef struct gfx_color_t { typedef struct text_prop_t { double size; char font[1024]; + PangoFontDescription *font_desc; } text_prop_t; @@ -170,6 +181,13 @@ typedef struct graph_desc_t { rrd_value_t *data; /* the raw data drawn from the rrd */ rrd_value_t *p_data; /* processed data, xsize elments */ double linewidth; /* linewideth */ + + /* dashed line stuff */ + int dash; /* boolean, draw dashed line? */ + double *p_dashes; /* pointer do dash array which keeps the lengths of dashes */ + int ndash; /* number of dash segments */ + double offset; /* dash offset along the line */ + enum txa_en txtalign; /* change default alignment strategy for text */ } graph_desc_t; @@ -178,7 +196,6 @@ typedef struct image_desc_t { /* configuration of graph */ char graphfile[MAXPATH]; /* filename for graphic */ - FILE *graphhandle; /* FILE to use if filename is "-" */ long xsize, ysize; /* graph area size in pixels */ struct gfx_color_t graph_col[__GRC_END__]; /* real colors for the graph */ text_prop_t text_prop[TEXT_PROP_LAST]; /* text properties */ @@ -190,6 +207,10 @@ typedef struct image_desc_t { double grid_dash_on, grid_dash_off; 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 ? */ @@ -205,16 +226,27 @@ typedef struct image_desc_t { char *imginfo; /* construct an