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