aboutsummaryrefslogtreecommitdiffstats
path: root/ui/gtk/gui_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'ui/gtk/gui_utils.c')
-rw-r--r--ui/gtk/gui_utils.c55
1 files changed, 41 insertions, 14 deletions
diff --git a/ui/gtk/gui_utils.c b/ui/gtk/gui_utils.c
index 5ab2653160..d00d6095b6 100644
--- a/ui/gtk/gui_utils.c
+++ b/ui/gtk/gui_utils.c
@@ -50,10 +50,10 @@
#include "ui/gtk/gui_utils.h"
#include "ui/gtk/font_utils.h"
#include "ui/gtk/color_utils.h"
-
#include "ui/gtk/old-gtk-compat.h"
-
-#include "ui/gtk/wsicon.h"
+#ifndef HAVE_GRESOURCE
+#include "ui/gtk/pixbuf-csource.h"
+#endif
#ifdef _WIN32
#include <windows.h>
@@ -110,16 +110,23 @@ window_icon_realize_cb(GtkWidget *win,
{
#ifndef _WIN32
GList *ws_icon_list = NULL;
- GdkPixbuf *icon;
+ GdkPixbuf *icon16, *icon32, *icon48, *icon64;
- icon = gdk_pixbuf_new_from_inline(-1, wsicon_16_pb_data, FALSE, NULL);
- ws_icon_list = g_list_append(ws_icon_list, icon);
- icon = gdk_pixbuf_new_from_inline(-1, wsicon_32_pb_data, FALSE, NULL);
- ws_icon_list = g_list_append(ws_icon_list, icon);
- icon = gdk_pixbuf_new_from_inline(-1, wsicon_48_pb_data, FALSE, NULL);
- ws_icon_list = g_list_append(ws_icon_list, icon);
- icon = gdk_pixbuf_new_from_inline(-1, wsicon_64_pb_data, FALSE, NULL);
- ws_icon_list = g_list_append(ws_icon_list, icon);
+#ifdef HAVE_GRESOURCE
+ icon16 = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/wsicon16.png");
+ icon32 = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/wsicon32.png");
+ icon48 = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/wsicon48.png");
+ icon64 = ws_gdk_pixbuf_new_from_resource("/org/wireshark/image/wsicon64.png");
+#else
+ icon16 = gdk_pixbuf_new_from_inline(-1, wsicon_16_pb_data, FALSE, NULL);
+ icon32 = gdk_pixbuf_new_from_inline(-1, wsicon_32_pb_data, FALSE, NULL);
+ icon48 = gdk_pixbuf_new_from_inline(-1, wsicon_48_pb_data, FALSE, NULL);
+ icon64 = gdk_pixbuf_new_from_inline(-1, wsicon_64_pb_data, FALSE, NULL);
+#endif
+ ws_icon_list = g_list_append(ws_icon_list, icon16);
+ ws_icon_list = g_list_append(ws_icon_list, icon32);
+ ws_icon_list = g_list_append(ws_icon_list, icon48);
+ ws_icon_list = g_list_append(ws_icon_list, icon64);
gtk_window_set_icon_list(GTK_WINDOW(win), ws_icon_list);
@@ -515,13 +522,20 @@ xpm_to_widget(const char **xpm) {
return _gtk_image_new_from_pixbuf_unref(pixbuf);
}
-/* Convert an pixbuf data to a GtkWidget */
-/* Data should be created with "gdk-pixbuf-csource --raw" */
+/* Convert an pixbuf GResource to a GtkWidget */
GtkWidget *
+#ifdef HAVE_GRESOURCE
+pixbuf_to_widget(const char *pb_path) {
+#else
pixbuf_to_widget(const guint8 *pb_data) {
+#endif
GdkPixbuf *pixbuf;
+#ifdef HAVE_GRESOURCE
+ pixbuf = ws_gdk_pixbuf_new_from_resource(pb_path);
+#else
pixbuf = gdk_pixbuf_new_from_inline(-1, pb_data, FALSE, NULL);
+#endif
return _gtk_image_new_from_pixbuf_unref(pixbuf);
}
@@ -2035,6 +2049,19 @@ gdk_cairo_set_source_rgba(cairo_t *cr, const GdkRGBA *rgba)
}
#endif /* GTK_CHECK_VERSION(3,0,0) */
+#ifdef HAVE_GRESOURCE
+GdkPixbuf *
+ws_gdk_pixbuf_new_from_resource(const char *path)
+{
+ GdkPixbuf *pixbuf;
+ GError *err = NULL;
+
+ pixbuf = gdk_pixbuf_new_from_resource(path, &err);
+ g_assert_no_error(err);
+ return pixbuf;
+}
+#endif /* HAVE_GRESOURCE */
+
/*
* Editor modelines - http://www.wireshark.org/tools/modelines.html
*