| 196 { PIDGIN_STOCK_STATUS_XA, "status", "extended-away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, PIDGIN_STOCK_STATUS_XA_I }, |
196 { PIDGIN_STOCK_STATUS_XA, "status", "extended-away.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, PIDGIN_STOCK_STATUS_XA_I }, |
| 197 { PIDGIN_STOCK_STATUS_LOGIN, "status", "log-in.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, |
197 { PIDGIN_STOCK_STATUS_LOGIN, "status", "log-in.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, |
| 198 { PIDGIN_STOCK_STATUS_LOGOUT, "status", "log-out.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, |
198 { PIDGIN_STOCK_STATUS_LOGOUT, "status", "log-out.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, TRUE, NULL }, |
| 199 { PIDGIN_STOCK_STATUS_OFFLINE, "status", "offline.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I }, |
199 { PIDGIN_STOCK_STATUS_OFFLINE, "status", "offline.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, PIDGIN_STOCK_STATUS_OFFLINE_I }, |
| 200 { PIDGIN_STOCK_STATUS_PERSON, "status", "person.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
200 { PIDGIN_STOCK_STATUS_PERSON, "status", "person.png", TRUE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
| 201 { PIDGIN_STOCK_STATUS_MESSAGE, "toolbar", "message-new.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL }, |
201 { PIDGIN_STOCK_STATUS_MESSAGE, "toolbar", "message-new.png", TRUE, TRUE, FALSE, FALSE, FALSE, FALSE, FALSE, NULL } |
| |
202 }; |
| |
203 |
| |
204 const SizedStockIcon sized_tray_icons [] = { |
| 202 |
205 |
| 203 { PIDGIN_STOCK_TRAY_AVAILABLE, "tray", "tray-online.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
206 { PIDGIN_STOCK_TRAY_AVAILABLE, "tray", "tray-online.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
| 204 { PIDGIN_STOCK_TRAY_INVISIBLE, "tray", "tray-invisible.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
207 { PIDGIN_STOCK_TRAY_INVISIBLE, "tray", "tray-invisible.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
| 205 { PIDGIN_STOCK_TRAY_AWAY, "tray", "tray-away.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
208 { PIDGIN_STOCK_TRAY_AWAY, "tray", "tray-away.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
| 206 { PIDGIN_STOCK_TRAY_BUSY, "tray", "tray-busy.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
209 { PIDGIN_STOCK_TRAY_BUSY, "tray", "tray-busy.png", FALSE, TRUE, TRUE, TRUE, TRUE, FALSE, FALSE, NULL }, |
| 347 source = gtk_icon_source_new(); |
351 source = gtk_icon_source_new(); |
| 348 gtk_icon_source_set_pixbuf(source, pixbuf); |
352 gtk_icon_source_set_pixbuf(source, pixbuf); |
| 349 gtk_icon_source_set_direction(source, GTK_TEXT_DIR_LTR); |
353 gtk_icon_source_set_direction(source, GTK_TEXT_DIR_LTR); |
| 350 gtk_icon_source_set_direction_wildcarded(source, !sized_icon.rtl); |
354 gtk_icon_source_set_direction_wildcarded(source, !sized_icon.rtl); |
| 351 gtk_icon_source_set_size(source, sizeid); |
355 gtk_icon_source_set_size(source, sizeid); |
| 352 gtk_icon_source_set_size_wildcarded(source, FALSE); |
356 gtk_icon_source_set_size_wildcarded(source, size_wildcarded); |
| 353 gtk_icon_source_set_state_wildcarded(source, TRUE); |
357 gtk_icon_source_set_state_wildcarded(source, TRUE); |
| 354 gtk_icon_set_add_source(iconset, source); |
358 gtk_icon_set_add_source(iconset, source); |
| 355 gtk_icon_source_free(source); |
359 gtk_icon_source_free(source); |
| 356 |
360 |
| 357 if (sizeid == gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)) { |
361 if (sizeid == gtk_icon_size_from_name(PIDGIN_ICON_SIZE_TANGO_EXTRA_SMALL)) { |
| 358 source = gtk_icon_source_new(); |
362 source = gtk_icon_source_new(); |
| 359 gtk_icon_source_set_pixbuf(source, pixbuf); |
363 gtk_icon_source_set_pixbuf(source, pixbuf); |
| 360 gtk_icon_source_set_direction_wildcarded(source, TRUE); |
364 gtk_icon_source_set_direction_wildcarded(source, TRUE); |
| 361 gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); |
365 gtk_icon_source_set_size(source, GTK_ICON_SIZE_MENU); |
| 362 gtk_icon_source_set_size_wildcarded(source, FALSE); |
366 gtk_icon_source_set_size_wildcarded(source, size_wildcarded); |
| 363 gtk_icon_source_set_state_wildcarded(source, TRUE); |
367 gtk_icon_source_set_state_wildcarded(source, TRUE); |
| 364 gtk_icon_set_add_source(iconset, source); |
368 gtk_icon_set_add_source(iconset, source); |
| 365 gtk_icon_source_free(source); |
369 gtk_icon_source_free(source); |
| 366 } |
370 } |
| 367 g_free(filename); |
371 g_free(filename); |
| 377 source = gtk_icon_source_new(); |
381 source = gtk_icon_source_new(); |
| 378 gtk_icon_source_set_pixbuf(source, pixbuf); |
382 gtk_icon_source_set_pixbuf(source, pixbuf); |
| 379 gtk_icon_source_set_filename(source, filename); |
383 gtk_icon_source_set_filename(source, filename); |
| 380 gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); |
384 gtk_icon_source_set_direction(source, GTK_TEXT_DIR_RTL); |
| 381 gtk_icon_source_set_size(source, sizeid); |
385 gtk_icon_source_set_size(source, sizeid); |
| 382 gtk_icon_source_set_size_wildcarded(source, FALSE); |
386 gtk_icon_source_set_size_wildcarded(source, size_wildcarded); |
| 383 gtk_icon_source_set_state_wildcarded(source, TRUE); |
387 gtk_icon_source_set_state_wildcarded(source, TRUE); |
| 384 gtk_icon_set_add_source(iconset, source); |
388 gtk_icon_set_add_source(iconset, source); |
| 385 g_free(filename); |
389 g_free(filename); |
| 386 g_object_unref(pixbuf); |
390 g_object_unref(pixbuf); |
| 387 gtk_icon_source_free(source); |
391 gtk_icon_source_free(source); |
| 433 if (sized_status_icons[i].translucent_name) |
437 if (sized_status_icons[i].translucent_name) |
| 434 translucent = gtk_icon_set_new(); |
438 translucent = gtk_icon_set_new(); |
| 435 |
439 |
| 436 #define ADD_SIZED_ICON(name, size) \ |
440 #define ADD_SIZED_ICON(name, size) \ |
| 437 if (sized_status_icons[i].name) { \ |
441 if (sized_status_icons[i].name) { \ |
| 438 add_sized_icon(normal, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], FALSE); \ |
442 add_sized_icon(normal, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], FALSE, FALSE); \ |
| 439 if (sized_status_icons[i].translucent_name) \ |
443 if (sized_status_icons[i].translucent_name) \ |
| 440 add_sized_icon(translucent, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], TRUE); \ |
444 add_sized_icon(translucent, name, PIDGIN_ICON_THEME(theme), size, sized_status_icons[i], TRUE, FALSE); \ |
| 441 } |
445 } |
| 442 ADD_SIZED_ICON(microscopic, "11"); |
446 ADD_SIZED_ICON(microscopic, "11"); |
| 443 ADD_SIZED_ICON(extra_small, "16"); |
447 ADD_SIZED_ICON(extra_small, "16"); |
| 444 ADD_SIZED_ICON(small, "22"); |
448 ADD_SIZED_ICON(small, "22"); |
| 445 ADD_SIZED_ICON(medium, "32"); |
449 ADD_SIZED_ICON(medium, "32"); |
| 454 gtk_icon_factory_add(icon_factory, sized_status_icons[i].translucent_name, translucent); |
458 gtk_icon_factory_add(icon_factory, sized_status_icons[i].translucent_name, translucent); |
| 455 gtk_icon_set_unref(translucent); |
459 gtk_icon_set_unref(translucent); |
| 456 } |
460 } |
| 457 } |
461 } |
| 458 |
462 |
| |
463 for (i = 0; i < G_N_ELEMENTS(sized_tray_icons); i++) |
| |
464 { |
| |
465 normal = gtk_icon_set_new(); |
| |
466 if (sized_tray_icons[i].translucent_name) |
| |
467 translucent = gtk_icon_set_new(); |
| |
468 |
| |
469 #define ADD_SIZED_ICON(name, size) \ |
| |
470 if (sized_tray_icons[i].name) { \ |
| |
471 add_sized_icon(normal, name, PIDGIN_ICON_THEME(theme), size, sized_tray_icons[i], FALSE, TRUE); \ |
| |
472 if (sized_tray_icons[i].translucent_name) \ |
| |
473 add_sized_icon(translucent, name, PIDGIN_ICON_THEME(theme), size, sized_tray_icons[i], TRUE, TRUE); \ |
| |
474 } |
| |
475 ADD_SIZED_ICON(microscopic, "11"); |
| |
476 ADD_SIZED_ICON(extra_small, "16"); |
| |
477 ADD_SIZED_ICON(small, "22"); |
| |
478 ADD_SIZED_ICON(medium, "32"); |
| |
479 ADD_SIZED_ICON(large, "48"); |
| |
480 ADD_SIZED_ICON(huge, "64"); |
| |
481 #undef ADD_SIZED_ICON |
| |
482 |
| |
483 gtk_icon_factory_add(icon_factory, sized_tray_icons[i].name, normal); |
| |
484 gtk_icon_set_unref(normal); |
| |
485 |
| |
486 if (sized_tray_icons[i].translucent_name) { |
| |
487 gtk_icon_factory_add(icon_factory, sized_tray_icons[i].translucent_name, translucent); |
| |
488 gtk_icon_set_unref(translucent); |
| |
489 } |
| |
490 } |
| |
491 |
| 459 gtk_widget_destroy(win); |
492 gtk_widget_destroy(win); |
| 460 g_object_unref(G_OBJECT(icon_factory)); |
493 g_object_unref(G_OBJECT(icon_factory)); |
| 461 reload_settings(); |
494 reload_settings(); |
| 462 } |
495 } |
| 463 |
496 |
| 525 { |
558 { |
| 526 GtkIconSet *iconset = gtk_icon_set_new(); |
559 GtkIconSet *iconset = gtk_icon_set_new(); |
| 527 |
560 |
| 528 #define ADD_SIZED_ICON(name, size) \ |
561 #define ADD_SIZED_ICON(name, size) \ |
| 529 if (sized_stock_icons[i].name) \ |
562 if (sized_stock_icons[i].name) \ |
| 530 add_sized_icon(iconset, name, PIDGIN_ICON_THEME(theme), size, sized_stock_icons[i], FALSE); |
563 add_sized_icon(iconset, name, PIDGIN_ICON_THEME(theme), size, sized_stock_icons[i], FALSE, FALSE); |
| 531 ADD_SIZED_ICON(microscopic, "11"); |
564 ADD_SIZED_ICON(microscopic, "11"); |
| 532 ADD_SIZED_ICON(extra_small, "16"); |
565 ADD_SIZED_ICON(extra_small, "16"); |
| 533 ADD_SIZED_ICON(small, "22"); |
566 ADD_SIZED_ICON(small, "22"); |
| 534 ADD_SIZED_ICON(medium, "32"); |
567 ADD_SIZED_ICON(medium, "32"); |
| 535 ADD_SIZED_ICON(large, "48"); |
568 ADD_SIZED_ICON(large, "48"); |