diff options
author | jake <jake@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-12-24 21:28:38 +0000 |
---|---|---|
committer | jake <jake@f5534014-38df-0310-8fa8-9805f1628bb7> | 2009-12-24 21:28:38 +0000 |
commit | 9767f7746406da1fe464c076918f54789f191cb8 (patch) | |
tree | fd2efc69c2289a72566fcafaeb1cae58d8921fd7 /gtk/rtp_analysis.c | |
parent | ab1f7c81d15e64e36b94b933eb4eb96216139f6d (diff) |
Add save option to RTP graph window.
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@31363 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'gtk/rtp_analysis.c')
-rw-r--r-- | gtk/rtp_analysis.c | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/gtk/rtp_analysis.c b/gtk/rtp_analysis.c index 9da59ca87b..223c031eb6 100644 --- a/gtk/rtp_analysis.c +++ b/gtk/rtp_analysis.c @@ -78,6 +78,7 @@ #include "gtk/file_dlg.h" #include "gtk/gui_utils.h" #include "gtk/gui_stat_menu.h" +#include "gtk/pixmap_save.h" #include "gtk/main.h" #include "gtk/rtp_analysis.h" #include "gtk/rtp_stream.h" @@ -1311,7 +1312,10 @@ static gint expose_event(GtkWidget *widget, GdkEventExpose *event) static gint configure_event(GtkWidget *widget, GdkEventConfigure *event _U_) { user_data_t *user_data; - int i; + int i; +#if GTK_CHECK_VERSION(2,6,0) + GtkWidget *bt_save; +#endif user_data=(user_data_t *)g_object_get_data(G_OBJECT(widget), "user_data_t"); @@ -1331,6 +1335,12 @@ static gint configure_event(GtkWidget *widget, GdkEventConfigure *event _U_) user_data->dlg.dialog_graph.pixmap_width=widget->allocation.width; user_data->dlg.dialog_graph.pixmap_height=widget->allocation.height; +#if GTK_CHECK_VERSION(2,6,0) + bt_save = g_object_get_data(G_OBJECT(user_data->dlg.dialog_graph.window), "bt_save"); + g_object_set_data(G_OBJECT(bt_save), "pixmap", user_data->dlg.dialog_graph.pixmap); + gtk_widget_set_sensitive(bt_save, TRUE); +#endif + gdk_draw_rectangle(user_data->dlg.dialog_graph.pixmap, widget->style->white_gc, TRUE, @@ -1659,6 +1669,10 @@ static void dialog_graph_init_window(user_data_t* user_data) GtkWidget *vbox; GtkWidget *hbox; GtkWidget *bt_close; +#if GTK_CHECK_VERSION(2,6,0) + GtkWidget *bt_save; + GtkTooltips *tooltips = gtk_tooltips_new(); +#endif /* create the main window */ user_data->dlg.dialog_graph.window=dlg_window_new("I/O Graphs"); /* transient_for top_level */ @@ -1680,13 +1694,25 @@ static void dialog_graph_init_window(user_data_t* user_data) dialog_graph_set_title(user_data); +#if GTK_CHECK_VERSION(2,6,0) + hbox = dlg_button_row_new(GTK_STOCK_CLOSE, GTK_STOCK_SAVE, NULL); +#else hbox = dlg_button_row_new(GTK_STOCK_CLOSE, NULL); - gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); +#endif + gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); gtk_widget_show(hbox); bt_close = g_object_get_data(G_OBJECT(hbox), GTK_STOCK_CLOSE); window_set_cancel_button(user_data->dlg.dialog_graph.window, bt_close, window_cancel_button_cb); +#if GTK_CHECK_VERSION(2,6,0) + bt_save = g_object_get_data(G_OBJECT(hbox), GTK_STOCK_SAVE); + gtk_widget_set_sensitive(bt_save, FALSE); + gtk_tooltips_set_tip(tooltips, bt_save, "Save the displayed graph to a file", NULL); + g_signal_connect(bt_save, "clicked", G_CALLBACK(pixmap_save_cb), NULL); + g_object_set_data(G_OBJECT(user_data->dlg.dialog_graph.window), "bt_save", bt_save); +#endif + g_signal_connect(user_data->dlg.dialog_graph.window, "delete_event", G_CALLBACK(window_delete_event_cb), NULL); gtk_widget_show(user_data->dlg.dialog_graph.window); |