comparison gtk/gaimstock.c @ 14197:f1270dc1d9d2

[gaim-migrate @ 16869] Re-re-commits r16854, with a few extra useless lines removed. committer: Tailor Script <tailor@pidgin.im>
author Aaron Sheldon <aaronsheldon>
date Sat, 19 Aug 2006 02:57:06 +0000
parents 009db0b357b5
children a6034bc8c84e
comparison
equal deleted inserted replaced
14196:ec2cd563da47 14197:f1270dc1d9d2
91 { GAIM_STOCK_INFO, "buttons", "info.png" }, 91 { GAIM_STOCK_INFO, "buttons", "info.png" },
92 #endif 92 #endif
93 { GAIM_STOCK_INVITE, NULL, GTK_STOCK_JUMP_TO }, 93 { GAIM_STOCK_INVITE, NULL, GTK_STOCK_JUMP_TO },
94 { GAIM_STOCK_LINK, "buttons", "insert-link-small.png" }, 94 { GAIM_STOCK_LINK, "buttons", "insert-link-small.png" },
95 { GAIM_STOCK_LOG, NULL, GTK_STOCK_DND_MULTIPLE }, 95 { GAIM_STOCK_LOG, NULL, GTK_STOCK_DND_MULTIPLE },
96 { GAIM_STOCK_LOGO, "gaim", "logo.png" },
97 { GAIM_STOCK_MODIFY, NULL, GTK_STOCK_PREFERENCES }, 96 { GAIM_STOCK_MODIFY, NULL, GTK_STOCK_PREFERENCES },
98 #if GTK_CHECK_VERSION(2,6,0) 97 #if GTK_CHECK_VERSION(2,6,0)
99 { GAIM_STOCK_PAUSE, NULL, GTK_STOCK_MEDIA_PAUSE }, 98 { GAIM_STOCK_PAUSE, NULL, GTK_STOCK_MEDIA_PAUSE },
100 #else 99 #else
101 { GAIM_STOCK_PAUSE, "buttons", "pause.png" }, 100 { GAIM_STOCK_PAUSE, "buttons", "pause.png" },
172 } 171 }
173 172
174 return filename; 173 return filename;
175 } 174 }
176 175
177 static void
178 gaim_gtk_stock_versionize(GdkPixbuf **original, GtkWidget *widget) {
179 GdkPixmap *pixmap;
180 GtkStyle *style;
181 PangoContext *context;
182 PangoLayout *layout;
183 gchar *markup;
184 gint width, height;
185 gint lwidth = 0, lheight = 0;
186
187 style = gtk_widget_get_style(widget);
188
189 gdk_pixbuf_render_pixmap_and_mask(*original, &pixmap, NULL, 255);
190 width = gdk_pixbuf_get_width(*original);
191 height = gdk_pixbuf_get_height(*original);
192 g_object_unref(G_OBJECT(*original));
193
194 context = gtk_widget_get_pango_context(widget);
195 layout = pango_layout_new(context);
196
197 markup = g_strdup_printf("<span foreground=\"#FFFFFF\" size=\"larger\">%s</span>", VERSION);
198 pango_layout_set_font_description(layout, style->font_desc);
199 pango_layout_set_markup(layout, markup, strlen(markup));
200 g_free(markup);
201
202 pango_layout_get_pixel_size(layout, &lwidth, &lheight);
203 gdk_draw_layout(GDK_DRAWABLE(pixmap), style->bg_gc[GTK_STATE_NORMAL],
204 width - (lwidth + 3), height - (lheight + 1), layout);
205 g_object_unref(G_OBJECT(layout));
206
207 *original = gdk_pixbuf_get_from_drawable(NULL, pixmap, NULL,
208 0, 0, 0, 0,
209 width, height);
210 g_object_unref(G_OBJECT(pixmap));
211 }
212
213 void 176 void
214 gaim_gtk_stock_init(void) 177 gaim_gtk_stock_init(void)
215 { 178 {
216 static gboolean stock_initted = FALSE; 179 static gboolean stock_initted = FALSE;
217 GtkIconFactory *icon_factory; 180 GtkIconFactory *icon_factory;
253 216
254 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); 217 pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
255 218
256 g_free(filename); 219 g_free(filename);
257 220
258 if (!strcmp(stock_icons[i].name, GAIM_STOCK_LOGO))
259 gaim_gtk_stock_versionize(&pixbuf, win);
260
261 iconset = gtk_icon_set_new_from_pixbuf(pixbuf); 221 iconset = gtk_icon_set_new_from_pixbuf(pixbuf);
262 222
263 g_object_unref(G_OBJECT(pixbuf)); 223 g_object_unref(G_OBJECT(pixbuf));
264 } 224 }
265 225
269 } 229 }
270 230
271 gtk_widget_destroy(win); 231 gtk_widget_destroy(win);
272 232
273 /* register custom icon sizes */ 233 /* register custom icon sizes */
274 gtk_icon_size_register(GAIM_ICON_SIZE_LOGO, 330, 90);
275 gtk_icon_size_register(GAIM_ICON_SIZE_DIALOG_COOL, 40, 60); 234 gtk_icon_size_register(GAIM_ICON_SIZE_DIALOG_COOL, 40, 60);
276 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS, 30, 30); 235 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS, 30, 30);
277 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS_TWO_LINE, 30, 30); 236 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS_TWO_LINE, 30, 30);
278 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS_SMALL, 16, 16); 237 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS_SMALL, 16, 16);
279 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS_SMALL_TWO_LINE, 24, 24); 238 gtk_icon_size_register(GAIM_ICON_SIZE_STATUS_SMALL_TWO_LINE, 24, 24);