| 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 { |