[gimp] plug-ins: put the pagecurl icons into a resource



commit ed042c540afd04e5c198a826d30bac0bea90e543
Author: Michael Natterer <mitch gimp org>
Date:   Mon Dec 28 23:54:30 2015 +0100

    plug-ins: put the pagecurl icons into a resource

 plug-ins/pagecurl/.gitignore  |    4 ++--
 plug-ins/pagecurl/Makefile.am |   32 ++++++++++++++++++--------------
 plug-ins/pagecurl/pagecurl.c  |   21 +++++++--------------
 3 files changed, 27 insertions(+), 30 deletions(-)
---
diff --git a/plug-ins/pagecurl/.gitignore b/plug-ins/pagecurl/.gitignore
index 7f988c3..a83f494 100644
--- a/plug-ins/pagecurl/.gitignore
+++ b/plug-ins/pagecurl/.gitignore
@@ -5,5 +5,5 @@
 /.libs
 /pagecurl
 /pagecurl.exe
-/pagecurl-icons.h
-/pagecurl-icons.list
+/pagecurl-icons.c
+/pagecurl-icons.gresource.xml
diff --git a/plug-ins/pagecurl/Makefile.am b/plug-ins/pagecurl/Makefile.am
index 5aa6d90..415476a 100644
--- a/plug-ins/pagecurl/Makefile.am
+++ b/plug-ins/pagecurl/Makefile.am
@@ -26,9 +26,8 @@ libexecdir = $(gimpplugindir)/plug-ins
 libexec_PROGRAMS = pagecurl
 
 pagecurl_SOURCES = pagecurl.c
-nodist_pagecurl_SOURCES = pagecurl-icons.h
 
-BUILT_SOURCES = pagecurl-icons.h
+BUILT_SOURCES = pagecurl-icons.c
 
 AM_CPPFLAGS = \
        -I$(top_srcdir) \
@@ -63,15 +62,20 @@ PAGECURL_IMAGES = \
 
 EXTRA_DIST = $(PAGECURL_IMAGES)
 
-CLEANFILES = $(BUILT_SOURCES) pagecurl-icons.list
-
-pagecurl-icons.list: $(PAGECURL_IMAGES) Makefile.am
-       ( rm -f $@; \
-          for image in $(PAGECURL_IMAGES); do \
-            echo $$image | \
-              sed -e 's|.*/||' -e 's|-|_|g' -e 's|\.png$$||' >> $@; \
-           echo "  $(srcdir)/$$image" >> $@; \
-         done )
-
-$(srcdir)/pagecurl-icons.h: pagecurl-icons.list
-       $(GDK_PIXBUF_CSOURCE) --raw --build-list `cat pagecurl-icons.list` > $(@F)
+CLEANFILES = $(BUILT_SOURCES) pagecurl-icons.gresource.xml
+
+pagecurl-icons.gresource.xml: $(PAGECURL_IMAGES) Makefile.am
+       $(AM_V_GEN) ( rm -f $@; \
+         echo '<?xml version="1.0" encoding="UTF-8"?>' > $@; \
+         echo '<gresources>' >> $@; \
+         echo '  <gresource prefix="/org/gimp/pagecurl-icons">' >> $@; \
+         for image in $(PAGECURL_IMAGES); do \
+           echo "    <file preprocess=\"to-pixdata\">$$image</file>" >> $@; \
+         done; \
+         echo '  </gresource>' >> $@; \
+         echo '</gresources>' >> $@ )
+
+$(srcdir)/pagecurl-icons.c: pagecurl-icons.gresource.xml
+       $(AM_V_GEN) $(GLIB_COMPILE_RESOURCES) \
+         --sourcedir=$(srcdir) --generate-source \
+         --target=$@ pagecurl-icons.gresource.xml
diff --git a/plug-ins/pagecurl/pagecurl.c b/plug-ins/pagecurl/pagecurl.c
index af942d0..bb7debc 100644
--- a/plug-ins/pagecurl/pagecurl.c
+++ b/plug-ins/pagecurl/pagecurl.c
@@ -47,7 +47,7 @@
 
 #include "libgimp/stdplugins-intl.h"
 
-#include "pagecurl-icons.h"
+#include "pagecurl-icons.c"
 
 
 #define PLUG_IN_PROC    "plug-in-pagecurl"
@@ -145,18 +145,6 @@ static CurlParams curl;
 static gint32        image_id;
 static GimpDrawable *curl_layer;
 
-static const guint8 *curl_pixbufs[] =
-{
-  curl0,
-  curl1,
-  curl2,
-  curl3,
-  curl4,
-  curl5,
-  curl6,
-  curl7
-};
-
 static GtkWidget *curl_image = NULL;
 
 static gint   sel_x, sel_y;
@@ -403,6 +391,7 @@ curl_pixbuf_update (void)
 {
   GdkPixbuf *pixbuf;
   gint       index;
+  gchar     *resource;
 
   switch (curl.edge)
     {
@@ -416,7 +405,11 @@ curl_pixbuf_update (void)
 
   index += curl.orientation * 4;
 
-  pixbuf = gdk_pixbuf_new_from_inline (-1, curl_pixbufs[index], FALSE, NULL);
+  resource = g_strdup_printf ("/org/gimp/pagecurl-icons/curl%c.png",
+                              '0' + index);
+  pixbuf = gdk_pixbuf_new_from_resource (resource, NULL);
+  g_free (resource);
+
   gtk_image_set_from_pixbuf (GTK_IMAGE (curl_image), pixbuf);
   g_object_unref (pixbuf);
 }


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]