pidgin/gtkdialogs.c

changeset 15884
4de1981757fc
parent 15883
969b74a3e27a
child 15906
d05fbb788178
equal deleted inserted replaced
15883:969b74a3e27a 15884:4de1981757fc
1 /* 1 /*
2 * @file gtkdialogs.c GTK+ Dialogs 2 * @file gtkdialogs.c GTK+ Dialogs
3 * @ingroup gtkui 3 * @ingroup gtkui
4 * 4 *
5 * gaim 5 * purple
6 * 6 *
7 * Gaim is the legal property of its developers, whose names are too numerous 7 * Purple is the legal property of its developers, whose names are too numerous
8 * to list here. Please refer to the COPYRIGHT file distributed with this 8 * to list here. Please refer to the COPYRIGHT file distributed with this
9 * source distribution. 9 * source distribution.
10 * 10 *
11 * This program is free software; you can redistribute it and/or modify 11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by 12 * it under the terms of the GNU General Public License as published by
42 static GList *dialogwindows = NULL; 42 static GList *dialogwindows = NULL;
43 43
44 static GtkWidget *about = NULL; 44 static GtkWidget *about = NULL;
45 45
46 struct _PidginGroupMergeObject { 46 struct _PidginGroupMergeObject {
47 GaimGroup* parent; 47 PurpleGroup* parent;
48 char *new_name; 48 char *new_name;
49 }; 49 };
50 50
51 struct developer { 51 struct developer {
52 char *name; 52 char *name;
104 104
105 /* Order: Alphabetical by Last Name */ 105 /* Order: Alphabetical by Last Name */
106 static struct developer retired_developers[] = { 106 static struct developer retired_developers[] = {
107 {"Herman Bloggs", N_("win32 port"), "herman@bluedigits.com"}, 107 {"Herman Bloggs", N_("win32 port"), "herman@bluedigits.com"},
108 {"Jim Duchek", N_("maintainer"), "jim@linuxpimps.com"}, 108 {"Jim Duchek", N_("maintainer"), "jim@linuxpimps.com"},
109 {"Rob Flynn", N_("maintainer"), "gaim@robflynn.com"}, 109 {"Rob Flynn", N_("maintainer"), "purple@robflynn.com"},
110 {"Adam Fritzler", N_("libfaim maintainer"), NULL}, 110 {"Adam Fritzler", N_("libfaim maintainer"), NULL},
111 /* If "lazy bum" translates literally into a serious insult, use something else or omit it. */ 111 /* If "lazy bum" translates literally into a serious insult, use something else or omit it. */
112 {"Syd Logan", N_("hacker and designated driver [lazy bum]"), NULL}, 112 {"Syd Logan", N_("hacker and designated driver [lazy bum]"), NULL},
113 {"Jim Seymour", N_("Jabber developer"), NULL}, 113 {"Jim Seymour", N_("Jabber developer"), NULL},
114 {"Mark Spencer", N_("original author"), "markster@marko.net"}, 114 {"Mark Spencer", N_("original author"), "markster@marko.net"},
255 gtk_widget_destroy(about); 255 gtk_widget_destroy(about);
256 about = NULL; 256 about = NULL;
257 } 257 }
258 258
259 /* This function puts the version number onto the pixmap we use in the 'about' 259 /* This function puts the version number onto the pixmap we use in the 'about'
260 * screen in Gaim. */ 260 * screen in Purple. */
261 static void 261 static void
262 pidgin_logo_versionize(GdkPixbuf **original, GtkWidget *widget) { 262 pidgin_logo_versionize(GdkPixbuf **original, GtkWidget *widget) {
263 GdkPixmap *pixmap; 263 GdkPixmap *pixmap;
264 GtkStyle *style; 264 GtkStyle *style;
265 PangoContext *context; 265 PangoContext *context;
329 gtk_container_add(GTK_CONTAINER(hbox), vbox); 329 gtk_container_add(GTK_CONTAINER(hbox), vbox);
330 330
331 /* Generate a logo with a version number */ 331 /* Generate a logo with a version number */
332 logo = gtk_window_new(GTK_WINDOW_TOPLEVEL); 332 logo = gtk_window_new(GTK_WINDOW_TOPLEVEL);
333 gtk_widget_realize(logo); 333 gtk_widget_realize(logo);
334 filename = g_build_filename(DATADIR, "pixmaps", "gaim", "logo.png", NULL); 334 filename = g_build_filename(DATADIR, "pixmaps", "purple", "logo.png", NULL);
335 pixbuf = gdk_pixbuf_new_from_file(filename, NULL); 335 pixbuf = gdk_pixbuf_new_from_file(filename, NULL);
336 g_free(filename); 336 g_free(filename);
337 pidgin_logo_versionize(&pixbuf, logo); 337 pidgin_logo_versionize(&pixbuf, logo);
338 gtk_widget_destroy(logo); 338 gtk_widget_destroy(logo);
339 logo = gtk_image_new_from_pixbuf(pixbuf); 339 logo = gtk_image_new_from_pixbuf(pixbuf);
361 PIDGIN_NAME " is copyrighted by its contributors. See the 'COPYRIGHT' " 361 PIDGIN_NAME " is copyrighted by its contributors. See the 'COPYRIGHT' "
362 "file for the complete list of contributors. We provide no " 362 "file for the complete list of contributors. We provide no "
363 "warranty for this program.<BR><BR>")); 363 "warranty for this program.<BR><BR>"));
364 364
365 g_string_append(str, "<FONT SIZE=\"4\">URL:</FONT> <A HREF=\"" 365 g_string_append(str, "<FONT SIZE=\"4\">URL:</FONT> <A HREF=\""
366 GAIM_WEBSITE "\">" GAIM_WEBSITE "</A><BR/><BR/>"); 366 PURPLE_WEBSITE "\">" PURPLE_WEBSITE "</A><BR/><BR/>");
367 #ifdef _WIN32 367 #ifdef _WIN32
368 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> " 368 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> "
369 "#pidgwin on irc.freenode.net<BR><BR>")); 369 "#pidgwin on irc.freenode.net<BR><BR>"));
370 #else 370 #else
371 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> " 371 g_string_append_printf(str, _("<FONT SIZE=\"4\">IRC:</FONT> "
493 #else 493 #else
494 g_string_append(str, " <b>Binary relocation:</b> Disabled<br/>"); 494 g_string_append(str, " <b>Binary relocation:</b> Disabled<br/>");
495 #endif 495 #endif
496 #endif 496 #endif
497 497
498 #ifdef GAIM_PLUGINS 498 #ifdef PURPLE_PLUGINS
499 g_string_append(str, " <b>Plugins:</b> Enabled<br/>"); 499 g_string_append(str, " <b>Plugins:</b> Enabled<br/>");
500 #else 500 #else
501 g_string_append(str, " <b>Plugins:</b> Disabled<br/>"); 501 g_string_append(str, " <b>Plugins:</b> Disabled<br/>");
502 #endif 502 #endif
503 503
671 gtk_widget_show_all(about); 671 gtk_widget_show_all(about);
672 gtk_window_present(GTK_WINDOW(about)); 672 gtk_window_present(GTK_WINDOW(about));
673 } 673 }
674 674
675 static void 675 static void
676 pidgindialogs_im_cb(gpointer data, GaimRequestFields *fields) 676 pidgindialogs_im_cb(gpointer data, PurpleRequestFields *fields)
677 { 677 {
678 GaimAccount *account; 678 PurpleAccount *account;
679 const char *username; 679 const char *username;
680 680
681 account = gaim_request_fields_get_account(fields, "account"); 681 account = purple_request_fields_get_account(fields, "account");
682 username = gaim_request_fields_get_string(fields, "screenname"); 682 username = purple_request_fields_get_string(fields, "screenname");
683 683
684 pidgindialogs_im_with_user(account, username); 684 pidgindialogs_im_with_user(account, username);
685 } 685 }
686 686
687 void 687 void
688 pidgindialogs_im(void) 688 pidgindialogs_im(void)
689 { 689 {
690 GaimRequestFields *fields; 690 PurpleRequestFields *fields;
691 GaimRequestFieldGroup *group; 691 PurpleRequestFieldGroup *group;
692 GaimRequestField *field; 692 PurpleRequestField *field;
693 693
694 fields = gaim_request_fields_new(); 694 fields = purple_request_fields_new();
695 695
696 group = gaim_request_field_group_new(NULL); 696 group = purple_request_field_group_new(NULL);
697 gaim_request_fields_add_group(fields, group); 697 purple_request_fields_add_group(fields, group);
698 698
699 field = gaim_request_field_string_new("screenname", _("_Name"), NULL, FALSE); 699 field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
700 gaim_request_field_set_type_hint(field, "screenname"); 700 purple_request_field_set_type_hint(field, "screenname");
701 gaim_request_field_set_required(field, TRUE); 701 purple_request_field_set_required(field, TRUE);
702 gaim_request_field_group_add_field(group, field); 702 purple_request_field_group_add_field(group, field);
703 703
704 field = gaim_request_field_account_new("account", _("_Account"), NULL); 704 field = purple_request_field_account_new("account", _("_Account"), NULL);
705 gaim_request_field_set_type_hint(field, "account"); 705 purple_request_field_set_type_hint(field, "account");
706 gaim_request_field_set_visible(field, 706 purple_request_field_set_visible(field,
707 (gaim_connections_get_all() != NULL && 707 (purple_connections_get_all() != NULL &&
708 gaim_connections_get_all()->next != NULL)); 708 purple_connections_get_all()->next != NULL));
709 gaim_request_field_set_required(field, TRUE); 709 purple_request_field_set_required(field, TRUE);
710 gaim_request_field_group_add_field(group, field); 710 purple_request_field_group_add_field(group, field);
711 711
712 gaim_request_fields(gaim_get_blist(), _("New Instant Message"), 712 purple_request_fields(purple_get_blist(), _("New Instant Message"),
713 NULL, 713 NULL,
714 _("Please enter the screen name or alias of the person " 714 _("Please enter the screen name or alias of the person "
715 "you would like to IM."), 715 "you would like to IM."),
716 fields, 716 fields,
717 _("OK"), G_CALLBACK(pidgindialogs_im_cb), 717 _("OK"), G_CALLBACK(pidgindialogs_im_cb),
718 _("Cancel"), NULL, 718 _("Cancel"), NULL,
719 NULL); 719 NULL);
720 } 720 }
721 721
722 void 722 void
723 pidgindialogs_im_with_user(GaimAccount *account, const char *username) 723 pidgindialogs_im_with_user(PurpleAccount *account, const char *username)
724 { 724 {
725 GaimConversation *conv; 725 PurpleConversation *conv;
726 726
727 g_return_if_fail(account != NULL); 727 g_return_if_fail(account != NULL);
728 g_return_if_fail(username != NULL); 728 g_return_if_fail(username != NULL);
729 729
730 conv = gaim_find_conversation_with_account(GAIM_CONV_TYPE_IM, username, account); 730 conv = purple_find_conversation_with_account(PURPLE_CONV_TYPE_IM, username, account);
731 731
732 if (conv == NULL) 732 if (conv == NULL)
733 conv = gaim_conversation_new(GAIM_CONV_TYPE_IM, account, username); 733 conv = purple_conversation_new(PURPLE_CONV_TYPE_IM, account, username);
734 734
735 gaim_conversation_present(conv); 735 purple_conversation_present(conv);
736 } 736 }
737 737
738 static gboolean 738 static gboolean
739 pidgindialogs_ee(const char *ee) 739 pidgindialogs_ee(const char *ee)
740 { 740 {
741 GtkWidget *window; 741 GtkWidget *window;
742 GtkWidget *hbox; 742 GtkWidget *hbox;
743 GtkWidget *label; 743 GtkWidget *label;
744 GtkWidget *img; 744 GtkWidget *img;
745 gchar *norm = gaim_strreplace(ee, "rocksmyworld", ""); 745 gchar *norm = purple_strreplace(ee, "rocksmyworld", "");
746 746
747 label = gtk_label_new(NULL); 747 label = gtk_label_new(NULL);
748 if (!strcmp(norm, "zilding")) 748 if (!strcmp(norm, "zilding"))
749 gtk_label_set_markup(GTK_LABEL(label), 749 gtk_label_set_markup(GTK_LABEL(label),
750 "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>"); 750 "<span weight=\"bold\" size=\"large\" foreground=\"purple\">Amazing! Simply Amazing!</span>");
799 gtk_widget_show_all(window); 799 gtk_widget_show_all(window);
800 return TRUE; 800 return TRUE;
801 } 801 }
802 802
803 static void 803 static void
804 pidgindialogs_info_cb(gpointer data, GaimRequestFields *fields) 804 pidgindialogs_info_cb(gpointer data, PurpleRequestFields *fields)
805 { 805 {
806 char *username; 806 char *username;
807 gboolean found = FALSE; 807 gboolean found = FALSE;
808 GaimAccount *account; 808 PurpleAccount *account;
809 809
810 account = gaim_request_fields_get_account(fields, "account"); 810 account = purple_request_fields_get_account(fields, "account");
811 811
812 username = g_strdup(gaim_normalize(account, 812 username = g_strdup(purple_normalize(account,
813 gaim_request_fields_get_string(fields, "screenname"))); 813 purple_request_fields_get_string(fields, "screenname")));
814 814
815 if (username != NULL && gaim_str_has_suffix(username, "rocksmyworld")) 815 if (username != NULL && purple_str_has_suffix(username, "rocksmyworld"))
816 found = pidgindialogs_ee(username); 816 found = pidgindialogs_ee(username);
817 817
818 if (!found && username != NULL && *username != '\0' && account != NULL) 818 if (!found && username != NULL && *username != '\0' && account != NULL)
819 serv_get_info(gaim_account_get_connection(account), username); 819 serv_get_info(purple_account_get_connection(account), username);
820 820
821 g_free(username); 821 g_free(username);
822 } 822 }
823 823
824 void 824 void
825 pidgindialogs_info(void) 825 pidgindialogs_info(void)
826 { 826 {
827 GaimRequestFields *fields; 827 PurpleRequestFields *fields;
828 GaimRequestFieldGroup *group; 828 PurpleRequestFieldGroup *group;
829 GaimRequestField *field; 829 PurpleRequestField *field;
830 830
831 fields = gaim_request_fields_new(); 831 fields = purple_request_fields_new();
832 832
833 group = gaim_request_field_group_new(NULL); 833 group = purple_request_field_group_new(NULL);
834 gaim_request_fields_add_group(fields, group); 834 purple_request_fields_add_group(fields, group);
835 835
836 field = gaim_request_field_string_new("screenname", _("_Name"), NULL, FALSE); 836 field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
837 gaim_request_field_set_type_hint(field, "screenname"); 837 purple_request_field_set_type_hint(field, "screenname");
838 gaim_request_field_set_required(field, TRUE); 838 purple_request_field_set_required(field, TRUE);
839 gaim_request_field_group_add_field(group, field); 839 purple_request_field_group_add_field(group, field);
840 840
841 field = gaim_request_field_account_new("account", _("_Account"), NULL); 841 field = purple_request_field_account_new("account", _("_Account"), NULL);
842 gaim_request_field_set_type_hint(field, "account"); 842 purple_request_field_set_type_hint(field, "account");
843 gaim_request_field_set_visible(field, 843 purple_request_field_set_visible(field,
844 (gaim_connections_get_all() != NULL && 844 (purple_connections_get_all() != NULL &&
845 gaim_connections_get_all()->next != NULL)); 845 purple_connections_get_all()->next != NULL));
846 gaim_request_field_set_required(field, TRUE); 846 purple_request_field_set_required(field, TRUE);
847 gaim_request_field_group_add_field(group, field); 847 purple_request_field_group_add_field(group, field);
848 848
849 gaim_request_fields(gaim_get_blist(), _("Get User Info"), 849 purple_request_fields(purple_get_blist(), _("Get User Info"),
850 NULL, 850 NULL,
851 _("Please enter the screen name or alias of the person " 851 _("Please enter the screen name or alias of the person "
852 "whose info you would like to view."), 852 "whose info you would like to view."),
853 fields, 853 fields,
854 _("OK"), G_CALLBACK(pidgindialogs_info_cb), 854 _("OK"), G_CALLBACK(pidgindialogs_info_cb),
855 _("Cancel"), NULL, 855 _("Cancel"), NULL,
856 NULL); 856 NULL);
857 } 857 }
858 858
859 static void 859 static void
860 pidgindialogs_log_cb(gpointer data, GaimRequestFields *fields) 860 pidgindialogs_log_cb(gpointer data, PurpleRequestFields *fields)
861 { 861 {
862 char *username; 862 char *username;
863 GaimAccount *account; 863 PurpleAccount *account;
864 GSList *cur; 864 GSList *cur;
865 865
866 account = gaim_request_fields_get_account(fields, "account"); 866 account = purple_request_fields_get_account(fields, "account");
867 867
868 username = g_strdup(gaim_normalize(account, 868 username = g_strdup(purple_normalize(account,
869 gaim_request_fields_get_string(fields, "screenname"))); 869 purple_request_fields_get_string(fields, "screenname")));
870 870
871 if (username != NULL && *username != '\0' && account != NULL) 871 if (username != NULL && *username != '\0' && account != NULL)
872 { 872 {
873 PidginBuddyList *gtkblist = pidgin_blist_get_default_gtk_blist(); 873 PidginBuddyList *gtkblist = pidgin_blist_get_default_gtk_blist();
874 GSList *buddies; 874 GSList *buddies;
875 875
876 pidgin_set_cursor(gtkblist->window, GDK_WATCH); 876 pidgin_set_cursor(gtkblist->window, GDK_WATCH);
877 877
878 buddies = gaim_find_buddies(account, username); 878 buddies = purple_find_buddies(account, username);
879 for (cur = buddies; cur != NULL; cur = cur->next) 879 for (cur = buddies; cur != NULL; cur = cur->next)
880 { 880 {
881 GaimBlistNode *node = cur->data; 881 PurpleBlistNode *node = cur->data;
882 if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL))) 882 if ((node != NULL) && ((node->prev != NULL) || (node->next != NULL)))
883 { 883 {
884 pidgin_log_show_contact((GaimContact *)node->parent); 884 pidgin_log_show_contact((PurpleContact *)node->parent);
885 g_slist_free(buddies); 885 g_slist_free(buddies);
886 pidgin_clear_cursor(gtkblist->window); 886 pidgin_clear_cursor(gtkblist->window);
887 g_free(username); 887 g_free(username);
888 return; 888 return;
889 } 889 }
890 } 890 }
891 g_slist_free(buddies); 891 g_slist_free(buddies);
892 892
893 pidgin_log_show(GAIM_LOG_IM, username, account); 893 pidgin_log_show(PURPLE_LOG_IM, username, account);
894 894
895 pidgin_clear_cursor(gtkblist->window); 895 pidgin_clear_cursor(gtkblist->window);
896 } 896 }
897 897
898 g_free(username); 898 g_free(username);
902 * TODO - This needs to deal with logs of all types, not just IM logs. 902 * TODO - This needs to deal with logs of all types, not just IM logs.
903 */ 903 */
904 void 904 void
905 pidgindialogs_log(void) 905 pidgindialogs_log(void)
906 { 906 {
907 GaimRequestFields *fields; 907 PurpleRequestFields *fields;
908 GaimRequestFieldGroup *group; 908 PurpleRequestFieldGroup *group;
909 GaimRequestField *field; 909 PurpleRequestField *field;
910 910
911 fields = gaim_request_fields_new(); 911 fields = purple_request_fields_new();
912 912
913 group = gaim_request_field_group_new(NULL); 913 group = purple_request_field_group_new(NULL);
914 gaim_request_fields_add_group(fields, group); 914 purple_request_fields_add_group(fields, group);
915 915
916 field = gaim_request_field_string_new("screenname", _("_Name"), NULL, FALSE); 916 field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
917 gaim_request_field_set_type_hint(field, "screenname-all"); 917 purple_request_field_set_type_hint(field, "screenname-all");
918 gaim_request_field_set_required(field, TRUE); 918 purple_request_field_set_required(field, TRUE);
919 gaim_request_field_group_add_field(group, field); 919 purple_request_field_group_add_field(group, field);
920 920
921 field = gaim_request_field_account_new("account", _("_Account"), NULL); 921 field = purple_request_field_account_new("account", _("_Account"), NULL);
922 922
923 /* gaim_request_field_account_new() only sets a default value if you're 923 /* purple_request_field_account_new() only sets a default value if you're
924 * connected, and it sets it from the list of connected accounts. Since 924 * connected, and it sets it from the list of connected accounts. Since
925 * we're going to set show_all here, it makes sense to use the first 925 * we're going to set show_all here, it makes sense to use the first
926 * account, not the first connected account. */ 926 * account, not the first connected account. */
927 if (gaim_accounts_get_all() != NULL) { 927 if (purple_accounts_get_all() != NULL) {
928 gaim_request_field_account_set_default_value(field, gaim_accounts_get_all()->data); 928 purple_request_field_account_set_default_value(field, purple_accounts_get_all()->data);
929 gaim_request_field_account_set_value(field, gaim_accounts_get_all()->data); 929 purple_request_field_account_set_value(field, purple_accounts_get_all()->data);
930 } 930 }
931 931
932 gaim_request_field_set_type_hint(field, "account"); 932 purple_request_field_set_type_hint(field, "account");
933 gaim_request_field_account_set_show_all(field, TRUE); 933 purple_request_field_account_set_show_all(field, TRUE);
934 gaim_request_field_set_visible(field, 934 purple_request_field_set_visible(field,
935 (gaim_accounts_get_all() != NULL && 935 (purple_accounts_get_all() != NULL &&
936 gaim_accounts_get_all()->next != NULL)); 936 purple_accounts_get_all()->next != NULL));
937 gaim_request_field_set_required(field, TRUE); 937 purple_request_field_set_required(field, TRUE);
938 gaim_request_field_group_add_field(group, field); 938 purple_request_field_group_add_field(group, field);
939 939
940 gaim_request_fields(gaim_get_blist(), _("View User Log"), 940 purple_request_fields(purple_get_blist(), _("View User Log"),
941 NULL, 941 NULL,
942 _("Please enter the screen name or alias of the person " 942 _("Please enter the screen name or alias of the person "
943 "whose log you would like to view."), 943 "whose log you would like to view."),
944 fields, 944 fields,
945 _("OK"), G_CALLBACK(pidgindialogs_log_cb), 945 _("OK"), G_CALLBACK(pidgindialogs_log_cb),
946 _("Cancel"), NULL, 946 _("Cancel"), NULL,
947 NULL); 947 NULL);
948 } 948 }
949 949
950 static void 950 static void
951 pidgindialogs_alias_contact_cb(GaimContact *contact, const char *new_alias) 951 pidgindialogs_alias_contact_cb(PurpleContact *contact, const char *new_alias)
952 { 952 {
953 gaim_contact_set_alias(contact, new_alias); 953 purple_contact_set_alias(contact, new_alias);
954 } 954 }
955 955
956 void 956 void
957 pidgindialogs_alias_contact(GaimContact *contact) 957 pidgindialogs_alias_contact(PurpleContact *contact)
958 { 958 {
959 g_return_if_fail(contact != NULL); 959 g_return_if_fail(contact != NULL);
960 960
961 gaim_request_input(NULL, _("Alias Contact"), NULL, 961 purple_request_input(NULL, _("Alias Contact"), NULL,
962 _("Enter an alias for this contact."), 962 _("Enter an alias for this contact."),
963 contact->alias, FALSE, FALSE, NULL, 963 contact->alias, FALSE, FALSE, NULL,
964 _("Alias"), G_CALLBACK(pidgindialogs_alias_contact_cb), 964 _("Alias"), G_CALLBACK(pidgindialogs_alias_contact_cb),
965 _("Cancel"), NULL, contact); 965 _("Cancel"), NULL, contact);
966 } 966 }
967 967
968 static void 968 static void
969 pidgindialogs_alias_buddy_cb(GaimBuddy *buddy, const char *new_alias) 969 pidgindialogs_alias_buddy_cb(PurpleBuddy *buddy, const char *new_alias)
970 { 970 {
971 gaim_blist_alias_buddy(buddy, new_alias); 971 purple_blist_alias_buddy(buddy, new_alias);
972 serv_alias_buddy(buddy); 972 serv_alias_buddy(buddy);
973 } 973 }
974 974
975 void 975 void
976 pidgindialogs_alias_buddy(GaimBuddy *buddy) 976 pidgindialogs_alias_buddy(PurpleBuddy *buddy)
977 { 977 {
978 gchar *secondary; 978 gchar *secondary;
979 979
980 g_return_if_fail(buddy != NULL); 980 g_return_if_fail(buddy != NULL);
981 981
982 secondary = g_strdup_printf(_("Enter an alias for %s."), buddy->name); 982 secondary = g_strdup_printf(_("Enter an alias for %s."), buddy->name);
983 983
984 gaim_request_input(NULL, _("Alias Buddy"), NULL, 984 purple_request_input(NULL, _("Alias Buddy"), NULL,
985 secondary, buddy->alias, FALSE, FALSE, NULL, 985 secondary, buddy->alias, FALSE, FALSE, NULL,
986 _("Alias"), G_CALLBACK(pidgindialogs_alias_buddy_cb), 986 _("Alias"), G_CALLBACK(pidgindialogs_alias_buddy_cb),
987 _("Cancel"), NULL, buddy); 987 _("Cancel"), NULL, buddy);
988 988
989 g_free(secondary); 989 g_free(secondary);
990 } 990 }
991 991
992 static void 992 static void
993 pidgindialogs_alias_chat_cb(GaimChat *chat, const char *new_alias) 993 pidgindialogs_alias_chat_cb(PurpleChat *chat, const char *new_alias)
994 { 994 {
995 gaim_blist_alias_chat(chat, new_alias); 995 purple_blist_alias_chat(chat, new_alias);
996 } 996 }
997 997
998 void 998 void
999 pidgindialogs_alias_chat(GaimChat *chat) 999 pidgindialogs_alias_chat(PurpleChat *chat)
1000 { 1000 {
1001 g_return_if_fail(chat != NULL); 1001 g_return_if_fail(chat != NULL);
1002 1002
1003 gaim_request_input(NULL, _("Alias Chat"), NULL, 1003 purple_request_input(NULL, _("Alias Chat"), NULL,
1004 _("Enter an alias for this chat."), 1004 _("Enter an alias for this chat."),
1005 chat->alias, FALSE, FALSE, NULL, 1005 chat->alias, FALSE, FALSE, NULL,
1006 _("Alias"), G_CALLBACK(pidgindialogs_alias_chat_cb), 1006 _("Alias"), G_CALLBACK(pidgindialogs_alias_chat_cb),
1007 _("Cancel"), NULL, chat); 1007 _("Cancel"), NULL, chat);
1008 } 1008 }
1009 1009
1010 static void 1010 static void
1011 pidgindialogs_remove_contact_cb(GaimContact *contact) 1011 pidgindialogs_remove_contact_cb(PurpleContact *contact)
1012 { 1012 {
1013 GaimBlistNode *bnode, *cnode; 1013 PurpleBlistNode *bnode, *cnode;
1014 GaimGroup *group; 1014 PurpleGroup *group;
1015 1015
1016 cnode = (GaimBlistNode *)contact; 1016 cnode = (PurpleBlistNode *)contact;
1017 group = (GaimGroup*)cnode->parent; 1017 group = (PurpleGroup*)cnode->parent;
1018 for (bnode = cnode->child; bnode; bnode = bnode->next) { 1018 for (bnode = cnode->child; bnode; bnode = bnode->next) {
1019 GaimBuddy *buddy = (GaimBuddy*)bnode; 1019 PurpleBuddy *buddy = (PurpleBuddy*)bnode;
1020 if (gaim_account_is_connected(buddy->account)) 1020 if (purple_account_is_connected(buddy->account))
1021 gaim_account_remove_buddy(buddy->account, buddy, group); 1021 purple_account_remove_buddy(buddy->account, buddy, group);
1022 } 1022 }
1023 gaim_blist_remove_contact(contact); 1023 purple_blist_remove_contact(contact);
1024 } 1024 }
1025 1025
1026 void 1026 void
1027 pidgindialogs_remove_contact(GaimContact *contact) 1027 pidgindialogs_remove_contact(PurpleContact *contact)
1028 { 1028 {
1029 GaimBuddy *buddy = gaim_contact_get_priority_buddy(contact); 1029 PurpleBuddy *buddy = purple_contact_get_priority_buddy(contact);
1030 1030
1031 g_return_if_fail(contact != NULL); 1031 g_return_if_fail(contact != NULL);
1032 g_return_if_fail(buddy != NULL); 1032 g_return_if_fail(buddy != NULL);
1033 1033
1034 if (((GaimBlistNode*)contact)->child == (GaimBlistNode*)buddy && 1034 if (((PurpleBlistNode*)contact)->child == (PurpleBlistNode*)buddy &&
1035 !((GaimBlistNode*)buddy)->next) { 1035 !((PurpleBlistNode*)buddy)->next) {
1036 pidgindialogs_remove_buddy(buddy); 1036 pidgindialogs_remove_buddy(buddy);
1037 } else { 1037 } else {
1038 gchar *text; 1038 gchar *text;
1039 text = g_strdup_printf( 1039 text = g_strdup_printf(
1040 ngettext( 1040 ngettext(
1044 "You are about to remove the contact containing %s " 1044 "You are about to remove the contact containing %s "
1045 "and %d other buddies from your buddy list. Do you " 1045 "and %d other buddies from your buddy list. Do you "
1046 "want to continue?", contact->totalsize - 1), 1046 "want to continue?", contact->totalsize - 1),
1047 buddy->name, contact->totalsize - 1); 1047 buddy->name, contact->totalsize - 1);
1048 1048
1049 gaim_request_action(contact, NULL, _("Remove Contact"), text, 0, contact, 2, 1049 purple_request_action(contact, NULL, _("Remove Contact"), text, 0, contact, 2,
1050 _("_Remove Contact"), G_CALLBACK(pidgindialogs_remove_contact_cb), 1050 _("_Remove Contact"), G_CALLBACK(pidgindialogs_remove_contact_cb),
1051 _("Cancel"), NULL); 1051 _("Cancel"), NULL);
1052 1052
1053 g_free(text); 1053 g_free(text);
1054 } 1054 }
1061 } 1061 }
1062 1062
1063 static void 1063 static void
1064 pidgindialogs_merge_groups_cb(struct _PidginGroupMergeObject *GGP) 1064 pidgindialogs_merge_groups_cb(struct _PidginGroupMergeObject *GGP)
1065 { 1065 {
1066 gaim_blist_rename_group(GGP->parent, GGP->new_name); 1066 purple_blist_rename_group(GGP->parent, GGP->new_name);
1067 free_ggmo(GGP); 1067 free_ggmo(GGP);
1068 } 1068 }
1069 1069
1070 void 1070 void
1071 pidgindialogs_merge_groups(GaimGroup *source, const char *new_name) 1071 pidgindialogs_merge_groups(PurpleGroup *source, const char *new_name)
1072 { 1072 {
1073 gchar *text; 1073 gchar *text;
1074 struct _PidginGroupMergeObject *ggp; 1074 struct _PidginGroupMergeObject *ggp;
1075 1075
1076 g_return_if_fail(source != NULL); 1076 g_return_if_fail(source != NULL);
1082 1082
1083 ggp = g_new(struct _PidginGroupMergeObject, 1); 1083 ggp = g_new(struct _PidginGroupMergeObject, 1);
1084 ggp->parent = source; 1084 ggp->parent = source;
1085 ggp->new_name = g_strdup(new_name); 1085 ggp->new_name = g_strdup(new_name);
1086 1086
1087 gaim_request_action(source, NULL, _("Merge Groups"), text, 0, ggp, 2, 1087 purple_request_action(source, NULL, _("Merge Groups"), text, 0, ggp, 2,
1088 _("_Merge Groups"), G_CALLBACK(pidgindialogs_merge_groups_cb), 1088 _("_Merge Groups"), G_CALLBACK(pidgindialogs_merge_groups_cb),
1089 _("Cancel"), G_CALLBACK(free_ggmo)); 1089 _("Cancel"), G_CALLBACK(free_ggmo));
1090 1090
1091 g_free(text); 1091 g_free(text);
1092 } 1092 }
1093 1093
1094 static void 1094 static void
1095 pidgindialogs_remove_group_cb(GaimGroup *group) 1095 pidgindialogs_remove_group_cb(PurpleGroup *group)
1096 { 1096 {
1097 GaimBlistNode *cnode, *bnode; 1097 PurpleBlistNode *cnode, *bnode;
1098 1098
1099 cnode = ((GaimBlistNode*)group)->child; 1099 cnode = ((PurpleBlistNode*)group)->child;
1100 1100
1101 while (cnode) { 1101 while (cnode) {
1102 if (GAIM_BLIST_NODE_IS_CONTACT(cnode)) { 1102 if (PURPLE_BLIST_NODE_IS_CONTACT(cnode)) {
1103 bnode = cnode->child; 1103 bnode = cnode->child;
1104 cnode = cnode->next; 1104 cnode = cnode->next;
1105 while (bnode) { 1105 while (bnode) {
1106 GaimBuddy *buddy; 1106 PurpleBuddy *buddy;
1107 if (GAIM_BLIST_NODE_IS_BUDDY(bnode)) { 1107 if (PURPLE_BLIST_NODE_IS_BUDDY(bnode)) {
1108 buddy = (GaimBuddy*)bnode; 1108 buddy = (PurpleBuddy*)bnode;
1109 bnode = bnode->next; 1109 bnode = bnode->next;
1110 if (gaim_account_is_connected(buddy->account)) { 1110 if (purple_account_is_connected(buddy->account)) {
1111 gaim_account_remove_buddy(buddy->account, buddy, group); 1111 purple_account_remove_buddy(buddy->account, buddy, group);
1112 gaim_blist_remove_buddy(buddy); 1112 purple_blist_remove_buddy(buddy);
1113 } 1113 }
1114 } else { 1114 } else {
1115 bnode = bnode->next; 1115 bnode = bnode->next;
1116 } 1116 }
1117 } 1117 }
1118 } else if (GAIM_BLIST_NODE_IS_CHAT(cnode)) { 1118 } else if (PURPLE_BLIST_NODE_IS_CHAT(cnode)) {
1119 GaimChat *chat = (GaimChat *)cnode; 1119 PurpleChat *chat = (PurpleChat *)cnode;
1120 cnode = cnode->next; 1120 cnode = cnode->next;
1121 if (gaim_account_is_connected(chat->account)) 1121 if (purple_account_is_connected(chat->account))
1122 gaim_blist_remove_chat(chat); 1122 purple_blist_remove_chat(chat);
1123 } else { 1123 } else {
1124 cnode = cnode->next; 1124 cnode = cnode->next;
1125 } 1125 }
1126 } 1126 }
1127 1127
1128 gaim_blist_remove_group(group); 1128 purple_blist_remove_group(group);
1129 } 1129 }
1130 1130
1131 void 1131 void
1132 pidgindialogs_remove_group(GaimGroup *group) 1132 pidgindialogs_remove_group(PurpleGroup *group)
1133 { 1133 {
1134 gchar *text; 1134 gchar *text;
1135 1135
1136 g_return_if_fail(group != NULL); 1136 g_return_if_fail(group != NULL);
1137 1137
1138 text = g_strdup_printf(_("You are about to remove the group %s and all its members from your buddy list. Do you want to continue?"), 1138 text = g_strdup_printf(_("You are about to remove the group %s and all its members from your buddy list. Do you want to continue?"),
1139 group->name); 1139 group->name);
1140 1140
1141 gaim_request_action(group, NULL, _("Remove Group"), text, 0, group, 2, 1141 purple_request_action(group, NULL, _("Remove Group"), text, 0, group, 2,
1142 _("_Remove Group"), G_CALLBACK(pidgindialogs_remove_group_cb), 1142 _("_Remove Group"), G_CALLBACK(pidgindialogs_remove_group_cb),
1143 _("Cancel"), NULL); 1143 _("Cancel"), NULL);
1144 1144
1145 g_free(text); 1145 g_free(text);
1146 } 1146 }
1147 1147
1148 /* XXX - Some of this should be moved into the core, methinks. */ 1148 /* XXX - Some of this should be moved into the core, methinks. */
1149 static void 1149 static void
1150 pidgindialogs_remove_buddy_cb(GaimBuddy *buddy) 1150 pidgindialogs_remove_buddy_cb(PurpleBuddy *buddy)
1151 { 1151 {
1152 GaimGroup *group; 1152 PurpleGroup *group;
1153 gchar *name; 1153 gchar *name;
1154 GaimAccount *account; 1154 PurpleAccount *account;
1155 1155
1156 group = gaim_buddy_get_group(buddy); 1156 group = purple_buddy_get_group(buddy);
1157 name = g_strdup(buddy->name); /* b->name is a crasher after remove_buddy */ 1157 name = g_strdup(buddy->name); /* b->name is a crasher after remove_buddy */
1158 account = buddy->account; 1158 account = buddy->account;
1159 1159
1160 gaim_debug_info("blist", "Removing '%s' from buddy list.\n", buddy->name); 1160 purple_debug_info("blist", "Removing '%s' from buddy list.\n", buddy->name);
1161 /* TODO - Should remove from blist first... then call gaim_account_remove_buddy()? */ 1161 /* TODO - Should remove from blist first... then call purple_account_remove_buddy()? */
1162 gaim_account_remove_buddy(buddy->account, buddy, group); 1162 purple_account_remove_buddy(buddy->account, buddy, group);
1163 gaim_blist_remove_buddy(buddy); 1163 purple_blist_remove_buddy(buddy);
1164 1164
1165 g_free(name); 1165 g_free(name);
1166 } 1166 }
1167 1167
1168 void 1168 void
1169 pidgindialogs_remove_buddy(GaimBuddy *buddy) 1169 pidgindialogs_remove_buddy(PurpleBuddy *buddy)
1170 { 1170 {
1171 gchar *text; 1171 gchar *text;
1172 1172
1173 g_return_if_fail(buddy != NULL); 1173 g_return_if_fail(buddy != NULL);
1174 1174
1175 text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"), 1175 text = g_strdup_printf(_("You are about to remove %s from your buddy list. Do you want to continue?"),
1176 buddy->name); 1176 buddy->name);
1177 1177
1178 gaim_request_action(buddy, NULL, _("Remove Buddy"), text, 0, buddy, 2, 1178 purple_request_action(buddy, NULL, _("Remove Buddy"), text, 0, buddy, 2,
1179 _("_Remove Buddy"), G_CALLBACK(pidgindialogs_remove_buddy_cb), 1179 _("_Remove Buddy"), G_CALLBACK(pidgindialogs_remove_buddy_cb),
1180 _("Cancel"), NULL); 1180 _("Cancel"), NULL);
1181 1181
1182 g_free(text); 1182 g_free(text);
1183 } 1183 }
1184 1184
1185 static void 1185 static void
1186 pidgindialogs_remove_chat_cb(GaimChat *chat) 1186 pidgindialogs_remove_chat_cb(PurpleChat *chat)
1187 { 1187 {
1188 gaim_blist_remove_chat(chat); 1188 purple_blist_remove_chat(chat);
1189 } 1189 }
1190 1190
1191 void 1191 void
1192 pidgindialogs_remove_chat(GaimChat *chat) 1192 pidgindialogs_remove_chat(PurpleChat *chat)
1193 { 1193 {
1194 const gchar *name; 1194 const gchar *name;
1195 gchar *text; 1195 gchar *text;
1196 1196
1197 g_return_if_fail(chat != NULL); 1197 g_return_if_fail(chat != NULL);
1198 1198
1199 name = gaim_chat_get_name(chat); 1199 name = purple_chat_get_name(chat);
1200 text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"), 1200 text = g_strdup_printf(_("You are about to remove the chat %s from your buddy list. Do you want to continue?"),
1201 name ? name : ""); 1201 name ? name : "");
1202 1202
1203 gaim_request_action(chat, NULL, _("Remove Chat"), text, 0, chat, 2, 1203 purple_request_action(chat, NULL, _("Remove Chat"), text, 0, chat, 2,
1204 _("_Remove Chat"), G_CALLBACK(pidgindialogs_remove_chat_cb), 1204 _("_Remove Chat"), G_CALLBACK(pidgindialogs_remove_chat_cb),
1205 _("Cancel"), NULL); 1205 _("Cancel"), NULL);
1206 1206
1207 g_free(text); 1207 g_free(text);
1208 } 1208 }

mercurial