Now it's possible to add png images :D
[tbo.git] / src / custom-stock.c
1 #include <gtk/gtk.h>
2 #include <glib/gi18n.h>
3 #include "custom-stock.h"
4
5 #define ICONDIR "/icons/"
6
7 typedef struct
8 {
9     char *image;
10     char *stockid;
11 } icon;
12
13 void load_custom_stock ()
14 {
15     GtkIconFactory *factory;
16     GtkIconSet *iconset;
17     GdkPixbuf *image;
18     GError *error = NULL;
19
20     icon icons[] = {
21         {DATA_DIR ICONDIR "frame.svg", TBO_STOCK_FRAME},
22         {DATA_DIR ICONDIR "selector.svg", TBO_STOCK_SELECTOR},
23         {DATA_DIR ICONDIR "doodle.svg", TBO_STOCK_DOODLE},
24         {DATA_DIR ICONDIR "text.svg", TBO_STOCK_TEXT},
25         {DATA_DIR ICONDIR "pix.svg", TBO_STOCK_PIX},
26     };
27
28     int i;
29
30     factory = gtk_icon_factory_new ();
31
32     for (i=0; i<G_N_ELEMENTS (icons); i++)
33     {
34         image = (GdkPixbuf *) gdk_pixbuf_new_from_file (icons[i].image, &error);
35         if (image == NULL)
36         {
37             printf (_("error loading image %s\n"), icons[i].image);
38         }
39
40         iconset = gtk_icon_set_new_from_pixbuf (image);
41         gtk_icon_factory_add (factory, icons[i].stockid, iconset);
42         g_object_unref (G_OBJECT(image));
43         gtk_icon_set_unref (iconset);
44     }
45
46     gtk_icon_factory_add_default (factory);
47
48     g_object_unref (G_OBJECT (factory));
49 }
50