comparison src/server.c @ 1723:76e601b77099

[gaim-migrate @ 1733] patch from mid to make invites non-proto-biased. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Wed, 18 Apr 2001 00:08:57 +0000
parents 1edc8b545d6f
children dd78a230aa06
comparison
equal deleted inserted replaced
1722:1edc8b545d6f 1723:76e601b77099
556 556
557 557
558 558
559 static void close_invite(GtkWidget *w, GtkWidget *w2) 559 static void close_invite(GtkWidget *w, GtkWidget *w2)
560 { 560 {
561 char *str = (char *)gtk_object_get_user_data(GTK_OBJECT(w2));
562
563 if (str)
564 g_free(str);
565
561 gtk_widget_destroy(w2); 566 gtk_widget_destroy(w2);
562 } 567 }
563 568
564 static void chat_invite_callback(GtkWidget *w, GtkWidget *w2) 569 static void chat_invite_callback(GtkWidget *w, GtkWidget *w2)
565 { 570 {
566 struct gaim_connection *g = (struct gaim_connection *) 571 struct gaim_connection *g = (struct gaim_connection *)
567 gtk_object_get_user_data(GTK_OBJECT(GTK_DIALOG(w2)->vbox)); 572 gtk_object_get_user_data(GTK_OBJECT(GTK_DIALOG(w2)->vbox));
568 if (g->protocol == PROTO_TOC) { 573 int id;
569 int i = (int)gtk_object_get_user_data(GTK_OBJECT(w2)); 574 char *str;
570 serv_accept_chat(g, i); 575
571 gtk_widget_destroy(w2); 576 id = (int)gtk_object_get_user_data(GTK_OBJECT(w));
572 } else if (g->protocol == PROTO_OSCAR) { 577 str = (char *)gtk_object_get_user_data(GTK_OBJECT(w2));
573 char *i = (char *)gtk_object_get_user_data(GTK_OBJECT(w2)); 578
574 int id = (int)gtk_object_get_user_data(GTK_OBJECT(w)); 579 if (g->prpl && g->prpl->accept_chat)
575 serv_join_chat(g, id, i); 580 serv_accept_chat(g, id);
576 g_free(i); 581 else
577 gtk_widget_destroy(w2); 582 serv_join_chat(g, id, str);
578 } 583
584 if (str)
585 g_free(str);
586
587 gtk_widget_destroy(w2);
579 } 588 }
580 589
581 590
582 591
583 void serv_got_chat_invite(struct gaim_connection *g, char *name, int id, char *who, char *message) 592 void serv_got_chat_invite(struct gaim_connection *g, char *name, int id, char *who, char *message)
612 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), label, FALSE, FALSE, 5); 621 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->vbox), label, FALSE, FALSE, 5);
613 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), yesbtn, FALSE, FALSE, 5); 622 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), yesbtn, FALSE, FALSE, 5);
614 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), nobtn, FALSE, FALSE, 5); 623 gtk_box_pack_start(GTK_BOX(GTK_DIALOG(d)->action_area), nobtn, FALSE, FALSE, 5);
615 624
616 gtk_object_set_user_data(GTK_OBJECT(GTK_DIALOG(d)->vbox), g); 625 gtk_object_set_user_data(GTK_OBJECT(GTK_DIALOG(d)->vbox), g);
617 if (g->protocol == PROTO_TOC) { 626 if (name)
618 gtk_object_set_user_data(GTK_OBJECT(d), (void *)id);
619 gtk_object_set_user_data(GTK_OBJECT(GTK_DIALOG(d)->vbox), g);
620 } else if (g->protocol == PROTO_OSCAR) {
621 gtk_object_set_user_data(GTK_OBJECT(d), (void *)g_strdup(name)); 627 gtk_object_set_user_data(GTK_OBJECT(d), (void *)g_strdup(name));
622 gtk_object_set_user_data(GTK_OBJECT(yesbtn), (void *)id); 628 gtk_object_set_user_data(GTK_OBJECT(yesbtn), (void *)id);
623 }
624 629
625 630
626 gtk_window_set_title(GTK_WINDOW(d), "Buddy chat invite"); 631 gtk_window_set_title(GTK_WINDOW(d), "Buddy chat invite");
627 gtk_signal_connect(GTK_OBJECT(nobtn), "clicked", GTK_SIGNAL_FUNC(close_invite), d); 632 gtk_signal_connect(GTK_OBJECT(nobtn), "clicked", GTK_SIGNAL_FUNC(close_invite), d);
628 gtk_signal_connect(GTK_OBJECT(yesbtn), "clicked", GTK_SIGNAL_FUNC(chat_invite_callback), d); 633 gtk_signal_connect(GTK_OBJECT(yesbtn), "clicked", GTK_SIGNAL_FUNC(chat_invite_callback), d);