Mercurial > pidgin.yaz
diff pidgin/gtkutils.c @ 26811:89f613b16e2b
New API to get the stock-id for a presence.
author | Sadrul Habib Chowdhury <imadil@gmail.com> |
---|---|
date | Wed, 29 Apr 2009 03:19:43 +0000 |
parents | 4a3a0c47dfe1 |
children | fe1603ecf579 684690dbda4a |
line wrap: on
line diff
--- a/pidgin/gtkutils.c Wed Apr 29 02:27:55 2009 +0000 +++ b/pidgin/gtkutils.c Wed Apr 29 03:19:43 2009 +0000 @@ -1722,8 +1722,8 @@ return pixbuf; } -const char * -pidgin_stock_id_from_status_primitive(PurpleStatusPrimitive prim) +static const char * +stock_id_from_status_primitive_idle(PurpleStatusPrimitive prim, gboolean idle) { const char *stock = NULL; switch (prim) { @@ -1731,27 +1731,52 @@ stock = NULL; break; case PURPLE_STATUS_UNAVAILABLE: - stock = PIDGIN_STOCK_STATUS_BUSY; + stock = idle ? PIDGIN_STOCK_STATUS_BUSY_I : PIDGIN_STOCK_STATUS_BUSY; break; case PURPLE_STATUS_AWAY: - stock = PIDGIN_STOCK_STATUS_AWAY; + stock = idle ? PIDGIN_STOCK_STATUS_AWAY_I : PIDGIN_STOCK_STATUS_AWAY; break; case PURPLE_STATUS_EXTENDED_AWAY: - stock = PIDGIN_STOCK_STATUS_XA; + stock = idle ? PIDGIN_STOCK_STATUS_XA_I : PIDGIN_STOCK_STATUS_XA; break; case PURPLE_STATUS_INVISIBLE: stock = PIDGIN_STOCK_STATUS_INVISIBLE; break; case PURPLE_STATUS_OFFLINE: - stock = PIDGIN_STOCK_STATUS_OFFLINE; + stock = idle ? PIDGIN_STOCK_STATUS_OFFLINE_I : PIDGIN_STOCK_STATUS_OFFLINE; break; default: - stock = PIDGIN_STOCK_STATUS_AVAILABLE; + stock = idle ? PIDGIN_STOCK_STATUS_AVAILABLE_I : PIDGIN_STOCK_STATUS_AVAILABLE; break; } return stock; } +const char * +pidgin_stock_id_from_status_primitive(PurpleStatusPrimitive prim) +{ + return stock_id_from_status_primitive_idle(prim, FALSE); +} + +const char * +pidgin_stock_id_from_presence(PurplePresence *presence) +{ + PurpleStatus *status; + PurpleStatusType *type; + PurpleStatusPrimitive prim; + gboolean idle; + + g_return_val_if_fail(presence, NULL); + + status = purple_presence_get_active_status(presence); + type = purple_status_get_type(status); + prim = purple_status_type_get_primitive(type); + + idle = purple_presence_is_idle(presence); + + return stock_id_from_status_primitive_idle(prim, idle); +} + GdkPixbuf * pidgin_create_prpl_icon(PurpleAccount *account, PidginPrplIconSize size) {