Mercurial > pidgin
annotate src/about.c @ 3802:9bcb42faccc0
[gaim-migrate @ 3945]
Rewrote show_im_dialog and show_info_dialog.
Ported to gtkspell2. Gtkspell2 is a library available from
gtkspell.sf.net. It requires the pspell library. If you want the
"highlight misspelled words" feature to work, you must have this
library installed. If installed, configure will detect it and link
against it.
committer: Tailor Script <tailor@pidgin.im>
| author | Sean Egan <seanegan@gmail.com> |
|---|---|
| date | Sat, 26 Oct 2002 06:41:13 +0000 |
| parents | 222a6e84284d |
| children | d3812895af8d |
| rev | line source |
|---|---|
| 1 | 1 /* |
| 2 * gaim | |
| 3 * | |
| 4 * Copyright (C) 1998-1999, Mark Spencer <markster@marko.net> | |
| 5 * | |
| 6 * This program is free software; you can redistribute it and/or modify | |
| 3424 | 7 * it under the terms of the GNU General Public License as published by |
| 1 | 8 * the Free Software Foundation; either version 2 of the License, or |
| 9 * (at your option) any later version. | |
| 10 * | |
| 11 * This program is distributed in the hope that it will be useful, | |
| 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| 14 * GNU General Public License for more details. | |
| 15 * | |
| 16 * You should have received a copy of the GNU General Public License | |
| 17 * along with this program; if not, write to the Free Software | |
| 18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| 19 * | |
| 20 */ | |
| 21 | |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
|
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2072
diff
changeset
|
23 #include <config.h> |
|
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
338
diff
changeset
|
24 #endif |
| 1 | 25 #include <string.h> |
| 26 #include <stdio.h> | |
| 27 #include <stdlib.h> | |
| 28 #include <time.h> | |
| 29 | |
| 30 #include <gtk/gtk.h> | |
| 31 #include "gaim.h" | |
| 32 | |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
33 static GtkWidget *about = NULL; |
| 1 | 34 |
| 35 static void destroy_about() | |
| 36 { | |
| 37 if (about) | |
| 38 gtk_widget_destroy(about); | |
| 39 about = NULL; | |
| 40 } | |
| 41 | |
| 42 | |
|
546
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
43 static void version_exit() |
|
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
44 { |
|
1117
f3e0f41beddb
[gaim-migrate @ 1127]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1009
diff
changeset
|
45 gtk_main_quit(); |
|
546
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
46 } |
|
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
47 |
|
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
48 |
|
523
023c3851db0a
[gaim-migrate @ 533]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
356
diff
changeset
|
49 static void about_click(GtkWidget *w, gpointer m) |
|
023c3851db0a
[gaim-migrate @ 533]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
356
diff
changeset
|
50 { |
|
2827
51999a36c0b1
[gaim-migrate @ 2840]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2725
diff
changeset
|
51 open_url(NULL, WEBSITE); |
|
1710
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
52 } |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
53 |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
54 char *name() |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
55 { |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
56 return PACKAGE; |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
57 } |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
58 |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
59 char *description() |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
60 { |
|
f42ce672c560
[gaim-migrate @ 1720]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1670
diff
changeset
|
61 return WEBSITE; |
|
523
023c3851db0a
[gaim-migrate @ 533]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
356
diff
changeset
|
62 } |
|
023c3851db0a
[gaim-migrate @ 533]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
356
diff
changeset
|
63 |
|
2276
8f9aa8739bf1
[gaim-migrate @ 2286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2251
diff
changeset
|
64 char *version() |
|
8f9aa8739bf1
[gaim-migrate @ 2286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2251
diff
changeset
|
65 { |
|
8f9aa8739bf1
[gaim-migrate @ 2286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2251
diff
changeset
|
66 return VERSION; |
|
8f9aa8739bf1
[gaim-migrate @ 2286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2251
diff
changeset
|
67 } |
|
8f9aa8739bf1
[gaim-migrate @ 2286]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2251
diff
changeset
|
68 |
| 1 | 69 void show_about(GtkWidget *w, void *null) |
| 70 { | |
| 71 GtkWidget *vbox; | |
| 1210 | 72 GtkWidget *frame; |
| 73 GtkWidget *fbox; | |
| 1 | 74 GtkStyle *style; |
| 1205 | 75 GtkWidget *hbox; |
| 76 GtkWidget *button; | |
| 3630 | 77 GtkWidget *view; |
| 78 GtkTextBuffer *buffer; | |
| 3709 | 79 GtkTextIter iter; |
| 80 GtkTextTag *tag; | |
| 2950 | 81 GtkWidget *sw; |
| 3721 | 82 GtkWidget *logo; |
| 1 | 83 |
| 1205 | 84 char abouttitle[45]; |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
85 |
| 1 | 86 if (!about) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
87 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2562
diff
changeset
|
88 GAIM_DIALOG(about); |
|
2904
3a9bca5fedcf
[gaim-migrate @ 2917]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2902
diff
changeset
|
89 gtk_window_set_default_size(GTK_WINDOW(about), 450, -1); |
| 2535 | 90 g_snprintf(abouttitle, sizeof(abouttitle), _("About Gaim v%s"), VERSION); |
| 1 | 91 gtk_window_set_title(GTK_WINDOW(about), abouttitle); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
92 gtk_window_set_wmclass(GTK_WINDOW(about), "about", "Gaim"); |
| 1210 | 93 gtk_window_set_policy(GTK_WINDOW(about), FALSE, TRUE, TRUE); |
| 94 gtk_widget_realize(about); | |
| 1 | 95 |
| 1210 | 96 vbox = gtk_vbox_new(FALSE, 5); |
| 97 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); | |
| 98 gtk_container_add(GTK_CONTAINER(about), vbox); | |
|
2450
59bac9b1a716
[gaim-migrate @ 2463]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2434
diff
changeset
|
99 gtk_widget_show(vbox); |
| 1205 | 100 |
| 2562 | 101 frame = gtk_frame_new("Gaim v" VERSION); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
102 gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); |
|
2450
59bac9b1a716
[gaim-migrate @ 2463]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2434
diff
changeset
|
103 gtk_widget_show(frame); |
| 1210 | 104 |
| 2072 | 105 fbox = gtk_vbox_new(FALSE, 5); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
106 gtk_container_set_border_width(GTK_CONTAINER(fbox), 5); |
| 1210 | 107 gtk_container_add(GTK_CONTAINER(frame), fbox); |
|
2450
59bac9b1a716
[gaim-migrate @ 2463]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2434
diff
changeset
|
108 gtk_widget_show(fbox); |
| 1205 | 109 |
| 110 /* Left side, TOP */ | |
| 1 | 111 style = gtk_widget_get_style(about); |
| 3721 | 112 |
| 113 logo = gaim_pixmap(NULL, "logo.png"); | |
| 114 gtk_box_pack_start(GTK_BOX(fbox), logo, FALSE, FALSE, 0); | |
| 115 gtk_widget_show(logo); | |
| 1205 | 116 |
| 3630 | 117 view = gtk_text_view_new (); |
| 3709 | 118 gtk_text_view_set_editable(GTK_TEXT_VIEW(view), FALSE); |
| 119 gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view), FALSE); | |
| 3630 | 120 |
| 121 buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); | |
| 2949 | 122 |
| 3709 | 123 gtk_text_buffer_set_text(buffer, "", -1); |
| 124 gtk_text_buffer_get_start_iter(buffer, &iter); | |
| 125 | |
| 126 tag = gtk_text_buffer_create_tag(buffer, "title", "weight", PANGO_WEIGHT_BOLD, "scale", PANGO_SCALE_LARGE, NULL); | |
| 127 tag = gtk_text_buffer_create_tag(buffer, "email", "scale", PANGO_SCALE_SMALL, "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); | |
| 128 tag = gtk_text_buffer_create_tag(buffer, "url", "foreground", "blue", "underline", PANGO_UNDERLINE_SINGLE, NULL); | |
| 129 | |
| 130 gtk_text_buffer_insert(buffer, &iter, | |
| 131 _("Gaim is a modular Instant Messaging client capable of using AIM, ICQ,\n" | |
| 132 "Yahoo!, MSN, IRC, Jabber, Napster, Zephyr, and Gadu-Gadu all at once.\n" | |
| 133 "It is written using Gtk+ and is licensed under the GPL.\n\n"), -1); | |
| 134 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "URL: ", -1, "title", NULL); | |
| 135 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, WEBSITE "\n\n", -1, "url", NULL); | |
| 136 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "IRC: ", -1, "title", NULL); | |
| 137 gtk_text_buffer_insert(buffer, &iter, "IRC: #gaim on irc.freenode.net\n", -1); | |
| 138 | |
| 139 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, _("\nActive Developers:\n"), -1, "title", NULL); | |
| 140 gtk_text_buffer_insert(buffer, &iter, " Rob Flynn (maintainer) ", -1); | |
| 141 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "rob@marko.net\n", -1, "email", NULL); | |
| 142 gtk_text_buffer_insert(buffer, &iter, " Sean Egan (coder) ",-1); | |
| 143 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "bj91704@binghamton.edu\n", -1, "email", NULL); | |
| 144 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, _("\nCrazy Patch Writers:\n"), -1, "title", NULL); | |
| 145 gtk_text_buffer_insert(buffer, &iter, " Benjamin Miller\n", -1); | |
| 146 gtk_text_buffer_insert(buffer, &iter, " Decklin Foster\n", -1); | |
| 147 gtk_text_buffer_insert(buffer, &iter, " Nathan Walp\n", -1); | |
| 148 gtk_text_buffer_insert(buffer, &iter, " Mark Doliner\n", -1); | |
| 149 | |
| 150 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, _("\nWin32 Port:\n"), -1, "title", NULL); | |
| 151 gtk_text_buffer_insert(buffer, &iter, " Herman Bloggs ", -1); | |
| 152 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "hermanator12002@yahoo.com\n", -1, "email", NULL); | |
| 153 | |
| 154 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, _("\nRetired Developers:\n"), -1, "title", NULL); | |
| 155 gtk_text_buffer_insert(buffer, &iter, " Jim Duchek\n", -1); | |
| 156 gtk_text_buffer_insert(buffer, &iter, " Eric Warmenhoven ", -1); | |
| 157 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "warmenhoven@yahoo.com\n", -1, "email", NULL); | |
| 158 gtk_text_buffer_insert(buffer, &iter, " Mark Spencer (original author) ", -1); | |
| 159 gtk_text_buffer_insert_with_tags_by_name(buffer, &iter, "markster@marko.net\n", -1, "email", NULL); | |
| 2950 | 160 |
| 161 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 3724 | 162 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 2950 | 163 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 164 | |
| 3709 | 165 |
| 3630 | 166 gtk_container_add(GTK_CONTAINER(sw), view); |
| 3709 | 167 gtk_widget_set_usize(GTK_WIDGET(sw), -1, 350); |
| 2950 | 168 gtk_widget_show(sw); |
| 3709 | 169 |
| 2950 | 170 gtk_box_pack_start(GTK_BOX(fbox), sw, TRUE, TRUE, 0); |
| 3630 | 171 gtk_widget_show(view); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
172 |
| 1205 | 173 /* Close Button */ |
| 174 | |
| 175 hbox = gtk_hbox_new(FALSE, 5); | |
| 1210 | 176 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
2450
59bac9b1a716
[gaim-migrate @ 2463]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2434
diff
changeset
|
177 gtk_widget_show(hbox); |
| 1205 | 178 |
| 3709 | 179 button = gaim_pixbuf_button_from_stock(_("Close"), GTK_STOCK_CLOSE, GAIM_BUTTON_HORIZONTAL); |
| 1210 | 180 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 622 | 181 |
|
1142
4593153a956c
[gaim-migrate @ 1152]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1117
diff
changeset
|
182 if (null != (void *)2) { |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
183 /* 2 can be as sad as 1, it's the loneliest number since the number 1 */ |
|
546
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
184 gtk_signal_connect_object(GTK_OBJECT(button), "clicked", |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
185 GTK_SIGNAL_FUNC(destroy_about), GTK_OBJECT(about)); |
|
1009
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
186 gtk_signal_connect(GTK_OBJECT(about), "destroy", |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
187 GTK_SIGNAL_FUNC(destroy_about), GTK_OBJECT(about)); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
188 } else { |
|
546
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
189 gtk_signal_connect(GTK_OBJECT(button), "clicked", |
|
e312b8b9bee5
[gaim-migrate @ 556]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
541
diff
changeset
|
190 GTK_SIGNAL_FUNC(version_exit), NULL); |
|
1009
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
191 gtk_signal_connect(GTK_OBJECT(about), "destroy", |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
192 GTK_SIGNAL_FUNC(version_exit), NULL); |
|
d496fe2614a6
[gaim-migrate @ 1019]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
960
diff
changeset
|
193 } |
| 3709 | 194 gtk_widget_show(button); |
| 1210 | 195 |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
196 /* this makes the sizes not work. */ |
| 1976 | 197 /* GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); */ |
| 198 /* gtk_widget_grab_default(button); */ | |
| 1205 | 199 |
| 3709 | 200 button = gaim_pixbuf_button_from_stock(_("Web Site"), GTK_STOCK_HOME, GAIM_BUTTON_HORIZONTAL); |
| 1210 | 201 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
202 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(about_click), NULL); |
| 3709 | 203 gtk_widget_show(button); |
| 1205 | 204 } |
| 1210 | 205 |
| 206 /* Let's give'em something to talk about -- woah woah woah */ | |
|
2450
59bac9b1a716
[gaim-migrate @ 2463]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2434
diff
changeset
|
207 gtk_widget_show(about); |
|
1250
b5783215b245
[gaim-migrate @ 1260]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1233
diff
changeset
|
208 |
|
2901
966f623dbd35
[gaim-migrate @ 2914]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2827
diff
changeset
|
209 gdk_window_raise(about->window); |
| 1205 | 210 } |
