Mercurial > pidgin.yaz
comparison pidgin/gtkconv.c @ 32767:2ec94166be43
On the way to hiding the PurpleConnection struct.
* Added purple_connection_get_flags() and purple_connection_set_flags()
* Use purple_connection_ accessor functions.
author | andrew.victor@mxit.com |
---|---|
date | Tue, 18 Oct 2011 18:47:48 +0000 |
parents | 599f8901a5e0 |
children | 75104780b1a3 |
comparison
equal
deleted
inserted
replaced
32766:ea2b621fd3ba | 32767:2ec94166be43 |
---|---|
562 { | 562 { |
563 PurplePluginProtocolInfo *prpl_info = NULL; | 563 PurplePluginProtocolInfo *prpl_info = NULL; |
564 PurpleConnection *gc; | 564 PurpleConnection *gc; |
565 | 565 |
566 if ((gc = purple_conversation_get_gc(conv))) | 566 if ((gc = purple_conversation_get_gc(conv))) |
567 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 567 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
568 | 568 |
569 if ((prpl_info != NULL) && (prpl_info->options & OPT_PROTO_SLASH_COMMANDS_NATIVE)) { | 569 if ((prpl_info != NULL) && (prpl_info->options & OPT_PROTO_SLASH_COMMANDS_NATIVE)) { |
570 char *spaceslash; | 570 char *spaceslash; |
571 | 571 |
572 /* If the first word in the entered text has a '/' in it, then the user | 572 /* If the first word in the entered text has a '/' in it, then the user |
1510 g_return_if_fail(account != NULL); | 1510 g_return_if_fail(account != NULL); |
1511 | 1511 |
1512 gc = purple_account_get_connection(account); | 1512 gc = purple_account_get_connection(account); |
1513 g_return_if_fail(gc != NULL); | 1513 g_return_if_fail(gc != NULL); |
1514 | 1514 |
1515 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 1515 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
1516 | 1516 |
1517 if (prpl_info && prpl_info->get_cb_real_name) | 1517 if (prpl_info && prpl_info->get_cb_real_name) |
1518 real_who = prpl_info->get_cb_real_name(gc, | 1518 real_who = prpl_info->get_cb_real_name(gc, |
1519 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); | 1519 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); |
1520 | 1520 |
1566 PurpleConnection *gc = purple_conversation_get_gc(conv); | 1566 PurpleConnection *gc = purple_conversation_get_gc(conv); |
1567 gchar *real_who = NULL; | 1567 gchar *real_who = NULL; |
1568 | 1568 |
1569 g_return_if_fail(gc != NULL); | 1569 g_return_if_fail(gc != NULL); |
1570 | 1570 |
1571 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 1571 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
1572 | 1572 |
1573 if (prpl_info && prpl_info->get_cb_real_name) | 1573 if (prpl_info && prpl_info->get_cb_real_name) |
1574 real_who = prpl_info->get_cb_real_name(gc, | 1574 real_who = prpl_info->get_cb_real_name(gc, |
1575 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); | 1575 purple_conv_chat_get_id(PURPLE_CONV_CHAT(conv)), who); |
1576 | 1576 |
1647 gboolean is_me = FALSE; | 1647 gboolean is_me = FALSE; |
1648 GtkWidget *button; | 1648 GtkWidget *button; |
1649 PurpleBuddy *buddy = NULL; | 1649 PurpleBuddy *buddy = NULL; |
1650 | 1650 |
1651 if (gc != NULL) | 1651 if (gc != NULL) |
1652 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 1652 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
1653 | 1653 |
1654 /* | 1654 /* |
1655 * If a menu already exists, destroy it before creating a new one, | 1655 * If a menu already exists, destroy it before creating a new one, |
1656 * thus freeing-up the memory it occupied. | 1656 * thus freeing-up the memory it occupied. |
1657 */ | 1657 */ |
4067 chat = PURPLE_CONV_CHAT(conv); | 4067 chat = PURPLE_CONV_CHAT(conv); |
4068 gtkconv = PIDGIN_CONVERSATION(conv); | 4068 gtkconv = PIDGIN_CONVERSATION(conv); |
4069 gtkchat = gtkconv->u.chat; | 4069 gtkchat = gtkconv->u.chat; |
4070 gc = purple_conversation_get_gc(conv); | 4070 gc = purple_conversation_get_gc(conv); |
4071 | 4071 |
4072 if (!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl))) | 4072 if (!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)))) |
4073 return; | 4073 return; |
4074 | 4074 |
4075 tm = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list)); | 4075 tm = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list)); |
4076 ls = GTK_LIST_STORE(tm); | 4076 ls = GTK_LIST_STORE(tm); |
4077 | 4077 |
4377 char *new_topic; | 4377 char *new_topic; |
4378 const char *current_topic; | 4378 const char *current_topic; |
4379 | 4379 |
4380 gc = purple_conversation_get_gc(conv); | 4380 gc = purple_conversation_get_gc(conv); |
4381 | 4381 |
4382 if(!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl))) | 4382 if(!gc || !(prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)))) |
4383 return; | 4383 return; |
4384 | 4384 |
4385 if(prpl_info->set_chat_topic == NULL) | 4385 if(prpl_info->set_chat_topic == NULL) |
4386 return; | 4386 return; |
4387 | 4387 |
4520 g_return_if_fail(node != NULL); | 4520 g_return_if_fail(node != NULL); |
4521 g_return_if_fail(conv != NULL); | 4521 g_return_if_fail(conv != NULL); |
4522 | 4522 |
4523 gc = purple_conversation_get_gc(conv); | 4523 gc = purple_conversation_get_gc(conv); |
4524 g_return_if_fail(gc != NULL); | 4524 g_return_if_fail(gc != NULL); |
4525 g_return_if_fail(gc->prpl != NULL); | 4525 g_return_if_fail(purple_connection_get_prpl(gc) != NULL); |
4526 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 4526 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
4527 | 4527 |
4528 if (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME) | 4528 if (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME) |
4529 return; | 4529 return; |
4530 | 4530 |
4531 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) | 4531 if (PURPLE_BLIST_NODE_IS_CONTACT(node)) |
4729 static void | 4729 static void |
4730 setup_chat_topic(PidginConversation *gtkconv, GtkWidget *vbox) | 4730 setup_chat_topic(PidginConversation *gtkconv, GtkWidget *vbox) |
4731 { | 4731 { |
4732 PurpleConversation *conv = gtkconv->active_conv; | 4732 PurpleConversation *conv = gtkconv->active_conv; |
4733 PurpleConnection *gc = purple_conversation_get_gc(conv); | 4733 PurpleConnection *gc = purple_conversation_get_gc(conv); |
4734 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 4734 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
4735 if (prpl_info->options & OPT_PROTO_CHAT_TOPIC) | 4735 if (prpl_info->options & OPT_PROTO_CHAT_TOPIC) |
4736 { | 4736 { |
4737 GtkWidget *hbox, *label; | 4737 GtkWidget *hbox, *label; |
4738 PidginChatPane *gtkchat = gtkconv->u.chat; | 4738 PidginChatPane *gtkchat = gtkconv->u.chat; |
4739 | 4739 |
4778 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path)) | 4778 if (!gtk_tree_model_get_iter(GTK_TREE_MODEL(model), &iter, path)) |
4779 return FALSE; | 4779 return FALSE; |
4780 | 4780 |
4781 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &who, -1); | 4781 gtk_tree_model_get(GTK_TREE_MODEL(model), &iter, CHAT_USERS_NAME_COLUMN, &who, -1); |
4782 | 4782 |
4783 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_account_get_connection(account)->prpl); | 4783 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(purple_account_get_connection(account))); |
4784 node = (PurpleBlistNode*)(purple_find_buddy(purple_conversation_get_account(conv), who)); | 4784 node = (PurpleBlistNode*)(purple_find_buddy(purple_conversation_get_account(conv), who)); |
4785 if (node && prpl_info && (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) | 4785 if (node && prpl_info && (prpl_info->options & OPT_PROTO_UNIQUE_CHATNAME)) |
4786 pidgin_blist_draw_tooltip(node, gtkconv->infopane); | 4786 pidgin_blist_draw_tooltip(node, gtkconv->infopane); |
4787 | 4787 |
4788 g_free(who); | 4788 g_free(who); |
5368 PurpleConversation *conv = gtkconv->active_conv; | 5368 PurpleConversation *conv = gtkconv->active_conv; |
5369 PidginWindow *win = gtkconv->win; | 5369 PidginWindow *win = gtkconv->win; |
5370 PurpleConversation *c; | 5370 PurpleConversation *c; |
5371 PurpleAccount *convaccount = purple_conversation_get_account(conv); | 5371 PurpleAccount *convaccount = purple_conversation_get_account(conv); |
5372 PurpleConnection *gc = purple_account_get_connection(convaccount); | 5372 PurpleConnection *gc = purple_account_get_connection(convaccount); |
5373 PurplePluginProtocolInfo *prpl_info = gc ? PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl) : NULL; | 5373 PurplePluginProtocolInfo *prpl_info = gc ? PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)) : NULL; |
5374 | 5374 |
5375 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE)) | 5375 if (sd->target == gdk_atom_intern("PURPLE_BLIST_NODE", FALSE)) |
5376 { | 5376 { |
5377 PurpleBlistNode *n = NULL; | 5377 PurpleBlistNode *n = NULL; |
5378 PurpleBuddy *b; | 5378 PurpleBuddy *b; |
6863 win = pidgin_conv_get_window(gtkconv); | 6863 win = pidgin_conv_get_window(gtkconv); |
6864 gc = purple_conversation_get_gc(conv); | 6864 gc = purple_conversation_get_gc(conv); |
6865 account = purple_conversation_get_account(conv); | 6865 account = purple_conversation_get_account(conv); |
6866 | 6866 |
6867 if (gc != NULL) | 6867 if (gc != NULL) |
6868 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 6868 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
6869 | 6869 |
6870 if (win->menu.send_to != NULL) | 6870 if (win->menu.send_to != NULL) |
6871 update_send_to_selection(win); | 6871 update_send_to_selection(win); |
6872 | 6872 |
6873 /* | 6873 /* |
7927 pidgin_conv_update_fields(conv, PIDGIN_CONV_TAB_ICON | | 7927 pidgin_conv_update_fields(conv, PIDGIN_CONV_TAB_ICON | |
7928 PIDGIN_CONV_MENU | PIDGIN_CONV_COLORIZE_TITLE); | 7928 PIDGIN_CONV_MENU | PIDGIN_CONV_COLORIZE_TITLE); |
7929 | 7929 |
7930 if (PURPLE_CONNECTION_IS_CONNECTED(gc) && | 7930 if (PURPLE_CONNECTION_IS_CONNECTED(gc) && |
7931 purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && | 7931 purple_conversation_get_type(conv) == PURPLE_CONV_TYPE_CHAT && |
7932 purple_conversation_get_account(conv) == gc->account && | 7932 purple_conversation_get_account(conv) == purple_connection_get_account(gc) && |
7933 purple_conversation_get_data(conv, "want-to-rejoin")) { | 7933 purple_conversation_get_data(conv, "want-to-rejoin")) { |
7934 GHashTable *comps = NULL; | 7934 GHashTable *comps = NULL; |
7935 PurpleChat *chat = purple_blist_find_chat(purple_conversation_get_account(conv), purple_conversation_get_name(conv)); | 7935 PurpleChat *chat = purple_blist_find_chat(purple_conversation_get_account(conv), purple_conversation_get_name(conv)); |
7936 if (chat == NULL) { | 7936 if (chat == NULL) { |
7937 if (PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults != NULL) | 7937 PurplePluginProtocolInfo *prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
7938 comps = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl)->chat_info_defaults(gc, purple_conversation_get_name(conv)); | 7938 |
7939 if (prpl_info->chat_info_defaults != NULL) | |
7940 comps = prpl_info->chat_info_defaults(gc, purple_conversation_get_name(conv)); | |
7939 } else { | 7941 } else { |
7940 comps = chat->components; | 7942 comps = chat->components; |
7941 } | 7943 } |
7942 serv_join_chat(gc, comps); | 7944 serv_join_chat(gc, comps); |
7943 if (chat == NULL && comps != NULL) | 7945 if (chat == NULL && comps != NULL) |
9428 PurpleConnection *gc; | 9430 PurpleConnection *gc; |
9429 PurplePluginProtocolInfo *prpl_info = NULL; | 9431 PurplePluginProtocolInfo *prpl_info = NULL; |
9430 | 9432 |
9431 gc = purple_conversation_get_gc(conv); | 9433 gc = purple_conversation_get_gc(conv); |
9432 if (gc != NULL) | 9434 if (gc != NULL) |
9433 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(gc->prpl); | 9435 prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(purple_connection_get_prpl(gc)); |
9434 if (prpl_info && prpl_info->set_chat_topic == NULL) | 9436 if (prpl_info && prpl_info->set_chat_topic == NULL) |
9435 /* This protocol doesn't support setting the chat room topic */ | 9437 /* This protocol doesn't support setting the chat room topic */ |
9436 return FALSE; | 9438 return FALSE; |
9437 | 9439 |
9438 text = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); | 9440 text = purple_conv_chat_get_topic(PURPLE_CONV_CHAT(conv)); |