| 340 } |
340 } |
| 341 |
341 |
| 342 void |
342 void |
| 343 purple_im_conversation_update_typing(PurpleIMConversation *im) |
343 purple_im_conversation_update_typing(PurpleIMConversation *im) |
| 344 { |
344 { |
| 345 g_return_if_fail(im != NULL); |
345 g_return_if_fail(PURPLE_IS_IM_CONVERSATION(im)); |
| 346 |
346 |
| 347 purple_conversation_update(PURPLE_CONVERSATION(im), |
347 purple_conversation_update(PURPLE_CONVERSATION(im), |
| 348 PURPLE_CONVERSATION_UPDATE_TYPING); |
348 PURPLE_CONVERSATION_UPDATE_TYPING); |
| 349 } |
349 } |
| 350 |
350 |
| 351 static void |
351 static void |
| 352 im_conversation_write_message(PurpleConversation *conv, const char *who, const char *message, |
352 im_conversation_write_message(PurpleConversation *conv, const char *who, const char *message, |
| 353 PurpleMessageFlags flags, time_t mtime) |
353 PurpleMessageFlags flags, time_t mtime) |
| 354 { |
354 { |
| 355 PurpleConversationUiOps *ops; |
355 PurpleConversationUiOps *ops; |
| 356 |
356 PurpleIMConversation *im = PURPLE_IM_CONVERSATION(conv); |
| 357 g_return_if_fail(conv != NULL); |
357 |
| |
358 g_return_if_fail(im != NULL); |
| 358 g_return_if_fail(message != NULL); |
359 g_return_if_fail(message != NULL); |
| 359 |
360 |
| 360 ops = purple_conversation_get_ui_ops(conv); |
361 ops = purple_conversation_get_ui_ops(conv); |
| 361 |
362 |
| 362 if ((flags & PURPLE_MESSAGE_RECV) == PURPLE_MESSAGE_RECV) { |
363 if ((flags & PURPLE_MESSAGE_RECV) == PURPLE_MESSAGE_RECV) |
| 363 purple_im_conversation_set_typing_state(PURPLE_IM_CONVERSATION(conv), |
364 purple_im_conversation_set_typing_state(im, PURPLE_IM_NOT_TYPING); |
| 364 PURPLE_IM_NOT_TYPING); |
|
| 365 } |
|
| 366 |
365 |
| 367 /* Pass this on to either the ops structure or the default write func. */ |
366 /* Pass this on to either the ops structure or the default write func. */ |
| 368 if (ops != NULL && ops->write_im != NULL) |
367 if (ops != NULL && ops->write_im != NULL) |
| 369 ops->write_im(PURPLE_IM_CONVERSATION(conv), who, message, flags, mtime); |
368 ops->write_im(im, who, message, flags, mtime); |
| 370 else |
369 else |
| 371 purple_conversation_write(conv, who, message, flags, mtime); |
370 purple_conversation_write(conv, who, message, flags, mtime); |
| 372 } |
371 } |
| 373 |
372 |
| 374 /************************************************************************** |
373 /************************************************************************** |
| 554 purple_im_conversation_new(PurpleAccount *account, const char *name) |
553 purple_im_conversation_new(PurpleAccount *account, const char *name) |
| 555 { |
554 { |
| 556 PurpleIMConversation *im; |
555 PurpleIMConversation *im; |
| 557 PurpleConnection *gc; |
556 PurpleConnection *gc; |
| 558 |
557 |
| 559 g_return_val_if_fail(account != NULL, NULL); |
558 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL); |
| 560 g_return_val_if_fail(name != NULL, NULL); |
559 g_return_val_if_fail(name != NULL, NULL); |
| 561 |
560 |
| 562 /* Check if this conversation already exists. */ |
561 /* Check if this conversation already exists. */ |
| 563 if ((im = purple_conversations_find_im_with_account(name, account)) != NULL) |
562 if ((im = purple_conversations_find_im_with_account(name, account)) != NULL) |
| 564 return im; |
563 return im; |
| 565 |
564 |
| 566 gc = purple_account_get_connection(account); |
565 gc = purple_account_get_connection(account); |
| 567 g_return_val_if_fail(gc != NULL, NULL); |
566 g_return_val_if_fail(PURPLE_IS_CONNECTION(gc), NULL); |
| 568 |
567 |
| 569 im = g_object_new(PURPLE_TYPE_IM_CONVERSATION, |
568 im = g_object_new(PURPLE_TYPE_IM_CONVERSATION, |
| 570 "account", account, |
569 "account", account, |
| 571 "name", name, |
570 "name", name, |
| 572 "title", name, |
571 "title", name, |
| 670 const char * |
669 const char * |
| 671 purple_chat_conversation_get_ignored_user(const PurpleChatConversation *chat, const char *user) |
670 purple_chat_conversation_get_ignored_user(const PurpleChatConversation *chat, const char *user) |
| 672 { |
671 { |
| 673 GList *ignored; |
672 GList *ignored; |
| 674 |
673 |
| 675 g_return_val_if_fail(chat != NULL, NULL); |
674 g_return_val_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat), NULL); |
| 676 g_return_val_if_fail(user != NULL, NULL); |
675 g_return_val_if_fail(user != NULL, NULL); |
| 677 |
676 |
| 678 for (ignored = purple_chat_conversation_get_ignored(chat); |
677 for (ignored = purple_chat_conversation_get_ignored(chat); |
| 679 ignored != NULL; |
678 ignored != NULL; |
| 680 ignored = ignored->next) { |
679 ignored = ignored->next) { |
| 698 } |
697 } |
| 699 |
698 |
| 700 gboolean |
699 gboolean |
| 701 purple_chat_conversation_is_ignored_user(const PurpleChatConversation *chat, const char *user) |
700 purple_chat_conversation_is_ignored_user(const PurpleChatConversation *chat, const char *user) |
| 702 { |
701 { |
| 703 g_return_val_if_fail(chat != NULL, FALSE); |
702 g_return_val_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat), FALSE); |
| 704 g_return_val_if_fail(user != NULL, FALSE); |
703 g_return_val_if_fail(user != NULL, FALSE); |
| 705 |
704 |
| 706 return (purple_chat_conversation_get_ignored_user(chat, user) != NULL); |
705 return (purple_chat_conversation_get_ignored_user(chat, user) != NULL); |
| 707 } |
706 } |
| 708 |
707 |
| 846 conv = PURPLE_CONVERSATION(chat); |
845 conv = PURPLE_CONVERSATION(chat); |
| 847 ops = purple_conversation_get_ui_ops(conv); |
846 ops = purple_conversation_get_ui_ops(conv); |
| 848 |
847 |
| 849 account = purple_conversation_get_account(conv); |
848 account = purple_conversation_get_account(conv); |
| 850 gc = purple_conversation_get_connection(conv); |
849 gc = purple_conversation_get_connection(conv); |
| 851 g_return_if_fail(gc != NULL); |
850 g_return_if_fail(PURPLE_IS_CONNECTION(gc)); |
| 852 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
851 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
| 853 g_return_if_fail(prpl_info != NULL); |
852 g_return_if_fail(prpl_info != NULL); |
| 854 |
853 |
| 855 ul = users; |
854 ul = users; |
| 856 fl = flags; |
855 fl = flags; |
| 953 conv = PURPLE_CONVERSATION(chat); |
952 conv = PURPLE_CONVERSATION(chat); |
| 954 ops = purple_conversation_get_ui_ops(conv); |
953 ops = purple_conversation_get_ui_ops(conv); |
| 955 account = purple_conversation_get_account(conv); |
954 account = purple_conversation_get_account(conv); |
| 956 |
955 |
| 957 gc = purple_conversation_get_connection(conv); |
956 gc = purple_conversation_get_connection(conv); |
| 958 g_return_if_fail(gc != NULL); |
957 g_return_if_fail(PURPLE_IS_CONNECTION(gc)); |
| 959 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
958 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
| 960 g_return_if_fail(prpl_info != NULL); |
959 g_return_if_fail(prpl_info != NULL); |
| 961 |
960 |
| 962 if (purple_strequal(priv->nick, purple_normalize(account, old_user))) { |
961 if (purple_strequal(priv->nick, purple_normalize(account, old_user))) { |
| 963 const char *alias; |
962 const char *alias; |
| 1076 g_return_if_fail(users != NULL); |
1075 g_return_if_fail(users != NULL); |
| 1077 |
1076 |
| 1078 conv = PURPLE_CONVERSATION(chat); |
1077 conv = PURPLE_CONVERSATION(chat); |
| 1079 |
1078 |
| 1080 gc = purple_conversation_get_connection(conv); |
1079 gc = purple_conversation_get_connection(conv); |
| 1081 g_return_if_fail(gc != NULL); |
1080 g_return_if_fail(PURPLE_IS_CONNECTION(gc)); |
| 1082 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
1081 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
| 1083 g_return_if_fail(prpl_info != NULL); |
1082 g_return_if_fail(prpl_info != NULL); |
| 1084 |
1083 |
| 1085 ops = purple_conversation_get_ui_ops(conv); |
1084 ops = purple_conversation_get_ui_ops(conv); |
| 1086 |
1085 |
| 1220 PurpleAccount *account; |
1219 PurpleAccount *account; |
| 1221 PurpleRequestFields *fields; |
1220 PurpleRequestFields *fields; |
| 1222 PurpleRequestFieldGroup *group; |
1221 PurpleRequestFieldGroup *group; |
| 1223 PurpleRequestField *field; |
1222 PurpleRequestField *field; |
| 1224 |
1223 |
| 1225 g_return_if_fail(chat != NULL); |
1224 g_return_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat)); |
| 1226 |
1225 |
| 1227 if (!user || !*user || !message || !*message) |
1226 if (!user || !*user || !message || !*message) |
| 1228 confirm = TRUE; |
1227 confirm = TRUE; |
| 1229 |
1228 |
| 1230 account = purple_conversation_get_account(PURPLE_CONVERSATION(chat)); |
1229 account = purple_conversation_get_account(PURPLE_CONVERSATION(chat)); |
| 1258 } |
1257 } |
| 1259 |
1258 |
| 1260 gboolean |
1259 gboolean |
| 1261 purple_chat_conversation_has_user(PurpleChatConversation *chat, const char *user) |
1260 purple_chat_conversation_has_user(PurpleChatConversation *chat, const char *user) |
| 1262 { |
1261 { |
| 1263 g_return_val_if_fail(chat != NULL, FALSE); |
1262 g_return_val_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat), FALSE); |
| 1264 g_return_val_if_fail(user != NULL, FALSE); |
1263 g_return_val_if_fail(user != NULL, FALSE); |
| 1265 |
1264 |
| 1266 return (purple_chat_conversation_find_user(chat, user) != NULL); |
1265 return (purple_chat_conversation_find_user(chat, user) != NULL); |
| 1267 } |
1266 } |
| 1268 |
1267 |
| 1596 purple_chat_conversation_new(PurpleAccount *account, const char *name) |
1595 purple_chat_conversation_new(PurpleAccount *account, const char *name) |
| 1597 { |
1596 { |
| 1598 PurpleChatConversation *chat; |
1597 PurpleChatConversation *chat; |
| 1599 PurpleConnection *gc; |
1598 PurpleConnection *gc; |
| 1600 |
1599 |
| 1601 g_return_val_if_fail(account != NULL, NULL); |
1600 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL); |
| 1602 g_return_val_if_fail(name != NULL, NULL); |
1601 g_return_val_if_fail(name != NULL, NULL); |
| 1603 |
1602 |
| 1604 /* Check if this conversation already exists. */ |
1603 /* Check if this conversation already exists. */ |
| 1605 if ((chat = purple_conversations_find_chat_with_account(name, account)) != NULL) |
1604 if ((chat = purple_conversations_find_chat_with_account(name, account)) != NULL) |
| 1606 { |
1605 { |
| 1607 if (!purple_chat_conversation_has_left(chat)) { |
1606 if (!purple_chat_conversation_has_left(chat)) { |
| 1740 } |
1739 } |
| 1741 |
1740 |
| 1742 void |
1741 void |
| 1743 purple_chat_user_set_ui_data(PurpleChatUser *cb, gpointer ui_data) |
1742 purple_chat_user_set_ui_data(PurpleChatUser *cb, gpointer ui_data) |
| 1744 { |
1743 { |
| 1745 g_return_if_fail(cb != NULL); |
1744 g_return_if_fail(PURPLE_IS_CHAT_USER(cb)); |
| 1746 |
1745 |
| 1747 cb->ui_data = ui_data; |
1746 cb->ui_data = ui_data; |
| 1748 } |
1747 } |
| 1749 |
1748 |
| 1750 gpointer |
1749 gpointer |
| 1751 purple_chat_user_get_ui_data(const PurpleChatUser *cb) |
1750 purple_chat_user_get_ui_data(const PurpleChatUser *cb) |
| 1752 { |
1751 { |
| 1753 g_return_val_if_fail(cb != NULL, NULL); |
1752 g_return_val_if_fail(PURPLE_IS_CHAT_USER(cb), NULL); |
| 1754 |
1753 |
| 1755 return cb->ui_data; |
1754 return cb->ui_data; |
| 1756 } |
1755 } |
| 1757 |
1756 |
| 1758 void |
1757 void |
| 1986 purple_chat_user_new(PurpleChatConversation *chat, const char *name, |
1985 purple_chat_user_new(PurpleChatConversation *chat, const char *name, |
| 1987 const char *alias, PurpleChatUserFlags flags) |
1986 const char *alias, PurpleChatUserFlags flags) |
| 1988 { |
1987 { |
| 1989 PurpleChatUser *cb; |
1988 PurpleChatUser *cb; |
| 1990 |
1989 |
| 1991 g_return_val_if_fail(chat != NULL, NULL); |
1990 g_return_val_if_fail(PURPLE_IS_CHAT_CONVERSATION(chat), NULL); |
| 1992 g_return_val_if_fail(name != NULL, NULL); |
1991 g_return_val_if_fail(name != NULL, NULL); |
| 1993 |
1992 |
| 1994 cb = g_object_new(PURPLE_TYPE_CHAT_USER, |
1993 cb = g_object_new(PURPLE_TYPE_CHAT_USER, |
| 1995 CU_PROP_CHAT_S, chat, |
1994 CU_PROP_CHAT_S, chat, |
| 1996 CU_PROP_NAME_S, name, |
1995 CU_PROP_NAME_S, name, |