| 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( |
| 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 } |