X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=src%2Frrd_graph.h;h=18b49a3e8a45f489c3c626dafdabef2130a7ee65;hb=6e58e96d05b3300ff189d192d490da081d5fdffa;hp=2b1c05be921676622129bf4e400f919a8a1c2502;hpb=3a03e55068747637db4480d4f3a8ab8ef26c50b1;p=pkg-rrdtool.git diff --git a/src/rrd_graph.h b/src/rrd_graph.h index 2b1c05b..18b49a3 100644 --- a/src/rrd_graph.h +++ b/src/rrd_graph.h @@ -5,15 +5,31 @@ #define y1 cairo_y1 #define index cairo_index +/* this may configure __EXTENSIONS__ without which pango will fail to compile + so load this early */ +#if defined(_WIN32) && !defined(__CYGWIN__) && !defined(__CYGWIN32__) +#include "../win32/config.h" +#else +#ifdef HAVE_CONFIG_H +#include "../rrd_config.h" +#endif +#endif + #include #include #include #include + #include + #include "rrd_tool.h" #include "rrd_rpncalc.h" +#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 */ @@ -28,6 +44,9 @@ #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 */ + +#define gdes_fetch_key(x) sprintf_alloc("%s:%d:%d:%d:%d",x.rrd,x.cf,x.cf_reduce,x.start_orig,x.end_orig,x.step_orig) enum tmt_en { TMT_SECOND = 0, TMT_MINUTE, TMT_HOUR, TMT_DAY, TMT_WEEK, TMT_MONTH, TMT_YEAR @@ -60,15 +79,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 }; @@ -87,6 +111,7 @@ typedef struct gfx_color_t { typedef struct text_prop_t { double size; char font[1024]; + PangoFontDescription *font_desc; } text_prop_t; @@ -136,6 +161,7 @@ typedef struct graph_desc_t { enum gf_en gf; /* graphing function */ int stack; /* boolean */ int debug; /* boolean */ + int skipscale; /* boolean */ char vname[MAX_VNAME_LEN + 1]; /* name of the variable */ long vidx; /* gdes reference */ char rrd[1024]; /* name of the rrd_file containing data */ @@ -176,6 +202,7 @@ typedef struct graph_desc_t { 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; @@ -191,10 +218,16 @@ typedef struct image_desc_t { char title[210]; /* title for graph */ char watermark[110]; /* watermark for graph */ int draw_x_grid; /* no x-grid at all */ - int draw_y_grid; /* no x-grid at all */ + int draw_y_grid; /* no y-grid at all */ + unsigned int draw_3d_border; /* size of border in pixels, 0 for off */ + unsigned int dynamic_labels; /* pick the label shape according to the line drawn */ 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 ? */ @@ -210,10 +243,13 @@ typedef struct image_desc_t { char *imginfo; /* construct an