Mercurial > pidgin
annotate src/prefs.c @ 3752:b32474e522fa
[gaim-migrate @ 3890]
From: "William T. Mahan" <wtm2@duke.edu>
This patch, against CVS HEAD, fixes three bugs in Oscar File Transfer
support. I can split it up further if desired.
* Send a null checksum when initiating a file transfer, which fixes
"files don't match" warnings produced by some versions of WinAIM; add
a compile-time option to actually compute the checksum, which is
slow but necessary when sending to some Mac clients.
* Don't allow sending files to oneself, because it causes all kinds of
subtle problems and it's not useful.
* Don't crash when there is an error writing to the output file when
receiving.
From: "William T. Mahan" <wtm2@duke.edu>
This patch 2 of 3, which applies on top of the first, adds support for
reverse connections for Oscar File Transfer, the lack of which has
been the biggest complaint so far. Reverse connections are used by
newer AIM clients when there is difficulty verifying the IP of the
sender.
From: "William T. Mahan" <wtm2@duke.edu>
This patch 3 of 3, which applies on top of the first 2, removes the
alarm() and sigaction() calls that were added by my original FT patch
to detect transfer timeouts. Besides apparently not working on
Windows, they involved a lot of ugly code to handle a special case.
My new approach is to add destructors that can called when SNACs are
freed; a timeout is detected when a request SNAC is cleaned up before
the transfer is accepted. Although this touches several files, it is
more generic than the old method. I tried to implement this in an
unintrusive manner, so that there is little preformance penalty for
SNACs that do not use destructors.
My first two patches should work fine without this. If there are any
objections to the third patch, I ask that the first two patches be
applied, in which case I will set up a SourceForge page for this one.
committer: Tailor Script <tailor@pidgin.im>
| author | Luke Schierer <lschiere@pidgin.im> |
|---|---|
| date | Sat, 19 Oct 2002 05:22:30 +0000 |
| parents | d85208a99af2 |
| children | 2567aabdf624 |
| 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" |
|
1357
783ba886b6b6
[gaim-migrate @ 1367]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1324
diff
changeset
|
39 #include "prpl.h" |
| 3366 | 40 #include "proxy.h" |
| 41 | |
| 42 /* temporary preferences */ | |
| 43 static guint misc_options_new; | |
| 44 static guint logging_options_new; | |
| 45 static guint blist_options_new; | |
| 46 static guint convo_options_new; | |
| 47 static guint im_options_new; | |
| 48 static guint chat_options_new; | |
| 49 static guint font_options_new; | |
| 50 static guint sound_options_new; | |
| 51 static char *sound_file_new[NUM_SOUNDS]; | |
| 52 static guint away_options_new; | |
| 53 static guint away_resend_new; | |
| 54 static int auto_away_new; | |
| 55 static int report_idle_new; | |
| 56 static int proxytype_new; | |
| 57 static struct away_message* default_away_new; | |
| 58 static int web_browser_new; | |
| 59 static char sound_cmd_new[2048]; | |
| 60 static char web_command_new[2048]; | |
| 61 static int fontsize_new; | |
| 62 GdkColor fgcolor_new, bgcolor_new; | |
| 63 static struct window_size conv_size_new, buddy_chat_size_new; | |
| 64 char fontface_new[128]; | |
| 65 char fontface[128]; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
66 |
| 3567 | 67 GtkWidget *tree_v = NULL; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
68 GtkWidget *prefs_away_list = NULL; |
|
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
69 GtkWidget *prefs_away_menu = NULL; |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
70 GtkWidget *preftree = NULL; |
| 3366 | 71 GtkWidget *fontseld = NULL; |
| 72 | |
| 3379 | 73 GtkListStore *prefs_away_store = NULL; |
| 3366 | 74 |
| 75 static int sound_row_sel = 0; | |
| 76 static char *last_sound_dir = NULL; | |
| 77 | |
| 78 static GtkWidget *sounddialog = NULL; | |
| 79 static GtkWidget *browser_entry = NULL; | |
| 80 static GtkWidget *sound_entry = NULL; | |
| 81 static GtkWidget *away_text = NULL; | |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
82 GtkCTreeNode *general_node = NULL; |
|
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
83 GtkCTreeNode *deny_node = NULL; |
| 2254 | 84 GtkWidget *prefs_proxy_frame = NULL; |
| 3366 | 85 static GtkWidget *gaim_button(const char *, guint *, int, GtkWidget *); |
| 3427 | 86 GtkWidget *gaim_labeled_spin_button(GtkWidget *, const gchar *, int*, int, int, GtkSizeGroup *); |
| 3366 | 87 static GtkWidget *gaim_dropdown(GtkWidget *, const gchar *, int *, int, ...); |
| 88 static GtkWidget *show_color_pref(GtkWidget *, gboolean); | |
| 89 static void delete_prefs(GtkWidget *, void *); | |
| 90 void set_default_away(GtkWidget *, gpointer); | |
| 3500 | 91 static void apply_prefs(); |
| 1026 | 92 |
| 3366 | 93 struct debug_window *dw = NULL; |
| 3565 | 94 GtkWidget *prefs = NULL; |
| 3366 | 95 GtkWidget *debugbutton = NULL; |
| 3565 | 96 static int notebook_page = 0; |
| 97 static GtkTreeIter plugin_iter; | |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
98 |
| 3630 | 99 /* |
| 100 * PROTOTYPES | |
| 101 */ | |
| 102 GtkTreeIter *prefs_notebook_add_page(char*, GdkPixbuf*, GtkWidget*, GtkTreeIter*, GtkTreeIter*, int); | |
| 103 | |
| 3366 | 104 void delete_prefs(GtkWidget *asdf, void *gdsa) { |
| 105 int v; | |
| 3500 | 106 |
| 3485 | 107 prefs = NULL; |
| 108 for (v = 0; v < NUM_SOUNDS; v++) { | |
| 109 if (sound_file_new[v]) { | |
| 3366 | 110 g_free(sound_file_new[v]); |
| 3551 | 111 sound_file_new[v] = NULL; |
| 3485 | 112 } |
| 113 } | |
| 3567 | 114 tree_v = NULL; |
| 3485 | 115 sound_entry = NULL; |
| 116 browser_entry = NULL; | |
| 3526 | 117 debugbutton = NULL; |
| 118 prefs_away_menu = NULL; | |
| 3565 | 119 notebook_page = 0; |
| 3485 | 120 if(sounddialog) |
| 3379 | 121 gtk_widget_destroy(sounddialog); |
| 3500 | 122 g_object_unref(G_OBJECT(prefs_away_store)); |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
123 } |
|
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
124 |
| 3366 | 125 GtkWidget *preflabel; |
| 126 GtkWidget *prefsnotebook; | |
| 127 GtkTreeStore *prefstree; | |
|
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
128 |
| 3500 | 129 static void set_misc_options(); |
| 3366 | 130 static void set_logging_options(); |
| 3500 | 131 static void set_blist_options(); |
| 3366 | 132 static void set_convo_options(); |
| 133 static void set_im_options(); | |
| 134 static void set_chat_options(); | |
| 135 static void set_font_options(); | |
| 136 static void set_sound_options(); | |
| 137 static void set_away_options(); | |
|
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
138 |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
139 #define PROXYHOST 0 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
140 #define PROXYPORT 1 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
141 #define PROXYTYPE 2 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
142 #define PROXYUSER 3 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
143 #define PROXYPASS 4 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
144 static void proxy_print_option(GtkEntry *entry, int entrynum) |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
145 { |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
146 if (entrynum == PROXYHOST) |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
147 g_snprintf(proxyhost, sizeof(proxyhost), "%s", gtk_entry_get_text(entry)); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
148 else if (entrynum == PROXYPORT) |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
149 proxyport = atoi(gtk_entry_get_text(entry)); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
150 else if (entrynum == PROXYUSER) |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
151 g_snprintf(proxyuser, sizeof(proxyuser), "%s", gtk_entry_get_text(entry)); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
152 else if (entrynum == PROXYPASS) |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
153 g_snprintf(proxypass, sizeof(proxypass), "%s", gtk_entry_get_text(entry)); |
| 3500 | 154 apply_prefs(); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
155 } |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
156 |
| 3366 | 157 |
| 3565 | 158 GtkWidget *make_frame(GtkWidget *ret, char *text) { |
| 3427 | 159 GtkWidget *vbox, *label, *hbox; |
| 160 char labeltext[256]; | |
| 3500 | 161 |
| 3427 | 162 vbox = gtk_vbox_new(FALSE, 6); |
| 163 gtk_box_pack_start(GTK_BOX(ret), vbox, FALSE, FALSE, 0); | |
| 164 label = gtk_label_new(NULL); | |
| 165 g_snprintf(labeltext, sizeof(labeltext), "<span weight=\"bold\">%s</span>", text); | |
| 166 gtk_label_set_markup(GTK_LABEL(label), labeltext); | |
| 167 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 168 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 0); | |
| 169 hbox = gtk_hbox_new(FALSE, 6); | |
| 170 gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0); | |
| 171 label = gtk_label_new(" "); | |
| 172 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 173 vbox = gtk_vbox_new(FALSE, 6); | |
| 174 gtk_box_pack_start(GTK_BOX(hbox), vbox, FALSE, FALSE, 0); | |
| 175 return vbox; | |
| 176 } | |
| 177 | |
| 3366 | 178 /* OK, Apply and Cancel */ |
| 179 | |
| 180 static void apply_cb(GtkWidget *button, void *data) | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
181 { |
| 3500 | 182 apply_prefs(); |
| 183 } | |
| 184 | |
| 185 static void apply_prefs() | |
| 186 { | |
| 3366 | 187 int r; |
| 188 if (misc_options != misc_options_new) | |
| 189 set_misc_options(); | |
| 190 if (logging_options != logging_options_new) | |
| 191 set_logging_options(); | |
| 192 if (blist_options != blist_options_new) | |
| 193 set_blist_options(); | |
| 3500 | 194 if (convo_options != convo_options_new) |
| 3366 | 195 set_convo_options(); |
| 3500 | 196 if (im_options != im_options_new) |
| 3366 | 197 set_im_options(); |
| 3500 | 198 if (chat_options != chat_options_new) |
| 3366 | 199 set_chat_options(); |
| 200 chat_options = chat_options_new; | |
| 3500 | 201 if (font_options != font_options_new) |
| 3366 | 202 set_font_options(); |
| 3500 | 203 if (sound_options != sound_options_new) |
| 3366 | 204 set_sound_options(); |
| 205 for (r = 0; r < NUM_SOUNDS; r++) { | |
| 206 if (sound_file[r]) | |
| 207 g_free(sound_file[r]); | |
| 3485 | 208 sound_file[r] = g_strdup(sound_file_new[r]); |
| 3366 | 209 } |
| 3500 | 210 if (away_options != away_options_new) |
| 3366 | 211 set_away_options(); |
| 212 away_resend = away_resend_new; | |
| 213 auto_away = auto_away_new; | |
| 214 report_idle = report_idle_new; | |
| 215 web_browser = web_browser_new; | |
| 3500 | 216 proxytype = proxytype_new; |
| 3366 | 217 default_away = default_away_new; |
| 218 fontsize = fontsize_new; | |
| 3630 | 219 #ifndef _WIN32 |
| 3366 | 220 g_snprintf(sound_cmd, sizeof(sound_cmd), "%s", sound_cmd_new); |
| 3630 | 221 #endif |
| 3366 | 222 g_snprintf(web_command, sizeof(web_command), "%s", web_command_new); |
| 223 memcpy(&conv_size, &conv_size_new, sizeof(struct window_size)); | |
| 3500 | 224 memcpy(&conv_size, &conv_size_new, sizeof(struct window_size)); |
| 3366 | 225 memcpy(&fgcolor, &fgcolor_new, sizeof(GdkColor)); |
| 226 memcpy(&bgcolor, &bgcolor_new, sizeof(GdkColor)); | |
| 2254 | 227 |
| 3366 | 228 |
| 229 g_snprintf(fontface, sizeof(fontface), fontface_new); | |
| 230 update_convo_font(); | |
| 231 update_convo_color(); | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
232 save_prefs(); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
233 } |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
234 |
| 3366 | 235 |
| 236 static void ok_cb(GtkWidget *button, void *data) | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
237 { |
| 3366 | 238 apply_cb(button, data); |
| 239 gtk_widget_destroy(prefs); | |
| 240 } | |
| 3427 | 241 |
| 3366 | 242 static void pref_nb_select(GtkTreeSelection *sel, GtkNotebook *nb) { |
| 243 GtkTreeIter iter; | |
| 3427 | 244 char text[128]; |
| 3366 | 245 GValue val = { 0, }; |
| 246 GtkTreeModel *model = GTK_TREE_MODEL(prefstree); | |
| 3500 | 247 |
| 3366 | 248 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 249 return; | |
| 250 gtk_tree_model_get_value (model, &iter, 1, &val); | |
| 3500 | 251 g_snprintf(text, sizeof(text), "<span weight=\"bold\" size=\"larger\">%s</span>", |
| 3427 | 252 g_value_get_string(&val)); |
| 253 gtk_label_set_markup (GTK_LABEL(preflabel), text); | |
| 3366 | 254 g_value_unset (&val); |
| 255 gtk_tree_model_get_value (model, &iter, 2, &val); | |
| 256 gtk_notebook_set_current_page (GTK_NOTEBOOK (prefsnotebook), g_value_get_int (&val)); | |
| 257 | |
| 258 } | |
| 259 | |
| 260 /* These are the pages in the preferences notebook */ | |
| 261 GtkWidget *interface_page() { | |
| 262 GtkWidget *ret; | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
263 GtkWidget *vbox; |
| 3427 | 264 ret = gtk_vbox_new(FALSE, 18); |
| 265 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 266 |
| 3427 | 267 vbox = make_frame(ret, _("Interface Options")); |
| 268 /* This shouldn't have to wait for user to click OK or APPLY or whatnot */ | |
| 269 /* This really shouldn't be in preferences at all */ | |
| 3500 | 270 debugbutton = gaim_button(_("Show _Debug Window"), &misc_options_new, OPT_MISC_DEBUG, vbox); |
| 271 | |
| 3366 | 272 |
| 3427 | 273 gaim_button(_("Use _borderless buttons"), &misc_options_new, OPT_MISC_COOL_LOOK, vbox); |
| 3500 | 274 |
| 3427 | 275 gtk_widget_show_all(ret); |
| 3366 | 276 return ret; |
| 277 } | |
| 278 | |
| 279 GtkWidget *font_page() { | |
| 280 GtkWidget *ret; | |
| 281 GtkWidget *button; | |
| 282 GtkWidget *vbox, *hbox; | |
| 283 GtkWidget *select = NULL; | |
| 3427 | 284 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3500 | 285 |
| 3427 | 286 ret = gtk_vbox_new(FALSE, 18); |
| 287 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3500 | 288 |
| 3427 | 289 vbox = make_frame(ret, _("Style")); |
| 3500 | 290 gaim_button(_("_Bold"), &font_options_new, OPT_FONT_BOLD, vbox); |
| 3427 | 291 gaim_button(_("_Italics"), &font_options_new, OPT_FONT_ITALIC, vbox); |
| 292 gaim_button(_("_Underline"), &font_options_new, OPT_FONT_UNDERLINE, vbox); | |
| 293 gaim_button(_("_Strikethough"), &font_options_new, OPT_FONT_STRIKE, vbox); | |
| 3500 | 294 |
| 3427 | 295 vbox = make_frame(ret, _("Face")); |
| 296 hbox = gtk_hbox_new(FALSE, 6); | |
| 297 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 298 button = gaim_button(_("Use custo_m face"), &font_options_new, OPT_FONT_FACE, hbox); | |
| 299 gtk_size_group_add_widget(sg, button); | |
| 300 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_FONT); | |
| 3366 | 301 |
| 302 if (!(font_options_new & OPT_FONT_FACE)) | |
| 303 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); | |
| 304 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); | |
| 3500 | 305 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_font_dialog), NULL); |
| 3366 | 306 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); |
| 307 | |
| 308 hbox = gtk_hbox_new(FALSE, 5); | |
| 309 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3427 | 310 button = gaim_button(_("Use custom si_ze"), &font_options_new, OPT_FONT_SIZE, hbox); |
| 311 gtk_size_group_add_widget(sg, button); | |
| 312 select = gaim_labeled_spin_button(hbox, NULL, &fontsize_new, 1, 7, NULL); | |
| 3366 | 313 if (!(font_options_new & OPT_FONT_SIZE)) |
| 314 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); | |
| 315 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); | |
| 316 | |
| 3500 | 317 vbox = make_frame(ret, _("Color")); |
| 3366 | 318 hbox = gtk_hbox_new(FALSE, 5); |
| 319 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3500 | 320 |
| 321 | |
| 3427 | 322 button = gaim_button(_("_Text color"), &font_options_new, OPT_FONT_FGCOL, hbox); |
| 323 gtk_size_group_add_widget(sg, button); | |
| 324 | |
| 325 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); | |
| 326 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
| 3366 | 327 pref_fg_picture = show_color_pref(hbox, TRUE); |
| 328 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(update_color), | |
| 329 pref_fg_picture); | |
| 3427 | 330 |
| 3366 | 331 if (!(font_options_new & OPT_FONT_FGCOL)) |
| 332 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); | |
| 333 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); | |
| 334 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_fgcolor_dialog), NULL); | |
| 335 hbox = gtk_hbox_new(FALSE, 5); | |
| 336 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3500 | 337 |
| 3427 | 338 button = gaim_button(_("Bac_kground color"), &font_options_new, OPT_FONT_BGCOL, hbox); |
| 339 gtk_size_group_add_widget(sg, button); | |
| 340 select = gtk_button_new_from_stock(GTK_STOCK_SELECT_COLOR); | |
| 341 gtk_box_pack_start(GTK_BOX(hbox), select, FALSE, FALSE, 0); | |
| 3366 | 342 pref_bg_picture = show_color_pref(hbox, FALSE); |
| 3427 | 343 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(update_color), |
| 3366 | 344 pref_bg_picture); |
| 3472 | 345 |
| 3366 | 346 if (!(font_options_new & OPT_FONT_BGCOL)) |
| 347 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); | |
| 348 gtk_signal_connect(GTK_OBJECT(select), "clicked", GTK_SIGNAL_FUNC(show_bgcolor_dialog), NULL); | |
| 349 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); | |
| 350 | |
| 3427 | 351 gtk_widget_show_all(ret); |
| 3366 | 352 return ret; |
| 353 } | |
| 354 | |
| 355 | |
| 356 GtkWidget *messages_page() { | |
| 357 GtkWidget *ret; | |
| 358 GtkWidget *vbox; | |
| 3427 | 359 ret = gtk_vbox_new(FALSE, 18); |
| 360 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 361 |
| 3427 | 362 vbox = make_frame (ret, _("Display")); |
| 363 gaim_button(_("Show graphical _smileys"), &convo_options_new, OPT_CONVO_SHOW_SMILEY, vbox); | |
| 364 gaim_button(_("Show _timestamp on messages"), &convo_options_new, OPT_CONVO_SHOW_TIME, vbox); | |
| 365 gaim_button(_("Show _URLs as links"), &convo_options_new, OPT_CONVO_SEND_LINKS, vbox); | |
| 366 gaim_button(_("_Highlight misspelled words"), &convo_options_new, OPT_CONVO_CHECK_SPELLING, vbox); | |
| 3500 | 367 |
| 3427 | 368 vbox = make_frame (ret, _("Ignore")); |
| 369 gaim_button(_("Ignore c_olors"), &convo_options_new, OPT_CONVO_IGNORE_COLOUR, vbox); | |
| 370 gaim_button(_("Ignore font _faces"), &convo_options_new, OPT_CONVO_IGNORE_FONTS, vbox); | |
| 371 gaim_button(_("Ignore font si_zes"), &convo_options_new, OPT_CONVO_IGNORE_SIZES, vbox); | |
| 372 gaim_button(_("Ignore Ti_K Automated Messages"), &away_options_new, OPT_AWAY_TIK_HACK, vbox); | |
| 3500 | 373 |
| 3427 | 374 gtk_widget_show_all(ret); |
| 3366 | 375 return ret; |
| 376 } | |
| 377 | |
| 378 GtkWidget *hotkeys_page() { | |
| 379 GtkWidget *ret; | |
| 380 GtkWidget *vbox; | |
| 3427 | 381 ret = gtk_vbox_new(FALSE, 18); |
| 382 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 383 |
| 3427 | 384 vbox = make_frame(ret, _("Send Message")); |
| 385 gaim_button(_("_Enter sends message"), &convo_options_new, OPT_CONVO_ENTER_SENDS, vbox); | |
| 386 gaim_button(_("C_ontrol-Enter sends message"), &convo_options_new, OPT_CONVO_CTL_ENTER, vbox); | |
| 3500 | 387 |
| 3427 | 388 vbox = make_frame (ret, _("Window Closing")); |
| 389 gaim_button(_("E_scape closes window"), &convo_options_new, OPT_CONVO_ESC_CAN_CLOSE, vbox); | |
| 390 gaim_button(_("Control-_W closes window"), &convo_options_new, OPT_CONVO_CTL_W_CLOSES, vbox); | |
| 3366 | 391 |
| 3427 | 392 vbox = make_frame(ret, "Insertions"); |
| 393 gaim_button(_("Control-{B/I/U/S} inserts _HTML tags"), &convo_options_new, OPT_CONVO_CTL_CHARS, vbox); | |
| 394 gaim_button(_("Control-(number) inserts _smileys"), &convo_options_new, OPT_CONVO_CTL_SMILEYS, vbox); | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
395 |
| 3427 | 396 gtk_widget_show_all(ret); |
| 3366 | 397 return ret; |
| 398 } | |
| 399 | |
| 400 GtkWidget *list_page() { | |
| 401 GtkWidget *ret; | |
| 402 GtkWidget *vbox; | |
| 3427 | 403 ret = gtk_vbox_new(FALSE, 18); |
| 404 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 405 |
| 3427 | 406 vbox = make_frame (ret, _("Buttons")); |
| 407 gaim_button(_("_Hide IM/Info/Chat buttons"), &blist_options_new, OPT_BLIST_NO_BUTTONS, vbox); | |
| 408 gaim_button(_("Show _pictures on buttons"), &blist_options_new, OPT_BLIST_SHOW_BUTTON_XPM, vbox); | |
| 3366 | 409 |
| 3427 | 410 vbox = make_frame (ret, _("Buddy List Window")); |
| 411 gaim_button(_("_Save Window Size/Position"), &blist_options_new, OPT_BLIST_SAVED_WINDOWS, vbox); | |
| 412 gaim_button(_("_Raise Window on Events"), &blist_options_new, OPT_BLIST_POPUP, vbox); | |
| 3366 | 413 |
| 3427 | 414 vbox = make_frame (ret, _("Group Display")); |
| 415 gaim_button(_("Hide _groups with no online buddies"), &blist_options_new, OPT_BLIST_NO_MT_GRP, vbox); | |
| 416 gaim_button(_("Show _numbers in groups"), &blist_options_new, OPT_BLIST_SHOW_GRPNUM, vbox); | |
| 3366 | 417 |
| 3427 | 418 vbox = make_frame (ret, _("Buddy Display")); |
| 419 gaim_button(_("Show buddy type _icons"), &blist_options_new, OPT_BLIST_SHOW_PIXMAPS, vbox); | |
| 420 gaim_button(_("Show _warning levels"), &blist_options_new, OPT_BLIST_SHOW_WARN, vbox); | |
| 421 gaim_button(_("Show idle _times"), &blist_options_new, OPT_BLIST_SHOW_IDLETIME, vbox); | |
| 422 gaim_button(_("Grey i_dle buddies"), &blist_options_new, OPT_BLIST_GREY_IDLERS, vbox); | |
| 3366 | 423 |
| 3427 | 424 gtk_widget_show_all(ret); |
| 3366 | 425 return ret; |
| 426 } | |
| 427 | |
| 428 GtkWidget *im_page() { | |
| 429 GtkWidget *ret; | |
| 3500 | 430 GtkWidget *vbox; |
| 3427 | 431 GtkWidget *typingbutton, *widge; |
| 432 GtkSizeGroup *sg; | |
| 3366 | 433 |
| 3427 | 434 ret = gtk_vbox_new(FALSE, 18); |
| 435 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 436 | |
| 437 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 438 | |
| 439 vbox = make_frame (ret, _("Window")); | |
| 3500 | 440 widge = gaim_dropdown(vbox, "Show _buttons as:", &im_options_new, OPT_IM_BUTTON_TEXT | OPT_IM_BUTTON_XPM, |
| 441 "Pictures", OPT_IM_BUTTON_XPM, | |
| 3366 | 442 "Text", OPT_IM_BUTTON_TEXT, |
| 443 "Pictures and text", OPT_IM_BUTTON_XPM | OPT_IM_BUTTON_TEXT, NULL); | |
| 3427 | 444 gtk_size_group_add_widget(sg, widge); |
| 445 gtk_misc_set_alignment(GTK_MISC(widge), 0, 0); | |
| 446 gaim_labeled_spin_button(vbox, _("New window _width:"), &conv_size_new.width, 25, 9999, sg); | |
| 447 gaim_labeled_spin_button(vbox, _("New window _height:"), &conv_size_new.height, 25, 9999, sg); | |
| 448 gaim_labeled_spin_button(vbox, _("_Entry widget height:"), &conv_size_new.entry_height, 25, 9999, sg); | |
| 449 gaim_button(_("_Raise windows on events"), &im_options_new, OPT_IM_POPUP, vbox); | |
| 450 gaim_button(_("Hide window on _send"), &im_options_new, OPT_IM_POPDOWN, vbox); | |
| 3366 | 451 gtk_widget_show (vbox); |
| 452 | |
| 3427 | 453 vbox = make_frame (ret, _("Buddy Icons")); |
| 454 gaim_button(_("Hide Buddy _Icons"), &im_options_new, OPT_IM_HIDE_ICONS, vbox); | |
| 455 gaim_button(_("Disable Buddy Icon A_nimation"), &im_options_new, OPT_IM_NO_ANIMATION, vbox); | |
| 3366 | 456 |
| 3427 | 457 vbox = make_frame (ret, _("Display")); |
| 458 gaim_button(_("Show _logins in window"), &im_options_new, OPT_IM_LOGON, vbox); | |
| 3366 | 459 |
| 3427 | 460 vbox = make_frame (ret, _("Typing Notification")); |
| 461 typingbutton = gaim_button(_("Notify buddies that you are _typing to them"), &misc_options_new, | |
| 3366 | 462 OPT_MISC_STEALTH_TYPING, vbox); |
| 463 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON(typingbutton), !gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(typingbutton))); | |
| 3404 | 464 misc_options_new ^= OPT_MISC_STEALTH_TYPING; |
| 3366 | 465 |
| 3427 | 466 gtk_widget_show_all(ret); |
| 3366 | 467 return ret; |
| 468 } | |
| 469 | |
| 470 GtkWidget *chat_page() { | |
| 471 GtkWidget *ret; | |
| 472 GtkWidget *vbox; | |
| 3427 | 473 GtkWidget *dd; |
| 474 GtkSizeGroup *sg; | |
| 3366 | 475 |
| 3427 | 476 ret = gtk_vbox_new(FALSE, 18); |
| 477 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3500 | 478 |
| 3427 | 479 sg = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL); |
| 3366 | 480 |
| 3427 | 481 vbox = make_frame (ret, _("Window")); |
| 482 dd = gaim_dropdown(vbox, "Show _buttons as:", &chat_options_new, OPT_CHAT_BUTTON_TEXT | OPT_CHAT_BUTTON_XPM, | |
| 3500 | 483 "Pictures", OPT_CHAT_BUTTON_XPM, |
| 3427 | 484 "Text", OPT_CHAT_BUTTON_TEXT, |
| 485 "Pictures and Text", OPT_CHAT_BUTTON_XPM | OPT_CHAT_BUTTON_TEXT, NULL); | |
| 486 gtk_size_group_add_widget(sg, dd); | |
| 487 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
| 488 gaim_labeled_spin_button(vbox, _("New window _width:"), &buddy_chat_size_new.width, 25, 9999, sg); | |
| 489 gaim_labeled_spin_button(vbox, _("New window _height:"), &buddy_chat_size_new.height, 25, 9999, sg); | |
| 490 gaim_labeled_spin_button(vbox, _("_Entry widget height:"), &buddy_chat_size_new.entry_height, 25, 9999, sg); | |
| 491 gaim_button(_("_Raise windows on events"), &chat_options_new, OPT_CHAT_POPUP, vbox); | |
| 3366 | 492 |
| 3427 | 493 vbox = make_frame (ret, _("Tab Completion")); |
| 494 gaim_button(_("_Tab-Complete Nicks"), &chat_options_new, OPT_CHAT_TAB_COMPLETE, vbox); | |
| 495 gaim_button(_("_Old-Style Tab Completion"), &chat_options_new, OPT_CHAT_OLD_STYLE_TAB, vbox); | |
| 496 | |
| 497 vbox = make_frame (ret, _("Display")); | |
| 498 gaim_button(_("_Show people joining/leaving in window"), &chat_options_new, OPT_CHAT_LOGON, vbox); | |
| 499 gaim_button(_("Co_lorize screennames"), &chat_options_new, OPT_CHAT_COLORIZE, vbox); | |
| 500 | |
| 501 gtk_widget_show_all(ret); | |
| 3366 | 502 return ret; |
| 503 } | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
504 |
| 3366 | 505 GtkWidget *tab_page() { |
| 506 GtkWidget *ret; | |
| 507 GtkWidget *vbox; | |
| 3427 | 508 GtkWidget *dd; |
| 509 GtkSizeGroup *sg; | |
| 510 ret = gtk_vbox_new(FALSE, 18); | |
| 511 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 512 |
| 3427 | 513 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
| 3500 | 514 |
| 3427 | 515 vbox = make_frame (ret, _("IM Tabs")); |
| 3500 | 516 dd = gaim_dropdown(vbox, "Tab _Placement:", &im_options_new, OPT_IM_SIDE_TAB | OPT_IM_BR_TAB, |
| 517 "Top", 0, | |
| 3366 | 518 "Bottom", OPT_IM_BR_TAB, |
| 519 "Left", OPT_IM_SIDE_TAB, | |
| 520 "Right", OPT_IM_BR_TAB | OPT_IM_SIDE_TAB, NULL); | |
| 3427 | 521 gtk_size_group_add_widget(sg, dd); |
| 522 gaim_button(_("Show all _Instant Messages in one tabbed\nwindow"), &im_options_new, OPT_IM_ONE_WINDOW, vbox); | |
| 523 gaim_button(_("Show a_liases in tabs/titles"), &im_options_new, OPT_IM_ALIAS_TAB, vbox); | |
| 3366 | 524 |
| 3427 | 525 vbox = make_frame (ret, _("Chat Tabs")); |
| 526 dd = gaim_dropdown(vbox, "Tab _Placement:", &chat_options_new, OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, | |
| 3500 | 527 "Top", 0, |
| 3427 | 528 "Bottom", OPT_CHAT_BR_TAB, |
| 529 "Left", OPT_CHAT_SIDE_TAB, | |
| 530 "Right", OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB, NULL); | |
| 531 gtk_size_group_add_widget(sg, dd); | |
| 532 gaim_button(_("Show all c_hats in one tabbed window"), &chat_options_new, OPT_CHAT_ONE_WINDOW, | |
| 3366 | 533 vbox); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
534 |
| 3427 | 535 vbox = make_frame (ret, _("Combined Tabs")); |
| 536 gaim_button(_("Show IMs and chats in _same tabbed\nwindow."), &convo_options_new, OPT_CONVO_COMBINE, vbox); | |
| 3500 | 537 |
| 3427 | 538 vbox = make_frame (ret, _("Buddy List Tabs")); |
| 3500 | 539 dd = gaim_dropdown(vbox, "Tab _Placement:", &blist_options_new, OPT_BLIST_BOTTOM_TAB, |
| 540 "Top", 0, | |
| 3366 | 541 "Bottom", OPT_BLIST_BOTTOM_TAB, NULL); |
| 3427 | 542 gtk_size_group_add_widget(sg, dd); |
| 3500 | 543 |
| 3427 | 544 gtk_widget_show_all(ret); |
| 3366 | 545 return ret; |
| 546 } | |
| 547 | |
| 548 GtkWidget *proxy_page() { | |
| 549 GtkWidget *ret; | |
| 550 GtkWidget *vbox; | |
| 551 GtkWidget *entry; | |
| 552 GtkWidget *label; | |
| 553 GtkWidget *hbox; | |
| 554 GtkWidget *table; | |
| 555 | |
| 3427 | 556 ret = gtk_vbox_new(FALSE, 18); |
| 557 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 558 |
| 3427 | 559 vbox = make_frame (ret, _("Proxy Type")); |
| 560 gaim_dropdown(vbox, "Proxy _Type:", &proxytype_new, -1, | |
| 3500 | 561 "No Proxy", PROXY_NONE, |
| 3366 | 562 "SOCKS 4", PROXY_SOCKS4, |
| 563 "SOCKS 5", PROXY_SOCKS5, | |
| 564 "HTTP", PROXY_HTTP, NULL); | |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
565 |
| 2254 | 566 table = gtk_table_new(2, 2, FALSE); |
| 567 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 568 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 569 gtk_table_set_row_spacings(GTK_TABLE(table), 5); | |
| 570 | |
| 3427 | 571 vbox = make_frame(ret, _("Proxy Server")); |
| 572 prefs_proxy_frame = vbox; | |
| 2254 | 573 |
| 574 if (proxytype == PROXY_NONE) | |
| 3427 | 575 gtk_widget_set_sensitive(GTK_WIDGET(vbox), FALSE); |
| 2254 | 576 |
| 577 table = gtk_table_new(2, 4, FALSE); | |
| 578 gtk_container_set_border_width(GTK_CONTAINER(table), 5); | |
| 579 gtk_table_set_col_spacings(GTK_TABLE(table), 5); | |
| 580 gtk_table_set_row_spacings(GTK_TABLE(table), 10); | |
| 3427 | 581 gtk_container_add(GTK_CONTAINER(vbox), table); |
| 2254 | 582 |
| 583 | |
| 3427 | 584 label = gtk_label_new_with_mnemonic(_("_Host")); |
| 2254 | 585 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 586 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
|
587 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
588 entry = gtk_entry_new(); |
| 3427 | 589 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 590 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 0, 1, GTK_FILL, 0, 0, 0); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
591 gtk_signal_connect(GTK_OBJECT(entry), "changed", |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
592 GTK_SIGNAL_FUNC(proxy_print_option), (void *)PROXYHOST); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
593 gtk_entry_set_text(GTK_ENTRY(entry), proxyhost); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
594 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
595 hbox = gtk_hbox_new(TRUE, 5); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
596 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
597 |
| 3427 | 598 label = gtk_label_new_with_mnemonic(_("Port")); |
| 2254 | 599 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 600 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
|
601 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
602 entry = gtk_entry_new(); |
| 3427 | 603 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 604 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 1, 2, GTK_FILL, 0, 0, 0); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
605 gtk_signal_connect(GTK_OBJECT(entry), "changed", |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
606 GTK_SIGNAL_FUNC(proxy_print_option), (void *)PROXYPORT); |
| 2254 | 607 |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
608 if (proxyport) { |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
609 char buf[128]; |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
610 g_snprintf(buf, sizeof(buf), "%d", proxyport); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
611 gtk_entry_set_text(GTK_ENTRY(entry), buf); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
612 } |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
613 |
| 3427 | 614 label = gtk_label_new_with_mnemonic(_("_User")); |
| 2254 | 615 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 616 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
|
617 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
618 entry = gtk_entry_new(); |
| 3427 | 619 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 620 gtk_table_attach(GTK_TABLE(table), entry, 1, 2, 2, 3, GTK_FILL, 0, 0, 0); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
621 gtk_signal_connect(GTK_OBJECT(entry), "changed", |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
622 GTK_SIGNAL_FUNC(proxy_print_option), (void *)PROXYUSER); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
623 gtk_entry_set_text(GTK_ENTRY(entry), proxyuser); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
624 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
625 hbox = gtk_hbox_new(TRUE, 5); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
626 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
627 |
| 3427 | 628 label = gtk_label_new_with_mnemonic(_("Pa_ssword")); |
| 2254 | 629 gtk_misc_set_alignment(GTK_MISC(label), 1.0, 0.5); |
| 630 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
|
631 |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
632 entry = gtk_entry_new(); |
| 3427 | 633 gtk_label_set_mnemonic_widget(GTK_LABEL(label), entry); |
| 3366 | 634 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
|
635 gtk_entry_set_visibility(GTK_ENTRY(entry), FALSE); |
|
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
636 gtk_signal_connect(GTK_OBJECT(entry), "changed", |
|
2372
2927c2c26fe6
[gaim-migrate @ 2385]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2323
diff
changeset
|
637 GTK_SIGNAL_FUNC(proxy_print_option), (void *)PROXYPASS); |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
638 gtk_entry_set_text(GTK_ENTRY(entry), proxypass); |
| 3500 | 639 |
| 3427 | 640 gtk_widget_show_all(ret); |
| 3366 | 641 return ret; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
642 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
643 |
| 3432 | 644 static void browser_print_option(GtkEntry *entry, void *nullish) { |
| 645 g_snprintf(web_command_new, sizeof(web_command_new), "%s", gtk_entry_get_text(entry)); | |
| 646 } | |
| 647 | |
| 3366 | 648 GtkWidget *browser_page() { |
| 649 GtkWidget *ret; | |
| 650 GtkWidget *vbox, *hbox; | |
| 651 GtkWidget *label; | |
| 3427 | 652 GtkSizeGroup *sg; |
| 653 | |
| 654 ret = gtk_vbox_new(FALSE, 18); | |
| 655 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 656 | |
| 657 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); | |
| 3630 | 658 #ifndef _WIN32 |
| 659 /* Registered default browser is used by Windows */ | |
| 3427 | 660 vbox = make_frame (ret, _("Browser Selection")); |
| 3500 | 661 label = gaim_dropdown(vbox, "_Browser", &web_browser_new, -1, |
| 3427 | 662 "Netscape", BROWSER_NETSCAPE, |
| 663 "Konqueror", BROWSER_KONQ, | |
| 664 "Mozilla", BROWSER_MOZILLA, | |
| 665 "Manual", BROWSER_MANUAL, | |
| 3472 | 666 /* fixme: GNOME binary helper |
| 667 "GNOME URL Handler", BROWSER_GNOME, */ | |
| 3427 | 668 "Galeon", BROWSER_GALEON, |
| 669 "Opera", BROWSER_OPERA, NULL); | |
| 670 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 671 gtk_size_group_add_widget(sg, label); | |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
672 |
| 3366 | 673 hbox = gtk_hbox_new(FALSE, 5); |
| 674 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); | |
| 3427 | 675 label = gtk_label_new_with_mnemonic("_Manual: "); |
| 3366 | 676 gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0); |
| 3427 | 677 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); |
| 678 gtk_size_group_add_widget(sg, label); | |
| 3366 | 679 browser_entry = gtk_entry_new(); |
| 3427 | 680 gtk_label_set_mnemonic_widget(GTK_LABEL(label), browser_entry); |
| 3366 | 681 if (web_browser_new != BROWSER_MANUAL) |
| 682 gtk_widget_set_sensitive(browser_entry, FALSE); | |
| 683 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
|
684 |
| 3432 | 685 gtk_entry_set_text(GTK_ENTRY(browser_entry), web_command_new); |
| 686 gtk_signal_connect(GTK_OBJECT(browser_entry), "changed", | |
| 687 GTK_SIGNAL_FUNC(browser_print_option), NULL); | |
| 3630 | 688 #endif /* end !_WIN32 */ |
| 3427 | 689 vbox = make_frame (ret, _("Browser Options")); |
| 3630 | 690 label = gaim_button(_("Open new _window by default"), &misc_options_new, OPT_MISC_BROWSER_POPUP, vbox); |
| 691 #ifdef _WIN32 | |
| 692 /* Until I figure out how to implement this on windows */ | |
| 693 gtk_widget_set_sensitive(label, FALSE); | |
| 694 #endif | |
| 3427 | 695 gtk_widget_show_all(ret); |
| 3366 | 696 return ret; |
| 3500 | 697 } |
| 3366 | 698 |
| 699 GtkWidget *logging_page() { | |
| 700 GtkWidget *ret; | |
| 701 GtkWidget *vbox; | |
| 3427 | 702 ret = gtk_vbox_new(FALSE, 18); |
| 703 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
704 |
| 3427 | 705 vbox = make_frame (ret, _("Message Logs")); |
| 3457 | 706 gaim_button(_("_Log all Instant Messages"), &logging_options_new, OPT_LOG_CONVOS, vbox); |
| 707 gaim_button(_("Log all c_hats"), &logging_options_new, OPT_LOG_CHATS, vbox); | |
| 3427 | 708 gaim_button(_("Strip _HTML from logs"), &logging_options_new, OPT_LOG_STRIP_HTML, vbox); |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
709 |
| 3427 | 710 vbox = make_frame (ret, _("System Logs")); |
| 711 gaim_button(_("Log when buddies _sign on/sign off"), &logging_options_new, OPT_LOG_BUDDY_SIGNON, | |
| 3366 | 712 vbox); |
| 3427 | 713 gaim_button(_("Log when buddies become _idle/un-idle"), &logging_options_new, OPT_LOG_BUDDY_IDLE, |
| 3366 | 714 vbox); |
| 3427 | 715 gaim_button(_("Log when buddies go away/come _back"), &logging_options_new, OPT_LOG_BUDDY_AWAY, vbox); |
| 716 gaim_button(_("Log your _own signons/idleness/awayness"), &logging_options_new, OPT_LOG_MY_SIGNON, | |
| 3366 | 717 vbox); |
| 3427 | 718 gaim_button(_("I_ndividual log file for each buddy's signons"), &logging_options_new, |
| 3366 | 719 OPT_LOG_INDIVIDUAL, vbox); |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
720 |
| 3427 | 721 gtk_widget_show_all(ret); |
| 3366 | 722 return ret; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
723 } |
|
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
724 |
| 3366 | 725 static GtkWidget *sndcmd = NULL; |
|
1757
3dfe4aefd366
[gaim-migrate @ 1767]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1755
diff
changeset
|
726 |
| 3366 | 727 static gint sound_cmd_yeah(GtkEntry *entry, GdkEvent *event, gpointer d) |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
728 { |
| 3366 | 729 g_snprintf(sound_cmd_new, sizeof(sound_cmd_new), "%s", gtk_entry_get_text(GTK_ENTRY(sndcmd))); |
| 730 return TRUE; | |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
731 } |
|
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
732 |
| 3366 | 733 GtkWidget *sound_page() { |
| 734 GtkWidget *ret; | |
|
1750
d2eca7a46cfd
[gaim-migrate @ 1760]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1711
diff
changeset
|
735 GtkWidget *label; |
| 3366 | 736 GtkWidget *vbox, *hbox; |
| 3427 | 737 GtkSizeGroup *sg; |
| 738 GtkWidget *dd; | |
| 3366 | 739 |
| 3427 | 740 ret = gtk_vbox_new(FALSE, 18); |
| 741 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
742 |
| 3427 | 743 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
744 |
| 3427 | 745 vbox = make_frame (ret, _("Sound Options")); |
| 3500 | 746 gaim_button(_("_No sounds when you log in"), &sound_options_new, OPT_SOUND_SILENT_SIGNON, vbox); |
| 747 gaim_button(_("_Sounds while away"), &sound_options_new, OPT_SOUND_WHEN_AWAY, vbox); | |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
748 |
| 3630 | 749 #ifndef _WIN32 |
| 3427 | 750 vbox = make_frame (ret, _("Sound Method")); |
| 751 dd = gaim_dropdown(vbox, "_Method", &sound_options_new, OPT_SOUND_BEEP | | |
| 3366 | 752 OPT_SOUND_ESD | OPT_SOUND_ARTSC | OPT_SOUND_NAS | OPT_SOUND_NORMAL | |
| 3500 | 753 OPT_SOUND_CMD, |
| 3366 | 754 "Console Beep", OPT_SOUND_BEEP, |
| 755 #ifdef ESD_SOUND | |
| 3500 | 756 "ESD", OPT_SOUND_ESD, |
| 3366 | 757 #endif /* ESD_SOUND */ |
| 758 #ifdef ARTSC_SOUND | |
| 759 "ArtsC", OPT_SOUND_ARTSC, | |
| 760 #endif /* ARTSC_SOUND */ | |
| 761 #ifdef NAS_SOUND | |
| 762 "NAS", OPT_SOUND_NAS, | |
| 3500 | 763 #endif /* NAS_SOUND */ |
| 3366 | 764 "Internal", OPT_SOUND_NORMAL, |
| 765 "Command", OPT_SOUND_CMD, NULL); | |
| 3427 | 766 gtk_size_group_add_widget(sg, dd); |
| 767 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
768 |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
769 hbox = gtk_hbox_new(FALSE, 5); |
|
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
770 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); |
| 3427 | 771 |
| 3366 | 772 hbox = gtk_hbox_new(FALSE, 5); |
| 773 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3500 | 774 label = gtk_label_new_with_mnemonic(_("Sound c_ommand\n(%s for filename)")); |
| 3427 | 775 gtk_size_group_add_widget(sg, label); |
| 776 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3366 | 777 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
|
778 |
| 3366 | 779 sndcmd = gtk_entry_new(); |
| 3427 | 780 gtk_label_set_mnemonic_widget(GTK_LABEL(label), sndcmd); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
781 |
| 3366 | 782 gtk_entry_set_editable(GTK_ENTRY(sndcmd), TRUE); |
| 783 gtk_entry_set_text(GTK_ENTRY(sndcmd), sound_cmd); | |
| 784 gtk_widget_set_size_request(sndcmd, 75, -1); | |
| 3427 | 785 |
| 3366 | 786 gtk_widget_set_sensitive(sndcmd, (sound_options_new & OPT_SOUND_CMD)); |
| 787 gtk_box_pack_start(GTK_BOX(hbox), sndcmd, TRUE, TRUE, 5); | |
| 788 gtk_signal_connect(GTK_OBJECT(sndcmd), "focus_out_event", GTK_SIGNAL_FUNC(sound_cmd_yeah), NULL); | |
| 3630 | 789 #endif /* _WIN32 */ |
| 3427 | 790 gtk_widget_show_all(ret); |
| 3366 | 791 return ret; |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
792 } |
|
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
793 |
| 3366 | 794 GtkWidget *away_page() { |
| 795 GtkWidget *ret; | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
796 GtkWidget *vbox; |
|
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
797 GtkWidget *hbox; |
| 3366 | 798 GtkWidget *label; |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
799 GtkWidget *button; |
| 3366 | 800 GtkWidget *select; |
| 3427 | 801 GtkWidget *dd; |
| 802 GtkSizeGroup *sg; | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
803 |
| 3427 | 804 ret = gtk_vbox_new(FALSE, 18); |
| 805 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
806 |
| 3427 | 807 sg = gtk_size_group_new(GTK_SIZE_GROUP_HORIZONTAL); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
808 |
| 3427 | 809 vbox = make_frame (ret, _("Away")); |
| 810 gaim_button(_("_Sending messages removes away status"), &away_options_new, OPT_AWAY_BACK_ON_IM, vbox); | |
| 811 gaim_button(_("_Queue new messages when away"), &away_options_new, OPT_AWAY_QUEUE, vbox); | |
| 812 gaim_button(_("_Ignore new conversations when away"), &away_options_new, OPT_AWAY_DISCARD, vbox); | |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
813 |
| 3427 | 814 vbox = make_frame (ret, _("Auto-response")); |
| 3366 | 815 hbox = gtk_hbox_new(FALSE, 0); |
| 816 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 3427 | 817 gaim_labeled_spin_button(hbox, _("Seconds before _resending:"), |
| 818 &away_resend_new, 1, 24 * 60 * 60, sg); | |
| 3500 | 819 gaim_button(_("_Don't send auto-response"), &away_options_new, OPT_AWAY_NO_AUTO_RESP, vbox); |
| 3427 | 820 gaim_button(_("_Only send auto-response when idle"), &away_options_new, OPT_AWAY_IDLE_RESP, vbox); |
|
1813
998a6a032874
[gaim-migrate @ 1823]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1805
diff
changeset
|
821 |
| 3366 | 822 if (away_options_new & OPT_AWAY_NO_AUTO_RESP) |
| 823 gtk_widget_set_sensitive(hbox, FALSE); | |
| 3500 | 824 |
| 3427 | 825 vbox = make_frame (ret, _("Idle")); |
| 3500 | 826 dd = gaim_dropdown(vbox, "Idle _Time Reporting:", &report_idle_new, -1, |
| 3427 | 827 "None", IDLE_NONE, |
| 3500 | 828 "Gaim Usage", IDLE_GAIM, |
| 3366 | 829 #ifdef USE_SCREENSAVER |
| 3500 | 830 "X Usage", IDLE_SCREENSAVER, |
| 3366 | 831 #endif |
| 3427 | 832 NULL); |
| 833 gtk_size_group_add_widget(sg, dd); | |
| 834 gtk_misc_set_alignment(GTK_MISC(dd), 0, 0); | |
|
2385
bdc74764245c
[gaim-migrate @ 2398]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2372
diff
changeset
|
835 |
| 3427 | 836 vbox = make_frame (ret, _("Auto-away")); |
| 837 button = gaim_button(_("Set away _when idle"), &away_options_new, OPT_AWAY_AUTO, vbox); | |
| 838 select = gaim_labeled_spin_button(vbox, "_Minutes before setting away:", &auto_away_new, 1, 24 * 60, sg); | |
| 3366 | 839 if (!(away_options_new & OPT_AWAY_AUTO)) |
| 840 gtk_widget_set_sensitive(GTK_WIDGET(select), FALSE); | |
| 841 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), select); | |
| 1 | 842 |
| 3427 | 843 label = gtk_label_new_with_mnemonic("Away m_essage:"); |
| 844 gtk_size_group_add_widget(sg, label); | |
| 845 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3366 | 846 hbox = gtk_hbox_new(FALSE, 0); |
| 847 gtk_container_add(GTK_CONTAINER(vbox), hbox); | |
| 848 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); | |
| 849 prefs_away_menu = gtk_option_menu_new(); | |
| 3427 | 850 gtk_label_set_mnemonic_widget(GTK_LABEL(label), prefs_away_menu); |
| 3366 | 851 if (!(away_options_new & OPT_AWAY_AUTO)) |
| 852 gtk_widget_set_sensitive(GTK_WIDGET(prefs_away_menu), FALSE); | |
| 853 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_sensitive), prefs_away_menu); | |
| 854 default_away_menu_init(prefs_away_menu); | |
| 855 gtk_widget_show(prefs_away_menu); | |
| 856 gtk_box_pack_start(GTK_BOX(hbox), prefs_away_menu, FALSE, FALSE, 0); | |
| 3500 | 857 |
| 3427 | 858 gtk_widget_show_all(ret); |
| 3366 | 859 return ret; |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
860 } |
|
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
861 |
| 3551 | 862 #if USE_PLUGINS |
| 863 GtkWidget *plugin_description=NULL, *plugin_details=NULL; | |
| 864 static void prefs_plugin_sel (GtkTreeSelection *sel, GtkTreeModel *model) | |
| 865 { | |
| 866 gchar buf[1024]; | |
| 867 GtkTreeIter iter; | |
| 868 GValue val = { 0, }; | |
| 869 struct gaim_plugin *plug; | |
| 870 | |
| 871 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) | |
| 872 return; | |
| 873 gtk_tree_model_get_value (model, &iter, 2, &val); | |
| 874 plug = g_value_get_pointer(&val); | |
| 875 | |
| 3563 | 876 if (plug->error[0]) |
| 877 g_snprintf(buf, sizeof(buf), _("<span size=\"larger\">%s %s</span>\n\n" | |
| 878 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
| 879 "%s"), plug->desc.name, plug->desc.version, plug->error, plug->desc.description); | |
| 880 else | |
| 881 g_snprintf(buf, sizeof(buf), _("<span size=\"larger\">%s %s</span>\n\n" | |
| 882 "%s"), plug->desc.name, plug->desc.version, plug->desc.description); | |
| 3551 | 883 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
| 3630 | 884 g_snprintf(buf, sizeof(buf), |
| 885 #ifndef _WIN32 | |
| 886 _("<span size=\"larger\">%s %s</span>\n\n" | |
| 887 "<span weight=\"bold\">Written by:</span>\t%s\n" | |
| 888 "<span weight=\"bold\">URL:</span>\t%s\n" | |
| 889 "<span weight=\"bold\">File name:</span>\t%s"), | |
| 890 #else | |
| 891 _("<span size=\"larger\">%s %s</span>\n\n" | |
| 892 "<span weight=\"bold\">Written by:</span> %s\n" | |
| 893 "<span weight=\"bold\">URL:</span> %s\n" | |
| 894 "<span weight=\"bold\">File name:</span> %s"), | |
| 895 #endif | |
| 3551 | 896 plug->desc.name, plug->desc.version, plug->desc.authors, plug->desc.url, plug->path); |
| 897 gtk_label_set_markup(GTK_LABEL(plugin_details), buf); | |
| 898 g_value_unset (&val); | |
| 899 } | |
| 900 | |
| 901 static void plugin_load (GtkCellRendererToggle *cell, gchar *pth, gpointer data) | |
| 902 { | |
| 903 GtkTreeModel *model = (GtkTreeModel *)data; | |
| 904 GtkTreeIter iter; | |
| 905 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
| 906 struct gaim_plugin *plug; | |
| 907 gchar buf[1024]; | |
| 3565 | 908 GtkWidget *(*config)(); |
| 909 | |
| 3551 | 910 GdkCursor *wait = gdk_cursor_new (GDK_WATCH); |
| 911 gdk_window_set_cursor(prefs->window, wait); | |
| 912 gdk_cursor_unref(wait); | |
| 913 | |
| 914 gtk_tree_model_get_iter (model, &iter, path); | |
| 915 gtk_tree_model_get (model, &iter, 2, &plug, -1); | |
| 916 | |
| 917 if (!plug->handle) | |
| 918 | |
| 919 if (plug->type == plugin) | |
| 920 #ifdef GAIM_PLUGINS | |
| 3565 | 921 { |
| 922 load_plugin(plug->path); | |
| 923 if (g_module_symbol(plug->handle, "gaim_plugin_config_gtk", (gpointer *)&config)) { | |
| 924 plug->iter = g_new0(GtkTreeIter, 1); | |
| 925 prefs_notebook_add_page(plug->desc.name, NULL, config(), plug->iter, &plugin_iter, notebook_page++); | |
| 3567 | 926 if (gtk_tree_model_iter_n_children(GTK_TREE_MODEL(prefstree), &plugin_iter) == 1) { |
| 927 /* Expand the tree for the first plugin added */ | |
| 3630 | 928 GtkTreePath *path2 = gtk_tree_model_get_path(GTK_TREE_MODEL(prefstree), &plugin_iter); |
| 3567 | 929 gtk_tree_view_expand_row(GTK_TREE_VIEW(tree_v), path2, TRUE); |
| 930 gtk_tree_path_free (path2); | |
| 931 } | |
| 3565 | 932 } |
| 933 } | |
| 3551 | 934 #else |
| 935 {} | |
| 936 #endif | |
| 937 else | |
| 938 #ifdef USE_PERL | |
| 939 perl_load_file(plug->path); | |
| 940 #else | |
| 941 {} | |
| 942 #endif | |
| 943 else | |
| 944 if (plug->type == plugin) | |
| 945 #ifdef GAIM_PLUGINS | |
| 3565 | 946 { |
| 947 unload_plugin(plug); | |
| 948 if (plug->iter) { | |
| 949 gtk_tree_store_remove(GTK_TREE_STORE(prefstree), plug->iter); | |
| 950 g_free(plug->iter); | |
| 951 plug->iter = NULL; | |
| 952 } | |
| 953 } | |
| 3551 | 954 #else |
| 955 {} | |
| 956 #endif | |
| 957 else | |
| 958 #ifdef USE_PERL | |
| 959 perl_unload_file(plug); | |
| 960 #else | |
| 961 {} | |
| 962 #endif | |
| 963 gdk_window_set_cursor(prefs->window, NULL); | |
| 3563 | 964 if (plug->error[0]) |
| 965 g_snprintf(buf, sizeof(buf), _("<span size=\"larger\">%s %s</span>\n\n" | |
| 966 "<span weight=\"bold\" color=\"red\">%s</span>\n\n" | |
| 967 "%s"), plug->desc.name, plug->desc.version, plug->error, plug->desc.description); | |
| 968 else | |
| 969 g_snprintf(buf, sizeof(buf), _("<span size=\"larger\">%s %s</span>\n\n" | |
| 970 "%s"), plug->desc.name, plug->desc.version, plug->desc.description); | |
| 971 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); | |
| 3551 | 972 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, plug->handle, -1); |
| 3563 | 973 |
| 3551 | 974 gtk_label_set_markup(GTK_LABEL(plugin_description), buf); |
| 975 gtk_tree_path_free(path); | |
| 976 } | |
| 977 | |
| 978 static GtkWidget *plugin_page () | |
| 979 { | |
| 980 GtkWidget *ret; | |
| 981 | |
| 982 GtkWidget *sw, *vp; | |
| 983 GtkTreeIter iter; | |
| 984 GtkWidget *event_view; | |
| 985 GtkListStore *ls; | |
| 986 GtkCellRenderer *rend, *rendt; | |
| 987 GtkTreeViewColumn *col; | |
| 988 GtkTreeSelection *sel; | |
| 989 GtkTreePath *path; | |
| 990 | |
| 991 GtkWidget *nb; | |
| 992 | |
| 993 GList *probes = probed_plugins; | |
| 994 struct gaim_plugin *plug; | |
| 995 | |
| 996 ret = gtk_vbox_new(FALSE, 18); | |
| 997 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 998 | |
| 999 sw = gtk_scrolled_window_new(NULL,NULL); | |
| 1000 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); | |
| 1001 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_IN); | |
| 1002 | |
| 1003 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); | |
| 1004 | |
| 1005 ls = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_POINTER); | |
| 1006 while (probes) { | |
| 1007 plug = probes->data; | |
| 1008 gtk_list_store_append (ls, &iter); | |
| 1009 gtk_list_store_set(ls, &iter, | |
| 1010 0, plug->handle, | |
| 1011 1, plug->desc.name ? plug->desc.name : plug->path, | |
| 1012 2, plug, -1); | |
| 1013 probes = probes->next; | |
| 1014 } | |
| 1015 | |
| 1016 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); | |
| 1017 | |
| 1018 rend = gtk_cell_renderer_toggle_new(); | |
| 1019 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
| 1020 | |
| 1021 | |
| 1022 col = gtk_tree_view_column_new_with_attributes ("Load", | |
| 1023 rend, | |
| 1024 "active", 0, | |
| 1025 NULL); | |
| 1026 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1027 | |
| 1028 rendt = gtk_cell_renderer_text_new(); | |
| 1029 col = gtk_tree_view_column_new_with_attributes ("Name", | |
| 1030 rendt, | |
| 1031 "text", 1, | |
| 1032 NULL); | |
| 1033 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1034 g_object_unref(G_OBJECT(ls)); | |
| 1035 gtk_container_add(GTK_CONTAINER(sw), event_view); | |
| 1036 | |
| 1037 | |
| 1038 nb = gtk_notebook_new(); | |
| 1039 gtk_notebook_set_tab_pos (GTK_NOTEBOOK(nb), GTK_POS_BOTTOM); | |
| 1040 gtk_notebook_popup_disable(GTK_NOTEBOOK(nb)); | |
| 1041 | |
| 1042 /* Description */ | |
| 1043 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1044 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 1045 plugin_description = gtk_label_new(NULL); | |
| 1046 | |
| 1047 vp = gtk_viewport_new(NULL, NULL); | |
| 3630 | 1048 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); |
| 3551 | 1049 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
| 1050 | |
| 3630 | 1051 gtk_container_add(GTK_CONTAINER(vp), plugin_description); |
| 1052 gtk_container_add(GTK_CONTAINER(sw), vp); | |
| 3551 | 1053 |
| 3630 | 1054 gtk_label_set_selectable(GTK_LABEL(plugin_description), TRUE); |
| 1055 gtk_label_set_line_wrap(GTK_LABEL(plugin_description), TRUE); | |
| 3551 | 1056 gtk_misc_set_alignment(GTK_MISC(plugin_description), 0, 0); |
| 1057 gtk_misc_set_padding(GTK_MISC(plugin_description), 6, 6); | |
| 1058 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Description"))); | |
| 1059 | |
| 1060 /* Details */ | |
| 1061 sw = gtk_scrolled_window_new(NULL, NULL); | |
| 1062 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
| 1063 plugin_details = gtk_label_new(NULL); | |
| 1064 | |
| 1065 vp = gtk_viewport_new(NULL, NULL); | |
| 3630 | 1066 gtk_viewport_set_shadow_type(GTK_VIEWPORT(vp), GTK_SHADOW_NONE); |
| 3551 | 1067 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_NONE); |
| 1068 | |
| 3630 | 1069 gtk_container_add(GTK_CONTAINER(vp), plugin_details); |
| 1070 gtk_container_add(GTK_CONTAINER(sw), vp); | |
| 3551 | 1071 |
| 3630 | 1072 gtk_label_set_selectable(GTK_LABEL(plugin_details), TRUE); |
| 1073 gtk_label_set_line_wrap(GTK_LABEL(plugin_details), TRUE); | |
| 3551 | 1074 gtk_misc_set_alignment(GTK_MISC(plugin_details), 0, 0); |
| 1075 gtk_misc_set_padding(GTK_MISC(plugin_details), 6, 6); | |
| 1076 gtk_notebook_append_page(GTK_NOTEBOOK(nb), sw, gtk_label_new(_("Details"))); | |
| 1077 gtk_box_pack_start(GTK_BOX(ret), nb, TRUE, TRUE, 0); | |
| 1078 | |
| 1079 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1080 G_CALLBACK (prefs_plugin_sel), | |
| 1081 NULL); | |
| 1082 g_signal_connect (G_OBJECT(rend), "toggled", | |
| 1083 G_CALLBACK(plugin_load), ls); | |
| 1084 | |
| 1085 path = gtk_tree_path_new_first(); | |
| 1086 gtk_tree_selection_select_path(sel, path); | |
| 1087 gtk_tree_path_free(path); | |
| 1088 | |
| 1089 gtk_widget_show_all(ret); | |
| 1090 return ret; | |
| 1091 } | |
| 1092 #endif | |
| 1093 | |
| 3366 | 1094 static void event_toggled (GtkCellRendererToggle *cell, gchar *pth, gpointer data) |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1095 { |
| 3366 | 1096 GtkTreeModel *model = (GtkTreeModel *)data; |
| 1097 GtkTreeIter iter; | |
| 1098 GtkTreePath *path = gtk_tree_path_new_from_string(pth); | |
| 3500 | 1099 gint soundnum; |
| 3366 | 1100 |
| 1101 gtk_tree_model_get_iter (model, &iter, path); | |
| 1102 gtk_tree_model_get (model, &iter, 2, &soundnum, -1); | |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1103 |
| 3500 | 1104 sound_options_new ^= sounds[soundnum].opt; |
| 3366 | 1105 gtk_list_store_set (GTK_LIST_STORE (model), &iter, 0, sound_options_new & sounds[soundnum].opt, -1); |
| 3522 | 1106 |
| 1107 gtk_tree_path_free(path); | |
| 3366 | 1108 } |
| 1109 | |
| 1110 static void test_sound(GtkWidget *button, gpointer i_am_NULL) | |
| 1111 { | |
| 1112 guint32 tmp_sound = sound_options; | |
| 3401 | 1113 char *save_me=NULL; |
| 3366 | 1114 if (!(sound_options & OPT_SOUND_WHEN_AWAY)) |
| 1115 sound_options ^= OPT_SOUND_WHEN_AWAY; | |
| 1116 if (!(sound_options & sounds[sound_row_sel].opt)) | |
| 1117 sound_options ^= sounds[sound_row_sel].opt; | |
| 3401 | 1118 save_me = sound_file[sound_row_sel]; |
| 1119 sound_file[sound_row_sel] = sound_file_new[sound_row_sel]; | |
| 3366 | 1120 play_sound(sound_row_sel); |
| 3500 | 1121 |
| 3401 | 1122 sound_file[sound_row_sel] = save_me; |
| 3366 | 1123 sound_options = tmp_sound; |
|
873
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1124 } |
|
789df4b47508
[gaim-migrate @ 883]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
864
diff
changeset
|
1125 |
| 3366 | 1126 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
|
1127 { |
| 3366 | 1128 /* This just resets a sound file back to default */ |
| 3485 | 1129 if (sound_file_new[sound_row_sel]) { |
| 1130 g_free(sound_file_new[sound_row_sel]); | |
| 1131 sound_file_new[sound_row_sel] = NULL; | |
| 1132 } | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1133 |
| 3366 | 1134 gtk_entry_set_text(GTK_ENTRY(sound_entry), "(default)"); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1135 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1136 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1137 void close_sounddialog(GtkWidget *w, GtkWidget *w2) |
| 1170 | 1138 { |
| 1139 | |
| 1140 GtkWidget *dest; | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1141 |
| 1170 | 1142 if (!GTK_IS_WIDGET(w2)) |
| 1143 dest = w; | |
| 1144 else | |
| 1145 dest = w2; | |
| 1146 | |
| 1147 sounddialog = NULL; | |
| 1148 | |
| 1149 gtk_widget_destroy(dest); | |
| 1150 } | |
| 1151 | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1152 void do_select_sound(GtkWidget *w, int snd) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1153 { |
|
1953
f0ff0b367e3d
[gaim-migrate @ 1963]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1930
diff
changeset
|
1154 const char *file; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1155 |
| 1170 | 1156 file = gtk_file_selection_get_filename(GTK_FILE_SELECTION(sounddialog)); |
| 1157 | |
| 1158 /* If they type in a directory, change there */ | |
| 1159 if (file_is_dir(file, sounddialog)) | |
| 1160 return; | |
| 1161 | |
| 1162 /* Let's just be safe */ | |
| 3366 | 1163 if (sound_file_new[snd]) |
| 3485 | 1164 g_free(sound_file_new[snd]); |
| 1170 | 1165 |
| 1166 /* Set it -- and forget it */ | |
| 3366 | 1167 sound_file_new[snd] = g_strdup(file); |
| 3500 | 1168 |
| 1175 | 1169 /* Set our text entry */ |
| 3366 | 1170 gtk_entry_set_text(GTK_ENTRY(sound_entry), sound_file_new[snd]); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1171 |
| 1170 | 1172 /* Close the window! It's getting cold in here! */ |
| 1173 close_sounddialog(NULL, sounddialog); | |
|
2471
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1174 |
|
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1175 if (last_sound_dir) |
|
612efbf62c35
[gaim-migrate @ 2484]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2385
diff
changeset
|
1176 g_free(last_sound_dir); |
| 3429 | 1177 last_sound_dir = g_dirname(sound_file_new[snd]); |
| 1170 | 1178 } |
| 1179 | |
| 3366 | 1180 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
|
1181 { |
| 1170 | 1182 char *buf = g_malloc(BUF_LEN); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1183 |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1184 if (!sounddialog) { |
| 1170 | 1185 sounddialog = gtk_file_selection_new(_("Gaim - Sound Configuration")); |
| 1186 | |
| 1187 gtk_file_selection_hide_fileop_buttons(GTK_FILE_SELECTION(sounddialog)); | |
| 1188 | |
| 3630 | 1189 g_snprintf(buf, BUF_LEN - 1, "%s" G_DIR_SEPARATOR_S, last_sound_dir ? last_sound_dir : gaim_home_dir()); |
| 1170 | 1190 |
| 1191 gtk_file_selection_set_filename(GTK_FILE_SELECTION(sounddialog), buf); | |
| 1192 | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1193 gtk_signal_connect(GTK_OBJECT(sounddialog), "destroy", |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1194 GTK_SIGNAL_FUNC(close_sounddialog), sounddialog); |
| 1170 | 1195 |
| 1196 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(sounddialog)->ok_button), | |
| 3366 | 1197 "clicked", GTK_SIGNAL_FUNC(do_select_sound), (int *)sound_row_sel); |
| 1170 | 1198 |
| 1199 gtk_signal_connect(GTK_OBJECT(GTK_FILE_SELECTION(sounddialog)->cancel_button), | |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1200 "clicked", GTK_SIGNAL_FUNC(close_sounddialog), sounddialog); |
| 1170 | 1201 } |
| 1202 | |
| 1203 g_free(buf); | |
| 1204 gtk_widget_show(sounddialog); | |
| 1205 gdk_window_raise(sounddialog->window); | |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1206 } |
|
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1207 |
| 3366 | 1208 |
| 1209 static void prefs_sound_sel (GtkTreeSelection *sel, GtkTreeModel *model) { | |
| 1210 GtkTreeIter iter; | |
| 1211 GValue val = { 0, }; | |
| 3500 | 1212 |
| 3366 | 1213 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 1214 return; | |
| 1215 gtk_tree_model_get_value (model, &iter, 2, &val); | |
| 1216 sound_row_sel = g_value_get_uint(&val); | |
| 1217 if (sound_entry) | |
| 3374 | 1218 gtk_entry_set_text(GTK_ENTRY(sound_entry), sound_file_new[sound_row_sel] ? sound_file_new[sound_row_sel] : "(default)"); |
| 3366 | 1219 g_value_unset (&val); |
| 1220 if (sounddialog) | |
| 1221 gtk_widget_destroy(sounddialog); | |
| 1222 } | |
| 1223 | |
| 1224 GtkWidget *sound_events_page() { | |
| 1225 | |
| 1226 GtkWidget *ret; | |
| 1227 GtkWidget *sw; | |
| 1228 GtkWidget *button, *hbox; | |
| 1229 GtkTreeIter iter; | |
| 1230 GtkWidget *event_view; | |
| 1231 GtkListStore *event_store; | |
| 1232 GtkCellRenderer *rend; | |
| 1233 GtkTreeViewColumn *col; | |
| 1234 GtkTreeSelection *sel; | |
| 1235 GtkTreePath *path; | |
| 1236 int j; | |
| 1237 | |
| 3427 | 1238 ret = gtk_vbox_new(FALSE, 18); |
| 1239 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 3366 | 1240 |
| 1241 sw = gtk_scrolled_window_new(NULL,NULL); | |
| 1242 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
| 3427 | 1243 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
| 3366 | 1244 event_store = gtk_list_store_new (3, G_TYPE_BOOLEAN, G_TYPE_STRING, G_TYPE_UINT); |
| 1245 | |
| 1246 for (j=0; j < NUM_SOUNDS; j++) { | |
| 1247 if (sounds[j].opt == 0) | |
| 1248 continue; | |
| 3500 | 1249 |
| 3366 | 1250 gtk_list_store_append (event_store, &iter); |
| 1251 gtk_list_store_set(event_store, &iter, | |
| 1252 0, sound_options & sounds[j].opt, | |
| 3500 | 1253 1, sounds[j].label, |
| 3366 | 1254 2, j, -1); |
| 1255 } | |
| 1256 | |
| 1257 event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(event_store)); | |
| 3500 | 1258 |
| 3366 | 1259 rend = gtk_cell_renderer_toggle_new(); |
| 1260 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
| 1261 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1262 G_CALLBACK (prefs_sound_sel), | |
| 1263 NULL); | |
| 1264 g_signal_connect (G_OBJECT(rend), "toggled", | |
| 1265 G_CALLBACK(event_toggled), event_store); | |
| 1266 path = gtk_tree_path_new_first(); | |
| 1267 gtk_tree_selection_select_path(sel, path); | |
| 3522 | 1268 gtk_tree_path_free(path); |
| 3500 | 1269 |
| 3366 | 1270 col = gtk_tree_view_column_new_with_attributes ("Play", |
| 1271 rend, | |
| 1272 "active", 0, | |
| 1273 NULL); | |
| 1274 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1275 | |
| 1276 rend = gtk_cell_renderer_text_new(); | |
| 1277 col = gtk_tree_view_column_new_with_attributes ("Event", | |
| 1278 rend, | |
| 1279 "text", 1, | |
| 1280 NULL); | |
| 1281 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 3500 | 1282 g_object_unref(G_OBJECT(event_store)); |
| 3366 | 1283 gtk_container_add(GTK_CONTAINER(sw), event_view); |
| 1284 | |
| 3427 | 1285 hbox = gtk_hbox_new(FALSE, 6); |
| 1286 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); | |
| 3366 | 1287 sound_entry = gtk_entry_new(); |
| 1288 gtk_entry_set_text(GTK_ENTRY(sound_entry), sound_file_new[0] ? sound_file_new[0] : "(default)"); | |
| 1289 gtk_entry_set_editable(GTK_ENTRY(sound_entry), FALSE); | |
| 1290 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
|
1291 |
| 3025 | 1292 button = gtk_button_new_with_label(_("Test")); |
| 3366 | 1293 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(test_sound), NULL); |
| 1294 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
|
1295 |
| 1175 | 1296 button = gtk_button_new_with_label(_("Reset")); |
| 3366 | 1297 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(reset_sound), NULL); |
| 1298 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
| 1175 | 1299 |
| 1381 | 1300 button = gtk_button_new_with_label(_("Choose...")); |
| 3366 | 1301 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(sel_sound), NULL); |
| 1302 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 1); | |
| 3500 | 1303 |
| 3427 | 1304 gtk_widget_show_all (ret); |
|
1006
0a4d0ed65e17
[gaim-migrate @ 1016]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1002
diff
changeset
|
1305 |
| 3366 | 1306 return ret; |
|
2580
86eaeb064e82
[gaim-migrate @ 2593]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2566
diff
changeset
|
1307 } |
|
86eaeb064e82
[gaim-migrate @ 2593]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2566
diff
changeset
|
1308 |
| 3366 | 1309 void away_message_sel(GtkTreeSelection *sel, GtkTreeModel *model) |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1310 { |
| 3366 | 1311 GtkTreeIter iter; |
| 1312 GValue val = { 0, }; | |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1313 gchar buffer[BUF_LONG]; |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1314 char *tmp; |
| 3374 | 1315 struct away_message *am; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1316 |
| 3366 | 1317 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 1318 return; | |
| 1319 gtk_tree_model_get_value (model, &iter, 1, &val); | |
| 3374 | 1320 am = g_value_get_pointer(&val); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1321 gtk_imhtml_clear(GTK_IMHTML(away_text)); |
| 3374 | 1322 strncpy(buffer, am->message, BUF_LONG); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1323 tmp = stylize(buffer, BUF_LONG); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2843
diff
changeset
|
1324 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
|
1325 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
|
2856
b1e300a85678
[gaim-migrate @ 2869]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2843
diff
changeset
|
1326 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
|
1327 GTK_IMHTML_NO_COMMENTS | GTK_IMHTML_NO_SCROLL); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1328 g_free(tmp); |
| 3366 | 1329 g_value_unset (&val); |
| 3500 | 1330 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1331 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1332 |
| 3500 | 1333 void remove_away_message(GtkWidget *widget, GtkTreeView *tv) { |
| 3366 | 1334 struct away_message *am; |
| 1335 GtkTreeIter iter; | |
| 1336 GtkTreePath *path; | |
| 1337 GtkTreeStore *ts = GTK_TREE_STORE(gtk_tree_view_get_model(tv)); | |
| 1338 GtkTreeSelection *sel = gtk_tree_view_get_selection(tv); | |
| 3379 | 1339 GtkTreeModel *model = GTK_TREE_MODEL(prefs_away_store); |
| 3366 | 1340 GValue val = { 0, }; |
| 3500 | 1341 |
| 3379 | 1342 if (! gtk_tree_selection_get_selected (sel, &model, &iter)) |
| 3366 | 1343 return; |
| 3379 | 1344 gtk_tree_model_get_value (GTK_TREE_MODEL(prefs_away_store), &iter, 1, &val); |
| 3366 | 1345 am = g_value_get_pointer (&val); |
| 1346 gtk_imhtml_clear(GTK_IMHTML(away_text)); | |
| 1347 rem_away_mess(NULL, am); | |
| 3379 | 1348 gtk_list_store_remove(GTK_LIST_STORE(ts), &iter); |
| 1349 path = gtk_tree_path_new_first(); | |
| 3366 | 1350 gtk_tree_selection_select_path(sel, path); |
| 3522 | 1351 gtk_tree_path_free(path); |
|
1109
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1352 } |
|
c73736fa0b7c
[gaim-migrate @ 1119]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1087
diff
changeset
|
1353 |
| 3366 | 1354 GtkWidget *away_message_page() { |
| 1355 GtkWidget *ret; | |
| 3427 | 1356 GtkWidget *hbox; |
| 3379 | 1357 GtkWidget *button; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1358 GtkWidget *sw; |
| 3366 | 1359 GtkTreeIter iter; |
| 1360 GtkWidget *event_view; | |
| 1361 GtkCellRenderer *rend; | |
| 1362 GtkTreeViewColumn *col; | |
| 1363 GtkTreeSelection *sel; | |
| 940 | 1364 GSList *awy = away_messages; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1365 struct away_message *a; |
| 3366 | 1366 GtkWidget *sw2; |
| 3427 | 1367 GtkSizeGroup *sg; |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1368 |
| 3427 | 1369 ret = gtk_vbox_new(FALSE, 18); |
| 1370 gtk_container_set_border_width (GTK_CONTAINER (ret), 12); | |
| 1371 | |
| 1372 sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); | |
| 3500 | 1373 |
| 3366 | 1374 sw = gtk_scrolled_window_new(NULL,NULL); |
| 1375 away_text = gtk_imhtml_new(NULL, NULL); | |
| 3427 | 1376 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER, GTK_POLICY_ALWAYS); |
| 3379 | 1377 gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), |
| 1378 GTK_SHADOW_IN); | |
| 3427 | 1379 gtk_box_pack_start(GTK_BOX(ret), sw, TRUE, TRUE, 0); |
| 3500 | 1380 |
| 3374 | 1381 prefs_away_store = gtk_list_store_new (2, G_TYPE_STRING, G_TYPE_POINTER); |
| 3366 | 1382 while (awy) { |
| 1383 a = (struct away_message *)awy->data; | |
| 1384 gtk_list_store_append (prefs_away_store, &iter); | |
| 1385 gtk_list_store_set(prefs_away_store, &iter, | |
| 3374 | 1386 0, a->name, |
| 1387 1, a, -1); | |
| 3366 | 1388 awy = awy->next; |
| 1389 } | |
| 1390 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
|
1391 |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1392 |
| 3366 | 1393 rend = gtk_cell_renderer_text_new(); |
| 1394 col = gtk_tree_view_column_new_with_attributes ("NULL", | |
| 1395 rend, | |
| 1396 "text", 0, | |
| 1397 NULL); | |
| 1398 gtk_tree_view_append_column (GTK_TREE_VIEW(event_view), col); | |
| 1399 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW(event_view), FALSE); | |
| 1400 gtk_widget_show(event_view); | |
| 3427 | 1401 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), event_view); |
| 3374 | 1402 |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1403 sw2 = gtk_scrolled_window_new(NULL, NULL); |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1404 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw2), |
|
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1405 GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS); |
| 3427 | 1406 gtk_box_pack_start(GTK_BOX(ret), sw2, TRUE, TRUE, 0); |
| 3500 | 1407 |
| 3427 | 1408 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw2), away_text); |
|
2906
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1409 GTK_LAYOUT(away_text)->hadjustment->step_increment = 10.0; |
|
538c58b43eff
[gaim-migrate @ 2919]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2856
diff
changeset
|
1410 GTK_LAYOUT(away_text)->vadjustment->step_increment = 10.0; |
|
1815
f15d449b3167
[gaim-migrate @ 1825]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1813
diff
changeset
|
1411 gaim_setup_imhtml(away_text); |
| 3366 | 1412 gtk_imhtml_set_defaults(GTK_IMHTML(away_text), NULL, NULL, NULL); |
| 1413 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); | |
| 1414 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1415 G_CALLBACK (away_message_sel), | |
| 1416 NULL); | |
| 1417 hbox = gtk_hbox_new(TRUE, 5); | |
| 3427 | 1418 gtk_box_pack_start(GTK_BOX(ret), hbox, FALSE, FALSE, 0); |
| 3366 | 1419 button = gtk_button_new_from_stock (GTK_STOCK_ADD); |
| 1420 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 3427 | 1421 gtk_size_group_add_widget(sg, button); |
|
1780
d7cbedd1d651
[gaim-migrate @ 1790]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1773
diff
changeset
|
1422 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), NULL); |
| 3472 | 1423 |
| 3366 | 1424 button = gtk_button_new_from_stock (GTK_STOCK_REMOVE); |
| 3427 | 1425 gtk_size_group_add_widget(sg, button); |
| 3366 | 1426 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(remove_away_message), event_view); |
| 3472 | 1427 |
| 3366 | 1428 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3472 | 1429 |
| 3649 | 1430 button = gaim_pixbuf_button(_("_Edit"), "edit.png", GAIM_BUTTON_HORIZONTAL); |
| 3427 | 1431 gtk_size_group_add_widget(sg, button); |
| 3374 | 1432 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(create_away_mess), event_view); |
| 3366 | 1433 gtk_box_pack_start(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 3500 | 1434 |
| 3427 | 1435 gtk_widget_show_all(ret); |
| 3366 | 1436 return ret; |
| 1437 } | |
| 3472 | 1438 |
| 3500 | 1439 GtkTreeIter *prefs_notebook_add_page(char *text, |
| 1440 GdkPixbuf *pixbuf, | |
| 1441 GtkWidget *page, | |
| 3366 | 1442 GtkTreeIter *iter, |
| 3500 | 1443 GtkTreeIter *parent, |
| 3366 | 1444 int ind) { |
| 1445 GdkPixbuf *icon = NULL; | |
| 3500 | 1446 |
| 3366 | 1447 if (pixbuf) |
| 3500 | 1448 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
|
1449 |
| 3366 | 1450 gtk_tree_store_append (prefstree, iter, parent); |
| 1451 gtk_tree_store_set (prefstree, iter, 0, icon, 1, text, 2, ind, -1); | |
| 3500 | 1452 |
| 3366 | 1453 if (pixbuf) |
| 1454 g_object_unref(pixbuf); | |
| 1455 if (icon) | |
| 1456 g_object_unref(icon); | |
| 1457 gtk_notebook_append_page(GTK_NOTEBOOK(prefsnotebook), page, gtk_label_new(text)); | |
| 1458 return iter; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1459 } |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1460 |
| 3366 | 1461 void prefs_notebook_init() { |
| 1462 GtkTreeIter p, c; | |
| 3565 | 1463 #if USE_PLUGINS |
| 1464 GtkWidget *(*config)(); | |
| 1465 GList *l = plugins; | |
| 1466 struct gaim_plugin *plug; | |
| 1467 #endif | |
| 1468 prefs_notebook_add_page(_("Interface"), NULL, interface_page(), &p, NULL, notebook_page++); | |
| 1469 prefs_notebook_add_page(_("Fonts"), NULL, font_page(), &c, &p, notebook_page++); | |
| 1470 prefs_notebook_add_page(_("Message Text"), NULL, messages_page(), &c, &p, notebook_page++); | |
| 1471 prefs_notebook_add_page(_("Shortcuts"), NULL, hotkeys_page(), &c, &p, notebook_page++); | |
| 1472 prefs_notebook_add_page(_("Buddy List"), NULL, list_page(), &c, &p, notebook_page++); | |
| 1473 prefs_notebook_add_page(_("IM Window"), NULL, im_page(), &c, &p, notebook_page++); | |
| 1474 prefs_notebook_add_page(_("Chat Window"), NULL, chat_page(), &c, &p, notebook_page++); | |
| 1475 prefs_notebook_add_page(_("Tabs"), NULL, tab_page(), &c, &p, notebook_page++); | |
| 1476 prefs_notebook_add_page(_("Proxy"), NULL, proxy_page(), &p, NULL, notebook_page++); | |
| 1477 prefs_notebook_add_page(_("Browser"), NULL, browser_page(), &p, NULL, notebook_page++); | |
|
1130
d31fad9abb32
[gaim-migrate @ 1140]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1125
diff
changeset
|
1478 |
| 3565 | 1479 prefs_notebook_add_page(_("Logging"), NULL, logging_page(), &p, NULL, notebook_page++); |
| 1480 prefs_notebook_add_page(_("Sounds"), NULL, sound_page(), &p, NULL, notebook_page++); | |
| 1481 prefs_notebook_add_page(_("Sound Events"), NULL, sound_events_page(), &c, &p, notebook_page++); | |
| 1482 prefs_notebook_add_page(_("Away / Idle"), NULL, away_page(), &p, NULL, notebook_page++); | |
| 1483 prefs_notebook_add_page(_("Away Messages"), NULL, away_message_page(), &c, &p, notebook_page++); | |
| 3551 | 1484 #if USE_PLUGINS |
| 3565 | 1485 prefs_notebook_add_page(_("Plugins"), NULL, plugin_page(), &plugin_iter, NULL, notebook_page++); |
| 1486 while (l) { | |
| 1487 plug = l->data; | |
| 1488 if (plug->type == plugin && g_module_symbol(plug->handle, "gaim_plugin_config_gtk", (gpointer *)&config)) { | |
| 1489 plug->iter = g_new0(GtkTreeIter, 1); | |
| 1490 prefs_notebook_add_page(plug->desc.name, NULL, config(), plug->iter, &plugin_iter, notebook_page++); | |
| 1491 } | |
| 1492 l = l->next; | |
| 1493 } | |
| 3551 | 1494 #endif |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1495 } |
|
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1496 |
| 3500 | 1497 void show_prefs() |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1498 { |
| 3366 | 1499 GtkWidget *vbox, *vbox2; |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1500 GtkWidget *hbox; |
| 3366 | 1501 GtkWidget *frame; |
| 1502 GtkTreeViewColumn *column; | |
| 1503 GtkCellRenderer *cell; | |
| 1504 GtkTreeSelection *sel; | |
| 1505 GtkWidget *notebook; | |
| 1506 GtkWidget *sep; | |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
1507 GtkWidget *button; |
| 3515 | 1508 GtkSizeGroup *sg = gtk_size_group_new(GTK_SIZE_GROUP_BOTH); |
| 3500 | 1509 |
| 3366 | 1510 int r; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1511 |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1512 if (prefs) { |
| 3472 | 1513 gtk_window_present(GTK_WINDOW(prefs)); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1514 return; |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1515 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1516 |
| 3366 | 1517 /* copy the preferences to tmp values... |
| 1518 * I liked "take affect immediately" Oh well :-( */ | |
| 1519 misc_options_new = misc_options; | |
| 1520 logging_options_new = logging_options; | |
| 1521 blist_options_new = blist_options; | |
| 1522 convo_options_new = convo_options; | |
| 1523 im_options_new = im_options; | |
| 1524 chat_options_new = chat_options; | |
| 1525 font_options_new = font_options; | |
| 1526 sound_options_new = sound_options; | |
| 1527 for (r = 0; r < NUM_SOUNDS; r++) | |
| 1528 sound_file_new[r] = g_strdup(sound_file[r]); | |
| 1529 away_options_new = away_options; | |
| 1530 away_resend_new = away_resend; | |
| 1531 report_idle_new = report_idle; | |
| 1532 auto_away_new = auto_away; | |
| 1533 default_away_new = default_away; | |
| 1534 fontsize_new = fontsize; | |
| 1535 web_browser_new = web_browser; | |
| 1536 proxytype_new = proxytype; | |
| 3630 | 1537 #ifndef _WIN32 |
| 3366 | 1538 g_snprintf(sound_cmd_new, sizeof(sound_cmd_new), "%s", sound_cmd); |
| 3630 | 1539 #endif |
| 1540 g_snprintf(web_command_new, sizeof(web_command_new), "%s", | |
| 3434 | 1541 web_command ? web_command : "xterm -e lynx %%s"); |
| 3366 | 1542 g_snprintf(fontface_new, sizeof(fontface_new), fontface); |
| 1543 memcpy(&conv_size_new, &conv_size, sizeof(struct window_size)); | |
| 3500 | 1544 memcpy(&buddy_chat_size_new, &buddy_chat_size, sizeof(struct window_size)); |
| 3366 | 1545 memcpy(&fgcolor_new, &fgcolor, sizeof(GdkColor)); |
| 1546 memcpy(&bgcolor_new, &bgcolor, sizeof(GdkColor)); | |
| 3500 | 1547 |
| 3366 | 1548 /* Create the window */ |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1549 prefs = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 905 | 1550 gtk_window_set_wmclass(GTK_WINDOW(prefs), "preferences", "Gaim"); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1551 gtk_widget_realize(prefs); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1552 gtk_window_set_title(GTK_WINDOW(prefs), _("Gaim - Preferences")); |
| 3366 | 1553 gtk_window_set_policy (GTK_WINDOW(prefs), FALSE, FALSE, TRUE); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1554 gtk_signal_connect(GTK_OBJECT(prefs), "destroy", GTK_SIGNAL_FUNC(delete_prefs), NULL); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1555 |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1556 vbox = gtk_vbox_new(FALSE, 5); |
| 1185 | 1557 gtk_container_border_width(GTK_CONTAINER(vbox), 5); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1558 gtk_container_add(GTK_CONTAINER(prefs), vbox); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1559 gtk_widget_show(vbox); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1560 |
| 3366 | 1561 hbox = gtk_hbox_new (FALSE, 6); |
| 1562 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
| 1563 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
| 1564 gtk_widget_show (hbox); | |
| 1565 | |
| 1566 frame = gtk_frame_new (NULL); | |
| 1567 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
| 1568 gtk_box_pack_start (GTK_BOX (hbox), frame, FALSE, FALSE, 0); | |
| 1569 gtk_widget_show (frame); | |
| 3500 | 1570 |
| 3366 | 1571 /* The tree -- much inspired by the Gimp */ |
| 1572 prefstree = gtk_tree_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_INT); | |
| 1573 tree_v = gtk_tree_view_new_with_model (GTK_TREE_MODEL (prefstree)); | |
| 1574 gtk_container_add (GTK_CONTAINER (frame), tree_v); | |
| 1575 | |
| 1576 gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tree_v), FALSE); | |
| 1577 gtk_widget_show(tree_v); | |
| 1578 /* icons */ | |
| 1579 cell = gtk_cell_renderer_pixbuf_new (); | |
| 1580 column = gtk_tree_view_column_new_with_attributes ("icons", cell, "pixbuf", 0, NULL); | |
| 3500 | 1581 |
| 3366 | 1582 /* text */ |
| 1583 cell = gtk_cell_renderer_text_new (); | |
| 1584 column = gtk_tree_view_column_new_with_attributes ("text", cell, "text", 1, NULL); | |
| 3500 | 1585 |
| 3366 | 1586 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
|
1587 |
| 3472 | 1588 /* The right side */ |
| 1589 frame = gtk_frame_new (NULL); | |
| 1590 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_IN); | |
| 1591 gtk_box_pack_start (GTK_BOX (hbox), frame, TRUE, TRUE, 0); | |
| 1592 gtk_widget_show (frame); | |
| 3500 | 1593 |
| 3472 | 1594 vbox2 = gtk_vbox_new (FALSE, 4); |
| 1595 gtk_container_add (GTK_CONTAINER (frame), vbox2); | |
| 1596 gtk_widget_show (vbox2); | |
| 3500 | 1597 |
| 3472 | 1598 frame = gtk_frame_new (NULL); |
| 1599 gtk_frame_set_shadow_type (GTK_FRAME (frame), GTK_SHADOW_OUT); | |
| 1600 gtk_box_pack_start (GTK_BOX (vbox2), frame, FALSE, TRUE, 0); | |
| 1601 gtk_widget_show (frame); | |
| 3500 | 1602 |
| 3472 | 1603 hbox = gtk_hbox_new (FALSE, 4); |
| 1604 gtk_container_set_border_width (GTK_CONTAINER (hbox), 4); | |
| 1605 gtk_container_add (GTK_CONTAINER (frame), hbox); | |
| 1606 gtk_widget_show (hbox); | |
| 3500 | 1607 |
| 3472 | 1608 preflabel = gtk_label_new(NULL); |
| 1609 gtk_box_pack_end (GTK_BOX (hbox), preflabel, FALSE, FALSE, 0); | |
| 1610 gtk_widget_show (preflabel); | |
| 3500 | 1611 |
| 3472 | 1612 /* The notebook */ |
| 1613 prefsnotebook = notebook = gtk_notebook_new (); | |
| 1614 gtk_notebook_set_show_tabs (GTK_NOTEBOOK (notebook), FALSE); | |
| 1615 gtk_notebook_set_show_border (GTK_NOTEBOOK (notebook), FALSE); | |
| 1616 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
|
1617 |
| 3472 | 1618 sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (tree_v)); |
| 1619 g_signal_connect (G_OBJECT (sel), "changed", | |
| 1620 G_CALLBACK (pref_nb_select), | |
| 1621 notebook); | |
| 3500 | 1622 gtk_widget_show(notebook); |
| 3472 | 1623 sep = gtk_hseparator_new(); |
| 1624 gtk_widget_show(sep); | |
| 1625 gtk_box_pack_start (GTK_BOX (vbox), sep, FALSE, FALSE, 0); | |
| 3500 | 1626 |
| 3472 | 1627 /* The buttons to press! */ |
| 1628 hbox = gtk_hbox_new (FALSE, 6); | |
| 1629 gtk_container_set_border_width (GTK_CONTAINER (hbox), 6); | |
| 1630 gtk_container_add (GTK_CONTAINER(vbox), hbox); | |
| 3500 | 1631 gtk_widget_show (hbox); |
| 3377 | 1632 |
| 3509 | 1633 button = gtk_button_new_from_stock (GTK_STOCK_OK); |
| 3515 | 1634 gtk_size_group_add_widget(sg, button); |
| 3509 | 1635 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(ok_cb), prefs); |
| 1636 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 1637 gtk_widget_show(button); | |
| 1638 | |
| 3515 | 1639 button = gtk_button_new_from_stock (GTK_STOCK_CANCEL); |
| 1640 gtk_size_group_add_widget(sg, button); | |
| 1641 gtk_signal_connect_object(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(gtk_widget_destroy), prefs); | |
| 1642 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); | |
| 1643 gtk_widget_show(button); | |
| 1644 | |
| 3472 | 1645 button = gtk_button_new_from_stock (GTK_STOCK_APPLY); |
| 3515 | 1646 gtk_size_group_add_widget(sg, button); |
| 3500 | 1647 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(apply_cb), prefs); |
| 3472 | 1648 gtk_box_pack_end(GTK_BOX(hbox), button, FALSE, FALSE, 0); |
| 1649 gtk_widget_show(button); | |
| 3500 | 1650 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1651 |
| 3500 | 1652 prefs_notebook_init(); |
| 3427 | 1653 |
| 3472 | 1654 gtk_tree_view_expand_all (GTK_TREE_VIEW(tree_v)); |
| 1655 gtk_widget_show(prefs); | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1656 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1657 |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1658 static gint debug_delete(GtkWidget *w, GdkEvent *event, void *dummy) |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1659 { |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1660 if (debugbutton) |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1661 gtk_button_clicked(GTK_BUTTON(debugbutton)); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1662 if (misc_options & OPT_MISC_DEBUG) { |
| 3500 | 1663 misc_options_new ^= OPT_MISC_DEBUG; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1664 misc_options ^= OPT_MISC_DEBUG; |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1665 save_prefs(); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1666 } |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1667 g_free(dw); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1668 dw = NULL; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1669 return FALSE; |
| 1 | 1670 |
| 1671 } | |
| 1672 | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1673 static void build_debug() |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1674 { |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1675 GtkWidget *scroll; |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1676 GtkWidget *box; |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1677 if (!dw) |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1678 dw = g_new0(struct debug_window, 1); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1679 |
|
2725
f3c094e78609
[gaim-migrate @ 2738]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2676
diff
changeset
|
1680 GAIM_DIALOG(dw->window); |
|
2536
0e0a54e5819a
[gaim-migrate @ 2549]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2471
diff
changeset
|
1681 gtk_window_set_title(GTK_WINDOW(dw->window), _("Gaim debug output window")); |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1682 gtk_window_set_wmclass(GTK_WINDOW(dw->window), "debug_out", "Gaim"); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1683 gtk_signal_connect(GTK_OBJECT(dw->window), "delete_event", GTK_SIGNAL_FUNC(debug_delete), NULL); |
|
2547
ab55ac6234b8
[gaim-migrate @ 2560]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2536
diff
changeset
|
1684 gtk_widget_realize(dw->window); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1685 |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1686 box = gtk_hbox_new(FALSE, 0); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1687 gtk_container_add(GTK_CONTAINER(dw->window), box); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1688 gtk_widget_show(box); |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1689 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1690 dw->entry = gtk_text_new(NULL, NULL); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1691 gtk_text_set_word_wrap(GTK_TEXT(dw->entry), TRUE); |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1692 gtk_text_set_editable(GTK_TEXT(dw->entry), FALSE); |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1693 gtk_container_add(GTK_CONTAINER(box), dw->entry); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1694 gtk_widget_set_usize(dw->entry, 500, 200); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1695 gtk_widget_show(dw->entry); |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1696 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1697 scroll = gtk_vscrollbar_new(GTK_TEXT(dw->entry)->vadj); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1698 gtk_box_pack_start(GTK_BOX(box), scroll, FALSE, FALSE, 0); |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1699 gtk_widget_show(scroll); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1700 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1701 gtk_widget_show(dw->window); |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1702 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1703 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1704 void show_debug() |
| 1 | 1705 { |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1706 if ((misc_options & OPT_MISC_DEBUG)) { |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1707 if (!dw || !dw->window) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1708 build_debug(); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1709 gtk_widget_show(dw->window); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1710 } else { |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1711 if (!dw) |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1712 return; |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1713 gtk_widget_destroy(dw->window); |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1714 dw->window = NULL; |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1715 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1716 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1717 |
| 970 | 1718 void debug_printf(char *fmt, ...) |
| 1719 { | |
| 1720 va_list ap; | |
| 1721 gchar *s; | |
| 1722 | |
|
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1723 va_start(ap, fmt); |
|
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1724 s = g_strdup_vprintf(fmt, ap); |
|
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1725 va_end(ap); |
|
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1726 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1727 if (misc_options & OPT_MISC_DEBUG && dw) { |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1728 GtkAdjustment *adj = GTK_TEXT(dw->entry)->vadj; |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1729 gboolean scroll = (adj->value == adj->upper - adj->lower - adj->page_size); |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1730 |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1731 gtk_text_freeze(GTK_TEXT(dw->entry)); |
| 970 | 1732 gtk_text_insert(GTK_TEXT(dw->entry), NULL, NULL, NULL, s, -1); |
|
2282
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1733 gtk_text_thaw(GTK_TEXT(dw->entry)); |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1734 |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1735 if (scroll) |
|
0dea5214d63f
[gaim-migrate @ 2292]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2269
diff
changeset
|
1736 gtk_adjustment_set_value(adj, adj->upper - adj->lower - adj->page_size); |
|
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1737 } |
|
2823
cd23279122ed
[gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2794
diff
changeset
|
1738 if (opt_debug) |
|
cd23279122ed
[gaim-migrate @ 2836]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2794
diff
changeset
|
1739 g_print("%s", s); |
|
1366
155db3303ebb
[gaim-migrate @ 1376]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1357
diff
changeset
|
1740 g_free(s); |
| 970 | 1741 } |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1742 |
|
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1743 |
|
915
378c862a2381
[gaim-migrate @ 925]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
910
diff
changeset
|
1744 |
| 3500 | 1745 |
| 1746 | |
| 1747 | |
| 1 | 1748 void set_option(GtkWidget *w, int *option) |
| 1749 { | |
| 1750 *option = !(*option); | |
| 1751 } | |
| 1752 | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1753 static void set_misc_option(GtkWidget *w, int option) |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1754 { |
| 3500 | 1755 misc_options_new ^= option; |
| 1756 | |
| 1757 /* gross hack because we don't want to save all prefs just because | |
| 1758 * we enabled the debug window. then again, what about the debug | |
| 1759 * window _isn't_ an ugly hack? */ | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1760 |
| 3500 | 1761 if (option == OPT_MISC_DEBUG) { |
| 1762 misc_options ^= option; | |
| 1763 save_prefs(); | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1764 show_debug(); |
| 3500 | 1765 } |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1766 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1767 |
| 3366 | 1768 |
| 1769 /* Functions for each _options variable that sees what's changed, and makes | |
| 1770 * effective those changes that take place immediately (UI stuff) */ | |
| 1771 static void set_misc_options() | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1772 { |
| 3500 | 1773 |
| 1774 /* int option = misc_options ^ misc_options_new; */ | |
| 3366 | 1775 misc_options = misc_options_new; |
| 3500 | 1776 |
| 3366 | 1777 } |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1778 |
| 3366 | 1779 static void set_logging_options() |
| 1780 { | |
| 1781 int option = logging_options ^ logging_options_new; | |
| 1782 logging_options = logging_options_new; | |
| 3500 | 1783 |
| 3457 | 1784 if (option & OPT_LOG_CONVOS || option & OPT_LOG_CHATS) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1785 update_log_convs(); |
| 1773 | 1786 |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1787 } |
|
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
1788 |
| 3366 | 1789 static void set_blist_options() |
| 1 | 1790 { |
| 3366 | 1791 int option = blist_options ^ blist_options_new; |
| 1792 blist_options = blist_options_new; | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1793 |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1794 if (!blist) |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1795 return; |
| 3500 | 1796 |
| 3366 | 1797 if (option & OPT_BLIST_BOTTOM_TAB) |
| 1798 set_blist_tab(); | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1799 |
| 3366 | 1800 if (option & OPT_BLIST_NO_BUTTONS) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1801 build_imchat_box(!(blist_options & OPT_BLIST_NO_BUTTONS)); |
|
696
97b75ed155b0
[gaim-migrate @ 706]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
683
diff
changeset
|
1802 |
| 3366 | 1803 if (option & OPT_BLIST_SHOW_GRPNUM) |
|
1070
b288f17c2fb2
[gaim-migrate @ 1080]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1030
diff
changeset
|
1804 update_num_groups(); |
| 9 | 1805 |
| 3366 | 1806 if (option & OPT_BLIST_NO_MT_GRP) |
|
1072
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1807 toggle_show_empty_groups(); |
|
81d19577285a
[gaim-migrate @ 1082]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1070
diff
changeset
|
1808 |
| 3366 | 1809 if ((option & OPT_BLIST_SHOW_BUTTON_XPM) || (option & OPT_BLIST_NO_BUTTONS)) |
|
1296
11e5b1220028
[gaim-migrate @ 1306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1269
diff
changeset
|
1810 update_button_pix(); |
|
11e5b1220028
[gaim-migrate @ 1306]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1269
diff
changeset
|
1811 |
| 3366 | 1812 if (option & OPT_BLIST_SHOW_PIXMAPS) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1813 toggle_buddy_pixmaps(); |
|
2593
5ba9ef368b8e
[gaim-migrate @ 2606]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2592
diff
changeset
|
1814 |
| 3366 | 1815 if ((option & OPT_BLIST_GREY_IDLERS) || (option & OPT_BLIST_SHOW_IDLETIME)) |
| 2594 | 1816 update_idle_times(); |
| 3032 | 1817 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1818 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1819 |
| 3366 | 1820 static void set_convo_options() |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1821 { |
| 3366 | 1822 int option = convo_options ^ convo_options_new; |
| 1823 convo_options = convo_options_new; | |
| 3500 | 1824 |
| 1825 if (option & OPT_CONVO_SHOW_SMILEY) | |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1826 toggle_smileys(); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1827 |
| 3366 | 1828 if (option & OPT_CONVO_SHOW_TIME) |
|
1428
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1829 toggle_timestamps(); |
|
00b3d02a2168
[gaim-migrate @ 1438]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1411
diff
changeset
|
1830 |
| 3366 | 1831 if (option & OPT_CONVO_CHECK_SPELLING) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1832 toggle_spellchk(); |
|
572
faca21605e1b
[gaim-migrate @ 582]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
570
diff
changeset
|
1833 |
| 3366 | 1834 if (option & OPT_CONVO_COMBINE) { |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
1835 /* (OPT_IM_SIDE_TAB | OPT_IM_BR_TAB) == (OPT_CHAT_SIDE_TAB | OPT_CHAT_BR_TAB) */ |
| 3500 | 1836 |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
1837 } |
|
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
1838 |
| 1 | 1839 } |
| 1840 | |
| 3366 | 1841 static void set_im_options() |
| 1 | 1842 { |
| 3366 | 1843 int option = im_options ^ im_options_new; |
| 1844 im_options = im_options_new; | |
| 3500 | 1845 |
| 3366 | 1846 if (option & OPT_IM_ONE_WINDOW) |
|
2843
87d11d2a7d59
[gaim-migrate @ 2856]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2839
diff
changeset
|
1847 im_tabize(); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1848 |
| 3366 | 1849 if (option & OPT_IM_SIDE_TAB || option & OPT_IM_BR_TAB) |
| 1850 update_im_tabs(); | |
| 1851 | |
| 1852 if (option & OPT_IM_HIDE_ICONS) | |
|
2323
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2322
diff
changeset
|
1853 set_hide_icons(); |
|
bde2481bb4db
[gaim-migrate @ 2333]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2322
diff
changeset
|
1854 |
| 3366 | 1855 if (option & OPT_IM_ALIAS_TAB) |
|
2787
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2760
diff
changeset
|
1856 set_convo_titles(); |
|
feea7103a235
[gaim-migrate @ 2800]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2760
diff
changeset
|
1857 |
| 3366 | 1858 if (option & OPT_IM_NO_ANIMATION) |
| 3013 | 1859 set_anim(); |
| 3500 | 1860 |
| 3366 | 1861 if (option & OPT_IM_BUTTON_TEXT || option & OPT_IM_BUTTON_XPM) |
| 3500 | 1862 update_im_button_pix(); |
| 1 | 1863 } |
| 1864 | |
| 3366 | 1865 static void set_chat_options() |
| 1 | 1866 { |
| 3366 | 1867 int option = chat_options ^ chat_options_new; |
| 1868 chat_options = chat_options_new; | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1869 |
| 3366 | 1870 if (option & OPT_CHAT_ONE_WINDOW) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1871 chat_tabize(); |
| 3500 | 1872 |
| 3366 | 1873 if (option & OPT_CHAT_BUTTON_TEXT || option & OPT_CHAT_BUTTON_XPM) |
| 3500 | 1874 update_chat_button_pix(); |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1875 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1876 |
| 3366 | 1877 void set_sound_options() |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1878 { |
| 3366 | 1879 /* int option = sound_options ^ sound_options_new; */ |
| 1880 sound_options = sound_options_new; | |
| 3500 | 1881 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1882 } |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1883 |
| 3366 | 1884 static void set_font_options() |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1885 { |
| 3366 | 1886 /* int option = font_options ^ font_options_new; */ |
| 1887 font_options = font_options_new; | |
| 3500 | 1888 |
|
1253
8342d3aab1f1
[gaim-migrate @ 1263]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1250
diff
changeset
|
1889 update_font_buttons(); |
| 1 | 1890 } |
| 1891 | |
| 3366 | 1892 static void set_away_options() |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
1893 { |
| 3500 | 1894 int option = away_options ^ away_options_new; |
| 3366 | 1895 away_options = away_options_new; |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1896 |
| 3366 | 1897 if (option & OPT_AWAY_QUEUE) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1898 toggle_away_queue(); |
| 3366 | 1899 } |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
1900 |
| 3366 | 1901 static void toggle_option(GtkWidget *w, int option) { |
| 1902 int *o = gtk_object_get_user_data(GTK_OBJECT(w)); | |
| 1903 *o ^= option; | |
|
1525
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
1904 } |
|
ba8e6e211af5
[gaim-migrate @ 1535]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1455
diff
changeset
|
1905 |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1906 GtkWidget *gaim_button(const char *text, guint *options, int option, GtkWidget *page) |
| 1 | 1907 { |
| 1908 GtkWidget *button; | |
| 3427 | 1909 button = gtk_check_button_new_with_mnemonic(text); |
| 1 | 1910 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(button), (*options & option)); |
| 1911 gtk_box_pack_start(GTK_BOX(page), button, FALSE, FALSE, 0); | |
| 3366 | 1912 gtk_object_set_user_data(GTK_OBJECT(button), options); |
| 1 | 1913 |
| 3391 | 1914 /* So that the debug window happens immediately |
| 1915 * I don't think it should be "preferences," anyway. */ | |
| 3500 | 1916 if (options == &misc_options_new && option == OPT_MISC_DEBUG) |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1917 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(set_misc_option), |
|
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1918 (int *)option); |
| 3366 | 1919 else |
| 1920 gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(toggle_option), | |
|
2313
bd9d403fb15b
[gaim-migrate @ 2323]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2282
diff
changeset
|
1921 (int *)option); |
| 3500 | 1922 |
| 1 | 1923 gtk_widget_show(button); |
| 1924 | |
| 1925 return button; | |
| 1926 } | |
| 1927 | |
| 3366 | 1928 void away_list_clicked(GtkWidget *widget, struct away_message *a) |
| 1929 {} | |
| 1930 void default_away_menu_init(GtkWidget *omenu) | |
| 3032 | 1931 { |
| 3366 | 1932 GtkWidget *menu, *opt; |
| 1933 int index = 0; | |
| 1934 GSList *awy = away_messages; | |
| 1935 struct away_message *a; | |
| 1936 | |
| 1937 menu = gtk_menu_new(); | |
| 1938 | |
| 1939 while (awy) { | |
| 1940 a = (struct away_message *)awy->data; | |
| 1941 opt = gtk_menu_item_new_with_label(a->name); | |
| 1942 gtk_signal_connect(GTK_OBJECT(opt), "activate", GTK_SIGNAL_FUNC(set_default_away), | |
| 1943 (gpointer)index); | |
| 1944 gtk_widget_show(opt); | |
| 1945 gtk_menu_append(GTK_MENU(menu), opt); | |
| 1946 | |
| 1947 awy = awy->next; | |
| 1948 index++; | |
| 1949 } | |
| 1950 | |
| 1951 gtk_option_menu_remove_menu(GTK_OPTION_MENU(omenu)); | |
| 1952 gtk_option_menu_set_menu(GTK_OPTION_MENU(omenu), menu); | |
| 1953 gtk_option_menu_set_history(GTK_OPTION_MENU(omenu), g_slist_index(away_messages, default_away)); | |
| 1954 } | |
| 1955 | |
| 1956 GtkWidget *pref_fg_picture = NULL; | |
| 1957 GtkWidget *pref_bg_picture = NULL; | |
| 1958 | |
| 1959 void destroy_colorsel(GtkWidget *w, gpointer d) | |
| 1960 { | |
| 1961 if (d) { | |
| 1962 gtk_widget_destroy(fgcseld); | |
| 1963 fgcseld = NULL; | |
| 1964 } else { | |
| 1965 gtk_widget_destroy(bgcseld); | |
| 1966 bgcseld = NULL; | |
| 1967 } | |
| 3032 | 1968 } |
| 1969 | |
| 3366 | 1970 void apply_color_dlg(GtkWidget *w, gpointer d) |
| 3032 | 1971 { |
| 3366 | 1972 if ((int)d == 1) { |
| 1973 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION | |
| 3500 | 1974 (GTK_COLOR_SELECTION_DIALOG(fgcseld)->colorsel), |
| 3366 | 1975 &fgcolor_new); |
| 1976 destroy_colorsel(NULL, (void *)1); | |
| 1977 update_color(NULL, pref_fg_picture); | |
| 1978 } else { | |
| 1979 gtk_color_selection_get_current_color(GTK_COLOR_SELECTION | |
| 3500 | 1980 (GTK_COLOR_SELECTION_DIALOG(bgcseld)->colorsel), |
| 3366 | 1981 &bgcolor_new); |
| 1982 destroy_colorsel(NULL, (void *)0); | |
| 1983 update_color(NULL, pref_bg_picture); | |
| 1984 } | |
| 3032 | 1985 } |
| 1986 | |
| 3366 | 1987 void update_color(GtkWidget *w, GtkWidget *pic) |
| 1 | 1988 { |
| 3366 | 1989 GdkColor c; |
| 1990 GtkStyle *style; | |
| 1991 c.pixel = 0; | |
| 3500 | 1992 |
| 3366 | 1993 if (pic == pref_fg_picture) { |
| 1994 if (font_options_new & OPT_FONT_FGCOL) { | |
| 1995 c.red = fgcolor_new.red; | |
| 1996 c.blue = fgcolor_new.blue; | |
| 1997 c.green = fgcolor_new.green; | |
| 1998 } else { | |
| 1999 c.red = 0; | |
| 2000 c.blue = 0; | |
| 2001 c.green = 0; | |
| 2002 } | |
| 2003 } else { | |
| 2004 if (font_options_new & OPT_FONT_BGCOL) { | |
| 2005 c.red = bgcolor_new.red; | |
| 2006 c.blue = bgcolor_new.blue; | |
| 2007 c.green = bgcolor_new.green; | |
| 2008 } else { | |
| 2009 c.red = 0xffff; | |
| 2010 c.blue = 0xffff; | |
| 2011 c.green = 0xffff; | |
| 2012 } | |
| 2013 } | |
| 2014 | |
| 2015 style = gtk_style_new(); | |
| 2016 style->bg[0] = c; | |
| 2017 gtk_widget_set_style(pic, style); | |
| 2018 gtk_style_unref(style); | |
| 2019 } | |
| 2020 void set_default_away(GtkWidget *w, gpointer i) | |
| 2021 { | |
| 2022 | |
| 2023 int length = g_slist_length(away_messages); | |
|
338
9d258a0aa560
[gaim-migrate @ 348]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
337
diff
changeset
|
2024 |
| 3366 | 2025 if (away_messages == NULL) |
| 2026 default_away_new = NULL; | |
| 2027 else if ((int)i >= length) | |
| 2028 default_away_new = g_slist_nth_data(away_messages, length - 1); | |
| 2029 else | |
| 2030 default_away_new = g_slist_nth_data(away_messages, (int)i); | |
| 2031 } | |
| 3500 | 2032 |
| 3366 | 2033 static void update_spin_value(GtkWidget *w, GtkWidget *spin) |
| 2034 { | |
| 2035 int *value = gtk_object_get_user_data(GTK_OBJECT(spin)); | |
| 2036 *value = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(spin)); | |
| 2037 } | |
| 3427 | 2038 GtkWidget *gaim_labeled_spin_button(GtkWidget *box, const gchar *title, int *val, int min, int max, GtkSizeGroup *sg) |
| 3366 | 2039 { |
| 2040 GtkWidget *hbox; | |
| 2041 GtkWidget *label; | |
| 2042 GtkWidget *spin; | |
| 2043 GtkObject *adjust; | |
|
901
f168f2c7b357
[gaim-migrate @ 911]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
893
diff
changeset
|
2044 |
| 3366 | 2045 hbox = gtk_hbox_new(FALSE, 5); |
| 2046 gtk_box_pack_start(GTK_BOX(box), hbox, FALSE, FALSE, 5); | |
| 2047 gtk_widget_show(hbox); | |
| 2048 | |
| 3427 | 2049 label = gtk_label_new_with_mnemonic(title); |
| 3366 | 2050 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2051 gtk_widget_show(label); | |
|
1881
a02584b98823
[gaim-migrate @ 1891]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1840
diff
changeset
|
2052 |
| 3366 | 2053 adjust = gtk_adjustment_new(*val, min, max, 1, 1, 1); |
| 2054 spin = gtk_spin_button_new(GTK_ADJUSTMENT(adjust), 1, 0); | |
| 2055 gtk_object_set_user_data(GTK_OBJECT(spin), val); | |
| 2056 gtk_widget_set_usize(spin, 50, -1); | |
| 2057 gtk_box_pack_start(GTK_BOX(hbox), spin, FALSE, FALSE, 0); | |
| 2058 gtk_signal_connect(GTK_OBJECT(adjust), "value-changed", | |
| 2059 GTK_SIGNAL_FUNC(update_spin_value), GTK_WIDGET(spin)); | |
| 2060 gtk_widget_show(spin); | |
| 3500 | 2061 |
| 3427 | 2062 gtk_label_set_mnemonic_widget(GTK_LABEL(label), spin); |
| 2063 | |
| 2064 if (sg) { | |
| 2065 gtk_size_group_add_widget(sg, label); | |
| 2066 gtk_misc_set_alignment(GTK_MISC(label), 0, 0); | |
| 3500 | 2067 |
| 3427 | 2068 } |
| 2069 return label; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2070 } |
| 1 | 2071 |
| 3366 | 2072 void dropdown_set(GtkObject *w, int *option) |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2073 { |
| 3366 | 2074 int opt = (int)gtk_object_get_user_data(w); |
| 2075 int clear = (int)gtk_object_get_data(w, "clear"); | |
| 3500 | 2076 |
| 3366 | 2077 if (clear != -1) { |
| 2078 *option = *option & ~clear; | |
| 2079 *option = *option | opt; | |
| 2080 } else { | |
| 2081 debug_printf("HELLO %d\n", opt); | |
| 2082 *option = opt; | |
| 2083 } | |
| 3500 | 2084 |
| 3366 | 2085 if (option == &proxytype_new) { |
| 2086 if (opt == PROXY_NONE) | |
| 2087 gtk_widget_set_sensitive(prefs_proxy_frame, FALSE); | |
| 2088 else | |
| 2089 gtk_widget_set_sensitive(prefs_proxy_frame, TRUE); | |
| 2090 } else if (option == &web_browser_new) { | |
| 2091 if (opt == BROWSER_MANUAL) | |
| 2092 gtk_widget_set_sensitive(browser_entry, TRUE); | |
| 2093 else | |
| 2094 gtk_widget_set_sensitive(browser_entry, FALSE); | |
| 3379 | 2095 } else if (*option == sound_options_new) { |
| 3366 | 2096 if (opt == OPT_SOUND_CMD) |
| 2097 gtk_widget_set_sensitive(sndcmd, TRUE); | |
| 2098 else | |
| 2099 gtk_widget_set_sensitive(sndcmd, FALSE); | |
| 2100 } | |
| 3500 | 2101 |
| 1 | 2102 } |
| 2103 | |
| 3500 | 2104 static GtkWidget *gaim_dropdown(GtkWidget *box, const gchar *title, int *option, int clear, ...) |
| 1 | 2105 { |
| 3366 | 2106 va_list menuitems; |
| 2107 GtkWidget *dropdown, *opt, *menu; | |
| 2108 GtkWidget *label; | |
| 2109 gchar *text; | |
| 2110 int value; | |
| 2111 int o = 0; | |
| 2112 GtkWidget *hbox; | |
| 1 | 2113 |
| 3366 | 2114 hbox = gtk_hbox_new(FALSE, 5); |
| 2115 gtk_container_add (GTK_CONTAINER (box), hbox); | |
| 2116 gtk_widget_show(hbox); | |
| 2117 | |
| 3427 | 2118 label = gtk_label_new_with_mnemonic(title); |
| 3366 | 2119 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0); |
| 2120 gtk_widget_show(label); | |
| 2121 | |
| 2122 va_start(menuitems, clear); | |
| 2123 text = va_arg(menuitems, gchar *); | |
| 2124 | |
| 2125 if (!text) | |
| 2126 return NULL; | |
| 3500 | 2127 |
| 3366 | 2128 dropdown = gtk_option_menu_new(); |
| 2129 menu = gtk_menu_new(); | |
| 3500 | 2130 |
| 3427 | 2131 gtk_label_set_mnemonic_widget(GTK_LABEL(label), dropdown); |
| 3500 | 2132 |
| 3366 | 2133 while (text) { |
| 2134 value = va_arg(menuitems, int); | |
| 2135 opt = gtk_menu_item_new_with_label(text); | |
| 2136 gtk_object_set_user_data(GTK_OBJECT(opt), (void *)value); | |
| 2137 gtk_object_set_data(GTK_OBJECT(opt), "clear", (void *)clear); | |
| 2138 gtk_signal_connect(GTK_OBJECT(opt), "activate", | |
| 2139 GTK_SIGNAL_FUNC(dropdown_set), (void *)option); | |
| 2140 gtk_widget_show(opt); | |
| 2141 gtk_menu_shell_append(GTK_MENU_SHELL(menu), opt); | |
| 1 | 2142 |
| 3366 | 2143 if (((clear > -1) && ((*option & value) == value)) || *option == value) { |
| 2144 gtk_menu_set_active(GTK_MENU(menu), o); | |
| 2145 } | |
| 2146 text = va_arg(menuitems, gchar *); | |
| 2147 o++; | |
| 2148 } | |
|
2262
9c8f353331e7
[gaim-migrate @ 2272]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
2254
diff
changeset
|
2149 |
| 3366 | 2150 va_end(menuitems); |
| 1 | 2151 |
| 3500 | 2152 gtk_option_menu_set_menu(GTK_OPTION_MENU(dropdown), menu); |
| 3366 | 2153 gtk_box_pack_start(GTK_BOX(hbox), dropdown, FALSE, FALSE, 0); |
| 2154 gtk_widget_show(dropdown); | |
| 3427 | 2155 return label; |
| 3500 | 2156 } |
| 2157 | |
| 3366 | 2158 static GtkWidget *show_color_pref(GtkWidget *box, gboolean fgc) |
| 1 | 2159 { |
| 3366 | 2160 /* more stuff stolen from X-Chat */ |
| 2161 GtkWidget *swid; | |
| 2162 GdkColor c; | |
| 2163 GtkStyle *style; | |
| 2164 c.pixel = 0; | |
| 2165 if (fgc) { | |
| 2166 if (font_options_new & OPT_FONT_FGCOL) { | |
| 2167 c.red = fgcolor_new.red; | |
| 2168 c.blue = fgcolor_new.blue; | |
| 2169 c.green = fgcolor_new.green; | |
| 2170 } else { | |
| 2171 c.red = 0; | |
| 2172 c.blue = 0; | |
| 2173 c.green = 0; | |
| 2174 } | |
| 2175 } else { | |
| 2176 if (font_options_new & OPT_FONT_BGCOL) { | |
| 2177 c.red = bgcolor_new.red; | |
| 2178 c.blue = bgcolor_new.blue; | |
| 2179 c.green = bgcolor_new.green; | |
| 2180 } else { | |
| 2181 c.red = 0xffff; | |
| 2182 c.blue = 0xffff; | |
| 2183 c.green = 0xffff; | |
| 2184 } | |
| 2185 } | |
| 1 | 2186 |
| 3366 | 2187 style = gtk_style_new(); |
| 2188 style->bg[0] = c; | |
|
652
4d3285caa191
[gaim-migrate @ 662]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
619
diff
changeset
|
2189 |
| 3366 | 2190 swid = gtk_event_box_new(); |
| 2191 gtk_widget_set_style(GTK_WIDGET(swid), style); | |
| 2192 gtk_style_unref(style); | |
| 2193 gtk_widget_set_usize(GTK_WIDGET(swid), 40, -1); | |
| 2194 gtk_box_pack_start(GTK_BOX(box), swid, FALSE, FALSE, 5); | |
| 2195 gtk_widget_show(swid); | |
| 2196 return swid; | |
| 1 | 2197 } |
| 3366 | 2198 void apply_font_dlg(GtkWidget *w, GtkWidget *f) |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2199 { |
| 3366 | 2200 int i = 0; |
| 2201 char *fontname; | |
| 2202 | |
| 3473 | 2203 fontname = g_strdup(gtk_font_selection_dialog_get_font_name(GTK_FONT_SELECTION_DIALOG(f))); |
| 3366 | 2204 destroy_fontsel(0, 0); |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2205 |
| 3500 | 2206 while(fontname[i] && !isdigit(fontname[i]) && i < sizeof(fontface_new)) { |
| 3366 | 2207 fontface_new[i] = fontname[i]; |
| 2208 i++; | |
| 2209 } | |
| 3473 | 2210 fontface_new[i] = 0; |
| 2211 debug_printf("fontface_new: %s\n", fontface_new); | |
| 3366 | 2212 g_free(fontname); |
|
1124
a70d5200edde
[gaim-migrate @ 1134]
Eric Warmenhoven <eric@warmenhoven.org>
parents:
1123
diff
changeset
|
2213 } |
| 3500 | 2214 |
