aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk
diff options
context:
space:
mode:
authorBalint Reczey <balint@balintreczey.hu>2014-02-21 14:09:52 +0100
committerAnders Broman <a.broman58@gmail.com>2014-03-11 05:38:01 +0000
commit00be1d31ce580a6ad7ac37cb04d2dea9f20fa130 (patch)
treea69559baba8eda15963dba0f0bd37cc134e15ad4 /ui/gtk
parent234ab5b7632f03e8cdc3ad28f8bc22a00c2978d6 (diff)
Migrate GTK icon handling to GTK 3.10 API
GtkStockItem usage is deprecated with all the GTK_STOCK_.* stock ids. We keep a stock id based approach but without relying on GTK's GtkStockItem system. We create our own internal stock ids for {icon, label} tuples and keep the original GTK stock id #define-s and values to preserve backward compatibility. Change-Id: Ia0b35a5903f079e92c8026e3df21bbf0be2d06b0 Reviewed-on: https://code.wireshark.org/review/302 Reviewed-by: Gerald Combs <gerald@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'ui/gtk')
-rw-r--r--ui/gtk/about_dlg.c1
-rw-r--r--ui/gtk/airpcap_dlg.c10
-rw-r--r--ui/gtk/capture_dlg.c20
-rw-r--r--ui/gtk/capture_file_dlg.c4
-rw-r--r--ui/gtk/capture_if_dlg.c2
-rw-r--r--ui/gtk/color_dlg.c20
-rw-r--r--ui/gtk/color_edit_dlg.c2
-rw-r--r--ui/gtk/compare_stat.c2
-rw-r--r--ui/gtk/dcerpc_stat.c2
-rw-r--r--ui/gtk/decode_as_dlg.c3
-rw-r--r--ui/gtk/dlg_utils.c12
-rw-r--r--ui/gtk/export_pdu_dlg.c2
-rw-r--r--ui/gtk/file_import_dlg.c2
-rw-r--r--ui/gtk/filter_dlg.c6
-rw-r--r--ui/gtk/find_dlg.c2
-rw-r--r--ui/gtk/flow_graph.c4
-rw-r--r--ui/gtk/follow_stream.c6
-rw-r--r--ui/gtk/graph_analysis.c5
-rw-r--r--ui/gtk/iax2_analysis.c7
-rw-r--r--ui/gtk/io_stat.c2
-rw-r--r--ui/gtk/main_filter_toolbar.c10
-rw-r--r--ui/gtk/main_menubar.c2
-rw-r--r--ui/gtk/main_statusbar.c3
-rw-r--r--ui/gtk/main_toolbar.c4
-rw-r--r--ui/gtk/main_welcome.c2
-rw-r--r--ui/gtk/mcast_stream.c1
-rw-r--r--ui/gtk/mcast_stream_dlg.c7
-rw-r--r--ui/gtk/packet_win.c9
-rw-r--r--ui/gtk/prefs_capture.c4
-rw-r--r--ui/gtk/prefs_column.c5
-rw-r--r--ui/gtk/prefs_dlg.c4
-rw-r--r--ui/gtk/prefs_filter_expressions.c5
-rw-r--r--ui/gtk/print_dlg.c2
-rw-r--r--ui/gtk/profile_dlg.c7
-rw-r--r--ui/gtk/rpc_stat.c2
-rw-r--r--ui/gtk/rtp_analysis.c8
-rw-r--r--ui/gtk/rtp_player.c10
-rw-r--r--ui/gtk/rtp_stream_dlg.c12
-rw-r--r--ui/gtk/sctp_assoc_analyse.c7
-rw-r--r--ui/gtk/sctp_byte_graph_dlg.c3
-rw-r--r--ui/gtk/sctp_chunk_stat_dlg.c5
-rw-r--r--ui/gtk/sctp_error_dlg.c3
-rw-r--r--ui/gtk/sctp_graph_dlg.c3
-rw-r--r--ui/gtk/sctp_stat_dlg.c3
-rw-r--r--ui/gtk/simple_dialog.c10
-rw-r--r--ui/gtk/stock_icons.c575
-rw-r--r--ui/gtk/stock_icons.h565
-rw-r--r--ui/gtk/tap_param_dlg.c2
-rw-r--r--ui/gtk/uat_gui.c16
-rw-r--r--ui/gtk/voip_calls_dlg.c10
50 files changed, 1124 insertions, 289 deletions
diff --git a/ui/gtk/about_dlg.c b/ui/gtk/about_dlg.c
index 3b76345cec..26333f9422 100644
--- a/ui/gtk/about_dlg.c
+++ b/ui/gtk/about_dlg.c
@@ -54,6 +54,7 @@
#include "ui/gtk/main.h"
#include "ui/gtk/plugins_dlg.h"
#include "ui/gtk/gui_utils.h"
+#include "ui/gtk/stock_icons.h"
#include "ui/gtk/wssplash.h"
#include "webbrowser.h"
diff --git a/ui/gtk/airpcap_dlg.c b/ui/gtk/airpcap_dlg.c
index c1943f4a5f..c3f114c115 100644
--- a/ui/gtk/airpcap_dlg.c
+++ b/ui/gtk/airpcap_dlg.c
@@ -2147,31 +2147,31 @@ display_airpcap_key_management_cb(GtkWidget *w _U_, gpointer data)
gtk_box_pack_start (GTK_BOX (keys_v_sub_box), key_v_button_box, FALSE, TRUE,
0);
- add_new_key_bt = gtk_button_new_from_stock(GTK_STOCK_NEW);
+ add_new_key_bt = ws_gtk_button_new_from_stock(GTK_STOCK_NEW);
gtk_widget_set_name (add_new_key_bt, "add_new_key_bt");
gtk_widget_show (add_new_key_bt);
gtk_container_add (GTK_CONTAINER (key_v_button_box), add_new_key_bt);
gtk_widget_set_can_default (add_new_key_bt, TRUE);
- edit_key_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
+ edit_key_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
gtk_widget_set_name (edit_key_bt, "edit_key_bt");
gtk_widget_show (edit_key_bt);
gtk_container_add (GTK_CONTAINER (key_v_button_box), edit_key_bt);
gtk_widget_set_can_default (edit_key_bt, TRUE);
- remove_key_bt = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ remove_key_bt = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
gtk_widget_set_name (remove_key_bt, "remove_key_bt");
gtk_widget_show (remove_key_bt);
gtk_container_add (GTK_CONTAINER (key_v_button_box), remove_key_bt);
gtk_widget_set_can_default (remove_key_bt, TRUE);
- move_key_up_bt = gtk_button_new_from_stock(GTK_STOCK_GO_UP);
+ move_key_up_bt = ws_gtk_button_new_from_stock(GTK_STOCK_GO_UP);
gtk_widget_set_name (move_key_up_bt, "move_key_up_bt");
gtk_widget_show (move_key_up_bt);
gtk_container_add (GTK_CONTAINER (key_v_button_box), move_key_up_bt);
gtk_widget_set_can_default (move_key_up_bt, TRUE);
- move_key_down_bt = gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
+ move_key_down_bt = ws_gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
gtk_widget_set_name (move_key_down_bt, "move_key_down_bt");
gtk_widget_show (move_key_down_bt);
gtk_container_add (GTK_CONTAINER (key_v_button_box), move_key_down_bt);
diff --git a/ui/gtk/capture_dlg.c b/ui/gtk/capture_dlg.c
index a3a011100e..5ff27873a2 100644
--- a/ui/gtk/capture_dlg.c
+++ b/ui/gtk/capture_dlg.c
@@ -2892,7 +2892,7 @@ void options_interface_cb(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColum
filter_hb = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3, FALSE);
gtk_box_pack_start(GTK_BOX(capture_vb), filter_hb, FALSE, FALSE, 0);
- filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY);
+ filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(capture_filter_construct_cb), NULL);
g_signal_connect(filter_bt, "destroy", G_CALLBACK(filter_button_destroy_cb), NULL);
gtk_widget_set_tooltip_text(filter_bt,
@@ -4073,13 +4073,13 @@ show_add_interfaces_dialog(GtkWidget *bt _U_, GtkWidget *parent_win)
gtk_container_add(GTK_CONTAINER(edit_fr), list_bb);
gtk_widget_show(list_bb);
- new_bt = gtk_button_new_from_stock(GTK_STOCK_NEW);
+ new_bt = ws_gtk_button_new_from_stock(GTK_STOCK_NEW);
g_signal_connect(new_bt, "clicked", G_CALLBACK(pipe_new_bt_clicked_cb), NULL);
gtk_widget_show(new_bt);
gtk_box_pack_start (GTK_BOX (list_bb), new_bt, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text (new_bt, "Add a new pipe (with default properties)");
- del_bt = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ del_bt = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
g_signal_connect(del_bt, "clicked", G_CALLBACK(pipe_del_bt_clicked_cb), NULL);
gtk_widget_show(del_bt);
gtk_widget_set_sensitive(del_bt, FALSE);
@@ -4141,7 +4141,7 @@ show_add_interfaces_dialog(GtkWidget *bt _U_, GtkWidget *parent_win)
);
gtk_box_pack_start(GTK_BOX(middle_hb), pipe_te, TRUE, TRUE, 3);
gtk_widget_set_sensitive(pipe_te, FALSE);
- pipe_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
+ pipe_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
gtk_widget_set_tooltip_text(GTK_WIDGET(pipe_bt),
"Select a pipe from which data should be captured, "
"instead of entering the pipe name directly. "
@@ -4313,14 +4313,14 @@ show_add_interfaces_dialog(GtkWidget *bt _U_, GtkWidget *parent_win)
gtk_widget_show(help_hbox);
gtk_box_set_spacing(GTK_BOX(help_hbox), DLG_BUTTON_SPACING);
- add_but = gtk_button_new_from_stock(GTK_STOCK_ADD);
+ add_but = ws_gtk_button_new_from_stock(GTK_STOCK_ADD);
g_object_set_data(G_OBJECT(bbox), GTK_STOCK_ADD, add_but);
gtk_box_pack_start(GTK_BOX(help_hbox), add_but, FALSE, FALSE, 0);
g_signal_connect(add_but, "clicked", G_CALLBACK(show_remote_dialog), NULL);
gtk_widget_set_tooltip_text(GTK_WIDGET(add_but), "Add a remote host to the list");
gtk_widget_show(add_but);
- delete_bt = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ delete_bt = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
g_object_set_data(G_OBJECT(bbox), GTK_STOCK_DELETE, delete_bt);
gtk_box_pack_start(GTK_BOX(help_hbox), delete_bt, FALSE, FALSE, 0);
g_signal_connect(delete_bt, "clicked", G_CALLBACK(remove_remote_host), NULL);
@@ -4329,13 +4329,13 @@ show_add_interfaces_dialog(GtkWidget *bt _U_, GtkWidget *parent_win)
g_object_set_data(G_OBJECT(interface_management_w), E_REMOTE_DEL_BT_KEY, delete_bt);
gtk_widget_show(delete_bt);
- ok_but = gtk_button_new_from_stock(GTK_STOCK_APPLY);
+ ok_but = ws_gtk_button_new_from_stock(GTK_STOCK_APPLY);
gtk_box_pack_end(GTK_BOX(button_hbox), ok_but, FALSE, FALSE, 0);
g_signal_connect(GTK_WIDGET(ok_but), "clicked", G_CALLBACK(ok_remote_cb), NULL);
gtk_widget_set_tooltip_text(GTK_WIDGET(ok_but), "Apply the changes to the general list of local interfaces");
gtk_widget_show(ok_but);
- cancel_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ cancel_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_end(GTK_BOX(button_hbox), cancel_bt, FALSE, FALSE, 0);
g_signal_connect(GTK_WIDGET(cancel_bt), "clicked", G_CALLBACK(cancel_pipe_cb), interface_management_w);
gtk_widget_set_tooltip_text(GTK_WIDGET(cancel_bt), "Cancel and exit dialog.");
@@ -4837,7 +4837,7 @@ capture_prep_cb(GtkWidget *w _U_, gpointer d _U_)
all_filter_hb = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0, FALSE);
gtk_box_pack_start(GTK_BOX(all_vb), all_filter_hb, FALSE, FALSE, DLG_LABEL_SPACING);
- all_filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY);
+ all_filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY);
g_signal_connect(all_filter_bt, "clicked", G_CALLBACK(capture_filter_construct_cb), NULL);
g_signal_connect(all_filter_bt, "destroy", G_CALLBACK(filter_button_destroy_cb), NULL);
gtk_widget_set_tooltip_text(all_filter_bt,
@@ -4914,7 +4914,7 @@ capture_prep_cb(GtkWidget *w _U_, gpointer d _U_)
);
gtk_box_pack_start(GTK_BOX(file_hb), file_te, TRUE, TRUE, 3);
- file_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
+ file_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
gtk_widget_set_tooltip_text(file_bt,
"Select a file to which captured data will be written, "
"instead of entering the file name directly. "
diff --git a/ui/gtk/capture_file_dlg.c b/ui/gtk/capture_file_dlg.c
index f7de3eea23..e350342c0a 100644
--- a/ui/gtk/capture_file_dlg.c
+++ b/ui/gtk/capture_file_dlg.c
@@ -565,7 +565,7 @@ gtk_open_file(GtkWidget *w, GString *file_name, gint *type, GString *display_fil
gtk_box_pack_start(GTK_BOX(main_vb), filter_hbox, FALSE, FALSE, 0);
gtk_widget_show(filter_hbox);
- filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked",
G_CALLBACK(display_filter_construct_cb), &args);
g_signal_connect(filter_bt, "destroy",
@@ -836,7 +836,7 @@ gtk_merge_file(GtkWidget *w, GString *file_name, GString *display_filter, int *m
gtk_box_pack_start(GTK_BOX(main_vb), filter_hbox, FALSE, FALSE, 0);
gtk_widget_show(filter_hbox);
- filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked",
G_CALLBACK(display_filter_construct_cb), &args);
g_signal_connect(filter_bt, "destroy",
diff --git a/ui/gtk/capture_if_dlg.c b/ui/gtk/capture_if_dlg.c
index 42d4ae93d6..a1caed1104 100644
--- a/ui/gtk/capture_if_dlg.c
+++ b/ui/gtk/capture_if_dlg.c
@@ -804,7 +804,7 @@ capture_if_refresh_if_list(void)
/* details button */
#ifdef _WIN32
- data.details_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_CAPTURE_DETAILS);
+ data.details_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_CAPTURE_DETAILS);
gtk_widget_set_tooltip_text(data.details_bt, "Open the capture details dialog of this interface.");
ws_gtk_grid_attach_extended(GTK_GRID(if_grid), data.details_bt, 8, row, 1, 1, 0, 0, 0, 0);
if (capture_if_has_details(device.name)) {
diff --git a/ui/gtk/color_dlg.c b/ui/gtk/color_dlg.c
index 9ca2d08765..77929fd137 100644
--- a/ui/gtk/color_dlg.c
+++ b/ui/gtk/color_dlg.c
@@ -232,26 +232,26 @@ colorize_dialog_new (char *filter)
gtk_container_set_border_width (GTK_CONTAINER (edit_vbox), 5);
gtk_container_add(GTK_CONTAINER(edit_fr), edit_vbox);
- color_new = gtk_button_new_from_stock(GTK_STOCK_NEW);
+ color_new = ws_gtk_button_new_from_stock(GTK_STOCK_NEW);
gtk_box_pack_start (GTK_BOX (edit_vbox), color_new, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_new, "Create a new filter at the top of the list");
- color_edit = gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
+ color_edit = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
gtk_box_pack_start (GTK_BOX (edit_vbox), color_edit, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_edit, " If more than one filter is selected, edit the first selected one");
gtk_widget_set_sensitive (color_edit, FALSE);
- color_enable = gtk_button_new_from_stock(WIRESHARK_STOCK_ENABLE);
+ color_enable = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_ENABLE);
gtk_box_pack_start (GTK_BOX (edit_vbox), color_enable, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_enable, "Enable the selected filter(s)");
gtk_widget_set_sensitive (color_enable, FALSE);
- color_disable = gtk_button_new_from_stock(WIRESHARK_STOCK_DISABLE);
+ color_disable = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISABLE);
gtk_box_pack_start (GTK_BOX (edit_vbox), color_disable, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_disable, "Disable the selected filter(s)");
gtk_widget_set_sensitive (color_disable, FALSE);
- color_delete = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ color_delete = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
gtk_box_pack_start (GTK_BOX (edit_vbox), color_delete, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_delete, "Delete the selected filter(s)");
gtk_widget_set_sensitive (color_delete, FALSE);
@@ -266,13 +266,13 @@ colorize_dialog_new (char *filter)
gtk_container_set_border_width (GTK_CONTAINER (manage_vbox), 5);
gtk_container_add(GTK_CONTAINER(manage_fr), manage_vbox);
- color_import = gtk_button_new_from_stock(WIRESHARK_STOCK_IMPORT);
+ color_import = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_IMPORT);
gtk_box_pack_start (GTK_BOX (manage_vbox), color_import, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_import, "Load filters from a file and append them to the list");
- color_export = gtk_button_new_from_stock(WIRESHARK_STOCK_EXPORT);
+ color_export = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EXPORT);
gtk_box_pack_start (GTK_BOX (manage_vbox), color_export, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_export, "Save all/selected filters to a file");
- color_clear = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
+ color_clear = ws_gtk_button_new_from_stock(GTK_STOCK_CLEAR);
gtk_box_pack_start(GTK_BOX (manage_vbox), color_clear, FALSE, FALSE, 5);
gtk_widget_set_tooltip_text(color_clear, "Clear the filter list and revert to system-wide default filter set");
@@ -339,7 +339,7 @@ colorize_dialog_new (char *filter)
gtk_container_set_border_width (GTK_CONTAINER (order_vbox), 5);
gtk_container_add(GTK_CONTAINER(order_fr), order_vbox);
- color_filter_up = gtk_button_new_from_stock(GTK_STOCK_GO_UP);
+ color_filter_up = ws_gtk_button_new_from_stock(GTK_STOCK_GO_UP);
gtk_box_pack_start (GTK_BOX (order_vbox), color_filter_up, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text(color_filter_up, "Move filter higher in list");
gtk_widget_set_sensitive (color_filter_up, FALSE);
@@ -347,7 +347,7 @@ colorize_dialog_new (char *filter)
order_move_label = gtk_label_new (("Move\nselected filter\nup or down"));
gtk_box_pack_start (GTK_BOX (order_vbox), order_move_label, FALSE, FALSE, 0);
- color_filter_down = gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
+ color_filter_down = ws_gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
gtk_box_pack_start (GTK_BOX (order_vbox), color_filter_down, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text(color_filter_down, "Move filter lower in list");
gtk_widget_set_sensitive (color_filter_down, FALSE);
diff --git a/ui/gtk/color_edit_dlg.c b/ui/gtk/color_edit_dlg.c
index a8770d187d..481f4e51ed 100644
--- a/ui/gtk/color_edit_dlg.c
+++ b/ui/gtk/color_edit_dlg.c
@@ -272,7 +272,7 @@ color_edit_dlg_new(GtkWidget *color_filters,
/* Create the "Add Expression..." button, to pop up a dialog
for constructing filter comparison expressions. */
- add_expression_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_ADD_EXPRESSION);
+ add_expression_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_ADD_EXPRESSION);
g_signal_connect(add_expression_bt, "clicked", G_CALLBACK(filter_expr_cb), filt_text_entry);
gtk_box_pack_start (GTK_BOX(filter_string_hbox), add_expression_bt, FALSE, FALSE, 3);
gtk_widget_set_tooltip_text(add_expression_bt, "Add an expression to the filter string");
diff --git a/ui/gtk/compare_stat.c b/ui/gtk/compare_stat.c
index c90f55456b..df485c78dd 100644
--- a/ui/gtk/compare_stat.c
+++ b/ui/gtk/compare_stat.c
@@ -1001,7 +1001,7 @@ gtk_comparestat_cb(GtkAction *action _U_, gpointer user_data _U_)
filter_box=ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3, FALSE);
/* filter label */
- filter_bt=gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt=ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &args);
gtk_box_pack_start(GTK_BOX(filter_box), filter_bt, FALSE, TRUE, 0);
gtk_widget_show(filter_bt);
diff --git a/ui/gtk/dcerpc_stat.c b/ui/gtk/dcerpc_stat.c
index ca8c313ae0..0fb8ee4464 100644
--- a/ui/gtk/dcerpc_stat.c
+++ b/ui/gtk/dcerpc_stat.c
@@ -658,7 +658,7 @@ void gtk_dcerpcstat_cb(GtkAction *action _U_, gpointer user_data _U_)
filter_box = ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3, FALSE);
/* Filter label */
- filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &args);
gtk_box_pack_start(GTK_BOX(filter_box), filter_bt, FALSE, FALSE, 0);
gtk_widget_show(filter_bt);
diff --git a/ui/gtk/decode_as_dlg.c b/ui/gtk/decode_as_dlg.c
index 5dd4642bfa..afae7b7ffc 100644
--- a/ui/gtk/decode_as_dlg.c
+++ b/ui/gtk/decode_as_dlg.c
@@ -43,6 +43,7 @@
#include "ui/gtk/help_dlg.h"
#include "ui/gtk/old-gtk-compat.h"
#include "ui/gtk/packet_win.h"
+#include "ui/gtk/stock_icons.h"
#undef DEBUG
@@ -1410,7 +1411,7 @@ decode_as_cb (GtkWidget * w _U_, gpointer user_data _U_)
gtk_widget_set_tooltip_text(button, "Open a dialog showing the current settings.\n"
"Note you need to select and press apply first to be able to save the current setting");
- button = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
+ button = ws_gtk_button_new_from_stock(GTK_STOCK_CLEAR);
g_signal_connect(button, "clicked", G_CALLBACK(decode_clear_cb), NULL);
gtk_widget_set_can_default(button, TRUE);
gtk_box_pack_end(GTK_BOX(button_vb), button, FALSE, FALSE, 0);
diff --git a/ui/gtk/dlg_utils.c b/ui/gtk/dlg_utils.c
index f6b49fd8ca..36fb2c90ea 100644
--- a/ui/gtk/dlg_utils.c
+++ b/ui/gtk/dlg_utils.c
@@ -44,7 +44,7 @@ dlg_button_new(GtkWidget *hbox, GtkWidget *button_hbox, const gchar *stock_id)
{
GtkWidget *button;
- button = gtk_button_new_from_stock(stock_id);
+ button = ws_gtk_button_new_from_stock(stock_id);
gtk_widget_set_can_default(button, TRUE);
g_object_set_data(G_OBJECT(hbox), stock_id, button);
gtk_box_pack_end(GTK_BOX(button_hbox), button, FALSE, FALSE, 0);
@@ -248,7 +248,7 @@ dlg_button_row_new(const gchar *stock_id_first, ...)
/* do we have a help button? -> special handling for it */
if (help) {
- button = gtk_button_new_from_stock(help);
+ button = ws_gtk_button_new_from_stock(help);
gtk_widget_set_can_default(button, TRUE);
g_object_set_data(G_OBJECT(hbox), help, button);
gtk_box_pack_start(GTK_BOX(help_hbox), button, FALSE, FALSE, 0);
@@ -258,7 +258,7 @@ dlg_button_row_new(const gchar *stock_id_first, ...)
/* do we have a copy button? -> special handling for it */
if (copy) {
- button = gtk_button_new_from_stock(copy);
+ button = ws_gtk_button_new_from_stock(copy);
gtk_widget_set_can_default(button, TRUE);
g_object_set_data(G_OBJECT(hbox), copy, button);
gtk_box_pack_start(GTK_BOX(help_hbox), button, FALSE, FALSE, 0);
@@ -268,7 +268,7 @@ dlg_button_row_new(const gchar *stock_id_first, ...)
/* do we have a refresh button? -> special handling for it */
if (refresh) {
- button = gtk_button_new_from_stock(refresh);
+ button = ws_gtk_button_new_from_stock(refresh);
g_object_set_data(G_OBJECT(hbox), refresh, button);
gtk_box_pack_start(GTK_BOX(help_hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
@@ -277,7 +277,7 @@ dlg_button_row_new(const gchar *stock_id_first, ...)
/* do we have an add button? -> special handling for it */
if (add) {
- button = gtk_button_new_from_stock(add);
+ button = ws_gtk_button_new_from_stock(add);
g_object_set_data(G_OBJECT(hbox), add, button);
gtk_box_pack_start(GTK_BOX(help_hbox), button, FALSE, FALSE, 0);
gtk_widget_show(button);
@@ -287,7 +287,7 @@ dlg_button_row_new(const gchar *stock_id_first, ...)
#ifdef HAVE_GEOIP
/* do we have a map button? -> special handling for it */
if (map) {
- button = gtk_button_new_from_stock(map);
+ button = ws_gtk_button_new_from_stock(map);
gtk_widget_set_can_default(button, TRUE);
g_object_set_data(G_OBJECT(hbox), map, button);
gtk_box_pack_start(GTK_BOX(help_hbox), button, FALSE, FALSE, 0);
diff --git a/ui/gtk/export_pdu_dlg.c b/ui/gtk/export_pdu_dlg.c
index cc20b8aa5f..c9db9ec925 100644
--- a/ui/gtk/export_pdu_dlg.c
+++ b/ui/gtk/export_pdu_dlg.c
@@ -120,7 +120,7 @@ export_pdu_show_cb(GtkWidget *w _U_, gpointer d _U_)
row = 0;
/* Filter button */
- filter_bt=gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt=ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &args);
ws_gtk_grid_attach_defaults(GTK_GRID(grid), filter_bt, 0, row, 1, 1);
gtk_widget_show(filter_bt);
diff --git a/ui/gtk/file_import_dlg.c b/ui/gtk/file_import_dlg.c
index 73f7e71db6..7db9cacbe4 100644
--- a/ui/gtk/file_import_dlg.c
+++ b/ui/gtk/file_import_dlg.c
@@ -887,7 +887,7 @@ file_import_dlg_new(void)
g_object_set_data(G_OBJECT(input_frm), INPUT_FILENAME_TE_KEY, filename_te);
- browse_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
+ browse_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
gtk_widget_set_tooltip_text(browse_bt, "Browse for text file to import");
ws_gtk_grid_attach(GTK_GRID(input_grid), browse_bt, 2, 0, 1, 1);
diff --git a/ui/gtk/filter_dlg.c b/ui/gtk/filter_dlg.c
index 52f0999650..9663c221bb 100644
--- a/ui/gtk/filter_dlg.c
+++ b/ui/gtk/filter_dlg.c
@@ -440,13 +440,13 @@ filter_dialog_new(GtkWidget *button, GtkWidget *parent_filter_te,
gtk_container_add(GTK_CONTAINER(edit_fr), list_bb);
gtk_widget_show(list_bb);
- new_bt = gtk_button_new_from_stock(GTK_STOCK_NEW);
+ new_bt = ws_gtk_button_new_from_stock(GTK_STOCK_NEW);
g_signal_connect(new_bt, "clicked", G_CALLBACK(filter_new_bt_clicked_cb), filter_list_type_p);
gtk_widget_show(new_bt);
gtk_box_pack_start (GTK_BOX (list_bb), new_bt, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text(new_bt, "Create a new filter at the end of the list (with the current properties)");
- del_bt = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ del_bt = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
gtk_widget_set_sensitive(del_bt, FALSE);
g_signal_connect(del_bt, "clicked", G_CALLBACK(filter_del_bt_clicked_cb), filter_list_type_p);
g_object_set_data(G_OBJECT(main_w), E_FILT_DEL_BT_KEY, del_bt);
@@ -552,7 +552,7 @@ filter_dialog_new(GtkWidget *button, GtkWidget *parent_filter_te,
/* Create the "Add Expression..." button, to pop up a dialog
for constructing filter comparison expressions. */
- add_expression_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_ADD_EXPRESSION);
+ add_expression_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_ADD_EXPRESSION);
g_signal_connect(add_expression_bt, "clicked", G_CALLBACK(filter_add_expr_bt_cb), main_w);
gtk_box_pack_start(GTK_BOX(bottom_hb), add_expression_bt, FALSE, FALSE, 0);
gtk_widget_show(add_expression_bt);
diff --git a/ui/gtk/find_dlg.c b/ui/gtk/find_dlg.c
index bff12f7728..88533ae7f5 100644
--- a/ui/gtk/find_dlg.c
+++ b/ui/gtk/find_dlg.c
@@ -199,7 +199,7 @@ find_frame_cb(GtkWidget *w _U_, gpointer d _U_)
gtk_box_pack_start(GTK_BOX(find_type_vb), filter_hb, FALSE, FALSE, 0);
gtk_widget_show(filter_hb);
- filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &args);
g_signal_connect(filter_bt, "destroy", G_CALLBACK(filter_button_destroy_cb), NULL);
g_object_set_data(G_OBJECT(filter_bt), E_FILT_TE_BUTTON_KEY, filter_bt);
diff --git a/ui/gtk/flow_graph.c b/ui/gtk/flow_graph.c
index 21325d98f4..53eeb1e5bf 100644
--- a/ui/gtk/flow_graph.c
+++ b/ui/gtk/flow_graph.c
@@ -333,13 +333,13 @@ flow_graph_dlg_create(void)
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_SPREAD);
gtk_box_set_spacing (GTK_BOX (hbuttonbox), 30);
- bt_ok = gtk_button_new_from_stock(GTK_STOCK_OK);
+ bt_ok = ws_gtk_button_new_from_stock(GTK_STOCK_OK);
gtk_box_pack_start(GTK_BOX(hbuttonbox), bt_ok, TRUE, TRUE, 0);
gtk_widget_set_tooltip_text (bt_ok, "Show the flow graph");
g_signal_connect(bt_ok, "clicked", G_CALLBACK(flow_graph_on_ok), flow_graph_dlg_w);
gtk_widget_show(bt_ok);
- bt_cancel = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
+ bt_cancel = ws_gtk_button_new_from_stock(GTK_STOCK_CANCEL);
gtk_box_pack_start(GTK_BOX(hbuttonbox), bt_cancel, TRUE, TRUE, 0);
gtk_widget_set_can_default(bt_cancel, TRUE);
gtk_widget_set_tooltip_text (bt_cancel, "Cancel this dialog");
diff --git a/ui/gtk/follow_stream.c b/ui/gtk/follow_stream.c
index d9c62f5262..4d5170c32a 100644
--- a/ui/gtk/follow_stream.c
+++ b/ui/gtk/follow_stream.c
@@ -737,19 +737,19 @@ follow_stream(const gchar *title, follow_info_t *follow_info,
gtk_box_pack_start(GTK_BOX(stream_vb), hbox, FALSE, FALSE, 0);
/* Create Find Button */
- button = gtk_button_new_from_stock(GTK_STOCK_FIND);
+ button = ws_gtk_button_new_from_stock(GTK_STOCK_FIND);
g_signal_connect(button, "clicked", G_CALLBACK(follow_find_cb), follow_info);
gtk_widget_set_tooltip_text(button, "Find text in the displayed content");
gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
/* Create Save As Button */
- button = gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
+ button = ws_gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
g_signal_connect(button, "clicked", G_CALLBACK(follow_save_as_cmd_cb), follow_info);
gtk_widget_set_tooltip_text(button, "Save the content as currently displayed");
gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
/* Create Print Button */
- button = gtk_button_new_from_stock(GTK_STOCK_PRINT);
+ button = ws_gtk_button_new_from_stock(GTK_STOCK_PRINT);
g_signal_connect(button, "clicked", G_CALLBACK(follow_print_stream), follow_info);
gtk_widget_set_tooltip_text(button, "Print the content as currently displayed");
gtk_box_pack_start(GTK_BOX(hbox), button, TRUE, TRUE, 0);
diff --git a/ui/gtk/graph_analysis.c b/ui/gtk/graph_analysis.c
index 89f24ad055..7ea16fe076 100644
--- a/ui/gtk/graph_analysis.c
+++ b/ui/gtk/graph_analysis.c
@@ -62,6 +62,7 @@
#include "ui/gtk/graph_analysis.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
#include "../../image/voip_bg.xpm"
@@ -1717,13 +1718,13 @@ static void dialog_graph_create_window(graph_analysis_data_t *user_data)
gtk_box_set_spacing (GTK_BOX (hbuttonbox), 30);
gtk_widget_show(hbuttonbox);
- bt_save = gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
+ bt_save = ws_gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
gtk_box_pack_start(GTK_BOX(hbuttonbox), bt_save, TRUE, TRUE, 0);
gtk_widget_show(bt_save);
g_signal_connect(bt_save, "clicked", G_CALLBACK(on_save_bt_clicked), user_data);
gtk_widget_set_tooltip_text(bt_save, "Save an ASCII representation of the graph to a file");
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(hbuttonbox), bt_close, TRUE, TRUE, 0);
gtk_widget_set_can_default(bt_close, TRUE);
gtk_widget_show(bt_close);
diff --git a/ui/gtk/iax2_analysis.c b/ui/gtk/iax2_analysis.c
index 0a38e9f5c9..0119715bc8 100644
--- a/ui/gtk/iax2_analysis.c
+++ b/ui/gtk/iax2_analysis.c
@@ -85,6 +85,7 @@
#include "ui/gtk/rtp_stream_dlg.h"
#include "ui/gtk/old-gtk-compat.h"
#include "ui/gtk/gui_utils.h"
+#include "ui/gtk/stock_icons.h"
#include "frame_tvbuff.h"
@@ -3434,12 +3435,12 @@ create_iax2_dialog(user_data_t* user_data)
gtk_widget_show(csv_bt);
g_signal_connect(csv_bt, "clicked", G_CALLBACK(save_csv_as_cb), user_data);
- refresh_bt = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
+ refresh_bt = ws_gtk_button_new_from_stock(GTK_STOCK_REFRESH);
gtk_container_add(GTK_CONTAINER(box4), refresh_bt);
gtk_widget_show(refresh_bt);
g_signal_connect(refresh_bt, "clicked", G_CALLBACK(on_refresh_bt_clicked), user_data);
- goto_bt = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
+ goto_bt = ws_gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
gtk_container_add(GTK_CONTAINER(box4), goto_bt);
gtk_widget_show(goto_bt);
g_signal_connect(goto_bt, "clicked", G_CALLBACK(on_goto_bt_clicked), user_data);
@@ -3454,7 +3455,7 @@ create_iax2_dialog(user_data_t* user_data)
gtk_widget_show(next_bt);
g_signal_connect(next_bt, "clicked", G_CALLBACK(on_next_bt_clicked), user_data);
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ close_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add(GTK_CONTAINER(box4), close_bt);
gtk_widget_set_can_default(close_bt, TRUE);
gtk_widget_show(close_bt);
diff --git a/ui/gtk/io_stat.c b/ui/gtk/io_stat.c
index cbde6305f7..e10d58f31d 100644
--- a/ui/gtk/io_stat.c
+++ b/ui/gtk/io_stat.c
@@ -2281,7 +2281,7 @@ create_filter_box(io_stat_graph_t *gio, GtkWidget *box, int num)
/* filter prefs dialog */
- gio->filter_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ gio->filter_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_snprintf(str, sizeof(str), "Wireshark: Display Filter IO-Stat (Filter:%d)", num);
g_free( (gpointer) (gio->args->title) );
diff --git a/ui/gtk/main_filter_toolbar.c b/ui/gtk/main_filter_toolbar.c
index 662754cfc8..8374f610d9 100644
--- a/ui/gtk/main_filter_toolbar.c
+++ b/ui/gtk/main_filter_toolbar.c
@@ -140,7 +140,7 @@ filter_toolbar_new(void)
gtk_widget_show(filter_tb);
/* Create the "Filter:" button */
- filter_bt = gtk_tool_button_new_from_stock (WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt = ws_gtk_tool_button_new_from_stock (WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &args);
gtk_widget_show(GTK_WIDGET (filter_bt));
g_object_set_data(G_OBJECT(top_level), E_FILT_BT_PTR_KEY, filter_bt);
@@ -181,7 +181,7 @@ filter_toolbar_new(void)
/* Create the "Add Expression..." button, to pop up a dialog
for constructing filter comparison expressions. */
- filter_add_expr_bt = gtk_tool_button_new_from_stock(WIRESHARK_STOCK_ADD_EXPRESSION);
+ filter_add_expr_bt = ws_gtk_tool_button_new_from_stock(WIRESHARK_STOCK_ADD_EXPRESSION);
g_object_set_data(G_OBJECT(filter_tb), E_FILT_FILTER_TE_KEY, filter_te);
g_signal_connect(filter_add_expr_bt, "clicked", G_CALLBACK(filter_add_expr_bt_cb), filter_tb);
gtk_widget_show(GTK_WIDGET(filter_add_expr_bt));
@@ -193,7 +193,7 @@ filter_toolbar_new(void)
gtk_widget_set_tooltip_text(GTK_WIDGET(filter_add_expr_bt), "Add an expression to this filter string");
/* Create the "Clear" button */
- filter_reset = gtk_tool_button_new_from_stock(WIRESHARK_STOCK_CLEAR_EXPRESSION);
+ filter_reset = ws_gtk_tool_button_new_from_stock(WIRESHARK_STOCK_CLEAR_EXPRESSION);
g_object_set_data(G_OBJECT(filter_reset), E_DFILTER_TE_KEY, filter_te);
g_object_set_data (G_OBJECT(filter_cm), E_DFILTER_CLEAR_KEY, filter_reset);
g_signal_connect(filter_reset, "clicked", G_CALLBACK(filter_reset_cb), NULL);
@@ -206,7 +206,7 @@ filter_toolbar_new(void)
gtk_widget_set_tooltip_text(GTK_WIDGET(filter_reset), "Clear this filter string and update the display");
/* Create the "Apply" button */
- filter_apply = gtk_tool_button_new_from_stock(WIRESHARK_STOCK_APPLY_EXPRESSION);
+ filter_apply = ws_gtk_tool_button_new_from_stock(WIRESHARK_STOCK_APPLY_EXPRESSION);
g_object_set_data(G_OBJECT(filter_apply), E_DFILTER_CM_KEY, filter_cm);
g_object_set_data (G_OBJECT(filter_cm), E_DFILTER_APPLY_KEY, filter_apply);
g_signal_connect(filter_apply, "clicked", G_CALLBACK(filter_activate_cb), filter_te);
@@ -220,7 +220,7 @@ filter_toolbar_new(void)
gtk_widget_set_tooltip_text(GTK_WIDGET(filter_apply), "Apply this filter string to the display");
/* Create the "Save" button */
- filter_save = gtk_tool_button_new_from_stock(GTK_STOCK_SAVE);
+ filter_save = ws_gtk_tool_button_new_from_stock(GTK_STOCK_SAVE);
g_object_set_data(G_OBJECT(filter_save), E_DFILTER_CM_KEY, filter_cm);
g_object_set_data(G_OBJECT(filter_cm), E_DFILTER_SAVE_KEY, filter_save);
g_signal_connect(filter_save, "clicked", G_CALLBACK(filter_save_cb), filter_te);
diff --git a/ui/gtk/main_menubar.c b/ui/gtk/main_menubar.c
index a9326b6422..86caa0d9ce 100644
--- a/ui/gtk/main_menubar.c
+++ b/ui/gtk/main_menubar.c
@@ -5526,7 +5526,7 @@ rebuild_protocol_prefs_menu(module_t *prefs_module_p, gboolean preferences,
label = g_strdup_printf ("%s Preferences...", prefs_module_p->description);
menu_item = gtk_image_menu_item_new_with_label(label);
gtk_image_menu_item_set_image (GTK_IMAGE_MENU_ITEM(menu_item),
- gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU));
+ ws_gtk_image_new_from_stock(GTK_STOCK_PREFERENCES, GTK_ICON_SIZE_MENU));
gtk_menu_shell_append(GTK_MENU_SHELL(sub_menu), menu_item);
g_signal_connect_swapped(G_OBJECT(menu_item), "activate",
G_CALLBACK(properties_cb), (GObject *) menu_item);
diff --git a/ui/gtk/main_statusbar.c b/ui/gtk/main_statusbar.c
index 5b4c164120..a76d03470c 100644
--- a/ui/gtk/main_statusbar.c
+++ b/ui/gtk/main_statusbar.c
@@ -54,6 +54,7 @@
#include "ui/gtk/gui_utils.h"
#include "ui/gtk/gtkglobals.h"
#include "ui/gtk/expert_comp_dlg.h"
+#include "ui/gtk/stock_icons.h"
#include "ui/gtk/profile_dlg.h"
#include "ui/gtk/main_welcome.h"
#include "ui/gtk/expert_indicators.h"
@@ -594,7 +595,7 @@ status_expert_new(void)
gtk_container_add(GTK_CONTAINER(expert_info_chat), expert_image);
g_signal_connect(expert_info_chat, "button_press_event", G_CALLBACK(expert_comp_dlg_event_cb), NULL);
- expert_image = gtk_image_new_from_stock(GTK_STOCK_YES, GTK_ICON_SIZE_MENU);
+ expert_image = ws_gtk_image_new_from_stock(GTK_STOCK_YES, GTK_ICON_SIZE_MENU);
gtk_widget_set_tooltip_text(expert_image, "COMMENT is the highest expert info level");
gtk_widget_show(expert_image);
expert_info_comment = gtk_event_box_new();
diff --git a/ui/gtk/main_toolbar.c b/ui/gtk/main_toolbar.c
index dda57f4164..5ed634dfe7 100644
--- a/ui/gtk/main_toolbar.c
+++ b/ui/gtk/main_toolbar.c
@@ -221,7 +221,7 @@ static void toolbar_append_separator(GtkWidget *toolbar) {
#define toolbar_item(new_item, toolbar, stock, tooltip_text, callback, user_data) { \
- new_item = gtk_tool_button_new_from_stock(stock); \
+ new_item = ws_gtk_tool_button_new_from_stock(stock); \
gtk_widget_set_tooltip_text(GTK_WIDGET(new_item), tooltip_text); \
g_signal_connect(new_item, "clicked", G_CALLBACK(callback), user_data); \
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new_item, -1); \
@@ -229,7 +229,7 @@ static void toolbar_append_separator(GtkWidget *toolbar) {
}
#define toolbar_toggle_button(new_item, window, toolbar, stock, tooltip_text, callback, user_data) { \
- new_item = gtk_toggle_tool_button_new_from_stock(stock); \
+ new_item = ws_gtk_toggle_tool_button_new_from_stock(stock); \
gtk_widget_set_tooltip_text(GTK_WIDGET(new_item), tooltip_text); \
g_signal_connect(new_item, "toggled", G_CALLBACK(callback), user_data); \
gtk_toolbar_insert(GTK_TOOLBAR(toolbar), new_item, -1); \
diff --git a/ui/gtk/main_welcome.c b/ui/gtk/main_welcome.c
index c51983225c..674a63984b 100644
--- a/ui/gtk/main_welcome.c
+++ b/ui/gtk/main_welcome.c
@@ -276,7 +276,7 @@ welcome_button(const gchar *stock_item,
g_signal_connect(eb, "button-release-event", G_CALLBACK(welcome_button_callback), welcome_button_callback_data);
/* icon */
- w = gtk_image_new_from_stock(stock_item, GTK_ICON_SIZE_LARGE_TOOLBAR);
+ w = ws_gtk_image_new_from_stock(stock_item, GTK_ICON_SIZE_LARGE_TOOLBAR);
gtk_box_pack_start(GTK_BOX(item_hb), w, FALSE, FALSE, 5);
text_vb = ws_gtk_box_new(GTK_ORIENTATION_VERTICAL, 3, FALSE);
diff --git a/ui/gtk/mcast_stream.c b/ui/gtk/mcast_stream.c
index 726e47f174..a766ef4467 100644
--- a/ui/gtk/mcast_stream.c
+++ b/ui/gtk/mcast_stream.c
@@ -53,6 +53,7 @@
#include "ui/gtk/mcast_stream.h"
#include "ui/gtk/mcast_stream_dlg.h"
#include "ui/gtk/main.h"
+#include "ui/gtk/stock_icons.h"
#ifdef HAVE_WINSOCK2_H
#include <winsock2.h>
diff --git a/ui/gtk/mcast_stream_dlg.c b/ui/gtk/mcast_stream_dlg.c
index 47461590b0..3802ad5d17 100644
--- a/ui/gtk/mcast_stream_dlg.c
+++ b/ui/gtk/mcast_stream_dlg.c
@@ -51,6 +51,7 @@
#include "ui/gtk/gui_utils.h"
#include "ui/gtk/gtkglobals.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
void register_tap_listener_mcast_stream_dlg(void);
@@ -332,9 +333,9 @@ mcast_on_params(GtkButton *button _U_, gpointer data _U_)
/* button row */
hbuttonbox = gtk_button_box_new(GTK_ORIENTATION_HORIZONTAL);
ws_gtk_grid_attach_defaults(GTK_GRID(grid), hbuttonbox, 0, 5, 2, 1);
- ok_bt = gtk_button_new_from_stock(GTK_STOCK_OK);
+ ok_bt = ws_gtk_button_new_from_stock(GTK_STOCK_OK);
gtk_container_add (GTK_CONTAINER(hbuttonbox), ok_bt);
- cancel_bt = gtk_button_new_from_stock(GTK_STOCK_CANCEL);
+ cancel_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CANCEL);
gtk_container_add (GTK_CONTAINER(hbuttonbox), cancel_bt);
gtk_widget_set_can_default(cancel_bt, TRUE);
gtk_button_box_set_layout(GTK_BUTTON_BOX(hbuttonbox), GTK_BUTTONBOX_END);
@@ -694,7 +695,7 @@ mcaststream_dlg_create(void)
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_filter);
gtk_widget_set_tooltip_text (bt_filter, "Prepare a display filter of the selected stream");
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_close);
gtk_widget_set_tooltip_text (bt_close, "Close this dialog");
gtk_widget_set_can_default(bt_close, TRUE);
diff --git a/ui/gtk/packet_win.c b/ui/gtk/packet_win.c
index 944c91b597..dd68ce6891 100644
--- a/ui/gtk/packet_win.c
+++ b/ui/gtk/packet_win.c
@@ -525,12 +525,21 @@ new_finfo_window(GtkWidget *w, struct FieldinfoWinData *DataPtr)
const header_field_info *hfinfo = finfo->hfinfo;
int finfo_type = (hfinfo) ? hfinfo->type : FT_NONE;
+#if !GTK_CHECK_VERSION(3, 10, 0)
GtkWidget *dialog = gtk_dialog_new_with_buttons("Editing finfo: ....",
GTK_WINDOW(w),
(GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
GTK_STOCK_OK, GTK_RESPONSE_ACCEPT,
GTK_STOCK_CANCEL, GTK_RESPONSE_REJECT,
NULL);
+#else
+ GtkWidget *dialog = gtk_dialog_new_with_buttons("Editing finfo: ....",
+ GTK_WINDOW(w),
+ (GtkDialogFlags) (GTK_DIALOG_MODAL | GTK_DIALOG_DESTROY_WITH_PARENT),
+ "_OK", GTK_RESPONSE_ACCEPT,
+ "_Cancel", GTK_RESPONSE_REJECT,
+ NULL);
+#endif
GtkWidget *dialog_vbox = gtk_dialog_get_content_area(GTK_DIALOG(dialog));
GtkWidget *fvalue_edit;
diff --git a/ui/gtk/prefs_capture.c b/ui/gtk/prefs_capture.c
index 04fb0c1363..cb092ee9a2 100644
--- a/ui/gtk/prefs_capture.c
+++ b/ui/gtk/prefs_capture.c
@@ -192,7 +192,7 @@ capture_prefs_show(void)
gtk_misc_set_alignment(GTK_MISC(ifopts_lb), 1.0f, 0.5f);
gtk_widget_show(ifopts_lb);
- ifopts_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
+ ifopts_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
tooltips_text = "Open a dialog box to set various interface options.";
gtk_widget_set_tooltip_text(ifopts_lb, tooltips_text);
gtk_widget_set_tooltip_text(ifopts_bt, tooltips_text);
@@ -246,7 +246,7 @@ capture_prefs_show(void)
gtk_misc_set_alignment(GTK_MISC(colopts_lb), 1.0f, 0.5f);
gtk_widget_show(colopts_lb);
- colopts_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
+ colopts_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
tooltips_text = "Open a dialog box to change the visible columns.";
gtk_widget_set_tooltip_text(colopts_lb, tooltips_text);
gtk_widget_set_tooltip_text(colopts_bt, tooltips_text);
diff --git a/ui/gtk/prefs_column.c b/ui/gtk/prefs_column.c
index 75af784308..474092a674 100644
--- a/ui/gtk/prefs_column.c
+++ b/ui/gtk/prefs_column.c
@@ -43,6 +43,7 @@
#include "ui/gtk/filter_dlg.h"
#include "ui/gtk/filter_autocomplete.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
static GtkWidget *remove_bt, *field_te, *field_lb, *occurrence_te, *occurrence_lb, *fmt_cmb;
static gulong column_menu_changed_handler_id;
@@ -218,13 +219,13 @@ column_prefs_show(GtkWidget *prefs_window) {
gtk_box_pack_start (GTK_BOX (bottom_hb), add_remove_vb, FALSE, FALSE, 0);
gtk_widget_show(add_remove_vb);
- add_bt = gtk_button_new_from_stock(GTK_STOCK_ADD);
+ add_bt = ws_gtk_button_new_from_stock(GTK_STOCK_ADD);
g_signal_connect(add_bt, "clicked", G_CALLBACK(column_list_new_cb), column_l);
gtk_box_pack_start (GTK_BOX (add_remove_vb), add_bt, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text(add_bt, "Add a new column at the end of the list.");
gtk_widget_show(add_bt);
- remove_bt = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
+ remove_bt = ws_gtk_button_new_from_stock(GTK_STOCK_REMOVE);
gtk_widget_set_sensitive(remove_bt, FALSE);
g_signal_connect(remove_bt, "clicked", G_CALLBACK(column_list_delete_cb), column_l);
gtk_box_pack_start (GTK_BOX (add_remove_vb), remove_bt, FALSE, FALSE, 0);
diff --git a/ui/gtk/prefs_dlg.c b/ui/gtk/prefs_dlg.c
index f65fe1f87d..fc3c4abc78 100644
--- a/ui/gtk/prefs_dlg.c
+++ b/ui/gtk/prefs_dlg.c
@@ -883,7 +883,7 @@ create_preference_path_entry(GtkWidget *main_grid, int grid_position,
ws_gtk_grid_attach_defaults(GTK_GRID(main_grid), file_bt_hb, 1, grid_position, 1, 1);
gtk_widget_show(file_bt_hb);
- button = gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
+ button = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
gtk_box_pack_end(GTK_BOX(file_bt_hb), button, FALSE, FALSE, 0);
gtk_widget_show(button);
@@ -930,7 +930,7 @@ create_preference_uat(GtkWidget *main_grid, int grid_position,
set_option_label(main_grid, grid_position, label_text, tooltip_text);
- button = gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
+ button = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
g_signal_connect(button, "clicked", G_CALLBACK(uat_window_cb), uat);
diff --git a/ui/gtk/prefs_filter_expressions.c b/ui/gtk/prefs_filter_expressions.c
index 25e7e91fc8..8bd72f06e0 100644
--- a/ui/gtk/prefs_filter_expressions.c
+++ b/ui/gtk/prefs_filter_expressions.c
@@ -42,6 +42,7 @@
#include "ui/gtk/filter_expression_save_dlg.h"
#include "ui/gtk/prefs_filter_expressions.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
static void filter_expressions_list_new_cb(GtkWidget *, gpointer);
static void filter_expressions_list_remove_cb(GtkWidget *, gpointer);
@@ -197,7 +198,7 @@ filter_expressions_prefs_show(void) {
gtk_box_pack_start(GTK_BOX(bottom_hb), add_remove_hb, FALSE, FALSE, 0);
gtk_widget_show(add_remove_hb);
- add_bt = gtk_button_new_from_stock(GTK_STOCK_ADD);
+ add_bt = ws_gtk_button_new_from_stock(GTK_STOCK_ADD);
g_signal_connect(add_bt, "clicked",
G_CALLBACK(filter_expressions_list_new_cb), column_l);
gtk_box_pack_start(GTK_BOX(add_remove_hb), add_bt, FALSE, FALSE, 0);
@@ -206,7 +207,7 @@ filter_expressions_prefs_show(void) {
gtk_widget_show(add_bt);
/* Remove button */
- remove_bt = gtk_button_new_from_stock(GTK_STOCK_REMOVE);
+ remove_bt = ws_gtk_button_new_from_stock(GTK_STOCK_REMOVE);
g_signal_connect(remove_bt, "clicked",
G_CALLBACK(filter_expressions_list_remove_cb), column_l);
gtk_box_pack_start(GTK_BOX(add_remove_hb), remove_bt, FALSE, FALSE, 0);
diff --git a/ui/gtk/print_dlg.c b/ui/gtk/print_dlg.c
index 6adb57d0a2..f6736583b3 100644
--- a/ui/gtk/print_dlg.c
+++ b/ui/gtk/print_dlg.c
@@ -641,7 +641,7 @@ open_print_dialog(const char *title, output_action_e action, print_args_t *args)
gtk_widget_grab_focus(file_te);
/* "Browse" button */
- file_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
+ file_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_BROWSE);
g_object_set_data(G_OBJECT(dest_cb), PRINT_FILE_BT_KEY, file_bt);
g_object_set_data(G_OBJECT(file_bt), PRINT_TE_PTR_KEY, file_te);
gtk_widget_set_tooltip_text(file_bt, "Browse output filename in filesystem");
diff --git a/ui/gtk/profile_dlg.c b/ui/gtk/profile_dlg.c
index 786be7eba3..f66f13be2d 100644
--- a/ui/gtk/profile_dlg.c
+++ b/ui/gtk/profile_dlg.c
@@ -44,6 +44,7 @@
#include "ui/gtk/gtkglobals.h"
#include "ui/gtk/help_dlg.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
enum {
NAME_COLUMN,
@@ -475,19 +476,19 @@ profile_dialog_new(void)
gtk_container_add(GTK_CONTAINER(edit_fr), list_bb);
gtk_widget_show(list_bb);
- new_bt = gtk_button_new_from_stock(GTK_STOCK_NEW);
+ new_bt = ws_gtk_button_new_from_stock(GTK_STOCK_NEW);
g_signal_connect(new_bt, "clicked", G_CALLBACK(profile_new_bt_clicked_cb), NULL);
gtk_widget_show(new_bt);
gtk_box_pack_start(GTK_BOX(list_bb), new_bt, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text(new_bt, "Create a new profile (with default properties)");
- copy_bt = gtk_button_new_from_stock(GTK_STOCK_COPY);
+ copy_bt = ws_gtk_button_new_from_stock(GTK_STOCK_COPY);
g_signal_connect(copy_bt, "clicked", G_CALLBACK(profile_copy_bt_clicked_cb), NULL);
gtk_widget_show(copy_bt);
gtk_box_pack_start(GTK_BOX(list_bb), copy_bt, FALSE, FALSE, 0);
gtk_widget_set_tooltip_text(copy_bt, "Copy the selected profile");
- del_bt = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ del_bt = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
gtk_widget_set_sensitive(del_bt, FALSE);
g_signal_connect(del_bt, "clicked", G_CALLBACK(profile_del_bt_clicked_cb), NULL);
g_object_set_data(G_OBJECT(main_w), E_PROF_DEL_BT_KEY, del_bt);
diff --git a/ui/gtk/rpc_stat.c b/ui/gtk/rpc_stat.c
index 9ae2397f82..84065bf4a7 100644
--- a/ui/gtk/rpc_stat.c
+++ b/ui/gtk/rpc_stat.c
@@ -470,7 +470,7 @@ gtk_rpcstat_cb(GtkAction *action _U_, gpointer user_data _U_)
filter_box=ws_gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 3, FALSE);
/* Filter label */
- filter_bt=gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt=ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &args);
gtk_box_pack_start(GTK_BOX(filter_box), filter_bt, FALSE, FALSE, 0);
gtk_widget_show(filter_bt);
diff --git a/ui/gtk/rtp_analysis.c b/ui/gtk/rtp_analysis.c
index fb7cfd6cdb..d9f3390aa2 100644
--- a/ui/gtk/rtp_analysis.c
+++ b/ui/gtk/rtp_analysis.c
@@ -3656,12 +3656,12 @@ create_rtp_dialog(user_data_t* user_data)
gtk_widget_show(csv_bt);
g_signal_connect(csv_bt, "clicked", G_CALLBACK(save_csv_as_cb), user_data);
- refresh_bt = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
+ refresh_bt = ws_gtk_button_new_from_stock(GTK_STOCK_REFRESH);
gtk_container_add(GTK_CONTAINER(box4), refresh_bt);
gtk_widget_show(refresh_bt);
g_signal_connect(refresh_bt, "clicked", G_CALLBACK(on_refresh_bt_clicked), user_data);
- goto_bt = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
+ goto_bt = ws_gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
gtk_container_add(GTK_CONTAINER(box4), goto_bt);
gtk_widget_show(goto_bt);
g_signal_connect(goto_bt, "clicked", G_CALLBACK(on_goto_bt_clicked_lst), user_data);
@@ -3672,7 +3672,7 @@ create_rtp_dialog(user_data_t* user_data)
g_signal_connect(graph_bt, "clicked", G_CALLBACK(on_graph_bt_clicked), user_data);
#ifdef HAVE_LIBPORTAUDIO
- player_bt = gtk_button_new_from_stock(WIRESHARK_STOCK_AUDIO_PLAYER);
+ player_bt = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_AUDIO_PLAYER);
gtk_container_add(GTK_CONTAINER(box4), player_bt);
gtk_widget_show(player_bt);
g_signal_connect(player_bt, "clicked", G_CALLBACK(on_player_bt_clicked), NULL);
@@ -3684,7 +3684,7 @@ create_rtp_dialog(user_data_t* user_data)
gtk_widget_show(next_bt);
g_signal_connect(next_bt, "clicked", G_CALLBACK(on_next_bt_clicked_list), user_data);
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ close_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add(GTK_CONTAINER(box4), close_bt);
gtk_widget_set_can_default(close_bt, TRUE);
gtk_widget_show(close_bt);
diff --git a/ui/gtk/rtp_player.c b/ui/gtk/rtp_player.c
index 6fc16922df..060307f046 100644
--- a/ui/gtk/rtp_player.c
+++ b/ui/gtk/rtp_player.c
@@ -2385,27 +2385,27 @@ rtp_player_dlg_create(void)
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbuttonbox), GTK_BUTTONBOX_SPREAD);
gtk_box_set_spacing (GTK_BOX (hbuttonbox), 10);
- bt_decode = gtk_button_new_from_stock(WIRESHARK_STOCK_DECODE);
+ bt_decode = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DECODE);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_decode);
g_signal_connect(bt_decode, "clicked", G_CALLBACK(on_bt_decode_clicked), NULL);
gtk_widget_set_tooltip_text (bt_decode, "Decode the RTP stream(s)");
- bt_play = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
+ bt_play = ws_gtk_button_new_from_stock(GTK_STOCK_MEDIA_PLAY);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_play);
g_signal_connect(bt_play, "clicked", G_CALLBACK(on_bt_play_clicked), NULL);
gtk_widget_set_tooltip_text (bt_play, "Play the RTP channel(s)");
- bt_pause = gtk_button_new_from_stock(GTK_STOCK_MEDIA_PAUSE);
+ bt_pause = ws_gtk_button_new_from_stock(GTK_STOCK_MEDIA_PAUSE);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_pause);
g_signal_connect(bt_pause, "clicked", G_CALLBACK(on_bt_pause_clicked), NULL);
gtk_widget_set_tooltip_text (bt_pause, "Pause the RTP channel(s)");
- bt_stop = gtk_button_new_from_stock(GTK_STOCK_MEDIA_STOP);
+ bt_stop = ws_gtk_button_new_from_stock(GTK_STOCK_MEDIA_STOP);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_stop);
g_signal_connect(bt_stop, "clicked", G_CALLBACK(on_bt_stop_clicked), NULL);
gtk_widget_set_tooltip_text (bt_stop, "Stop the RTP channel(s)");
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_close);
gtk_widget_set_can_default(bt_close, TRUE);
gtk_widget_set_tooltip_text (bt_close, "Close this dialog");
diff --git a/ui/gtk/rtp_stream_dlg.c b/ui/gtk/rtp_stream_dlg.c
index 052b47dedf..08053b12ba 100644
--- a/ui/gtk/rtp_stream_dlg.c
+++ b/ui/gtk/rtp_stream_dlg.c
@@ -1010,10 +1010,10 @@ rtpstream_dlg_create (void)
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_findrev);
gtk_widget_set_tooltip_text (bt_findrev, "Find the reverse stream matching the selected forward stream");
/*
- bt_goto = gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
+ bt_goto = ws_gtk_button_new_from_stock(GTK_STOCK_JUMP_TO);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_goto);
*/
- bt_save = gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
+ bt_save = ws_gtk_button_new_from_stock(GTK_STOCK_SAVE_AS);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_save);
gtk_widget_set_tooltip_text (bt_save, "Save stream payload in rtpdump format");
@@ -1021,22 +1021,22 @@ rtpstream_dlg_create (void)
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_mark);
gtk_widget_set_tooltip_text (bt_mark, "Mark packets of the selected stream(s)");
- bt_filter = gtk_button_new_from_stock(WIRESHARK_STOCK_PREPARE_FILTER);
+ bt_filter = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_PREPARE_FILTER);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_filter);
gtk_widget_set_tooltip_text (bt_filter, "Prepare a display filter of the selected stream(s)");
/* XXX - maybe we want to have a "Copy as CSV" stock button here? */
/*bt_copy = gtk_button_new_with_label ("Copy content to clipboard as CSV");*/
- bt_copy = gtk_button_new_from_stock(GTK_STOCK_COPY);
+ bt_copy = ws_gtk_button_new_from_stock(GTK_STOCK_COPY);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_copy);
gtk_widget_set_tooltip_text(bt_copy,
"Copy all statistical values of this page to the clipboard in CSV (Comma Separated Values) format.");
- bt_analyze = gtk_button_new_from_stock(WIRESHARK_STOCK_ANALYZE);
+ bt_analyze = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_ANALYZE);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_analyze);
gtk_widget_set_tooltip_text (bt_analyze, "Open an analyze window of the selected stream(s)");
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_close);
gtk_widget_set_tooltip_text (bt_close, "Close this dialog");
gtk_widget_set_can_default(bt_close, TRUE);
diff --git a/ui/gtk/sctp_assoc_analyse.c b/ui/gtk/sctp_assoc_analyse.c
index 5e8a50d5e1..2b751f7135 100644
--- a/ui/gtk/sctp_assoc_analyse.c
+++ b/ui/gtk/sctp_assoc_analyse.c
@@ -40,6 +40,7 @@
#include "ui/tap-sctp-analysis.h"
#include "ui/gtk/sctp_stat_gtk.h"
#include "ui/gtk/gtkglobals.h"
+#include "ui/gtk/stock_icons.h"
#include "frame_tvbuff.h"
@@ -686,7 +687,7 @@ create_analyse_window(struct sctp_analyse *u_data)
gtk_widget_show (bt_filter);
g_signal_connect(bt_filter, "clicked", G_CALLBACK(sctp_set_filter), u_data);
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ close_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(hbox), close_bt, FALSE, FALSE, 0);
gtk_widget_show(close_bt);
g_signal_connect(close_bt, "clicked", G_CALLBACK(on_close_dlg), u_data);
@@ -795,7 +796,7 @@ create_analyse_window(struct sctp_analyse *u_data)
gtk_widget_set_sensitive(graph_bt1, FALSE);
gtk_widget_set_sensitive(graph_bt2, FALSE);
}
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ close_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(h_button_box), close_bt, FALSE, FALSE, 0);
gtk_widget_show(close_bt);
g_signal_connect(close_bt, "clicked", G_CALLBACK(on_close_dlg), u_data);
@@ -899,7 +900,7 @@ create_analyse_window(struct sctp_analyse *u_data)
gtk_widget_set_sensitive(graph_bt1, FALSE);
gtk_widget_set_sensitive(graph_bt2, FALSE);
}
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ close_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(h_button_box), close_bt, FALSE, FALSE, 0);
gtk_widget_show(close_bt);
g_signal_connect(close_bt, "clicked", G_CALLBACK(on_close_dlg), u_data);
diff --git a/ui/gtk/sctp_byte_graph_dlg.c b/ui/gtk/sctp_byte_graph_dlg.c
index 0d3bb9498a..9b67a70dc8 100644
--- a/ui/gtk/sctp_byte_graph_dlg.c
+++ b/ui/gtk/sctp_byte_graph_dlg.c
@@ -43,6 +43,7 @@
#include "ui/gtk/sctp_stat_gtk.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
#define DEFAULT_PIXELS_PER_TICK 2
#define MAX_PIXELS_PER_TICK 4
@@ -1297,7 +1298,7 @@ static void init_sctp_graph_window(struct sctp_udata *u_data)
gtk_widget_set_tooltip_text(zoomout_bt, "Zoom out one step");
gtk_widget_set_sensitive(zoomout_bt, FALSE);
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(hbox), bt_close, FALSE, FALSE, 0);
gtk_widget_show(bt_close);
g_signal_connect(bt_close, "clicked", G_CALLBACK(sctp_graph_close_cb), u_data);
diff --git a/ui/gtk/sctp_chunk_stat_dlg.c b/ui/gtk/sctp_chunk_stat_dlg.c
index 1551ba460e..5bc03df5f5 100644
--- a/ui/gtk/sctp_chunk_stat_dlg.c
+++ b/ui/gtk/sctp_chunk_stat_dlg.c
@@ -36,6 +36,7 @@
#include "ui/gtk/main.h"
#include "ui/tap-sctp-analysis.h"
#include "ui/gtk/sctp_stat_gtk.h"
+#include "ui/gtk/stock_icons.h"
static GtkWidget *clist = NULL;
static GList *last_list = NULL;
@@ -635,7 +636,7 @@ gtk_sctpstat_dlg(struct sctp_udata *u_data, unsigned int direction)
gtk_box_set_spacing(GTK_BOX (hbuttonbox2), 0);
gtk_widget_show(hbuttonbox2);
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add (GTK_CONTAINER (hbuttonbox2), bt_close);
gtk_widget_show (bt_close);
@@ -762,7 +763,7 @@ sctp_chunk_dlg(struct sctp_udata *u_data)
gtk_box_set_spacing(GTK_BOX (h_button_box), 0);
gtk_widget_show(h_button_box);
- close_bt = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ close_bt = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(h_button_box), close_bt, FALSE, FALSE, 0);
gtk_widget_show(close_bt);
g_signal_connect(close_bt, "clicked", G_CALLBACK(on_close_dlg), u_data);
diff --git a/ui/gtk/sctp_error_dlg.c b/ui/gtk/sctp_error_dlg.c
index c1749a6ace..95be6a4e06 100644
--- a/ui/gtk/sctp_error_dlg.c
+++ b/ui/gtk/sctp_error_dlg.c
@@ -35,6 +35,7 @@
#include "ui/tap-sctp-analysis.h"
#include "ui/gtk/sctp_stat_gtk.h"
#include "ui/gtk/gui_utils.h"
+#include "ui/gtk/stock_icons.h"
static GtkWidget *sctp_error_dlg=NULL;
static GtkWidget *clist = NULL;
@@ -260,7 +261,7 @@ gtk_sctperror_dlg(void)
gtk_widget_show (bt_frame);
gtk_container_add (GTK_CONTAINER (hbuttonbox2), bt_frame);
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_widget_show (bt_close);
gtk_container_add (GTK_CONTAINER (hbuttonbox2), bt_close);
diff --git a/ui/gtk/sctp_graph_dlg.c b/ui/gtk/sctp_graph_dlg.c
index 9ceb5e968d..471314c254 100644
--- a/ui/gtk/sctp_graph_dlg.c
+++ b/ui/gtk/sctp_graph_dlg.c
@@ -43,6 +43,7 @@
#include "ui/gtk/sctp_stat_gtk.h"
#include "ui/gtk/gui_utils.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
#define DEFAULT_PIXELS_PER_TICK 2
#define MAX_PIXELS_PER_TICK 4
@@ -1722,7 +1723,7 @@ init_sctp_graph_window(struct sctp_udata *u_data)
gtk_widget_set_tooltip_text(zoomout_bt, "Zoom out one step");
gtk_widget_set_sensitive(zoomout_bt, FALSE);
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_box_pack_start(GTK_BOX(hbox), bt_close, FALSE, FALSE, 0);
gtk_widget_show(bt_close);
g_signal_connect(bt_close, "clicked", G_CALLBACK(sctp_graph_close_cb), u_data);
diff --git a/ui/gtk/sctp_stat_dlg.c b/ui/gtk/sctp_stat_dlg.c
index 73a67a7703..0f1cb533f2 100644
--- a/ui/gtk/sctp_stat_dlg.c
+++ b/ui/gtk/sctp_stat_dlg.c
@@ -40,6 +40,7 @@
#include "ui/gtk/gtkglobals.h"
#include "ui/gtk/old-gtk-compat.h"
+#include "ui/gtk/stock_icons.h"
static GtkWidget *sctp_stat_dlg = NULL;
static GtkWidget *clist = NULL;
@@ -615,7 +616,7 @@ gtk_sctpstat_dlg(void)
gtk_widget_show(bt_analyse);
gtk_widget_set_sensitive(bt_analyse,FALSE);
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add(GTK_CONTAINER(hbuttonbox2), bt_close);
gtk_widget_set_can_default(bt_close, TRUE);
window_set_cancel_button(sctp_stat_dlg_w, bt_close, sctp_stat_on_close);
diff --git a/ui/gtk/simple_dialog.c b/ui/gtk/simple_dialog.c
index 41a73e6620..b47df24712 100644
--- a/ui/gtk/simple_dialog.c
+++ b/ui/gtk/simple_dialog.c
@@ -63,20 +63,20 @@ display_simple_dialog(gint type, gint btn_mask, char *message)
/* Main window */
switch (type) {
case ESD_TYPE_WARN :
- type_pm = gtk_image_new_from_stock( GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+ type_pm = ws_gtk_image_new_from_stock( GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
break;
case ESD_TYPE_CONFIRMATION:
- type_pm = gtk_image_new_from_stock( GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
+ type_pm = ws_gtk_image_new_from_stock( GTK_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG);
break;
case ESD_TYPE_ERROR:
- type_pm = gtk_image_new_from_stock( GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_DIALOG);
+ type_pm = ws_gtk_image_new_from_stock( GTK_STOCK_DIALOG_ERROR, GTK_ICON_SIZE_DIALOG);
break;
case ESD_TYPE_STOP :
- type_pm = gtk_image_new_from_stock( GTK_STOCK_STOP, GTK_ICON_SIZE_DIALOG);
+ type_pm = ws_gtk_image_new_from_stock( GTK_STOCK_STOP, GTK_ICON_SIZE_DIALOG);
break;
case ESD_TYPE_INFO :
default :
- type_pm = gtk_image_new_from_stock( GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
+ type_pm = ws_gtk_image_new_from_stock( GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_DIALOG);
break;
}
diff --git a/ui/gtk/stock_icons.c b/ui/gtk/stock_icons.c
index 15408f5c5a..c174b0a67d 100644
--- a/ui/gtk/stock_icons.c
+++ b/ui/gtk/stock_icons.c
@@ -25,6 +25,9 @@
#include <gtk/gtk.h>
+#include <stdlib.h>
+#include <string.h>
+
#include "ui/gtk/stock_icons.h"
#include "ui/gtk/toolbar_icons.h"
#include "ui/gtk/wsicon.h"
@@ -68,11 +71,16 @@
#include "../../image/toolbar/telephone_16.xpm"
#include "../../image/toolbar/analyze_24.xpm"
-#define NO_MOD (GdkModifierType)0
+typedef struct stock_item_tag {
+ const char * name;
+ const char * icon;
+ const char * label;
+} stock_item_t;
typedef struct stock_pixmap_tag{
const char * name;
const char ** xpm_data;
+ const guint size;
} stock_pixmap_t;
typedef struct stock_pixbuf_tag{
@@ -81,86 +89,212 @@ typedef struct stock_pixbuf_tag{
const guint8 * pb_data24; /* Mandatory */
} stock_pixbuf_t;
+/*
+ * Register non-standard pixmaps with the gtk-stock engine.
+ * Most of the icon names match the item name here.
+ * Use default stock icons for Wireshark specifics where the icon metapher makes sense.
+ * PLEASE DON'T REUSE STOCK ICONS IF THEY ARE USUALLY USED FOR SOME DIFFERENT MEANING!!!)
+ */
+static stock_item_t ws_stock_items[] = {
+ {(char *)WIRESHARK_STOCK_CAPTURE_INTERFACES, (char *)WIRESHARK_STOCK_CAPTURE_INTERFACES, (char *)"_Interfaces"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_OPTIONS, (char *)WIRESHARK_STOCK_CAPTURE_OPTIONS, (char *)"_Options"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_START, (char *)WIRESHARK_STOCK_CAPTURE_START, (char *)"_Start"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_STOP, (char *)WIRESHARK_STOCK_CAPTURE_STOP, (char *)"S_top"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_RESTART, (char *)WIRESHARK_STOCK_CAPTURE_RESTART, (char *)"_Restart"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_FILTER, (char *)WIRESHARK_STOCK_CAPTURE_FILTER, (char *)"_Capture Filter"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, (char *)WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, (char *)"_Capture Filter:"},
+ {(char *)WIRESHARK_STOCK_CAPTURE_DETAILS, (char *)WIRESHARK_STOCK_CAPTURE_DETAILS, (char *)"_Details"},
+ #ifdef HAVE_GEOIP
+ {(char *)WIRESHARK_STOCK_MAP, (char *)WIRESHARK_STOCK_MAP, (char *)"Map"},
+ #endif
+ {(char *)WIRESHARK_STOCK_GRAPH_A_B, (char *)WIRESHARK_STOCK_GRAPH_A_B, (char *)"Graph A" UTF8_RIGHTWARDS_ARROW "B"},
+ {(char *)WIRESHARK_STOCK_GRAPH_B_A, (char *)WIRESHARK_STOCK_GRAPH_B_A, (char *)"Graph A" UTF8_LEFTWARDS_ARROW "B"},
+ {(char *)WIRESHARK_STOCK_FOLLOW_STREAM, (char *)WIRESHARK_STOCK_FOLLOW_STREAM, (char *)"Follow Stream"},
+ {(char *)WIRESHARK_STOCK_DISPLAY_FILTER, (char *)WIRESHARK_STOCK_DISPLAY_FILTER, (char *)"Display _Filter"},
+ {(char *)WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, (char *)WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, (char *)"F_ilter:"},
+ {(char *)WIRESHARK_STOCK_BROWSE, (char *)GTK_STOCK_OPEN, (char *)"_Browse..."},
+ {(char *)WIRESHARK_STOCK_CREATE_STAT, (char *)GTK_STOCK_OK, (char *)"Create _Stat"},
+ {(char *)WIRESHARK_STOCK_EXPORT, (char *)GTK_STOCK_SAVE, (char *)"_Export..."}, /* XXX: needs a better icon */
+ {(char *)WIRESHARK_STOCK_IMPORT, (char *)GTK_STOCK_OPEN, (char *)"_Import..."}, /* XXX: needs a better icon */
+ {(char *)WIRESHARK_STOCK_EDIT, (char *)GTK_STOCK_PROPERTIES, (char *)"_Edit..."},
+ {(char *)WIRESHARK_STOCK_ADD_EXPRESSION, (char *)GTK_STOCK_ADD, (char *)"E_xpression..." }, /* plus sign coming from icon */
+ {(char *)WIRESHARK_STOCK_CLEAR_EXPRESSION, (char *)GTK_STOCK_CLEAR, (char *)"Clea_r" },
+ {(char *)WIRESHARK_STOCK_APPLY_EXPRESSION, (char *)GTK_STOCK_APPLY, (char *)"App_ly" },
+ {(char *)WIRESHARK_STOCK_SAVE_ALL, (char *)GTK_STOCK_SAVE, (char *)"Save A_ll"}, /* XXX: needs a better icon */
+ {(char *)WIRESHARK_STOCK_DONT_SAVE, (char *)GTK_STOCK_CLEAR, (char *)"Continue _without Saving"},
+ {(char *)WIRESHARK_STOCK_QUIT_DONT_SAVE, (char *)GTK_STOCK_CLEAR, (char *)"Quit _without Saving"},
+ {(char *)WIRESHARK_STOCK_STOP_DONT_SAVE, (char *)GTK_STOCK_CLEAR, (char *)"Stop and Continue _without Saving"},
+ {(char *)WIRESHARK_STOCK_STOP_QUIT_DONT_SAVE, (char *)GTK_STOCK_CLEAR, (char *)"Stop and Quit _without Saving"},
+ {(char *)WIRESHARK_STOCK_STOP_SAVE, (char *)GTK_STOCK_SAVE, (char *)"Stop and Save"},
+ {(char *)WIRESHARK_STOCK_ABOUT, (char *)WIRESHARK_STOCK_ABOUT, (char *)"_About"},
+ {(char *)WIRESHARK_STOCK_COLORIZE, (char *)WIRESHARK_STOCK_COLORIZE, (char *)"_Colorize"},
+ {(char *)WIRESHARK_STOCK_AUTOSCROLL, (char *)WIRESHARK_STOCK_AUTOSCROLL, (char *)"_Auto Scroll"},
+ {(char *)WIRESHARK_STOCK_RESIZE_COLUMNS, (char *)WIRESHARK_STOCK_RESIZE_COLUMNS, (char *)"Resize Columns"},
+ {(char *)WIRESHARK_STOCK_TIME, (char *)WIRESHARK_STOCK_TIME, (char *)"Time"},
+ {(char *)WIRESHARK_STOCK_INTERNET, (char *)WIRESHARK_STOCK_INTERNET, (char *)"Internet"},
+ {(char *)WIRESHARK_STOCK_WEB_SUPPORT, (char *)WIRESHARK_STOCK_WEB_SUPPORT, (char *)"Web Support"},
+ {(char *)WIRESHARK_STOCK_WIKI, (char *)WIRESHARK_STOCK_WIKI, (char *)"Wiki"},
+ {(char *)WIRESHARK_STOCK_CONVERSATIONS, (char *)WIRESHARK_STOCK_CONVERSATIONS, (char *)"Conversations"},
+ {(char *)WIRESHARK_STOCK_ENDPOINTS, (char *)WIRESHARK_STOCK_ENDPOINTS, (char *)"Endpoints"},
+ {(char *)WIRESHARK_STOCK_EXPERT_INFO, (char *)WIRESHARK_STOCK_EXPERT_INFO, (char *)"Expert Info"},
+ {(char *)WIRESHARK_STOCK_GRAPHS, (char *)WIRESHARK_STOCK_GRAPHS, (char *)"Graphs"},
+ {(char *)WIRESHARK_STOCK_FLOW_GRAPH, (char *)WIRESHARK_STOCK_FLOW_GRAPH, (char *)"Flow Graph"},
+ {(char *)WIRESHARK_STOCK_TELEPHONY, (char *)WIRESHARK_STOCK_TELEPHONY, (char *)"Telephony"},
+ {(char *)WIRESHARK_STOCK_DECODE_AS, (char *)WIRESHARK_STOCK_DECODE_AS, (char *)"Decode As"},
+ {(char *)WIRESHARK_STOCK_CHECKBOX, (char *)WIRESHARK_STOCK_CHECKBOX, (char *)"Checkbox"},
+ {(char *)WIRESHARK_STOCK_FILE_SET_LIST, (char *)WIRESHARK_STOCK_FILE_SET_LIST, (char *)"List Files"},
+ {(char *)WIRESHARK_STOCK_FILE_SET_NEXT, (char *)WIRESHARK_STOCK_FILE_SET_NEXT, (char *)"Next File"},
+ {(char *)WIRESHARK_STOCK_FILE_SET_PREVIOUS, (char *)WIRESHARK_STOCK_FILE_SET_PREVIOUS, (char *)"Previous File"},
+ {(char *)WIRESHARK_STOCK_FILTER_OUT_STREAM, (char *)WIRESHARK_STOCK_FILTER_OUT_STREAM, (char *)"Filter Out This Stream"},
+ {(char *)WIRESHARK_STOCK_ENABLE, (char *)WIRESHARK_STOCK_ENABLE, (char *)"Enable"},
+ {(char *)WIRESHARK_STOCK_DISABLE, (char *)GTK_STOCK_CLOSE, (char *)"Disable"},
+ {(char *)WIRESHARK_STOCK_COLOR1, (char *)WIRESHARK_STOCK_COLOR1, (char *)"Color 1"},
+ {(char *)WIRESHARK_STOCK_COLOR2, (char *)WIRESHARK_STOCK_COLOR2, (char *)"Color 2"},
+ {(char *)WIRESHARK_STOCK_COLOR3, (char *)WIRESHARK_STOCK_COLOR3, (char *)"Color 3"},
+ {(char *)WIRESHARK_STOCK_COLOR4, (char *)WIRESHARK_STOCK_COLOR4, (char *)"Color 4"},
+ {(char *)WIRESHARK_STOCK_COLOR5, (char *)WIRESHARK_STOCK_COLOR5, (char *)"Color 5"},
+ {(char *)WIRESHARK_STOCK_COLOR6, (char *)WIRESHARK_STOCK_COLOR6, (char *)"Color 6"},
+ {(char *)WIRESHARK_STOCK_COLOR7, (char *)WIRESHARK_STOCK_COLOR7, (char *)"Color 7"},
+ {(char *)WIRESHARK_STOCK_COLOR8, (char *)WIRESHARK_STOCK_COLOR8, (char *)"Color 8"},
+ {(char *)WIRESHARK_STOCK_COLOR9, (char *)WIRESHARK_STOCK_COLOR9, (char *)"Color 9"},
+ {(char *)WIRESHARK_STOCK_COLOR0, (char *)WIRESHARK_STOCK_COLOR0, (char *)"Color 10"},
+ {(char *)WIRESHARK_STOCK_DECODE, (char *)WIRESHARK_STOCK_DECODE, (char *)"Decode"},
+ {(char *)WIRESHARK_STOCK_AUDIO_PLAYER, (char *)WIRESHARK_STOCK_AUDIO_PLAYER, (char *)"Player"},
+ {(char *)WIRESHARK_STOCK_VOIP_FLOW, (char *)WIRESHARK_STOCK_VOIP_FLOW, (char *)"Flow"},
+ {(char *)WIRESHARK_STOCK_TELEPHONE, (char *)WIRESHARK_STOCK_TELEPHONE, (char *)"Telephone"},
+ {(char *)WIRESHARK_STOCK_PREPARE_FILTER, (char *)WIRESHARK_STOCK_PREPARE_FILTER, (char *)"Prepare Filter"},
+ {(char *)WIRESHARK_STOCK_ANALYZE, (char *)WIRESHARK_STOCK_ANALYZE, (char *)"Analyze"},
+ {(char *)WIRESHARK_STOCK_SAVE, (char *)WIRESHARK_STOCK_SAVE, (char *)"Save"}
+};
+
+static stock_item_t gtk_stock_items[] = {
+ {(char *)GTK_STOCK_ABOUT, (char *)"help-about", (char *)"_About"},
+ {(char *)GTK_STOCK_ADD, (char *)"list-add", (char *)"_Add"},
+ {(char *)GTK_STOCK_APPLY, NULL, (char *)"_Apply"},
+ {(char *)GTK_STOCK_BOLD, (char *)"format-text-bold", (char *)"_Bold"},
+ {(char *)GTK_STOCK_CANCEL, NULL, (char *)"_Cancel"},
+ {(char *)GTK_STOCK_CAPS_LOCK_WARNING, NULL, NULL},
+ {(char *)GTK_STOCK_CDROM, (char *)"media-optical", (char *)"_CD-ROM"},
+ {(char *)GTK_STOCK_CLEAR, (char *)"edit-clear", (char *)"_Clear"},
+ {(char *)GTK_STOCK_CLOSE, (char *)"window-close", (char *)"_Close"},
+ {(char *)GTK_STOCK_COLOR_PICKER, NULL, NULL},
+ {(char *)GTK_STOCK_CONNECT, NULL, (char *)"C_onnect"},
+ {(char *)GTK_STOCK_CONVERT, NULL, (char *)"_Convert"},
+ {(char *)GTK_STOCK_COPY, (char *)"edit-copy", (char *)"_Copy"},
+ {(char *)GTK_STOCK_CUT, (char *)"edit-cut", (char *)"Cu_t"},
+ {(char *)GTK_STOCK_DELETE, (char *)"edit-delete", (char *)"_Delete"},
+ {(char *)GTK_STOCK_DIALOG_AUTHENTICATION, (char *)"dialog-password", NULL},
+ {(char *)GTK_STOCK_DIALOG_INFO, (char *)"dialog-information", (char *)"Information"},
+ {(char *)GTK_STOCK_DIALOG_WARNING, (char *)"dialog-warning", (char *)"Warning"},
+ {(char *)GTK_STOCK_DIALOG_ERROR, (char *)"dialog-error", (char *)"Error"},
+ {(char *)GTK_STOCK_DIALOG_QUESTION, (char *)"dialog-question", (char *)"Question"},
+ {(char *)GTK_STOCK_DIRECTORY, (char *)"folder", NULL},
+ {(char *)GTK_STOCK_DISCARD, NULL, (char *)"_Discard"},
+ {(char *)GTK_STOCK_DISCONNECT, NULL, (char *)"_Disconnect"},
+ {(char *)GTK_STOCK_DND, NULL, NULL},
+ {(char *)GTK_STOCK_DND_MULTIPLE, NULL, NULL},
+ {(char *)GTK_STOCK_EDIT, NULL, (char *)"_Edit"},
+ {(char *)GTK_STOCK_EXECUTE, (char *)"system-run", (char *)"_Execute"},
+ {(char *)GTK_STOCK_FILE, (char *)"text-x-generic", (char *)"_File"},
+ {(char *)GTK_STOCK_FIND, (char *)"edit-find", (char *)"_Find"},
+ {(char *)GTK_STOCK_FIND_AND_REPLACE, (char *)"edit-find-replace", (char *)"Find and _Replace"},
+ {(char *)GTK_STOCK_FLOPPY, (char *)"media-floppy", (char *)"_Floppy"},
+ {(char *)GTK_STOCK_FULLSCREEN, (char *)"view-fullscreen", (char *)"_Fullscreen"},
+ {(char *)GTK_STOCK_GOTO_BOTTOM, (char *)"go-bottom", (char *)"_Bottom"},
+ {(char *)GTK_STOCK_GOTO_FIRST, (char *)"go-first", (char *)"_First"},
+ {(char *)GTK_STOCK_GOTO_LAST, (char *)"go-last", (char *)"_Last"},
+ {(char *)GTK_STOCK_GOTO_TOP, (char *)"go-top", (char *)"_Top"},
+ {(char *)GTK_STOCK_GO_BACK, (char *)"go-previous", (char *)"_Back"},
+ {(char *)GTK_STOCK_GO_DOWN, (char *)"go-down", (char *)"_Down"},
+ {(char *)GTK_STOCK_GO_FORWARD, (char *)"go-next", (char *)"_Forward"},
+ {(char *)GTK_STOCK_GO_UP, (char *)"go-up", (char *)"_Up"},
+ {(char *)GTK_STOCK_HARDDISK, (char *)"drive-harddisk", (char *)"_Hard Disk"},
+ {(char *)GTK_STOCK_HELP, (char *)"help-browser", (char *)"_Help"},
+ {(char *)GTK_STOCK_HOME, (char *)"go-home", (char *)"_Home"},
+ {(char *)GTK_STOCK_INDEX, NULL, (char *)"_Index"},
+ {(char *)GTK_STOCK_INDENT, (char *)"format-indent-more", (char *)"Increase Indent"},
+ {(char *)GTK_STOCK_INFO, (char *)"dialog-information", (char *)"_Information"},
+ {(char *)GTK_STOCK_ITALIC, (char *)"format-text-italic", (char *)"_Italic"},
+ {(char *)GTK_STOCK_JUMP_TO, (char *)"go-jump", (char *)"_Jump to"},
+ {(char *)GTK_STOCK_JUSTIFY_CENTER, (char *)"format-justify-center", (char *)"_Center"},
+ {(char *)GTK_STOCK_JUSTIFY_FILL, (char *)"format-justify-fill", (char *)"_Fill"},
+ {(char *)GTK_STOCK_JUSTIFY_LEFT, (char *)"format-justify-left", (char *)"_Left"},
+ {(char *)GTK_STOCK_JUSTIFY_RIGHT, (char *)"format-justify-right", (char *)"_Right"},
+ {(char *)GTK_STOCK_LEAVE_FULLSCREEN, (char *)"view-restore", (char *)"_Leave Fullscreen"},
+ {(char *)GTK_STOCK_MISSING_IMAGE, (char *)"image-missing", NULL},
+ {(char *)GTK_STOCK_MEDIA_FORWARD, (char *)"media-seek-forward", (char *)"_Forward"},
+ {(char *)GTK_STOCK_MEDIA_NEXT, (char *)"media-skip-forward", (char *)"_Next"},
+ {(char *)GTK_STOCK_MEDIA_PAUSE, (char *)"media-playback-pause", (char *)"P_ause"},
+ {(char *)GTK_STOCK_MEDIA_PLAY, (char *)"media-playback-start", (char *)"_Play"},
+ {(char *)GTK_STOCK_MEDIA_PREVIOUS, (char *)"media-skip-backward", (char *)"Pre_vious"},
+ {(char *)GTK_STOCK_MEDIA_RECORD, (char *)"media-record", (char *)"_Record"},
+ {(char *)GTK_STOCK_MEDIA_REWIND, (char *)"media-seek-backward", (char *)"R_ewind"},
+ {(char *)GTK_STOCK_MEDIA_STOP, (char *)"media-playback-stop", (char *)"_Stop"},
+ {(char *)GTK_STOCK_NETWORK, (char *)"network-workgroup", (char *)"_Network"},
+ {(char *)GTK_STOCK_NEW, (char *)"document-new", (char *)"_New"},
+ {(char *)GTK_STOCK_NO, NULL, (char *)"_No"},
+ {(char *)GTK_STOCK_OK, NULL, (char *)"_OK"},
+ {(char *)GTK_STOCK_OPEN, (char *)"document-open", (char *)"_Open"},
+ {(char *)GTK_STOCK_ORIENTATION_PORTRAIT, (char *)"?", (char *)"Portrait"},
+ {(char *)GTK_STOCK_ORIENTATION_LANDSCAPE, (char *)"?", (char *)"Landscape"},
+ {(char *)GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE, (char *)"?", (char *)"Reverse landscape"},
+ {(char *)GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT, (char *)"?", (char *)"Reverse portrait"},
+ {(char *)GTK_STOCK_PAGE_SETUP, (char *)"document-page-setup", (char *)"Page Set_up"},
+ {(char *)GTK_STOCK_PASTE, (char *)"edit-paste", (char *)"_Paste"},
+ {(char *)GTK_STOCK_PREFERENCES, (char *)"preferences-system", (char *)"_Preferences"},
+ {(char *)GTK_STOCK_PRINT, (char *)"document-print", (char *)"_Print"},
+ {(char *)GTK_STOCK_PRINT_ERROR, (char *)"printer-error", NULL},
+ {(char *)GTK_STOCK_PRINT_PAUSED, NULL, NULL},
+ {(char *)GTK_STOCK_PRINT_PREVIEW, NULL, (char *)"Print Pre_view"},
+ {(char *)GTK_STOCK_PRINT_REPORT, NULL, NULL},
+ {(char *)GTK_STOCK_PRINT_WARNING, NULL, NULL},
+ {(char *)GTK_STOCK_PROPERTIES, (char *)"document-properties", (char *)"_Properties"},
+ {(char *)GTK_STOCK_QUIT, (char *)"application-exit", (char *)"_Quit"},
+ {(char *)GTK_STOCK_REDO, (char *)"edit-redo", (char *)"_Redo"},
+ {(char *)GTK_STOCK_REFRESH, (char *)"view-refresh", (char *)"_Refresh"},
+ {(char *)GTK_STOCK_REMOVE, (char *)"list-remove", (char *)"_Remove"},
+ {(char *)GTK_STOCK_REVERT_TO_SAVED, (char *)"document-revert", (char *)"_Revert"},
+ {(char *)GTK_STOCK_SAVE, (char *)"document-save", (char *)"_Save"},
+ {(char *)GTK_STOCK_SAVE_AS, (char *)"document-save-as", (char *)"Save _As"},
+ {(char *)GTK_STOCK_SELECT_ALL, (char *)"edit-select-all", (char *)"Select _All"},
+ {(char *)GTK_STOCK_SELECT_COLOR, NULL, (char *)"_Color"},
+ {(char *)GTK_STOCK_SELECT_FONT, NULL, (char *)"_Font"},
+ {(char *)GTK_STOCK_SORT_ASCENDING, (char *)"view-sort-ascending", (char *)"_Ascending"},
+ {(char *)GTK_STOCK_SORT_DESCENDING, (char *)"view-sort-descending", (char *)"_Descending"},
+ {(char *)GTK_STOCK_SPELL_CHECK, (char *)"tools-check-spelling", (char *)"_Spell Check"},
+ {(char *)GTK_STOCK_STOP, (char *)"process-stop", (char *)"_Stop"},
+ {(char *)GTK_STOCK_STRIKETHROUGH, (char *)"format-text-strikethrough", (char *)"_Strikethrough"},
+ {(char *)GTK_STOCK_UNDELETE, NULL, (char *)"_Undelete"},
+ {(char *)GTK_STOCK_UNDERLINE, (char *)"format-text-underline", (char *)"_Underline"},
+ {(char *)GTK_STOCK_UNDO, (char *)"edit-undo", (char *)"_Undo"},
+ {(char *)GTK_STOCK_UNINDENT, (char *)"format-indent-less", NULL},
+ {(char *)GTK_STOCK_YES, NULL, (char *)"_Yes"},
+ {(char *)GTK_STOCK_ZOOM_100, (char *)"zoom-original", (char *)"_Normal Size"},
+ {(char *)GTK_STOCK_ZOOM_FIT, (char *)"zoom-fit-best", (char *)"Best _Fit"},
+ {(char *)GTK_STOCK_ZOOM_IN, (char *)"zoom-in", (char *)"Zoom _In"},
+ {(char *)GTK_STOCK_ZOOM_OUT, (char *)"zoom-out", (char *)"Zoom _Out"},
+};
+
+/**
+ * Compare two stock items by name.
+ */
+static int si_cmp(const stock_item_t * a, const stock_item_t * b) {
+ return strcmp(a->name, b->name);
+}
+
+
+#define BS(item, arr) (stock_item_t *)bsearch((void*)(((char*)&item) - offsetof(stock_item_t, name)), \
+ (void*)arr, sizeof(arr) / sizeof(arr[0]), sizeof(arr[0]), \
+ (int (*)(const void *, const void *))si_cmp)
+
/* generate application specific stock items */
void stock_icons_init(void) {
+ guint32 i;
+#if !GTK_CHECK_VERSION(3, 10, 0)
GtkIconFactory * factory;
- gint32 i;
- GdkPixbuf * pixbuf;
GtkIconSet *icon_set;
-
-
- /* register non-standard pixmaps with the gtk-stock engine */
- static const GtkStockItem stock_items[] = {
- { (char *)WIRESHARK_STOCK_CAPTURE_INTERFACES, (char *)"_Interfaces", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_OPTIONS, (char *)"_Options", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_START, (char *)"_Start", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_STOP, (char *)"S_top", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_RESTART, (char *)"_Restart", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_FILTER, (char *)"_Capture Filter", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, (char *)"_Capture Filter:", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CAPTURE_DETAILS, (char *)"_Details", NO_MOD, 0, NULL },
-#ifdef HAVE_GEOIP
- { (char *)WIRESHARK_STOCK_MAP, (char *)"Map", NO_MOD, 0, NULL },
+ GtkIconSource *source16;
#endif
- { (char *)WIRESHARK_STOCK_GRAPH_A_B, (char *)"Graph A" UTF8_RIGHTWARDS_ARROW "B", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_GRAPH_B_A, (char *)"Graph A" UTF8_LEFTWARDS_ARROW "B", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_FOLLOW_STREAM, (char *)"Follow Stream", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_DISPLAY_FILTER, (char *)"Display _Filter", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, (char *)"F_ilter:", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_BROWSE, (char *)"_Browse...", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CREATE_STAT, (char *)"Create _Stat", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_EXPORT, (char *)"_Export...", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_IMPORT, (char *)"_Import...", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_EDIT, (char *)"_Edit...", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_ADD_EXPRESSION, (char *)"E_xpression..." , NO_MOD, 0, NULL }, /* plus sign coming from icon */
- { (char *)WIRESHARK_STOCK_CLEAR_EXPRESSION, (char *)"Clea_r" , NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_APPLY_EXPRESSION, (char *)"App_ly" , NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_SAVE_ALL, (char *)"Save A_ll", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_DONT_SAVE, (char *)"Continue _without Saving", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_QUIT_DONT_SAVE, (char *)"Quit _without Saving", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_STOP_DONT_SAVE, (char *)"Stop and Continue _without Saving", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_STOP_QUIT_DONT_SAVE, (char *)"Stop and Quit _without Saving", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_STOP_SAVE, (char *)"Stop and Save", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_ABOUT, (char *)"_About", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLORIZE, (char *)"_Colorize", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_AUTOSCROLL, (char *)"_Auto Scroll", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_RESIZE_COLUMNS, (char *)"Resize Columns", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_TIME, (char *)"Time", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_INTERNET, (char *)"Internet", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_WEB_SUPPORT, (char *)"Web Support", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_WIKI, (char *)"Wiki", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CONVERSATIONS, (char *)"Conversations", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_ENDPOINTS, (char *)"Endpoints", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_EXPERT_INFO, (char *)"Expert Info", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_GRAPHS, (char *)"Graphs", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_FLOW_GRAPH, (char *)"Flow Graph", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_TELEPHONY, (char *)"Telephony", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_DECODE_AS, (char *)"Decode As", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_CHECKBOX, (char *)"Checkbox", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_FILE_SET_LIST, (char *)"List Files", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_FILE_SET_NEXT, (char *)"Next File", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_FILE_SET_PREVIOUS, (char *)"Previous File", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_FILTER_OUT_STREAM, (char *)"Filter Out This Stream", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_ENABLE, (char *)"Enable", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_DISABLE, (char *)"Disable", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR1, (char *)"Color 1", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR2, (char *)"Color 2", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR3, (char *)"Color 3", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR4, (char *)"Color 4", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR5, (char *)"Color 5", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR6, (char *)"Color 6", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR7, (char *)"Color 7", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR8, (char *)"Color 8", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR9, (char *)"Color 9", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_COLOR0, (char *)"Color 10", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_DECODE, (char *)"Decode", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_AUDIO_PLAYER, (char *)"Player", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_VOIP_FLOW, (char *)"Flow", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_TELEPHONE, (char *)"Telephone", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_PREPARE_FILTER, (char *)"Prepare Filter", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_ANALYZE, (char *)"Analyze", NO_MOD, 0, NULL },
- { (char *)WIRESHARK_STOCK_SAVE, (char *)"Save", NO_MOD, 0, NULL }
- };
static const stock_pixbuf_t pixbufs[] = {
{ WIRESHARK_STOCK_ABOUT, wsicon_16_pb_data, wsicon_24_pb_data },
@@ -176,130 +310,241 @@ void stock_icons_init(void) {
/* New images should be PNGs + pixbufs above. Please don't add to this list. */
static const stock_pixmap_t pixmaps[] = {
- { WIRESHARK_STOCK_CAPTURE_FILTER, capture_filter_24_xpm },
- { WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, capture_filter_24_xpm },
- { WIRESHARK_STOCK_CAPTURE_DETAILS, capture_details_24_xpm },
+ { WIRESHARK_STOCK_CAPTURE_FILTER, capture_filter_24_xpm, 24},
+ { WIRESHARK_STOCK_CAPTURE_FILTER_ENTRY, capture_filter_24_xpm, 24},
+ { WIRESHARK_STOCK_CAPTURE_DETAILS, capture_details_24_xpm, 24},
#ifdef HAVE_GEOIP
- { WIRESHARK_STOCK_MAP, internet_24_xpm},
+ { WIRESHARK_STOCK_MAP, internet_24_xpm, 24},
#endif
- { WIRESHARK_STOCK_DISPLAY_FILTER, display_filter_24_xpm },
- { WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, display_filter_24_xpm },
- { WIRESHARK_STOCK_COLORIZE, colorize_24_xpm },
- { WIRESHARK_STOCK_AUTOSCROLL, autoscroll_24_xpm },
- { WIRESHARK_STOCK_RESIZE_COLUMNS, resize_columns_24_xpm},
- { WIRESHARK_STOCK_TIME, time_24_xpm},
- { WIRESHARK_STOCK_INTERNET, internet_24_xpm},
- { WIRESHARK_STOCK_WEB_SUPPORT, web_support_24_xpm},
- { WIRESHARK_STOCK_CONVERSATIONS, conversations_16_xpm},
- { WIRESHARK_STOCK_ENDPOINTS, endpoints_16_xpm},
- { WIRESHARK_STOCK_EXPERT_INFO, expert_info_16_xpm},
- { WIRESHARK_STOCK_GRAPHS, graphs_16_xpm},
- { WIRESHARK_STOCK_FLOW_GRAPH, flow_graph_16_xpm},
- { WIRESHARK_STOCK_TELEPHONY, telephony_16_xpm},
- { WIRESHARK_STOCK_DECODE_AS, decode_as_16_xpm},
- { WIRESHARK_STOCK_CHECKBOX, checkbox_16_xpm},
- { WIRESHARK_STOCK_FILE_SET_LIST, file_set_list_16_xpm},
- { WIRESHARK_STOCK_FILE_SET_NEXT, file_set_next_16_xpm},
- { WIRESHARK_STOCK_FILE_SET_PREVIOUS, file_set_previous_16_xpm},
- { WIRESHARK_STOCK_FILTER_OUT_STREAM, display_filter_24_xpm},
- { WIRESHARK_STOCK_ENABLE, checkbox_16_xpm},
- { WIRESHARK_STOCK_COLOR1, icon_color_1_xpm},
- { WIRESHARK_STOCK_COLOR2, icon_color_2_xpm},
- { WIRESHARK_STOCK_COLOR3, icon_color_3_xpm},
- { WIRESHARK_STOCK_COLOR4, icon_color_4_xpm},
- { WIRESHARK_STOCK_COLOR5, icon_color_5_xpm},
- { WIRESHARK_STOCK_COLOR6, icon_color_6_xpm},
- { WIRESHARK_STOCK_COLOR7, icon_color_7_xpm},
- { WIRESHARK_STOCK_COLOR8, icon_color_8_xpm},
- { WIRESHARK_STOCK_COLOR9, icon_color_9_xpm},
- { WIRESHARK_STOCK_COLOR0, icon_color_0_xpm},
- { WIRESHARK_STOCK_DECODE, decode_24_xpm},
- { WIRESHARK_STOCK_AUDIO_PLAYER, audio_player_24_xpm},
- { WIRESHARK_STOCK_VOIP_FLOW, voip_flow_24_xpm},
- { WIRESHARK_STOCK_TELEPHONE, telephone_16_xpm},
- { WIRESHARK_STOCK_PREPARE_FILTER, display_filter_24_xpm},
- { WIRESHARK_STOCK_ANALYZE, analyze_24_xpm},
- { NULL, NULL }
+ { WIRESHARK_STOCK_DISPLAY_FILTER, display_filter_24_xpm, 24},
+ { WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY, display_filter_24_xpm, 24},
+ { WIRESHARK_STOCK_COLORIZE, colorize_24_xpm, 24},
+ { WIRESHARK_STOCK_AUTOSCROLL, autoscroll_24_xpm, 24},
+ { WIRESHARK_STOCK_RESIZE_COLUMNS, resize_columns_24_xpm, 24},
+ { WIRESHARK_STOCK_TIME, time_24_xpm, 24},
+ { WIRESHARK_STOCK_INTERNET, internet_24_xpm, 24},
+ { WIRESHARK_STOCK_WEB_SUPPORT, web_support_24_xpm, 24},
+ { WIRESHARK_STOCK_CONVERSATIONS, conversations_16_xpm, 16},
+ { WIRESHARK_STOCK_ENDPOINTS, endpoints_16_xpm, 16},
+ { WIRESHARK_STOCK_EXPERT_INFO, expert_info_16_xpm, 16},
+ { WIRESHARK_STOCK_GRAPHS, graphs_16_xpm, 16},
+ { WIRESHARK_STOCK_FLOW_GRAPH, flow_graph_16_xpm, 16},
+ { WIRESHARK_STOCK_TELEPHONY, telephony_16_xpm, 16},
+ { WIRESHARK_STOCK_DECODE_AS, decode_as_16_xpm, 16},
+ { WIRESHARK_STOCK_CHECKBOX, checkbox_16_xpm, 16},
+ { WIRESHARK_STOCK_FILE_SET_LIST, file_set_list_16_xpm, 16},
+ { WIRESHARK_STOCK_FILE_SET_NEXT, file_set_next_16_xpm, 16},
+ { WIRESHARK_STOCK_FILE_SET_PREVIOUS, file_set_previous_16_xpm, 16},
+ { WIRESHARK_STOCK_FILTER_OUT_STREAM, display_filter_24_xpm, 24},
+ { WIRESHARK_STOCK_ENABLE, checkbox_16_xpm, 16},
+ { WIRESHARK_STOCK_COLOR1, icon_color_1_xpm, 24},
+ { WIRESHARK_STOCK_COLOR2, icon_color_2_xpm, 24},
+ { WIRESHARK_STOCK_COLOR3, icon_color_3_xpm, 24},
+ { WIRESHARK_STOCK_COLOR4, icon_color_4_xpm, 24},
+ { WIRESHARK_STOCK_COLOR5, icon_color_5_xpm, 24},
+ { WIRESHARK_STOCK_COLOR6, icon_color_6_xpm, 24},
+ { WIRESHARK_STOCK_COLOR7, icon_color_7_xpm, 24},
+ { WIRESHARK_STOCK_COLOR8, icon_color_8_xpm, 24},
+ { WIRESHARK_STOCK_COLOR9, icon_color_9_xpm, 24},
+ { WIRESHARK_STOCK_COLOR0, icon_color_0_xpm, 24},
+ { WIRESHARK_STOCK_DECODE, decode_24_xpm, 24},
+ { WIRESHARK_STOCK_AUDIO_PLAYER, audio_player_24_xpm, 24},
+ { WIRESHARK_STOCK_VOIP_FLOW, voip_flow_24_xpm, 24},
+ { WIRESHARK_STOCK_TELEPHONE, telephone_16_xpm, 16},
+ { WIRESHARK_STOCK_PREPARE_FILTER, display_filter_24_xpm, 24},
+ { WIRESHARK_STOCK_ANALYZE, analyze_24_xpm, 24},
+ { NULL, NULL, 0}
};
- /* Register our stock items */
- gtk_stock_add (stock_items, G_N_ELEMENTS (stock_items));
+ /* sort lookup arrays */
+ qsort(ws_stock_items, sizeof(ws_stock_items)/sizeof(ws_stock_items[0]),
+ sizeof(ws_stock_items[0]), (int (*)(const void *, const void *))si_cmp);
+ qsort(gtk_stock_items, sizeof(gtk_stock_items)/sizeof(gtk_stock_items[0]),
+ sizeof(gtk_stock_items[0]), (int (*)(const void *, const void *))si_cmp);
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ for (i = 0; i < (sizeof(ws_stock_items) / sizeof(ws_stock_items[0])) ; i++) {
+ GtkStockItem stock_item =
+ {(char *)ws_stock_items[i].name,
+ (char *)ws_stock_items[i].label,
+ (GdkModifierType)0, 0, NULL};
+ gtk_stock_add(&stock_item, 1);
+ }
/* Add our custom icon factory to the list of defaults */
factory = gtk_icon_factory_new();
gtk_icon_factory_add_default(factory);
+#endif
- /* Add pixmaps our icon factory */
+ /* Add pixmaps as builtin theme icons */
/* Please use pixbufs (below) for new icons */
for (i = 0; pixmaps[i].name != NULL; i++) {
/* The default icon */
- pixbuf = gdk_pixbuf_new_from_xpm_data((const char **) (pixmaps[i].xpm_data));
+ GdkPixbuf * pixbuf = gdk_pixbuf_new_from_xpm_data((const char **) (pixmaps[i].xpm_data));
g_assert(pixbuf);
+#if !GTK_CHECK_VERSION(3, 10, 0)
icon_set = gtk_icon_set_new_from_pixbuf (pixbuf);
-
- /* XXX - add different sized icons here (some 16*16 icons look a bit blurred) */
- /*gtk_icon_set_add_source(icon_set, const GtkIconSource *source);*/
-
gtk_icon_factory_add (factory, pixmaps[i].name, icon_set);
gtk_icon_set_unref (icon_set);
+#endif
+ gtk_icon_theme_add_builtin_icon(pixmaps[i].name, pixmaps[i].size, pixbuf);
g_object_unref (G_OBJECT (pixbuf));
}
- /* Add pixbufs our icon factory */
+ /* Add pixbufs as builtin theme icons */
for (i = 0; pixbufs[i].name != NULL; i++) {
+ GdkPixbuf * pixbuf24 = gdk_pixbuf_new_from_inline(-1, pixbufs[i].pb_data24, FALSE, NULL);
+ g_assert(pixbuf24);
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ icon_set = gtk_icon_set_new_from_pixbuf(pixbuf24);
+ gtk_icon_factory_add (factory, pixbufs[i].name, icon_set);
+ gtk_icon_set_unref (icon_set);
+#endif
/* Default image */
- icon_set = gtk_icon_set_new_from_pixbuf(gdk_pixbuf_new_from_inline(-1, pixbufs[i].pb_data24, FALSE, NULL));
+ gtk_icon_theme_add_builtin_icon(pixbufs[i].name, 24, pixbuf24);
+
if (pixbufs[i].pb_data16) {
- GtkIconSource *source16 = gtk_icon_source_new();
- gtk_icon_source_set_pixbuf(source16, gdk_pixbuf_new_from_inline(-1, pixbufs[i].pb_data16, FALSE, NULL));
+ GdkPixbuf * pixbuf16 = gdk_pixbuf_new_from_inline(-1, pixbufs[i].pb_data16, FALSE, NULL);
+ g_assert(pixbuf16);
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ source16 = gtk_icon_source_new();
+ gtk_icon_source_set_pixbuf(source16, pixbuf16);
gtk_icon_source_set_size_wildcarded(source16, FALSE);
gtk_icon_source_set_size(source16, GTK_ICON_SIZE_MENU);
- gtk_icon_set_add_source(icon_set, source16);
/* Twice? Really? Seriously? */
source16 = gtk_icon_source_new();
- gtk_icon_source_set_pixbuf(source16, gdk_pixbuf_new_from_inline(-1, pixbufs[i].pb_data16, FALSE, NULL));
+ gtk_icon_source_set_pixbuf(source16, pixbuf16);
gtk_icon_source_set_size_wildcarded(source16, FALSE);
gtk_icon_source_set_size(source16, GTK_ICON_SIZE_SMALL_TOOLBAR);
- gtk_icon_set_add_source(icon_set, source16);
+#else
+ gtk_icon_theme_add_builtin_icon(pixbufs[i].name, 16, pixbuf16);
+#endif
+ g_object_unref (G_OBJECT (pixbuf16));
}
-
- gtk_icon_factory_add (factory, pixbufs[i].name, icon_set);
- gtk_icon_set_unref (icon_set);
+ g_object_unref (G_OBJECT (pixbuf24));
}
-
+#if !GTK_CHECK_VERSION(3, 10, 0)
/* use default stock icons for Wireshark specifics where the icon metapher makes sense */
/* PLEASE DON'T REUSE STOCK ICONS IF THEY ARE USUALLY USED FOR SOME DIFFERENT MEANING!!!) */
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_OPEN);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_BROWSE, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_OK);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_CREATE_STAT, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_SAVE);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_EXPORT, icon_set); /* XXX: needs a better icon */
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_OPEN);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_IMPORT, icon_set); /* XXX: needs a better icon */
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_PROPERTIES);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_EDIT, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_ADD);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_ADD_EXPRESSION, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_CLEAR);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_CLEAR_EXPRESSION, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_APPLY);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_APPLY_EXPRESSION, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_CLEAR);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_DONT_SAVE, icon_set);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_QUIT_DONT_SAVE, icon_set);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_STOP_DONT_SAVE, icon_set);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_STOP_QUIT_DONT_SAVE, icon_set);
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_SAVE);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_STOP_SAVE, icon_set);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_SAVE_ALL, icon_set); /* XXX: needs a better icon */
- icon_set = gtk_icon_factory_lookup_default(GTK_STOCK_CLOSE);
- gtk_icon_factory_add(factory, WIRESHARK_STOCK_DISABLE, icon_set);
- /* Drop our reference to the factory, GTK will hold a reference.*/
- g_object_unref (G_OBJECT (factory));
+ for (i = 0; i < (sizeof(ws_stock_items) / sizeof(ws_stock_items[0])) ; i++) {
+ stock_item_t * fallback_item = NULL;
+ if (NULL != (fallback_item = BS(ws_stock_items[i].icon, gtk_stock_items))) {
+ icon_set = gtk_icon_factory_lookup_default(fallback_item->name);
+ gtk_icon_factory_add(factory, ws_stock_items[i].name, icon_set);
+ }
+ }
+#endif
+}
+
+GtkWidget * ws_gtk_button_new_from_stock(const gchar *stock_id) {
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ return gtk_button_new_from_stock(stock_id);
+#else
+ GtkWidget * b;
+ stock_item_t * i = NULL;
+ if (NULL != (i = BS(stock_id, gtk_stock_items))) {
+ /* GTK stock item*/
+ return gtk_button_new_with_mnemonic(i->label);
+ } else if (NULL != (i = BS(stock_id, ws_stock_items))) {
+ /* Wireshark stock item*/
+ stock_item_t * fallback_item;
+ if (NULL != (fallback_item = BS(i->icon, gtk_stock_items))) {
+ /* Wireshark fallback item uses a GTK stock icon*/
+ b = gtk_button_new_from_icon_name(fallback_item->icon, GTK_ICON_SIZE_BUTTON);
+ } else {
+ b = gtk_button_new_from_icon_name(i->icon, GTK_ICON_SIZE_BUTTON);
+ }
+ gtk_button_set_label(GTK_BUTTON(b), i->label);
+ gtk_button_set_use_underline(GTK_BUTTON(b), TRUE);
+ return b;
+ }
+ return NULL;
+#endif
+}
+
+#define LBL_UNDERLINE(type, tb, lbl_item) \
+ gtk_tool_button_set_label(type(tb), (lbl_item)->label); \
+ gtk_tool_button_set_use_underline(type(tb), TRUE);
+
+GtkToolItem * ws_gtk_tool_button_new_from_stock(const gchar *stock_id) {
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ return gtk_tool_button_new_from_stock(stock_id);
+#else
+ GtkToolItem * b = NULL;
+ stock_item_t * i = NULL;
+ if (NULL != (i = BS(stock_id, gtk_stock_items))) {
+ /* GTK stock item*/
+ b = gtk_tool_button_new(NULL, i->label);
+ gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(b), TRUE);
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (b), i->icon);
+ } else if (NULL != (i = BS(stock_id, ws_stock_items))) {
+ /* Wireshark stock item*/
+ stock_item_t * fallback_item;
+ if (NULL != (fallback_item = BS(i->icon, gtk_stock_items))) {
+ /* Wireshark fallback item uses a GTK stock icon*/
+ b = gtk_tool_button_new(NULL, i->label);
+ gtk_tool_button_set_use_underline(GTK_TOOL_BUTTON(b), TRUE);
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(b), fallback_item->icon);
+ } else {
+ b = gtk_tool_button_new(NULL, i->label);
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON(b), i->icon);
+ }
+ }
+ return b;
+#endif
+}
+
+GtkToolItem * ws_gtk_toggle_tool_button_new_from_stock(const gchar *stock_id) {
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ return gtk_toggle_tool_button_new_from_stock(stock_id);
+#else
+ GtkToolItem * b = NULL;
+ stock_item_t * i = NULL;
+ if (NULL != (i = BS(stock_id, gtk_stock_items))) {
+ /* GTK stock item*/
+ b = gtk_toggle_tool_button_new();
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (b), i->icon);
+ LBL_UNDERLINE(GTK_TOOL_BUTTON, b, i);
+ } else if (NULL != (i = BS(stock_id, ws_stock_items))) {
+ /* Wireshark stock item*/
+ stock_item_t * fallback_item;
+ if (NULL != (fallback_item = BS(i->icon, gtk_stock_items))) {
+ /* Wireshark fallback item uses a GTK stock icon*/
+ b = gtk_toggle_tool_button_new();
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (b), fallback_item->icon);
+ LBL_UNDERLINE(GTK_TOOL_BUTTON, b, i);
+ } else {
+ b = gtk_toggle_tool_button_new();
+ gtk_tool_button_set_icon_name(GTK_TOOL_BUTTON (b), i->icon);
+ LBL_UNDERLINE(GTK_TOOL_BUTTON, b, i);
+ }
+ }
+ return b;
+#endif
+}
+
+GtkWidget * ws_gtk_image_new_from_stock(const gchar *stock_id, GtkIconSize size) {
+#if !GTK_CHECK_VERSION(3, 10, 0)
+ return gtk_image_new_from_stock(stock_id, size);
+#else
+ stock_item_t * i = NULL;
+ if (NULL != (i = BS(stock_id, gtk_stock_items))) {
+ /* GTK stock item*/
+ return gtk_image_new_from_icon_name(i->icon, size);
+ } else if (NULL != (i = BS(stock_id, ws_stock_items))) {
+ /* Wireshark stock item*/
+ stock_item_t * fallback_item;
+ if (NULL != (fallback_item = BS(i->icon, gtk_stock_items))) {
+ /* Wireshark fallback item uses a GTK stock icon*/
+ return gtk_image_new_from_icon_name(fallback_item->icon, size);
+ } else {
+ return gtk_image_new_from_icon_name(i->icon, size);
+ }
+ }
+ return NULL;
+#endif
}
/*
diff --git a/ui/gtk/stock_icons.h b/ui/gtk/stock_icons.h
index 417b9884ea..b5fd9d0ec9 100644
--- a/ui/gtk/stock_icons.h
+++ b/ui/gtk/stock_icons.h
@@ -24,6 +24,7 @@
#ifndef __STOCK_ICONS_H__
#define __STOCK_ICONS_H__
+#include <gtk/gtk.h>
#define WIRESHARK_STOCK_CAPTURE_INTERFACES "Wireshark_Stock_CaptureInterfaces"
#define WIRESHARK_STOCK_CAPTURE_OPTIONS "Wireshark_Stock_CaptureOptionss"
@@ -95,6 +96,570 @@
#define WIRESHARK_STOCK_ANALYZE "Wireshark_Analyze"
#define WIRESHARK_STOCK_SAVE "Wireshark_Save"
+/*
+ * Use of GTK_STOCK_.* is deprecated from 3.10
+ * https://developer.gnome.org/gtk3/stable/gtk3-Stock-Items.html
+ * We keep the defined names in the code and provide mapping for them
+ * to labels and standard icons based on
+ * https://docs.google.com/spreadsheet/pub?key=0AsPAM3pPwxagdGF4THNMMUpjUW5xMXZfdUNzMXhEa2c&output=html
+ */
+#if GTK_CHECK_VERSION(3, 10, 0)
+
+#ifdef GTK_STOCK_ABOUT
+#undef GTK_STOCK_ABOUT
+#endif
+#define GTK_STOCK_ABOUT "gtk-about"
+
+#ifdef GTK_STOCK_ADD
+#undef GTK_STOCK_ADD
+#endif
+#define GTK_STOCK_ADD "gtk-add"
+
+#ifdef GTK_STOCK_APPLY
+#undef GTK_STOCK_APPLY
+#endif
+#define GTK_STOCK_APPLY "gtk-apply"
+
+#ifdef GTK_STOCK_BOLD
+#undef GTK_STOCK_BOLD
+#endif
+#define GTK_STOCK_BOLD "gtk-bold"
+
+#ifdef GTK_STOCK_CANCEL
+#undef GTK_STOCK_CANCEL
+#endif
+#define GTK_STOCK_CANCEL "gtk-cancel"
+
+#ifdef GTK_STOCK_CAPS_LOCK_WARNING
+#undef GTK_STOCK_CAPS_LOCK_WARNING
+#endif
+#define GTK_STOCK_CAPS_LOCK_WARNING "gtk-caps-lock-warning"
+
+#ifdef GTK_STOCK_CDROM
+#undef GTK_STOCK_CDROM
+#endif
+#define GTK_STOCK_CDROM "gtk-cdrom"
+
+#ifdef GTK_STOCK_CLEAR
+#undef GTK_STOCK_CLEAR
+#endif
+#define GTK_STOCK_CLEAR "gtk-clear"
+
+#ifdef GTK_STOCK_CLOSE
+#undef GTK_STOCK_CLOSE
+#endif
+#define GTK_STOCK_CLOSE "gtk-close"
+
+#ifdef GTK_STOCK_COLOR_PICKER
+#undef GTK_STOCK_COLOR_PICKER
+#endif
+#define GTK_STOCK_COLOR_PICKER "gtk-color-picker"
+
+#ifdef GTK_STOCK_CONNECT
+#undef GTK_STOCK_CONNECT
+#endif
+#define GTK_STOCK_CONNECT "gtk-connect"
+
+#ifdef GTK_STOCK_CONVERT
+#undef GTK_STOCK_CONVERT
+#endif
+#define GTK_STOCK_CONVERT "gtk-convert"
+
+#ifdef GTK_STOCK_COPY
+#undef GTK_STOCK_COPY
+#endif
+#define GTK_STOCK_COPY "gtk-copy"
+
+#ifdef GTK_STOCK_CUT
+#undef GTK_STOCK_CUT
+#endif
+#define GTK_STOCK_CUT "gtk-cut"
+
+#ifdef GTK_STOCK_DELETE
+#undef GTK_STOCK_DELETE
+#endif
+#define GTK_STOCK_DELETE "gtk-delete"
+
+#ifdef GTK_STOCK_DIALOG_AUTHENTICATION
+#undef GTK_STOCK_DIALOG_AUTHENTICATION
+#endif
+#define GTK_STOCK_DIALOG_AUTHENTICATION "gtk-dialog-authentication"
+
+#ifdef GTK_STOCK_DIALOG_INFO
+#undef GTK_STOCK_DIALOG_INFO
+#endif
+#define GTK_STOCK_DIALOG_INFO "gtk-dialog-info"
+
+#ifdef GTK_STOCK_DIALOG_WARNING
+#undef GTK_STOCK_DIALOG_WARNING
+#endif
+#define GTK_STOCK_DIALOG_WARNING "gtk-dialog-warning"
+
+#ifdef GTK_STOCK_DIALOG_ERROR
+#undef GTK_STOCK_DIALOG_ERROR
+#endif
+#define GTK_STOCK_DIALOG_ERROR "gtk-dialog-error"
+
+#ifdef GTK_STOCK_DIALOG_QUESTION
+#undef GTK_STOCK_DIALOG_QUESTION
+#endif
+#define GTK_STOCK_DIALOG_QUESTION "gtk-dialog-question"
+
+#ifdef GTK_STOCK_DIRECTORY
+#undef GTK_STOCK_DIRECTORY
+#endif
+#define GTK_STOCK_DIRECTORY "gtk-directory"
+
+#ifdef GTK_STOCK_DISCARD
+#undef GTK_STOCK_DISCARD
+#endif
+#define GTK_STOCK_DISCARD "gtk-discard"
+
+#ifdef GTK_STOCK_DISCONNECT
+#undef GTK_STOCK_DISCONNECT
+#endif
+#define GTK_STOCK_DISCONNECT "gtk-disconnect"
+
+#ifdef GTK_STOCK_DND
+#undef GTK_STOCK_DND
+#endif
+#define GTK_STOCK_DND "gtk-dnd"
+
+#ifdef GTK_STOCK_DND_MULTIPLE
+#undef GTK_STOCK_DND_MULTIPLE
+#endif
+#define GTK_STOCK_DND_MULTIPLE "gtk-dnd-multiple"
+
+#ifdef GTK_STOCK_EDIT
+#undef GTK_STOCK_EDIT
+#endif
+#define GTK_STOCK_EDIT "gtk-edit"
+
+#ifdef GTK_STOCK_EXECUTE
+#undef GTK_STOCK_EXECUTE
+#endif
+#define GTK_STOCK_EXECUTE "gtk-execute"
+
+#ifdef GTK_STOCK_FILE
+#undef GTK_STOCK_FILE
+#endif
+#define GTK_STOCK_FILE "gtk-file"
+
+#ifdef GTK_STOCK_FIND
+#undef GTK_STOCK_FIND
+#endif
+#define GTK_STOCK_FIND "gtk-find"
+
+#ifdef GTK_STOCK_FIND_AND_REPLACE
+#undef GTK_STOCK_FIND_AND_REPLACE
+#endif
+#define GTK_STOCK_FIND_AND_REPLACE "gtk-find-and-replace"
+
+#ifdef GTK_STOCK_FLOPPY
+#undef GTK_STOCK_FLOPPY
+#endif
+#define GTK_STOCK_FLOPPY "gtk-floppy"
+
+#ifdef GTK_STOCK_FULLSCREEN
+#undef GTK_STOCK_FULLSCREEN
+#endif
+#define GTK_STOCK_FULLSCREEN "gtk-fullscreen"
+
+#ifdef GTK_STOCK_GOTO_BOTTOM
+#undef GTK_STOCK_GOTO_BOTTOM
+#endif
+#define GTK_STOCK_GOTO_BOTTOM "gtk-goto-bottom"
+
+#ifdef GTK_STOCK_GOTO_FIRST
+#undef GTK_STOCK_GOTO_FIRST
+#endif
+#define GTK_STOCK_GOTO_FIRST "gtk-goto-first"
+
+#ifdef GTK_STOCK_GOTO_LAST
+#undef GTK_STOCK_GOTO_LAST
+#endif
+#define GTK_STOCK_GOTO_LAST "gtk-goto-last"
+
+#ifdef GTK_STOCK_GOTO_TOP
+#undef GTK_STOCK_GOTO_TOP
+#endif
+#define GTK_STOCK_GOTO_TOP "gtk-goto-top"
+
+#ifdef GTK_STOCK_GO_BACK
+#undef GTK_STOCK_GO_BACK
+#endif
+#define GTK_STOCK_GO_BACK "gtk-go-back"
+
+#ifdef GTK_STOCK_GO_DOWN
+#undef GTK_STOCK_GO_DOWN
+#endif
+#define GTK_STOCK_GO_DOWN "gtk-go-down"
+
+#ifdef GTK_STOCK_GO_FORWARD
+#undef GTK_STOCK_GO_FORWARD
+#endif
+#define GTK_STOCK_GO_FORWARD "gtk-go-forward"
+
+#ifdef GTK_STOCK_GO_UP
+#undef GTK_STOCK_GO_UP
+#endif
+#define GTK_STOCK_GO_UP "gtk-go-up"
+
+#ifdef GTK_STOCK_HARDDISK
+#undef GTK_STOCK_HARDDISK
+#endif
+#define GTK_STOCK_HARDDISK "gtk-harddisk"
+
+#ifdef GTK_STOCK_HELP
+#undef GTK_STOCK_HELP
+#endif
+#define GTK_STOCK_HELP "gtk-help"
+
+#ifdef GTK_STOCK_HOME
+#undef GTK_STOCK_HOME
+#endif
+#define GTK_STOCK_HOME "gtk-home"
+
+#ifdef GTK_STOCK_INDEX
+#undef GTK_STOCK_INDEX
+#endif
+#define GTK_STOCK_INDEX "gtk-index"
+
+#ifdef GTK_STOCK_INDENT
+#undef GTK_STOCK_INDENT
+#endif
+#define GTK_STOCK_INDENT "gtk-indent"
+
+#ifdef GTK_STOCK_INFO
+#undef GTK_STOCK_INFO
+#endif
+#define GTK_STOCK_INFO "gtk-info"
+
+#ifdef GTK_STOCK_ITALIC
+#undef GTK_STOCK_ITALIC
+#endif
+#define GTK_STOCK_ITALIC "gtk-italic"
+
+#ifdef GTK_STOCK_JUMP_TO
+#undef GTK_STOCK_JUMP_TO
+#endif
+#define GTK_STOCK_JUMP_TO "gtk-jump-to"
+
+#ifdef GTK_STOCK_JUSTIFY_CENTER
+#undef GTK_STOCK_JUSTIFY_CENTER
+#endif
+#define GTK_STOCK_JUSTIFY_CENTER "gtk-justify-center"
+
+#ifdef GTK_STOCK_JUSTIFY_FILL
+#undef GTK_STOCK_JUSTIFY_FILL
+#endif
+#define GTK_STOCK_JUSTIFY_FILL "gtk-justify-fill"
+
+#ifdef GTK_STOCK_JUSTIFY_LEFT
+#undef GTK_STOCK_JUSTIFY_LEFT
+#endif
+#define GTK_STOCK_JUSTIFY_LEFT "gtk-justify-left"
+
+#ifdef GTK_STOCK_JUSTIFY_RIGHT
+#undef GTK_STOCK_JUSTIFY_RIGHT
+#endif
+#define GTK_STOCK_JUSTIFY_RIGHT "gtk-justify-right"
+
+#ifdef GTK_STOCK_LEAVE_FULLSCREEN
+#undef GTK_STOCK_LEAVE_FULLSCREEN
+#endif
+#define GTK_STOCK_LEAVE_FULLSCREEN "gtk-leave-fullscreen"
+
+#ifdef GTK_STOCK_MISSING_IMAGE
+#undef GTK_STOCK_MISSING_IMAGE
+#endif
+#define GTK_STOCK_MISSING_IMAGE "gtk-missing-image"
+
+#ifdef GTK_STOCK_MEDIA_FORWARD
+#undef GTK_STOCK_MEDIA_FORWARD
+#endif
+#define GTK_STOCK_MEDIA_FORWARD "gtk-media-forward"
+
+#ifdef GTK_STOCK_MEDIA_NEXT
+#undef GTK_STOCK_MEDIA_NEXT
+#endif
+#define GTK_STOCK_MEDIA_NEXT "gtk-media-next"
+
+#ifdef GTK_STOCK_MEDIA_PAUSE
+#undef GTK_STOCK_MEDIA_PAUSE
+#endif
+#define GTK_STOCK_MEDIA_PAUSE "gtk-media-pause"
+
+#ifdef GTK_STOCK_MEDIA_PLAY
+#undef GTK_STOCK_MEDIA_PLAY
+#endif
+#define GTK_STOCK_MEDIA_PLAY "gtk-media-play"
+
+#ifdef GTK_STOCK_MEDIA_PREVIOUS
+#undef GTK_STOCK_MEDIA_PREVIOUS
+#endif
+#define GTK_STOCK_MEDIA_PREVIOUS "gtk-media-previous"
+
+#ifdef GTK_STOCK_MEDIA_RECORD
+#undef GTK_STOCK_MEDIA_RECORD
+#endif
+#define GTK_STOCK_MEDIA_RECORD "gtk-media-record"
+
+#ifdef GTK_STOCK_MEDIA_REWIND
+#undef GTK_STOCK_MEDIA_REWIND
+#endif
+#define GTK_STOCK_MEDIA_REWIND "gtk-media-rewind"
+
+#ifdef GTK_STOCK_MEDIA_STOP
+#undef GTK_STOCK_MEDIA_STOP
+#endif
+#define GTK_STOCK_MEDIA_STOP "gtk-media-stop"
+
+#ifdef GTK_STOCK_NETWORK
+#undef GTK_STOCK_NETWORK
+#endif
+#define GTK_STOCK_NETWORK "gtk-network"
+
+#ifdef GTK_STOCK_NEW
+#undef GTK_STOCK_NEW
+#endif
+#define GTK_STOCK_NEW "gtk-new"
+
+#ifdef GTK_STOCK_NO
+#undef GTK_STOCK_NO
+#endif
+#define GTK_STOCK_NO "gtk-no"
+
+#ifdef GTK_STOCK_OK
+#undef GTK_STOCK_OK
+#endif
+#define GTK_STOCK_OK "gtk-ok"
+
+#ifdef GTK_STOCK_OPEN
+#undef GTK_STOCK_OPEN
+#endif
+#define GTK_STOCK_OPEN "gtk-open"
+
+#ifdef GTK_STOCK_ORIENTATION_PORTRAIT
+#undef GTK_STOCK_ORIENTATION_PORTRAIT
+#endif
+#define GTK_STOCK_ORIENTATION_PORTRAIT "gtk-orientation-portrait"
+
+#ifdef GTK_STOCK_ORIENTATION_LANDSCAPE
+#undef GTK_STOCK_ORIENTATION_LANDSCAPE
+#endif
+#define GTK_STOCK_ORIENTATION_LANDSCAPE "gtk-orientation-landscape"
+
+#ifdef GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE
+#undef GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE
+#endif
+#define GTK_STOCK_ORIENTATION_REVERSE_LANDSCAPE "gtk-orientation-reverse-landscape"
+
+#ifdef GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT
+#undef GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT
+#endif
+#define GTK_STOCK_ORIENTATION_REVERSE_PORTRAIT "gtk-orientation-reverse-portrait"
+
+#ifdef GTK_STOCK_PAGE_SETUP
+#undef GTK_STOCK_PAGE_SETUP
+#endif
+#define GTK_STOCK_PAGE_SETUP "gtk-page-setup"
+
+#ifdef GTK_STOCK_PASTE
+#undef GTK_STOCK_PASTE
+#endif
+#define GTK_STOCK_PASTE "gtk-paste"
+
+#ifdef GTK_STOCK_PREFERENCES
+#undef GTK_STOCK_PREFERENCES
+#endif
+#define GTK_STOCK_PREFERENCES "gtk-preferences"
+
+#ifdef GTK_STOCK_PRINT
+#undef GTK_STOCK_PRINT
+#endif
+#define GTK_STOCK_PRINT "gtk-print"
+
+#ifdef GTK_STOCK_PRINT_ERROR
+#undef GTK_STOCK_PRINT_ERROR
+#endif
+#define GTK_STOCK_PRINT_ERROR "gtk-print-error"
+
+#ifdef GTK_STOCK_PRINT_PAUSED
+#undef GTK_STOCK_PRINT_PAUSED
+#endif
+#define GTK_STOCK_PRINT_PAUSED "gtk-print-paused"
+
+#ifdef GTK_STOCK_PRINT_PREVIEW
+#undef GTK_STOCK_PRINT_PREVIEW
+#endif
+#define GTK_STOCK_PRINT_PREVIEW "gtk-print-preview"
+
+#ifdef GTK_STOCK_PRINT_REPORT
+#undef GTK_STOCK_PRINT_REPORT
+#endif
+#define GTK_STOCK_PRINT_REPORT "gtk-print-report"
+
+#ifdef GTK_STOCK_PRINT_WARNING
+#undef GTK_STOCK_PRINT_WARNING
+#endif
+#define GTK_STOCK_PRINT_WARNING "gtk-print-warning"
+
+#ifdef GTK_STOCK_PROPERTIES
+#undef GTK_STOCK_PROPERTIES
+#endif
+#define GTK_STOCK_PROPERTIES "gtk-properties"
+
+#ifdef GTK_STOCK_QUIT
+#undef GTK_STOCK_QUIT
+#endif
+#define GTK_STOCK_QUIT "gtk-quit"
+
+#ifdef GTK_STOCK_REDO
+#undef GTK_STOCK_REDO
+#endif
+#define GTK_STOCK_REDO "gtk-redo"
+
+#ifdef GTK_STOCK_REFRESH
+#undef GTK_STOCK_REFRESH
+#endif
+#define GTK_STOCK_REFRESH "gtk-refresh"
+
+#ifdef GTK_STOCK_REMOVE
+#undef GTK_STOCK_REMOVE
+#endif
+#define GTK_STOCK_REMOVE "gtk-remove"
+
+#ifdef GTK_STOCK_REVERT_TO_SAVED
+#undef GTK_STOCK_REVERT_TO_SAVED
+#endif
+#define GTK_STOCK_REVERT_TO_SAVED "gtk-revert-to-saved"
+
+#ifdef GTK_STOCK_SAVE
+#undef GTK_STOCK_SAVE
+#endif
+#define GTK_STOCK_SAVE "gtk-save"
+
+#ifdef GTK_STOCK_SAVE_AS
+#undef GTK_STOCK_SAVE_AS
+#endif
+#define GTK_STOCK_SAVE_AS "gtk-save-as"
+
+#ifdef GTK_STOCK_SELECT_ALL
+#undef GTK_STOCK_SELECT_ALL
+#endif
+#define GTK_STOCK_SELECT_ALL "gtk-select-all"
+
+#ifdef GTK_STOCK_SELECT_COLOR
+#undef GTK_STOCK_SELECT_COLOR
+#endif
+#define GTK_STOCK_SELECT_COLOR "gtk-select-color"
+
+#ifdef GTK_STOCK_SELECT_FONT
+#undef GTK_STOCK_SELECT_FONT
+#endif
+#define GTK_STOCK_SELECT_FONT "gtk-select-font"
+
+#ifdef GTK_STOCK_SORT_ASCENDING
+#undef GTK_STOCK_SORT_ASCENDING
+#endif
+#define GTK_STOCK_SORT_ASCENDING "gtk-sort-ascending"
+
+#ifdef GTK_STOCK_SORT_DESCENDING
+#undef GTK_STOCK_SORT_DESCENDING
+#endif
+#define GTK_STOCK_SORT_DESCENDING "gtk-sort-descending"
+
+#ifdef GTK_STOCK_SPELL_CHECK
+#undef GTK_STOCK_SPELL_CHECK
+#endif
+#define GTK_STOCK_SPELL_CHECK "gtk-spell-check"
+
+#ifdef GTK_STOCK_STOP
+#undef GTK_STOCK_STOP
+#endif
+#define GTK_STOCK_STOP "gtk-stop"
+
+#ifdef GTK_STOCK_STRIKETHROUGH
+#undef GTK_STOCK_STRIKETHROUGH
+#endif
+#define GTK_STOCK_STRIKETHROUGH "gtk-strikethrough"
+
+#ifdef GTK_STOCK_UNDELETE
+#undef GTK_STOCK_UNDELETE
+#endif
+#define GTK_STOCK_UNDELETE "gtk-undelete"
+
+#ifdef GTK_STOCK_UNDERLINE
+#undef GTK_STOCK_UNDERLINE
+#endif
+#define GTK_STOCK_UNDERLINE "gtk-underline"
+
+#ifdef GTK_STOCK_UNDO
+#undef GTK_STOCK_UNDO
+#endif
+#define GTK_STOCK_UNDO "gtk-undo"
+
+#ifdef GTK_STOCK_UNINDENT
+#undef GTK_STOCK_UNINDENT
+#endif
+#define GTK_STOCK_UNINDENT "gtk-unindent"
+
+#ifdef GTK_STOCK_YES
+#undef GTK_STOCK_YES
+#endif
+#define GTK_STOCK_YES "gtk-yes"
+
+#ifdef GTK_STOCK_ZOOM_100
+#undef GTK_STOCK_ZOOM_100
+#endif
+#define GTK_STOCK_ZOOM_100 "gtk-zoom-100"
+
+#ifdef GTK_STOCK_ZOOM_FIT
+#undef GTK_STOCK_ZOOM_FIT
+#endif
+#define GTK_STOCK_ZOOM_FIT "gtk-zoom-fit"
+
+#ifdef GTK_STOCK_ZOOM_IN
+#undef GTK_STOCK_ZOOM_IN
+#endif
+#define GTK_STOCK_ZOOM_IN "gtk-zoom-in"
+
+#ifdef GTK_STOCK_ZOOM_OUT
+#undef GTK_STOCK_ZOOM_OUT
+#endif
+#define GTK_STOCK_ZOOM_OUT "gtk-zoom-out"
+
+#endif /* GTK_CHECK_VERSION(3, 10, 0) */
+
void stock_icons_init(void);
+/**
+ * Creates a GtkButton with a preset icon and label.
+ * @param stock_id Id of the icon and label pair
+ * @return The newly created GtkButton widget.
+ */
+GtkWidget * ws_gtk_button_new_from_stock(const gchar *stock_id);
+
+/**
+ * Creates a GtkToolButton with a preset icon and label.
+ * @param stock_id Id of the icon and label pair
+ * @return The newly created GtkButton widget.
+ */
+GtkToolItem * ws_gtk_tool_button_new_from_stock(const gchar *stock_id);
+
+/**
+ * Creates a GtkToggleToolButton with a preset icon and label.
+ * @param stock_id Id of the icon and label pair
+ * @return The newly created GtkButton widget.
+ */
+GtkToolItem * ws_gtk_toggle_tool_button_new_from_stock(const gchar *stock_id);
+
+/**
+ * Creates a GtkImage displaying a stock icon.
+ * @param stock_id a stock icon name
+ * @param size a stock icon size of GtkIconSize type
+ */
+GtkWidget * ws_gtk_image_new_from_stock(const gchar *stock_id, GtkIconSize size);
+
#endif /* __STOCK_ICONS_H__ */
diff --git a/ui/gtk/tap_param_dlg.c b/ui/gtk/tap_param_dlg.c
index 2041b0b9a6..5c43af8a00 100644
--- a/ui/gtk/tap_param_dlg.c
+++ b/ui/gtk/tap_param_dlg.c
@@ -308,7 +308,7 @@ tap_param_dlg_cb(GtkAction *action _U_, gpointer data)
case PARAM_FILTER:
/* Filter button */
- filter_bt=gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
+ filter_bt=ws_gtk_button_new_from_stock(WIRESHARK_STOCK_DISPLAY_FILTER_ENTRY);
g_signal_connect(filter_bt, "clicked", G_CALLBACK(display_filter_construct_cb), &(current_dlg->args));
gtk_box_pack_start(GTK_BOX(item_box), filter_bt, FALSE, TRUE, 0);
gtk_widget_show(filter_bt);
diff --git a/ui/gtk/uat_gui.c b/ui/gtk/uat_gui.c
index ce8c2c8f1a..db36a02e7f 100644
--- a/ui/gtk/uat_gui.c
+++ b/ui/gtk/uat_gui.c
@@ -1059,26 +1059,26 @@ static GtkWidget *uat_window(void *u) {
gtk_box_pack_end(GTK_BOX(vbox), refresh_hbox, TRUE, FALSE, 0);
- rep->bt_up = gtk_button_new_from_stock(GTK_STOCK_GO_UP);
+ rep->bt_up = ws_gtk_button_new_from_stock(GTK_STOCK_GO_UP);
gtk_widget_set_tooltip_text(rep->bt_up, "Move selected entry up");
- rep->bt_down = gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
+ rep->bt_down = ws_gtk_button_new_from_stock(GTK_STOCK_GO_DOWN);
gtk_widget_set_tooltip_text(rep->bt_down, "Move selected entry down");
gtk_box_pack_start(GTK_BOX(move_hbox), rep->bt_up, TRUE, FALSE, 5);
gtk_box_pack_start(GTK_BOX(move_hbox), rep->bt_down, TRUE, FALSE, 5);
- rep->bt_new = gtk_button_new_from_stock(GTK_STOCK_NEW);
+ rep->bt_new = ws_gtk_button_new_from_stock(GTK_STOCK_NEW);
gtk_widget_set_tooltip_text(rep->bt_new, "Create a new entry");
- rep->bt_edit = gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
+ rep->bt_edit = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_EDIT);
gtk_widget_set_tooltip_text(rep->bt_edit, "Edit selected entry");
- rep->bt_copy = gtk_button_new_from_stock(GTK_STOCK_COPY);
+ rep->bt_copy = ws_gtk_button_new_from_stock(GTK_STOCK_COPY);
gtk_widget_set_tooltip_text(rep->bt_copy, "Copy selected entry");
- rep->bt_delete = gtk_button_new_from_stock(GTK_STOCK_DELETE);
+ rep->bt_delete = ws_gtk_button_new_from_stock(GTK_STOCK_DELETE);
gtk_widget_set_tooltip_text(rep->bt_delete, "Delete selected entry");
gtk_box_pack_end(GTK_BOX(edit_hbox), rep->bt_new, TRUE, FALSE, 5);
@@ -1086,10 +1086,10 @@ static GtkWidget *uat_window(void *u) {
gtk_box_pack_end(GTK_BOX(edit_hbox), rep->bt_copy, TRUE, FALSE, 5);
gtk_box_pack_end(GTK_BOX(edit_hbox), rep->bt_delete, TRUE, FALSE, 5);
- rep->bt_refresh = gtk_button_new_from_stock(GTK_STOCK_REFRESH);
+ rep->bt_refresh = ws_gtk_button_new_from_stock(GTK_STOCK_REFRESH);
gtk_widget_set_tooltip_text(rep->bt_refresh, "Refresh from system defaults");
- rep->bt_clear = gtk_button_new_from_stock(GTK_STOCK_CLEAR);
+ rep->bt_clear = ws_gtk_button_new_from_stock(GTK_STOCK_CLEAR);
gtk_widget_set_tooltip_text(rep->bt_clear, "Delete all entries");
gtk_box_pack_end(GTK_BOX(refresh_hbox), rep->bt_refresh, TRUE, FALSE, 5);
diff --git a/ui/gtk/voip_calls_dlg.c b/ui/gtk/voip_calls_dlg.c
index 2d9144f321..27b650215e 100644
--- a/ui/gtk/voip_calls_dlg.c
+++ b/ui/gtk/voip_calls_dlg.c
@@ -712,30 +712,30 @@ voip_calls_dlg_create(void)
gtk_container_add (GTK_CONTAINER (hbuttonbox), bt_unselect);
gtk_widget_set_tooltip_text (bt_unselect, "Unselect this conversation");*/
- bt_filter = gtk_button_new_from_stock(WIRESHARK_STOCK_PREPARE_FILTER);
+ bt_filter = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_PREPARE_FILTER);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_filter);
gtk_widget_set_tooltip_text(bt_filter, "Prepare a display filter of the selected conversation");
- bt_graph = gtk_button_new_from_stock(WIRESHARK_STOCK_VOIP_FLOW);
+ bt_graph = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_VOIP_FLOW);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_graph);
gtk_widget_show(bt_graph);
g_signal_connect(bt_graph, "clicked", G_CALLBACK(on_graph_bt_clicked), NULL);
gtk_widget_set_tooltip_text(bt_graph, "Show a flow graph of the selected calls.");
#ifdef HAVE_LIBPORTAUDIO
- bt_player = gtk_button_new_from_stock(WIRESHARK_STOCK_AUDIO_PLAYER);
+ bt_player = ws_gtk_button_new_from_stock(WIRESHARK_STOCK_AUDIO_PLAYER);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_player);
gtk_widget_show(bt_player);
g_signal_connect(bt_player, "clicked", G_CALLBACK(on_player_bt_clicked), NULL);
gtk_widget_set_tooltip_text(bt_player, "Launch the RTP player to listen the selected calls.");
#endif /* HAVE_LIBPORTAUDIO */
- bt_select_all = gtk_button_new_from_stock(GTK_STOCK_SELECT_ALL);
+ bt_select_all = ws_gtk_button_new_from_stock(GTK_STOCK_SELECT_ALL);
gtk_container_add(GTK_CONTAINER(hbuttonbox), bt_select_all);
gtk_widget_set_can_default(bt_select_all, TRUE);
gtk_widget_set_tooltip_text(bt_select_all, "Select all the calls");
- bt_close = gtk_button_new_from_stock(GTK_STOCK_CLOSE);
+ bt_close = ws_gtk_button_new_from_stock(GTK_STOCK_CLOSE);
gtk_container_add(GTK_CONTAINER (hbuttonbox), bt_close);
gtk_widget_set_can_default(bt_close, TRUE);
gtk_widget_set_tooltip_text(bt_close, "Close this dialog");