X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_graph.h;h=24331a6c86f1e4a625d272b411225f1649b8b4d4;hp=7a85f340689ccd9173b9c30be2ab784a9d43fe79;hb=355e29120ccb981bab8779dab297d0302b7524ec;hpb=b4fd5d71cb3e4bdb9e12cc22f3d1373123c7e050 diff --git a/src/rrd_graph.h b/src/rrd_graph.h index 7a85f34..24331a6 100644 --- a/src/rrd_graph.h +++ b/src/rrd_graph.h @@ -7,7 +7,13 @@ /* 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 @@ -52,7 +58,7 @@ enum grc_en { GRC_CANVAS = 0, GRC_BACK, GRC_SHADEA, GRC_SHADEB, #define GRIDWIDTH 0.4 enum gf_en { GF_PRINT = 0, GF_GPRINT, GF_COMMENT, GF_HRULE, GF_VRULE, GF_LINE, - GF_AREA, GF_STACK, GF_TICK, GF_TEXTALIGN, + GF_AREA,GF_GRAD, GF_STACK, GF_TICK, GF_TEXTALIGN, GF_DEF, GF_CDEF, GF_VDEF, GF_SHIFT, GF_XPORT }; @@ -86,11 +92,16 @@ enum text_prop_en { 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_if_en { IF_PNG = 0, IF_SVG, IF_EPS, IF_PDF, + IF_XML=128, IF_CSV=129, IF_TSV=130, IF_SSV=131, IF_JSON=132, + IF_XMLENUM=133, IF_JSONTIME=134 +}; enum gfx_en { GFX_LINE = 0, GFX_AREA, GFX_TEXT }; enum gfx_h_align_en { GFX_H_NULL = 0, GFX_H_LEFT, GFX_H_RIGHT, GFX_H_CENTER }; enum gfx_v_align_en { GFX_V_NULL = 0, GFX_V_TOP, GFX_V_BOTTOM, GFX_V_CENTER }; +enum gfx_type_en {GTYPE_TIME=0,GTYPE_XY=1}; + /* cairo color components */ typedef struct gfx_color_t { double red; @@ -112,6 +123,7 @@ typedef struct vdef_t { double param; /* parameter for function, if applicable */ double val; /* resulting value */ time_t when; /* timestamp, if applicable */ + int never; /* boolean, indicate that when value mean never */ } vdef_t; typedef struct xlab_t { @@ -158,9 +170,11 @@ typedef struct graph_desc_t { char rrd[1024]; /* name of the rrd_file containing data */ char ds_nam[DS_NAM_SIZE]; /* data source name */ long ds; /* data source number */ + char daemon[256]; enum cf_en cf; /* consolidation function */ enum cf_en cf_reduce; /* consolidation function for reduce_data() */ - struct gfx_color_t col; /* graph color */ + struct gfx_color_t col, col2; /* graph color */ + double gradheight; char format[FMT_LEG_LEN + 5]; /* format for PRINT AND GPRINT */ char legend[FMT_LEG_LEN + 5]; /* legend */ int strftm; /* should the VDEF legend be formated with strftime */ @@ -199,8 +213,8 @@ typedef struct graph_desc_t { typedef struct image_desc_t { /* configuration of graph */ - char graphfile[MAXPATH]; /* filename for graphic */ + enum gfx_type_en graph_type; /* type of the graph */ 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 */ @@ -210,6 +224,7 @@ typedef struct image_desc_t { int draw_x_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 */ @@ -289,6 +304,8 @@ enum gf_en gf_conv( char *); enum gfx_if_en if_conv( char *); +enum gfx_type_en type_conv( + char *); enum tmt_en tmt_conv( char *); enum grc_en grc_conv( @@ -359,6 +376,17 @@ int lazy_check( image_desc_t *); int graph_paint( image_desc_t *); +int graph_paint_timestring( + image_desc_t *,int,int); +int graph_paint_xy( + image_desc_t *,int,int); +int rrd_graph_xport( + image_desc_t *); + +int graph_cairo_setup( + image_desc_t *); +int graph_cairo_finish( + image_desc_t *); int gdes_alloc( image_desc_t *); @@ -369,6 +397,10 @@ int scan_for_col( void rrd_graph_init( image_desc_t *); +void time_clean( + char *result, + char *format); + void rrd_graph_options( int, char **, @@ -437,6 +469,25 @@ void gfx_add_point( double x, double y); +/* create a rect that has a gradient from color1 to color2 in height pixels + * height > 0: + * gradient starts at top and goes down a fixed number of pixels (fire style) + * height < 0: + * gradient starts at bottom and goes up a fixed number of pixels (constant style) + * height == 0: + * gradient is stretched between two points + */ +void gfx_add_rect_fadey( + image_desc_t *im, + double x1,double y1, + double x2,double y2, + double py, + gfx_color_t color1, + gfx_color_t color2, + double height); + + + /* close current path so it ends at the same point as it started */ void gfx_close_path( image_desc_t *im); @@ -484,3 +535,5 @@ void grinfo_push( image_desc_t *im, char *key, rrd_info_type_t type, rrd_infoval_t value); + +