Mercurial > gftp.yaz
annotate src/gtk/options_dialog.c @ 703:56de00e9afa1
2005-3-31 Brian Masney <masneyb@gftp.org>
* src/gtk/transfer.c (check_done_process) - make sure the local file is
not removed if the editor is set to a non-existent editor
author | masneyb |
---|---|
date | Thu, 31 Mar 2005 21:49:20 +0000 |
parents | ff091f8e387f |
children | 49cfbe02926b |
rev | line source |
---|---|
1 | 1 /*****************************************************************************/ |
2 /* menu-items.c - menu callbacks */ | |
255 | 3 /* Copyright (C) 1998-2003 Brian Masney <masneyb@gftp.org> */ |
1 | 4 /* */ |
5 /* This program is free software; you can redistribute it and/or modify */ | |
6 /* it under the terms of the GNU General Public License as published by */ | |
7 /* the Free Software Foundation; either version 2 of the License, or */ | |
8 /* (at your option) any later version. */ | |
9 /* */ | |
10 /* This program is distributed in the hope that it will be useful, */ | |
11 /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ | |
12 /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ | |
13 /* GNU General Public License for more details. */ | |
14 /* */ | |
15 /* You should have received a copy of the GNU General Public License */ | |
16 /* along with this program; if not, write to the Free Software */ | |
17 /* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ | |
18 /*****************************************************************************/ | |
19 | |
518 | 20 #include "gftp-gtk.h" |
33 | 21 static const char cvsid[] = "$Id$"; |
1 | 22 |
136 | 23 static GtkWidget * proxy_list, * new_proxy_domain, * network1, |
1 | 24 * network2, * network3, * network4, * netmask1, * netmask2, |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
25 * netmask3, * netmask4, * domain_active, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
26 * domain_label, * network_label, * netmask_label, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
27 * edit_button, * delete_button; |
518 | 28 static gftp_options_dialog_data * gftp_option_data; |
229 | 29 static GList * new_proxy_hosts = NULL; |
136 | 30 |
31 static void | |
32 _setup_option (gftp_option_type_enum otype, | |
33 gftp_options_dialog_data * option_data, | |
34 void * (*ui_print_function) (gftp_config_vars * cv, | |
229 | 35 void *user_data, |
36 void *value), | |
136 | 37 void (*ui_save_function) (gftp_config_vars * cv, |
139 | 38 void *user_data), |
39 void (*ui_cancel_function) (gftp_config_vars * cv, | |
40 void *user_data)) | |
41 | |
136 | 42 { |
43 gftp_option_types[otype].user_data = option_data; | |
44 gftp_option_types[otype].ui_print_function = ui_print_function; | |
45 gftp_option_types[otype].ui_save_function = ui_save_function; | |
139 | 46 gftp_option_types[otype].ui_cancel_function = ui_cancel_function; |
136 | 47 } |
48 | |
49 | |
50 static void * | |
139 | 51 _gen_input_widget (gftp_options_dialog_data * option_data, char *label, char *tiptxt) |
136 | 52 { |
139 | 53 GtkTooltips * tooltip; |
136 | 54 GtkWidget * tempwid; |
55 | |
56 option_data->tbl_row_num++; | |
57 gtk_table_resize (GTK_TABLE (option_data->table), | |
58 option_data->tbl_row_num, 2); | |
59 | |
60 tempwid = gtk_label_new (_(label)); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
61 gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
62 gtk_table_attach (GTK_TABLE (option_data->table), tempwid, 0, 1, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
63 option_data->tbl_row_num - 1, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
64 option_data->tbl_row_num, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
65 (GtkAttachOptions) (GTK_FILL), |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
66 (GtkAttachOptions) (0), 0, 0); |
136 | 67 gtk_widget_show (tempwid); |
68 | |
69 tempwid = gtk_entry_new (); | |
70 gtk_table_attach_defaults (GTK_TABLE (option_data->table), tempwid, 1, 2, | |
71 option_data->tbl_row_num - 1, | |
72 option_data->tbl_row_num); | |
73 gtk_widget_show (tempwid); | |
139 | 74 |
75 if (tiptxt != NULL) | |
76 { | |
77 tooltip = gtk_tooltips_new (); | |
294 | 78 gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltip), tempwid, _(tiptxt), NULL); |
139 | 79 } |
80 | |
136 | 81 return (tempwid); |
82 } | |
83 | |
84 | |
85 static void * | |
229 | 86 _print_option_type_newtable (gftp_config_vars * cv, void *user_data, void *value) |
136 | 87 { |
88 gftp_options_dialog_data * option_data; | |
89 | |
90 option_data = user_data; | |
91 | |
92 option_data->table = gtk_table_new (1, 2, FALSE); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
93 gtk_table_set_row_spacings (GTK_TABLE (option_data->table), 6); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
94 gtk_table_set_col_spacings (GTK_TABLE (option_data->table), 12); |
136 | 95 gtk_box_pack_start (GTK_BOX (option_data->box), option_data->table, FALSE, |
96 FALSE, 0); | |
97 gtk_widget_show (option_data->table); | |
98 option_data->tbl_row_num = 0; | |
99 option_data->tbl_col_num = 0; | |
100 | |
101 return (NULL); | |
102 } | |
103 | |
104 | |
105 static void * | |
229 | 106 _print_option_type_text (gftp_config_vars * cv, void *user_data, void *value) |
136 | 107 { |
108 gftp_options_dialog_data * option_data; | |
109 GtkWidget * tempwid; | |
110 | |
111 option_data = user_data; | |
112 | |
139 | 113 tempwid = _gen_input_widget (option_data, cv->description, cv->comment); |
229 | 114 if (value != NULL) |
115 gtk_entry_set_text (GTK_ENTRY (tempwid), (char *) value); | |
218 | 116 |
136 | 117 return (tempwid); |
118 } | |
119 | |
120 | |
121 static void | |
122 _save_option_type_text (gftp_config_vars * cv, void *user_data) | |
123 { | |
124 gftp_options_dialog_data * option_data; | |
125 const char *tempstr; | |
126 | |
127 option_data = user_data; | |
128 tempstr = gtk_entry_get_text (GTK_ENTRY (cv->user_data)); | |
129 | |
229 | 130 if (option_data->bm == NULL) |
131 gftp_set_global_option (cv->key, tempstr); | |
132 else | |
133 gftp_set_bookmark_option (option_data->bm, cv->key, tempstr); | |
136 | 134 } |
135 | |
136 | |
137 static GtkWidget * | |
138 _gen_combo_widget (gftp_options_dialog_data * option_data, char *label) | |
139 { | |
140 GtkWidget * tempwid, * combo; | |
141 | |
142 option_data->tbl_row_num++; | |
143 gtk_table_resize (GTK_TABLE (option_data->table), | |
144 option_data->tbl_row_num, 2); | |
145 | |
146 tempwid = gtk_label_new (_(label)); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
147 gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
148 gtk_table_attach (GTK_TABLE (option_data->table), tempwid, 0, 1, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
149 option_data->tbl_row_num - 1, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
150 option_data->tbl_row_num, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
151 (GtkAttachOptions) (GTK_FILL), |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
152 (GtkAttachOptions) (0), 0, 0); |
136 | 153 gtk_widget_show (tempwid); |
154 | |
155 combo = gtk_combo_new (); | |
156 gtk_table_attach_defaults (GTK_TABLE (option_data->table), combo, 1, 2, | |
157 option_data->tbl_row_num - 1, | |
158 option_data->tbl_row_num); | |
159 return (combo); | |
160 } | |
161 | |
162 | |
163 static void * | |
229 | 164 _print_option_type_textcombo (gftp_config_vars * cv, void *user_data, void *value) |
136 | 165 { |
166 gftp_options_dialog_data * option_data; | |
139 | 167 GtkWidget * tempwid, * combo; |
136 | 168 GList * widget_list; |
139 | 169 GtkTooltips * tooltip; |
136 | 170 int selitem, i; |
171 char **clist; | |
172 | |
173 option_data = user_data; | |
174 combo = _gen_combo_widget (option_data, cv->description); | |
175 | |
176 if (cv->listdata != NULL) | |
177 { | |
178 selitem = 0; | |
179 widget_list = NULL; | |
180 | |
181 clist = cv->listdata; | |
182 for (i=0; clist[i] != NULL; i++) | |
183 { | |
229 | 184 if (value != NULL && strcasecmp ((char *) value, clist[i]) == 0) |
136 | 185 selitem = i; |
186 | |
187 tempwid = gtk_list_item_new_with_label (clist[i]); | |
188 gtk_widget_show (tempwid); | |
189 widget_list = g_list_append (widget_list, tempwid); | |
190 } | |
191 | |
192 gtk_list_prepend_items (GTK_LIST (GTK_COMBO (combo)->list), widget_list); | |
193 gtk_list_select_item (GTK_LIST (GTK_COMBO (combo)->list), selitem); | |
194 } | |
195 | |
196 gtk_widget_show (combo); | |
139 | 197 |
198 if (cv->comment != NULL) | |
199 { | |
200 tooltip = gtk_tooltips_new (); | |
294 | 201 gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltip), combo, _(cv->comment), NULL); |
139 | 202 } |
203 | |
136 | 204 return (combo); |
205 } | |
206 | |
207 | |
208 static void | |
209 _save_option_type_textcombo (gftp_config_vars * cv, void *user_data) | |
210 { | |
211 gftp_options_dialog_data * option_data; | |
212 const char *tempstr; | |
213 | |
214 option_data = user_data; | |
215 | |
216 tempstr = gtk_entry_get_text (GTK_ENTRY (GTK_COMBO (cv->user_data)->entry)); | |
217 | |
229 | 218 if (option_data->bm == NULL) |
219 gftp_set_global_option (cv->key, tempstr); | |
220 else | |
221 gftp_set_bookmark_option (option_data->bm, cv->key, tempstr); | |
136 | 222 } |
223 | |
224 | |
225 static void | |
226 _textcomboedt_toggle (GtkList * list, GtkWidget * child, gpointer data) | |
227 { | |
228 gftp_textcomboedt_widget_data * widdata; | |
229 gftp_textcomboedt_data * tedata; | |
139 | 230 char *insert_text; |
136 | 231 int num, isedit; |
232 #if GTK_MAJOR_VERSION > 1 | |
233 GtkTextIter iter, iter2; | |
234 GtkTextBuffer * textbuf; | |
235 guint len; | |
236 #endif | |
237 | |
238 widdata = data; | |
239 tedata = widdata->cv->listdata; | |
240 | |
241 num = gtk_list_child_position (list, child); | |
242 isedit = tedata[num].flags & GFTP_TEXTCOMBOEDT_EDITABLE; | |
243 #if GTK_MAJOR_VERSION == 1 | |
244 gtk_text_set_editable (GTK_TEXT (widdata->text), isedit); | |
245 #else | |
246 gtk_text_view_set_editable (GTK_TEXT_VIEW (widdata->text), isedit); | |
247 #endif | |
248 | |
249 if (isedit) | |
139 | 250 insert_text = widdata->custom_edit_value; |
251 else | |
252 insert_text = tedata[num].text; | |
136 | 253 |
254 #if GTK_MAJOR_VERSION == 1 | |
255 gtk_text_set_point (GTK_TEXT (widdata->text), 0); | |
256 gtk_text_forward_delete (GTK_TEXT (widdata->text), | |
257 gtk_text_get_length (GTK_TEXT (widdata->text))); | |
258 | |
259 gtk_text_insert (GTK_TEXT (widdata->text), NULL, NULL, NULL, | |
139 | 260 insert_text, -1); |
136 | 261 #else |
262 textbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widdata->text)); | |
263 len = gtk_text_buffer_get_char_count (textbuf); | |
264 gtk_text_buffer_get_iter_at_offset (textbuf, &iter, 0); | |
287 | 265 gtk_text_buffer_get_iter_at_offset (textbuf, &iter2, len); |
136 | 266 gtk_text_buffer_delete (textbuf, &iter, &iter2); |
267 | |
268 len = gtk_text_buffer_get_char_count (textbuf); | |
287 | 269 gtk_text_buffer_get_iter_at_offset (textbuf, &iter, len); |
139 | 270 gtk_text_buffer_insert (textbuf, &iter, insert_text, -1); |
136 | 271 #endif |
272 } | |
273 | |
274 | |
139 | 275 static char * |
276 _gftp_convert_to_newlines (char *str) | |
277 { | |
278 char *stpos, *endpos, *ret, savechar; | |
279 size_t len; | |
280 | |
281 ret = g_strdup (""); | |
282 len = 0; | |
219 | 283 |
139 | 284 for (stpos = str; |
285 (endpos = strstr (stpos, "%n")) != NULL; | |
286 stpos = endpos + 2) | |
287 { | |
288 savechar = *endpos; | |
289 *endpos = '\0'; | |
290 | |
291 len += strlen (stpos) + 1; | |
292 ret = g_realloc (ret, len + 1); | |
293 strcat (ret, stpos); | |
294 strcat (ret, "\n"); | |
295 | |
296 *endpos = savechar; | |
297 } | |
298 | |
219 | 299 if (stpos != NULL && *stpos != '\0') |
300 { | |
301 len += strlen (stpos); | |
302 ret = g_realloc (ret, len + 1); | |
303 strcat (ret, stpos); | |
304 } | |
305 | |
139 | 306 return (ret); |
307 } | |
308 | |
309 | |
310 static char * | |
311 _gftp_convert_from_newlines (char *str) | |
312 { | |
313 char *stpos, *endpos, *ret, savechar; | |
314 size_t len; | |
315 | |
316 ret = g_strdup (""); | |
317 len = 0; | |
219 | 318 |
139 | 319 for (stpos = str; |
320 (endpos = strchr (stpos, '\n')) != NULL; | |
321 stpos = endpos + 1) | |
322 { | |
323 savechar = *endpos; | |
324 *endpos = '\0'; | |
325 | |
326 len += strlen (stpos) + 2; | |
327 ret = g_realloc (ret, len + 1); | |
328 strcat (ret, stpos); | |
329 strcat (ret, "%n"); | |
330 | |
331 *endpos = savechar; | |
332 } | |
333 | |
219 | 334 if (stpos != NULL && *stpos != '\0') |
335 { | |
336 len += strlen (stpos); | |
337 ret = g_realloc (ret, len + 1); | |
338 strcat (ret, stpos); | |
339 } | |
340 | |
139 | 341 return (ret); |
342 } | |
343 | |
344 | |
136 | 345 static void * |
229 | 346 _print_option_type_textcomboedt (gftp_config_vars * cv, void *user_data, void *value) |
136 | 347 { |
348 gftp_textcomboedt_widget_data * widdata; | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
349 GtkWidget * box, * combo, * textwid, * tempwid; |
136 | 350 gftp_options_dialog_data * option_data; |
351 gftp_textcomboedt_data * tedata; | |
352 int i, selitem, edititem; | |
139 | 353 GtkTooltips * tooltip; |
136 | 354 GList * widget_list; |
355 char *tempstr; | |
356 | |
357 option_data = user_data; | |
358 combo = _gen_combo_widget (option_data, cv->description); | |
139 | 359 |
360 tempstr = NULL; | |
229 | 361 if (value != NULL) |
362 tempstr = _gftp_convert_to_newlines (value); | |
139 | 363 if (tempstr == NULL) |
364 tempstr = g_strdup (""); | |
136 | 365 |
366 edititem = selitem = -1; | |
367 if (cv->listdata != NULL) | |
368 { | |
369 widget_list = NULL; | |
370 | |
371 tedata = cv->listdata; | |
372 for (i=0; tedata[i].description != NULL; i++) | |
373 { | |
374 if (tedata[i].flags & GFTP_TEXTCOMBOEDT_EDITABLE) | |
375 edititem = i; | |
376 | |
139 | 377 if (selitem == -1 && |
378 strcasecmp (tempstr, tedata[i].text) == 0) | |
136 | 379 selitem = i; |
380 | |
381 tempwid = gtk_list_item_new_with_label (tedata[i].description); | |
382 gtk_widget_show (tempwid); | |
383 widget_list = g_list_append (widget_list, tempwid); | |
384 } | |
385 | |
386 gtk_list_prepend_items (GTK_LIST (GTK_COMBO (combo)->list), widget_list); | |
387 | |
139 | 388 if (selitem == -1 && edititem != -1) |
389 selitem = edititem; | |
136 | 390 } |
391 | |
139 | 392 if (selitem == -1) |
136 | 393 selitem = 0; |
394 | |
395 option_data->tbl_row_num++; | |
396 gtk_table_resize (GTK_TABLE (option_data->table), | |
397 option_data->tbl_row_num, 2); | |
398 | |
399 #if GTK_MAJOR_VERSION == 1 | |
400 textwid = gtk_text_new (NULL, NULL); | |
401 gtk_widget_set_size_request (textwid, -1, 75); | |
402 gtk_table_attach_defaults (GTK_TABLE (option_data->table), textwid, 0, 2, | |
403 option_data->tbl_row_num - 1, | |
404 option_data->tbl_row_num); | |
405 gtk_widget_show (textwid); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
406 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
407 box = gtk_hbox_new (FALSE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
408 gtk_table_attach_defaults (GTK_TABLE (option_data->table), box, 0, 2, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
409 option_data->tbl_row_num - 1, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
410 option_data->tbl_row_num); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
411 gtk_widget_show (box); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
412 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
413 tempwid = gtk_label_new (" "); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
414 gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
415 gtk_widget_show (tempwid); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
416 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
417 tempwid = gtk_scrolled_window_new (NULL, NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
418 gtk_container_set_border_width (GTK_CONTAINER (tempwid), 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
419 gtk_widget_set_size_request (tempwid, -1, 75); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
420 gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (tempwid), |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
421 GTK_SHADOW_IN); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
422 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (tempwid), |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
423 GTK_POLICY_AUTOMATIC, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
424 GTK_POLICY_AUTOMATIC); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
425 gtk_box_pack_start (GTK_BOX (box), tempwid, TRUE, TRUE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
426 gtk_widget_show (tempwid); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
427 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
428 textwid = gtk_text_view_new (); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
429 gtk_container_add (GTK_CONTAINER (tempwid), GTK_WIDGET (textwid)); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
430 gtk_widget_show (textwid); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
431 #endif |
136 | 432 |
433 widdata = g_malloc0 (sizeof (*widdata)); | |
434 widdata->combo = combo; | |
435 widdata->text = textwid; | |
436 widdata->cv = cv; | |
139 | 437 widdata->custom_edit_value = tempstr; |
136 | 438 |
439 gtk_signal_connect (GTK_OBJECT (GTK_COMBO (combo)->list), | |
440 "select_child", | |
441 GTK_SIGNAL_FUNC (_textcomboedt_toggle), widdata); | |
442 gtk_list_select_item (GTK_LIST (GTK_COMBO (combo)->list), selitem); | |
443 gtk_widget_show (combo); | |
444 | |
139 | 445 if (cv->comment != NULL) |
446 { | |
447 tooltip = gtk_tooltips_new (); | |
294 | 448 gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltip), combo, _(cv->comment), NULL); |
139 | 449 |
450 tooltip = gtk_tooltips_new (); | |
294 | 451 gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltip), textwid, _(cv->comment), |
452 NULL); | |
139 | 453 } |
454 | |
455 return (widdata); | |
456 } | |
457 | |
458 | |
459 static void | |
136 | 460 _save_option_type_textcomboedt (gftp_config_vars * cv, void *user_data) |
461 { | |
139 | 462 gftp_textcomboedt_widget_data * widdata; |
518 | 463 gftp_options_dialog_data * option_data; |
229 | 464 char *newstr, *proxy_config; |
139 | 465 int freeit; |
136 | 466 #if GTK_MAJOR_VERSION == 1 |
467 char tmp[128]; | |
468 #else | |
469 GtkTextBuffer * textbuf; | |
470 GtkTextIter iter, iter2; | |
471 size_t len; | |
472 #endif | |
473 | |
518 | 474 option_data = user_data; |
139 | 475 widdata = cv->user_data; |
136 | 476 |
477 #if GTK_MAJOR_VERSION == 1 | |
478 /* | |
479 GTK_TEXT uses wchar_t instead of char in environment of multibyte encoding | |
480 locale (ex Japanese), so we must convert from wide character | |
481 to multibyte charator.... Yasuyuki Furukawa (yasu@on.cs.keio.ac.jp) | |
482 */ | |
139 | 483 if (GTK_TEXT (widdata->text)->use_wchar) |
136 | 484 { |
139 | 485 wcstombs (tmp, (wchar_t *) GTK_TEXT (widdata->text)->text.wc, sizeof (tmp)); |
486 newstr = tmp; | |
136 | 487 } |
488 else | |
219 | 489 newstr = (char *) GTK_TEXT (widdata->text)->text.ch; |
490 | |
491 freeit = 0; | |
136 | 492 #else |
139 | 493 textbuf = gtk_text_view_get_buffer (GTK_TEXT_VIEW (widdata->text)); |
136 | 494 len = gtk_text_buffer_get_char_count (textbuf); |
495 gtk_text_buffer_get_iter_at_offset (textbuf, &iter, 0); | |
287 | 496 gtk_text_buffer_get_iter_at_offset (textbuf, &iter2, len); |
136 | 497 newstr = gtk_text_buffer_get_text (textbuf, &iter, &iter2, 0); |
139 | 498 freeit = 1; |
136 | 499 #endif |
500 | |
229 | 501 proxy_config = _gftp_convert_from_newlines (newstr); |
139 | 502 |
229 | 503 if (option_data->bm == NULL) |
504 gftp_set_global_option (cv->key, proxy_config); | |
505 else | |
506 gftp_set_bookmark_option (option_data->bm, cv->key, proxy_config); | |
507 | |
508 g_free (proxy_config); | |
139 | 509 |
510 if (freeit) | |
511 g_free (newstr); | |
136 | 512 } |
513 | |
514 | |
515 static void * | |
229 | 516 _print_option_type_hidetext (gftp_config_vars * cv, void *user_data, void *value) |
136 | 517 { |
518 gftp_options_dialog_data * option_data; | |
519 GtkWidget * tempwid; | |
520 | |
521 option_data = user_data; | |
522 | |
139 | 523 tempwid = _gen_input_widget (option_data, cv->description, cv->comment); |
136 | 524 gtk_entry_set_visibility (GTK_ENTRY (tempwid), 0); |
229 | 525 gtk_entry_set_text (GTK_ENTRY (tempwid), (char *) value); |
136 | 526 return (tempwid); |
527 } | |
528 | |
529 | |
530 static void * | |
229 | 531 _print_option_type_int (gftp_config_vars * cv, void *user_data, void *value) |
136 | 532 { |
533 gftp_options_dialog_data * option_data; | |
534 GtkWidget * tempwid; | |
535 char tempstr[20]; | |
536 | |
537 option_data = user_data; | |
538 | |
139 | 539 tempwid = _gen_input_widget (option_data, cv->description, cv->comment); |
229 | 540 g_snprintf (tempstr, sizeof (tempstr), "%d", GPOINTER_TO_INT(value)); |
136 | 541 gtk_entry_set_text (GTK_ENTRY (tempwid), tempstr); |
542 return (tempwid); | |
543 } | |
544 | |
545 | |
546 static void | |
547 _save_option_type_int (gftp_config_vars * cv, void *user_data) | |
548 { | |
549 gftp_options_dialog_data * option_data; | |
550 const char *tempstr; | |
472 | 551 intptr_t val; |
136 | 552 |
553 option_data = user_data; | |
554 tempstr = gtk_entry_get_text (GTK_ENTRY (cv->user_data)); | |
227 | 555 |
229 | 556 val = strtol (tempstr, NULL, 10); |
557 | |
558 if (option_data->bm == NULL) | |
559 gftp_set_global_option (cv->key, GINT_TO_POINTER(val)); | |
560 else | |
561 gftp_set_bookmark_option (option_data->bm, cv->key, GINT_TO_POINTER(val)); | |
136 | 562 } |
563 | |
564 | |
565 static void * | |
229 | 566 _print_option_type_checkbox (gftp_config_vars * cv, void *user_data, void *value) |
136 | 567 { |
568 gftp_options_dialog_data * option_data; | |
139 | 569 GtkTooltips * tooltip; |
136 | 570 GtkWidget * tempwid; |
571 | |
572 option_data = user_data; | |
573 | |
574 if (option_data->last_option != gftp_option_type_checkbox) | |
229 | 575 _print_option_type_newtable (NULL, user_data, NULL); |
136 | 576 |
577 if (option_data->tbl_col_num == 0) | |
578 { | |
579 option_data->tbl_row_num++; | |
580 gtk_table_resize (GTK_TABLE (option_data->table), | |
581 option_data->tbl_row_num + 1, 2); | |
582 } | |
583 | |
584 tempwid = gtk_check_button_new_with_label (_(cv->description)); | |
585 gtk_table_attach_defaults (GTK_TABLE (option_data->table), tempwid, | |
586 option_data->tbl_col_num, | |
587 option_data->tbl_col_num + 1, | |
588 option_data->tbl_row_num, | |
589 option_data->tbl_row_num + 1); | |
590 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (tempwid), | |
229 | 591 GPOINTER_TO_INT(value)); |
136 | 592 gtk_widget_show (tempwid); |
593 | |
594 option_data->tbl_col_num = (option_data->tbl_col_num + 1) % 2; | |
139 | 595 |
596 if (cv->comment != NULL) | |
597 { | |
598 tooltip = gtk_tooltips_new (); | |
294 | 599 gtk_tooltips_set_tip (GTK_TOOLTIPS(tooltip), tempwid, _(cv->comment), |
600 NULL); | |
139 | 601 } |
602 | |
136 | 603 return (tempwid); |
604 } | |
605 | |
606 | |
607 static void | |
608 _save_option_type_checkbox (gftp_config_vars * cv, void *user_data) | |
609 { | |
610 gftp_options_dialog_data * option_data; | |
472 | 611 intptr_t val; |
136 | 612 |
613 option_data = user_data; | |
229 | 614 |
615 val = GTK_TOGGLE_BUTTON (cv->user_data)->active; | |
616 | |
617 if (option_data->bm == NULL) | |
618 gftp_set_global_option (cv->key, GINT_TO_POINTER (val)); | |
619 else | |
620 gftp_set_bookmark_option (option_data->bm, cv->key, GINT_TO_POINTER (val)); | |
136 | 621 } |
622 | |
623 | |
624 static void * | |
229 | 625 _print_option_type_float (gftp_config_vars * cv, void *user_data, void *value) |
136 | 626 { |
627 gftp_options_dialog_data * option_data; | |
628 GtkWidget * tempwid; | |
629 char tempstr[20]; | |
630 float f; | |
631 | |
632 option_data = user_data; | |
633 | |
139 | 634 tempwid = _gen_input_widget (option_data, cv->description, cv->comment); |
229 | 635 memcpy (&f, &value, sizeof (f)); |
136 | 636 g_snprintf (tempstr, sizeof (tempstr), "%.2f", f); |
637 gtk_entry_set_text (GTK_ENTRY (tempwid), tempstr); | |
638 return (tempwid); | |
639 } | |
640 | |
641 | |
642 static void | |
643 _save_option_type_float (gftp_config_vars * cv, void *user_data) | |
644 { | |
645 gftp_options_dialog_data * option_data; | |
472 | 646 union { void *ptr; float f; } fv; |
136 | 647 const char *tempstr; |
648 | |
649 option_data = user_data; | |
650 tempstr = gtk_entry_get_text (GTK_ENTRY (cv->user_data)); | |
472 | 651 fv.f = strtod (tempstr, NULL); |
229 | 652 |
653 if (option_data->bm == NULL) | |
472 | 654 gftp_set_global_option (cv->key, fv.ptr); |
229 | 655 else |
472 | 656 gftp_set_bookmark_option (option_data->bm, cv->key, fv.ptr); |
136 | 657 } |
658 | |
659 | |
660 static void * | |
229 | 661 _print_option_type_notebook (gftp_config_vars * cv, void *user_data, void *value) |
136 | 662 { |
663 gftp_options_dialog_data * option_data; | |
664 GtkWidget * tempwid; | |
665 | |
666 option_data = user_data; | |
667 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
668 option_data->box = gtk_vbox_new (FALSE, 6); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
669 gtk_container_border_width (GTK_CONTAINER (option_data->box), 12); |
136 | 670 gtk_widget_show (option_data->box); |
671 | |
672 tempwid = gtk_label_new (_(cv->description)); | |
673 gtk_widget_show (tempwid); | |
674 gtk_notebook_append_page (GTK_NOTEBOOK (option_data->notebook), | |
675 option_data->box, tempwid); | |
676 | |
229 | 677 _print_option_type_newtable (NULL, user_data, NULL); |
136 | 678 |
679 return (NULL); | |
680 } | |
1 | 681 |
48 | 682 |
683 static void | |
684 clean_old_changes (GtkWidget * widget, gpointer data) | |
685 { | |
239 | 686 gftp_textcomboedt_widget_data * widdata; |
687 gftp_config_vars * cv; | |
688 GList * templist; | |
689 int i; | |
690 | |
691 for (templist = gftp_options_list; | |
692 templist != NULL; | |
693 templist = templist->next) | |
694 { | |
695 cv = templist->data; | |
696 | |
697 for (i=0; cv[i].key != NULL; i++) | |
698 { | |
699 widdata = cv->user_data; | |
700 if (widdata != NULL) | |
701 { | |
702 if (widdata->custom_edit_value != NULL) | |
703 g_free (widdata->custom_edit_value); | |
704 g_free (widdata); | |
705 cv->user_data = NULL; | |
706 } | |
707 } | |
708 } | |
709 | |
218 | 710 if (new_proxy_hosts != NULL) |
48 | 711 { |
218 | 712 gftp_free_proxy_hosts (new_proxy_hosts); |
713 new_proxy_hosts = NULL; | |
48 | 714 } |
715 } | |
716 | |
717 | |
718 static void | |
719 apply_changes (GtkWidget * widget, gpointer data) | |
720 { | |
218 | 721 gftp_config_list_vars * proxy_hosts; |
136 | 722 gftp_config_vars * cv; |
723 GList * templist; | |
724 int i; | |
48 | 725 |
136 | 726 for (templist = gftp_options_list; |
727 templist != NULL; | |
728 templist = templist->next) | |
48 | 729 { |
136 | 730 cv = templist->data; |
731 | |
732 for (i=0; cv[i].key != NULL; i++) | |
48 | 733 { |
136 | 734 if (!(cv[i].ports_shown & GFTP_PORT_GTK)) |
735 continue; | |
736 | |
737 if (gftp_option_types[cv[i].otype].ui_save_function == NULL) | |
738 continue; | |
739 | |
740 gftp_option_types[cv[i].otype].ui_save_function (&cv[i], gftp_option_types[cv[i].otype].user_data); | |
48 | 741 } |
742 } | |
218 | 743 |
744 gftp_lookup_global_option ("dont_use_proxy", &proxy_hosts); | |
745 | |
746 if (proxy_hosts->list != NULL) | |
747 gftp_free_proxy_hosts (proxy_hosts->list); | |
748 | |
749 proxy_hosts->list = new_proxy_hosts; | |
750 new_proxy_hosts = NULL; | |
341 | 751 gftpui_show_or_hide_command (); |
48 | 752 } |
753 | |
754 | |
45 | 755 #if GTK_MAJOR_VERSION > 1 |
19 | 756 static void |
757 options_action (GtkWidget * widget, gint response, gpointer user_data) | |
758 { | |
759 switch (response) | |
760 { | |
761 case GTK_RESPONSE_APPLY: | |
762 apply_changes (widget, NULL); | |
763 break; | |
764 case GTK_RESPONSE_OK: | |
765 apply_changes (widget, NULL); | |
766 /* no break */ | |
767 default: | |
218 | 768 clean_old_changes (widget, user_data); |
19 | 769 gtk_widget_destroy (widget); |
770 } | |
771 } | |
772 #endif | |
773 | |
774 | |
48 | 775 static void |
776 add_host_to_listbox (GList * templist) | |
777 { | |
778 gftp_proxy_hosts *hosts; | |
779 char *add_data[2]; | |
780 int num; | |
781 | |
782 hosts = templist->data; | |
783 if (hosts->domain) | |
784 { | |
785 add_data[0] = hosts->domain; | |
786 add_data[1] = NULL; | |
787 num = gtk_clist_append (GTK_CLIST (proxy_list), add_data); | |
788 } | |
789 else | |
790 { | |
791 add_data[0] = g_strdup_printf ("%d.%d.%d.%d", | |
792 hosts->ipv4_network_address >> 24 & 0xff, | |
793 hosts->ipv4_network_address >> 16 & 0xff, | |
794 hosts->ipv4_network_address >> 8 & 0xff, | |
795 hosts->ipv4_network_address & 0xff); | |
796 add_data[1] = g_strdup_printf ("%d.%d.%d.%d", | |
797 hosts->ipv4_netmask >> 24 & 0xff, | |
798 hosts->ipv4_netmask >> 16 & 0xff, | |
799 hosts->ipv4_netmask >> 8 & 0xff, | |
800 hosts->ipv4_netmask & 0xff); | |
801 num = gtk_clist_append (GTK_CLIST (proxy_list), add_data); | |
802 g_free (add_data[0]); | |
803 g_free (add_data[1]); | |
804 } | |
218 | 805 |
48 | 806 gtk_clist_set_row_data (GTK_CLIST (proxy_list), num, (gpointer) templist); |
807 } | |
808 | |
809 | |
810 static void | |
811 add_ok (GtkWidget * widget, gpointer data) | |
812 { | |
813 gftp_proxy_hosts *hosts; | |
814 const char *edttxt; | |
815 GList *templist; | |
816 int num; | |
817 | |
218 | 818 templist = data; |
819 if (templist == NULL) | |
48 | 820 { |
821 hosts = g_malloc0 (sizeof (*hosts)); | |
822 new_proxy_hosts = g_list_append (new_proxy_hosts, hosts); | |
823 for (templist = new_proxy_hosts; templist->next != NULL; | |
824 templist = templist->next); | |
825 } | |
826 else | |
827 { | |
828 num = gtk_clist_find_row_from_data (GTK_CLIST (proxy_list), templist); | |
829 if (num != -1) | |
830 gtk_clist_remove (GTK_CLIST (proxy_list), num); | |
831 hosts = templist->data; | |
832 } | |
833 | |
834 if (hosts->domain) | |
835 { | |
836 g_free (hosts->domain); | |
837 hosts->domain = NULL; | |
838 } | |
839 | |
840 if (GTK_TOGGLE_BUTTON (domain_active)->active) | |
841 { | |
842 edttxt = gtk_entry_get_text (GTK_ENTRY (new_proxy_domain)); | |
218 | 843 hosts->domain = g_strdup (edttxt); |
48 | 844 hosts->ipv4_netmask = hosts->ipv4_network_address = 0; |
845 } | |
846 else | |
847 { | |
848 edttxt = gtk_entry_get_text (GTK_ENTRY (network1)); | |
849 hosts->ipv4_network_address = (strtol (edttxt, NULL, 10) & 0xff) << 24; | |
850 | |
851 edttxt = gtk_entry_get_text (GTK_ENTRY (network2)); | |
852 hosts->ipv4_network_address |= (strtol (edttxt, NULL, 10) & 0xff) << 16; | |
853 | |
854 edttxt = gtk_entry_get_text (GTK_ENTRY (network3)); | |
855 hosts->ipv4_network_address |= (strtol (edttxt, NULL, 10) & 0xff) << 8; | |
856 | |
857 edttxt = gtk_entry_get_text (GTK_ENTRY (network4)); | |
858 hosts->ipv4_network_address |= strtol (edttxt, NULL, 10) & 0xff; | |
859 | |
860 edttxt = gtk_entry_get_text (GTK_ENTRY (netmask1)); | |
861 hosts->ipv4_netmask = (strtol (edttxt, NULL, 10) & 0xff) << 24; | |
862 | |
863 edttxt = gtk_entry_get_text (GTK_ENTRY (netmask2)); | |
864 hosts->ipv4_netmask |= (strtol (edttxt, NULL, 10) & 0xff) << 16; | |
865 | |
866 edttxt = gtk_entry_get_text (GTK_ENTRY (netmask3)); | |
867 hosts->ipv4_netmask |= (strtol (edttxt, NULL, 10) & 0xff) << 8; | |
868 | |
869 edttxt = gtk_entry_get_text (GTK_ENTRY (netmask4)); | |
870 hosts->ipv4_netmask |= strtol (edttxt, NULL, 10) & 0xff; | |
871 } | |
218 | 872 |
48 | 873 add_host_to_listbox (templist); |
874 } | |
875 | |
876 | |
877 #if GTK_MAJOR_VERSION > 1 | |
878 static void | |
879 proxyhosts_action (GtkWidget * widget, gint response, gpointer user_data) | |
880 { | |
881 switch (response) | |
882 { | |
883 case GTK_RESPONSE_OK: | |
884 add_ok (widget, user_data); | |
885 /* no break */ | |
886 default: | |
887 gtk_widget_destroy (widget); | |
888 } | |
889 } | |
890 #endif | |
891 | |
892 | |
893 static void | |
894 add_toggle (GtkWidget * widget, gpointer data) | |
895 { | |
896 gtk_widget_set_sensitive (new_proxy_domain, data != NULL); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
897 gtk_widget_set_sensitive (domain_label, data != NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
898 gtk_widget_set_sensitive (network_label, data == NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
899 gtk_widget_set_sensitive (netmask_label, data == NULL); |
48 | 900 gtk_widget_set_sensitive (network1, data == NULL); |
901 gtk_widget_set_sensitive (network2, data == NULL); | |
902 gtk_widget_set_sensitive (network3, data == NULL); | |
903 gtk_widget_set_sensitive (network4, data == NULL); | |
904 gtk_widget_set_sensitive (netmask1, data == NULL); | |
905 gtk_widget_set_sensitive (netmask2, data == NULL); | |
906 gtk_widget_set_sensitive (netmask3, data == NULL); | |
907 gtk_widget_set_sensitive (netmask4, data == NULL); | |
908 } | |
909 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
910 static void |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
911 buttons_toggle (GtkWidget * widget, gint row, gint col, GdkEventButton * event, gpointer data) |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
912 { |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
913 gtk_widget_set_sensitive (edit_button, data != NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
914 gtk_widget_set_sensitive (delete_button, data != NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
915 } |
48 | 916 |
917 static void | |
918 delete_proxy_host (GtkWidget * widget, gpointer data) | |
919 { | |
920 GList *templist; | |
921 int num; | |
922 | |
227 | 923 gftp_configuration_changed = 1; /* FIXME */ |
924 | |
48 | 925 if ((templist = GTK_CLIST (proxy_list)->selection) == NULL) |
926 return; | |
195 | 927 num = GPOINTER_TO_INT (templist->data); |
48 | 928 templist = gtk_clist_get_row_data (GTK_CLIST (proxy_list), num); |
929 new_proxy_hosts = g_list_remove_link (new_proxy_hosts, templist); | |
930 gtk_clist_remove (GTK_CLIST (proxy_list), num); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
931 buttons_toggle (NULL, 0, 0, 0, NULL); |
48 | 932 } |
933 | |
934 | |
935 static void | |
936 add_proxy_host (GtkWidget * widget, gpointer data) | |
937 { | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
938 GtkWidget *tempwid, *dialog, *box, *rbox, *vbox, *nradio, *table; |
48 | 939 gftp_proxy_hosts *hosts; |
940 char *tempstr, *title; | |
941 GList *templist; | |
942 | |
227 | 943 gftp_configuration_changed = 1; /* FIXME */ |
944 | |
48 | 945 if (data) |
946 { | |
947 if ((templist = GTK_CLIST (proxy_list)->selection) == NULL) | |
948 return; | |
949 templist = gtk_clist_get_row_data (GTK_CLIST (proxy_list), | |
195 | 950 GPOINTER_TO_INT (templist->data)); |
48 | 951 hosts = templist->data; |
952 } | |
953 else | |
954 { | |
955 hosts = NULL; | |
956 templist = NULL; | |
957 } | |
958 | |
959 title = hosts ? _("Edit Host") : _("Add Host"); | |
960 #if GTK_MAJOR_VERSION == 1 | |
961 dialog = gtk_dialog_new (); | |
962 gtk_window_set_title (GTK_WINDOW (dialog), title); | |
963 gtk_container_border_width (GTK_CONTAINER | |
964 (GTK_DIALOG (dialog)->action_area), 5); | |
965 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->action_area), 15); | |
966 gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (dialog)->action_area), TRUE); | |
967 gtk_grab_add (dialog); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
968 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), 10); |
48 | 969 #else |
970 dialog = gtk_dialog_new_with_buttons (title, NULL, 0, | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
971 GTK_STOCK_CANCEL, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
972 GTK_RESPONSE_CANCEL, |
48 | 973 GTK_STOCK_SAVE, |
974 GTK_RESPONSE_OK, | |
975 NULL); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
976 gtk_container_set_border_width (GTK_CONTAINER (dialog), 5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
977 gtk_dialog_set_has_separator (GTK_DIALOG (dialog), FALSE); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
978 gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE); |
48 | 979 #endif |
980 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (dialog)->vbox), 2); | |
981 gtk_window_set_wmclass (GTK_WINDOW(dialog), "hostinfo", "Gftp"); | |
982 gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE); | |
983 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
984 #if GTK_MAJOR_VERSION > 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
985 if (gftp_icon != NULL) |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
986 { |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
987 if ((tempstr = get_xpm_path (gftp_icon->filename, 0)) != NULL) |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
988 { |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
989 gtk_window_set_default_icon_from_file (tempstr, NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
990 g_free (tempstr); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
991 } |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
992 } |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
993 #endif |
48 | 994 |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
995 vbox = gtk_vbox_new (FALSE, 6); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
996 gtk_container_border_width (GTK_CONTAINER (vbox), 5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
997 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), vbox, FALSE, FALSE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
998 gtk_widget_show (vbox); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
999 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1000 box = gtk_hbox_new (FALSE, 12); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1001 gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1002 gtk_widget_show (box); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1003 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1004 #if GTK_MAJOR_VERSION == 1 |
702 | 1005 tempwid = gtk_label_new (_("Type:")); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1006 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1007 tempwid = gtk_label_new_with_mnemonic (_("_Type:")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1008 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1009 gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1010 gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1011 gtk_widget_show (tempwid); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1012 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1013 rbox = gtk_vbox_new (FALSE, 6); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1014 gtk_box_pack_start (GTK_BOX (box), rbox, TRUE, TRUE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1015 gtk_widget_show (rbox); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1016 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1017 domain_active = gtk_radio_button_new_with_label (NULL, _("Domain")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1018 gtk_signal_connect (GTK_OBJECT (domain_active), "toggled", |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1019 GTK_SIGNAL_FUNC (add_toggle), (gpointer) 1); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1020 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1021 nradio = gtk_radio_button_new_with_label (gtk_radio_button_group |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1022 (GTK_RADIO_BUTTON (domain_active)), |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1023 _("Network")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1024 gtk_signal_connect (GTK_OBJECT (nradio), "toggled", |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1025 GTK_SIGNAL_FUNC (add_toggle), NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1026 #if GTK_MAJOR_VERSION > 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1027 gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), nradio); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1028 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1029 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1030 gtk_box_pack_start (GTK_BOX (rbox), nradio, TRUE, TRUE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1031 gtk_widget_show (nradio); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1032 gtk_box_pack_start (GTK_BOX (rbox), domain_active, TRUE, TRUE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1033 gtk_widget_show (domain_active); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1034 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1035 box = gtk_hbox_new (FALSE, 12); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1036 gtk_box_pack_start (GTK_BOX (vbox), box, FALSE, FALSE, 0); |
48 | 1037 gtk_widget_show (box); |
1038 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1039 tempwid = gtk_label_new (" "); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1040 gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0); |
48 | 1041 gtk_widget_show (tempwid); |
1042 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1043 table = gtk_table_new (2, 2, FALSE); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1044 gtk_table_set_row_spacings (GTK_TABLE (table), 6); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1045 gtk_table_set_col_spacings (GTK_TABLE (table), 12); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1046 gtk_box_pack_start (GTK_BOX (box), table, FALSE, FALSE, 0); |
48 | 1047 gtk_widget_show (table); |
1048 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1049 #if GTK_MAJOR_VERSION == 1 |
48 | 1050 tempwid = gtk_label_new (_("Network Address")); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1051 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1052 tempwid = gtk_label_new_with_mnemonic (_("_Network address:")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1053 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1054 network_label = tempwid; |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1055 gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5); |
48 | 1056 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 0, 1); |
1057 gtk_widget_show (tempwid); | |
1058 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1059 box = gtk_hbox_new (FALSE, 6); |
48 | 1060 gtk_table_attach_defaults (GTK_TABLE (table), box, 1, 2, 0, 1); |
1061 gtk_widget_show (box); | |
1062 | |
1063 network1 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1064 gtk_widget_set_size_request (network1, 36, -1); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1065 #if GTK_MAJOR_VERSION > 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1066 gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), network1); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1067 #endif |
48 | 1068 |
1069 gtk_box_pack_start (GTK_BOX (box), network1, TRUE, TRUE, 0); | |
1070 gtk_widget_show (network1); | |
1071 | |
1072 network2 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1073 gtk_widget_set_size_request (network2, 36, -1); |
48 | 1074 |
1075 gtk_box_pack_start (GTK_BOX (box), network2, TRUE, TRUE, 0); | |
1076 gtk_widget_show (network2); | |
1077 | |
1078 network3 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1079 gtk_widget_set_size_request (network3, 36, -1); |
48 | 1080 |
1081 gtk_box_pack_start (GTK_BOX (box), network3, TRUE, TRUE, 0); | |
1082 gtk_widget_show (network3); | |
1083 | |
1084 network4 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1085 gtk_widget_set_size_request (network4, 36, -1); |
48 | 1086 |
1087 gtk_box_pack_start (GTK_BOX (box), network4, TRUE, TRUE, 0); | |
1088 gtk_widget_show (network4); | |
1089 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1090 #if GTK_MAJOR_VERSION == 1 |
48 | 1091 tempwid = gtk_label_new (_("Netmask")); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1092 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1093 tempwid = gtk_label_new_with_mnemonic (_("N_etmask:")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1094 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1095 netmask_label = tempwid; |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1096 gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5); |
48 | 1097 gtk_table_attach_defaults (GTK_TABLE (table), tempwid, 0, 1, 1, 2); |
1098 gtk_widget_show (tempwid); | |
1099 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1100 box = gtk_hbox_new (FALSE, 6); |
48 | 1101 gtk_table_attach_defaults (GTK_TABLE (table), box, 1, 2, 1, 2); |
1102 gtk_widget_show (box); | |
1103 | |
1104 netmask1 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1105 gtk_widget_set_size_request (netmask1, 36, -1); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1106 #if GTK_MAJOR_VERSION > 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1107 gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), netmask1); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1108 #endif |
48 | 1109 |
1110 gtk_box_pack_start (GTK_BOX (box), netmask1, TRUE, TRUE, 0); | |
1111 gtk_widget_show (netmask1); | |
1112 | |
1113 netmask2 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1114 gtk_widget_set_size_request (netmask2, 36, -1); |
48 | 1115 |
1116 gtk_box_pack_start (GTK_BOX (box), netmask2, TRUE, TRUE, 0); | |
1117 gtk_widget_show (netmask2); | |
1118 | |
1119 netmask3 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1120 gtk_widget_set_size_request (netmask3, 36, -1); |
48 | 1121 |
1122 gtk_box_pack_start (GTK_BOX (box), netmask3, TRUE, TRUE, 0); | |
1123 gtk_widget_show (netmask3); | |
1124 | |
1125 netmask4 = gtk_entry_new (); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1126 gtk_widget_set_size_request (netmask4, 36, -1); |
48 | 1127 |
1128 gtk_box_pack_start (GTK_BOX (box), netmask4, TRUE, TRUE, 0); | |
1129 gtk_widget_show (netmask4); | |
1130 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1131 box = gtk_hbox_new (FALSE, 12); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1132 gtk_box_pack_start (GTK_BOX (vbox), box, TRUE, TRUE, 0); |
48 | 1133 gtk_widget_show (box); |
1134 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1135 tempwid = gtk_label_new (" "); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1136 gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1137 gtk_widget_show (tempwid); |
48 | 1138 |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1139 #if GTK_MAJOR_VERSION == 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1140 tempwid = gtk_label_new (_("Domain")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1141 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1142 tempwid = gtk_label_new_with_mnemonic (_("_Domain:")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1143 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1144 domain_label = tempwid; |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1145 gtk_misc_set_alignment (GTK_MISC (tempwid), 0, 0.5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1146 gtk_box_pack_start (GTK_BOX (box), tempwid, FALSE, FALSE, 0); |
48 | 1147 gtk_widget_show (tempwid); |
1148 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1149 new_proxy_domain = gtk_entry_new (); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1150 gtk_box_pack_start (GTK_BOX (box), new_proxy_domain, TRUE, TRUE, 0); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1151 gtk_widget_show (new_proxy_domain); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1152 #if GTK_MAJOR_VERSION > 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1153 gtk_label_set_mnemonic_widget (GTK_LABEL (tempwid), new_proxy_domain); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1154 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1155 |
48 | 1156 if (!hosts || !hosts->domain) |
1157 { | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1158 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (nradio), TRUE); |
48 | 1159 add_toggle (NULL, NULL); |
1160 } | |
1161 else | |
1162 { | |
1163 gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (domain_active), TRUE); | |
1164 add_toggle (NULL, (gpointer) 1); | |
1165 } | |
1166 | |
1167 if (hosts) | |
1168 { | |
1169 if (hosts->domain) | |
1170 gtk_entry_set_text (GTK_ENTRY (new_proxy_domain), hosts->domain); | |
1171 else | |
1172 { | |
1173 tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 24 & 0xff); | |
1174 gtk_entry_set_text (GTK_ENTRY (network1), tempstr); | |
1175 g_free (tempstr); | |
1176 | |
1177 tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 16 & 0xff); | |
1178 gtk_entry_set_text (GTK_ENTRY (network2), tempstr); | |
1179 g_free (tempstr); | |
1180 | |
1181 tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 8 & 0xff); | |
1182 gtk_entry_set_text (GTK_ENTRY (network3), tempstr); | |
1183 g_free (tempstr); | |
1184 | |
1185 tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address & 0xff); | |
1186 gtk_entry_set_text (GTK_ENTRY (network4), tempstr); | |
1187 g_free (tempstr); | |
1188 | |
1189 tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 24 & 0xff); | |
1190 gtk_entry_set_text (GTK_ENTRY (netmask1), tempstr); | |
1191 g_free (tempstr); | |
1192 | |
1193 tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 16 & 0xff); | |
1194 gtk_entry_set_text (GTK_ENTRY (netmask2), tempstr); | |
1195 g_free (tempstr); | |
1196 | |
1197 tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 8 & 0xff); | |
1198 gtk_entry_set_text (GTK_ENTRY (netmask3), tempstr); | |
1199 g_free (tempstr); | |
1200 | |
1201 tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask & 0xff); | |
1202 gtk_entry_set_text (GTK_ENTRY (netmask4), tempstr); | |
1203 g_free (tempstr); | |
1204 } | |
1205 } | |
1206 | |
1207 #if GTK_MAJOR_VERSION == 1 | |
1208 tempwid = gtk_button_new_with_label (_("OK")); | |
1209 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); | |
1210 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, | |
1211 TRUE, TRUE, 0); | |
1212 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", | |
1213 GTK_SIGNAL_FUNC (add_ok), (gpointer) templist); | |
1214 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", | |
1215 GTK_SIGNAL_FUNC (gtk_widget_destroy), | |
1216 GTK_OBJECT (dialog)); | |
1217 gtk_widget_show (tempwid); | |
1218 | |
1219 tempwid = gtk_button_new_with_label (_(" Cancel ")); | |
1220 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); | |
1221 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, | |
1222 TRUE, TRUE, 0); | |
1223 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", | |
1224 GTK_SIGNAL_FUNC (gtk_widget_destroy), | |
1225 GTK_OBJECT (dialog)); | |
1226 gtk_widget_show (tempwid); | |
1227 #else | |
1228 g_signal_connect (GTK_OBJECT (dialog), "response", | |
1229 G_CALLBACK (proxyhosts_action), NULL); | |
1230 #endif | |
1231 | |
1232 gtk_widget_show (dialog); | |
1233 } | |
1234 | |
1235 static void | |
1236 make_proxy_hosts_tab (GtkWidget * notebook) | |
1237 { | |
1238 GtkWidget *tempwid, *box, *hbox, *scroll; | |
218 | 1239 gftp_config_list_vars * proxy_hosts; |
48 | 1240 char *add_data[2]; |
218 | 1241 GList * templist; |
48 | 1242 |
1243 add_data[0] = _("Network"); | |
1244 add_data[1] = _("Netmask"); | |
1245 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1246 box = gtk_vbox_new (FALSE, 6); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1247 gtk_container_border_width (GTK_CONTAINER (box), 12); |
48 | 1248 gtk_widget_show (box); |
1249 | |
1250 tempwid = gtk_label_new (_("Local Hosts")); | |
1251 gtk_widget_show (tempwid); | |
1252 gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box, tempwid); | |
1253 | |
1254 scroll = gtk_scrolled_window_new (NULL, NULL); | |
1255 gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), | |
1256 GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); | |
1257 gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0); | |
1258 | |
1259 proxy_list = gtk_clist_new_with_titles (2, add_data); | |
1260 gtk_container_add (GTK_CONTAINER (scroll), proxy_list); | |
1261 gtk_clist_set_column_auto_resize (GTK_CLIST (proxy_list), 0, TRUE); | |
1262 gtk_clist_set_column_auto_resize (GTK_CLIST (proxy_list), 1, TRUE); | |
1263 gtk_widget_show (proxy_list); | |
1264 gtk_widget_show (scroll); | |
1265 | |
218 | 1266 gftp_lookup_global_option ("dont_use_proxy", &proxy_hosts); |
1267 new_proxy_hosts = gftp_copy_proxy_hosts (proxy_hosts->list); | |
1268 | |
1269 for (templist = new_proxy_hosts; | |
1270 templist != NULL; | |
1271 templist = templist->next) | |
1272 add_host_to_listbox (templist); | |
1273 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1274 hbox = gtk_hbox_new (TRUE, 12); |
218 | 1275 |
48 | 1276 gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0); |
1277 gtk_widget_show (hbox); | |
1278 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1279 #if GTK_MAJOR_VERSION == 1 |
48 | 1280 tempwid = gtk_button_new_with_label (_("Add")); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1281 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1282 tempwid = gtk_button_new_from_stock (GTK_STOCK_ADD); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1283 #endif |
48 | 1284 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); |
1285 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); | |
1286 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", | |
1287 GTK_SIGNAL_FUNC (add_proxy_host), NULL); | |
1288 gtk_widget_show (tempwid); | |
1289 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1290 #if GTK_MAJOR_VERSION == 1 |
48 | 1291 tempwid = gtk_button_new_with_label (_("Edit")); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1292 #elif GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 5 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1293 tempwid = gtk_button_new_with_mnemonic (_("_Edit")); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1294 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1295 tempwid = gtk_button_new_from_stock (GTK_STOCK_EDIT); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1296 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1297 edit_button = tempwid; |
48 | 1298 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); |
1299 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); | |
1300 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", | |
1301 GTK_SIGNAL_FUNC (add_proxy_host), (gpointer) 1); | |
1302 gtk_widget_show (tempwid); | |
1303 | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1304 #if GTK_MAJOR_VERSION == 1 |
48 | 1305 tempwid = gtk_button_new_with_label (_("Delete")); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1306 #else |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1307 tempwid = gtk_button_new_from_stock (GTK_STOCK_DELETE); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1308 #endif |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1309 delete_button = tempwid; |
48 | 1310 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); |
1311 gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); | |
1312 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", | |
1313 GTK_SIGNAL_FUNC (delete_proxy_host), NULL); | |
1314 gtk_widget_show (tempwid); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1315 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1316 gtk_signal_connect (GTK_OBJECT (proxy_list), "select_row", |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1317 GTK_SIGNAL_FUNC (buttons_toggle), (gpointer) 1); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1318 gtk_signal_connect (GTK_OBJECT (proxy_list), "unselect_row", |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1319 GTK_SIGNAL_FUNC (buttons_toggle), NULL); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1320 buttons_toggle (NULL, 0, 0, 0, NULL); |
48 | 1321 } |
1322 | |
1323 | |
229 | 1324 static gftp_options_dialog_data * |
1325 _init_option_data (void) | |
227 | 1326 { |
229 | 1327 gftp_options_dialog_data * option_data; |
1328 | |
1329 option_data = g_malloc0 (sizeof (*option_data)); | |
227 | 1330 |
1331 _setup_option (gftp_option_type_text, option_data, | |
1332 _print_option_type_text, _save_option_type_text, NULL); | |
1333 _setup_option (gftp_option_type_textcombo, option_data, | |
1334 _print_option_type_textcombo, _save_option_type_textcombo, | |
1335 NULL); | |
1336 _setup_option (gftp_option_type_textcomboedt, option_data, | |
1337 _print_option_type_textcomboedt, | |
1338 _save_option_type_textcomboedt, | |
239 | 1339 NULL); |
227 | 1340 _setup_option (gftp_option_type_hidetext, option_data, |
1341 _print_option_type_hidetext, _save_option_type_text, NULL); | |
1342 _setup_option (gftp_option_type_int, option_data, | |
1343 _print_option_type_int, _save_option_type_int, NULL); | |
1344 _setup_option (gftp_option_type_checkbox, option_data, | |
1345 _print_option_type_checkbox, _save_option_type_checkbox, NULL); | |
1346 _setup_option (gftp_option_type_float, option_data, | |
1347 _print_option_type_float, _save_option_type_float, NULL); | |
1348 _setup_option (gftp_option_type_notebook, option_data, | |
1349 _print_option_type_notebook, NULL, NULL); | |
229 | 1350 |
1351 return (option_data); | |
227 | 1352 } |
1353 | |
1354 | |
1 | 1355 void |
1356 options_dialog (gpointer data) | |
1357 { | |
136 | 1358 gftp_config_vars * cv; |
1359 GList * templist; | |
229 | 1360 void *value; |
136 | 1361 int i; |
151 | 1362 #if GTK_MAJOR_VERSION == 1 |
1363 GtkWidget * tempwid; | |
1364 #endif | |
136 | 1365 |
518 | 1366 gftp_option_data = _init_option_data (); |
1 | 1367 |
45 | 1368 #if GTK_MAJOR_VERSION == 1 |
526 | 1369 gftp_option_data->dialog = gtk_dialog_new (); |
1370 gtk_window_set_title (GTK_WINDOW (gftp_option_data->dialog), _("Options")); | |
1371 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->action_area), 5); | |
1372 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), 15); | |
1373 gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), TRUE); | |
19 | 1374 #else |
518 | 1375 gftp_option_data->dialog = gtk_dialog_new_with_buttons (_("Options"), NULL, 0, |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1376 GTK_STOCK_APPLY, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1377 GTK_RESPONSE_APPLY, |
19 | 1378 GTK_STOCK_CANCEL, |
1379 GTK_RESPONSE_CANCEL, | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1380 GTK_STOCK_OK, |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1381 GTK_RESPONSE_OK, |
19 | 1382 NULL); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1383 gtk_container_set_border_width (GTK_CONTAINER (gftp_option_data->dialog), 5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1384 gtk_dialog_set_has_separator (GTK_DIALOG (gftp_option_data->dialog), FALSE); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1385 gtk_window_set_resizable (GTK_WINDOW (gftp_option_data->dialog), FALSE); |
19 | 1386 #endif |
518 | 1387 gtk_window_set_wmclass (GTK_WINDOW(gftp_option_data->dialog), |
1388 "options", "gFTP"); | |
1389 gtk_window_set_position (GTK_WINDOW (gftp_option_data->dialog), | |
1390 GTK_WIN_POS_MOUSE); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1391 #if GTK_MAJOR_VERSION == 1 |
518 | 1392 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->vbox), 10); |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1393 #endif |
518 | 1394 gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->vbox), 2); |
1395 gtk_widget_realize (gftp_option_data->dialog); | |
19 | 1396 |
1397 if (gftp_icon != NULL) | |
1398 { | |
518 | 1399 gdk_window_set_icon (gftp_option_data->dialog->window, NULL, |
1400 gftp_icon->pixmap, gftp_icon->bitmap); | |
1401 gdk_window_set_icon_name (gftp_option_data->dialog->window, gftp_version); | |
19 | 1402 } |
1 | 1403 |
518 | 1404 gftp_option_data->notebook = gtk_notebook_new (); |
1405 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->vbox), | |
1406 gftp_option_data->notebook, TRUE, TRUE, 0); | |
1407 gtk_widget_show (gftp_option_data->notebook); | |
630
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1408 #if GTK_MAJOR_VERSION > 1 |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1409 gtk_container_border_width (GTK_CONTAINER (gftp_option_data->notebook), 5); |
b3a0cccb1cd6
2004-11-18 Dennis Cranston <dennis_cranston@yahoo.com>
masneyb
parents:
526
diff
changeset
|
1410 #endif |
1 | 1411 |
136 | 1412 cv = gftp_options_list->data; |
518 | 1413 gftp_option_data->last_option = cv[0].otype; |
136 | 1414 for (templist = gftp_options_list; |
1415 templist != NULL; | |
1416 templist = templist->next) | |
1417 { | |
1418 cv = templist->data; | |
1 | 1419 |
136 | 1420 for (i=0; cv[i].key != NULL; i++) |
1421 { | |
1422 if (!(cv[i].ports_shown & GFTP_PORT_GTK)) | |
1423 continue; | |
1424 | |
1425 if (gftp_option_types[cv[i].otype].ui_print_function == NULL) | |
1426 continue; | |
1427 | |
229 | 1428 if (*cv[i].key != '\0') |
1429 gftp_lookup_global_option (cv[i].key, &value); | |
1430 else | |
1431 value = NULL; | |
136 | 1432 |
229 | 1433 cv[i].user_data = gftp_option_types[cv[i].otype].ui_print_function (&cv[i], gftp_option_types[cv[i].otype].user_data, value); |
1434 | |
518 | 1435 gftp_option_data->last_option = cv[i].otype; |
1 | 1436 } |
1437 } | |
1438 | |
518 | 1439 make_proxy_hosts_tab (gftp_option_data->notebook); |
218 | 1440 |
45 | 1441 #if GTK_MAJOR_VERSION == 1 |
1 | 1442 tempwid = gtk_button_new_with_label (_("OK")); |
1443 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); | |
518 | 1444 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), |
136 | 1445 tempwid, TRUE, TRUE, 0); |
1 | 1446 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", |
1447 GTK_SIGNAL_FUNC (apply_changes), NULL); | |
1448 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", | |
1449 GTK_SIGNAL_FUNC (gtk_widget_destroy), | |
518 | 1450 GTK_OBJECT (gftp_option_data->dialog)); |
1 | 1451 gtk_widget_show (tempwid); |
1452 | |
1453 tempwid = gtk_button_new_with_label (_(" Cancel ")); | |
1454 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); | |
518 | 1455 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), |
136 | 1456 tempwid, TRUE, TRUE, 0); |
1 | 1457 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", |
1458 GTK_SIGNAL_FUNC (clean_old_changes), NULL); | |
1459 gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", | |
1460 GTK_SIGNAL_FUNC (gtk_widget_destroy), | |
518 | 1461 GTK_OBJECT (gftp_option_data->dialog)); |
1 | 1462 gtk_widget_show (tempwid); |
1463 | |
1464 tempwid = gtk_button_new_with_label (_("Apply")); | |
1465 GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); | |
518 | 1466 gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), |
136 | 1467 tempwid, TRUE, TRUE, 0); |
1 | 1468 gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", |
1469 GTK_SIGNAL_FUNC (apply_changes), NULL); | |
1470 gtk_widget_grab_default (tempwid); | |
1471 gtk_widget_show (tempwid); | |
19 | 1472 #else |
518 | 1473 g_signal_connect (GTK_OBJECT (gftp_option_data->dialog), "response", |
19 | 1474 G_CALLBACK (options_action), NULL); |
1475 #endif | |
1 | 1476 |
518 | 1477 gtk_widget_show (gftp_option_data->dialog); |
1 | 1478 } |
1479 | |
227 | 1480 |
1481 void | |
229 | 1482 gftp_gtk_setup_bookmark_options (GtkWidget * notebook, gftp_bookmarks_var * bm) |
227 | 1483 { |
1484 gftp_config_vars * cv; | |
1485 GList * templist; | |
229 | 1486 void *value; |
227 | 1487 int i; |
1488 | |
518 | 1489 gftp_option_data = _init_option_data (); |
1490 gftp_option_data->bm = bm; | |
1491 gftp_option_data->notebook = notebook; | |
227 | 1492 |
1493 cv = gftp_options_list->data; | |
518 | 1494 gftp_option_data->last_option = cv[0].otype; |
227 | 1495 for (templist = gftp_options_list; |
1496 templist != NULL; | |
1497 templist = templist->next) | |
1498 { | |
1499 cv = templist->data; | |
1500 | |
1501 for (i=0; cv[i].key != NULL; i++) | |
1502 { | |
1503 if (!(cv[i].flags & GFTP_CVARS_FLAGS_SHOW_BOOKMARK)) | |
1504 continue; | |
1505 | |
1506 if (gftp_option_types[cv[i].otype].ui_print_function == NULL) | |
1507 continue; | |
1508 | |
229 | 1509 if (*cv[i].key != '\0') |
1510 gftp_lookup_bookmark_option (bm, cv[i].key, &value); | |
1511 else | |
1512 value = NULL; | |
227 | 1513 |
518 | 1514 cv[i].user_data = gftp_option_types[cv[i].otype].ui_print_function (&cv[i], gftp_option_data, value); |
229 | 1515 |
518 | 1516 gftp_option_data->last_option = cv[i].otype; |
227 | 1517 } |
1518 } | |
1519 } | |
1520 | |
1521 | |
1522 void | |
229 | 1523 gftp_gtk_save_bookmark_options (gftp_bookmarks_var * bm) |
227 | 1524 { |
1525 gftp_config_vars * cv; | |
1526 GList * templist; | |
1527 int i; | |
1528 | |
1529 for (templist = gftp_options_list; | |
1530 templist != NULL; | |
1531 templist = templist->next) | |
1532 { | |
1533 cv = templist->data; | |
1534 | |
1535 for (i=0; cv[i].key != NULL; i++) | |
1536 { | |
1537 if (!(cv[i].flags & GFTP_CVARS_FLAGS_SHOW_BOOKMARK)) | |
1538 continue; | |
1539 | |
1540 if (gftp_option_types[cv[i].otype].ui_save_function == NULL) | |
1541 continue; | |
1542 | |
518 | 1543 gftp_option_types[cv[i].otype].ui_save_function (&cv[i], |
1544 gftp_option_data); | |
227 | 1545 } |
1546 } | |
1547 } | |
1548 |