Redraw/expose doesn't quite work yet, though.
Signed-off-by: Jens Axboe <axboe@kernel.dk>
static unsigned int gfio_graph_limit = 100;
GdkColor gfio_color_white;
static unsigned int gfio_graph_limit = 100;
GdkColor gfio_color_white;
-const char *gfio_graph_font;
+const char *gfio_graph_font = GRAPH_DEFAULT_FONT;
typedef void (*clickfunction)(GtkWidget *widget, gpointer data);
typedef void (*clickfunction)(GtkWidget *widget, gpointer data);
gfio_display_end_results(gc);
}
gfio_display_end_results(gc);
}
-static void __update_graph_limits(struct gfio_graphs *g)
+static void __update_graph_settings(struct gfio_graphs *g)
{
line_graph_set_data_count_limit(g->iops_graph, gfio_graph_limit);
{
line_graph_set_data_count_limit(g->iops_graph, gfio_graph_limit);
+ graph_set_font(g->iops_graph, gfio_graph_font);
line_graph_set_data_count_limit(g->bandwidth_graph, gfio_graph_limit);
line_graph_set_data_count_limit(g->bandwidth_graph, gfio_graph_limit);
+ graph_set_font(g->bandwidth_graph, gfio_graph_font);
-static void ge_update_lim_fn(gpointer key, gpointer value, gpointer data)
+static void ge_update_settings_fn(gpointer key, gpointer value, gpointer data)
{
struct gui_entry *ge = (struct gui_entry *) value;
{
struct gui_entry *ge = (struct gui_entry *) value;
- __update_graph_limits(&ge->graphs);
+ __update_graph_settings(&ge->graphs);
+
+ ev = gdk_event_new(GDK_EXPOSE);
+ g_signal_emit_by_name(G_OBJECT(ge->graphs.drawing_area), "expose_event", GTK_WIDGET(ge->graphs.drawing_area), ev, &ge->graphs);
+ gdk_event_free(ev);
}
static void update_graph_limits(void)
{
struct gui *ui = &main_ui;
}
static void update_graph_limits(void)
{
struct gui *ui = &main_ui;
+ GdkEvent *ev;
+
+ __update_graph_settings(&ui->graphs);
- __update_graph_limits(&ui->graphs);
+ ev = gdk_event_new(GDK_EXPOSE);
+ g_signal_emit_by_name(G_OBJECT(ui->graphs.drawing_area), "expose_event", GTK_WIDGET(ui->graphs.drawing_area), ev, &ui->graphs);
+ gdk_event_free(ev);
- g_hash_table_foreach(ui->ge_hash, ge_update_lim_fn, NULL);
+ g_hash_table_foreach(ui->ge_hash, ge_update_settings_fn, NULL);
}
static void preferences(GtkWidget *w, gpointer data)
}
static void preferences(GtkWidget *w, gpointer data)
entry = gtk_label_new("Font face to use for graph labels");
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 5);
entry = gtk_label_new("Font face to use for graph labels");
gtk_box_pack_start(GTK_BOX(hbox), entry, TRUE, TRUE, 5);
- font = gtk_font_button_new();
+ font = gtk_font_button_new_with_font(gfio_graph_font);
gtk_box_pack_start(GTK_BOX(hbox), font, FALSE, FALSE, 5);
box = gtk_vbox_new(FALSE, 6);
gtk_box_pack_start(GTK_BOX(hbox), font, FALSE, FALSE, 5);
box = gtk_vbox_new(FALSE, 6);
g->per_label_limit = -1;
g->font = font;
if (!g->font)
g->per_label_limit = -1;
g->font = font;
if (!g->font)
+ g->font = GRAPH_DEFAULT_FONT;
+void graph_set_font(struct graph *g, const char *font)
+{
+ g->font = font;
+}
+
void graph_x_axis_unit_change_notify(struct graph *g, graph_axis_unit_change_callback f)
{
g->x_axis_unit_change_callback = f;
void graph_x_axis_unit_change_notify(struct graph *g, graph_axis_unit_change_callback f)
{
g->x_axis_unit_change_callback = f;
- cairo_select_font_face (cr, g->font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
+ cairo_select_font_face(cr, g->font, CAIRO_FONT_SLANT_NORMAL, CAIRO_FONT_WEIGHT_NORMAL);
cairo_set_font_size(cr, fontsize);
cairo_text_extents(cr, text, &extents);
cairo_set_font_size(cr, fontsize);
cairo_text_extents(cr, text, &extents);
typedef struct graph_label * graph_label_t;
typedef struct graph_label * graph_label_t;
+#define GRAPH_DEFAULT_FONT "Sans 12"
+
struct graph *graph_new(unsigned int xdim, unsigned int ydim, const char *font);
/* graph_new() Returns a new graph structure of the given dimensions and font */
void graph_set_size(struct graph *g, unsigned int xdim, unsigned int ydim);
struct graph *graph_new(unsigned int xdim, unsigned int ydim, const char *font);
/* graph_new() Returns a new graph structure of the given dimensions and font */
void graph_set_size(struct graph *g, unsigned int xdim, unsigned int ydim);
* be added to a line graph. Once the limit is reached, the oldest data
* is discarded as new data is added
*/
* be added to a line graph. Once the limit is reached, the oldest data
* is discarded as new data is added
*/
+void graph_set_font(struct graph *g, const char *font);
void graph_title(struct graph *g, const char *title);
/* graph_title() sets the main title of the graph to the given string */
void graph_x_title(struct graph *g, const char *title);
void graph_title(struct graph *g, const char *title);
/* graph_title() sets the main title of the graph to the given string */
void graph_x_title(struct graph *g, const char *title);