[gimp] icons, app, libgimpwidgets: use GResource for the compiled-in icons
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] icons, app, libgimpwidgets: use GResource for the compiled-in icons
- Date: Tue, 21 Apr 2015 19:57:38 +0000 (UTC)
commit 957471604fca40b5265a5fc23a23592d1a2fa554
Author: Michael Natterer <mitch gimp org>
Date: Tue Apr 21 21:55:46 2015 +0200
icons, app, libgimpwidgets: use GResource for the compiled-in icons
And a small improvement in cursors/Makefile.am
app/core/gimpviewable.c | 14 +++++++---
cursors/Makefile.am | 3 +-
icons/.gitignore | 6 +++-
icons/Makefile.am | 53 ++++++++++++++++++++++++++++------------
libgimpwidgets/gimpstock.c | 19 +++++++++++---
libgimpwidgets/gimpwidgets.def | 1 +
6 files changed, 68 insertions(+), 28 deletions(-)
---
diff --git a/app/core/gimpviewable.c b/app/core/gimpviewable.c
index 319a284..936d1d7 100644
--- a/app/core/gimpviewable.c
+++ b/app/core/gimpviewable.c
@@ -38,7 +38,7 @@
#include "gimptempbuf.h"
#include "gimpviewable.h"
-#include "icons/gimp-core-pixbufs.h"
+#include "icons/gimp-core-pixbufs.c"
enum
@@ -1089,6 +1089,7 @@ gimp_viewable_get_dummy_pixbuf (GimpViewable *viewable,
{
GdkPixbuf *icon;
GdkPixbuf *pixbuf;
+ GError *error = NULL;
gdouble ratio;
gint w, h;
@@ -1096,9 +1097,14 @@ gimp_viewable_get_dummy_pixbuf (GimpViewable *viewable,
g_return_val_if_fail (width > 0, NULL);
g_return_val_if_fail (height > 0, NULL);
- icon = gdk_pixbuf_new_from_inline (-1, gimp_question_64, FALSE, NULL);
-
- g_return_val_if_fail (icon != NULL, NULL);
+ icon = gdk_pixbuf_new_from_resource ("/org/gimp/icons/64/gimp-question.png",
+ &error);
+ if (! icon)
+ {
+ g_critical ("Failed to create icon image: %s", error->message);
+ g_clear_error (&error);
+ return NULL;
+ }
w = gdk_pixbuf_get_width (icon);
h = gdk_pixbuf_get_height (icon);
diff --git a/cursors/Makefile.am b/cursors/Makefile.am
index 95ce459..3240333 100644
--- a/cursors/Makefile.am
+++ b/cursors/Makefile.am
@@ -89,9 +89,8 @@ noinst_DATA = \
gimp-color-picker-cursors.c
CLEANFILES = \
- gimp-tool-cursors.c \
+ $(noinst_DATA) \
gimp-tool-cursors.gresource.xml \
- gimp-color-picker-cursors.c \
gimp-color-picker-cursors.gresource.xml
diff --git a/icons/.gitignore b/icons/.gitignore
index f1c3aa0..60a01d6 100644
--- a/icons/.gitignore
+++ b/icons/.gitignore
@@ -1,4 +1,6 @@
/Makefile
/Makefile.in
-/gimp-core-pixbufs.h
-/gimp-icon-pixbufs.h
+/gimp-core-pixbufs.c
+/gimp-core-pixbufs.gresource.xml
+/gimp-icon-pixbufs.c
+/gimp-icon-pixbufs.gresource.xml
diff --git a/icons/Makefile.am b/icons/Makefile.am
index 3dde514..9ae3670 100644
--- a/icons/Makefile.am
+++ b/icons/Makefile.am
@@ -468,16 +468,9 @@ icons64_DATA = \
CORE_IMAGES = \
64/gimp-question.png
-CORE_VARIABLES = \
- gimp_question_64 $(srcdir)/64/gimp-question.png
-
ICON_IMAGES = \
64/gimp-wilber-eek.png
-ICON_VARIABLES = \
- gimp_wilber_eek_64 $(srcdir)/64/gimp-wilber-eek.png
-
-
EXTRA_DIST = \
$(icons_DATA) \
$(icons12_DATA) \
@@ -491,16 +484,44 @@ EXTRA_DIST = \
$(icons64_DATA)
noinst_DATA = \
- gimp-core-pixbufs.h \
- gimp-icon-pixbufs.h
+ gimp-core-pixbufs.c \
+ gimp-icon-pixbufs.c
+
+CLEANFILES = \
+ $(noinst_DATA) \
+ gimp-core-pixbufs.gresource.xml \
+ gimp-icon-pixbufs.gresource.xml
+
+
+gimp-core-pixbufs.gresource.xml: $(CORE_IMAGES) Makefile.am
+ $(AM_V_GEN) ( rm -f $@; \
+ echo '<?xml version="1.0" encoding="UTF-8"?>' > $@; \
+ echo '<gresources>' >> $@; \
+ echo ' <gresource prefix="/org/gimp/icons">' >> $@; \
+ for image in $(CURSOR_IMAGES); do \
+ echo " <file preprocess=\"to-pixdata\">$$image</file>" >> $@; \
+ done; \
+ echo ' </gresource>' >> $@; \
+ echo '</gresources>' >> $@ )
-CLEANFILES = $(noinst_DATA)
+gimp-core-pixbufs.c: gimp-core-pixbufs.gresource.xml
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) \
+ --sourcedir=$(srcdir) --generate-source \
+ --target=$@ gimp-core-pixbufs.gresource.xml
-gimp-core-pixbufs.h: $(CORE_IMAGES) Makefile.am
- $(AM_V_GEN) $(GDK_PIXBUF_CSOURCE) \
- --raw --build-list $(CORE_VARIABLES) > $(@F)
+gimp-icon-pixbufs.gresource.xml: $(ICON_IMAGES) Makefile.am
+ $(AM_V_GEN) ( rm -f $@; \
+ echo '<?xml version="1.0" encoding="UTF-8"?>' > $@; \
+ echo '<gresources>' >> $@; \
+ echo ' <gresource prefix="/org/gimp/icons">' >> $@; \
+ for image in $(CURSOR_IMAGES); do \
+ echo " <file preprocess=\"to-pixdata\">$$image</file>" >> $@; \
+ done; \
+ echo ' </gresource>' >> $@; \
+ echo '</gresources>' >> $@ )
-gimp-icon-pixbufs.h: $(ICON_IMAGES) Makefile.am
- $(AM_V_GEN) $(GDK_PIXBUF_CSOURCE) \
- --raw --build-list $(ICON_VARIABLES) > $(@F)
+gimp-icon-pixbufs.c: gimp-icon-pixbufs.gresource.xml
+ $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) \
+ --sourcedir=$(srcdir) --generate-source \
+ --target=$@ gimp-icon-pixbufs.gresource.xml
diff --git a/libgimpwidgets/gimpstock.c b/libgimpwidgets/gimpstock.c
index 30c2755..02ca890 100644
--- a/libgimpwidgets/gimpstock.c
+++ b/libgimpwidgets/gimpstock.c
@@ -27,7 +27,7 @@
#include "gimpstock.h"
-#include "icons/gimp-icon-pixbufs.h"
+#include "icons/gimp-icon-pixbufs.c"
#include "libgimp/libgimp-intl.h"
@@ -360,6 +360,7 @@ gimp_stock_init (void)
static gboolean initialized = FALSE;
GdkPixbuf *pixbuf;
+ GError *error = NULL;
gchar *icons_dir;
gint i;
@@ -401,9 +402,19 @@ gimp_stock_init (void)
icons_dir);
g_free (icons_dir);
- pixbuf = gdk_pixbuf_new_from_inline (-1, gimp_wilber_eek_64, FALSE, NULL);
- gtk_icon_theme_add_builtin_icon (GIMP_STOCK_WILBER_EEK, 64, pixbuf);
- g_object_unref (pixbuf);
+ pixbuf = gdk_pixbuf_new_from_resource ("/org/gimp/icons/64/gimp-wilber-eek.png",
+ &error);
+
+ if (pixbuf)
+ {
+ gtk_icon_theme_add_builtin_icon (GIMP_STOCK_WILBER_EEK, 64, pixbuf);
+ g_object_unref (pixbuf);
+ }
+ else
+ {
+ g_critical ("Failed to create icon image: %s", error->message);
+ g_clear_error (&error);
+ }
initialized = TRUE;
}
diff --git a/libgimpwidgets/gimpwidgets.def b/libgimpwidgets/gimpwidgets.def
index d8c7e11..7dd741e 100644
--- a/libgimpwidgets/gimpwidgets.def
+++ b/libgimpwidgets/gimpwidgets.def
@@ -175,6 +175,7 @@ EXPORTS
gimp_help_set_help_data_with_markup
gimp_hint_box_get_type
gimp_hint_box_new
+ gimp_icon_pixbufs_get_resource
gimp_int_adjustment_update
gimp_int_combo_box_append
gimp_int_combo_box_connect
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]