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