| 112 static GdkPixbuf * |
112 static GdkPixbuf * |
| 113 pidgin_disco_load_icon(XmppDiscoService *service, const char *size) |
113 pidgin_disco_load_icon(XmppDiscoService *service, const char *size) |
| 114 { |
114 { |
| 115 GdkPixbuf *pixbuf = NULL; |
115 GdkPixbuf *pixbuf = NULL; |
| 116 char *filename = NULL; |
116 char *filename = NULL; |
| |
117 gchar *tmp_size; |
| 117 |
118 |
| 118 g_return_val_if_fail(service != NULL, NULL); |
119 g_return_val_if_fail(service != NULL, NULL); |
| 119 g_return_val_if_fail(size != NULL, NULL); |
120 g_return_val_if_fail(size != NULL, NULL); |
| |
121 |
| |
122 tmp_size = g_strdup_printf("%sx%s", size, size); |
| 120 |
123 |
| 121 if (service->type == XMPP_DISCO_SERVICE_TYPE_GATEWAY && service->gateway_type) { |
124 if (service->type == XMPP_DISCO_SERVICE_TYPE_GATEWAY && service->gateway_type) { |
| 122 char *tmp = g_strconcat(service->gateway_type, ".png", NULL); |
125 char *tmp = g_strconcat(service->gateway_type, ".png", NULL); |
| 123 filename = g_build_filename(PURPLE_DATADIR, |
126 filename = g_build_filename(PURPLE_DATADIR, |
| 124 "pixmaps", "pidgin", "protocols", size, tmp, NULL); |
127 "pixmaps", "pidgin", "protocols", size, tmp, NULL); |
| 128 filename = g_build_filename(PURPLE_DATADIR, |
131 filename = g_build_filename(PURPLE_DATADIR, |
| 129 "pixmaps", "pidgin", "status", size, "person.png", NULL); |
132 "pixmaps", "pidgin", "status", size, "person.png", NULL); |
| 130 #endif |
133 #endif |
| 131 } else if (service->type == XMPP_DISCO_SERVICE_TYPE_CHAT) { |
134 } else if (service->type == XMPP_DISCO_SERVICE_TYPE_CHAT) { |
| 132 filename = g_build_filename(PURPLE_DATADIR, |
135 filename = g_build_filename(PURPLE_DATADIR, |
| 133 "pixmaps", "pidgin", "status", size, "chat.png", NULL); |
136 "pidgin", "icons", "hicolor", tmp_size, "status", |
| 134 } |
137 "chat.png", NULL); |
| |
138 } |
| |
139 |
| |
140 g_free(tmp_size); |
| 135 |
141 |
| 136 if (filename) { |
142 if (filename) { |
| 137 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); |
143 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); |
| 138 g_free(filename); |
144 g_free(filename); |
| 139 } |
145 } |