comparison src/gtkconv.c @ 4491:3196d9044a45

[gaim-migrate @ 4766] aim_user is dead. long live gaim_account. committer: Tailor Script <tailor@pidgin.im>
author Nathan Walp <nwalp@pidgin.im>
date Fri, 31 Jan 2003 13:03:47 +0000
parents c3281e2af992
children 577e6d268340
comparison
equal deleted inserted replaced
4490:70b892694e0b 4491:3196d9044a45
456 struct buddy *b; 456 struct buddy *b;
457 const char *name; 457 const char *name;
458 458
459 gc = gaim_conversation_get_gc(conv); 459 gc = gaim_conversation_get_gc(conv);
460 name = gaim_conversation_get_name(conv); 460 name = gaim_conversation_get_name(conv);
461 b = find_buddy(gc->user, name); 461 b = find_buddy(gc->account, name);
462 462
463 if (b != NULL) 463 if (b != NULL)
464 show_confirm_del(gc, (char *)name); 464 show_confirm_del(gc, (char *)name);
465 else if (gc != NULL) 465 else if (gc != NULL)
466 show_add_buddy(gc, (char *)name, NULL, NULL); 466 show_add_buddy(gc, (char *)name, NULL, NULL);
528 im_cb(GtkWidget *widget, struct gaim_conversation *conv) 528 im_cb(GtkWidget *widget, struct gaim_conversation *conv)
529 { 529 {
530 struct gaim_conversation *conv2; 530 struct gaim_conversation *conv2;
531 struct gaim_gtk_conversation *gtkconv; 531 struct gaim_gtk_conversation *gtkconv;
532 struct gaim_gtk_chat_pane *gtkchat; 532 struct gaim_gtk_chat_pane *gtkchat;
533 struct aim_user *user; 533 struct gaim_account *account;
534 GtkTreeIter iter; 534 GtkTreeIter iter;
535 GtkTreeModel *model; 535 GtkTreeModel *model;
536 GtkTreeSelection *sel; 536 GtkTreeSelection *sel;
537 const char *name; 537 const char *name;
538 538
548 return; 548 return;
549 549
550 if (*name == '@') name++; 550 if (*name == '@') name++;
551 if (*name == '+') name++; 551 if (*name == '+') name++;
552 552
553 user = gaim_conversation_get_user(conv); 553 account = gaim_conversation_get_account(conv);
554 554
555 conv2 = gaim_find_conversation(name); 555 conv2 = gaim_find_conversation(name);
556 556
557 if (conv2 != NULL) { 557 if (conv2 != NULL) {
558 gaim_window_raise(gaim_conversation_get_window(conv2)); 558 gaim_window_raise(gaim_conversation_get_window(conv2));
559 gaim_conversation_set_user(conv2, user); 559 gaim_conversation_set_account(conv2, account);
560 } 560 }
561 else 561 else
562 conv2 = gaim_conversation_new(GAIM_CONV_IM, user, name); 562 conv2 = gaim_conversation_new(GAIM_CONV_IM, account, name);
563 } 563 }
564 564
565 static void 565 static void
566 ignore_cb(GtkWidget *w, struct gaim_conversation *conv) 566 ignore_cb(GtkWidget *w, struct gaim_conversation *conv)
567 { 567 {
601 static void 601 static void
602 menu_im_cb(GtkWidget *w, struct gaim_conversation *conv) 602 menu_im_cb(GtkWidget *w, struct gaim_conversation *conv)
603 { 603 {
604 const char *who; 604 const char *who;
605 struct gaim_conversation *conv2; 605 struct gaim_conversation *conv2;
606 struct aim_user *user; 606 struct gaim_account *account;
607 607
608 who = g_object_get_data(G_OBJECT(w), "user_data"); 608 who = g_object_get_data(G_OBJECT(w), "user_data");
609 609
610 user = gaim_conversation_get_user(conv); 610 account = gaim_conversation_get_account(conv);
611 611
612 conv2 = gaim_find_conversation(who); 612 conv2 = gaim_find_conversation(who);
613 613
614 if (conv2 != NULL) 614 if (conv2 != NULL)
615 gaim_window_show(gaim_conversation_get_window(conv2)); 615 gaim_window_show(gaim_conversation_get_window(conv2));
616 else 616 else
617 conv2 = gaim_conversation_new(GAIM_CONV_IM, user, who); 617 conv2 = gaim_conversation_new(GAIM_CONV_IM, account, who);
618 } 618 }
619 619
620 static void 620 static void
621 menu_info_cb(GtkWidget *w, struct gaim_conversation *conv) 621 menu_info_cb(GtkWidget *w, struct gaim_conversation *conv)
622 { 622 {
664 struct buddy *b; 664 struct buddy *b;
665 char *name; 665 char *name;
666 666
667 gc = gaim_conversation_get_gc(conv); 667 gc = gaim_conversation_get_gc(conv);
668 name = g_object_get_data(G_OBJECT(w), "user_data"); 668 name = g_object_get_data(G_OBJECT(w), "user_data");
669 b = find_buddy(gc->user, name); 669 b = find_buddy(gc->account, name);
670 670
671 if (b != NULL) 671 if (b != NULL)
672 show_confirm_del(gc, name); 672 show_confirm_del(gc, name);
673 else if (gc != NULL) 673 else if (gc != NULL)
674 show_add_buddy(gc, name, NULL, NULL); 674 show_add_buddy(gc, name, NULL, NULL);
681 struct gaim_conversation *conv) 681 struct gaim_conversation *conv)
682 { 682 {
683 struct gaim_gtk_conversation *gtkconv; 683 struct gaim_gtk_conversation *gtkconv;
684 struct gaim_gtk_chat_pane *gtkchat; 684 struct gaim_gtk_chat_pane *gtkchat;
685 struct gaim_connection *gc; 685 struct gaim_connection *gc;
686 struct aim_user *user; 686 struct gaim_account *account;
687 GtkTreePath *path; 687 GtkTreePath *path;
688 GtkTreeIter iter; 688 GtkTreeIter iter;
689 GtkTreeModel *model; 689 GtkTreeModel *model;
690 GtkTreeViewColumn *column; 690 GtkTreeViewColumn *column;
691 gchar *who; 691 gchar *who;
692 int x, y; 692 int x, y;
693 693
694 gtkconv = GAIM_GTK_CONVERSATION(conv); 694 gtkconv = GAIM_GTK_CONVERSATION(conv);
695 gtkchat = gtkconv->u.chat; 695 gtkchat = gtkconv->u.chat;
696 user = gaim_conversation_get_user(conv); 696 account = gaim_conversation_get_account(conv);
697 gc = user->gc; 697 gc = account->gc;
698 698
699 model = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list)); 699 model = gtk_tree_view_get_model(GTK_TREE_VIEW(gtkchat->list));
700 700
701 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(gtkchat->list), 701 gtk_tree_view_get_path_at_pos(GTK_TREE_VIEW(gtkchat->list),
702 event->x, event->y, &path, &column, &x, &y); 702 event->x, event->y, &path, &column, &x, &y);
712 712
713 if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) { 713 if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) {
714 struct gaim_conversation *c; 714 struct gaim_conversation *c;
715 715
716 if ((c = gaim_find_conversation(who)) == NULL) 716 if ((c = gaim_find_conversation(who)) == NULL)
717 c = gaim_conversation_new(GAIM_CONV_IM, user, who); 717 c = gaim_conversation_new(GAIM_CONV_IM, account, who);
718 else 718 else
719 gaim_conversation_set_user(c, user); 719 gaim_conversation_set_account(c, account);
720 } 720 }
721 else if (event->button == 3 && event->type == GDK_BUTTON_PRESS) { 721 else if (event->button == 3 && event->type == GDK_BUTTON_PRESS) {
722 static GtkWidget *menu = NULL; 722 static GtkWidget *menu = NULL;
723 GtkWidget *button; 723 GtkWidget *button;
724 724
768 gtk_widget_show(button); 768 gtk_widget_show(button);
769 } 769 }
770 770
771 /* Added by Jonas <jonas@birme.se> */ 771 /* Added by Jonas <jonas@birme.se> */
772 if (gc) { 772 if (gc) {
773 if (find_buddy(gc->user, who)) 773 if (find_buddy(gc->account, who))
774 button = gtk_menu_item_new_with_label(_("Remove")); 774 button = gtk_menu_item_new_with_label(_("Remove"));
775 else 775 else
776 button = gtk_menu_item_new_with_label(_("Add")); 776 button = gtk_menu_item_new_with_label(_("Add"));
777 777
778 g_signal_connect(G_OBJECT(button), "activate", 778 g_signal_connect(G_OBJECT(button), "activate",
1243 1243
1244 return FALSE; 1244 return FALSE;
1245 } 1245 }
1246 1246
1247 static void 1247 static void
1248 menu_conv_sel_send_cb(GObject *m, struct aim_user *user) 1248 menu_conv_sel_send_cb(GObject *m, struct gaim_account *account)
1249 { 1249 {
1250 struct gaim_window *win = g_object_get_data(m, "user_data"); 1250 struct gaim_window *win = g_object_get_data(m, "user_data");
1251 struct gaim_conversation *conv; 1251 struct gaim_conversation *conv;
1252 1252
1253 if (gaim_gtk_is_state_locked()) 1253 if (gaim_gtk_is_state_locked())
1254 return; 1254 return;
1255 1255
1256 conv = gaim_window_get_active_conversation(win); 1256 conv = gaim_window_get_active_conversation(win);
1257 1257
1258 gaim_conversation_set_user(conv, user); 1258 gaim_conversation_set_account(conv, account);
1259 } 1259 }
1260 1260
1261 static void 1261 static void
1262 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position, 1262 insert_text_cb(GtkTextBuffer *textbuffer, GtkTextIter *position,
1263 gchar *new_text, gint new_text_length, gpointer user_data) 1263 gchar *new_text, gint new_text_length, gpointer user_data)
1937 } 1937 }
1938 1938
1939 static void 1939 static void
1940 update_send_as_selection(struct gaim_window *win) 1940 update_send_as_selection(struct gaim_window *win)
1941 { 1941 {
1942 struct aim_user *user; 1942 struct gaim_account *account;
1943 struct gaim_conversation *conv; 1943 struct gaim_conversation *conv;
1944 struct gaim_gtk_window *gtkwin; 1944 struct gaim_gtk_window *gtkwin;
1945 const char *username; 1945 const char *username;
1946 GtkWidget *menu; 1946 GtkWidget *menu;
1947 GList *child; 1947 GList *child;
1949 conv = gaim_window_get_active_conversation(win); 1949 conv = gaim_window_get_active_conversation(win);
1950 1950
1951 if (conv == NULL) 1951 if (conv == NULL)
1952 return; 1952 return;
1953 1953
1954 user = gaim_conversation_get_user(conv); 1954 account = gaim_conversation_get_account(conv);
1955 gtkwin = GAIM_GTK_WINDOW(win); 1955 gtkwin = GAIM_GTK_WINDOW(win);
1956 1956
1957 if (user == NULL) 1957 if (account == NULL)
1958 return; 1958 return;
1959 1959
1960 if (gtkwin->menu.send_as == NULL) 1960 if (gtkwin->menu.send_as == NULL)
1961 return; 1961 return;
1962 1962
1963 username = (user->gc == NULL ? user->username : user->gc->username); 1963 username = (account->gc == NULL ? account->username : account->gc->username);
1964 1964
1965 gtk_widget_show(gtkwin->menu.send_as); 1965 gtk_widget_show(gtkwin->menu.send_as);
1966 1966
1967 menu = gtk_menu_item_get_submenu( 1967 menu = gtk_menu_item_get_submenu(
1968 GTK_MENU_ITEM(gtkwin->menu.send_as)); 1968 GTK_MENU_ITEM(gtkwin->menu.send_as));
2019 for (convs = gaim_get_conversations(); 2019 for (convs = gaim_get_conversations();
2020 convs != NULL; 2020 convs != NULL;
2021 convs = convs->next) { 2021 convs = convs->next) {
2022 2022
2023 struct gaim_conversation *conv; 2023 struct gaim_conversation *conv;
2024 struct aim_user *user; 2024 struct gaim_account *account;
2025 2025
2026 conv = (struct gaim_conversation *)convs->data; 2026 conv = (struct gaim_conversation *)convs->data;
2027 user = gaim_conversation_get_user(conv); 2027 account = gaim_conversation_get_account(conv);
2028 2028
2029 if (user->gc == NULL) { 2029 if (account->gc == NULL) {
2030 found_offline = TRUE; 2030 found_offline = TRUE;
2031 break; 2031 break;
2032 } 2032 }
2033 } 2033 }
2034 2034
2062 group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menuitem)); 2062 group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menuitem));
2063 2063
2064 g_object_set_data(G_OBJECT(menuitem), "user_data", win); 2064 g_object_set_data(G_OBJECT(menuitem), "user_data", win);
2065 2065
2066 g_signal_connect(G_OBJECT(menuitem), "activate", 2066 g_signal_connect(G_OBJECT(menuitem), "activate",
2067 G_CALLBACK(menu_conv_sel_send_cb), gc->user); 2067 G_CALLBACK(menu_conv_sel_send_cb), gc->account);
2068 2068
2069 gtk_widget_show(menuitem); 2069 gtk_widget_show(menuitem);
2070 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 2070 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
2071 } 2071 }
2072 2072
2077 for (convs = gaim_get_conversations(); 2077 for (convs = gaim_get_conversations();
2078 convs != NULL; 2078 convs != NULL;
2079 convs = convs->next) { 2079 convs = convs->next) {
2080 2080
2081 struct gaim_conversation *conv; 2081 struct gaim_conversation *conv;
2082 struct aim_user *user; 2082 struct gaim_account *account;
2083 2083
2084 conv = (struct gaim_conversation *)convs->data; 2084 conv = (struct gaim_conversation *)convs->data;
2085 2085
2086 if (conv == deleted_conv) 2086 if (conv == deleted_conv)
2087 continue; 2087 continue;
2088 2088
2089 user = gaim_conversation_get_user(conv); 2089 account = gaim_conversation_get_account(conv);
2090 2090
2091 if (user->gc == NULL) { 2091 if (account->gc == NULL) {
2092 if (first_offline && found_online) { 2092 if (first_offline && found_online) {
2093 menuitem = gtk_separator_menu_item_new(); 2093 menuitem = gtk_separator_menu_item_new();
2094 gtk_widget_show(menuitem); 2094 gtk_widget_show(menuitem);
2095 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem); 2095 gtk_menu_shell_append(GTK_MENU_SHELL(menu), menuitem);
2096 2096
2097 first_offline = FALSE; 2097 first_offline = FALSE;
2098 } 2098 }
2099 2099
2100 menuitem = gtk_radio_menu_item_new_with_label(group, 2100 menuitem = gtk_radio_menu_item_new_with_label(group,
2101 user->username); 2101 account->username);
2102 group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menuitem)); 2102 group = gtk_radio_menu_item_group(GTK_RADIO_MENU_ITEM(menuitem));
2103 2103
2104 gtk_widget_set_sensitive(menuitem, FALSE); 2104 gtk_widget_set_sensitive(menuitem, FALSE);
2105 2105
2106 gtk_widget_show(menuitem); 2106 gtk_widget_show(menuitem);
2489 gtk_widget_show(gtkim->sep2); 2489 gtk_widget_show(gtkim->sep2);
2490 2490
2491 /* Now, um, just kind of all over the place. Huh? */ 2491 /* Now, um, just kind of all over the place. Huh? */
2492 2492
2493 /* Add button */ 2493 /* Add button */
2494 if (find_buddy(gaim_conversation_get_gc(conv)->user, 2494 if (find_buddy(gaim_conversation_get_gc(conv)->account,
2495 gaim_conversation_get_name(conv)) == NULL) { 2495 gaim_conversation_get_name(conv)) == NULL) {
2496 gtkim->add = gaim_gtk_change_text(_("Add"), gtkim->add, 2496 gtkim->add = gaim_gtk_change_text(_("Add"), gtkim->add,
2497 GTK_STOCK_ADD, type); 2497 GTK_STOCK_ADD, type);
2498 gtk_tooltips_set_tip(gtkconv->tooltips, gtkim->add, 2498 gtk_tooltips_set_tip(gtkconv->tooltips, gtkim->add,
2499 _("Add the user to your buddy list"), NULL); 2499 _("Add the user to your buddy list"), NULL);
3524 type = gaim_conversation_get_type(conv); 3524 type = gaim_conversation_get_type(conv);
3525 gc = gaim_conversation_get_gc(conv); 3525 gc = gaim_conversation_get_gc(conv);
3526 gtkconv = GAIM_GTK_CONVERSATION(conv); 3526 gtkconv = GAIM_GTK_CONVERSATION(conv);
3527 parent = gtk_widget_get_parent(gtkconv->u.im->add); 3527 parent = gtk_widget_get_parent(gtkconv->u.im->add);
3528 3528
3529 if (find_buddy(gc->user, gaim_conversation_get_name(conv))) { 3529 if (find_buddy(gc->account, gaim_conversation_get_name(conv))) {
3530 gtkconv->u.im->add = 3530 gtkconv->u.im->add =
3531 gaim_gtk_change_text(_("Remove"), gtkconv->u.im->add, 3531 gaim_gtk_change_text(_("Remove"), gtkconv->u.im->add,
3532 GTK_STOCK_REMOVE, type); 3532 GTK_STOCK_REMOVE, type);
3533 gtk_tooltips_set_tip(gtkconv->tooltips, gtkconv->u.im->add, 3533 gtk_tooltips_set_tip(gtkconv->tooltips, gtkconv->u.im->add,
3534 _("Remove the user from your buddy list"), NULL); 3534 _("Remove the user from your buddy list"), NULL);
4101 struct gaim_chat *chat; 4101 struct gaim_chat *chat;
4102 4102
4103 win = gaim_conversation_get_window(conv); 4103 win = gaim_conversation_get_window(conv);
4104 gtkconv = GAIM_GTK_CONVERSATION(conv); 4104 gtkconv = GAIM_GTK_CONVERSATION(conv);
4105 4105
4106 if (type == GAIM_CONV_UPDATE_USER) { 4106 if (type == GAIM_CONV_UPDATE_ACCOUNT) {
4107 gaim_conversation_autoset_title(conv); 4107 gaim_conversation_autoset_title(conv);
4108 gaim_gtkconv_update_buddy_icon(conv); 4108 gaim_gtkconv_update_buddy_icon(conv);
4109 gaim_gtkconv_update_buttons_by_protocol(conv); 4109 gaim_gtkconv_update_buttons_by_protocol(conv);
4110 4110
4111 update_send_as_selection(win); 4111 update_send_as_selection(win);