gcompat: gtk_widget_set_can_focus() for below 2.18
[fio.git] / gfio.c
diff --git a/gfio.c b/gfio.c
index 544d96aae03763ff89e3ba78459d47a854ad24d6..559c7bd35b37af65bdc2406c1d80451010700086 100644 (file)
--- a/gfio.c
+++ b/gfio.c
@@ -315,11 +315,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 +357,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)) {
@@ -499,7 +501,7 @@ static void hostname_cb(GtkEntry *entry, gpointer data)
         * or not. Show it if we are a localhost and using network,
         * or using a socket.
         */
-       ctext = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cw->combo));
+       ctext = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cw->combo));
        if (!ctext || !strncmp(ctext, "IPv4", 4) || !strncmp(ctext, "IPv6", 4))
                uses_net = 1;
        g_free(ctext);
@@ -538,8 +540,7 @@ static int get_connection_details(struct gui_entry *ge)
                        GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT, NULL);
 
        frame = gtk_frame_new("Hostname / socket name");
-       /* gtk_dialog_get_content_area() is 2.14 and newer */
-       vbox = GTK_DIALOG(dialog)->vbox;
+       vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
        gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
 
        box = gtk_vbox_new(FALSE, 6);
@@ -568,10 +569,10 @@ static int get_connection_details(struct gui_entry *ge)
        hbox = gtk_hbox_new(TRUE, 4);
        gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 0);
 
-       cw.combo = gtk_combo_box_new_text();
-       gtk_combo_box_append_text(GTK_COMBO_BOX(cw.combo), "IPv4");
-       gtk_combo_box_append_text(GTK_COMBO_BOX(cw.combo), "IPv6");
-       gtk_combo_box_append_text(GTK_COMBO_BOX(cw.combo), "local socket");
+       cw.combo = gtk_combo_box_text_new();
+       gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cw.combo), "IPv4");
+       gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cw.combo), "IPv6");
+       gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(cw.combo), "local socket");
        gtk_combo_box_set_active(GTK_COMBO_BOX(cw.combo), 0);
 
        gtk_container_add(GTK_CONTAINER(hbox), cw.combo);
@@ -592,8 +593,8 @@ static int get_connection_details(struct gui_entry *ge)
        /*
         * Connect edit signal, so we can show/not-show the auto start button
         */
-       g_signal_connect(GTK_OBJECT(cw.hentry), "changed", G_CALLBACK(hostname_cb), &cw);
-       g_signal_connect(GTK_OBJECT(cw.combo), "changed", G_CALLBACK(hostname_cb), &cw);
+       g_signal_connect(G_OBJECT(cw.hentry), "changed", G_CALLBACK(hostname_cb), &cw);
+       g_signal_connect(G_OBJECT(cw.combo), "changed", G_CALLBACK(hostname_cb), &cw);
 
        gtk_widget_show_all(dialog);
 
@@ -605,7 +606,7 @@ static int get_connection_details(struct gui_entry *ge)
        ge->host = strdup(gtk_entry_get_text(GTK_ENTRY(cw.hentry)));
        ge->port = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(pentry));
 
-       typeentry = gtk_combo_box_get_active_text(GTK_COMBO_BOX(cw.combo));
+       typeentry = gtk_combo_box_text_get_active_text(GTK_COMBO_BOX_TEXT(cw.combo));
        if (!typeentry || !strncmp(typeentry, "IPv4", 4))
                ge->type = Fio_client_ipv4;
        else if (!strncmp(typeentry, "IPv6", 4))
@@ -969,7 +970,7 @@ static void view_log_destroy(GtkWidget *w, gpointer data)
 {
        struct gui *ui = (struct gui *) data;
 
-       gtk_widget_ref(ui->log_tree);
+       g_object_ref(G_OBJECT(ui->log_tree));
        gtk_container_remove(GTK_CONTAINER(w), ui->log_tree);
        gtk_widget_destroy(w);
        ui->log_view = NULL;
@@ -993,12 +994,12 @@ void gfio_view_log(struct gui *ui)
        gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
 
        box = gtk_hbox_new(TRUE, 0);
-       gtk_box_pack_start_defaults(GTK_BOX(box), ui->log_tree);
+       gtk_box_pack_start(GTK_BOX(box), ui->log_tree, TRUE, TRUE, 0);
        g_signal_connect(box, "destroy", G_CALLBACK(view_log_destroy), ui);
        gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(scroll), box);
 
        vbox = gtk_vbox_new(TRUE, 5);
-       gtk_box_pack_start_defaults(GTK_BOX(vbox), scroll);
+       gtk_box_pack_start(GTK_BOX(vbox), scroll, TRUE, TRUE, 0);
 
        gtk_container_add(GTK_CONTAINER(win), vbox);
        gtk_widget_show_all(win);
@@ -1085,7 +1086,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);
 }
 
@@ -1097,7 +1098,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);
@@ -1118,7 +1119,8 @@ static void preferences(GtkWidget *w, gpointer data)
                NULL);
 
        frame = gtk_frame_new("Graphing");
-       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), frame, FALSE, FALSE, 5);
+       vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+       gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
        vbox = gtk_vbox_new(FALSE, 6);
        gtk_container_add(GTK_CONTAINER(frame), vbox);
 
@@ -1150,7 +1152,8 @@ static void preferences(GtkWidget *w, gpointer data)
 
        spin_int = create_spinbutton(hbox, 100, 100000, gfio_client_ops.eta_msec);
        frame = gtk_frame_new("Debug logging");
-       gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), frame, FALSE, FALSE, 5);
+       vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
+       gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 5);
        vbox = gtk_vbox_new(FALSE, 6);
        gtk_container_add(GTK_CONTAINER(frame), vbox);
 
@@ -1403,7 +1406,7 @@ static GtkWidget *new_client_page(struct gui_entry *ge)
        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",
+       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);
@@ -1489,7 +1492,7 @@ static GtkWidget *new_main_page(struct gui *ui)
        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",
+       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);