pidgin/gtkutils.c

changeset 26894
a48de595d2ee
parent 26865
c29554ceb409
child 27216
b131337574d5
equal deleted inserted replaced
26893:351f48f83366 26894:a48de595d2ee
1720 pixbuf = gtk_widget_render_icon (w, stock ? stock : PIDGIN_STOCK_STATUS_AVAILABLE, 1720 pixbuf = gtk_widget_render_icon (w, stock ? stock : PIDGIN_STOCK_STATUS_AVAILABLE,
1721 icon_size, "GtkWidget"); 1721 icon_size, "GtkWidget");
1722 return pixbuf; 1722 return pixbuf;
1723 } 1723 }
1724 1724
1725 const char * 1725 static const char *
1726 pidgin_stock_id_from_status_primitive(PurpleStatusPrimitive prim) 1726 stock_id_from_status_primitive_idle(PurpleStatusPrimitive prim, gboolean idle)
1727 { 1727 {
1728 const char *stock = NULL; 1728 const char *stock = NULL;
1729 switch (prim) { 1729 switch (prim) {
1730 case PURPLE_STATUS_UNSET: 1730 case PURPLE_STATUS_UNSET:
1731 stock = NULL; 1731 stock = NULL;
1732 break; 1732 break;
1733 case PURPLE_STATUS_UNAVAILABLE: 1733 case PURPLE_STATUS_UNAVAILABLE:
1734 stock = PIDGIN_STOCK_STATUS_BUSY; 1734 stock = idle ? PIDGIN_STOCK_STATUS_BUSY_I : PIDGIN_STOCK_STATUS_BUSY;
1735 break; 1735 break;
1736 case PURPLE_STATUS_AWAY: 1736 case PURPLE_STATUS_AWAY:
1737 stock = PIDGIN_STOCK_STATUS_AWAY; 1737 stock = idle ? PIDGIN_STOCK_STATUS_AWAY_I : PIDGIN_STOCK_STATUS_AWAY;
1738 break; 1738 break;
1739 case PURPLE_STATUS_EXTENDED_AWAY: 1739 case PURPLE_STATUS_EXTENDED_AWAY:
1740 stock = PIDGIN_STOCK_STATUS_XA; 1740 stock = idle ? PIDGIN_STOCK_STATUS_XA_I : PIDGIN_STOCK_STATUS_XA;
1741 break; 1741 break;
1742 case PURPLE_STATUS_INVISIBLE: 1742 case PURPLE_STATUS_INVISIBLE:
1743 stock = PIDGIN_STOCK_STATUS_INVISIBLE; 1743 stock = PIDGIN_STOCK_STATUS_INVISIBLE;
1744 break; 1744 break;
1745 case PURPLE_STATUS_OFFLINE: 1745 case PURPLE_STATUS_OFFLINE:
1746 stock = PIDGIN_STOCK_STATUS_OFFLINE; 1746 stock = idle ? PIDGIN_STOCK_STATUS_OFFLINE_I : PIDGIN_STOCK_STATUS_OFFLINE;
1747 break; 1747 break;
1748 default: 1748 default:
1749 stock = PIDGIN_STOCK_STATUS_AVAILABLE; 1749 stock = idle ? PIDGIN_STOCK_STATUS_AVAILABLE_I : PIDGIN_STOCK_STATUS_AVAILABLE;
1750 break; 1750 break;
1751 } 1751 }
1752 return stock; 1752 return stock;
1753 }
1754
1755 const char *
1756 pidgin_stock_id_from_status_primitive(PurpleStatusPrimitive prim)
1757 {
1758 return stock_id_from_status_primitive_idle(prim, FALSE);
1759 }
1760
1761 const char *
1762 pidgin_stock_id_from_presence(PurplePresence *presence)
1763 {
1764 PurpleStatus *status;
1765 PurpleStatusType *type;
1766 PurpleStatusPrimitive prim;
1767 gboolean idle;
1768
1769 g_return_val_if_fail(presence, NULL);
1770
1771 status = purple_presence_get_active_status(presence);
1772 type = purple_status_get_type(status);
1773 prim = purple_status_type_get_primitive(type);
1774
1775 idle = purple_presence_is_idle(presence);
1776
1777 return stock_id_from_status_primitive_idle(prim, idle);
1753 } 1778 }
1754 1779
1755 GdkPixbuf * 1780 GdkPixbuf *
1756 pidgin_create_prpl_icon(PurpleAccount *account, PidginPrplIconSize size) 1781 pidgin_create_prpl_icon(PurpleAccount *account, PidginPrplIconSize size)
1757 { 1782 {

mercurial