X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Frrd_graph.h;h=fa0915289c7df6ec1422f230f786d36e176b9320;hb=252efcd3f319d99dbf700aa4d53da8945dc8725f;hp=cc36c256eb4a3526096ae9c541b52a6dbed56d28;hpb=22424d6b1c6a14c1d919482f991427c7e43853a8;p=rrdtool.git diff --git a/src/rrd_graph.h b/src/rrd_graph.h index cc36c25..fa09152 100644 --- a/src/rrd_graph.h +++ b/src/rrd_graph.h @@ -5,16 +5,17 @@ #define y1 cairo_y1 #define index cairo_index +/* this may configure __EXTENSIONS__ without which pango will fail to compile + so load this early */ +#include "../rrd_config.h" + #include #include #include #include + #include -#ifdef HAVE_LIBGEN_H -/* for basename */ -# include -#endif #include "rrd_tool.h" #include "rrd_rpncalc.h" @@ -51,7 +52,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 }; @@ -82,6 +83,8 @@ enum text_prop_en { 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 }; @@ -155,9 +158,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 */ @@ -205,7 +210,9 @@ 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 */ @@ -233,6 +240,8 @@ typedef struct image_desc_t { reasonable probablility that the existing one is out of date */ int slopemode; /* connect the dots of the curve directly, not using a stair */ + enum legend_pos legendposition; /* the position of the legend: north, west, south or east */ + enum legend_direction legenddirection; /* The direction of the legend topdown or bottomup */ int logarithmic; /* scale the yaxis logarithmic */ double force_scale_min; /* Force a scale--min */ double force_scale_max; /* Force a scale--max */ @@ -240,7 +249,12 @@ typedef struct image_desc_t { /* status information */ int with_markup; long xorigin, yorigin; /* where is (0,0) of the graph */ + long xOriginTitle, yOriginTitle; /* where is the origin of the title */ + long xOriginLegendY, yOriginLegendY; /* where is the origin of the y legend */ + long xOriginLegendY2, yOriginLegendY2; /* where is the origin of the second y legend */ + long xOriginLegend, yOriginLegend; /* where is the origin of the legend */ long ximg, yimg; /* total size of the image */ + long legendwidth, legendheight; /* the calculated height and width of the legend */ size_t rendered_image_size; double zoom; double magfact; /* numerical magnitude */ @@ -331,7 +345,7 @@ int print_calc( image_desc_t *); int leg_place( image_desc_t *, - int *); + int); int calc_horizontal_grid( image_desc_t *); int draw_horizontal_grid( @@ -426,6 +440,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);