#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 <windows.h>
+# 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 */
, VDEF_LSLINT /* least squares line y_intercept */
, VDEF_LSLCORREL /* least squares line correlation coefficient */
};
-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
};
typedef struct text_prop_t {
double size;
char font[1024];
+ PangoFontDescription *font_desc;
} text_prop_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;
/* 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 */
char *imginfo; /* construct an <IMG ... tag and return
as first retval */
enum gfx_if_en imgformat; /* image format */
+ char *daemon_addr; /* rrdcached connection string */
int lazy; /* only update the image if there is
reasonable probablility that the
existing one is out of date */
int slopemode; /* connect the dots of the curve directly, not using a stair */
int logarithmic; /* scale the yaxis logarithmic */
+ double force_scale_min; /* Force a scale--min */
+ double force_scale_max; /* Force a scale--max */
/* status information */
-
+ int with_markup;
long xorigin, yorigin; /* where is (0,0) of the graph */
long ximg, yimg; /* total size of the image */
size_t rendered_image_size;
cairo_t *cr; /* drawin context */
cairo_font_options_t *font_options; /* cairo font options */
cairo_antialias_t graph_antialias; /* antialiasing for the graph */
+ PangoLayout *layout; /* the pango layout we use for writing fonts */
+ rrd_info_t *grinfo; /* root pointer to extra graph info */
+ rrd_info_t *grinfo_current; /* pointing to current entry */
} image_desc_t;
/* Prototypes */
enum tmt_en,
long);
int print_calc(
- image_desc_t *,
- char ***);
+ image_desc_t *);
int leg_place(
image_desc_t *,
int *);
int lazy_check(
image_desc_t *);
int graph_paint(
- image_desc_t *,
- char ***);
+ image_desc_t *);
int gdes_alloc(
image_desc_t *);
const char *const,
int,
char *const);
-int rrd_graph(
- int,
- char **,
- char ***,
- int *,
- int *,
- FILE *,
- double *,
- double *);
void rrd_graph_init(
image_desc_t *);
+
void rrd_graph_options(
int,
char **,
const void *);
int graph_size_location(
image_desc_t *,
- int
- );
+ int);
/* create a new line */
double x,
double y,
gfx_color_t color,
- char *font,
- double size,
+ PangoFontDescription *font_desc,
double tabwidth,
double angle,
enum gfx_h_align_en h_align,
double gfx_get_text_width(
image_desc_t *im,
double start,
- char *font,
- double size,
+ PangoFontDescription *font_desc,
double tabwidth,
char *text);
double *y);
#endif
+
+void grinfo_push(
+ image_desc_t *im,
+ char *key,
+ rrd_info_type_t type, rrd_infoval_t value);