Mercurial > pidgin.yaz
annotate src/prefs.c @ 4960:42bd8ab53234
[gaim-migrate @ 5294]
I "made" some status icons for ICQ away states. They suck. Someone
with some skills of an artist please to try improve them. Or even just
whichever one you hate the most. Really, new icons are welcome. Email
them to mark izat kingant dizot net and we'll put them under
consideration.
I actually think the DND and free for chat icons look pretty nice. The
NA on the NA icon is not readable enough. The invisible is plain and
not very meaningful. The occupied is not easily discernable and stupid.
I also removed the option to have buddy list tabs at the top or bottom
of the buddy list.
And I took out my April Fools joke.
committer: Tailor Script <tailor@pidgin.im>
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Wed, 02 Apr 2003 06:32:54 +0000 |
parents | aa273fba7b09 |
children | 307c16c4b57e |
rev | line source |
---|---|
1 | 1 /* |
2 * gaim | |
3 * | |
3434 | 4 * Copyright (C) 1998-2002, Mark Spencer <markster@marko.net> |
1 | 5 * |
6 * This program is free software; you can redistribute it and/or modify | |
7 * it under the terms of the GNU General Public License as published by | |
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:
340
diff
changeset
|
22 #ifdef HAVE_CONFIG_H |
2090
b66aca8e8dce
[gaim-migrate @ 2100]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2074
diff
changeset
|
23 #include <config.h> |
349
b402a23f35df
[gaim-migrate @ 359]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
340
diff
changeset
|
24 #endif |
1 | 25 #include <string.h> |
26 #include <sys/time.h> | |
27 | |
28 #include <sys/types.h> | |
29 #include <sys/stat.h> | |
30 | |
31 #include <unistd.h> | |
32 #include <stdio.h> | |
33 #include <stdlib.h> | |
970 | 34 #include <stdarg.h> |
3379 | 35 #include <ctype.h> |
1 | 36 #include <gtk/gtk.h> |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
37 #include "gtkimhtml.h" |
1 | 38 #include "gaim.h" |
4687 | 39 #include "gtklist.h" |
1357
783ba886b6b6
[gaim-migrate @ 1367]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1324
diff
changeset
|
40 #include "prpl.h" |
3366 | 41 #include "proxy.h" |
4561 | 42 #include "sound.h" |
3366 | 43 |
4026
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4010
diff
changeset
|
44 #ifdef _WIN32 |
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4010
diff
changeset
|
45 #include "win32dep.h" |
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4010
diff
changeset
|
46 #endif |
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4010
diff
changeset
|
47 |
3567 | 48 GtkWidget *tree_v = NULL; |
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
49 GtkWidget *prefs_away_menu = NULL; |
3366 | 50 GtkWidget *fontseld = NULL; |
51 | |
3379 | 52 GtkListStore *prefs_away_store = NULL; |
3366 | 53 |
54 static int sound_row_sel = 0; | |
55 static char *last_sound_dir = NULL; | |
56 | |
57 static GtkWidget *sounddialog = NULL; | |
58 static GtkWidget *browser_entry = NULL; | |
59 static GtkWidget *sound_entry = NULL; | |
60 static GtkWidget *away_text = NULL; | |
4324 | 61 static GtkListStore *smiley_theme_store = NULL; |
2254 | 62 GtkWidget *prefs_proxy_frame = NULL; |
4026
a997156437b6
[gaim-migrate @ 4230]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4010
diff
changeset
|
63 GtkWidget *gaim_button(const char *, guint *, int, GtkWidget *); |
3427 | 64 GtkWidget *gaim_labeled_spin_button(GtkWidget *, const gchar *, int*, int, int, GtkSizeGroup *); |
3366 | 65 static GtkWidget *gaim_dropdown(GtkWidget *, const gchar *, int *, int, ...); |
4428 | 66 static GtkWidget *gaim_dropdown_from_list(GtkWidget *, const gchar *, int *, int, GList *); |
3366 | 67 static GtkWidget *show_color_pref(GtkWidget *, gboolean); |
68 static void delete_prefs(GtkWidget *, void *); | |
69 void set_default_away(GtkWidget *, gpointer); | |
4428 | 70 static gboolean program_is_valid(const char *); |
1026 | 71 |
3366 | 72 struct debug_window *dw = NULL; |
3565 | 73 GtkWidget *prefs = NULL; |
3366 | 74 GtkWidget *debugbutton = NULL; |
3565 | 75 static int notebook_page = 0; |
76 static GtkTreeIter plugin_iter; | |
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
77 |
3630 | 78 /* |
79 * PROTOTYPES | |
80 */ | |
81 GtkTreeIter *prefs_notebook_add_page(char*, GdkPixbuf*, GtkWidget*, GtkTreeIter*, GtkTreeIter*, int); | |
82 | |
3366 | 83 void delete_prefs(GtkWidget *asdf, void *gdsa) { |
4215 | 84 GList *l = plugins; |
85 struct gaim_plugin *plug; | |
86 | |
4064 | 87 save_prefs(); |
3485 | 88 prefs = NULL; |
3567 | 89 tree_v = NULL; |
3485 | 90 sound_entry = NULL; |
91 browser_entry = NULL; | |
3526 | 92 debugbutton = NULL; |
93 prefs_away_menu = NULL; | |
3565 | 94 notebook_page = 0; |
4324 | 95 smiley_theme_store = NULL; |
3485 | 96 if(sounddialog) |
3379 | 97 gtk_widget_destroy(sounddialog); |
3500 | 98 g_object_unref(G_OBJECT(prefs_away_store)); |
4635 | 99 prefs_away_store = NULL; |
4215 | 100 while(l) { |
101 plug = l->data; | |
102 if(plug->iter) { | |
103 g_free(plug->iter); | |
104 plug->iter = NULL; | |
105 } | |
106 l = l->next; | |
107 } | |
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
108 } |
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
109 |
3366 | 110 GtkWidget *preflabel; |
111 GtkWidget *prefsnotebook; | |
112 GtkTreeStore *prefstree; | |
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
113 |
3818 | 114 static void set_misc_option(); |
115 static void set_logging_option(); | |
116 static void set_blist_option(); | |
117 static void set_convo_option(); | |
118 static void set_im_option(); | |
119 static void set_chat_option(); | |
120 static void set_font_option(); | |
121 static void set_sound_option(); | |
122 static void set_away_option(); | |
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
123 |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
124 #define PROXYHOST 0 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
125 #define PROXYPORT 1 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
126 #define PROXYTYPE 2 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
127 #define PROXYUSER 3 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
128 #define PROXYPASS 4 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
129 static void proxy_print_option(GtkEntry *entry, int entrynum) |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
130 { |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
131 if (entrynum == PROXYHOST) |
4634 | 132 g_snprintf(global_proxy_info.proxyhost, sizeof(global_proxy_info.proxyhost), "%s", gtk_entry_get_text(entry)); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
133 else if (entrynum == PROXYPORT) |
4634 | 134 global_proxy_info.proxyport = atoi(gtk_entry_get_text(entry)); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
135 else if (entrynum == PROXYUSER) |
4634 | 136 g_snprintf(global_proxy_info.proxyuser, sizeof(global_proxy_info.proxyuser), "%s", gtk_entry_get_text(entry)); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
137 else if (entrynum == PROXYPASS) |
4634 | 138 g_snprintf(global_proxy_info.proxypass, sizeof(global_proxy_info.proxypass), "%s", gtk_entry_get_text(entry)); |
4137 | 139 proxy_info_is_from_gaimrc = 1; /* If the user specifies it, we want |
140 to save it */ | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
141 } |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
142 |
3366 | 143 |
3565 | 144 GtkWidget *make_frame(GtkWidget *ret, char *text) { |
3427 | 145 GtkWidget *vbox, *label, *hbox; |
146 char labeltext[256]; | |
3500 | 147 |
3427 | 148 vbox = gtk_vbox_new(FALSE, 6); |
149 gtk_box_pack_start(GTK_BOX(ret), vbox, FALSE, FALSE, 0); | |
150 label = gtk_label_new(NULL); | |
151 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\">%s</span>", text); | |
152 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
153 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
154 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
155 hbox = gtk_hbox_new(FALSE, 6); | |
156 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); | |
157 label = gtk_label_new(" "); | |
158 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
159 vbox = gtk_vbox_new(FALSE, 6); | |
160 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); | |
161 return vbox; | |
162 } | |
163 | |
3366 | 164 /* OK, Apply and Cancel */ |
165 | |
166 static void pref_nb_select(GtkTreeSelection *sel, GtkNotebook *nb) { | |
167 GtkTreeIter iter; | |
3427 | 168 char text[128]; |
3366 | 169 GValue val = { 0, }; |
170 GtkTreeModel *model = GTK_TREE_MODEL(prefstree); | |
3500 | 171 |
3366 | 172 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
173 return; | |
174 gtk_tree_model_get_value (model, &iter, 1, &val); | |
3500 | 175 g_snprintf(text, sizeof(text), "<span weight=\"bold\" size=\"larger\">%s</span>", |
3427 | 176 g_value_get_string(&val)); |
177 gtk_label_set_markup (GTK_LABEL(preflabel), text); | |
3366 | 178 g_value_unset (&val); |
179 gtk_tree_model_get_value (model, &iter, 2, &val); | |
180 gtk_notebook_set_current_page (GTK_NOTEBOOK (prefsnotebook), g_value_get_int (&val)); | |
181 | |
182 } | |
183 | |
184 /* These are the pages in the preferences notebook */ | |
185 GtkWidget *interface_page() { | |
186 GtkWidget *ret; | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
187 GtkWidget *vbox; |
3427 | 188 ret = gtk_vbox_new(FALSE, 18); |
189 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 190 |
3427 | 191 vbox = make_frame(ret, _("Interface Options")); |
3500 | 192 |
4227 | 193 gaim_button(_("D_isplay remote nicknames if no alias is set"), &misc_options, OPT_MISC_USE_SERVER_ALIAS, vbox); |
194 | |
3366 | 195 |
3427 | 196 gtk_widget_show_all(ret); |
3366 | 197 return ret; |
198 } | |
199 | |
4288 | 200 static void smiley_sel (GtkTreeSelection *sel, GtkTreeModel *model) { |
201 GtkTreeIter iter; | |
4298 | 202 const char *filename; |
4288 | 203 GValue val = { 0, }; |
204 | |
205 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
206 return; | |
207 gtk_tree_model_get_value (model, &iter, 2, &val); | |
208 filename = g_value_get_string(&val); | |
209 load_smiley_theme(filename, TRUE); | |
210 g_value_unset (&val); | |
4302 | 211 save_prefs(); |
4288 | 212 } |
213 | |
4324 | 214 GtkTreePath *theme_refresh_theme_list() |
215 { | |
216 GdkPixbuf *pixbuf; | |
4323 | 217 GSList *themes; |
4288 | 218 GtkTreeIter iter; |
4328 | 219 GtkTreePath *path = NULL; |
4325 | 220 int ind = 0; |
221 | |
4288 | 222 |
4323 | 223 smiley_theme_probe(); |
4328 | 224 |
4323 | 225 if (!smiley_themes) |
4328 | 226 return NULL; |
4325 | 227 |
4323 | 228 themes = smiley_themes; |
4325 | 229 |
230 gtk_list_store_clear(smiley_theme_store); | |
231 | |
4288 | 232 while (themes) { |
233 struct smiley_theme *theme = themes->data; | |
234 char *description = g_strdup_printf("<span size='larger' weight='bold'>%s</span> - %s\n" | |
4718 | 235 "<span size='smaller' foreground='dim grey'>%s</span>", |
236 theme->name, theme->author, theme->desc); | |
4324 | 237 gtk_list_store_append (smiley_theme_store, &iter); |
4288 | 238 pixbuf = gdk_pixbuf_new_from_file(theme->icon, NULL); |
4328 | 239 |
4324 | 240 gtk_list_store_set(smiley_theme_store, &iter, |
4288 | 241 0, pixbuf, |
242 1, description, | |
243 2, theme->path, | |
244 -1); | |
4892 | 245 g_object_unref(G_OBJECT(pixbuf)); |
4288 | 246 g_free(description); |
247 themes = themes->next; | |
248 if (current_smiley_theme && !strcmp(theme->path, current_smiley_theme->path)) { | |
249 /* path = gtk_tree_path_new_from_indices(ind); */ | |
250 char *iwishihadgtk2_2 = g_strdup_printf("%d", ind); | |
251 path = gtk_tree_path_new_from_string(iwishihadgtk2_2); | |
252 g_free(iwishihadgtk2_2); | |
253 } | |
254 ind++; | |
255 } | |
4325 | 256 |
4324 | 257 return path; |
258 } | |
4325 | 259 |
4326 | 260 void theme_install_theme(char *path, char *extn) { |
4325 | 261 gchar *command; |
262 gchar *destdir; | |
263 gchar *tail; | |
264 | |
265 /* Just to be safe */ | |
266 g_strchomp(path); | |
267 | |
268 /* I dont know what you are, get out of here */ | |
4326 | 269 if (extn != NULL) |
270 tail = extn; | |
271 else if ((tail = strrchr(path, '.')) == NULL) | |
4325 | 272 return; |
273 | |
274 destdir = g_strconcat(gaim_user_dir(), G_DIR_SEPARATOR_S "smileys", NULL); | |
275 | |
276 /* We'll check this just to make sure. This also lets us do something different on | |
277 * other platforms, if need be */ | |
4793 | 278 if (!g_ascii_strcasecmp(tail, ".gz") || !g_ascii_strcasecmp(tail, ".tgz")) |
4325 | 279 command = g_strdup_printf("tar > /dev/null xzf \"%s\" -C %s", path, destdir); |
280 else { | |
281 g_free(destdir); | |
282 return; | |
283 } | |
284 | |
285 /* Fire! */ | |
286 system(command); | |
287 | |
288 g_free(command); | |
289 g_free(destdir); | |
290 | |
291 theme_refresh_theme_list(); | |
292 } | |
293 | |
4326 | 294 static void theme_got_url(gpointer data, char *themedata, unsigned long len) { |
295 FILE *f; | |
296 gchar *path; | |
297 | |
298 f = gaim_mkstemp(&path); | |
299 fwrite(themedata, len, 1, f); | |
300 fclose(f); | |
301 | |
302 theme_install_theme(path, data); | |
303 | |
304 unlink(path); | |
305 g_free(path); | |
306 } | |
307 | |
4328 | 308 void theme_dnd_recv(GtkWidget *widget, GdkDragContext *dc, guint x, guint y, GtkSelectionData *sd, |
4325 | 309 guint info, guint t, gpointer data) { |
310 gchar *name = sd->data; | |
311 | |
312 if ((sd->length >= 0) && (sd->format == 8)) { | |
313 /* Well, it looks like the drag event was cool. | |
314 * Let's do something with it */ | |
315 | |
4793 | 316 if (!g_ascii_strncasecmp(name, "file://", 7)) { |
4325 | 317 /* It looks like we're dealing with a local file. Let's |
318 * just untar it in the right place */ | |
4326 | 319 theme_install_theme(name + 7, NULL); |
4793 | 320 } else if (!g_ascii_strncasecmp(name, "http://", 7)) { |
4326 | 321 /* Oo, a web drag and drop. This is where things |
322 * will start to get interesting */ | |
323 gchar *tail; | |
4328 | 324 |
4326 | 325 if ((tail = strrchr(name, '.')) == NULL) |
326 return; | |
327 | |
328 /* We'll check this just to make sure. This also lets us do something different on | |
329 * other platforms, if need be */ | |
4332
c8f374cadbd9
[gaim-migrate @ 4596]
Christian Hammond <chipx86@chipx86.com>
parents:
4330
diff
changeset
|
330 grab_url(name, TRUE, theme_got_url, ".tgz"); |
4325 | 331 } |
332 | |
333 gtk_drag_finish(dc, TRUE, FALSE, t); | |
334 } | |
335 | |
336 gtk_drag_finish(dc, FALSE, FALSE, t); | |
337 } | |
338 | |
4324 | 339 GtkWidget *theme_page() { |
340 GtkWidget *ret; | |
341 GtkWidget *sw; | |
342 GtkWidget *view; | |
343 GtkCellRenderer *rend; | |
344 GtkTreeViewColumn *col; | |
345 GtkTreeSelection *sel; | |
346 GtkTreePath *path = NULL; | |
4334 | 347 GtkWidget *label; |
4702 | 348 GtkTargetEntry te[3] = {{"text/plain", 0, 0},{"text/uri-list", 0, 1},{"STRING", 0, 2}}; |
4324 | 349 |
350 ret = gtk_vbox_new(FALSE, 18); | |
351 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
352 | |
4339
78bc4c8e4b2e
[gaim-migrate @ 4603]
Christian Hammond <chipx86@chipx86.com>
parents:
4334
diff
changeset
|
353 label = gtk_label_new(_("Select a smiley theme that you would like to use from the list below. New themes can be installed by dragging and dropping them onto the theme list.")); |
4334 | 354 |
4339
78bc4c8e4b2e
[gaim-migrate @ 4603]
Christian Hammond <chipx86@chipx86.com>
parents:
4334
diff
changeset
|
355 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); |
4334 | 356 gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5); |
357 gtk_label_set_justify(GTK_LABEL(label), GTK_JUSTIFY_LEFT); | |
358 | |
359 gtk_box_pack_start(GTK_BOX(ret), label, FALSE, TRUE, 0); | |
360 gtk_widget_show(label); | |
361 | |
4324 | 362 sw = gtk_scrolled_window_new(NULL,NULL); |
363 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
364 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
365 | |
366 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
367 smiley_theme_store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING); | |
368 | |
369 path = theme_refresh_theme_list(); | |
4288 | 370 |
4324 | 371 view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(smiley_theme_store)); |
4325 | 372 |
373 gtk_drag_dest_set(view, GTK_DEST_DEFAULT_MOTION | GTK_DEST_DEFAULT_HIGHLIGHT | GTK_DEST_DEFAULT_DROP, te, | |
374 sizeof(te) / sizeof(GtkTargetEntry) , GDK_ACTION_COPY | GDK_ACTION_MOVE); | |
375 | |
376 g_signal_connect(G_OBJECT(view), "drag_data_received", G_CALLBACK(theme_dnd_recv), smiley_theme_store); | |
377 | |
4288 | 378 rend = gtk_cell_renderer_pixbuf_new(); |
379 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); | |
4328 | 380 |
381 if(path) { | |
382 gtk_tree_selection_select_path(sel, path); | |
383 gtk_tree_path_free(path); | |
384 } | |
4288 | 385 |
4589 | 386 col = gtk_tree_view_column_new_with_attributes (_("Icon"), |
4288 | 387 rend, |
388 "pixbuf", 0, | |
389 NULL); | |
390 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
391 | |
392 rend = gtk_cell_renderer_text_new(); | |
4589 | 393 col = gtk_tree_view_column_new_with_attributes (_("Description"), |
4288 | 394 rend, |
395 "markup", 1, | |
396 NULL); | |
397 gtk_tree_view_append_column (GTK_TREE_VIEW(view), col); | |
4324 | 398 g_object_unref(G_OBJECT(smiley_theme_store)); |
4288 | 399 gtk_container_add(GTK_CONTAINER(sw), view); |
400 | |
401 g_signal_connect (G_OBJECT (sel), "changed", | |
402 G_CALLBACK (smiley_sel), | |
403 NULL); | |
404 | |
405 | |
406 gtk_widget_show_all(ret); | |
407 return ret; | |
408 } | |
409 | |
3366 | 410 GtkWidget *font_page() { |
411 GtkWidget *ret; | |
412 GtkWidget *button; | |
413 GtkWidget *vbox, *hbox; | |
414 GtkWidget *select = NULL; | |
3427 | 415 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
3500 | 416 |
3427 | 417 ret = gtk_vbox_new(FALSE, 18); |
418 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3500 | 419 |
3427 | 420 vbox = make_frame(ret, _("Style")); |
3818 | 421 gaim_button(_("_Bold"), &font_options, OPT_FONT_BOLD, vbox); |
422 gaim_button(_("_Italics"), &font_options, OPT_FONT_ITALIC, vbox); | |
423 gaim_button(_("_Underline"), &font_options, OPT_FONT_UNDERLINE, vbox); | |
4599 | 424 gaim_button(_("_Strikethrough"), &font_options, OPT_FONT_STRIKE, vbox); |
3500 | 425 |
3427 | 426 vbox = make_frame(ret, _("Face")); |
427 hbox = gtk_hbox_new(FALSE, 6); | |
428 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
3818 | 429 button = gaim_button(_("Use custo_m face"), &font_options, OPT_FONT_FACE, hbox); |
3427 | 430 gtk_size_group_add_widget(sg, button); |
431 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_FONT); | |
3366 | 432 |
3818 | 433 if (!(font_options & OPT_FONT_FACE)) |
3366 | 434 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
435 g_signal_connect(GTK_OBJECT(button), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
436 G_CALLBACK(gaim_gtk_toggle_sensitive), select); |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
437 g_signal_connect(GTK_OBJECT(select), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
438 G_CALLBACK(show_font_dialog), NULL); |
3366 | 439 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); |
440 | |
441 hbox = gtk_hbox_new(FALSE, 5); | |
442 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
3818 | 443 button = gaim_button(_("Use custom si_ze"), &font_options, OPT_FONT_SIZE, hbox); |
3427 | 444 gtk_size_group_add_widget(sg, button); |
3818 | 445 select = gaim_labeled_spin_button(hbox, NULL, &fontsize, 1, 7, NULL); |
446 if (!(font_options & OPT_FONT_SIZE)) | |
3366 | 447 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
448 g_signal_connect(GTK_OBJECT(button), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
449 G_CALLBACK(gaim_gtk_toggle_sensitive), select); |
3366 | 450 |
3500 | 451 vbox = make_frame(ret, _("Color")); |
3366 | 452 hbox = gtk_hbox_new(FALSE, 5); |
453 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
3500 | 454 |
455 | |
3818 | 456 button = gaim_button(_("_Text color"), &font_options, OPT_FONT_FGCOL, hbox); |
3427 | 457 gtk_size_group_add_widget(sg, button); |
458 | |
459 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); | |
460 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
3366 | 461 pref_fg_picture = show_color_pref(hbox, TRUE); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
462 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(update_color), |
3366 | 463 pref_fg_picture); |
3427 | 464 |
3818 | 465 if (!(font_options & OPT_FONT_FGCOL)) |
3366 | 466 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
467 g_signal_connect(GTK_OBJECT(button), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
468 G_CALLBACK(gaim_gtk_toggle_sensitive), select); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
469 g_signal_connect(GTK_OBJECT(select), "clicked", G_CALLBACK(show_fgcolor_dialog), NULL); |
3366 | 470 hbox = gtk_hbox_new(FALSE, 5); |
471 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
3500 | 472 |
3818 | 473 button = gaim_button(_("Bac_kground color"), &font_options, OPT_FONT_BGCOL, hbox); |
3427 | 474 gtk_size_group_add_widget(sg, button); |
475 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); | |
476 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
3366 | 477 pref_bg_picture = show_color_pref(hbox, FALSE); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
478 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(update_color), |
3366 | 479 pref_bg_picture); |
3472 | 480 |
3818 | 481 if (!(font_options & OPT_FONT_BGCOL)) |
3366 | 482 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
483 g_signal_connect(GTK_OBJECT(select), "clicked", G_CALLBACK(show_bgcolor_dialog), NULL); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
484 g_signal_connect(GTK_OBJECT(button), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
485 G_CALLBACK(gaim_gtk_toggle_sensitive), select); |
3366 | 486 |
3427 | 487 gtk_widget_show_all(ret); |
3366 | 488 return ret; |
489 } | |
490 | |
491 | |
492 GtkWidget *messages_page() { | |
493 GtkWidget *ret; | |
494 GtkWidget *vbox; | |
3427 | 495 ret = gtk_vbox_new(FALSE, 18); |
496 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 497 |
3427 | 498 vbox = make_frame (ret, _("Display")); |
3818 | 499 gaim_button(_("Show graphical _smileys"), &convo_options, OPT_CONVO_SHOW_SMILEY, vbox); |
500 gaim_button(_("Show _timestamp on messages"), &convo_options, OPT_CONVO_SHOW_TIME, vbox); | |
501 gaim_button(_("Show _URLs as links"), &convo_options, OPT_CONVO_SEND_LINKS, vbox); | |
3803 | 502 #ifdef USE_GTKSPELL |
3818 | 503 gaim_button(_("_Highlight misspelled words"), &convo_options, OPT_CONVO_CHECK_SPELLING, vbox); |
3803 | 504 #endif |
3427 | 505 vbox = make_frame (ret, _("Ignore")); |
3818 | 506 gaim_button(_("Ignore c_olors"), &convo_options, OPT_CONVO_IGNORE_COLOUR, vbox); |
507 gaim_button(_("Ignore font _faces"), &convo_options, OPT_CONVO_IGNORE_FONTS, vbox); | |
508 gaim_button(_("Ignore font si_zes"), &convo_options, OPT_CONVO_IGNORE_SIZES, vbox); | |
509 /* gaim_button(_("Ignore Ti_K Automated Messages"), &away_options, OPT_AWAY_TIK_HACK, vbox); */ | |
3500 | 510 |
3427 | 511 gtk_widget_show_all(ret); |
3366 | 512 return ret; |
513 } | |
514 | |
515 GtkWidget *hotkeys_page() { | |
516 GtkWidget *ret; | |
517 GtkWidget *vbox; | |
3427 | 518 ret = gtk_vbox_new(FALSE, 18); |
519 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 520 |
3427 | 521 vbox = make_frame(ret, _("Send Message")); |
3818 | 522 gaim_button(_("_Enter sends message"), &convo_options, OPT_CONVO_ENTER_SENDS, vbox); |
523 gaim_button(_("C_ontrol-Enter sends message"), &convo_options, OPT_CONVO_CTL_ENTER, vbox); | |
3500 | 524 |
3427 | 525 vbox = make_frame (ret, _("Window Closing")); |
3818 | 526 gaim_button(_("E_scape closes window"), &convo_options, OPT_CONVO_ESC_CAN_CLOSE, vbox); |
527 gaim_button(_("Control-_W closes window"), &convo_options, OPT_CONVO_CTL_W_CLOSES, vbox); | |
3366 | 528 |
3427 | 529 vbox = make_frame(ret, "Insertions"); |
3818 | 530 gaim_button(_("Control-{B/I/U/S} inserts _HTML tags"), &convo_options, OPT_CONVO_CTL_CHARS, vbox); |
531 gaim_button(_("Control-(number) inserts _smileys"), &convo_options, OPT_CONVO_CTL_SMILEYS, vbox); | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
532 |
3427 | 533 gtk_widget_show_all(ret); |
3366 | 534 return ret; |
535 } | |
536 | |
537 GtkWidget *list_page() { | |
538 GtkWidget *ret; | |
539 GtkWidget *vbox; | |
3427 | 540 ret = gtk_vbox_new(FALSE, 18); |
541 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 542 |
4956 | 543 vbox = make_frame (ret, _("Buddy List Toolbar")); |
4944 | 544 gaim_dropdown(vbox, _("Show _buttons as:"), &blist_options, OPT_BLIST_SHOW_BUTTON_XPM | OPT_BLIST_NO_BUTTON_TEXT, |
545 _("Pictures"), OPT_BLIST_SHOW_BUTTON_XPM | OPT_BLIST_NO_BUTTON_TEXT, | |
546 _("Text"), 0, | |
547 _("Pictures and text"), OPT_BLIST_SHOW_BUTTON_XPM, | |
548 _("None"), OPT_BLIST_NO_BUTTON_TEXT, NULL); | |
3366 | 549 |
3427 | 550 vbox = make_frame (ret, _("Buddy List Window")); |
4045 | 551 gaim_button(_("_Save window size/position"), &blist_options, OPT_BLIST_SAVED_WINDOWS, vbox); |
552 gaim_button(_("_Raise window on events"), &blist_options, OPT_BLIST_POPUP, vbox); | |
3366 | 553 |
4717 | 554 /* vbox = make_frame (ret, _("Group Display")); */ |
4700 | 555 /* gaim_button(_("Hide _groups with no online buddies"), &blist_options, OPT_BLIST_NO_MT_GRP, vbox); */ |
556 /* gaim_button(_("Show _numbers in groups"), &blist_options, OPT_BLIST_SHOW_GRPNUM, vbox); */ | |
3366 | 557 |
3427 | 558 vbox = make_frame (ret, _("Buddy Display")); |
4687 | 559 gaim_button(_("Show buddy _icons"), &blist_options, OPT_BLIST_SHOW_ICONS, vbox); |
4700 | 560 /* gaim_button(_("Show buddy t_ype icons"), &blist_options, OPT_BLIST_SHOW_PIXMAPS, vbox); */ |
3818 | 561 gaim_button(_("Show _warning levels"), &blist_options, OPT_BLIST_SHOW_WARN, vbox); |
562 gaim_button(_("Show idle _times"), &blist_options, OPT_BLIST_SHOW_IDLETIME, vbox); | |
4944 | 563 gaim_button(_("Dim i_dle buddies"), &blist_options, OPT_BLIST_GREY_IDLERS, vbox); |
3366 | 564 |
3427 | 565 gtk_widget_show_all(ret); |
3366 | 566 return ret; |
567 } | |
568 | |
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
569 GtkWidget *conv_page() { |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
570 GtkWidget *ret; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
571 GtkWidget *vbox; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
572 GtkWidget *label; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
573 GtkSizeGroup *sg; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
574 GList *names = NULL; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
575 int i; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
576 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
577 ret = gtk_vbox_new(FALSE, 18); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
578 gtk_container_set_border_width(GTK_CONTAINER(ret), 12); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
579 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
580 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
581 vbox = make_frame(ret, _("Conversations")); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
582 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
583 /* Build a list of names. */ |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
584 for (i = 0; i < gaim_conv_placement_get_fnc_count(); i++) { |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
585 names = g_list_append(names, (char *)gaim_conv_placement_get_name(i)); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
586 names = g_list_append(names, GINT_TO_POINTER(i)); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
587 } |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
588 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
589 label = gaim_dropdown_from_list(vbox, _("_Placement:"), |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
590 &conv_placement_option, -1, names); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
591 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
592 g_list_free(names); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
593 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
594 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
595 gtk_size_group_add_widget(sg, label); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
596 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
597 gaim_button(_("Show IMs and chats in _same tabbed window."), |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
598 &convo_options, OPT_CONVO_COMBINE, vbox); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
599 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
600 gtk_widget_show_all(ret); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
601 |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
602 return ret; |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
603 } |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
604 |
3366 | 605 GtkWidget *im_page() { |
606 GtkWidget *ret; | |
3500 | 607 GtkWidget *vbox; |
3427 | 608 GtkWidget *typingbutton, *widge; |
609 GtkSizeGroup *sg; | |
3366 | 610 |
3427 | 611 ret = gtk_vbox_new(FALSE, 18); |
612 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
613 | |
614 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
615 | |
616 vbox = make_frame (ret, _("Window")); | |
4114 | 617 widge = gaim_dropdown(vbox, _("Show _buttons as:"), &im_options, OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM, |
618 _("Pictures"), OPT_IM_BUTTON_XPM, | |
619 _("Text"), OPT_IM_BUTTON_TEXT, | |
620 _("Pictures and text"), OPT_IM_BUTTON_XPM | OPT_IM_BUTTON_TEXT, NULL); | |
3427 | 621 gtk_size_group_add_widget(sg, widge); |
622 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0); | |
3818 | 623 gaim_labeled_spin_button(vbox, _("New window _width:"), &conv_size.width, 25, 9999, sg); |
624 gaim_labeled_spin_button(vbox, _("New window _height:"), &conv_size.height, 25, 9999, sg); | |
625 gaim_labeled_spin_button(vbox, _("_Entry widget height:"), &conv_size.entry_height, 25, 9999, sg); | |
626 gaim_button(_("_Raise windows on events"), &im_options, OPT_IM_POPUP, vbox); | |
627 gaim_button(_("Hide window on _send"), &im_options, OPT_IM_POPDOWN, vbox); | |
3366 | 628 gtk_widget_show (vbox); |
629 | |
3427 | 630 vbox = make_frame (ret, _("Buddy Icons")); |
4045 | 631 gaim_button(_("Hide buddy _icons"), &im_options, OPT_IM_HIDE_ICONS, vbox); |
632 gaim_button(_("Disable buddy icon a_nimation"), &im_options, OPT_IM_NO_ANIMATION, vbox); | |
3366 | 633 |
3427 | 634 vbox = make_frame (ret, _("Display")); |
3818 | 635 gaim_button(_("Show _logins in window"), &im_options, OPT_IM_LOGON, vbox); |
3366 | 636 |
3427 | 637 vbox = make_frame (ret, _("Typing Notification")); |
3818 | 638 typingbutton = gaim_button(_("Notify buddies that you are _typing to them"), &misc_options, |
3366 | 639 OPT_MISC_STEALTH_TYPING, vbox); |
640 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(typingbutton), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(typingbutton))); | |
3818 | 641 misc_options ^= OPT_MISC_STEALTH_TYPING; |
3366 | 642 |
3427 | 643 gtk_widget_show_all(ret); |
3366 | 644 return ret; |
645 } | |
646 | |
647 GtkWidget *chat_page() { | |
648 GtkWidget *ret; | |
649 GtkWidget *vbox; | |
3427 | 650 GtkWidget *dd; |
651 GtkSizeGroup *sg; | |
3366 | 652 |
3427 | 653 ret = gtk_vbox_new(FALSE, 18); |
654 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3500 | 655 |
3427 | 656 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); |
3366 | 657 |
3427 | 658 vbox = make_frame (ret, _("Window")); |
4114 | 659 dd = gaim_dropdown(vbox, _("Show _buttons as:"), &chat_options, OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM, |
660 _("Pictures"), OPT_CHAT_BUTTON_XPM, | |
661 _("Text"), OPT_CHAT_BUTTON_TEXT, | |
662 _("Pictures and text"), OPT_CHAT_BUTTON_XPM | OPT_CHAT_BUTTON_TEXT, NULL); | |
3427 | 663 gtk_size_group_add_widget(sg, dd); |
664 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
3818 | 665 gaim_labeled_spin_button(vbox, _("New window _width:"), &buddy_chat_size.width, 25, 9999, sg); |
666 gaim_labeled_spin_button(vbox, _("New window _height:"), &buddy_chat_size.height, 25, 9999, sg); | |
667 gaim_labeled_spin_button(vbox, _("_Entry widget height:"), &buddy_chat_size.entry_height, 25, 9999, sg); | |
668 gaim_button(_("_Raise windows on events"), &chat_options, OPT_CHAT_POPUP, vbox); | |
3366 | 669 |
3427 | 670 vbox = make_frame (ret, _("Tab Completion")); |
4045 | 671 gaim_button(_("_Tab-complete nicks"), &chat_options, OPT_CHAT_TAB_COMPLETE, vbox); |
672 gaim_button(_("_Old-style tab completion"), &chat_options, OPT_CHAT_OLD_STYLE_TAB, vbox); | |
3427 | 673 |
674 vbox = make_frame (ret, _("Display")); | |
3818 | 675 gaim_button(_("_Show people joining/leaving in window"), &chat_options, OPT_CHAT_LOGON, vbox); |
676 gaim_button(_("Co_lorize screennames"), &chat_options, OPT_CHAT_COLORIZE, vbox); | |
3427 | 677 |
678 gtk_widget_show_all(ret); | |
3366 | 679 return ret; |
680 } | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
681 |
3366 | 682 GtkWidget *tab_page() { |
683 GtkWidget *ret; | |
684 GtkWidget *vbox; | |
3427 | 685 GtkWidget *dd; |
4445 | 686 GtkWidget *button; |
3427 | 687 GtkSizeGroup *sg; |
688 ret = gtk_vbox_new(FALSE, 18); | |
689 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 690 |
3427 | 691 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
3500 | 692 |
3427 | 693 vbox = make_frame (ret, _("IM Tabs")); |
4114 | 694 dd = gaim_dropdown(vbox, _("Tab _placement:"), &im_options, OPT_IM_SIDE_TAB | OPT_IM_BR_TAB, |
695 _("Top"), 0, | |
696 _("Bottom"), OPT_IM_BR_TAB, | |
697 _("Left"), OPT_IM_SIDE_TAB, | |
698 _("Right"), OPT_IM_BR_TAB | OPT_IM_SIDE_TAB, NULL); | |
3427 | 699 gtk_size_group_add_widget(sg, dd); |
4045 | 700 gaim_button(_("Show all _instant messages in one tabbed\nwindow"), &im_options, OPT_IM_ONE_WINDOW, vbox); |
3818 | 701 gaim_button(_("Show a_liases in tabs/titles"), &im_options, OPT_IM_ALIAS_TAB, vbox); |
3366 | 702 |
3427 | 703 vbox = make_frame (ret, _("Chat Tabs")); |
4114 | 704 dd = gaim_dropdown(vbox, _("Tab _placement:"), &chat_options, OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, |
705 _("Top"), 0, | |
706 _("Bottom"), OPT_CHAT_BR_TAB, | |
707 _("Left"), OPT_CHAT_SIDE_TAB, | |
708 _("Right"), OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, NULL); | |
3427 | 709 gtk_size_group_add_widget(sg, dd); |
3818 | 710 gaim_button(_("Show all c_hats in one tabbed window"), &chat_options, OPT_CHAT_ONE_WINDOW, |
3366 | 711 vbox); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
712 |
4445 | 713 vbox = make_frame (ret, _("Tab Options")); |
714 button = gaim_button(_("Show _close button on tabs."), &convo_options, OPT_CONVO_NO_X_ON_TAB, vbox); | |
4449 | 715 convo_options ^= OPT_CONVO_NO_X_ON_TAB; |
4445 | 716 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); |
717 | |
718 | |
3427 | 719 gtk_widget_show_all(ret); |
3366 | 720 return ret; |
721 } | |
722 | |
723 GtkWidget *proxy_page() { | |
724 GtkWidget *ret; | |
725 GtkWidget *vbox; | |
726 GtkWidget *entry; | |
727 GtkWidget *label; | |
728 GtkWidget *hbox; | |
729 GtkWidget *table; | |
730 | |
3427 | 731 ret = gtk_vbox_new(FALSE, 18); |
732 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 733 |
3427 | 734 vbox = make_frame (ret, _("Proxy Type")); |
4634 | 735 gaim_dropdown(vbox, _("Proxy _type:"), (int*)&global_proxy_info.proxytype, -1, |
4114 | 736 _("No proxy"), PROXY_NONE, |
3366 | 737 "SOCKS 4", PROXY_SOCKS4, |
738 "SOCKS 5", PROXY_SOCKS5, | |
739 "HTTP", PROXY_HTTP, NULL); | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
740 |
3427 | 741 vbox = make_frame(ret, _("Proxy Server")); |
742 prefs_proxy_frame = vbox; | |
2254 | 743 |
4634 | 744 if (global_proxy_info.proxytype == PROXY_NONE) |
3427 | 745 gtk_widget_set_sensitive(GTK_WIDGET(vbox), FALSE); |
2254 | 746 |
747 table = gtk_table_new(2, 4, FALSE); | |
748 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
749 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
750 gtk_table_set_row_spacings(GTK_TABLE(table), 10); | |
3427 | 751 gtk_container_add(GTK_CONTAINER(vbox), table); |
2254 | 752 |
753 | |
3427 | 754 label = gtk_label_new_with_mnemonic(_("_Host")); |
2254 | 755 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
756 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 0, 1, GTK_FILL, 0, 0, 0); | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
757 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
758 entry = gtk_entry_new(); |
3427 | 759 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
3366 | 760 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
761 g_signal_connect(GTK_OBJECT(entry), "changed", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
762 G_CALLBACK(proxy_print_option), (void *)PROXYHOST); |
4634 | 763 gtk_entry_set_text(GTK_ENTRY(entry), global_proxy_info.proxyhost); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
764 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
765 hbox = gtk_hbox_new(TRUE, 5); |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
766 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
767 |
3427 | 768 label = gtk_label_new_with_mnemonic(_("Port")); |
2254 | 769 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
770 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 1, 2, GTK_FILL, 0, 0, 0); | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
771 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
772 entry = gtk_entry_new(); |
3427 | 773 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
3366 | 774 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
775 g_signal_connect(GTK_OBJECT(entry), "changed", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
776 G_CALLBACK(proxy_print_option), (void *)PROXYPORT); |
2254 | 777 |
4634 | 778 if (global_proxy_info.proxyport) { |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
779 char buf[128]; |
4634 | 780 g_snprintf(buf, sizeof(buf), "%d", global_proxy_info.proxyport); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
781 gtk_entry_set_text(GTK_ENTRY(entry), buf); |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
782 } |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
783 |
3427 | 784 label = gtk_label_new_with_mnemonic(_("_User")); |
2254 | 785 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
786 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 2, 3, GTK_FILL, 0, 0, 0); | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
787 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
788 entry = gtk_entry_new(); |
3427 | 789 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
3366 | 790 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
791 g_signal_connect(GTK_OBJECT(entry), "changed", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
792 G_CALLBACK(proxy_print_option), (void *)PROXYUSER); |
4634 | 793 gtk_entry_set_text(GTK_ENTRY(entry), global_proxy_info.proxyuser); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
794 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
795 hbox = gtk_hbox_new(TRUE, 5); |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
796 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
797 |
3427 | 798 label = gtk_label_new_with_mnemonic(_("Pa_ssword")); |
2254 | 799 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
800 gtk_table_attach(GTK_TABLE(table), label, 0, 1, 3, 4, GTK_FILL, 0, 0, 0); | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
801 |
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
802 entry = gtk_entry_new(); |
3427 | 803 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
3366 | 804 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 3, 4, GTK_FILL , 0, 0, 0); |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
805 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
806 g_signal_connect(GTK_OBJECT(entry), "changed", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
807 G_CALLBACK(proxy_print_option), (void *)PROXYPASS); |
4634 | 808 gtk_entry_set_text(GTK_ENTRY(entry), global_proxy_info.proxypass); |
3500 | 809 |
3427 | 810 gtk_widget_show_all(ret); |
3366 | 811 return ret; |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
812 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
813 |
3821 | 814 #ifndef _WIN32 |
4428 | 815 static void manual_browser_set(GtkButton *button, GtkEntry *entry) { |
816 | |
817 const char *program = gtk_entry_get_text(entry); | |
818 if (!program_is_valid(program)) { | |
819 char *error = g_strdup_printf(_("The entered manual browser " | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
820 "'%s' is not valid. Hyperlinks will " |
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
821 "not work."), program); |
4428 | 822 do_error_dialog(error, NULL, GAIM_WARNING); |
823 } | |
824 | |
825 g_strlcpy(web_command, program, sizeof(web_command)); | |
826 } | |
827 | |
828 static void manual_browser_reset(GtkButton *button, GtkEntry *entry) { | |
829 gtk_entry_set_text(entry, web_command); | |
3432 | 830 } |
831 | |
4428 | 832 static GList *get_available_browsers() |
833 { | |
834 struct browser { | |
835 char *name; | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
836 char *command; |
4428 | 837 int id; |
838 }; | |
839 | |
840 static struct browser possible_browsers[] = { | |
841 {N_("Konqueror"), "kfmclient", BROWSER_KONQ}, | |
842 {N_("Opera"), "opera", BROWSER_OPERA}, | |
843 {N_("Galeon"), "galeon", BROWSER_GALEON}, | |
844 {N_("Netscape"), "netscape", BROWSER_NETSCAPE}, | |
845 {N_("Mozilla"), "mozilla", BROWSER_MOZILLA}, | |
846 }; | |
847 static const int num_possible_browsers = 5; | |
848 | |
849 GList *browsers = NULL; | |
850 int i = 0; | |
851 | |
852 browsers = g_list_prepend(browsers, GINT_TO_POINTER(BROWSER_MANUAL)); | |
853 browsers = g_list_prepend(browsers, _("Manual")); | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
854 for (i = 0; i < num_possible_browsers; i++) { |
4428 | 855 if (program_is_valid(possible_browsers[i].command)) { |
856 browsers = g_list_prepend(browsers, | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
857 GINT_TO_POINTER(possible_browsers[i].id)); |
4428 | 858 browsers = g_list_prepend(browsers, possible_browsers[i].name); |
859 } | |
860 } | |
861 | |
862 return browsers; | |
863 } | |
864 | |
3366 | 865 GtkWidget *browser_page() { |
866 GtkWidget *ret; | |
3821 | 867 GtkWidget *vbox; |
868 GtkWidget *hbox; | |
3366 | 869 GtkWidget *label; |
3427 | 870 GtkSizeGroup *sg; |
4428 | 871 GList *browsers = NULL; |
3427 | 872 |
873 ret = gtk_vbox_new(FALSE, 18); | |
874 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
875 | |
876 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
877 vbox = make_frame (ret, _("Browser Selection")); | |
4428 | 878 |
879 browsers = get_available_browsers(); | |
880 if (browsers != NULL) { | |
881 label = gaim_dropdown_from_list(vbox,_("_Browser"), &web_browser, -1, | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
882 browsers); |
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
883 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
884 gtk_size_group_add_widget(sg, label); |
4428 | 885 } |
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
886 |
3366 | 887 hbox = gtk_hbox_new(FALSE, 5); |
888 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
4295 | 889 label = gtk_label_new_with_mnemonic(_("_Manual: ")); |
3366 | 890 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
3427 | 891 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
892 gtk_size_group_add_widget(sg, label); | |
3366 | 893 browser_entry = gtk_entry_new(); |
3427 | 894 gtk_label_set_mnemonic_widget(GTK_LABEL(label), browser_entry); |
3818 | 895 if (web_browser != BROWSER_MANUAL) |
4428 | 896 gtk_widget_set_sensitive(hbox, FALSE); |
3366 | 897 gtk_box_pack_start (GTK_BOX (hbox), browser_entry, FALSE, FALSE, 0); |
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
898 |
3818 | 899 gtk_entry_set_text(GTK_ENTRY(browser_entry), web_command); |
4428 | 900 g_signal_connect_swapped(GTK_OBJECT(browser_entry), "activate", |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
901 G_CALLBACK(manual_browser_set), NULL); |
4428 | 902 label = gtk_button_new_with_label(_("Set")); |
903 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
904 g_signal_connect(GTK_OBJECT(label), "clicked", | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
905 G_CALLBACK(manual_browser_set), browser_entry); |
4428 | 906 label = gtk_button_new_with_label(_("Reset")); |
907 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
908 g_signal_connect(GTK_OBJECT(label), "clicked", | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
909 G_CALLBACK(manual_browser_reset), browser_entry); |
4428 | 910 |
911 if (browsers != NULL) { | |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
912 vbox = make_frame (ret, _("Browser Options")); |
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
913 label = gaim_button(_("Open new _window by default"), &misc_options, OPT_MISC_BROWSER_POPUP, vbox); |
4428 | 914 } |
4451
ce5b64fac95d
[gaim-migrate @ 4726]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4449
diff
changeset
|
915 |
3427 | 916 gtk_widget_show_all(ret); |
3366 | 917 return ret; |
3500 | 918 } |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
919 #endif /*_WIN32*/ |
3366 | 920 |
921 GtkWidget *logging_page() { | |
922 GtkWidget *ret; | |
923 GtkWidget *vbox; | |
3427 | 924 ret = gtk_vbox_new(FALSE, 18); |
925 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
926 |
3427 | 927 vbox = make_frame (ret, _("Message Logs")); |
4045 | 928 gaim_button(_("_Log all instant messages"), &logging_options, OPT_LOG_CONVOS, vbox); |
3818 | 929 gaim_button(_("Log all c_hats"), &logging_options, OPT_LOG_CHATS, vbox); |
930 gaim_button(_("Strip _HTML from logs"), &logging_options, OPT_LOG_STRIP_HTML, vbox); | |
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
931 |
3427 | 932 vbox = make_frame (ret, _("System Logs")); |
3818 | 933 gaim_button(_("Log when buddies _sign on/sign off"), &logging_options, OPT_LOG_BUDDY_SIGNON, |
3366 | 934 vbox); |
3818 | 935 gaim_button(_("Log when buddies become _idle/un-idle"), &logging_options, OPT_LOG_BUDDY_IDLE, |
3366 | 936 vbox); |
3818 | 937 gaim_button(_("Log when buddies go away/come _back"), &logging_options, OPT_LOG_BUDDY_AWAY, vbox); |
938 gaim_button(_("Log your _own signons/idleness/awayness"), &logging_options, OPT_LOG_MY_SIGNON, | |
3366 | 939 vbox); |
3818 | 940 gaim_button(_("I_ndividual log file for each buddy's signons"), &logging_options, |
3366 | 941 OPT_LOG_INDIVIDUAL, vbox); |
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
942 |
3427 | 943 gtk_widget_show_all(ret); |
3366 | 944 return ret; |
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
945 } |
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
946 |
3366 | 947 static GtkWidget *sndcmd = NULL; |
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
948 |
3821 | 949 #ifndef _WIN32 |
4095 | 950 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d) |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
951 { |
4561 | 952 gaim_sound_set_command(gtk_entry_get_text(GTK_ENTRY(sndcmd))); |
3366 | 953 return TRUE; |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
954 } |
3821 | 955 #endif |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
956 |
3366 | 957 GtkWidget *sound_page() { |
958 GtkWidget *ret; | |
3821 | 959 GtkWidget *vbox; |
960 GtkSizeGroup *sg; | |
961 #ifndef _WIN32 | |
962 GtkWidget *dd; | |
963 GtkWidget *hbox; | |
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
964 GtkWidget *label; |
4561 | 965 char *cmd; |
3821 | 966 #endif |
3366 | 967 |
3427 | 968 ret = gtk_vbox_new(FALSE, 18); |
969 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
970 |
3427 | 971 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
972 |
3427 | 973 vbox = make_frame (ret, _("Sound Options")); |
3818 | 974 gaim_button(_("_No sounds when you log in"), &sound_options, OPT_SOUND_SILENT_SIGNON, vbox); |
975 gaim_button(_("_Sounds while away"), &sound_options, OPT_SOUND_WHEN_AWAY, vbox); | |
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
976 |
3630 | 977 #ifndef _WIN32 |
3427 | 978 vbox = make_frame (ret, _("Sound Method")); |
4114 | 979 dd = gaim_dropdown(vbox, _("_Method"), &sound_options, OPT_SOUND_BEEP | |
4581 | 980 OPT_SOUND_ESD | OPT_SOUND_ARTS | OPT_SOUND_NAS | |
981 OPT_SOUND_NORMAL | OPT_SOUND_CMD, | |
4114 | 982 _("Console beep"), OPT_SOUND_BEEP, |
4561 | 983 #ifdef USE_AO |
984 _("Automatic"), OPT_SOUND_NORMAL, | |
4581 | 985 "ESD", OPT_SOUND_ESD, |
986 "Arts", OPT_SOUND_ARTS, | |
987 #endif | |
988 #ifdef USE_NAS_AUDIO | |
989 "NAS", OPT_SOUND_NAS, | |
4082 | 990 #endif |
4114 | 991 _("Command"), OPT_SOUND_CMD, NULL); |
3427 | 992 gtk_size_group_add_widget(sg, dd); |
993 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
994 |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
995 hbox = gtk_hbox_new(FALSE, 5); |
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
996 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); |
3427 | 997 |
3366 | 998 hbox = gtk_hbox_new(FALSE, 5); |
999 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
3500 | 1000 label = gtk_label_new_with_mnemonic(_("Sound c_ommand\n(%s for filename)")); |
3427 | 1001 gtk_size_group_add_widget(sg, label); |
1002 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
3366 | 1003 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); |
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
1004 |
3366 | 1005 sndcmd = gtk_entry_new(); |
3427 | 1006 gtk_label_set_mnemonic_widget(GTK_LABEL(label), sndcmd); |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1007 |
4635 | 1008 gtk_editable_set_editable(GTK_EDITABLE(sndcmd), TRUE); |
4561 | 1009 cmd = gaim_sound_get_command(); |
1010 if(cmd) | |
1011 gtk_entry_set_text(GTK_ENTRY(sndcmd), cmd); | |
3366 | 1012 gtk_widget_set_size_request(sndcmd, 75, -1); |
3427 | 1013 |
3818 | 1014 gtk_widget_set_sensitive(sndcmd, (sound_options & OPT_SOUND_CMD)); |
3366 | 1015 gtk_box_pack_start(GTK_BOX(hbox), sndcmd, TRUE, TRUE, 5); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1016 g_signal_connect(GTK_OBJECT(sndcmd), "changed", G_CALLBACK(sound_cmd_yeah), NULL); |
3630 | 1017 #endif /* _WIN32 */ |
3427 | 1018 gtk_widget_show_all(ret); |
3366 | 1019 return ret; |
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1020 } |
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1021 |
3366 | 1022 GtkWidget *away_page() { |
1023 GtkWidget *ret; | |
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1024 GtkWidget *vbox; |
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1025 GtkWidget *hbox; |
3366 | 1026 GtkWidget *label; |
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1027 GtkWidget *button; |
3366 | 1028 GtkWidget *select; |
3427 | 1029 GtkWidget *dd; |
1030 GtkSizeGroup *sg; | |
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1031 |
3427 | 1032 ret = gtk_vbox_new(FALSE, 18); |
1033 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1034 |
3427 | 1035 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1036 |
3427 | 1037 vbox = make_frame (ret, _("Away")); |
3818 | 1038 gaim_button(_("_Sending messages removes away status"), &away_options, OPT_AWAY_BACK_ON_IM, vbox); |
1039 gaim_button(_("_Queue new messages when away"), &away_options, OPT_AWAY_QUEUE, vbox); | |
1040 gaim_button(_("_Ignore new conversations when away"), &away_options, OPT_AWAY_DISCARD, vbox); | |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1041 |
3427 | 1042 vbox = make_frame (ret, _("Auto-response")); |
3366 | 1043 hbox = gtk_hbox_new(FALSE, 0); |
1044 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
3427 | 1045 gaim_labeled_spin_button(hbox, _("Seconds before _resending:"), |
3818 | 1046 &away_resend, 1, 24 * 60 * 60, sg); |
1047 gaim_button(_("_Don't send auto-response"), &away_options, OPT_AWAY_NO_AUTO_RESP, vbox); | |
1048 gaim_button(_("_Only send auto-response when idle"), &away_options, OPT_AWAY_IDLE_RESP, vbox); | |
1049 gaim_button(_("Do_n't send auto-response in active conversations"), &away_options, OPT_AWAY_DELAY_IN_USE, vbox); | |
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1050 |
3818 | 1051 if (away_options & OPT_AWAY_NO_AUTO_RESP) |
3366 | 1052 gtk_widget_set_sensitive(hbox, FALSE); |
3500 | 1053 |
3427 | 1054 vbox = make_frame (ret, _("Idle")); |
4052 | 1055 dd = gaim_dropdown(vbox, _("Idle _time reporting:"), &report_idle, -1, |
1056 _("None"), IDLE_NONE, | |
1057 _("Gaim usage"), IDLE_GAIM, | |
3366 | 1058 #ifdef USE_SCREENSAVER |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3902
diff
changeset
|
1059 #ifndef _WIN32 |
4052 | 1060 _("X usage"), IDLE_SCREENSAVER, |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3902
diff
changeset
|
1061 #else |
4052 | 1062 _("Windows usage"), IDLE_SCREENSAVER, |
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3902
diff
changeset
|
1063 #endif |
3366 | 1064 #endif |
3427 | 1065 NULL); |
1066 gtk_size_group_add_widget(sg, dd); | |
1067 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1068 |
3427 | 1069 vbox = make_frame (ret, _("Auto-away")); |
3818 | 1070 button = gaim_button(_("Set away _when idle"), &away_options, OPT_AWAY_AUTO, vbox); |
4052 | 1071 select = gaim_labeled_spin_button(vbox, _("_Minutes before setting away:"), &auto_away, 1, 24 * 60, sg); |
3818 | 1072 if (!(away_options & OPT_AWAY_AUTO)) |
3366 | 1073 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1074 g_signal_connect(GTK_OBJECT(button), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1075 G_CALLBACK(gaim_gtk_toggle_sensitive), select); |
1 | 1076 |
4052 | 1077 label = gtk_label_new_with_mnemonic(_("Away m_essage:")); |
3427 | 1078 gtk_size_group_add_widget(sg, label); |
1079 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
3366 | 1080 hbox = gtk_hbox_new(FALSE, 0); |
1081 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
1082 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
1083 prefs_away_menu = gtk_option_menu_new(); | |
3427 | 1084 gtk_label_set_mnemonic_widget(GTK_LABEL(label), prefs_away_menu); |
3818 | 1085 if (!(away_options & OPT_AWAY_AUTO)) |
3366 | 1086 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1087 g_signal_connect(GTK_OBJECT(button), "clicked", |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1088 G_CALLBACK(gaim_gtk_toggle_sensitive), prefs_away_menu); |
3366 | 1089 default_away_menu_init(prefs_away_menu); |
1090 gtk_widget_show(prefs_away_menu); | |
1091 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); | |
3500 | 1092 |
3427 | 1093 gtk_widget_show_all(ret); |
3366 | 1094 return ret; |
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1095 } |
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1096 |
3551 | 1097 #if USE_PLUGINS |
1098 GtkWidget *plugin_description=NULL, *plugin_details=NULL; | |
1099 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) | |
1100 { | |
1101 gchar buf[1024]; | |
1102 GtkTreeIter iter; | |
1103 GValue val = { 0, }; | |
1104 struct gaim_plugin *plug; | |
1105 | |
1106 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
1107 return; | |
1108 gtk_tree_model_get_value (model, &iter, 2, &val); | |
1109 plug = g_value_get_pointer(&val); | |
1110 | |
3563 | 1111 if (plug->error[0]) |
4309 | 1112 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
3563 | 1113 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" |
4309 | 1114 "%s", plug->desc.name, plug->desc.version, plug->error, plug->desc.description); |
3563 | 1115 else |
4309 | 1116 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
1117 "%s", plug->desc.name, plug->desc.version, plug->desc.description); | |
3551 | 1118 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
3630 | 1119 g_snprintf(buf, sizeof(buf), |
1120 #ifndef _WIN32 | |
1121 _("<span size=\"larger\">%s %s</span>\n\n" | |
1122 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
4617 | 1123 "<span weight=\"bold\">Web site:</span>\t\t%s\n" |
3630 | 1124 "<span weight=\"bold\">File name:</span>\t%s"), |
1125 #else | |
1126 _("<span size=\"larger\">%s %s</span>\n\n" | |
1127 "<span weight=\"bold\">Written by:</span> %s\n" | |
1128 "<span weight=\"bold\">URL:</span> %s\n" | |
1129 "<span weight=\"bold\">File name:</span> %s"), | |
1130 #endif | |
3551 | 1131 plug->desc.name, plug->desc.version, plug->desc.authors, plug->desc.url, plug->path); |
1132 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
1133 g_value_unset (&val); | |
1134 } | |
1135 | |
1136 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
1137 { | |
1138 GtkTreeModel *model = (GtkTreeModel *)data; | |
1139 GtkTreeIter iter; | |
1140 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
1141 struct gaim_plugin *plug; | |
1142 gchar buf[1024]; | |
3565 | 1143 GtkWidget *(*config)(); |
1144 | |
3551 | 1145 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
1146 gdk_window_set_cursor(prefs->window, wait); | |
1147 gdk_cursor_unref(wait); | |
1148 | |
1149 gtk_tree_model_get_iter (model, &iter, path); | |
1150 gtk_tree_model_get (model, &iter, 2, &plug, -1); | |
1151 | |
1152 if (!plug->handle) | |
1153 | |
1154 if (plug->type == plugin) | |
1155 #ifdef GAIM_PLUGINS | |
3565 | 1156 { |
1157 load_plugin(plug->path); | |
1158 if (g_module_symbol(plug->handle, "gaim_plugin_config_gtk", (gpointer *)&config)) { | |
1159 plug->iter = g_new0(GtkTreeIter, 1); | |
1160 prefs_notebook_add_page(plug->desc.name, NULL, config(), plug->iter, &plugin_iter, notebook_page++); | |
3567 | 1161 if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), &plugin_iter) == 1) { |
1162 /* Expand the tree for the first plugin added */ | |
3630 | 1163 GtkTreePath *path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), &plugin_iter); |
3567 | 1164 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), path2, TRUE); |
1165 gtk_tree_path_free (path2); | |
1166 } | |
3565 | 1167 } |
1168 } | |
3551 | 1169 #else |
1170 {} | |
1171 #endif | |
1172 else | |
1173 #ifdef USE_PERL | |
1174 perl_load_file(plug->path); | |
1175 #else | |
1176 {} | |
1177 #endif | |
1178 else | |
1179 if (plug->type == plugin) | |
1180 #ifdef GAIM_PLUGINS | |
3565 | 1181 { |
1182 unload_plugin(plug); | |
1183 if (plug->iter) { | |
1184 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), plug->iter); | |
1185 g_free(plug->iter); | |
1186 plug->iter = NULL; | |
1187 } | |
1188 } | |
3551 | 1189 #else |
1190 {} | |
1191 #endif | |
1192 else | |
1193 #ifdef USE_PERL | |
1194 perl_unload_file(plug); | |
1195 #else | |
1196 {} | |
1197 #endif | |
1198 gdk_window_set_cursor(prefs->window, NULL); | |
3563 | 1199 if (plug->error[0]) |
4309 | 1200 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
3563 | 1201 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" |
4309 | 1202 "%s", plug->desc.name, plug->desc.version, plug->error, plug->desc.description); |
3563 | 1203 else |
4309 | 1204 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
1205 "%s", plug->desc.name, plug->desc.version, plug->desc.description); | |
3563 | 1206 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
3551 | 1207 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, plug->handle, -1); |
3563 | 1208 |
3551 | 1209 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
1210 gtk_tree_path_free(path); | |
1211 } | |
1212 | |
1213 static GtkWidget *plugin_page () | |
1214 { | |
1215 GtkWidget *ret; | |
1216 | |
1217 GtkWidget *sw, *vp; | |
1218 GtkTreeIter iter; | |
1219 GtkWidget *event_view; | |
1220 GtkListStore *ls; | |
1221 GtkCellRenderer *rend, *rendt; | |
1222 GtkTreeViewColumn *col; | |
1223 GtkTreeSelection *sel; | |
1224 GtkTreePath *path; | |
1225 | |
1226 GtkWidget *nb; | |
1227 | |
1228 GList *probes = probed_plugins; | |
1229 struct gaim_plugin *plug; | |
1230 | |
1231 ret = gtk_vbox_new(FALSE, 18); | |
1232 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1233 | |
1234 sw = gtk_scrolled_window_new(NULL,NULL); | |
1235 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | |
1236 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
1237 | |
1238 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
1239 | |
1240 ls = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); | |
1241 while (probes) { | |
1242 plug = probes->data; | |
1243 gtk_list_store_append (ls, &iter); | |
1244 gtk_list_store_set(ls, &iter, | |
1245 0, plug->handle, | |
1246 1, plug->desc.name ? plug->desc.name : plug->path, | |
1247 2, plug, -1); | |
1248 probes = probes->next; | |
1249 } | |
1250 | |
1251 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
1252 | |
1253 rend = gtk_cell_renderer_toggle_new(); | |
1254 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
1255 | |
1256 | |
4295 | 1257 col = gtk_tree_view_column_new_with_attributes (_("Load"), |
3551 | 1258 rend, |
1259 "active", 0, | |
1260 NULL); | |
1261 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1262 | |
1263 rendt = gtk_cell_renderer_text_new(); | |
4295 | 1264 col = gtk_tree_view_column_new_with_attributes (_("Name"), |
3551 | 1265 rendt, |
1266 "text", 1, | |
1267 NULL); | |
1268 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1269 g_object_unref(G_OBJECT(ls)); | |
1270 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
1271 | |
1272 | |
1273 nb = gtk_notebook_new(); | |
1274 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM); | |
1275 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb)); | |
1276 | |
1277 /* Description */ | |
1278 sw = gtk_scrolled_window_new(NULL, NULL); | |
1279 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1280 plugin_description = gtk_label_new(NULL); | |
1281 | |
1282 vp = gtk_viewport_new(NULL, NULL); | |
3630 | 1283 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); |
3551 | 1284 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
1285 | |
3630 | 1286 gtk_container_add(GTK_CONTAINER(vp), plugin_description); |
1287 gtk_container_add(GTK_CONTAINER(sw), vp); | |
3551 | 1288 |
3630 | 1289 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE); |
1290 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE); | |
3551 | 1291 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0); |
1292 gtk_misc_set_padding(GTK_MISC(plugin_description), 6, 6); | |
1293 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description"))); | |
1294 | |
1295 /* Details */ | |
1296 sw = gtk_scrolled_window_new(NULL, NULL); | |
1297 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1298 plugin_details = gtk_label_new(NULL); | |
1299 | |
1300 vp = gtk_viewport_new(NULL, NULL); | |
3630 | 1301 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); |
3551 | 1302 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
1303 | |
3630 | 1304 gtk_container_add(GTK_CONTAINER(vp), plugin_details); |
1305 gtk_container_add(GTK_CONTAINER(sw), vp); | |
3551 | 1306 |
3630 | 1307 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE); |
1308 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE); | |
3551 | 1309 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0); |
1310 gtk_misc_set_padding(GTK_MISC(plugin_details), 6, 6); | |
1311 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details"))); | |
1312 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0); | |
1313 | |
1314 g_signal_connect (G_OBJECT (sel), "changed", | |
1315 G_CALLBACK (prefs_plugin_sel), | |
1316 NULL); | |
1317 g_signal_connect (G_OBJECT(rend), "toggled", | |
1318 G_CALLBACK(plugin_load), ls); | |
1319 | |
1320 path = gtk_tree_path_new_first(); | |
1321 gtk_tree_selection_select_path(sel, path); | |
1322 gtk_tree_path_free(path); | |
1323 | |
1324 gtk_widget_show_all(ret); | |
1325 return ret; | |
1326 } | |
1327 #endif | |
1328 | |
3366 | 1329 static void event_toggled (GtkCellRendererToggle *cell, gchar *pth, gpointer data) |
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1330 { |
3366 | 1331 GtkTreeModel *model = (GtkTreeModel *)data; |
1332 GtkTreeIter iter; | |
1333 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
3500 | 1334 gint soundnum; |
3366 | 1335 |
1336 gtk_tree_model_get_iter (model, &iter, path); | |
1337 gtk_tree_model_get (model, &iter, 2, &soundnum, -1); | |
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1338 |
4561 | 1339 sound_options ^= gaim_sound_get_event_option(soundnum); |
1340 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, sound_options & gaim_sound_get_event_option(soundnum), -1); | |
3522 | 1341 |
1342 gtk_tree_path_free(path); | |
3366 | 1343 } |
1344 | |
1345 static void test_sound(GtkWidget *button, gpointer i_am_NULL) | |
1346 { | |
1347 guint32 tmp_sound = sound_options; | |
1348 if (!(sound_options & OPT_SOUND_WHEN_AWAY)) | |
1349 sound_options ^= OPT_SOUND_WHEN_AWAY; | |
4561 | 1350 if (!(sound_options & gaim_sound_get_event_option(sound_row_sel))) |
1351 sound_options ^= gaim_sound_get_event_option(sound_row_sel); | |
1352 gaim_sound_play_event(sound_row_sel); | |
3500 | 1353 |
3366 | 1354 sound_options = tmp_sound; |
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1355 } |
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1356 |
3366 | 1357 static void reset_sound(GtkWidget *button, gpointer i_am_also_NULL) |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1358 { |
3366 | 1359 /* This just resets a sound file back to default */ |
4561 | 1360 gaim_sound_set_event_file(sound_row_sel, NULL); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1361 |
3366 | 1362 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)"); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1363 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1364 |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1365 void close_sounddialog(GtkWidget *w, GtkWidget *w2) |
1170 | 1366 { |
1367 | |
1368 GtkWidget *dest; | |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1369 |
1170 | 1370 if (!GTK_IS_WIDGET(w2)) |
1371 dest = w; | |
1372 else | |
1373 dest = w2; | |
1374 | |
1375 sounddialog = NULL; | |
1376 | |
1377 gtk_widget_destroy(dest); | |
1378 } | |
1379 | |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1380 void do_select_sound(GtkWidget *w, int snd) |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1381 { |
1953
f0ff0b367e3d
[gaim-migrate @ 1963]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1930
diff
changeset
|
1382 const char *file; |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1383 |
1170 | 1384 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sounddialog)); |
1385 | |
1386 /* If they type in a directory, change there */ | |
1387 if (file_is_dir(file, sounddialog)) | |
1388 return; | |
1389 | |
1390 /* Set it -- and forget it */ | |
4561 | 1391 gaim_sound_set_event_file(snd, file); |
3500 | 1392 |
1175 | 1393 /* Set our text entry */ |
4561 | 1394 gtk_entry_set_text(GTK_ENTRY(sound_entry), file); |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1395 |
1170 | 1396 /* Close the window! It's getting cold in here! */ |
1397 close_sounddialog(NULL, sounddialog); | |
2471
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1398 |
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1399 if (last_sound_dir) |
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1400 g_free(last_sound_dir); |
4793 | 1401 last_sound_dir = g_path_get_dirname(file); |
1170 | 1402 } |
1403 | |
3366 | 1404 static void sel_sound(GtkWidget *button, gpointer being_NULL_is_fun) |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1405 { |
1170 | 1406 char *buf = g_malloc(BUF_LEN); |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1407 |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1408 if (!sounddialog) { |
4703 | 1409 sounddialog = gtk_file_selection_new(_("Sound Selection")); |
1170 | 1410 |
1411 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(sounddialog)); | |
1412 | |
3630 | 1413 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S, last_sound_dir ? last_sound_dir : gaim_home_dir()); |
1170 | 1414 |
1415 gtk_file_selection_set_filename(GTK_FILE_SELECTION(sounddialog), buf); | |
1416 | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1417 g_signal_connect(GTK_OBJECT(sounddialog), "destroy", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1418 G_CALLBACK(close_sounddialog), sounddialog); |
1170 | 1419 |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1420 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(sounddialog)->ok_button), |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1421 "clicked", G_CALLBACK(do_select_sound), (int *)sound_row_sel); |
1170 | 1422 |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1423 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(sounddialog)->cancel_button), |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1424 "clicked", G_CALLBACK(close_sounddialog), sounddialog); |
1170 | 1425 } |
1426 | |
1427 g_free(buf); | |
1428 gtk_widget_show(sounddialog); | |
1429 gdk_window_raise(sounddialog->window); | |
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1430 } |
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1431 |
3366 | 1432 |
1433 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
1434 GtkTreeIter iter; | |
1435 GValue val = { 0, }; | |
4561 | 1436 char *file; |
3500 | 1437 |
3366 | 1438 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
1439 return; | |
1440 gtk_tree_model_get_value (model, &iter, 2, &val); | |
1441 sound_row_sel = g_value_get_uint(&val); | |
4561 | 1442 file = gaim_sound_get_event_file(sound_row_sel); |
3366 | 1443 if (sound_entry) |
4561 | 1444 gtk_entry_set_text(GTK_ENTRY(sound_entry), file ? file : "(default)"); |
3366 | 1445 g_value_unset (&val); |
1446 if (sounddialog) | |
1447 gtk_widget_destroy(sounddialog); | |
1448 } | |
1449 | |
1450 GtkWidget *sound_events_page() { | |
1451 | |
1452 GtkWidget *ret; | |
1453 GtkWidget *sw; | |
1454 GtkWidget *button, *hbox; | |
1455 GtkTreeIter iter; | |
1456 GtkWidget *event_view; | |
1457 GtkListStore *event_store; | |
1458 GtkCellRenderer *rend; | |
1459 GtkTreeViewColumn *col; | |
1460 GtkTreeSelection *sel; | |
1461 GtkTreePath *path; | |
1462 int j; | |
4561 | 1463 char *file; |
3366 | 1464 |
3427 | 1465 ret = gtk_vbox_new(FALSE, 18); |
1466 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
3366 | 1467 |
1468 sw = gtk_scrolled_window_new(NULL,NULL); | |
1469 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
3814 | 1470 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
1471 | |
3427 | 1472 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
3366 | 1473 event_store = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT); |
1474 | |
4561 | 1475 for (j=0; j < GAIM_NUM_SOUNDS; j++) { |
1476 guint opt = gaim_sound_get_event_option(j); | |
1477 if (opt == 0) | |
3366 | 1478 continue; |
3500 | 1479 |
3366 | 1480 gtk_list_store_append (event_store, &iter); |
1481 gtk_list_store_set(event_store, &iter, | |
4561 | 1482 0, sound_options & opt, |
1483 1, gettext(gaim_sound_get_event_label(j)), | |
3366 | 1484 2, j, -1); |
1485 } | |
1486 | |
1487 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); | |
3500 | 1488 |
3366 | 1489 rend = gtk_cell_renderer_toggle_new(); |
1490 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
1491 g_signal_connect (G_OBJECT (sel), "changed", | |
1492 G_CALLBACK (prefs_sound_sel), | |
1493 NULL); | |
1494 g_signal_connect (G_OBJECT(rend), "toggled", | |
1495 G_CALLBACK(event_toggled), event_store); | |
1496 path = gtk_tree_path_new_first(); | |
1497 gtk_tree_selection_select_path(sel, path); | |
3522 | 1498 gtk_tree_path_free(path); |
3500 | 1499 |
4295 | 1500 col = gtk_tree_view_column_new_with_attributes (_("Play"), |
3366 | 1501 rend, |
1502 "active", 0, | |
1503 NULL); | |
1504 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1505 | |
1506 rend = gtk_cell_renderer_text_new(); | |
4295 | 1507 col = gtk_tree_view_column_new_with_attributes (_("Event"), |
3366 | 1508 rend, |
1509 "text", 1, | |
1510 NULL); | |
1511 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
3500 | 1512 g_object_unref(G_OBJECT(event_store)); |
3366 | 1513 gtk_container_add(GTK_CONTAINER(sw), event_view); |
1514 | |
3427 | 1515 hbox = gtk_hbox_new(FALSE, 6); |
1516 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
3366 | 1517 sound_entry = gtk_entry_new(); |
4561 | 1518 file = gaim_sound_get_event_file(0); |
1519 gtk_entry_set_text(GTK_ENTRY(sound_entry), file ? file : "(default)"); | |
4635 | 1520 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE); |
3366 | 1521 gtk_box_pack_start(GTK_BOX(hbox), sound_entry, FALSE, FALSE, 5); |
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1522 |
3025 | 1523 button = gtk_button_new_with_label(_("Test")); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1524 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL); |
3366 | 1525 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); |
2759
f26f1d139615
[gaim-migrate @ 2772]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2746
diff
changeset
|
1526 |
1175 | 1527 button = gtk_button_new_with_label(_("Reset")); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1528 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL); |
3366 | 1529 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); |
1175 | 1530 |
1381 | 1531 button = gtk_button_new_with_label(_("Choose...")); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1532 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(sel_sound), NULL); |
3366 | 1533 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); |
3500 | 1534 |
3427 | 1535 gtk_widget_show_all (ret); |
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1536 |
3366 | 1537 return ret; |
2580
86eaeb064e82
[gaim-migrate @ 2593]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2566
diff
changeset
|
1538 } |
86eaeb064e82
[gaim-migrate @ 2593]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2566
diff
changeset
|
1539 |
3366 | 1540 void away_message_sel(GtkTreeSelection *sel, GtkTreeModel *model) |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1541 { |
3366 | 1542 GtkTreeIter iter; |
1543 GValue val = { 0, }; | |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1544 gchar buffer[BUF_LONG]; |
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1545 char *tmp; |
3374 | 1546 struct away_message *am; |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1547 |
3366 | 1548 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
1549 return; | |
1550 gtk_tree_model_get_value (model, &iter, 1, &val); | |
3374 | 1551 am = g_value_get_pointer(&val); |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1552 gtk_imhtml_clear(GTK_IMHTML(away_text)); |
3374 | 1553 strncpy(buffer, am->message, BUF_LONG); |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1554 tmp = stylize(buffer, BUF_LONG); |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2843
diff
changeset
|
1555 gtk_imhtml_append_text(GTK_IMHTML(away_text), tmp, -1, GTK_IMHTML_NO_TITLE | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
1556 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2843
diff
changeset
|
1557 gtk_imhtml_append_text(GTK_IMHTML(away_text), "<BR>", -1, GTK_IMHTML_NO_TITLE | |
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
1558 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1559 g_free(tmp); |
3366 | 1560 g_value_unset (&val); |
3500 | 1561 |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1562 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1563 |
3500 | 1564 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) { |
3366 | 1565 struct away_message *am; |
1566 GtkTreeIter iter; | |
1567 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv); | |
3379 | 1568 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store); |
3366 | 1569 GValue val = { 0, }; |
3500 | 1570 |
3379 | 1571 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
3366 | 1572 return; |
3379 | 1573 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val); |
3366 | 1574 am = g_value_get_pointer (&val); |
1575 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
1576 rem_away_mess(NULL, am); | |
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1577 } |
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1578 |
3366 | 1579 GtkWidget *away_message_page() { |
1580 GtkWidget *ret; | |
3427 | 1581 GtkWidget *hbox; |
3379 | 1582 GtkWidget *button; |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1583 GtkWidget *sw; |
3366 | 1584 GtkTreeIter iter; |
1585 GtkWidget *event_view; | |
1586 GtkCellRenderer *rend; | |
1587 GtkTreeViewColumn *col; | |
1588 GtkTreeSelection *sel; | |
940 | 1589 GSList *awy = away_messages; |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1590 struct away_message *a; |
3366 | 1591 GtkWidget *sw2; |
3427 | 1592 GtkSizeGroup *sg; |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1593 |
3427 | 1594 ret = gtk_vbox_new(FALSE, 18); |
1595 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
1596 | |
1597 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
3500 | 1598 |
3366 | 1599 sw = gtk_scrolled_window_new(NULL,NULL); |
1600 away_text = gtk_imhtml_new(NULL, NULL); | |
3427 | 1601 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
3817 | 1602 /* |
1603 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
1604 */ | |
3427 | 1605 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
3500 | 1606 |
3374 | 1607 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); |
3366 | 1608 while (awy) { |
1609 a = (struct away_message *)awy->data; | |
1610 gtk_list_store_append (prefs_away_store, &iter); | |
1611 gtk_list_store_set(prefs_away_store, &iter, | |
3374 | 1612 0, a->name, |
1613 1, a, -1); | |
3366 | 1614 awy = awy->next; |
1615 } | |
1616 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(prefs_away_store)); | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1617 |
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1618 |
3366 | 1619 rend = gtk_cell_renderer_text_new(); |
1620 col = gtk_tree_view_column_new_with_attributes ("NULL", | |
1621 rend, | |
1622 "text", 0, | |
1623 NULL); | |
1624 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
1625 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(event_view), FALSE); | |
1626 gtk_widget_show(event_view); | |
3427 | 1627 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), event_view); |
3374 | 1628 |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1629 sw2 = gtk_scrolled_window_new(NULL, NULL); |
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1630 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), |
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1631 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
3427 | 1632 gtk_box_pack_start(GTK_BOX(ret), sw2, TRUE, TRUE, 0); |
3500 | 1633 |
3427 | 1634 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), away_text); |
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1813
diff
changeset
|
1635 gaim_setup_imhtml(away_text); |
3366 | 1636 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); |
1637 g_signal_connect (G_OBJECT (sel), "changed", | |
1638 G_CALLBACK (away_message_sel), | |
1639 NULL); | |
1640 hbox = gtk_hbox_new(TRUE, 5); | |
3427 | 1641 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); |
3366 | 1642 button = gtk_button_new_from_stock (GTK_STOCK_ADD); |
1643 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
3427 | 1644 gtk_size_group_add_widget(sg, button); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1645 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(create_away_mess), NULL); |
3472 | 1646 |
3366 | 1647 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); |
3427 | 1648 gtk_size_group_add_widget(sg, button); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1649 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(remove_away_message), event_view); |
3472 | 1650 |
3366 | 1651 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
3472 | 1652 |
3649 | 1653 button = gaim_pixbuf_button(_("_Edit"), "edit.png", GAIM_BUTTON_HORIZONTAL); |
3427 | 1654 gtk_size_group_add_widget(sg, button); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1655 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(create_away_mess), event_view); |
3366 | 1656 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
3500 | 1657 |
3427 | 1658 gtk_widget_show_all(ret); |
3366 | 1659 return ret; |
1660 } | |
3472 | 1661 |
3500 | 1662 GtkTreeIter *prefs_notebook_add_page(char *text, |
1663 GdkPixbuf *pixbuf, | |
1664 GtkWidget *page, | |
3366 | 1665 GtkTreeIter *iter, |
3500 | 1666 GtkTreeIter *parent, |
3366 | 1667 int ind) { |
1668 GdkPixbuf *icon = NULL; | |
3500 | 1669 |
3366 | 1670 if (pixbuf) |
3500 | 1671 icon = gdk_pixbuf_scale_simple (pixbuf, 18, 18, GDK_INTERP_BILINEAR); |
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1672 |
3366 | 1673 gtk_tree_store_append (prefstree, iter, parent); |
1674 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); | |
3500 | 1675 |
3366 | 1676 if (pixbuf) |
1677 g_object_unref(pixbuf); | |
1678 if (icon) | |
1679 g_object_unref(icon); | |
1680 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
1681 return iter; | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1682 } |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1683 |
3366 | 1684 void prefs_notebook_init() { |
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
1685 GtkTreeIter p, p2, c; |
3565 | 1686 #if USE_PLUGINS |
1687 GtkWidget *(*config)(); | |
1688 GList *l = plugins; | |
1689 struct gaim_plugin *plug; | |
1690 #endif | |
1691 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++); | |
4620 | 1692 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c, &p, notebook_page++); |
3565 | 1693 prefs_notebook_add_page(_("Fonts"), NULL, font_page(), &c, &p, notebook_page++); |
1694 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c, &p, notebook_page++); | |
1695 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c, &p, notebook_page++); | |
1696 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
4488 | 1697 prefs_notebook_add_page(_("Conversations"), NULL, conv_page(), &p2, NULL, notebook_page++); |
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
1698 prefs_notebook_add_page(_("IMs"), NULL, im_page(), &c, &p2, notebook_page++); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
1699 prefs_notebook_add_page(_("Chats"), NULL, chat_page(), &c, &p2, notebook_page++); |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
1700 prefs_notebook_add_page(_("Tabs"), NULL, tab_page(), &c, &p2, notebook_page++); |
3565 | 1701 prefs_notebook_add_page(_("Proxy"), NULL, proxy_page(), &p, NULL, notebook_page++); |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
1702 #ifndef _WIN32 |
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
1703 /* We use the registered default browser in windows */ |
3565 | 1704 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++); |
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
1705 #endif |
3565 | 1706 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); |
1707 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &p, NULL, notebook_page++); | |
1708 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, notebook_page++); | |
1709 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
1710 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, notebook_page++); | |
3551 | 1711 #if USE_PLUGINS |
3565 | 1712 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); |
1713 while (l) { | |
1714 plug = l->data; | |
1715 if (plug->type == plugin && g_module_symbol(plug->handle, "gaim_plugin_config_gtk", (gpointer *)&config)) { | |
1716 plug->iter = g_new0(GtkTreeIter, 1); | |
1717 prefs_notebook_add_page(plug->desc.name, NULL, config(), plug->iter, &plugin_iter, notebook_page++); | |
1718 } | |
1719 l = l->next; | |
1720 } | |
3551 | 1721 #endif |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1722 } |
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1723 |
3500 | 1724 void show_prefs() |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1725 { |
3366 | 1726 GtkWidget *vbox, *vbox2; |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1727 GtkWidget *hbox; |
3366 | 1728 GtkWidget *frame; |
1729 GtkTreeViewColumn *column; | |
1730 GtkCellRenderer *cell; | |
1731 GtkTreeSelection *sel; | |
1732 GtkWidget *notebook; | |
1733 GtkWidget *sep; | |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1734 GtkWidget *button; |
3515 | 1735 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
3500 | 1736 |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1737 if (prefs) { |
3472 | 1738 gtk_window_present(GTK_WINDOW(prefs)); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1739 return; |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1740 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1741 |
3366 | 1742 /* copy the preferences to tmp values... |
1743 * I liked "take affect immediately" Oh well :-( */ | |
3818 | 1744 |
1745 /* Back to instant-apply! I win! BU-HAHAHA! */ | |
3500 | 1746 |
3366 | 1747 /* Create the window */ |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1748 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
4074 | 1749 gtk_window_set_role(GTK_WINDOW(prefs), "preferences"); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1750 gtk_widget_realize(prefs); |
4703 | 1751 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences")); |
4635 | 1752 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1753 g_signal_connect(GTK_OBJECT(prefs), "destroy", G_CALLBACK(delete_prefs), NULL); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1754 |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1755 vbox = gtk_vbox_new(FALSE, 5); |
4635 | 1756 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1757 gtk_container_add(GTK_CONTAINER(prefs), vbox); |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1758 gtk_widget_show(vbox); |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1759 |
3366 | 1760 hbox = gtk_hbox_new (FALSE, 6); |
1761 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
1762 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
1763 gtk_widget_show (hbox); | |
1764 | |
1765 frame = gtk_frame_new (NULL); | |
1766 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
1767 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); | |
1768 gtk_widget_show (frame); | |
3500 | 1769 |
3366 | 1770 /* The tree -- much inspired by the Gimp */ |
1771 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); | |
1772 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); | |
1773 gtk_container_add (GTK_CONTAINER (frame), tree_v); | |
1774 | |
1775 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); | |
1776 gtk_widget_show(tree_v); | |
1777 /* icons */ | |
4892 | 1778 /* XXX: to be used at a later date |
3366 | 1779 cell = gtk_cell_renderer_pixbuf_new (); |
1780 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); | |
4892 | 1781 */ |
3500 | 1782 |
3366 | 1783 /* text */ |
1784 cell = gtk_cell_renderer_text_new (); | |
1785 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); | |
3500 | 1786 |
3366 | 1787 gtk_tree_view_append_column (GTK_TREE_VIEW (tree_v), column); |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1788 |
3472 | 1789 /* The right side */ |
1790 frame = gtk_frame_new (NULL); | |
1791 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
1792 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); | |
1793 gtk_widget_show (frame); | |
3500 | 1794 |
3472 | 1795 vbox2 = gtk_vbox_new (FALSE, 4); |
1796 gtk_container_add (GTK_CONTAINER (frame), vbox2); | |
1797 gtk_widget_show (vbox2); | |
3500 | 1798 |
3472 | 1799 frame = gtk_frame_new (NULL); |
1800 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); | |
1801 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); | |
1802 gtk_widget_show (frame); | |
3500 | 1803 |
3472 | 1804 hbox = gtk_hbox_new (FALSE, 4); |
1805 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | |
1806 gtk_container_add (GTK_CONTAINER (frame), hbox); | |
1807 gtk_widget_show (hbox); | |
3500 | 1808 |
3472 | 1809 preflabel = gtk_label_new(NULL); |
1810 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); | |
1811 gtk_widget_show (preflabel); | |
3500 | 1812 |
3472 | 1813 /* The notebook */ |
1814 prefsnotebook = notebook = gtk_notebook_new (); | |
1815 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | |
1816 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | |
1817 gtk_box_pack_start (GTK_BOX (vbox2), notebook, FALSE, FALSE, 0); | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1818 |
3472 | 1819 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); |
1820 g_signal_connect (G_OBJECT (sel), "changed", | |
1821 G_CALLBACK (pref_nb_select), | |
1822 notebook); | |
3500 | 1823 gtk_widget_show(notebook); |
3472 | 1824 sep = gtk_hseparator_new(); |
1825 gtk_widget_show(sep); | |
1826 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); | |
3500 | 1827 |
3818 | 1828 /* The buttons^H to press! */ |
3472 | 1829 hbox = gtk_hbox_new (FALSE, 6); |
1830 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
1831 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
3500 | 1832 gtk_widget_show (hbox); |
3377 | 1833 |
3818 | 1834 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); |
3515 | 1835 gtk_size_group_add_widget(sg, button); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1836 g_signal_connect_swapped(GTK_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), prefs); |
3515 | 1837 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
1838 gtk_widget_show(button); | |
1839 | |
3500 | 1840 prefs_notebook_init(); |
3427 | 1841 |
3472 | 1842 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); |
1843 gtk_widget_show(prefs); | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1844 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1845 |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1846 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy) |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1847 { |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1848 if (debugbutton) |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1849 gtk_button_clicked(GTK_BUTTON(debugbutton)); |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1850 if (misc_options & OPT_MISC_DEBUG) { |
3818 | 1851 misc_options ^= OPT_MISC_DEBUG; |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1852 } |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1853 g_free(dw); |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1854 dw = NULL; |
4788 | 1855 save_prefs(); |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1856 return FALSE; |
1 | 1857 } |
1858 | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1859 static void build_debug() |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1860 { |
4005 | 1861 GtkWidget *sw; |
1862 GtkTextBuffer *buffer; | |
1863 GtkTextIter end; | |
1864 | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1865 if (!dw) |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1866 dw = g_new0(struct debug_window, 1); |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1867 |
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2676
diff
changeset
|
1868 GAIM_DIALOG(dw->window); |
4005 | 1869 gtk_window_set_default_size(GTK_WINDOW(dw->window), 500, 200); |
1870 gtk_window_set_role(GTK_WINDOW(dw->window), "debug"); | |
4703 | 1871 gtk_window_set_title(GTK_WINDOW(dw->window), _("Debug Window")); |
4005 | 1872 g_signal_connect(G_OBJECT(dw->window), "delete_event", G_CALLBACK(debug_delete), NULL); |
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1873 |
4005 | 1874 sw = gtk_scrolled_window_new(NULL, NULL); |
1875 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
1876 GTK_POLICY_NEVER, | |
1877 GTK_POLICY_ALWAYS); | |
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1878 |
4005 | 1879 dw->entry = gtk_text_view_new(); |
1880 gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(dw->entry), FALSE); | |
1881 gtk_text_view_set_editable(GTK_TEXT_VIEW(dw->entry), FALSE); | |
1882 gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(dw->entry), GTK_WRAP_WORD); | |
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1883 |
4005 | 1884 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(dw->entry)); |
1885 gtk_text_buffer_get_end_iter(buffer, &end); | |
1886 gtk_text_buffer_create_mark(buffer, "end", &end, FALSE); | |
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1887 |
4005 | 1888 gtk_container_add(GTK_CONTAINER(sw), dw->entry); |
1889 gtk_container_add(GTK_CONTAINER(dw->window), sw); | |
1890 gtk_widget_show_all(dw->window); | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1891 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1892 |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1893 void show_debug() |
1 | 1894 { |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1895 if ((misc_options & OPT_MISC_DEBUG)) { |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1896 if (!dw || !dw->window) |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1897 build_debug(); |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1898 gtk_widget_show(dw->window); |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1899 } else { |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1900 if (!dw) |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1901 return; |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1902 gtk_widget_destroy(dw->window); |
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1903 dw->window = NULL; |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1904 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1905 } |
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1906 |
4755 | 1907 void toggle_debug() |
1908 { | |
1909 misc_options ^= OPT_MISC_DEBUG; | |
1910 show_debug(); | |
1911 save_prefs(); | |
1912 } | |
1913 | |
970 | 1914 void debug_printf(char *fmt, ...) |
1915 { | |
1916 va_list ap; | |
1917 gchar *s; | |
1918 | |
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1919 va_start(ap, fmt); |
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1920 s = g_strdup_vprintf(fmt, ap); |
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1921 va_end(ap); |
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1922 |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1923 if (misc_options & OPT_MISC_DEBUG && dw) { |
4005 | 1924 GtkTextBuffer *buffer; |
1925 GtkTextMark *endmark; | |
1926 GtkTextIter end; | |
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1927 |
4005 | 1928 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(dw->entry)); |
1929 endmark = gtk_text_buffer_get_mark(buffer, "end"); | |
1930 gtk_text_buffer_get_iter_at_mark(buffer, &end, endmark); | |
1931 gtk_text_buffer_insert(buffer, &end, s, -1); | |
1932 gtk_text_view_scroll_mark_onscreen(GTK_TEXT_VIEW(dw->entry), endmark); | |
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1933 } |
2823
cd23279122ed
[gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2794
diff
changeset
|
1934 if (opt_debug) |
cd23279122ed
[gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2794
diff
changeset
|
1935 g_print("%s", s); |
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1936 g_free(s); |
970 | 1937 } |
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1938 |
1 | 1939 void set_option(GtkWidget *w, int *option) |
1940 { | |
1941 *option = !(*option); | |
1942 } | |
1943 | |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1944 static void set_misc_option(GtkWidget *w, int option) |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1945 { |
3818 | 1946 misc_options ^= option; |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1947 |
3818 | 1948 if (option == OPT_MISC_DEBUG) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1949 show_debug(); |
4227 | 1950 else if(option == OPT_MISC_USE_SERVER_ALIAS) { |
4687 | 1951 /* XXX blist reset the aliases here */ |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1952 gaim_conversation_foreach(gaim_conversation_autoset_title); |
4227 | 1953 } |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1954 } |
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1955 |
3818 | 1956 static void set_logging_option(GtkWidget *w, int option) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1957 { |
3818 | 1958 logging_options ^= option; |
3500 | 1959 |
3818 | 1960 if (option == OPT_LOG_CONVOS || option == OPT_LOG_CHATS) |
1961 update_log_convs(); | |
3366 | 1962 } |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1963 |
3818 | 1964 static void set_blist_option(GtkWidget *w, int option) |
3366 | 1965 { |
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1966 struct gaim_gtk_buddy_list *gtkblist; |
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1967 |
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1968 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1969 |
3818 | 1970 blist_options ^= option; |
4687 | 1971 |
1972 if (!gtkblist) | |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1973 return; |
4687 | 1974 |
4944 | 1975 if (option == OPT_BLIST_SHOW_WARN || |
4725 | 1976 option == OPT_BLIST_SHOW_IDLETIME) |
1977 gaim_gtk_blist_update_columns(); | |
1978 else if (option == OPT_BLIST_SHOW_ICONS) { | |
4697 | 1979 gaim_gtk_blist_refresh(gaim_get_blist()); |
4725 | 1980 gaim_gtk_blist_update_columns(); |
1981 } else | |
1982 gaim_gtk_blist_refresh(gaim_get_blist()); | |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1983 } |
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1984 |
3818 | 1985 static void set_convo_option(GtkWidget *w, int option) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1986 { |
3818 | 1987 convo_options ^= option; |
3500 | 1988 |
3818 | 1989 if (option == OPT_CONVO_SHOW_SMILEY) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1990 gaim_gtkconv_toggle_smileys(); |
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1991 |
3818 | 1992 if (option == OPT_CONVO_SHOW_TIME) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1993 gaim_gtkconv_toggle_timestamps(); |
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1994 |
3818 | 1995 if (option == OPT_CONVO_CHECK_SPELLING) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1996 gaim_gtkconv_toggle_spellchk(); |
4445 | 1997 |
1998 if (option == OPT_CONVO_NO_X_ON_TAB) | |
1999 gaim_gtkconv_toggle_close_buttons(); | |
3818 | 2000 } |
2001 | |
2002 static void set_im_option(GtkWidget *w, int option) | |
2003 { | |
2004 im_options ^= option; | |
3500 | 2005 |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2006 #if 0 |
3818 | 2007 if (option == OPT_IM_ONE_WINDOW) |
2008 im_tabize(); | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2009 #endif |
3818 | 2010 |
2011 if (option == OPT_IM_HIDE_ICONS) | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2012 gaim_gtkconv_hide_buddy_icons(); |
3818 | 2013 |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2014 if (option == OPT_IM_ALIAS_TAB) |
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2015 gaim_conversation_foreach(gaim_conversation_autoset_title); |
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
2016 |
3818 | 2017 if (option == OPT_IM_NO_ANIMATION) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2018 gaim_gtkconv_set_anim(); |
1 | 2019 } |
2020 | |
3818 | 2021 static void set_chat_option(GtkWidget *w, int option) |
1 | 2022 { |
3818 | 2023 chat_options ^= option; |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2024 |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2025 #if 0 |
3818 | 2026 if (option == OPT_CHAT_ONE_WINDOW) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2027 chat_tabize(); |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2028 #endif |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2029 } |
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2030 |
3818 | 2031 void set_sound_option(GtkWidget *w, int option) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2032 { |
3818 | 2033 sound_options ^= option; |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2034 } |
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2035 |
3818 | 2036 static void set_font_option(GtkWidget *w, int option) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2037 { |
3818 | 2038 font_options ^= option; |
3500 | 2039 |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2040 gaim_gtkconv_update_font_buttons(); |
1 | 2041 } |
2042 | |
3818 | 2043 static void set_away_option(GtkWidget *w, int option) |
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
2044 { |
3818 | 2045 away_options ^= option; |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2046 |
3818 | 2047 if (option == OPT_AWAY_QUEUE) |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2048 toggle_away_queue(); |
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
2049 } |
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
2050 |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2051 GtkWidget *gaim_button(const char *text, guint *options, int option, GtkWidget *page) |
1 | 2052 { |
2053 GtkWidget *button; | |
3427 | 2054 button = gtk_check_button_new_with_mnemonic(text); |
4635 | 2055 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), (*options & option)); |
1 | 2056 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); |
4635 | 2057 g_object_set_data(G_OBJECT(button), "options", options); |
1 | 2058 |
4064 | 2059 if (options == &misc_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2060 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_misc_option), |
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2061 (int *)option); |
4064 | 2062 } else if (options == &logging_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2063 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_logging_option), |
3818 | 2064 (int *)option); |
4064 | 2065 } else if (options == &blist_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2066 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_blist_option), |
3818 | 2067 (int *)option); |
4064 | 2068 } else if (options == &convo_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2069 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_convo_option), |
3818 | 2070 (int *)option); |
4064 | 2071 } else if (options == &im_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2072 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_im_option), |
3818 | 2073 (int *)option); |
4064 | 2074 } else if (options == &chat_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2075 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_chat_option), |
3818 | 2076 (int *)option); |
4064 | 2077 } else if (options == &font_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2078 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_font_option), |
3818 | 2079 (int *)option); |
4064 | 2080 } else if (options == &sound_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2081 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_sound_option), |
3818 | 2082 (int *)option); |
4064 | 2083 } else if (options == &away_options) { |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2084 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(set_away_option), |
4064 | 2085 (int *)option); |
2086 } else { | |
2087 debug_printf("gaim_button: \"%s\" has no signal handler attached to it!\n", text); | |
2088 } | |
1 | 2089 gtk_widget_show(button); |
2090 | |
2091 return button; | |
2092 } | |
2093 | |
3366 | 2094 void default_away_menu_init(GtkWidget *omenu) |
3032 | 2095 { |
3366 | 2096 GtkWidget *menu, *opt; |
2097 int index = 0; | |
2098 GSList *awy = away_messages; | |
2099 struct away_message *a; | |
2100 | |
2101 menu = gtk_menu_new(); | |
2102 | |
2103 while (awy) { | |
2104 a = (struct away_message *)awy->data; | |
2105 opt = gtk_menu_item_new_with_label(a->name); | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2106 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_default_away), |
3366 | 2107 (gpointer)index); |
2108 gtk_widget_show(opt); | |
4635 | 2109 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
3366 | 2110 |
2111 awy = awy->next; | |
2112 index++; | |
2113 } | |
2114 | |
2115 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); | |
2116 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
2117 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), g_slist_index(away_messages, default_away)); | |
2118 } | |
2119 | |
2120 GtkWidget *pref_fg_picture = NULL; | |
2121 GtkWidget *pref_bg_picture = NULL; | |
2122 | |
2123 void destroy_colorsel(GtkWidget *w, gpointer d) | |
2124 { | |
2125 if (d) { | |
2126 gtk_widget_destroy(fgcseld); | |
2127 fgcseld = NULL; | |
2128 } else { | |
2129 gtk_widget_destroy(bgcseld); | |
2130 bgcseld = NULL; | |
2131 } | |
3032 | 2132 } |
2133 | |
3366 | 2134 void apply_color_dlg(GtkWidget *w, gpointer d) |
3032 | 2135 { |
3366 | 2136 if ((int)d == 1) { |
2137 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION | |
3500 | 2138 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), |
3818 | 2139 &fgcolor); |
3366 | 2140 destroy_colorsel(NULL, (void *)1); |
2141 update_color(NULL, pref_fg_picture); | |
2142 } else { | |
2143 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION | |
3500 | 2144 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), |
3818 | 2145 &bgcolor); |
3366 | 2146 destroy_colorsel(NULL, (void *)0); |
2147 update_color(NULL, pref_bg_picture); | |
2148 } | |
4421 | 2149 gaim_conversation_foreach(gaim_gtkconv_update_font_colors); |
3032 | 2150 } |
2151 | |
3366 | 2152 void update_color(GtkWidget *w, GtkWidget *pic) |
1 | 2153 { |
3366 | 2154 GdkColor c; |
2155 GtkStyle *style; | |
2156 c.pixel = 0; | |
3500 | 2157 |
3366 | 2158 if (pic == pref_fg_picture) { |
3818 | 2159 if (font_options & OPT_FONT_FGCOL) { |
2160 c.red = fgcolor.red; | |
2161 c.blue = fgcolor.blue; | |
2162 c.green = fgcolor.green; | |
3366 | 2163 } else { |
2164 c.red = 0; | |
2165 c.blue = 0; | |
2166 c.green = 0; | |
2167 } | |
2168 } else { | |
3818 | 2169 if (font_options & OPT_FONT_BGCOL) { |
2170 c.red = bgcolor.red; | |
2171 c.blue = bgcolor.blue; | |
2172 c.green = bgcolor.green; | |
3366 | 2173 } else { |
2174 c.red = 0xffff; | |
2175 c.blue = 0xffff; | |
2176 c.green = 0xffff; | |
2177 } | |
2178 } | |
2179 | |
2180 style = gtk_style_new(); | |
2181 style->bg[0] = c; | |
2182 gtk_widget_set_style(pic, style); | |
4296 | 2183 g_object_unref(style); |
3366 | 2184 } |
4064 | 2185 |
3366 | 2186 void set_default_away(GtkWidget *w, gpointer i) |
2187 { | |
2188 | |
2189 int length = g_slist_length(away_messages); | |
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
2190 |
3366 | 2191 if (away_messages == NULL) |
3818 | 2192 default_away = NULL; |
3366 | 2193 else if ((int)i >= length) |
3818 | 2194 default_away = g_slist_nth_data(away_messages, length - 1); |
3366 | 2195 else |
3818 | 2196 default_away = g_slist_nth_data(away_messages, (int)i); |
3366 | 2197 } |
3500 | 2198 |
4428 | 2199 static gboolean program_is_valid(const char *program) |
2200 { | |
2201 GError *error = NULL; | |
2202 char **argv; | |
4869 | 2203 gchar *progname; |
4428 | 2204 gboolean is_valid = FALSE; |
2205 | |
2206 if (program == NULL || *program == '\0') { | |
2207 return FALSE; | |
2208 } | |
2209 | |
2210 if (!g_shell_parse_argv(program, NULL, &argv, &error)) { | |
2211 debug_printf("Could not parse program '%s': ", error->message); | |
4800 | 2212 g_error_free(error); |
4428 | 2213 return FALSE; |
2214 } | |
2215 | |
2216 if (argv == NULL) { | |
2217 return FALSE; | |
2218 } | |
2219 | |
4869 | 2220 progname = g_find_program_in_path(argv[0]); |
2221 is_valid = (progname != NULL); | |
4428 | 2222 |
2223 g_strfreev(argv); | |
4869 | 2224 g_free(progname); |
2225 | |
4428 | 2226 return is_valid; |
2227 } | |
2228 | |
3366 | 2229 static void update_spin_value(GtkWidget *w, GtkWidget *spin) |
2230 { | |
4635 | 2231 int *value = g_object_get_data(G_OBJECT(spin), "val"); |
3366 | 2232 *value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); |
2233 } | |
4064 | 2234 |
3427 | 2235 GtkWidget *gaim_labeled_spin_button(GtkWidget *box, const gchar *title, int *val, int min, int max, GtkSizeGroup *sg) |
3366 | 2236 { |
2237 GtkWidget *hbox; | |
2238 GtkWidget *label; | |
2239 GtkWidget *spin; | |
2240 GtkObject *adjust; | |
901
f168f2c7b357
[gaim-migrate @ 911]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
893
diff
changeset
|
2241 |
3366 | 2242 hbox = gtk_hbox_new(FALSE, 5); |
2243 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); | |
2244 gtk_widget_show(hbox); | |
2245 | |
3427 | 2246 label = gtk_label_new_with_mnemonic(title); |
3366 | 2247 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
2248 gtk_widget_show(label); | |
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
2249 |
3366 | 2250 adjust = gtk_adjustment_new(*val, min, max, 1, 1, 1); |
2251 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | |
4635 | 2252 g_object_set_data(G_OBJECT(spin), "val", val); |
2253 gtk_widget_set_size_request(spin, 50, -1); | |
3366 | 2254 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2255 g_signal_connect(GTK_OBJECT(adjust), "value-changed", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2256 G_CALLBACK(update_spin_value), GTK_WIDGET(spin)); |
3366 | 2257 gtk_widget_show(spin); |
3500 | 2258 |
3427 | 2259 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); |
2260 | |
2261 if (sg) { | |
2262 gtk_size_group_add_widget(sg, label); | |
2263 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
3500 | 2264 |
3427 | 2265 } |
2266 return label; | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2267 } |
1 | 2268 |
4635 | 2269 void dropdown_set(GObject *w, int *option) |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2270 { |
4635 | 2271 int opt = GPOINTER_TO_INT(g_object_get_data(w, "value")); |
2272 int clear = GPOINTER_TO_INT(g_object_get_data(w, "clear")); | |
3500 | 2273 |
3366 | 2274 if (clear != -1) { |
2275 *option = *option & ~clear; | |
2276 *option = *option | opt; | |
2277 } else { | |
2278 debug_printf("HELLO %d\n", opt); | |
2279 *option = opt; | |
2280 } | |
3500 | 2281 |
4634 | 2282 if (option == (int*)&global_proxy_info.proxytype) { |
3366 | 2283 if (opt == PROXY_NONE) |
2284 gtk_widget_set_sensitive(prefs_proxy_frame, FALSE); | |
2285 else | |
2286 gtk_widget_set_sensitive(prefs_proxy_frame, TRUE); | |
3818 | 2287 } else if (option == &web_browser) { |
3366 | 2288 if (opt == BROWSER_MANUAL) |
4428 | 2289 gtk_widget_set_sensitive(gtk_widget_get_parent(browser_entry), TRUE); |
3366 | 2290 else |
4428 | 2291 gtk_widget_set_sensitive(gtk_widget_get_parent(browser_entry), FALSE); |
3818 | 2292 } else if (option == (int*)&sound_options) { |
3366 | 2293 if (opt == OPT_SOUND_CMD) |
2294 gtk_widget_set_sensitive(sndcmd, TRUE); | |
2295 else | |
2296 gtk_widget_set_sensitive(sndcmd, FALSE); | |
4581 | 2297 gaim_sound_change_output_method(); |
4944 | 2298 } else if (option == (int*)&blist_options) { |
2299 gaim_gtk_blist_update_toolbar(); | |
3818 | 2300 } else if (option == (int*)&im_options) { |
2301 if (clear == (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB)) | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2302 gaim_gtkconv_update_tabs(); |
3818 | 2303 else if (clear == (OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM)) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2304 gaim_gtkconv_update_im_button_style(); |
3818 | 2305 } else if (option == (int*)&chat_options) { |
2306 if (clear == (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB)) | |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2307 gaim_gtkconv_update_tabs(); |
3818 | 2308 else if (clear == (OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM)) |
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2309 gaim_gtkconv_update_chat_button_style(); |
4687 | 2310 // } else if (option == (int*)&blist_options) { |
2311 // set_blist_tab(); | |
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
2312 } else if (option == (int *)&conv_placement_option) { |
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
2313 gaim_conv_placement_set_active(conv_placement_option); |
3366 | 2314 } |
1 | 2315 } |
2316 | |
3500 | 2317 static GtkWidget *gaim_dropdown(GtkWidget *box, const gchar *title, int *option, int clear, ...) |
1 | 2318 { |
4428 | 2319 va_list ap; |
2320 GList *menuitems = NULL; | |
2321 GtkWidget *dropdown = NULL; | |
2322 char *name; | |
2323 int id; | |
2324 | |
2325 va_start(ap, clear); | |
2326 while ((name = va_arg(ap, char *)) != NULL) { | |
2327 id = va_arg(ap, int); | |
2328 | |
2329 menuitems = g_list_prepend(menuitems, name); | |
2330 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(id)); | |
2331 } | |
2332 va_end(ap); | |
2333 | |
4433 | 2334 g_return_val_if_fail(menuitems != NULL, NULL); |
4428 | 2335 |
2336 menuitems = g_list_reverse(menuitems); | |
2337 | |
2338 dropdown = gaim_dropdown_from_list(box, title, option, clear, menuitems); | |
2339 | |
2340 g_list_free(menuitems); | |
2341 | |
2342 return dropdown; | |
2343 } | |
2344 | |
2345 static GtkWidget *gaim_dropdown_from_list(GtkWidget *box, const gchar *title, int *option, int clear, GList *menuitems) | |
2346 { | |
3366 | 2347 GtkWidget *dropdown, *opt, *menu; |
2348 GtkWidget *label; | |
2349 gchar *text; | |
2350 int value; | |
2351 int o = 0; | |
2352 GtkWidget *hbox; | |
1 | 2353 |
4428 | 2354 g_return_val_if_fail(menuitems != NULL, NULL); |
2355 | |
3366 | 2356 hbox = gtk_hbox_new(FALSE, 5); |
2357 gtk_container_add (GTK_CONTAINER (box), hbox); | |
2358 gtk_widget_show(hbox); | |
2359 | |
3427 | 2360 label = gtk_label_new_with_mnemonic(title); |
3366 | 2361 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
2362 gtk_widget_show(label); | |
2363 | |
2364 dropdown = gtk_option_menu_new(); | |
2365 menu = gtk_menu_new(); | |
3500 | 2366 |
3427 | 2367 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); |
3500 | 2368 |
4428 | 2369 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) { |
2370 menuitems = g_list_next(menuitems); | |
2371 g_return_val_if_fail(menuitems != NULL, NULL); | |
2372 value = GPOINTER_TO_INT(menuitems->data); | |
2373 menuitems = g_list_next(menuitems); | |
2374 | |
3366 | 2375 opt = gtk_menu_item_new_with_label(text); |
4635 | 2376 g_object_set_data(G_OBJECT(opt), "value", GINT_TO_POINTER(value)); |
2377 g_object_set_data(G_OBJECT(opt), "clear", GINT_TO_POINTER(clear)); | |
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2378 g_signal_connect(GTK_OBJECT(opt), "activate", |
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2379 G_CALLBACK(dropdown_set), (void *)option); |
3366 | 2380 gtk_widget_show(opt); |
2381 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
1 | 2382 |
3366 | 2383 if (((clear > -1) && ((*option & value) == value)) || *option == value) { |
2384 gtk_menu_set_active(GTK_MENU(menu), o); | |
2385 } | |
2386 o++; | |
4428 | 2387 |
3366 | 2388 } |
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
2389 |
3500 | 2390 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
3366 | 2391 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); |
2392 gtk_widget_show(dropdown); | |
3427 | 2393 return label; |
3500 | 2394 } |
2395 | |
3366 | 2396 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) |
1 | 2397 { |
3366 | 2398 /* more stuff stolen from X-Chat */ |
2399 GtkWidget *swid; | |
2400 GdkColor c; | |
2401 GtkStyle *style; | |
2402 c.pixel = 0; | |
2403 if (fgc) { | |
3818 | 2404 if (font_options & OPT_FONT_FGCOL) { |
2405 c.red = fgcolor.red; | |
2406 c.blue = fgcolor.blue; | |
2407 c.green = fgcolor.green; | |
3366 | 2408 } else { |
2409 c.red = 0; | |
2410 c.blue = 0; | |
2411 c.green = 0; | |
2412 } | |
2413 } else { | |
3818 | 2414 if (font_options & OPT_FONT_BGCOL) { |
2415 c.red = bgcolor.red; | |
2416 c.blue = bgcolor.blue; | |
2417 c.green = bgcolor.green; | |
3366 | 2418 } else { |
2419 c.red = 0xffff; | |
2420 c.blue = 0xffff; | |
2421 c.green = 0xffff; | |
2422 } | |
2423 } | |
1 | 2424 |
3366 | 2425 style = gtk_style_new(); |
2426 style->bg[0] = c; | |
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2427 |
3366 | 2428 swid = gtk_event_box_new(); |
2429 gtk_widget_set_style(GTK_WIDGET(swid), style); | |
4296 | 2430 g_object_unref(style); |
4635 | 2431 gtk_widget_set_size_request(GTK_WIDGET(swid), 40, -1); |
3366 | 2432 gtk_box_pack_start(GTK_BOX(box), swid, FALSE, FALSE, 5); |
2433 gtk_widget_show(swid); | |
2434 return swid; | |
1 | 2435 } |
4064 | 2436 |
3366 | 2437 void apply_font_dlg(GtkWidget *w, GtkWidget *f) |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2438 { |
3366 | 2439 int i = 0; |
2440 char *fontname; | |
2441 | |
3473 | 2442 fontname = g_strdup(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(f))); |
3366 | 2443 destroy_fontsel(0, 0); |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2444 |
3818 | 2445 while(fontname[i] && !isdigit(fontname[i]) && i < sizeof(fontface)) { |
2446 fontface[i] = fontname[i]; | |
3366 | 2447 i++; |
2448 } | |
4438
2054d8429925
[gaim-migrate @ 4713]
Christian Hammond <chipx86@chipx86.com>
parents:
4433
diff
changeset
|
2449 |
3818 | 2450 fontface[i] = 0; |
3366 | 2451 g_free(fontname); |
4635 | 2452 |
4438
2054d8429925
[gaim-migrate @ 4713]
Christian Hammond <chipx86@chipx86.com>
parents:
4433
diff
changeset
|
2453 gaim_conversation_foreach(gaim_gtkconv_update_font_face); |
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2454 } |
3500 | 2455 |