diff options
author | TingPing <tingping@tingping.se> | 2013-09-29 02:24:30 -0400 |
---|---|---|
committer | TingPing <tingping@tingping.se> | 2013-09-29 02:24:30 -0400 |
commit | 00bd389cdcd3e481c92de435e626a2618d4a128c (patch) | |
tree | ed9852f20ab8dff18672b29eaccce05878251d38 /src/fe-gtk/pixmaps.c | |
parent | 4ba886f7aaf884c518637173be0b1d8e9b190e86 (diff) | |
parent | 1f84c507a058f5baa01a632ce2478fa31854907d (diff) |
Merge branch 'gresource'
Diffstat (limited to 'src/fe-gtk/pixmaps.c')
-rw-r--r-- | src/fe-gtk/pixmaps.c | 70 |
1 files changed, 26 insertions, 44 deletions
diff --git a/src/fe-gtk/pixmaps.c b/src/fe-gtk/pixmaps.c index bdd74e1e..cbec6f71 100644 --- a/src/fe-gtk/pixmaps.c +++ b/src/fe-gtk/pixmaps.c @@ -25,10 +25,9 @@ #include "../common/hexchat.h" #include "../common/fe.h" +#include <gio/gio.h> #include <gdk-pixbuf/gdk-pixbuf.h> -#include "../pixmaps/inline_pngs.h" - GdkPixbuf *pix_ulist_voice; GdkPixbuf *pix_ulist_halfop; GdkPixbuf *pix_ulist_op; @@ -84,21 +83,9 @@ pixmap_load_from_file (char *filename) return pix; } -#if 0 -#define LOADPIX(vv,pp,ff) \ - vv = gdk_pixbuf_new_from_file (HEXCHATSHAREDIR"/hexchat/"ff, 0); \ - if (!vv) \ - vv = gdk_pixbuf_new_from_inline (-1, pp, FALSE, 0); - -#define LOADPIX_DISKONLY(vv,ff) \ - vv = gdk_pixbuf_new_from_file (HEXCHATSHAREDIR"/hexchat/"ff, 0); - -#define EXT ".png" -#endif - /* load custom icons from <config>/icons, don't mess in system folders */ static GdkPixbuf * -load_pixmap (const char *filename, const char *name, int has_inline) +load_pixmap (const char *filename) { gchar *path; GdkPixbuf *pixbuf; @@ -107,45 +94,40 @@ load_pixmap (const char *filename, const char *name, int has_inline) pixbuf = gdk_pixbuf_new_from_file (path, 0); g_free (path); - if (has_inline && !pixbuf && name) + if (!pixbuf) { - pixbuf = gdk_pixbuf_new_from_inline (-1, name, FALSE, 0); + path = g_strdup_printf ("/icons/%s.png", filename); + pixbuf = gdk_pixbuf_new_from_resource (path, NULL); + g_free (path); } + g_warn_if_fail (pixbuf != NULL); + return pixbuf; } void pixmaps_init (void) { - /* userlist icons, with inlined defaults */ - pix_ulist_voice = load_pixmap ("ulist_voice", png_ulist_voice, 1); - pix_ulist_halfop = load_pixmap ("ulist_halfop", png_ulist_halfop, 1); - pix_ulist_op = load_pixmap ("ulist_op", png_ulist_op, 1); - pix_ulist_owner = load_pixmap ("ulist_owner", png_ulist_owner, 1); - pix_ulist_founder = load_pixmap ("ulist_founder", png_ulist_founder, 1); - pix_ulist_netop = load_pixmap ("ulist_netop", png_ulist_netop, 1); - - /* tray icons, with inlined defaults */ - pix_tray_fileoffer = load_pixmap ("tray_fileoffer", png_tray_fileoffer, 1); - pix_tray_highlight = load_pixmap ("tray_highlight", png_tray_highlight, 1); - pix_tray_message = load_pixmap ("tray_message", png_tray_message, 1); - -#if 0 - /* treeview icons, no defaults, load from disk only */ - pix_tree_channel = load_pixmap ("tree_channel", NULL, 0); - pix_tree_dialog = load_pixmap ("tree_dialog", NULL, 0); - pix_tree_server = load_pixmap ("tree_server", NULL, 0); - pix_tree_util = load_pixmap ("tree_util", NULL, 0); -#endif - /* provide inline defaults for these coz they are nice! */ - pix_tree_channel = load_pixmap ("tree_channel", png_tree_channel, 1); - pix_tree_dialog = load_pixmap ("tree_dialog", png_tree_dialog, 1); - pix_tree_server = load_pixmap ("tree_server", png_tree_server, 1); - pix_tree_util = load_pixmap ("tree_util", png_tree_util, 1); + pix_ulist_voice = load_pixmap ("ulist_voice"); + pix_ulist_halfop = load_pixmap ("ulist_halfop"); + pix_ulist_op = load_pixmap ("ulist_op"); + pix_ulist_owner = load_pixmap ("ulist_owner"); + pix_ulist_founder = load_pixmap ("ulist_founder"); + pix_ulist_netop = load_pixmap ("ulist_netop"); + + pix_tray_fileoffer = load_pixmap ("tray_fileoffer"); + pix_tray_highlight = load_pixmap ("tray_highlight"); + pix_tray_message = load_pixmap ("tray_message"); + + pix_tree_channel = load_pixmap ("tree_channel"); + pix_tree_dialog = load_pixmap ("tree_dialog"); + pix_tree_server = load_pixmap ("tree_server"); + pix_tree_util = load_pixmap ("tree_util"); /* non-replaceable book pixmap */ - pix_book = gdk_pixbuf_new_from_inline (-1, png_book, FALSE, 0); + pix_book = gdk_pixbuf_new_from_resource ("/icons/book.png", NULL); + /* used in About window, tray icon and WindowManager icon. */ - pix_hexchat = load_pixmap ("hexchat", png_hexchat, 1); + pix_hexchat = load_pixmap ("hexchat"); } |