Merge branch 'master' into gfio
[fio.git] / gfio.c
diff --git a/gfio.c b/gfio.c
index 1ee2745c1f980ac62789f255ae1d6cb43c130ac6..b9da70274ac0739d2bcc055a7c45d24bf36563de 100644 (file)
--- a/gfio.c
+++ b/gfio.c
@@ -1,7 +1,7 @@
 /*
  * gfio - gui front end for fio - the flexible io tester
  *
- * Copyright (C) 2012 Stephen M. Cameron <stephenmcameron@gmail.com> 
+ * Copyright (C) 2012 Stephen M. Cameron <stephenmcameron@gmail.com>
  * Copyright (C) 2012 Jens Axboe <axboe@kernel.dk>
  *
  * The license below covers all files distributed with fio unless otherwise
@@ -41,6 +41,7 @@ static int gfio_server_running;
 static unsigned int gfio_graph_limit = 100;
 
 GdkColor gfio_color_white;
+GdkColor gfio_color_lightyellow;
 const char *gfio_graph_font = GRAPH_DEFAULT_FONT;
 
 typedef void (*clickfunction)(GtkWidget *widget, gpointer data);
@@ -293,7 +294,7 @@ static void gfio_ui_setup_log(struct gui *ui)
        GtkListStore *model;
        GtkWidget *tree_view;
 
-       model = gtk_list_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT, G_TYPE_STRING);
+       model = gtk_list_store_new(4, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
 
        tree_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(model));
        gtk_widget_set_can_focus(tree_view, FALSE);
@@ -315,11 +316,13 @@ static void gfio_ui_setup_log(struct gui *ui)
 static gint on_config_drawing_area(GtkWidget *w, GdkEventConfigure *event,
                                   gpointer data)
 {
+       guint width = gtk_widget_get_allocated_width(w);
+       guint height = gtk_widget_get_allocated_height(w);
        struct gfio_graphs *g = data;
 
-       graph_set_size(g->iops_graph, w->allocation.width / 2.0, w->allocation.height);
-       graph_set_position(g->iops_graph, w->allocation.width / 2.0, 0.0);
-       graph_set_size(g->bandwidth_graph, w->allocation.width / 2.0, w->allocation.height);
+       graph_set_size(g->iops_graph, width / 2.0, height);
+       graph_set_position(g->iops_graph, width / 2.0, 0.0);
+       graph_set_size(g->bandwidth_graph, width / 2.0, height);
        graph_set_position(g->bandwidth_graph, 0, 0);
        return TRUE;
 }
@@ -355,7 +358,7 @@ static int on_expose_drawing_area(GtkWidget *w, GdkEvent *event, gpointer p)
        struct gfio_graphs *g = p;
        cairo_t *cr;
 
-       cr = gdk_cairo_create(w->window);
+       cr = gdk_cairo_create(gtk_widget_get_window(w));
 
        if (graph_has_tooltips(g->iops_graph) ||
            graph_has_tooltips(g->bandwidth_graph)) {
@@ -404,11 +407,11 @@ static void ge_widget_destroy(GtkWidget *w, gpointer data)
 
 static void gfio_quit(struct gui *ui)
 {
-        gtk_main_quit();
+       gtk_main_quit();
 }
 
 static void quit_clicked(__attribute__((unused)) GtkWidget *widget,
-                __attribute__((unused)) gpointer data)
+                        gpointer data)
 {
        struct gui *ui = (struct gui *) data;
 
@@ -469,7 +472,7 @@ static void gfio_start_server(struct gui *ui)
 }
 
 static void start_job_clicked(__attribute__((unused)) GtkWidget *widget,
-                gpointer data)
+                             gpointer data)
 {
        struct gui_entry *ge = data;
        struct gfio_client *gc = ge->client;
@@ -874,7 +877,7 @@ static int do_file_open_with_tab(struct gui *ui, const gchar *uri)
        if (get_connection_details(ge)) {
                if (ge_is_new)
                        gtk_widget_destroy(ge->vbox);
-                       
+
                return 1;
        }
 
@@ -1014,7 +1017,7 @@ static void connect_job_entry(GtkWidget *w, gpointer data)
 {
        struct gui *ui = (struct gui *) data;
        struct gui_entry *ge;
-       
+
        ge = get_ge_from_cur_tab(ui);
        if (ge)
                connect_clicked(w, ge);
@@ -1084,7 +1087,7 @@ static void ge_update_settings_fn(gpointer key, gpointer value, gpointer data)
        __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);
+       g_signal_emit_by_name(G_OBJECT(ge->graphs.drawing_area), GFIO_DRAW_EVENT, GTK_WIDGET(ge->graphs.drawing_area), ev, &ge->graphs);
        gdk_event_free(ev);
 }
 
@@ -1096,7 +1099,7 @@ static void update_graph_limits(void)
        __update_graph_settings(&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);
+       g_signal_emit_by_name(G_OBJECT(ui->graphs.drawing_area), GFIO_DRAW_EVENT, GTK_WIDGET(ui->graphs.drawing_area), ev, &ui->graphs);
        gdk_event_free(ev);
 
        g_hash_table_foreach(ui->ge_hash, ge_update_settings_fn, NULL);
@@ -1403,8 +1406,8 @@ static GtkWidget *new_client_page(struct gui_entry *ge)
        ge->graphs.drawing_area = gtk_drawing_area_new();
        gtk_widget_set_size_request(GTK_WIDGET(ge->graphs.drawing_area),
                DRAWING_AREA_XDIM, DRAWING_AREA_YDIM);
-       gtk_widget_modify_bg(ge->graphs.drawing_area, GTK_STATE_NORMAL, &gfio_color_white);
-       g_signal_connect(G_OBJECT(ge->graphs.drawing_area), "expose_event",
+       gtk_widget_modify_bg(ge->graphs.drawing_area, GTK_STATE_NORMAL, &gfio_color_lightyellow);
+       g_signal_connect(G_OBJECT(ge->graphs.drawing_area), GFIO_DRAW_EVENT,
                                G_CALLBACK(on_expose_drawing_area), &ge->graphs);
        g_signal_connect(G_OBJECT(ge->graphs.drawing_area), "configure_event",
                                G_CALLBACK(on_config_drawing_area), &ge->graphs);
@@ -1418,7 +1421,7 @@ static GtkWidget *new_client_page(struct gui_entry *ge)
        setup_graphs(&ge->graphs);
 
        /*
-        * Set up alignments for widgets at the bottom of ui, 
+        * Set up alignments for widgets at the bottom of ui,
         * align bottom left, expand horizontally but not vertically
         */
        bottom_align = gtk_alignment_new(0, 1, 1, 0);
@@ -1489,8 +1492,8 @@ static GtkWidget *new_main_page(struct gui *ui)
        ui->graphs.drawing_area = gtk_drawing_area_new();
        gtk_widget_set_size_request(GTK_WIDGET(ui->graphs.drawing_area),
                DRAWING_AREA_XDIM, DRAWING_AREA_YDIM);
-       gtk_widget_modify_bg(ui->graphs.drawing_area, GTK_STATE_NORMAL, &gfio_color_white);
-       g_signal_connect(G_OBJECT(ui->graphs.drawing_area), "expose_event",
+       gtk_widget_modify_bg(ui->graphs.drawing_area, GTK_STATE_NORMAL, &gfio_color_lightyellow);
+       g_signal_connect(G_OBJECT(ui->graphs.drawing_area), GFIO_DRAW_EVENT,
                        G_CALLBACK(on_expose_drawing_area), &ui->graphs);
        g_signal_connect(G_OBJECT(ui->graphs.drawing_area), "configure_event",
                        G_CALLBACK(on_config_drawing_area), &ui->graphs);
@@ -1505,7 +1508,7 @@ static GtkWidget *new_main_page(struct gui *ui)
        setup_graphs(&ui->graphs);
 
        /*
-        * Set up alignments for widgets at the bottom of ui, 
+        * Set up alignments for widgets at the bottom of ui,
         * align bottom left, expand horizontally but not vertically
         */
        bottom_align = gtk_alignment_new(0, 1, 1, 0);
@@ -1667,8 +1670,9 @@ static void init_ui(int *argc, char **argv[], struct gui *ui)
        settings = gtk_settings_get_default();
        gtk_settings_set_long_property(settings, "gtk_tooltip_timeout", 10, "gfio setting");
        g_type_init();
+       gdk_color_parse("#ffffee", &gfio_color_lightyellow);
        gdk_color_parse("white", &gfio_color_white);
-       
+
        ui->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
        gtk_window_set_title(GTK_WINDOW(ui->window), "fio");
        gtk_window_set_default_size(GTK_WINDOW(ui->window), 1024, 768);