Mercurial > pidgin
comparison src/dialogs.c @ 2773:a0fd8f91e294
[gaim-migrate @ 2786]
SPAM!!!
All recipients of the email generated by this commit each owe me $125 per email sent, plus a $75 handling fee for all messages combined.
Or was that supposed to be the other way around.
committer: Tailor Script <tailor@pidgin.im>
| author | Eric Warmenhoven <eric@warmenhoven.org> |
|---|---|
| date | Tue, 20 Nov 2001 01:01:22 +0000 |
| parents | 477a035d81e5 |
| children | 501de8a3b09f |
comparison
equal
deleted
inserted
replaced
| 2772:f9227268db25 | 2773:a0fd8f91e294 |
|---|---|
| 170 GtkWidget *stateentry; | 170 GtkWidget *stateentry; |
| 171 GtkWidget *countryentry; | 171 GtkWidget *countryentry; |
| 172 }; | 172 }; |
| 173 | 173 |
| 174 struct info_dlg { | 174 struct info_dlg { |
| 175 struct gaim_connection *gc; | |
| 176 char *who; | |
| 175 GtkWidget *window; | 177 GtkWidget *window; |
| 176 GtkWidget *text; | 178 GtkWidget *text; |
| 177 GtkWidget *close; | |
| 178 }; | 179 }; |
| 179 | 180 static GSList *info_dlgs = NULL; |
| 181 | |
| 182 static struct info_dlg *find_info_dlg(struct gaim_connection *gc, char *who) | |
| 183 { | |
| 184 GSList *i = info_dlgs; | |
| 185 while (i) { | |
| 186 struct info_dlg *d = i->data; | |
| 187 i = i->next; | |
| 188 if (d->gc != gc) | |
| 189 continue; | |
| 190 if (d->who == NULL) | |
| 191 continue; | |
| 192 if (!who) | |
| 193 continue; | |
| 194 if (!g_strcasecmp(normalize(who), d->who)) | |
| 195 return d; | |
| 196 } | |
| 197 return NULL; | |
| 198 } | |
| 180 | 199 |
| 181 struct set_info_dlg { | 200 struct set_info_dlg { |
| 182 GtkWidget *window; | 201 GtkWidget *window; |
| 183 GtkWidget *menu; | 202 GtkWidget *menu; |
| 184 struct aim_user *user; | 203 struct aim_user *user; |
| 1730 /* The dialog for the info requests */ | 1749 /* The dialog for the info requests */ |
| 1731 /*------------------------------------------------------------------------*/ | 1750 /*------------------------------------------------------------------------*/ |
| 1732 | 1751 |
| 1733 static void info_dlg_free(GtkWidget *b, struct info_dlg *d) | 1752 static void info_dlg_free(GtkWidget *b, struct info_dlg *d) |
| 1734 { | 1753 { |
| 1754 if (g_slist_find(info_dlgs, d)) | |
| 1755 info_dlgs = g_slist_remove(info_dlgs, d); | |
| 1756 g_free(d->who); | |
| 1735 g_free(d); | 1757 g_free(d); |
| 1736 } | 1758 } |
| 1737 | 1759 |
| 1738 gchar **info_img_handler(gchar *url) | 1760 gchar **info_img_handler(gchar *url) |
| 1739 { | 1761 { |
| 1748 if (!g_strcasecmp(url, "ab_icon.gif")) | 1770 if (!g_strcasecmp(url, "ab_icon.gif")) |
| 1749 return ab_xpm; | 1771 return ab_xpm; |
| 1750 return NULL; | 1772 return NULL; |
| 1751 } | 1773 } |
| 1752 | 1774 |
| 1753 void g_show_info_text(char *info, ...) | 1775 void g_show_info_text(struct gaim_connection *gc, char *who, gboolean away, char *info, ...) |
| 1754 { | 1776 { |
| 1755 GtkWidget *ok; | 1777 GtkWidget *ok; |
| 1756 GtkWidget *label; | 1778 GtkWidget *label; |
| 1757 GtkWidget *text; | 1779 GtkWidget *text; |
| 1758 GtkWidget *bbox; | 1780 GtkWidget *bbox; |
| 1759 GtkWidget *sw; | 1781 GtkWidget *sw; |
| 1760 gint options = 0; | 1782 gint options = 0; |
| 1761 char *more_info; | 1783 char *more_info; |
| 1762 va_list ap; | 1784 va_list ap; |
| 1763 | 1785 |
| 1764 struct info_dlg *b = g_new0(struct info_dlg, 1); | 1786 struct info_dlg *b = find_info_dlg(gc, who); |
| 1765 | 1787 if (!b && away) |
| 1766 va_start(ap, info); | 1788 return; |
| 1767 | 1789 if (!b) { |
| 1768 GAIM_DIALOG(b->window); | 1790 b = g_new0(struct info_dlg, 1); |
| 1769 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); | 1791 b->gc = gc; |
| 1770 gtk_container_border_width(GTK_CONTAINER(b->window), 5); | 1792 b->who = who ? g_strdup(normalize(who)) : NULL; |
| 1771 bbox = gtk_vbox_new(FALSE, 5); | 1793 info_dlgs = g_slist_append(info_dlgs, b); |
| 1772 gtk_container_add(GTK_CONTAINER(b->window), bbox); | 1794 |
| 1773 gtk_widget_realize(GTK_WIDGET(b->window)); | 1795 GAIM_DIALOG(b->window); |
| 1774 ok = picture_button(b->window, _("OK"), ok_xpm); | 1796 gtk_window_set_title(GTK_WINDOW(b->window), "Gaim"); |
| 1775 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(destroy_dialog), b->window); | 1797 gtk_container_border_width(GTK_CONTAINER(b->window), 5); |
| 1776 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(info_dlg_free), b); | 1798 gtk_widget_realize(GTK_WIDGET(b->window)); |
| 1777 gtk_signal_connect(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(destroy_dialog), b->window); | 1799 gtk_signal_connect(GTK_OBJECT(b->window), "destroy", GTK_SIGNAL_FUNC(info_dlg_free), b); |
| 1778 | 1800 aol_icon(b->window->window); |
| 1779 label = gtk_label_new(_("Below are the results of your search: ")); | 1801 |
| 1780 | 1802 bbox = gtk_vbox_new(FALSE, 5); |
| 1781 sw = gtk_scrolled_window_new(NULL, NULL); | 1803 gtk_container_add(GTK_CONTAINER(b->window), bbox); |
| 1782 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | 1804 |
| 1783 text = gtk_imhtml_new(NULL, NULL); | 1805 label = gtk_label_new(_("Below are the results of your search: ")); |
| 1784 b->text = text; | 1806 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); |
| 1785 gtk_container_add(GTK_CONTAINER(sw), text); | 1807 |
| 1786 | 1808 sw = gtk_scrolled_window_new(NULL, NULL); |
| 1787 GTK_LAYOUT(text)->hadjustment->step_increment = 10.0; | 1809 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 1788 GTK_LAYOUT(text)->vadjustment->step_increment = 10.0; | 1810 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); |
| 1789 gtk_widget_set_usize(sw, 300, 250); | 1811 |
| 1790 gtk_imhtml_set_img_handler(GTK_IMHTML(text), info_img_handler); | 1812 text = gtk_imhtml_new(NULL, NULL); |
| 1791 gaim_setup_imhtml(text); | 1813 b->text = text; |
| 1792 | 1814 gtk_container_add(GTK_CONTAINER(sw), text); |
| 1793 gtk_box_pack_start(GTK_BOX(bbox), label, FALSE, FALSE, 0); | 1815 GTK_LAYOUT(text)->hadjustment->step_increment = 10.0; |
| 1794 gtk_box_pack_start(GTK_BOX(bbox), sw, TRUE, TRUE, 0); | 1816 GTK_LAYOUT(text)->vadjustment->step_increment = 10.0; |
| 1795 gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0); | 1817 gtk_widget_set_usize(sw, 300, 250); |
| 1796 | 1818 gtk_imhtml_set_img_handler(GTK_IMHTML(text), info_img_handler); |
| 1797 aol_icon(b->window->window); | 1819 gaim_setup_imhtml(text); |
| 1798 gtk_widget_show_all(b->window); | 1820 |
| 1821 ok = picture_button(b->window, _("OK"), ok_xpm); | |
| 1822 gtk_signal_connect_object(GTK_OBJECT(ok), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), | |
| 1823 GTK_OBJECT(b->window)); | |
| 1824 gtk_box_pack_start(GTK_BOX(bbox), ok, FALSE, FALSE, 0); | |
| 1825 | |
| 1826 gtk_widget_show_all(b->window); | |
| 1827 } | |
| 1799 | 1828 |
| 1800 if (convo_options & OPT_CONVO_IGNORE_COLOUR) | 1829 if (convo_options & OPT_CONVO_IGNORE_COLOUR) |
| 1801 options ^= GTK_IMHTML_NO_COLOURS; | 1830 options ^= GTK_IMHTML_NO_COLOURS; |
| 1802 if (convo_options & OPT_CONVO_IGNORE_FONTS) | 1831 if (convo_options & OPT_CONVO_IGNORE_FONTS) |
| 1803 options ^= GTK_IMHTML_NO_FONTS; | 1832 options ^= GTK_IMHTML_NO_FONTS; |
| 1805 options ^= GTK_IMHTML_NO_SIZES; | 1834 options ^= GTK_IMHTML_NO_SIZES; |
| 1806 options ^= GTK_IMHTML_NO_COMMENTS; | 1835 options ^= GTK_IMHTML_NO_COMMENTS; |
| 1807 options ^= GTK_IMHTML_NO_TITLE; | 1836 options ^= GTK_IMHTML_NO_TITLE; |
| 1808 options ^= GTK_IMHTML_NO_NEWLINE; | 1837 options ^= GTK_IMHTML_NO_NEWLINE; |
| 1809 options ^= GTK_IMHTML_NO_SCROLL; | 1838 options ^= GTK_IMHTML_NO_SCROLL; |
| 1839 | |
| 1810 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, options); | 1840 gtk_imhtml_append_text(GTK_IMHTML(b->text), info, options); |
| 1841 | |
| 1842 va_start(ap, info); | |
| 1811 while ((more_info = va_arg(ap, char *)) != NULL) | 1843 while ((more_info = va_arg(ap, char *)) != NULL) |
| 1812 gtk_imhtml_append_text(GTK_IMHTML(b->text), more_info, options); | 1844 gtk_imhtml_append_text(GTK_IMHTML(b->text), more_info, options); |
| 1813 va_end(ap); | 1845 va_end(ap); |
| 1846 | |
| 1814 gtk_imhtml_append_text(GTK_IMHTML(b->text), "<BR>", 0); | 1847 gtk_imhtml_append_text(GTK_IMHTML(b->text), "<BR>", 0); |
| 1815 | 1848 |
| 1816 gtk_adjustment_set_value(gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw)), 0); | 1849 if (away) |
| 1850 info_dlgs = g_slist_remove(info_dlgs, b); | |
| 1851 else | |
| 1852 serv_get_away(gc, who); | |
| 1817 } | 1853 } |
| 1818 | 1854 |
| 1819 /*------------------------------------------------------------------------*/ | 1855 /*------------------------------------------------------------------------*/ |
| 1820 /* The dialog for adding to permit/deny */ | 1856 /* The dialog for adding to permit/deny */ |
| 1821 /*------------------------------------------------------------------------*/ | 1857 /*------------------------------------------------------------------------*/ |
