gfio: add graph axis unit change notification callbacks
[fio.git] / graph.h
1 #ifndef GRAPH_H
2 #define GRAPH_H
3
4 struct graph;
5
6 #define INVISIBLE_COLOR (-1.0)
7
8 struct graph *graph_new(unsigned int xdim, unsigned int ydim, const char *font);
9 void graph_set_size(struct graph *g, unsigned int xdim, unsigned int ydim);
10 void bar_graph_draw(struct graph *g, cairo_t *cr);
11 void line_graph_draw(struct graph *g, cairo_t *cr);
12 void line_graph_set_data_count_limit(struct graph *g, int per_label_limit);
13 void graph_title(struct graph *g, const char *title);
14 void graph_x_title(struct graph *g, const char *title);
15 void graph_y_title(struct graph *g, const char *title);
16 void graph_add_label(struct graph *g, const char *label);
17 int graph_add_data(struct graph *g, const char *label, const double value);
18 int graph_add_xy_data(struct graph *g, const char *label,
19                 const double x, const double y);
20 void graph_set_color(struct graph *g, const char *label,
21                 double red, double green, double blue);
22 void graph_free(struct graph *bg);
23
24 typedef void (*graph_axis_unit_change_callback)(struct graph *g, int power_of_ten);
25 void graph_x_axis_unit_change_notify(struct graph *g, graph_axis_unit_change_callback f);
26 void graph_y_axis_unit_change_notify(struct graph *g, graph_axis_unit_change_callback f);
27
28 #endif
29