Mercurial > pidgin
comparison libpurple/prpl.c @ 32819:2c6510167895 default tip
propagate from branch 'im.pidgin.pidgin.2.x.y' (head 3315c5dfbd0ad16511bdcf865e5b07c02d07df24)
to branch 'im.pidgin.pidgin' (head cbd1eda6bcbf0565ae7766396bb8f6f419cb6a9a)
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sat, 02 Jun 2012 02:30:49 +0000 |
parents | 2ec94166be43 |
children |
comparison
equal
deleted
inserted
replaced
32818:01ff09d4a463 | 32819:2c6510167895 |
---|---|
30 #include "util.h" | 30 #include "util.h" |
31 | 31 |
32 /**************************************************************************/ | 32 /**************************************************************************/ |
33 /** @name Attention Type API */ | 33 /** @name Attention Type API */ |
34 /**************************************************************************/ | 34 /**************************************************************************/ |
35 | |
36 struct _PurpleAttentionType | |
37 { | |
38 const char *name; /**< Shown in GUI elements */ | |
39 const char *incoming_description; /**< Shown when sent */ | |
40 const char *outgoing_description; /**< Shown when receied */ | |
41 const char *icon_name; /**< Icon to display (optional) */ | |
42 const char *unlocalized_name; /**< Unlocalized name for UIs needing it */ | |
43 }; | |
44 | |
45 | |
35 PurpleAttentionType * | 46 PurpleAttentionType * |
36 purple_attention_type_new(const char *ulname, const char *name, | 47 purple_attention_type_new(const char *ulname, const char *name, |
37 const char *inc_desc, const char *out_desc) | 48 const char *inc_desc, const char *out_desc) |
38 { | 49 { |
39 PurpleAttentionType *attn = g_new0(PurpleAttentionType, 1); | 50 PurpleAttentionType *attn = g_new0(PurpleAttentionType, 1); |
433 time_t mtime; | 444 time_t mtime; |
434 | 445 |
435 g_return_if_fail(gc != NULL); | 446 g_return_if_fail(gc != NULL); |
436 g_return_if_fail(who != NULL); | 447 g_return_if_fail(who != NULL); |
437 | 448 |
438 prpl = purple_find_prpl(purple_account_get_protocol_id(gc->account)); | 449 prpl = purple_find_prpl(purple_account_get_protocol_id(purple_connection_get_account(gc))); |
439 send_attention = PURPLE_PLUGIN_PROTOCOL_INFO(prpl)->send_attention; | 450 send_attention = PURPLE_PLUGIN_PROTOCOL_INFO(prpl)->send_attention; |
440 g_return_if_fail(send_attention != NULL); | 451 g_return_if_fail(send_attention != NULL); |
441 | 452 |
442 mtime = time(NULL); | 453 mtime = time(NULL); |
443 | 454 |
444 attn = purple_get_attention_type_from_code(gc->account, type_code); | 455 attn = purple_get_attention_type_from_code(purple_connection_get_account(gc), type_code); |
445 | 456 |
446 if ((buddy = purple_find_buddy(purple_connection_get_account(gc), who)) != NULL) | 457 if ((buddy = purple_find_buddy(purple_connection_get_account(gc), who)) != NULL) |
447 alias = purple_buddy_get_contact_alias(buddy); | 458 alias = purple_buddy_get_contact_alias(buddy); |
448 else | 459 else |
449 alias = who; | 460 alias = who; |
460 description, who); | 471 description, who); |
461 | 472 |
462 if (!send_attention(gc, who, type_code)) | 473 if (!send_attention(gc, who, type_code)) |
463 return; | 474 return; |
464 | 475 |
465 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, gc->account, who); | 476 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, purple_connection_get_account(gc), who); |
466 purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, description, flags, mtime); | 477 purple_conv_im_write(PURPLE_CONV_IM(conv), NULL, description, flags, mtime); |
467 purple_prpl_attention(conv, who, type_code, PURPLE_MESSAGE_SEND, time(NULL)); | 478 purple_prpl_attention(conv, who, type_code, PURPLE_MESSAGE_SEND, time(NULL)); |
468 | 479 |
469 g_free(description); | 480 g_free(description); |
470 } | 481 } |
479 gchar *description; | 490 gchar *description; |
480 time_t mtime; | 491 time_t mtime; |
481 | 492 |
482 mtime = time(NULL); | 493 mtime = time(NULL); |
483 | 494 |
484 attn = purple_get_attention_type_from_code(gc->account, type_code); | 495 attn = purple_get_attention_type_from_code(purple_connection_get_account(gc), type_code); |
485 | 496 |
486 /* PURPLE_MESSAGE_NOTIFY is for attention messages. */ | 497 /* PURPLE_MESSAGE_NOTIFY is for attention messages. */ |
487 flags = PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NOTIFY | PURPLE_MESSAGE_RECV; | 498 flags = PURPLE_MESSAGE_SYSTEM | PURPLE_MESSAGE_NOTIFY | PURPLE_MESSAGE_RECV; |
488 | 499 |
489 /* TODO: if (attn->icon_name) is non-null, use it to lookup an emoticon and display | 500 /* TODO: if (attn->icon_name) is non-null, use it to lookup an emoticon and display |