comparison pidgin/pidginstock.c @ 26213:ff4212a5268f

propagate from branch 'im.pidgin.pidgin' (head 431618de0f30a6938f7e14d2d61ee5d7738acd59) to branch 'im.pidgin.pidgin.vv' (head 8df00cb1a28baa69d0a68e0e96af201ec7d87c09)
author Marcus Lundblad <ml@update.uu.se>
date Mon, 02 Mar 2009 18:47:27 +0000
parents 584063555949 25e2ab1fff1d
children edd2cebdead8
comparison
equal deleted inserted replaced
25446:52fbda23e398 26213:ff4212a5268f
111 { PIDGIN_STOCK_OPEN_MAIL, N_("_Open Mail"), 0, 0, NULL }, 111 { PIDGIN_STOCK_OPEN_MAIL, N_("_Open Mail"), 0, 0, NULL },
112 { PIDGIN_STOCK_PAUSE, N_("_Pause"), 0, 0, NULL }, 112 { PIDGIN_STOCK_PAUSE, N_("_Pause"), 0, 0, NULL },
113 { PIDGIN_STOCK_EDIT, N_("_Edit"), 0, 0, NULL } 113 { PIDGIN_STOCK_EDIT, N_("_Edit"), 0, 0, NULL }
114 }; 114 };
115 115
116 typedef struct { 116 static struct SizedStockIcon {
117 const char *name; 117 const char *name;
118 const char *dir; 118 const char *dir;
119 const char *filename; 119 const char *filename;
120 gboolean microscopic; 120 gboolean microscopic;
121 gboolean extra_small; 121 gboolean extra_small;
123 gboolean medium; 123 gboolean medium;
124 gboolean large; 124 gboolean large;
125 gboolean huge; 125 gboolean huge;
126 gboolean rtl; 126 gboolean rtl;
127 const char *translucent_name; 127 const char *translucent_name;
128 } SizedStockIcon; 128 } const sized_stock_icons [] = {
129 129 { PIDGIN_STOCK_STATUS_AVAILABLE, "status", "available.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_AVAILABLE_I },
130 const SizedStockIcon sized_stock_icons [] = { 130 { PIDGIN_STOCK_STATUS_AWAY, "status", "away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_AWAY_I },
131 131 { PIDGIN_STOCK_STATUS_BUSY, "status", "busy.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_BUSY_I },
132 { PIDGIN_STOCK_STATUS_CHAT, "status", "chat.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
133 { PIDGIN_STOCK_STATUS_INVISIBLE,"status", "invisible.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
134 { PIDGIN_STOCK_STATUS_XA, "status", "extended-away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, PIDGIN_STOCK_STATUS_XA_I },
135 { PIDGIN_STOCK_STATUS_LOGIN, "status", "log-in.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
136 { PIDGIN_STOCK_STATUS_LOGOUT, "status", "log-out.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL },
137 { PIDGIN_STOCK_STATUS_OFFLINE, "status", "offline.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I },
138 { PIDGIN_STOCK_STATUS_PERSON, "status", "person.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL },
139 { PIDGIN_STOCK_STATUS_MESSAGE, "toolbar", "message-new.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
140
132 { PIDGIN_STOCK_STATUS_IGNORED, "emblems", "blocked.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, 141 { PIDGIN_STOCK_STATUS_IGNORED, "emblems", "blocked.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
133 { PIDGIN_STOCK_STATUS_FOUNDER, "emblems", "founder.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, 142 { PIDGIN_STOCK_STATUS_FOUNDER, "emblems", "founder.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
134 { PIDGIN_STOCK_STATUS_OPERATOR, "emblems", "operator.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, 143 { PIDGIN_STOCK_STATUS_OPERATOR, "emblems", "operator.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
135 { PIDGIN_STOCK_STATUS_HALFOP, "emblems", "half-operator.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, 144 { PIDGIN_STOCK_STATUS_HALFOP, "emblems", "half-operator.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
136 { PIDGIN_STOCK_STATUS_VOICE, "emblems", "voice.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, 145 { PIDGIN_STOCK_STATUS_VOICE, "emblems", "voice.png", FALSE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL },
275 ret = find_file_common(filename); 284 ret = find_file_common(filename);
276 g_free(filename); 285 g_free(filename);
277 return ret; 286 return ret;
278 } 287 }
279 288
289 static void
290 add_sized_icon(GtkIconSet *iconset, GtkIconSize sizeid, const char *dir,
291 gboolean rtl, const char *size, const char *file)
292 {
293 add_sized_icon_common(iconset, sizeid, dir, rtl, size, file, FALSE);
294 }
280 295
281 /* Altered from do_colorshift in gnome-panel */ 296 /* Altered from do_colorshift in gnome-panel */
282 static void 297 static void
283 do_alphashift(GdkPixbuf *dest, GdkPixbuf *src) 298 do_alphashift(GdkPixbuf *dest, GdkPixbuf *src)
284 { 299 {
558 ADD_SIZED_ICON(huge, "64"); 573 ADD_SIZED_ICON(huge, "64");
559 #undef ADD_SIZED_ICON 574 #undef ADD_SIZED_ICON
560 575
561 gtk_icon_factory_add(icon_factory, sized_stock_icons[i].name, iconset); 576 gtk_icon_factory_add(icon_factory, sized_stock_icons[i].name, iconset);
562 gtk_icon_set_unref(iconset); 577 gtk_icon_set_unref(iconset);
578
579 if (sized_stock_icons[i].translucent_name) {
580 iconset = gtk_icon_set_new();
581
582 #define ADD_TRANS_ICON(name, size) do { \
583 if (sized_stock_icons[i].name) \
584 add_translucent_sized_icon(iconset, name, \
585 sized_stock_icons[i].dir, sized_stock_icons[i].rtl, \
586 size, sized_stock_icons[i].filename); \
587 } while (0)
588 ADD_TRANS_ICON(microscopic, "11");
589 ADD_TRANS_ICON(extra_small, "16");
590 ADD_TRANS_ICON(small, "22");
591 ADD_TRANS_ICON(medium, "32");
592 ADD_TRANS_ICON(large, "48");
593 ADD_TRANS_ICON(huge, "64");
594 #undef ADD_TRANS_ICON
595
596 gtk_icon_factory_add(icon_factory, sized_stock_icons[i].translucent_name, iconset);
597 gtk_icon_set_unref(iconset);
598 }
563 } 599 }
564 600
565 gtk_widget_destroy(win); 601 gtk_widget_destroy(win);
566 g_object_unref(G_OBJECT(icon_factory)); 602 g_object_unref(G_OBJECT(icon_factory));
567 603