Mercurial > pidgin
annotate src/prefs.c @ 4985:088566495617
[gaim-migrate @ 5320]
Removed a pair of options ("remember buddy list size and position" and
"ignore new messages when away") and made "Show warning levels" and "show
idle times" depend on "show buddy icons".
Also, brought back the old offline.png status emblem.
committer: Tailor Script <tailor@pidgin.im>
| author | Sean Egan <seanegan@gmail.com> |
|---|---|
| date | Thu, 03 Apr 2003 17:41:08 +0000 |
| parents | 06baf1e9094c |
| children | c54fc48e33b0 |
| 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; | |
| 4985 | 540 GtkWidget *button, *b2; |
| 3427 | 541 ret = gtk_vbox_new(FALSE, 18); |
| 542 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 543 |
| 4956 | 544 vbox = make_frame (ret, _("Buddy List Toolbar")); |
| 4944 | 545 gaim_dropdown(vbox, _("Show _buttons as:"), &blist_options, OPT_BLIST_SHOW_BUTTON_XPM | OPT_BLIST_NO_BUTTON_TEXT, |
| 546 _("Pictures"), OPT_BLIST_SHOW_BUTTON_XPM | OPT_BLIST_NO_BUTTON_TEXT, | |
| 547 _("Text"), 0, | |
| 548 _("Pictures and text"), OPT_BLIST_SHOW_BUTTON_XPM, | |
| 549 _("None"), OPT_BLIST_NO_BUTTON_TEXT, NULL); | |
| 3366 | 550 |
| 3427 | 551 vbox = make_frame (ret, _("Buddy List Window")); |
| 4045 | 552 gaim_button(_("_Raise window on events"), &blist_options, OPT_BLIST_POPUP, vbox); |
| 3366 | 553 |
| 4980 | 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); */ |
| 4980 | 556 gaim_button(_("Show _numbers in groups"), &blist_options, OPT_BLIST_SHOW_GRPNUM, vbox); |
| 3366 | 557 |
| 3427 | 558 vbox = make_frame (ret, _("Buddy Display")); |
| 4985 | 559 button = gaim_button(_("Show buddy _icons"), &blist_options, OPT_BLIST_SHOW_ICONS, vbox); |
| 560 b2 = gaim_button(_("Show _warning levels"), &blist_options, OPT_BLIST_SHOW_WARN, vbox); | |
| 561 if (blist_options & OPT_BLIST_SHOW_ICONS) | |
| 562 gtk_widget_set_sensitive(GTK_WIDGET(b2), FALSE); | |
| 563 g_signal_connect(GTK_OBJECT(button), "clicked", | |
| 564 G_CALLBACK(gaim_gtk_toggle_sensitive), b2); | |
| 565 b2 = gaim_button(_("Show idle _times"), &blist_options, OPT_BLIST_SHOW_IDLETIME, vbox); | |
| 566 if (blist_options & OPT_BLIST_SHOW_ICONS) | |
| 567 gtk_widget_set_sensitive(GTK_WIDGET(b2), FALSE); | |
| 568 g_signal_connect(GTK_OBJECT(button), "clicked", | |
| 569 G_CALLBACK(gaim_gtk_toggle_sensitive), b2); | |
| 4944 | 570 gaim_button(_("Dim i_dle buddies"), &blist_options, OPT_BLIST_GREY_IDLERS, vbox); |
| 3366 | 571 |
| 3427 | 572 gtk_widget_show_all(ret); |
| 3366 | 573 return ret; |
| 574 } | |
| 575 | |
|
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
576 GtkWidget *conv_page() { |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
577 GtkWidget *ret; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
578 GtkWidget *vbox; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
579 GtkWidget *label; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
580 GtkSizeGroup *sg; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
581 GList *names = NULL; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
582 int i; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
583 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
584 ret = gtk_vbox_new(FALSE, 18); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
585 gtk_container_set_border_width(GTK_CONTAINER(ret), 12); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
586 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
587 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
588 vbox = make_frame(ret, _("Conversations")); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
589 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
590 /* Build a list of names. */ |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
591 for (i = 0; i < gaim_conv_placement_get_fnc_count(); i++) { |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
592 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
|
593 names = g_list_append(names, GINT_TO_POINTER(i)); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
594 } |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
595 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
596 label = gaim_dropdown_from_list(vbox, _("_Placement:"), |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
597 &conv_placement_option, -1, names); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
598 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
599 g_list_free(names); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
600 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
601 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
602 gtk_size_group_add_widget(sg, label); |
|
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 gaim_button(_("Show IMs and chats in _same tabbed window."), |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
605 &convo_options, OPT_CONVO_COMBINE, vbox); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
606 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
607 gtk_widget_show_all(ret); |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
608 |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
609 return ret; |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
610 } |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
611 |
| 3366 | 612 GtkWidget *im_page() { |
| 613 GtkWidget *ret; | |
| 3500 | 614 GtkWidget *vbox; |
| 3427 | 615 GtkWidget *typingbutton, *widge; |
| 616 GtkSizeGroup *sg; | |
| 3366 | 617 |
| 3427 | 618 ret = gtk_vbox_new(FALSE, 18); |
| 619 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 620 | |
| 621 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 622 | |
| 623 vbox = make_frame (ret, _("Window")); | |
| 4114 | 624 widge = gaim_dropdown(vbox, _("Show _buttons as:"), &im_options, OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM, |
| 625 _("Pictures"), OPT_IM_BUTTON_XPM, | |
| 626 _("Text"), OPT_IM_BUTTON_TEXT, | |
| 627 _("Pictures and text"), OPT_IM_BUTTON_XPM | OPT_IM_BUTTON_TEXT, NULL); | |
| 3427 | 628 gtk_size_group_add_widget(sg, widge); |
| 629 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0); | |
| 3818 | 630 gaim_labeled_spin_button(vbox, _("New window _width:"), &conv_size.width, 25, 9999, sg); |
| 631 gaim_labeled_spin_button(vbox, _("New window _height:"), &conv_size.height, 25, 9999, sg); | |
| 632 gaim_labeled_spin_button(vbox, _("_Entry widget height:"), &conv_size.entry_height, 25, 9999, sg); | |
| 633 gaim_button(_("_Raise windows on events"), &im_options, OPT_IM_POPUP, vbox); | |
| 634 gaim_button(_("Hide window on _send"), &im_options, OPT_IM_POPDOWN, vbox); | |
| 3366 | 635 gtk_widget_show (vbox); |
| 636 | |
| 3427 | 637 vbox = make_frame (ret, _("Buddy Icons")); |
| 4045 | 638 gaim_button(_("Hide buddy _icons"), &im_options, OPT_IM_HIDE_ICONS, vbox); |
| 639 gaim_button(_("Disable buddy icon a_nimation"), &im_options, OPT_IM_NO_ANIMATION, vbox); | |
| 3366 | 640 |
| 3427 | 641 vbox = make_frame (ret, _("Display")); |
| 3818 | 642 gaim_button(_("Show _logins in window"), &im_options, OPT_IM_LOGON, vbox); |
| 3366 | 643 |
| 3427 | 644 vbox = make_frame (ret, _("Typing Notification")); |
| 3818 | 645 typingbutton = gaim_button(_("Notify buddies that you are _typing to them"), &misc_options, |
| 3366 | 646 OPT_MISC_STEALTH_TYPING, vbox); |
| 647 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(typingbutton), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(typingbutton))); | |
| 3818 | 648 misc_options ^= OPT_MISC_STEALTH_TYPING; |
| 3366 | 649 |
| 3427 | 650 gtk_widget_show_all(ret); |
| 3366 | 651 return ret; |
| 652 } | |
| 653 | |
| 654 GtkWidget *chat_page() { | |
| 655 GtkWidget *ret; | |
| 656 GtkWidget *vbox; | |
| 3427 | 657 GtkWidget *dd; |
| 658 GtkSizeGroup *sg; | |
| 3366 | 659 |
| 3427 | 660 ret = gtk_vbox_new(FALSE, 18); |
| 661 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3500 | 662 |
| 3427 | 663 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); |
| 3366 | 664 |
| 3427 | 665 vbox = make_frame (ret, _("Window")); |
| 4114 | 666 dd = gaim_dropdown(vbox, _("Show _buttons as:"), &chat_options, OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM, |
| 667 _("Pictures"), OPT_CHAT_BUTTON_XPM, | |
| 668 _("Text"), OPT_CHAT_BUTTON_TEXT, | |
| 669 _("Pictures and text"), OPT_CHAT_BUTTON_XPM | OPT_CHAT_BUTTON_TEXT, NULL); | |
| 3427 | 670 gtk_size_group_add_widget(sg, dd); |
| 671 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
| 3818 | 672 gaim_labeled_spin_button(vbox, _("New window _width:"), &buddy_chat_size.width, 25, 9999, sg); |
| 673 gaim_labeled_spin_button(vbox, _("New window _height:"), &buddy_chat_size.height, 25, 9999, sg); | |
| 674 gaim_labeled_spin_button(vbox, _("_Entry widget height:"), &buddy_chat_size.entry_height, 25, 9999, sg); | |
| 675 gaim_button(_("_Raise windows on events"), &chat_options, OPT_CHAT_POPUP, vbox); | |
| 3366 | 676 |
| 3427 | 677 vbox = make_frame (ret, _("Tab Completion")); |
| 4045 | 678 gaim_button(_("_Tab-complete nicks"), &chat_options, OPT_CHAT_TAB_COMPLETE, vbox); |
| 679 gaim_button(_("_Old-style tab completion"), &chat_options, OPT_CHAT_OLD_STYLE_TAB, vbox); | |
| 3427 | 680 |
| 681 vbox = make_frame (ret, _("Display")); | |
| 3818 | 682 gaim_button(_("_Show people joining/leaving in window"), &chat_options, OPT_CHAT_LOGON, vbox); |
| 683 gaim_button(_("Co_lorize screennames"), &chat_options, OPT_CHAT_COLORIZE, vbox); | |
| 3427 | 684 |
| 685 gtk_widget_show_all(ret); | |
| 3366 | 686 return ret; |
| 687 } | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
688 |
| 3366 | 689 GtkWidget *tab_page() { |
| 690 GtkWidget *ret; | |
| 691 GtkWidget *vbox; | |
| 3427 | 692 GtkWidget *dd; |
| 4445 | 693 GtkWidget *button; |
| 3427 | 694 GtkSizeGroup *sg; |
| 695 ret = gtk_vbox_new(FALSE, 18); | |
| 696 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 697 |
| 3427 | 698 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3500 | 699 |
| 3427 | 700 vbox = make_frame (ret, _("IM Tabs")); |
| 4114 | 701 dd = gaim_dropdown(vbox, _("Tab _placement:"), &im_options, OPT_IM_SIDE_TAB | OPT_IM_BR_TAB, |
| 702 _("Top"), 0, | |
| 703 _("Bottom"), OPT_IM_BR_TAB, | |
| 704 _("Left"), OPT_IM_SIDE_TAB, | |
| 705 _("Right"), OPT_IM_BR_TAB | OPT_IM_SIDE_TAB, NULL); | |
| 3427 | 706 gtk_size_group_add_widget(sg, dd); |
| 4045 | 707 gaim_button(_("Show all _instant messages in one tabbed\nwindow"), &im_options, OPT_IM_ONE_WINDOW, vbox); |
| 3818 | 708 gaim_button(_("Show a_liases in tabs/titles"), &im_options, OPT_IM_ALIAS_TAB, vbox); |
| 3366 | 709 |
| 3427 | 710 vbox = make_frame (ret, _("Chat Tabs")); |
| 4114 | 711 dd = gaim_dropdown(vbox, _("Tab _placement:"), &chat_options, OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, |
| 712 _("Top"), 0, | |
| 713 _("Bottom"), OPT_CHAT_BR_TAB, | |
| 714 _("Left"), OPT_CHAT_SIDE_TAB, | |
| 715 _("Right"), OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, NULL); | |
| 3427 | 716 gtk_size_group_add_widget(sg, dd); |
| 3818 | 717 gaim_button(_("Show all c_hats in one tabbed window"), &chat_options, OPT_CHAT_ONE_WINDOW, |
| 3366 | 718 vbox); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
719 |
| 4445 | 720 vbox = make_frame (ret, _("Tab Options")); |
| 721 button = gaim_button(_("Show _close button on tabs."), &convo_options, OPT_CONVO_NO_X_ON_TAB, vbox); | |
| 4449 | 722 convo_options ^= OPT_CONVO_NO_X_ON_TAB; |
| 4445 | 723 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(button), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(button))); |
| 724 | |
| 725 | |
| 3427 | 726 gtk_widget_show_all(ret); |
| 3366 | 727 return ret; |
| 728 } | |
| 729 | |
| 730 GtkWidget *proxy_page() { | |
| 731 GtkWidget *ret; | |
| 732 GtkWidget *vbox; | |
| 733 GtkWidget *entry; | |
| 734 GtkWidget *label; | |
| 735 GtkWidget *hbox; | |
| 736 GtkWidget *table; | |
| 737 | |
| 3427 | 738 ret = gtk_vbox_new(FALSE, 18); |
| 739 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 740 |
| 3427 | 741 vbox = make_frame (ret, _("Proxy Type")); |
| 4634 | 742 gaim_dropdown(vbox, _("Proxy _type:"), (int*)&global_proxy_info.proxytype, -1, |
| 4114 | 743 _("No proxy"), PROXY_NONE, |
| 3366 | 744 "SOCKS 4", PROXY_SOCKS4, |
| 745 "SOCKS 5", PROXY_SOCKS5, | |
| 746 "HTTP", PROXY_HTTP, NULL); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
747 |
| 3427 | 748 vbox = make_frame(ret, _("Proxy Server")); |
| 749 prefs_proxy_frame = vbox; | |
| 2254 | 750 |
| 4634 | 751 if (global_proxy_info.proxytype == PROXY_NONE) |
| 3427 | 752 gtk_widget_set_sensitive(GTK_WIDGET(vbox), FALSE); |
| 2254 | 753 |
| 754 table = gtk_table_new(2, 4, FALSE); | |
| 755 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 756 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 757 gtk_table_set_row_spacings(GTK_TABLE(table), 10); | |
| 3427 | 758 gtk_container_add(GTK_CONTAINER(vbox), table); |
| 2254 | 759 |
| 760 | |
| 3427 | 761 label = gtk_label_new_with_mnemonic(_("_Host")); |
| 2254 | 762 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 763 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
|
764 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
765 entry = gtk_entry_new(); |
| 3427 | 766 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 767 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
|
768 g_signal_connect(GTK_OBJECT(entry), "changed", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
769 G_CALLBACK(proxy_print_option), (void *)PROXYHOST); |
| 4634 | 770 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
|
771 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
772 hbox = gtk_hbox_new(TRUE, 5); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
773 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
774 |
| 3427 | 775 label = gtk_label_new_with_mnemonic(_("Port")); |
| 2254 | 776 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 777 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
|
778 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
779 entry = gtk_entry_new(); |
| 3427 | 780 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 781 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
|
782 g_signal_connect(GTK_OBJECT(entry), "changed", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
783 G_CALLBACK(proxy_print_option), (void *)PROXYPORT); |
| 2254 | 784 |
| 4634 | 785 if (global_proxy_info.proxyport) { |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
786 char buf[128]; |
| 4634 | 787 g_snprintf(buf, sizeof(buf), "%d", global_proxy_info.proxyport); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
788 gtk_entry_set_text(GTK_ENTRY(entry), buf); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
789 } |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
790 |
| 3427 | 791 label = gtk_label_new_with_mnemonic(_("_User")); |
| 2254 | 792 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 793 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
|
794 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
795 entry = gtk_entry_new(); |
| 3427 | 796 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 797 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
|
798 g_signal_connect(GTK_OBJECT(entry), "changed", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
799 G_CALLBACK(proxy_print_option), (void *)PROXYUSER); |
| 4634 | 800 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
|
801 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
802 hbox = gtk_hbox_new(TRUE, 5); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
803 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
804 |
| 3427 | 805 label = gtk_label_new_with_mnemonic(_("Pa_ssword")); |
| 2254 | 806 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 807 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
|
808 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
809 entry = gtk_entry_new(); |
| 3427 | 810 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 811 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
|
812 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
813 g_signal_connect(GTK_OBJECT(entry), "changed", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
814 G_CALLBACK(proxy_print_option), (void *)PROXYPASS); |
| 4634 | 815 gtk_entry_set_text(GTK_ENTRY(entry), global_proxy_info.proxypass); |
| 3500 | 816 |
| 3427 | 817 gtk_widget_show_all(ret); |
| 3366 | 818 return ret; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
819 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
820 |
| 3821 | 821 #ifndef _WIN32 |
| 4978 | 822 static gboolean manual_browser_set(GtkWidget *entry, GdkEventFocus *event, gpointer data) { |
| 823 const char *program = gtk_entry_get_text(GTK_ENTRY(entry)); | |
| 824 | |
| 4428 | 825 if (!program_is_valid(program)) { |
| 826 char *error = g_strdup_printf(_("The entered manual browser " | |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
827 "'%s' is not valid. Hyperlinks will " |
|
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
828 "not work."), program); |
| 4428 | 829 do_error_dialog(error, NULL, GAIM_WARNING); |
| 830 } | |
| 831 | |
| 832 g_strlcpy(web_command, program, sizeof(web_command)); | |
| 4978 | 833 |
| 834 /* carry on normally */ | |
| 835 return FALSE; | |
| 3432 | 836 } |
| 837 | |
| 4428 | 838 static GList *get_available_browsers() |
| 839 { | |
| 840 struct browser { | |
| 841 char *name; | |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
842 char *command; |
| 4428 | 843 int id; |
| 844 }; | |
| 845 | |
| 846 static struct browser possible_browsers[] = { | |
| 847 {N_("Konqueror"), "kfmclient", BROWSER_KONQ}, | |
| 848 {N_("Opera"), "opera", BROWSER_OPERA}, | |
| 849 {N_("Galeon"), "galeon", BROWSER_GALEON}, | |
| 850 {N_("Netscape"), "netscape", BROWSER_NETSCAPE}, | |
| 851 {N_("Mozilla"), "mozilla", BROWSER_MOZILLA}, | |
| 852 }; | |
| 853 static const int num_possible_browsers = 5; | |
| 854 | |
| 855 GList *browsers = NULL; | |
| 856 int i = 0; | |
| 857 | |
| 858 browsers = g_list_prepend(browsers, GINT_TO_POINTER(BROWSER_MANUAL)); | |
| 859 browsers = g_list_prepend(browsers, _("Manual")); | |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
860 for (i = 0; i < num_possible_browsers; i++) { |
| 4428 | 861 if (program_is_valid(possible_browsers[i].command)) { |
| 862 browsers = g_list_prepend(browsers, | |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
863 GINT_TO_POINTER(possible_browsers[i].id)); |
| 4428 | 864 browsers = g_list_prepend(browsers, possible_browsers[i].name); |
| 865 } | |
| 866 } | |
| 867 | |
| 868 return browsers; | |
| 869 } | |
| 870 | |
| 3366 | 871 GtkWidget *browser_page() { |
| 872 GtkWidget *ret; | |
| 3821 | 873 GtkWidget *vbox; |
| 874 GtkWidget *hbox; | |
| 3366 | 875 GtkWidget *label; |
| 3427 | 876 GtkSizeGroup *sg; |
| 4428 | 877 GList *browsers = NULL; |
| 3427 | 878 |
| 879 ret = gtk_vbox_new(FALSE, 18); | |
| 880 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 881 | |
| 882 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 883 vbox = make_frame (ret, _("Browser Selection")); | |
| 4428 | 884 |
| 885 browsers = get_available_browsers(); | |
| 886 if (browsers != NULL) { | |
| 887 label = gaim_dropdown_from_list(vbox,_("_Browser"), &web_browser, -1, | |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
888 browsers); |
|
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
889 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
|
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
890 gtk_size_group_add_widget(sg, label); |
| 4428 | 891 } |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
892 |
| 3366 | 893 hbox = gtk_hbox_new(FALSE, 5); |
| 894 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 4295 | 895 label = gtk_label_new_with_mnemonic(_("_Manual: ")); |
| 3366 | 896 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
| 3427 | 897 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 898 gtk_size_group_add_widget(sg, label); | |
| 4978 | 899 |
| 3366 | 900 browser_entry = gtk_entry_new(); |
| 3427 | 901 gtk_label_set_mnemonic_widget(GTK_LABEL(label), browser_entry); |
| 3818 | 902 if (web_browser != BROWSER_MANUAL) |
| 4428 | 903 gtk_widget_set_sensitive(hbox, FALSE); |
| 3366 | 904 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
|
905 |
| 3818 | 906 gtk_entry_set_text(GTK_ENTRY(browser_entry), web_command); |
| 4978 | 907 g_signal_connect(G_OBJECT(browser_entry), "focus-out-event", G_CALLBACK(manual_browser_set), NULL); |
| 4428 | 908 |
| 909 if (browsers != NULL) { | |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
910 vbox = make_frame (ret, _("Browser Options")); |
|
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
911 label = gaim_button(_("Open new _window by default"), &misc_options, OPT_MISC_BROWSER_POPUP, vbox); |
| 4428 | 912 } |
|
4451
ce5b64fac95d
[gaim-migrate @ 4726]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4449
diff
changeset
|
913 |
| 3427 | 914 gtk_widget_show_all(ret); |
| 3366 | 915 return ret; |
| 3500 | 916 } |
|
4461
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
917 #endif /*_WIN32*/ |
| 3366 | 918 |
| 919 GtkWidget *logging_page() { | |
| 920 GtkWidget *ret; | |
| 921 GtkWidget *vbox; | |
| 3427 | 922 ret = gtk_vbox_new(FALSE, 18); |
| 923 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
924 |
| 3427 | 925 vbox = make_frame (ret, _("Message Logs")); |
| 4045 | 926 gaim_button(_("_Log all instant messages"), &logging_options, OPT_LOG_CONVOS, vbox); |
| 3818 | 927 gaim_button(_("Log all c_hats"), &logging_options, OPT_LOG_CHATS, vbox); |
| 928 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
|
929 |
| 3427 | 930 vbox = make_frame (ret, _("System Logs")); |
| 3818 | 931 gaim_button(_("Log when buddies _sign on/sign off"), &logging_options, OPT_LOG_BUDDY_SIGNON, |
| 3366 | 932 vbox); |
| 3818 | 933 gaim_button(_("Log when buddies become _idle/un-idle"), &logging_options, OPT_LOG_BUDDY_IDLE, |
| 3366 | 934 vbox); |
| 3818 | 935 gaim_button(_("Log when buddies go away/come _back"), &logging_options, OPT_LOG_BUDDY_AWAY, vbox); |
| 936 gaim_button(_("Log your _own signons/idleness/awayness"), &logging_options, OPT_LOG_MY_SIGNON, | |
| 3366 | 937 vbox); |
| 3818 | 938 gaim_button(_("I_ndividual log file for each buddy's signons"), &logging_options, |
| 3366 | 939 OPT_LOG_INDIVIDUAL, vbox); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
940 |
| 3427 | 941 gtk_widget_show_all(ret); |
| 3366 | 942 return ret; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
943 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
944 |
| 3366 | 945 static GtkWidget *sndcmd = NULL; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
946 |
| 3821 | 947 #ifndef _WIN32 |
| 4095 | 948 static gint sound_cmd_yeah(GtkEntry *entry, gpointer d) |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
949 { |
| 4561 | 950 gaim_sound_set_command(gtk_entry_get_text(GTK_ENTRY(sndcmd))); |
| 3366 | 951 return TRUE; |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
952 } |
| 3821 | 953 #endif |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
954 |
| 3366 | 955 GtkWidget *sound_page() { |
| 956 GtkWidget *ret; | |
| 3821 | 957 GtkWidget *vbox; |
| 958 GtkSizeGroup *sg; | |
| 959 #ifndef _WIN32 | |
| 960 GtkWidget *dd; | |
| 961 GtkWidget *hbox; | |
|
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
962 GtkWidget *label; |
| 4561 | 963 char *cmd; |
| 3821 | 964 #endif |
| 3366 | 965 |
| 3427 | 966 ret = gtk_vbox_new(FALSE, 18); |
| 967 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
968 |
| 3427 | 969 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
970 |
| 3427 | 971 vbox = make_frame (ret, _("Sound Options")); |
| 3818 | 972 gaim_button(_("_No sounds when you log in"), &sound_options, OPT_SOUND_SILENT_SIGNON, vbox); |
| 973 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
|
974 |
| 3630 | 975 #ifndef _WIN32 |
| 3427 | 976 vbox = make_frame (ret, _("Sound Method")); |
| 4114 | 977 dd = gaim_dropdown(vbox, _("_Method"), &sound_options, OPT_SOUND_BEEP | |
| 4581 | 978 OPT_SOUND_ESD | OPT_SOUND_ARTS | OPT_SOUND_NAS | |
| 979 OPT_SOUND_NORMAL | OPT_SOUND_CMD, | |
| 4114 | 980 _("Console beep"), OPT_SOUND_BEEP, |
| 4561 | 981 #ifdef USE_AO |
| 982 _("Automatic"), OPT_SOUND_NORMAL, | |
| 4581 | 983 "ESD", OPT_SOUND_ESD, |
| 984 "Arts", OPT_SOUND_ARTS, | |
| 985 #endif | |
| 986 #ifdef USE_NAS_AUDIO | |
| 987 "NAS", OPT_SOUND_NAS, | |
| 4082 | 988 #endif |
| 4114 | 989 _("Command"), OPT_SOUND_CMD, NULL); |
| 3427 | 990 gtk_size_group_add_widget(sg, dd); |
| 991 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
992 |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
993 hbox = gtk_hbox_new(FALSE, 5); |
|
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
994 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); |
| 3427 | 995 |
| 3366 | 996 hbox = gtk_hbox_new(FALSE, 5); |
| 997 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3500 | 998 label = gtk_label_new_with_mnemonic(_("Sound c_ommand\n(%s for filename)")); |
| 3427 | 999 gtk_size_group_add_widget(sg, label); |
| 1000 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3366 | 1001 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
|
1002 |
| 3366 | 1003 sndcmd = gtk_entry_new(); |
| 3427 | 1004 gtk_label_set_mnemonic_widget(GTK_LABEL(label), sndcmd); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1005 |
| 4635 | 1006 gtk_editable_set_editable(GTK_EDITABLE(sndcmd), TRUE); |
| 4561 | 1007 cmd = gaim_sound_get_command(); |
| 1008 if(cmd) | |
| 1009 gtk_entry_set_text(GTK_ENTRY(sndcmd), cmd); | |
| 3366 | 1010 gtk_widget_set_size_request(sndcmd, 75, -1); |
| 3427 | 1011 |
| 3818 | 1012 gtk_widget_set_sensitive(sndcmd, (sound_options & OPT_SOUND_CMD)); |
| 3366 | 1013 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
|
1014 g_signal_connect(GTK_OBJECT(sndcmd), "changed", G_CALLBACK(sound_cmd_yeah), NULL); |
| 3630 | 1015 #endif /* _WIN32 */ |
| 3427 | 1016 gtk_widget_show_all(ret); |
| 3366 | 1017 return ret; |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1018 } |
|
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1019 |
| 3366 | 1020 GtkWidget *away_page() { |
| 1021 GtkWidget *ret; | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1022 GtkWidget *vbox; |
|
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1023 GtkWidget *hbox; |
| 3366 | 1024 GtkWidget *label; |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1025 GtkWidget *button; |
| 3366 | 1026 GtkWidget *select; |
| 3427 | 1027 GtkWidget *dd; |
| 1028 GtkSizeGroup *sg; | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1029 |
| 3427 | 1030 ret = gtk_vbox_new(FALSE, 18); |
| 1031 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
1032 |
| 3427 | 1033 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1034 |
| 3427 | 1035 vbox = make_frame (ret, _("Away")); |
| 3818 | 1036 gaim_button(_("_Sending messages removes away status"), &away_options, OPT_AWAY_BACK_ON_IM, vbox); |
| 1037 gaim_button(_("_Queue new messages when away"), &away_options, OPT_AWAY_QUEUE, vbox); | |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
1038 |
| 3427 | 1039 vbox = make_frame (ret, _("Auto-response")); |
| 3366 | 1040 hbox = gtk_hbox_new(FALSE, 0); |
| 1041 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3427 | 1042 gaim_labeled_spin_button(hbox, _("Seconds before _resending:"), |
| 3818 | 1043 &away_resend, 1, 24 * 60 * 60, sg); |
| 1044 gaim_button(_("_Don't send auto-response"), &away_options, OPT_AWAY_NO_AUTO_RESP, vbox); | |
| 1045 gaim_button(_("_Only send auto-response when idle"), &away_options, OPT_AWAY_IDLE_RESP, vbox); | |
| 1046 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
|
1047 |
| 3818 | 1048 if (away_options & OPT_AWAY_NO_AUTO_RESP) |
| 3366 | 1049 gtk_widget_set_sensitive(hbox, FALSE); |
| 3500 | 1050 |
| 3427 | 1051 vbox = make_frame (ret, _("Idle")); |
| 4052 | 1052 dd = gaim_dropdown(vbox, _("Idle _time reporting:"), &report_idle, -1, |
| 1053 _("None"), IDLE_NONE, | |
| 1054 _("Gaim usage"), IDLE_GAIM, | |
| 3366 | 1055 #ifdef USE_SCREENSAVER |
|
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3902
diff
changeset
|
1056 #ifndef _WIN32 |
| 4052 | 1057 _("X usage"), IDLE_SCREENSAVER, |
|
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3902
diff
changeset
|
1058 #else |
| 4052 | 1059 _("Windows usage"), IDLE_SCREENSAVER, |
|
3905
3e508dd31b76
[gaim-migrate @ 4058]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
3902
diff
changeset
|
1060 #endif |
| 3366 | 1061 #endif |
| 3427 | 1062 NULL); |
| 1063 gtk_size_group_add_widget(sg, dd); | |
| 1064 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
|
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
1065 |
| 3427 | 1066 vbox = make_frame (ret, _("Auto-away")); |
| 3818 | 1067 button = gaim_button(_("Set away _when idle"), &away_options, OPT_AWAY_AUTO, vbox); |
| 4052 | 1068 select = gaim_labeled_spin_button(vbox, _("_Minutes before setting away:"), &auto_away, 1, 24 * 60, sg); |
| 3818 | 1069 if (!(away_options & OPT_AWAY_AUTO)) |
| 3366 | 1070 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1071 g_signal_connect(GTK_OBJECT(button), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1072 G_CALLBACK(gaim_gtk_toggle_sensitive), select); |
| 1 | 1073 |
| 4052 | 1074 label = gtk_label_new_with_mnemonic(_("Away m_essage:")); |
| 3427 | 1075 gtk_size_group_add_widget(sg, label); |
| 1076 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3366 | 1077 hbox = gtk_hbox_new(FALSE, 0); |
| 1078 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 1079 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 1080 prefs_away_menu = gtk_option_menu_new(); | |
| 3427 | 1081 gtk_label_set_mnemonic_widget(GTK_LABEL(label), prefs_away_menu); |
| 3818 | 1082 if (!(away_options & OPT_AWAY_AUTO)) |
| 3366 | 1083 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1084 g_signal_connect(GTK_OBJECT(button), "clicked", |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1085 G_CALLBACK(gaim_gtk_toggle_sensitive), prefs_away_menu); |
| 3366 | 1086 default_away_menu_init(prefs_away_menu); |
| 1087 gtk_widget_show(prefs_away_menu); | |
| 1088 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); | |
| 3500 | 1089 |
| 3427 | 1090 gtk_widget_show_all(ret); |
| 3366 | 1091 return ret; |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1092 } |
|
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1093 |
| 3551 | 1094 #if USE_PLUGINS |
| 1095 GtkWidget *plugin_description=NULL, *plugin_details=NULL; | |
| 1096 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) | |
| 1097 { | |
| 1098 gchar buf[1024]; | |
| 1099 GtkTreeIter iter; | |
| 1100 GValue val = { 0, }; | |
| 1101 struct gaim_plugin *plug; | |
| 1102 | |
| 1103 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
| 1104 return; | |
| 1105 gtk_tree_model_get_value (model, &iter, 2, &val); | |
| 1106 plug = g_value_get_pointer(&val); | |
| 1107 | |
| 3563 | 1108 if (plug->error[0]) |
| 4309 | 1109 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
| 3563 | 1110 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" |
| 4309 | 1111 "%s", plug->desc.name, plug->desc.version, plug->error, plug->desc.description); |
| 3563 | 1112 else |
| 4309 | 1113 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
| 1114 "%s", plug->desc.name, plug->desc.version, plug->desc.description); | |
| 3551 | 1115 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
| 3630 | 1116 g_snprintf(buf, sizeof(buf), |
| 1117 #ifndef _WIN32 | |
| 1118 _("<span size=\"larger\">%s %s</span>\n\n" | |
| 1119 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
| 4617 | 1120 "<span weight=\"bold\">Web site:</span>\t\t%s\n" |
| 3630 | 1121 "<span weight=\"bold\">File name:</span>\t%s"), |
| 1122 #else | |
| 1123 _("<span size=\"larger\">%s %s</span>\n\n" | |
| 1124 "<span weight=\"bold\">Written by:</span> %s\n" | |
| 1125 "<span weight=\"bold\">URL:</span> %s\n" | |
| 1126 "<span weight=\"bold\">File name:</span> %s"), | |
| 1127 #endif | |
| 3551 | 1128 plug->desc.name, plug->desc.version, plug->desc.authors, plug->desc.url, plug->path); |
| 1129 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
| 1130 g_value_unset (&val); | |
| 1131 } | |
| 1132 | |
| 1133 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
| 1134 { | |
| 1135 GtkTreeModel *model = (GtkTreeModel *)data; | |
| 1136 GtkTreeIter iter; | |
| 1137 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
| 1138 struct gaim_plugin *plug; | |
| 1139 gchar buf[1024]; | |
| 3565 | 1140 GtkWidget *(*config)(); |
| 1141 | |
| 3551 | 1142 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
| 1143 gdk_window_set_cursor(prefs->window, wait); | |
| 1144 gdk_cursor_unref(wait); | |
| 1145 | |
| 1146 gtk_tree_model_get_iter (model, &iter, path); | |
| 1147 gtk_tree_model_get (model, &iter, 2, &plug, -1); | |
| 1148 | |
| 1149 if (!plug->handle) | |
| 1150 | |
| 1151 if (plug->type == plugin) | |
| 1152 #ifdef GAIM_PLUGINS | |
| 3565 | 1153 { |
| 1154 load_plugin(plug->path); | |
| 1155 if (g_module_symbol(plug->handle, "gaim_plugin_config_gtk", (gpointer *)&config)) { | |
| 1156 plug->iter = g_new0(GtkTreeIter, 1); | |
| 1157 prefs_notebook_add_page(plug->desc.name, NULL, config(), plug->iter, &plugin_iter, notebook_page++); | |
| 3567 | 1158 if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), &plugin_iter) == 1) { |
| 1159 /* Expand the tree for the first plugin added */ | |
| 3630 | 1160 GtkTreePath *path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), &plugin_iter); |
| 3567 | 1161 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), path2, TRUE); |
| 1162 gtk_tree_path_free (path2); | |
| 1163 } | |
| 3565 | 1164 } |
| 1165 } | |
| 3551 | 1166 #else |
| 1167 {} | |
| 1168 #endif | |
| 1169 else | |
| 1170 #ifdef USE_PERL | |
| 1171 perl_load_file(plug->path); | |
| 1172 #else | |
| 1173 {} | |
| 1174 #endif | |
| 1175 else | |
| 1176 if (plug->type == plugin) | |
| 1177 #ifdef GAIM_PLUGINS | |
| 3565 | 1178 { |
| 1179 unload_plugin(plug); | |
| 1180 if (plug->iter) { | |
| 1181 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), plug->iter); | |
| 1182 g_free(plug->iter); | |
| 1183 plug->iter = NULL; | |
| 1184 } | |
| 1185 } | |
| 3551 | 1186 #else |
| 1187 {} | |
| 1188 #endif | |
| 1189 else | |
| 1190 #ifdef USE_PERL | |
| 1191 perl_unload_file(plug); | |
| 1192 #else | |
| 1193 {} | |
| 1194 #endif | |
| 1195 gdk_window_set_cursor(prefs->window, NULL); | |
| 3563 | 1196 if (plug->error[0]) |
| 4309 | 1197 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
| 3563 | 1198 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" |
| 4309 | 1199 "%s", plug->desc.name, plug->desc.version, plug->error, plug->desc.description); |
| 3563 | 1200 else |
| 4309 | 1201 g_snprintf(buf, sizeof(buf), "<span size=\"larger\">%s %s</span>\n\n" |
| 1202 "%s", plug->desc.name, plug->desc.version, plug->desc.description); | |
| 3563 | 1203 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
| 3551 | 1204 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, plug->handle, -1); |
| 3563 | 1205 |
| 3551 | 1206 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
| 1207 gtk_tree_path_free(path); | |
| 1208 } | |
| 1209 | |
| 1210 static GtkWidget *plugin_page () | |
| 1211 { | |
| 1212 GtkWidget *ret; | |
| 1213 | |
| 1214 GtkWidget *sw, *vp; | |
| 1215 GtkTreeIter iter; | |
| 1216 GtkWidget *event_view; | |
| 1217 GtkListStore *ls; | |
| 1218 GtkCellRenderer *rend, *rendt; | |
| 1219 GtkTreeViewColumn *col; | |
| 1220 GtkTreeSelection *sel; | |
| 1221 GtkTreePath *path; | |
| 1222 | |
| 1223 GtkWidget *nb; | |
| 1224 | |
| 1225 GList *probes = probed_plugins; | |
| 1226 struct gaim_plugin *plug; | |
| 1227 | |
| 1228 ret = gtk_vbox_new(FALSE, 18); | |
| 1229 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 1230 | |
| 1231 sw = gtk_scrolled_window_new(NULL,NULL); | |
| 1232 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | |
| 1233 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
| 1234 | |
| 1235 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
| 1236 | |
| 1237 ls = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); | |
| 1238 while (probes) { | |
| 1239 plug = probes->data; | |
| 1240 gtk_list_store_append (ls, &iter); | |
| 1241 gtk_list_store_set(ls, &iter, | |
| 1242 0, plug->handle, | |
| 1243 1, plug->desc.name ? plug->desc.name : plug->path, | |
| 1244 2, plug, -1); | |
| 1245 probes = probes->next; | |
| 1246 } | |
| 1247 | |
| 1248 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
| 1249 | |
| 1250 rend = gtk_cell_renderer_toggle_new(); | |
| 1251 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
| 1252 | |
| 1253 | |
| 4295 | 1254 col = gtk_tree_view_column_new_with_attributes (_("Load"), |
| 3551 | 1255 rend, |
| 1256 "active", 0, | |
| 1257 NULL); | |
| 1258 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1259 | |
| 1260 rendt = gtk_cell_renderer_text_new(); | |
| 4295 | 1261 col = gtk_tree_view_column_new_with_attributes (_("Name"), |
| 3551 | 1262 rendt, |
| 1263 "text", 1, | |
| 1264 NULL); | |
| 1265 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1266 g_object_unref(G_OBJECT(ls)); | |
| 1267 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
| 1268 | |
| 1269 | |
| 1270 nb = gtk_notebook_new(); | |
| 1271 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM); | |
| 1272 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb)); | |
| 1273 | |
| 1274 /* Description */ | |
| 1275 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1276 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 1277 plugin_description = gtk_label_new(NULL); | |
| 1278 | |
| 1279 vp = gtk_viewport_new(NULL, NULL); | |
| 3630 | 1280 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); |
| 3551 | 1281 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
| 1282 | |
| 3630 | 1283 gtk_container_add(GTK_CONTAINER(vp), plugin_description); |
| 1284 gtk_container_add(GTK_CONTAINER(sw), vp); | |
| 3551 | 1285 |
| 3630 | 1286 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE); |
| 1287 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE); | |
| 3551 | 1288 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0); |
| 1289 gtk_misc_set_padding(GTK_MISC(plugin_description), 6, 6); | |
| 1290 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description"))); | |
| 1291 | |
| 1292 /* Details */ | |
| 1293 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1294 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 1295 plugin_details = gtk_label_new(NULL); | |
| 1296 | |
| 1297 vp = gtk_viewport_new(NULL, NULL); | |
| 3630 | 1298 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); |
| 3551 | 1299 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
| 1300 | |
| 3630 | 1301 gtk_container_add(GTK_CONTAINER(vp), plugin_details); |
| 1302 gtk_container_add(GTK_CONTAINER(sw), vp); | |
| 3551 | 1303 |
| 3630 | 1304 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE); |
| 1305 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE); | |
| 3551 | 1306 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0); |
| 1307 gtk_misc_set_padding(GTK_MISC(plugin_details), 6, 6); | |
| 1308 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details"))); | |
| 1309 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0); | |
| 1310 | |
| 1311 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1312 G_CALLBACK (prefs_plugin_sel), | |
| 1313 NULL); | |
| 1314 g_signal_connect (G_OBJECT(rend), "toggled", | |
| 1315 G_CALLBACK(plugin_load), ls); | |
| 1316 | |
| 1317 path = gtk_tree_path_new_first(); | |
| 1318 gtk_tree_selection_select_path(sel, path); | |
| 1319 gtk_tree_path_free(path); | |
| 1320 | |
| 1321 gtk_widget_show_all(ret); | |
| 1322 return ret; | |
| 1323 } | |
| 1324 #endif | |
| 1325 | |
| 3366 | 1326 static void event_toggled (GtkCellRendererToggle *cell, gchar *pth, gpointer data) |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1327 { |
| 3366 | 1328 GtkTreeModel *model = (GtkTreeModel *)data; |
| 1329 GtkTreeIter iter; | |
| 1330 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
| 3500 | 1331 gint soundnum; |
| 3366 | 1332 |
| 1333 gtk_tree_model_get_iter (model, &iter, path); | |
| 1334 gtk_tree_model_get (model, &iter, 2, &soundnum, -1); | |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1335 |
| 4561 | 1336 sound_options ^= gaim_sound_get_event_option(soundnum); |
| 1337 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, sound_options & gaim_sound_get_event_option(soundnum), -1); | |
| 3522 | 1338 |
| 1339 gtk_tree_path_free(path); | |
| 3366 | 1340 } |
| 1341 | |
| 1342 static void test_sound(GtkWidget *button, gpointer i_am_NULL) | |
| 1343 { | |
| 1344 guint32 tmp_sound = sound_options; | |
| 1345 if (!(sound_options & OPT_SOUND_WHEN_AWAY)) | |
| 1346 sound_options ^= OPT_SOUND_WHEN_AWAY; | |
| 4561 | 1347 if (!(sound_options & gaim_sound_get_event_option(sound_row_sel))) |
| 1348 sound_options ^= gaim_sound_get_event_option(sound_row_sel); | |
| 1349 gaim_sound_play_event(sound_row_sel); | |
| 3500 | 1350 |
| 3366 | 1351 sound_options = tmp_sound; |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1352 } |
|
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1353 |
| 3366 | 1354 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
|
1355 { |
| 3366 | 1356 /* This just resets a sound file back to default */ |
| 4561 | 1357 gaim_sound_set_event_file(sound_row_sel, NULL); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1358 |
| 3366 | 1359 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)"); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1360 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1361 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1362 void close_sounddialog(GtkWidget *w, GtkWidget *w2) |
| 1170 | 1363 { |
| 1364 | |
| 1365 GtkWidget *dest; | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1366 |
| 1170 | 1367 if (!GTK_IS_WIDGET(w2)) |
| 1368 dest = w; | |
| 1369 else | |
| 1370 dest = w2; | |
| 1371 | |
| 1372 sounddialog = NULL; | |
| 1373 | |
| 1374 gtk_widget_destroy(dest); | |
| 1375 } | |
| 1376 | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1377 void do_select_sound(GtkWidget *w, int snd) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1378 { |
|
1953
f0ff0b367e3d
[gaim-migrate @ 1963]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1930
diff
changeset
|
1379 const char *file; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1380 |
| 1170 | 1381 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sounddialog)); |
| 1382 | |
| 1383 /* If they type in a directory, change there */ | |
| 1384 if (file_is_dir(file, sounddialog)) | |
| 1385 return; | |
| 1386 | |
| 1387 /* Set it -- and forget it */ | |
| 4561 | 1388 gaim_sound_set_event_file(snd, file); |
| 3500 | 1389 |
| 1175 | 1390 /* Set our text entry */ |
| 4561 | 1391 gtk_entry_set_text(GTK_ENTRY(sound_entry), file); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1392 |
| 1170 | 1393 /* Close the window! It's getting cold in here! */ |
| 1394 close_sounddialog(NULL, sounddialog); | |
|
2471
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1395 |
|
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1396 if (last_sound_dir) |
|
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1397 g_free(last_sound_dir); |
| 4793 | 1398 last_sound_dir = g_path_get_dirname(file); |
| 1170 | 1399 } |
| 1400 | |
| 3366 | 1401 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
|
1402 { |
| 1170 | 1403 char *buf = g_malloc(BUF_LEN); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1404 |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1405 if (!sounddialog) { |
| 4703 | 1406 sounddialog = gtk_file_selection_new(_("Sound Selection")); |
| 1170 | 1407 |
| 1408 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(sounddialog)); | |
| 1409 | |
| 3630 | 1410 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S, last_sound_dir ? last_sound_dir : gaim_home_dir()); |
| 1170 | 1411 |
| 1412 gtk_file_selection_set_filename(GTK_FILE_SELECTION(sounddialog), buf); | |
| 1413 | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1414 g_signal_connect(GTK_OBJECT(sounddialog), "destroy", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1415 G_CALLBACK(close_sounddialog), sounddialog); |
| 1170 | 1416 |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1417 g_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(sounddialog)->ok_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1418 "clicked", G_CALLBACK(do_select_sound), (int *)sound_row_sel); |
| 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)->cancel_button), |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1421 "clicked", G_CALLBACK(close_sounddialog), sounddialog); |
| 1170 | 1422 } |
| 1423 | |
| 1424 g_free(buf); | |
| 1425 gtk_widget_show(sounddialog); | |
| 1426 gdk_window_raise(sounddialog->window); | |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1427 } |
|
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1428 |
| 3366 | 1429 |
| 1430 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
| 1431 GtkTreeIter iter; | |
| 1432 GValue val = { 0, }; | |
| 4561 | 1433 char *file; |
| 3500 | 1434 |
| 3366 | 1435 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 1436 return; | |
| 1437 gtk_tree_model_get_value (model, &iter, 2, &val); | |
| 1438 sound_row_sel = g_value_get_uint(&val); | |
| 4561 | 1439 file = gaim_sound_get_event_file(sound_row_sel); |
| 3366 | 1440 if (sound_entry) |
| 4561 | 1441 gtk_entry_set_text(GTK_ENTRY(sound_entry), file ? file : "(default)"); |
| 3366 | 1442 g_value_unset (&val); |
| 1443 if (sounddialog) | |
| 1444 gtk_widget_destroy(sounddialog); | |
| 1445 } | |
| 1446 | |
| 1447 GtkWidget *sound_events_page() { | |
| 1448 | |
| 1449 GtkWidget *ret; | |
| 1450 GtkWidget *sw; | |
| 1451 GtkWidget *button, *hbox; | |
| 1452 GtkTreeIter iter; | |
| 1453 GtkWidget *event_view; | |
| 1454 GtkListStore *event_store; | |
| 1455 GtkCellRenderer *rend; | |
| 1456 GtkTreeViewColumn *col; | |
| 1457 GtkTreeSelection *sel; | |
| 1458 GtkTreePath *path; | |
| 1459 int j; | |
| 4561 | 1460 char *file; |
| 3366 | 1461 |
| 3427 | 1462 ret = gtk_vbox_new(FALSE, 18); |
| 1463 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 1464 |
| 1465 sw = gtk_scrolled_window_new(NULL,NULL); | |
| 1466 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 3814 | 1467 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); |
| 1468 | |
| 3427 | 1469 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
| 3366 | 1470 event_store = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT); |
| 1471 | |
| 4561 | 1472 for (j=0; j < GAIM_NUM_SOUNDS; j++) { |
| 1473 guint opt = gaim_sound_get_event_option(j); | |
| 1474 if (opt == 0) | |
| 3366 | 1475 continue; |
| 3500 | 1476 |
| 3366 | 1477 gtk_list_store_append (event_store, &iter); |
| 1478 gtk_list_store_set(event_store, &iter, | |
| 4561 | 1479 0, sound_options & opt, |
| 1480 1, gettext(gaim_sound_get_event_label(j)), | |
| 3366 | 1481 2, j, -1); |
| 1482 } | |
| 1483 | |
| 1484 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); | |
| 3500 | 1485 |
| 3366 | 1486 rend = gtk_cell_renderer_toggle_new(); |
| 1487 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
| 1488 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1489 G_CALLBACK (prefs_sound_sel), | |
| 1490 NULL); | |
| 1491 g_signal_connect (G_OBJECT(rend), "toggled", | |
| 1492 G_CALLBACK(event_toggled), event_store); | |
| 1493 path = gtk_tree_path_new_first(); | |
| 1494 gtk_tree_selection_select_path(sel, path); | |
| 3522 | 1495 gtk_tree_path_free(path); |
| 3500 | 1496 |
| 4295 | 1497 col = gtk_tree_view_column_new_with_attributes (_("Play"), |
| 3366 | 1498 rend, |
| 1499 "active", 0, | |
| 1500 NULL); | |
| 1501 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1502 | |
| 1503 rend = gtk_cell_renderer_text_new(); | |
| 4295 | 1504 col = gtk_tree_view_column_new_with_attributes (_("Event"), |
| 3366 | 1505 rend, |
| 1506 "text", 1, | |
| 1507 NULL); | |
| 1508 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 3500 | 1509 g_object_unref(G_OBJECT(event_store)); |
| 3366 | 1510 gtk_container_add(GTK_CONTAINER(sw), event_view); |
| 1511 | |
| 3427 | 1512 hbox = gtk_hbox_new(FALSE, 6); |
| 1513 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
| 3366 | 1514 sound_entry = gtk_entry_new(); |
| 4561 | 1515 file = gaim_sound_get_event_file(0); |
| 1516 gtk_entry_set_text(GTK_ENTRY(sound_entry), file ? file : "(default)"); | |
| 4635 | 1517 gtk_editable_set_editable(GTK_EDITABLE(sound_entry), FALSE); |
| 3366 | 1518 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
|
1519 |
| 3025 | 1520 button = gtk_button_new_with_label(_("Test")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1521 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(test_sound), NULL); |
| 3366 | 1522 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
|
1523 |
| 1175 | 1524 button = gtk_button_new_with_label(_("Reset")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1525 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(reset_sound), NULL); |
| 3366 | 1526 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); |
| 1175 | 1527 |
| 1381 | 1528 button = gtk_button_new_with_label(_("Choose...")); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1529 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(sel_sound), NULL); |
| 3366 | 1530 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); |
| 3500 | 1531 |
| 3427 | 1532 gtk_widget_show_all (ret); |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1533 |
| 3366 | 1534 return ret; |
|
2580
86eaeb064e82
[gaim-migrate @ 2593]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2566
diff
changeset
|
1535 } |
|
86eaeb064e82
[gaim-migrate @ 2593]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2566
diff
changeset
|
1536 |
| 3366 | 1537 void away_message_sel(GtkTreeSelection *sel, GtkTreeModel *model) |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1538 { |
| 3366 | 1539 GtkTreeIter iter; |
| 1540 GValue val = { 0, }; | |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1541 gchar buffer[BUF_LONG]; |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1542 char *tmp; |
| 3374 | 1543 struct away_message *am; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1544 |
| 3366 | 1545 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 1546 return; | |
| 1547 gtk_tree_model_get_value (model, &iter, 1, &val); | |
| 3374 | 1548 am = g_value_get_pointer(&val); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1549 gtk_imhtml_clear(GTK_IMHTML(away_text)); |
| 3374 | 1550 strncpy(buffer, am->message, BUF_LONG); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1551 tmp = stylize(buffer, BUF_LONG); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2843
diff
changeset
|
1552 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
|
1553 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2843
diff
changeset
|
1554 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
|
1555 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1556 g_free(tmp); |
| 3366 | 1557 g_value_unset (&val); |
| 3500 | 1558 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1559 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1560 |
| 3500 | 1561 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) { |
| 3366 | 1562 struct away_message *am; |
| 1563 GtkTreeIter iter; | |
| 1564 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv); | |
| 3379 | 1565 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store); |
| 3366 | 1566 GValue val = { 0, }; |
| 3500 | 1567 |
| 3379 | 1568 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 3366 | 1569 return; |
| 3379 | 1570 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val); |
| 3366 | 1571 am = g_value_get_pointer (&val); |
| 1572 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
| 1573 rem_away_mess(NULL, am); | |
|
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1574 } |
|
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1575 |
| 3366 | 1576 GtkWidget *away_message_page() { |
| 1577 GtkWidget *ret; | |
| 3427 | 1578 GtkWidget *hbox; |
| 3379 | 1579 GtkWidget *button; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1580 GtkWidget *sw; |
| 3366 | 1581 GtkTreeIter iter; |
| 1582 GtkWidget *event_view; | |
| 1583 GtkCellRenderer *rend; | |
| 1584 GtkTreeViewColumn *col; | |
| 1585 GtkTreeSelection *sel; | |
| 940 | 1586 GSList *awy = away_messages; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1587 struct away_message *a; |
| 3366 | 1588 GtkWidget *sw2; |
| 3427 | 1589 GtkSizeGroup *sg; |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1590 |
| 3427 | 1591 ret = gtk_vbox_new(FALSE, 18); |
| 1592 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 1593 | |
| 1594 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 3500 | 1595 |
| 3366 | 1596 sw = gtk_scrolled_window_new(NULL,NULL); |
| 1597 away_text = gtk_imhtml_new(NULL, NULL); | |
| 3427 | 1598 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 3817 | 1599 /* |
| 1600 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
| 1601 */ | |
| 3427 | 1602 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
| 3500 | 1603 |
| 3374 | 1604 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); |
| 3366 | 1605 while (awy) { |
| 1606 a = (struct away_message *)awy->data; | |
| 1607 gtk_list_store_append (prefs_away_store, &iter); | |
| 1608 gtk_list_store_set(prefs_away_store, &iter, | |
| 3374 | 1609 0, a->name, |
| 1610 1, a, -1); | |
| 3366 | 1611 awy = awy->next; |
| 1612 } | |
| 1613 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
|
1614 |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1615 |
| 3366 | 1616 rend = gtk_cell_renderer_text_new(); |
| 1617 col = gtk_tree_view_column_new_with_attributes ("NULL", | |
| 1618 rend, | |
| 1619 "text", 0, | |
| 1620 NULL); | |
| 1621 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1622 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(event_view), FALSE); | |
| 1623 gtk_widget_show(event_view); | |
| 3427 | 1624 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), event_view); |
| 3374 | 1625 |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1626 sw2 = gtk_scrolled_window_new(NULL, NULL); |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1627 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1628 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 3427 | 1629 gtk_box_pack_start(GTK_BOX(ret), sw2, TRUE, TRUE, 0); |
| 3500 | 1630 |
| 3427 | 1631 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
|
1632 gaim_setup_imhtml(away_text); |
| 3366 | 1633 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); |
| 1634 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1635 G_CALLBACK (away_message_sel), | |
| 1636 NULL); | |
| 1637 hbox = gtk_hbox_new(TRUE, 5); | |
| 3427 | 1638 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); |
| 3366 | 1639 button = gtk_button_new_from_stock (GTK_STOCK_ADD); |
| 1640 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 3427 | 1641 gtk_size_group_add_widget(sg, button); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1642 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(create_away_mess), NULL); |
| 3472 | 1643 |
| 3366 | 1644 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); |
| 3427 | 1645 gtk_size_group_add_widget(sg, button); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1646 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(remove_away_message), event_view); |
| 3472 | 1647 |
| 3366 | 1648 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3472 | 1649 |
| 3649 | 1650 button = gaim_pixbuf_button(_("_Edit"), "edit.png", GAIM_BUTTON_HORIZONTAL); |
| 3427 | 1651 gtk_size_group_add_widget(sg, button); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1652 g_signal_connect(GTK_OBJECT(button), "clicked", G_CALLBACK(create_away_mess), event_view); |
| 3366 | 1653 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3500 | 1654 |
| 3427 | 1655 gtk_widget_show_all(ret); |
| 3366 | 1656 return ret; |
| 1657 } | |
| 3472 | 1658 |
| 3500 | 1659 GtkTreeIter *prefs_notebook_add_page(char *text, |
| 1660 GdkPixbuf *pixbuf, | |
| 1661 GtkWidget *page, | |
| 3366 | 1662 GtkTreeIter *iter, |
| 3500 | 1663 GtkTreeIter *parent, |
| 3366 | 1664 int ind) { |
| 1665 GdkPixbuf *icon = NULL; | |
| 3500 | 1666 |
| 3366 | 1667 if (pixbuf) |
| 3500 | 1668 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
|
1669 |
| 3366 | 1670 gtk_tree_store_append (prefstree, iter, parent); |
| 1671 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); | |
| 3500 | 1672 |
| 3366 | 1673 if (pixbuf) |
| 1674 g_object_unref(pixbuf); | |
| 1675 if (icon) | |
| 1676 g_object_unref(icon); | |
| 1677 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
| 1678 return iter; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1679 } |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1680 |
| 3366 | 1681 void prefs_notebook_init() { |
|
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
1682 GtkTreeIter p, p2, c; |
| 3565 | 1683 #if USE_PLUGINS |
| 1684 GtkWidget *(*config)(); | |
| 1685 GList *l = plugins; | |
| 1686 struct gaim_plugin *plug; | |
| 1687 #endif | |
| 1688 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++); | |
| 4620 | 1689 prefs_notebook_add_page(_("Smiley Themes"), NULL, theme_page(), &c, &p, notebook_page++); |
| 3565 | 1690 prefs_notebook_add_page(_("Fonts"), NULL, font_page(), &c, &p, notebook_page++); |
| 1691 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c, &p, notebook_page++); | |
| 1692 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c, &p, notebook_page++); | |
| 1693 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
| 4488 | 1694 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
|
1695 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
|
1696 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
|
1697 prefs_notebook_add_page(_("Tabs"), NULL, tab_page(), &c, &p2, notebook_page++); |
| 3565 | 1698 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
|
1699 #ifndef _WIN32 |
|
75ff69e592cc
[gaim-migrate @ 4736]
Herman Bloggs <hermanator12002@yahoo.com>
parents:
4451
diff
changeset
|
1700 /* We use the registered default browser in windows */ |
| 3565 | 1701 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
|
1702 #endif |
| 3565 | 1703 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); |
| 1704 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &p, NULL, notebook_page++); | |
| 1705 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, notebook_page++); | |
| 1706 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
| 1707 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, notebook_page++); | |
| 3551 | 1708 #if USE_PLUGINS |
| 3565 | 1709 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); |
| 1710 while (l) { | |
| 1711 plug = l->data; | |
| 1712 if (plug->type == plugin && g_module_symbol(plug->handle, "gaim_plugin_config_gtk", (gpointer *)&config)) { | |
| 1713 plug->iter = g_new0(GtkTreeIter, 1); | |
| 1714 prefs_notebook_add_page(plug->desc.name, NULL, config(), plug->iter, &plugin_iter, notebook_page++); | |
| 1715 } | |
| 1716 l = l->next; | |
| 1717 } | |
| 3551 | 1718 #endif |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1719 } |
|
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1720 |
| 3500 | 1721 void show_prefs() |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1722 { |
| 3366 | 1723 GtkWidget *vbox, *vbox2; |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1724 GtkWidget *hbox; |
| 3366 | 1725 GtkWidget *frame; |
| 1726 GtkTreeViewColumn *column; | |
| 1727 GtkCellRenderer *cell; | |
| 1728 GtkTreeSelection *sel; | |
| 1729 GtkWidget *notebook; | |
| 1730 GtkWidget *sep; | |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1731 GtkWidget *button; |
| 3515 | 1732 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
| 3500 | 1733 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1734 if (prefs) { |
| 3472 | 1735 gtk_window_present(GTK_WINDOW(prefs)); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1736 return; |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1737 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1738 |
| 3366 | 1739 /* copy the preferences to tmp values... |
| 1740 * I liked "take affect immediately" Oh well :-( */ | |
| 3818 | 1741 |
| 1742 /* Back to instant-apply! I win! BU-HAHAHA! */ | |
| 3500 | 1743 |
| 3366 | 1744 /* Create the window */ |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1745 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 4074 | 1746 gtk_window_set_role(GTK_WINDOW(prefs), "preferences"); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1747 gtk_widget_realize(prefs); |
| 4703 | 1748 gtk_window_set_title(GTK_WINDOW(prefs), _("Preferences")); |
| 4635 | 1749 gtk_window_set_resizable (GTK_WINDOW(prefs), FALSE); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1750 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
|
1751 |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1752 vbox = gtk_vbox_new(FALSE, 5); |
| 4635 | 1753 gtk_container_set_border_width(GTK_CONTAINER(vbox), 5); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1754 gtk_container_add(GTK_CONTAINER(prefs), vbox); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1755 gtk_widget_show(vbox); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1756 |
| 3366 | 1757 hbox = gtk_hbox_new (FALSE, 6); |
| 1758 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
| 1759 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
| 1760 gtk_widget_show (hbox); | |
| 1761 | |
| 1762 frame = gtk_frame_new (NULL); | |
| 1763 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
| 1764 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); | |
| 1765 gtk_widget_show (frame); | |
| 3500 | 1766 |
| 3366 | 1767 /* The tree -- much inspired by the Gimp */ |
| 1768 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); | |
| 1769 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); | |
| 1770 gtk_container_add (GTK_CONTAINER (frame), tree_v); | |
| 1771 | |
| 1772 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); | |
| 1773 gtk_widget_show(tree_v); | |
| 1774 /* icons */ | |
| 4892 | 1775 /* XXX: to be used at a later date |
| 3366 | 1776 cell = gtk_cell_renderer_pixbuf_new (); |
| 1777 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); | |
| 4892 | 1778 */ |
| 3500 | 1779 |
| 3366 | 1780 /* text */ |
| 1781 cell = gtk_cell_renderer_text_new (); | |
| 1782 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); | |
| 3500 | 1783 |
| 3366 | 1784 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
|
1785 |
| 3472 | 1786 /* The right side */ |
| 1787 frame = gtk_frame_new (NULL); | |
| 1788 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
| 1789 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); | |
| 1790 gtk_widget_show (frame); | |
| 3500 | 1791 |
| 3472 | 1792 vbox2 = gtk_vbox_new (FALSE, 4); |
| 1793 gtk_container_add (GTK_CONTAINER (frame), vbox2); | |
| 1794 gtk_widget_show (vbox2); | |
| 3500 | 1795 |
| 3472 | 1796 frame = gtk_frame_new (NULL); |
| 1797 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); | |
| 1798 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); | |
| 1799 gtk_widget_show (frame); | |
| 3500 | 1800 |
| 3472 | 1801 hbox = gtk_hbox_new (FALSE, 4); |
| 1802 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | |
| 1803 gtk_container_add (GTK_CONTAINER (frame), hbox); | |
| 1804 gtk_widget_show (hbox); | |
| 3500 | 1805 |
| 3472 | 1806 preflabel = gtk_label_new(NULL); |
| 1807 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); | |
| 1808 gtk_widget_show (preflabel); | |
| 3500 | 1809 |
| 3472 | 1810 /* The notebook */ |
| 1811 prefsnotebook = notebook = gtk_notebook_new (); | |
| 1812 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | |
| 1813 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | |
| 1814 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
|
1815 |
| 3472 | 1816 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); |
| 1817 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1818 G_CALLBACK (pref_nb_select), | |
| 1819 notebook); | |
| 3500 | 1820 gtk_widget_show(notebook); |
| 3472 | 1821 sep = gtk_hseparator_new(); |
| 1822 gtk_widget_show(sep); | |
| 1823 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); | |
| 3500 | 1824 |
| 3818 | 1825 /* The buttons^H to press! */ |
| 3472 | 1826 hbox = gtk_hbox_new (FALSE, 6); |
| 1827 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
| 1828 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
| 3500 | 1829 gtk_widget_show (hbox); |
| 3377 | 1830 |
| 3818 | 1831 button = gtk_button_new_from_stock (GTK_STOCK_CLOSE); |
| 3515 | 1832 gtk_size_group_add_widget(sg, button); |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
1833 g_signal_connect_swapped(GTK_OBJECT(button), "clicked", G_CALLBACK(gtk_widget_destroy), prefs); |
| 3515 | 1834 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 1835 gtk_widget_show(button); | |
| 1836 | |
| 3500 | 1837 prefs_notebook_init(); |
| 3427 | 1838 |
| 3472 | 1839 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); |
| 1840 gtk_widget_show(prefs); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1841 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1842 |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1843 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy) |
|
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 if (debugbutton) |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1846 gtk_button_clicked(GTK_BUTTON(debugbutton)); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1847 if (misc_options & OPT_MISC_DEBUG) { |
| 3818 | 1848 misc_options ^= OPT_MISC_DEBUG; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1849 } |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1850 g_free(dw); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1851 dw = NULL; |
| 4788 | 1852 save_prefs(); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1853 return FALSE; |
| 1 | 1854 } |
| 1855 | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1856 static void build_debug() |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1857 { |
| 4005 | 1858 GtkWidget *sw; |
| 1859 GtkTextBuffer *buffer; | |
| 1860 GtkTextIter end; | |
| 1861 | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1862 if (!dw) |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1863 dw = g_new0(struct debug_window, 1); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1864 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2676
diff
changeset
|
1865 GAIM_DIALOG(dw->window); |
| 4005 | 1866 gtk_window_set_default_size(GTK_WINDOW(dw->window), 500, 200); |
| 1867 gtk_window_set_role(GTK_WINDOW(dw->window), "debug"); | |
| 4703 | 1868 gtk_window_set_title(GTK_WINDOW(dw->window), _("Debug Window")); |
| 4005 | 1869 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
|
1870 |
| 4005 | 1871 sw = gtk_scrolled_window_new(NULL, NULL); |
| 1872 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
| 1873 GTK_POLICY_NEVER, | |
| 1874 GTK_POLICY_ALWAYS); | |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1875 |
| 4005 | 1876 dw->entry = gtk_text_view_new(); |
| 1877 gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(dw->entry), FALSE); | |
| 1878 gtk_text_view_set_editable(GTK_TEXT_VIEW(dw->entry), FALSE); | |
| 1879 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
|
1880 |
| 4005 | 1881 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(dw->entry)); |
| 1882 gtk_text_buffer_get_end_iter(buffer, &end); | |
| 1883 gtk_text_buffer_create_mark(buffer, "end", &end, FALSE); | |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1884 |
| 4005 | 1885 gtk_container_add(GTK_CONTAINER(sw), dw->entry); |
| 1886 gtk_container_add(GTK_CONTAINER(dw->window), sw); | |
| 1887 gtk_widget_show_all(dw->window); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1888 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1889 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1890 void show_debug() |
| 1 | 1891 { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1892 if ((misc_options & OPT_MISC_DEBUG)) { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1893 if (!dw || !dw->window) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1894 build_debug(); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1895 gtk_widget_show(dw->window); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1896 } else { |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1897 if (!dw) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1898 return; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1899 gtk_widget_destroy(dw->window); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1900 dw->window = NULL; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1901 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1902 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1903 |
| 4755 | 1904 void toggle_debug() |
| 1905 { | |
| 1906 misc_options ^= OPT_MISC_DEBUG; | |
| 1907 show_debug(); | |
| 1908 save_prefs(); | |
| 1909 } | |
| 1910 | |
| 970 | 1911 void debug_printf(char *fmt, ...) |
| 1912 { | |
| 1913 va_list ap; | |
| 1914 gchar *s; | |
| 1915 | |
|
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1916 va_start(ap, fmt); |
|
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1917 s = g_strdup_vprintf(fmt, ap); |
|
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1918 va_end(ap); |
|
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1919 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1920 if (misc_options & OPT_MISC_DEBUG && dw) { |
| 4005 | 1921 GtkTextBuffer *buffer; |
| 1922 GtkTextMark *endmark; | |
| 1923 GtkTextIter end; | |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1924 |
| 4005 | 1925 buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(dw->entry)); |
| 1926 endmark = gtk_text_buffer_get_mark(buffer, "end"); | |
| 1927 gtk_text_buffer_get_iter_at_mark(buffer, &end, endmark); | |
| 1928 gtk_text_buffer_insert(buffer, &end, s, -1); | |
| 1929 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
|
1930 } |
|
2823
cd23279122ed
[gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2794
diff
changeset
|
1931 if (opt_debug) |
|
cd23279122ed
[gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2794
diff
changeset
|
1932 g_print("%s", s); |
|
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1933 g_free(s); |
| 970 | 1934 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1935 |
| 1 | 1936 void set_option(GtkWidget *w, int *option) |
| 1937 { | |
| 1938 *option = !(*option); | |
| 1939 } | |
| 1940 | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1941 static void set_misc_option(GtkWidget *w, int option) |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1942 { |
| 3818 | 1943 misc_options ^= option; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1944 |
| 3818 | 1945 if (option == OPT_MISC_DEBUG) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1946 show_debug(); |
| 4227 | 1947 else if(option == OPT_MISC_USE_SERVER_ALIAS) { |
| 4687 | 1948 /* XXX blist reset the aliases here */ |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1949 gaim_conversation_foreach(gaim_conversation_autoset_title); |
| 4227 | 1950 } |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1951 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1952 |
| 3818 | 1953 static void set_logging_option(GtkWidget *w, int option) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1954 { |
| 3818 | 1955 logging_options ^= option; |
| 3500 | 1956 |
| 3818 | 1957 if (option == OPT_LOG_CONVOS || option == OPT_LOG_CHATS) |
| 1958 update_log_convs(); | |
| 3366 | 1959 } |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1960 |
| 3818 | 1961 static void set_blist_option(GtkWidget *w, int option) |
| 3366 | 1962 { |
|
4695
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1963 struct gaim_gtk_buddy_list *gtkblist; |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1964 |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1965 gtkblist = GAIM_GTK_BLIST(gaim_get_blist()); |
|
4bdd9a5fd026
[gaim-migrate @ 5006]
Christian Hammond <chipx86@chipx86.com>
parents:
4687
diff
changeset
|
1966 |
| 3818 | 1967 blist_options ^= option; |
| 4687 | 1968 |
| 1969 if (!gtkblist) | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1970 return; |
| 4687 | 1971 |
| 4944 | 1972 if (option == OPT_BLIST_SHOW_WARN || |
| 4725 | 1973 option == OPT_BLIST_SHOW_IDLETIME) |
| 1974 gaim_gtk_blist_update_columns(); | |
| 1975 else if (option == OPT_BLIST_SHOW_ICONS) { | |
| 4697 | 1976 gaim_gtk_blist_refresh(gaim_get_blist()); |
| 4725 | 1977 gaim_gtk_blist_update_columns(); |
| 1978 } else | |
| 1979 gaim_gtk_blist_refresh(gaim_get_blist()); | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1980 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1981 |
| 3818 | 1982 static void set_convo_option(GtkWidget *w, int option) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1983 { |
| 3818 | 1984 convo_options ^= option; |
| 3500 | 1985 |
| 3818 | 1986 if (option == OPT_CONVO_SHOW_SMILEY) |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1987 gaim_gtkconv_toggle_smileys(); |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1988 |
| 3818 | 1989 if (option == OPT_CONVO_SHOW_TIME) |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1990 gaim_gtkconv_toggle_timestamps(); |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1991 |
| 3818 | 1992 if (option == OPT_CONVO_CHECK_SPELLING) |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
1993 gaim_gtkconv_toggle_spellchk(); |
| 4445 | 1994 |
| 1995 if (option == OPT_CONVO_NO_X_ON_TAB) | |
| 1996 gaim_gtkconv_toggle_close_buttons(); | |
| 3818 | 1997 } |
| 1998 | |
| 1999 static void set_im_option(GtkWidget *w, int option) | |
| 2000 { | |
| 2001 im_options ^= option; | |
| 3500 | 2002 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2003 #if 0 |
| 3818 | 2004 if (option == OPT_IM_ONE_WINDOW) |
| 2005 im_tabize(); | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2006 #endif |
| 3818 | 2007 |
| 2008 if (option == OPT_IM_HIDE_ICONS) | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2009 gaim_gtkconv_hide_buddy_icons(); |
| 3818 | 2010 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2011 if (option == OPT_IM_ALIAS_TAB) |
|
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2012 gaim_conversation_foreach(gaim_conversation_autoset_title); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
2013 |
| 3818 | 2014 if (option == OPT_IM_NO_ANIMATION) |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2015 gaim_gtkconv_set_anim(); |
| 1 | 2016 } |
| 2017 | |
| 3818 | 2018 static void set_chat_option(GtkWidget *w, int option) |
| 1 | 2019 { |
| 3818 | 2020 chat_options ^= option; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2021 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2022 #if 0 |
| 3818 | 2023 if (option == OPT_CHAT_ONE_WINDOW) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2024 chat_tabize(); |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2025 #endif |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2026 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2027 |
| 3818 | 2028 void set_sound_option(GtkWidget *w, int option) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2029 { |
| 3818 | 2030 sound_options ^= option; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2031 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2032 |
| 3818 | 2033 static void set_font_option(GtkWidget *w, int option) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2034 { |
| 3818 | 2035 font_options ^= option; |
| 3500 | 2036 |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2037 gaim_gtkconv_update_font_buttons(); |
| 1 | 2038 } |
| 2039 | |
| 3818 | 2040 static void set_away_option(GtkWidget *w, int option) |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
2041 { |
| 3818 | 2042 away_options ^= option; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2043 |
| 3818 | 2044 if (option == OPT_AWAY_QUEUE) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2045 toggle_away_queue(); |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
2046 } |
|
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
2047 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
2048 GtkWidget *gaim_button(const char *text, guint *options, int option, GtkWidget *page) |
| 1 | 2049 { |
| 2050 GtkWidget *button; | |
| 3427 | 2051 button = gtk_check_button_new_with_mnemonic(text); |
| 4635 | 2052 gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(button), (*options & option)); |
| 1 | 2053 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); |
| 4635 | 2054 g_object_set_data(G_OBJECT(button), "options", options); |
| 1 | 2055 |
| 4064 | 2056 if (options == &misc_options) { |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2057 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
|
2058 (int *)option); |
| 4064 | 2059 } else if (options == &logging_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_logging_option), |
| 3818 | 2061 (int *)option); |
| 4064 | 2062 } else if (options == &blist_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_blist_option), |
| 3818 | 2064 (int *)option); |
| 4064 | 2065 } else if (options == &convo_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_convo_option), |
| 3818 | 2067 (int *)option); |
| 4064 | 2068 } else if (options == &im_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_im_option), |
| 3818 | 2070 (int *)option); |
| 4064 | 2071 } else if (options == &chat_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_chat_option), |
| 3818 | 2073 (int *)option); |
| 4064 | 2074 } else if (options == &font_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_font_option), |
| 3818 | 2076 (int *)option); |
| 4064 | 2077 } else if (options == &sound_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_sound_option), |
| 3818 | 2079 (int *)option); |
| 4064 | 2080 } else if (options == &away_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_away_option), |
| 4064 | 2082 (int *)option); |
| 2083 } else { | |
| 2084 debug_printf("gaim_button: \"%s\" has no signal handler attached to it!\n", text); | |
| 2085 } | |
| 1 | 2086 gtk_widget_show(button); |
| 2087 | |
| 2088 return button; | |
| 2089 } | |
| 2090 | |
| 3366 | 2091 void default_away_menu_init(GtkWidget *omenu) |
| 3032 | 2092 { |
| 3366 | 2093 GtkWidget *menu, *opt; |
| 2094 int index = 0; | |
| 2095 GSList *awy = away_messages; | |
| 2096 struct away_message *a; | |
| 2097 | |
| 2098 menu = gtk_menu_new(); | |
| 2099 | |
| 2100 while (awy) { | |
| 2101 a = (struct away_message *)awy->data; | |
| 2102 opt = gtk_menu_item_new_with_label(a->name); | |
|
4162
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2103 g_signal_connect(GTK_OBJECT(opt), "activate", G_CALLBACK(set_default_away), |
| 3366 | 2104 (gpointer)index); |
| 2105 gtk_widget_show(opt); | |
| 4635 | 2106 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); |
| 3366 | 2107 |
| 2108 awy = awy->next; | |
| 2109 index++; | |
| 2110 } | |
| 2111 | |
| 2112 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); | |
| 2113 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
| 2114 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), g_slist_index(away_messages, default_away)); | |
| 2115 } | |
| 2116 | |
| 2117 GtkWidget *pref_fg_picture = NULL; | |
| 2118 GtkWidget *pref_bg_picture = NULL; | |
| 2119 | |
| 2120 void destroy_colorsel(GtkWidget *w, gpointer d) | |
| 2121 { | |
| 2122 if (d) { | |
| 2123 gtk_widget_destroy(fgcseld); | |
| 2124 fgcseld = NULL; | |
| 2125 } else { | |
| 2126 gtk_widget_destroy(bgcseld); | |
| 2127 bgcseld = NULL; | |
| 2128 } | |
| 3032 | 2129 } |
| 2130 | |
| 3366 | 2131 void apply_color_dlg(GtkWidget *w, gpointer d) |
| 3032 | 2132 { |
| 3366 | 2133 if ((int)d == 1) { |
| 2134 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION | |
| 3500 | 2135 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), |
| 3818 | 2136 &fgcolor); |
| 3366 | 2137 destroy_colorsel(NULL, (void *)1); |
| 2138 update_color(NULL, pref_fg_picture); | |
| 2139 } else { | |
| 2140 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION | |
| 3500 | 2141 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), |
| 3818 | 2142 &bgcolor); |
| 3366 | 2143 destroy_colorsel(NULL, (void *)0); |
| 2144 update_color(NULL, pref_bg_picture); | |
| 2145 } | |
| 4421 | 2146 gaim_conversation_foreach(gaim_gtkconv_update_font_colors); |
| 3032 | 2147 } |
| 2148 | |
| 3366 | 2149 void update_color(GtkWidget *w, GtkWidget *pic) |
| 1 | 2150 { |
| 3366 | 2151 GdkColor c; |
| 2152 GtkStyle *style; | |
| 2153 c.pixel = 0; | |
| 3500 | 2154 |
| 3366 | 2155 if (pic == pref_fg_picture) { |
| 3818 | 2156 if (font_options & OPT_FONT_FGCOL) { |
| 2157 c.red = fgcolor.red; | |
| 2158 c.blue = fgcolor.blue; | |
| 2159 c.green = fgcolor.green; | |
| 3366 | 2160 } else { |
| 2161 c.red = 0; | |
| 2162 c.blue = 0; | |
| 2163 c.green = 0; | |
| 2164 } | |
| 2165 } else { | |
| 3818 | 2166 if (font_options & OPT_FONT_BGCOL) { |
| 2167 c.red = bgcolor.red; | |
| 2168 c.blue = bgcolor.blue; | |
| 2169 c.green = bgcolor.green; | |
| 3366 | 2170 } else { |
| 2171 c.red = 0xffff; | |
| 2172 c.blue = 0xffff; | |
| 2173 c.green = 0xffff; | |
| 2174 } | |
| 2175 } | |
| 2176 | |
| 2177 style = gtk_style_new(); | |
| 2178 style->bg[0] = c; | |
| 2179 gtk_widget_set_style(pic, style); | |
| 4296 | 2180 g_object_unref(style); |
| 3366 | 2181 } |
| 4064 | 2182 |
| 3366 | 2183 void set_default_away(GtkWidget *w, gpointer i) |
| 2184 { | |
| 2185 | |
| 2186 int length = g_slist_length(away_messages); | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
2187 |
| 3366 | 2188 if (away_messages == NULL) |
| 3818 | 2189 default_away = NULL; |
| 3366 | 2190 else if ((int)i >= length) |
| 3818 | 2191 default_away = g_slist_nth_data(away_messages, length - 1); |
| 3366 | 2192 else |
| 3818 | 2193 default_away = g_slist_nth_data(away_messages, (int)i); |
| 3366 | 2194 } |
| 3500 | 2195 |
| 4428 | 2196 static gboolean program_is_valid(const char *program) |
| 2197 { | |
| 2198 GError *error = NULL; | |
| 2199 char **argv; | |
| 4869 | 2200 gchar *progname; |
| 4428 | 2201 gboolean is_valid = FALSE; |
| 2202 | |
| 2203 if (program == NULL || *program == '\0') { | |
| 2204 return FALSE; | |
| 2205 } | |
| 2206 | |
| 2207 if (!g_shell_parse_argv(program, NULL, &argv, &error)) { | |
| 2208 debug_printf("Could not parse program '%s': ", error->message); | |
| 4800 | 2209 g_error_free(error); |
| 4428 | 2210 return FALSE; |
| 2211 } | |
| 2212 | |
| 2213 if (argv == NULL) { | |
| 2214 return FALSE; | |
| 2215 } | |
| 2216 | |
| 4869 | 2217 progname = g_find_program_in_path(argv[0]); |
| 2218 is_valid = (progname != NULL); | |
| 4428 | 2219 |
| 2220 g_strfreev(argv); | |
| 4869 | 2221 g_free(progname); |
| 2222 | |
| 4428 | 2223 return is_valid; |
| 2224 } | |
| 2225 | |
| 3366 | 2226 static void update_spin_value(GtkWidget *w, GtkWidget *spin) |
| 2227 { | |
| 4635 | 2228 int *value = g_object_get_data(G_OBJECT(spin), "val"); |
| 3366 | 2229 *value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); |
| 2230 } | |
| 4064 | 2231 |
| 3427 | 2232 GtkWidget *gaim_labeled_spin_button(GtkWidget *box, const gchar *title, int *val, int min, int max, GtkSizeGroup *sg) |
| 3366 | 2233 { |
| 2234 GtkWidget *hbox; | |
| 2235 GtkWidget *label; | |
| 2236 GtkWidget *spin; | |
| 2237 GtkObject *adjust; | |
|
901
f168f2c7b357
[gaim-migrate @ 911]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
893
diff
changeset
|
2238 |
| 3366 | 2239 hbox = gtk_hbox_new(FALSE, 5); |
| 2240 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); | |
| 2241 gtk_widget_show(hbox); | |
| 2242 | |
| 3427 | 2243 label = gtk_label_new_with_mnemonic(title); |
| 3366 | 2244 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2245 gtk_widget_show(label); | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
2246 |
| 3366 | 2247 adjust = gtk_adjustment_new(*val, min, max, 1, 1, 1); |
| 2248 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | |
| 4635 | 2249 g_object_set_data(G_OBJECT(spin), "val", val); |
| 2250 gtk_widget_set_size_request(spin, 50, -1); | |
| 3366 | 2251 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
|
2252 g_signal_connect(GTK_OBJECT(adjust), "value-changed", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2253 G_CALLBACK(update_spin_value), GTK_WIDGET(spin)); |
| 3366 | 2254 gtk_widget_show(spin); |
| 3500 | 2255 |
| 3427 | 2256 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); |
| 2257 | |
| 2258 if (sg) { | |
| 2259 gtk_size_group_add_widget(sg, label); | |
| 2260 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3500 | 2261 |
| 3427 | 2262 } |
| 2263 return label; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2264 } |
| 1 | 2265 |
| 4635 | 2266 void dropdown_set(GObject *w, int *option) |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2267 { |
| 4635 | 2268 int opt = GPOINTER_TO_INT(g_object_get_data(w, "value")); |
| 2269 int clear = GPOINTER_TO_INT(g_object_get_data(w, "clear")); | |
| 3500 | 2270 |
| 3366 | 2271 if (clear != -1) { |
| 2272 *option = *option & ~clear; | |
| 2273 *option = *option | opt; | |
| 2274 } else { | |
| 2275 debug_printf("HELLO %d\n", opt); | |
| 2276 *option = opt; | |
| 2277 } | |
| 3500 | 2278 |
| 4634 | 2279 if (option == (int*)&global_proxy_info.proxytype) { |
| 3366 | 2280 if (opt == PROXY_NONE) |
| 2281 gtk_widget_set_sensitive(prefs_proxy_frame, FALSE); | |
| 2282 else | |
| 2283 gtk_widget_set_sensitive(prefs_proxy_frame, TRUE); | |
| 3818 | 2284 } else if (option == &web_browser) { |
| 3366 | 2285 if (opt == BROWSER_MANUAL) |
| 4428 | 2286 gtk_widget_set_sensitive(gtk_widget_get_parent(browser_entry), TRUE); |
| 3366 | 2287 else |
| 4428 | 2288 gtk_widget_set_sensitive(gtk_widget_get_parent(browser_entry), FALSE); |
| 3818 | 2289 } else if (option == (int*)&sound_options) { |
| 3366 | 2290 if (opt == OPT_SOUND_CMD) |
| 2291 gtk_widget_set_sensitive(sndcmd, TRUE); | |
| 2292 else | |
| 2293 gtk_widget_set_sensitive(sndcmd, FALSE); | |
| 4581 | 2294 gaim_sound_change_output_method(); |
| 4944 | 2295 } else if (option == (int*)&blist_options) { |
| 2296 gaim_gtk_blist_update_toolbar(); | |
| 3818 | 2297 } else if (option == (int*)&im_options) { |
| 2298 if (clear == (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB)) | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2299 gaim_gtkconv_update_tabs(); |
| 3818 | 2300 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
|
2301 gaim_gtkconv_update_im_button_style(); |
| 3818 | 2302 } else if (option == (int*)&chat_options) { |
| 2303 if (clear == (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB)) | |
|
4359
5fb47ec9bfe4
[gaim-migrate @ 4625]
Christian Hammond <chipx86@chipx86.com>
parents:
4339
diff
changeset
|
2304 gaim_gtkconv_update_tabs(); |
| 3818 | 2305 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
|
2306 gaim_gtkconv_update_chat_button_style(); |
| 4687 | 2307 // } else if (option == (int*)&blist_options) { |
| 2308 // set_blist_tab(); | |
|
4469
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
2309 } else if (option == (int *)&conv_placement_option) { |
|
d76095396a0e
[gaim-migrate @ 4744]
Christian Hammond <chipx86@chipx86.com>
parents:
4461
diff
changeset
|
2310 gaim_conv_placement_set_active(conv_placement_option); |
| 3366 | 2311 } |
| 1 | 2312 } |
| 2313 | |
| 3500 | 2314 static GtkWidget *gaim_dropdown(GtkWidget *box, const gchar *title, int *option, int clear, ...) |
| 1 | 2315 { |
| 4428 | 2316 va_list ap; |
| 2317 GList *menuitems = NULL; | |
| 2318 GtkWidget *dropdown = NULL; | |
| 2319 char *name; | |
| 2320 int id; | |
| 2321 | |
| 2322 va_start(ap, clear); | |
| 2323 while ((name = va_arg(ap, char *)) != NULL) { | |
| 2324 id = va_arg(ap, int); | |
| 2325 | |
| 2326 menuitems = g_list_prepend(menuitems, name); | |
| 2327 menuitems = g_list_prepend(menuitems, GINT_TO_POINTER(id)); | |
| 2328 } | |
| 2329 va_end(ap); | |
| 2330 | |
| 4433 | 2331 g_return_val_if_fail(menuitems != NULL, NULL); |
| 4428 | 2332 |
| 2333 menuitems = g_list_reverse(menuitems); | |
| 2334 | |
| 2335 dropdown = gaim_dropdown_from_list(box, title, option, clear, menuitems); | |
| 2336 | |
| 2337 g_list_free(menuitems); | |
| 2338 | |
| 2339 return dropdown; | |
| 2340 } | |
| 2341 | |
| 2342 static GtkWidget *gaim_dropdown_from_list(GtkWidget *box, const gchar *title, int *option, int clear, GList *menuitems) | |
| 2343 { | |
| 3366 | 2344 GtkWidget *dropdown, *opt, *menu; |
| 2345 GtkWidget *label; | |
| 2346 gchar *text; | |
| 2347 int value; | |
| 2348 int o = 0; | |
| 2349 GtkWidget *hbox; | |
| 1 | 2350 |
| 4428 | 2351 g_return_val_if_fail(menuitems != NULL, NULL); |
| 2352 | |
| 3366 | 2353 hbox = gtk_hbox_new(FALSE, 5); |
| 2354 gtk_container_add (GTK_CONTAINER (box), hbox); | |
| 2355 gtk_widget_show(hbox); | |
| 2356 | |
| 3427 | 2357 label = gtk_label_new_with_mnemonic(title); |
| 3366 | 2358 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2359 gtk_widget_show(label); | |
| 2360 | |
| 2361 dropdown = gtk_option_menu_new(); | |
| 2362 menu = gtk_menu_new(); | |
| 3500 | 2363 |
| 3427 | 2364 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); |
| 3500 | 2365 |
| 4428 | 2366 while (menuitems != NULL && (text = (char *) menuitems->data) != NULL) { |
| 2367 menuitems = g_list_next(menuitems); | |
| 2368 g_return_val_if_fail(menuitems != NULL, NULL); | |
| 2369 value = GPOINTER_TO_INT(menuitems->data); | |
| 2370 menuitems = g_list_next(menuitems); | |
| 2371 | |
| 3366 | 2372 opt = gtk_menu_item_new_with_label(text); |
| 4635 | 2373 g_object_set_data(G_OBJECT(opt), "value", GINT_TO_POINTER(value)); |
| 2374 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
|
2375 g_signal_connect(GTK_OBJECT(opt), "activate", |
|
d3c8d2b40494
[gaim-migrate @ 4391]
Christian Hammond <chipx86@chipx86.com>
parents:
4137
diff
changeset
|
2376 G_CALLBACK(dropdown_set), (void *)option); |
| 3366 | 2377 gtk_widget_show(opt); |
| 2378 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
| 1 | 2379 |
| 3366 | 2380 if (((clear > -1) && ((*option & value) == value)) || *option == value) { |
| 2381 gtk_menu_set_active(GTK_MENU(menu), o); | |
| 2382 } | |
| 2383 o++; | |
| 4428 | 2384 |
| 3366 | 2385 } |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
2386 |
| 3500 | 2387 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
| 3366 | 2388 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); |
| 2389 gtk_widget_show(dropdown); | |
| 3427 | 2390 return label; |
| 3500 | 2391 } |
| 2392 | |
| 3366 | 2393 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) |
| 1 | 2394 { |
| 3366 | 2395 /* more stuff stolen from X-Chat */ |
| 2396 GtkWidget *swid; | |
| 2397 GdkColor c; | |
| 2398 GtkStyle *style; | |
| 2399 c.pixel = 0; | |
| 2400 if (fgc) { | |
| 3818 | 2401 if (font_options & OPT_FONT_FGCOL) { |
| 2402 c.red = fgcolor.red; | |
| 2403 c.blue = fgcolor.blue; | |
| 2404 c.green = fgcolor.green; | |
| 3366 | 2405 } else { |
| 2406 c.red = 0; | |
| 2407 c.blue = 0; | |
| 2408 c.green = 0; | |
| 2409 } | |
| 2410 } else { | |
| 3818 | 2411 if (font_options & OPT_FONT_BGCOL) { |
| 2412 c.red = bgcolor.red; | |
| 2413 c.blue = bgcolor.blue; | |
| 2414 c.green = bgcolor.green; | |
| 3366 | 2415 } else { |
| 2416 c.red = 0xffff; | |
| 2417 c.blue = 0xffff; | |
| 2418 c.green = 0xffff; | |
| 2419 } | |
| 2420 } | |
| 1 | 2421 |
| 3366 | 2422 style = gtk_style_new(); |
| 2423 style->bg[0] = c; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2424 |
| 3366 | 2425 swid = gtk_event_box_new(); |
| 2426 gtk_widget_set_style(GTK_WIDGET(swid), style); | |
| 4296 | 2427 g_object_unref(style); |
| 4635 | 2428 gtk_widget_set_size_request(GTK_WIDGET(swid), 40, -1); |
| 3366 | 2429 gtk_box_pack_start(GTK_BOX(box), swid, FALSE, FALSE, 5); |
| 2430 gtk_widget_show(swid); | |
| 2431 return swid; | |
| 1 | 2432 } |
| 4064 | 2433 |
| 3366 | 2434 void apply_font_dlg(GtkWidget *w, GtkWidget *f) |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2435 { |
| 3366 | 2436 int i = 0; |
| 2437 char *fontname; | |
| 2438 | |
| 3473 | 2439 fontname = g_strdup(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(f))); |
| 3366 | 2440 destroy_fontsel(0, 0); |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2441 |
| 3818 | 2442 while(fontname[i] && !isdigit(fontname[i]) && i < sizeof(fontface)) { |
| 2443 fontface[i] = fontname[i]; | |
| 3366 | 2444 i++; |
| 2445 } | |
|
4438
2054d8429925
[gaim-migrate @ 4713]
Christian Hammond <chipx86@chipx86.com>
parents:
4433
diff
changeset
|
2446 |
| 3818 | 2447 fontface[i] = 0; |
| 3366 | 2448 g_free(fontname); |
| 4635 | 2449 |
|
4438
2054d8429925
[gaim-migrate @ 4713]
Christian Hammond <chipx86@chipx86.com>
parents:
4433
diff
changeset
|
2450 gaim_conversation_foreach(gaim_gtkconv_update_font_face); |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2451 } |
| 3500 | 2452 |
