Mercurial > pidgin
comparison src/gtkdialogs.c @ 11257:90be432e8385
[gaim-migrate @ 13432]
Removed warning from core.
I think you should be able to see others' warning levels in the tooltip,
but I haven't managed to warn myself from any client.
Being able to warn others will be dependent on protocol-specific convo
menus.
committer: Tailor Script <tailor@pidgin.im>
author | Sean Egan <seanegan@gmail.com> |
---|---|
date | Sun, 14 Aug 2005 03:50:35 +0000 |
parents | a511b77a368b |
children | 17142948653e |
comparison
equal
deleted
inserted
replaced
11256:bb0d7b719af2 | 11257:90be432e8385 |
---|---|
39 #include "gtkstock.h" | 39 #include "gtkstock.h" |
40 | 40 |
41 static GList *dialogwindows = NULL; | 41 static GList *dialogwindows = NULL; |
42 | 42 |
43 static GtkWidget *about = NULL; | 43 static GtkWidget *about = NULL; |
44 | |
45 struct warning { | |
46 GtkWidget *window; | |
47 GtkWidget *anon; | |
48 char *who; | |
49 GaimConnection *gc; | |
50 }; | |
51 | 44 |
52 struct developer { | 45 struct developer { |
53 char *name; | 46 char *name; |
54 char *role; | 47 char *role; |
55 char *email; | 48 char *email; |
711 _("Cancel"), NULL, | 704 _("Cancel"), NULL, |
712 NULL); | 705 NULL); |
713 } | 706 } |
714 | 707 |
715 static void | 708 static void |
716 gaim_gtkdialogs_warn_cb(GtkWidget *widget, gint resp, struct warning *w) | |
717 { | |
718 if (resp == GTK_RESPONSE_OK) | |
719 serv_warn(w->gc, w->who, gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(w->anon))); | |
720 | |
721 dialogwindows = g_list_remove(dialogwindows, w->window); | |
722 gtk_widget_destroy(w->window); | |
723 | |
724 g_free(w->who); | |
725 g_free(w); | |
726 } | |
727 | |
728 /* | |
729 * TODO - Make this use the request API, if possible. | |
730 */ | |
731 void | |
732 gaim_gtkdialogs_warn(GaimConnection *gc, const char *who) | |
733 { | |
734 gchar *labeltext; | |
735 GtkWidget *hbox, *vbox; | |
736 GtkWidget *label; | |
737 GtkWidget *img; | |
738 struct warning *w; | |
739 | |
740 g_return_if_fail(gc != NULL); | |
741 g_return_if_fail(who != NULL); | |
742 | |
743 w = g_new0(struct warning, 1); | |
744 w->who = g_strdup(who); | |
745 w->gc = gc; | |
746 | |
747 w->window = gtk_dialog_new_with_buttons(_("Warn User"), NULL, 0, | |
748 GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, | |
749 GAIM_STOCK_WARN, GTK_RESPONSE_OK, NULL); | |
750 gtk_dialog_set_default_response (GTK_DIALOG(w->window), GTK_RESPONSE_OK); | |
751 g_signal_connect(G_OBJECT(w->window), "response", G_CALLBACK(gaim_gtkdialogs_warn_cb), w); | |
752 | |
753 gtk_container_set_border_width (GTK_CONTAINER(w->window), GAIM_HIG_BOX_SPACE); | |
754 gtk_window_set_resizable(GTK_WINDOW(w->window), FALSE); | |
755 gtk_dialog_set_has_separator(GTK_DIALOG(w->window), FALSE); | |
756 gtk_box_set_spacing(GTK_BOX(GTK_DIALOG(w->window)->vbox), GAIM_HIG_BORDER); | |
757 gtk_container_set_border_width (GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), GAIM_HIG_BOX_SPACE); | |
758 | |
759 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BORDER); | |
760 gtk_container_add(GTK_CONTAINER(GTK_DIALOG(w->window)->vbox), hbox); | |
761 | |
762 img = gtk_image_new_from_stock(GAIM_STOCK_DIALOG_WARNING, GTK_ICON_SIZE_DIALOG); | |
763 gtk_misc_set_alignment(GTK_MISC(img), 0, 0); | |
764 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
765 | |
766 vbox = gtk_vbox_new(FALSE, 0); | |
767 gtk_container_add(GTK_CONTAINER(hbox), vbox); | |
768 labeltext = g_strdup_printf(_("<span weight=\"bold\" size=\"larger\">Warn %s?</span>\n\n" | |
769 "This will increase %s's warning level and he or she will be subject to harsher rate limiting.\n"), who, who); | |
770 label = gtk_label_new(NULL); | |
771 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
772 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
773 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
774 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
775 g_free(labeltext); | |
776 | |
777 w->anon = gtk_check_button_new_with_mnemonic(_("Warn _anonymously?")); | |
778 gtk_box_pack_start(GTK_BOX(vbox), w->anon, FALSE, FALSE, 0); | |
779 | |
780 hbox = gtk_hbox_new(FALSE, GAIM_HIG_BOX_SPACE); | |
781 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
782 img = gtk_image_new_from_stock(GTK_STOCK_DIALOG_INFO, GTK_ICON_SIZE_MENU); | |
783 gtk_box_pack_start(GTK_BOX(hbox), img, FALSE, FALSE, 0); | |
784 labeltext = _("<b>Anonymous warnings are less severe.</b>"); | |
785 label = gtk_label_new(NULL); | |
786 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
787 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
788 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
789 | |
790 dialogwindows = g_list_prepend(dialogwindows, w->window); | |
791 gtk_widget_show_all(w->window); | |
792 } | |
793 | |
794 static void | |
795 gaim_gtkdialogs_alias_contact_cb(GaimContact *contact, const char *new_alias) | 709 gaim_gtkdialogs_alias_contact_cb(GaimContact *contact, const char *new_alias) |
796 { | 710 { |
797 gaim_contact_set_alias(contact, new_alias); | 711 gaim_contact_set_alias(contact, new_alias); |
798 } | 712 } |
799 | 713 |