comparison src/prefs.c @ 338:9d258a0aa560

[gaim-migrate @ 348] Whoa, all kinds of things happened here. The applet looks better. The preferences dialog changes based on your compile-time options (oscar, gnome). Whispering works again. libfaim got updated; it can almost do RVOUS stuff, and hopefully soon can make requests too. The applet doesn't need to have its sounds go through GNOME, although it still can. There is code to facilitate SOCKS5 support (all that needs to be done is to actually write the code to communicate with the proxy server). committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 06 Jun 2000 09:55:30 +0000
parents f5b199e20d12
children 0d9cfc3579a5
comparison
equal deleted inserted replaced
337:f5b199e20d12 338:9d258a0aa560
211 static int 211 static int
212 connection_key_pressed(GtkWidget *w, GdkEvent *event, void *dummy) 212 connection_key_pressed(GtkWidget *w, GdkEvent *event, void *dummy)
213 { 213 {
214 g_snprintf(aim_host, sizeof(aim_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->aim_host_entry))); 214 g_snprintf(aim_host, sizeof(aim_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->aim_host_entry)));
215 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->aim_port_entry)), "%d", &aim_port); 215 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->aim_port_entry)), "%d", &aim_port);
216 if (proxy_type == PROXY_HTTP) { 216 if (proxy_type != PROXY_NONE) {
217 g_snprintf(proxy_host, sizeof(proxy_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->http_proxy_host_entry))); 217 g_snprintf(proxy_host, sizeof(proxy_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->proxy_host_entry)));
218 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->http_proxy_port_entry)), "%d", &proxy_port); 218 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->proxy_port_entry)), "%d", &proxy_port);
219 } else if (proxy_type == PROXY_SOCKS) {
220 g_snprintf(proxy_host, sizeof(proxy_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->socks_proxy_host_entry)));
221 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->socks_proxy_port_entry)), "%d", &proxy_port);
222 } 219 }
223 220
224 g_snprintf(login_host, sizeof(login_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->login_host_entry))); 221 g_snprintf(login_host, sizeof(login_host), "%s", gtk_entry_get_text(GTK_ENTRY(pd->login_host_entry)));
225 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->login_port_entry)), "%d", &login_port); 222 sscanf(gtk_entry_get_text(GTK_ENTRY(pd->login_port_entry)), "%d", &login_port);
226 save_prefs(); 223 save_prefs();
254 } 251 }
255 252
256 static void set_connect(GtkWidget *w, int *data) 253 static void set_connect(GtkWidget *w, int *data)
257 { 254 {
258 proxy_type = (int)data; 255 proxy_type = (int)data;
259 if (proxy_type == PROXY_HTTP) { 256 if (proxy_type != PROXY_NONE) {
260 if (pd->http_proxy_host_entry) 257 if (pd->proxy_host_entry)
261 gtk_widget_set_sensitive(pd->http_proxy_host_entry, TRUE); 258 gtk_widget_set_sensitive(pd->proxy_host_entry, TRUE);
262 if (pd->http_proxy_port_entry) 259 if (pd->proxy_port_entry)
263 gtk_widget_set_sensitive(pd->http_proxy_port_entry, TRUE); 260 gtk_widget_set_sensitive(pd->proxy_port_entry, TRUE);
264 if (pd->socks_proxy_host_entry)
265 gtk_widget_set_sensitive(pd->socks_proxy_host_entry, FALSE);
266 if (pd->socks_proxy_port_entry)
267 gtk_widget_set_sensitive(pd->socks_proxy_port_entry, FALSE);
268 } else if (proxy_type == PROXY_SOCKS) {
269 if (pd->socks_proxy_host_entry)
270 gtk_widget_set_sensitive(pd->socks_proxy_host_entry, TRUE);
271 if (pd->socks_proxy_port_entry)
272 gtk_widget_set_sensitive(pd->socks_proxy_port_entry, TRUE);
273 if (pd->http_proxy_host_entry)
274 gtk_widget_set_sensitive(pd->http_proxy_host_entry, FALSE);
275 if (pd->http_proxy_port_entry)
276 gtk_widget_set_sensitive(pd->http_proxy_port_entry, FALSE);
277 } else { 261 } else {
278 if (pd->http_proxy_host_entry) 262 if (pd->proxy_host_entry)
279 gtk_widget_set_sensitive(pd->http_proxy_host_entry, FALSE); 263 gtk_widget_set_sensitive(pd->proxy_host_entry, FALSE);
280 if (pd->http_proxy_port_entry) 264 if (pd->proxy_port_entry)
281 gtk_widget_set_sensitive(pd->http_proxy_port_entry, FALSE); 265 gtk_widget_set_sensitive(pd->proxy_port_entry, FALSE);
282 if (pd->socks_proxy_host_entry)
283 gtk_widget_set_sensitive(pd->socks_proxy_host_entry, FALSE);
284 if (pd->socks_proxy_port_entry)
285 gtk_widget_set_sensitive(pd->socks_proxy_port_entry, FALSE);
286 } 266 }
287 267
288 save_prefs(); 268 save_prefs();
289 } 269 }
290 270
328 GtkWidget *idleframe; 308 GtkWidget *idleframe;
329 GtkWidget *genbox; 309 GtkWidget *genbox;
330 GtkWidget *fontbox; 310 GtkWidget *fontbox;
331 GtkWidget *fontframe; 311 GtkWidget *fontframe;
332 GtkWidget *appbox; 312 GtkWidget *appbox;
313 GtkWidget *appletbox;
333 GtkWidget *away_topbox; 314 GtkWidget *away_topbox;
334 GtkWidget *away_botbox; 315 GtkWidget *away_botbox;
335 GtkWidget *add_away; 316 GtkWidget *add_away;
336 GtkWidget *remove_away; 317 GtkWidget *remove_away;
337 GtkWidget *close; 318 GtkWidget *close;
340 /* GtkWidget *debug_page; */ 321 /* GtkWidget *debug_page; */
341 GtkWidget *general_page; 322 GtkWidget *general_page;
342 GtkWidget *appearance_page; 323 GtkWidget *appearance_page;
343 GtkWidget *chat_page; 324 GtkWidget *chat_page;
344 GtkWidget *browser_page; 325 GtkWidget *browser_page;
326 #ifndef USE_OSCAR /* sorry, since we don't control the comm we can't set
327 the connection */
345 GtkWidget *connection_page; 328 GtkWidget *connection_page;
329 #endif
330 #ifdef USE_APPLET
331 GtkWidget *applet_page;
332 #endif
346 GtkWidget *label; 333 GtkWidget *label;
347 GtkWidget *browseropt; 334 GtkWidget *browseropt;
348 GtkWidget *connectopt; 335 GtkWidget *connectopt;
349 GtkWidget *idleopt; 336 GtkWidget *idleopt;
350 337
394 381
395 gaim_button("Enter sends message", &general_options, OPT_GEN_ENTER_SENDS, genbox); 382 gaim_button("Enter sends message", &general_options, OPT_GEN_ENTER_SENDS, genbox);
396 gaim_button("Auto-login", &general_options, OPT_GEN_AUTO_LOGIN, genbox); 383 gaim_button("Auto-login", &general_options, OPT_GEN_AUTO_LOGIN, genbox);
397 gaim_button("Log All Conversations", &general_options, OPT_GEN_LOG_ALL, genbox); 384 gaim_button("Log All Conversations", &general_options, OPT_GEN_LOG_ALL, genbox);
398 gaim_button("Strip HTML from log files", &general_options, OPT_GEN_STRIP_HTML, genbox); 385 gaim_button("Strip HTML from log files", &general_options, OPT_GEN_STRIP_HTML, genbox);
399 #ifdef USE_APPLET
400 gaim_button("Automatically Show Buddy List", &general_options, OPT_GEN_APP_BUDDY_SHOW, genbox);
401 #endif
402 gaim_button("Raise windows when message recieved", &general_options, OPT_GEN_POPUP_WINDOWS, genbox); 386 gaim_button("Raise windows when message recieved", &general_options, OPT_GEN_POPUP_WINDOWS, genbox);
403 gaim_button("Send URLs as links", &general_options, OPT_GEN_SEND_LINKS, genbox); 387 gaim_button("Send URLs as links", &general_options, OPT_GEN_SEND_LINKS, genbox);
404 gaim_button("Show Lag-O-Meter", &general_options, OPT_GEN_SHOW_LAGMETER, genbox); 388 gaim_button("Show Lag-O-Meter", &general_options, OPT_GEN_SHOW_LAGMETER, genbox);
405 gaim_button("Save some window size/positions", &general_options, OPT_GEN_SAVED_WINDOWS, genbox); 389 gaim_button("Save some window size/positions", &general_options, OPT_GEN_SAVED_WINDOWS, genbox);
406 gaim_button("Ignore new conversations when away", &general_options, OPT_GEN_DISCARD_WHEN_AWAY, genbox); 390 gaim_button("Ignore new conversations when away", &general_options, OPT_GEN_DISCARD_WHEN_AWAY, genbox);
407 /* gaim_button("Automagically check for new releases", &general_options, OPT_GEN_CHECK_VERSIONS, genbox); */
408 gaim_button("Automagically highlight misspelled words", &general_options, OPT_GEN_CHECK_SPELLING, genbox); 391 gaim_button("Automagically highlight misspelled words", &general_options, OPT_GEN_CHECK_SPELLING, genbox);
409 if (!dw && (general_options & OPT_GEN_DEBUG)) 392 if (!dw && (general_options & OPT_GEN_DEBUG))
410 general_options = general_options ^ OPT_GEN_DEBUG; 393 general_options = general_options ^ OPT_GEN_DEBUG;
411 debugbutton = gaim_button("Enable debug mode", &general_options, OPT_GEN_DEBUG, genbox); 394 debugbutton = gaim_button("Enable debug mode", &general_options, OPT_GEN_DEBUG, genbox);
412 395
439 gtk_widget_show(idleframe); 422 gtk_widget_show(idleframe);
440 423
441 424
442 gtk_signal_connect_object( GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), NULL); 425 gtk_signal_connect_object( GTK_OBJECT(debugbutton), "clicked", GTK_SIGNAL_FUNC(show_debug), NULL);
443 426
427
428 /* Applet */
429 #ifdef USE_APPLET
430
431 applet_page = gtk_vbox_new(FALSE, 0);
432 label = gtk_label_new("Applet");
433 gtk_widget_show(label);
434 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), applet_page, label);
435
436 appletbox = gtk_vbox_new(FALSE, 5);
437 gtk_box_pack_start(GTK_BOX(applet_page), appletbox, TRUE, TRUE, 5);
438
439 gaim_button("Automatically Show Buddy List", &general_options, OPT_GEN_APP_BUDDY_SHOW, appletbox);
440 gaim_button("Sounds go through GNOME", &sound_options, OPT_SOUND_THROUGH_GNOME, appletbox);
441
442 gtk_widget_show(appletbox);
443 gtk_widget_show(applet_page);
444
445 #endif
446
447
444 /* Connection */ 448 /* Connection */
445 449
450 #ifndef USE_OSCAR
446 connection_page = gtk_vbox_new(FALSE, 0); 451 connection_page = gtk_vbox_new(FALSE, 0);
447 label = gtk_label_new("Connection"); 452 label = gtk_label_new("Connection");
448 gtk_widget_show(label); 453 gtk_widget_show(label);
449 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), connection_page, label); 454 gtk_notebook_append_page(GTK_NOTEBOOK(notebook), connection_page, label);
450 455
505 gtk_widget_show(connectopt); 510 gtk_widget_show(connectopt);
506 if (proxy_type == PROXY_HTTP) 511 if (proxy_type == PROXY_HTTP)
507 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(connectopt), TRUE); 512 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(connectopt), TRUE);
508 513
509 514
515 connectopt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(connectopt)), "SOCKS v4 Proxy");
516 gtk_box_pack_start(GTK_BOX(connection_page), connectopt, FALSE, FALSE, 0);
517 gtk_signal_connect(GTK_OBJECT(connectopt), "clicked", GTK_SIGNAL_FUNC(set_connect), (void *)PROXY_SOCKS4);
518 gtk_widget_show(connectopt);
519 if (proxy_type == PROXY_SOCKS4)
520 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(connectopt), TRUE);
521
522
523 connectopt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(connectopt)), "SOCKS v5 Proxy (DOES NOT WORK!)");
524 gtk_box_pack_start(GTK_BOX(connection_page), connectopt, FALSE, FALSE, 0);
525 gtk_signal_connect(GTK_OBJECT(connectopt), "clicked", GTK_SIGNAL_FUNC(set_connect), (void *)PROXY_SOCKS5);
526 gtk_widget_show(connectopt);
527 if (proxy_type == PROXY_SOCKS5)
528 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(connectopt), TRUE);
529
530
510 hbox = gtk_hbox_new(FALSE, 0); 531 hbox = gtk_hbox_new(FALSE, 0);
511 label = gtk_label_new("Proxy Host:"); 532 label = gtk_label_new("Proxy Host:");
512 gtk_widget_show(label); 533 gtk_widget_show(label);
513 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); 534 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
514 pd->http_proxy_host_entry = gtk_entry_new(); 535 pd->proxy_host_entry = gtk_entry_new();
515 gtk_widget_show(pd->http_proxy_host_entry); 536 gtk_widget_show(pd->proxy_host_entry);
516 gtk_box_pack_start(GTK_BOX(hbox), pd->http_proxy_host_entry, FALSE, FALSE, 0); 537 gtk_box_pack_start(GTK_BOX(hbox), pd->proxy_host_entry, FALSE, FALSE, 0);
517 538
518 label = gtk_label_new("Port:"); 539 label = gtk_label_new("Port:");
519 gtk_widget_show(label); 540 gtk_widget_show(label);
520 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5); 541 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
521 pd->http_proxy_port_entry = gtk_entry_new(); 542 pd->proxy_port_entry = gtk_entry_new();
522 gtk_widget_show(pd->http_proxy_port_entry); 543 gtk_widget_show(pd->proxy_port_entry);
523 gtk_box_pack_start(GTK_BOX(hbox), pd->http_proxy_port_entry, FALSE, FALSE, 0); 544 gtk_box_pack_start(GTK_BOX(hbox), pd->proxy_port_entry, FALSE, FALSE, 0);
524 gtk_widget_show(hbox); 545 gtk_widget_show(hbox);
525 546
526 gtk_box_pack_start(GTK_BOX(connection_page), hbox, FALSE, FALSE, 0); 547 gtk_box_pack_start(GTK_BOX(connection_page), hbox, FALSE, FALSE, 0);
527 gtk_entry_set_text(GTK_ENTRY(pd->http_proxy_host_entry), proxy_host); 548 gtk_entry_set_text(GTK_ENTRY(pd->proxy_host_entry), proxy_host);
528 549
529 g_snprintf(buffer, sizeof(buffer), "%d", proxy_port); 550 g_snprintf(buffer, sizeof(buffer), "%d", proxy_port);
530 gtk_entry_set_text(GTK_ENTRY(pd->http_proxy_port_entry), buffer); 551 gtk_entry_set_text(GTK_ENTRY(pd->proxy_port_entry), buffer);
531
532 connectopt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(connectopt)), "SOCKS v4 Proxy");
533 gtk_box_pack_start(GTK_BOX(connection_page), connectopt, FALSE, FALSE, 0);
534 gtk_signal_connect(GTK_OBJECT(connectopt), "clicked", GTK_SIGNAL_FUNC(set_connect), (void *)PROXY_SOCKS);
535 gtk_widget_show(connectopt);
536 if (proxy_type == PROXY_SOCKS)
537 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(connectopt), TRUE);
538
539
540 hbox = gtk_hbox_new(FALSE, 0);
541 label = gtk_label_new("Proxy Host:");
542 gtk_widget_show(label);
543 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
544 pd->socks_proxy_host_entry = gtk_entry_new();
545 gtk_widget_show(pd->socks_proxy_host_entry);
546 gtk_box_pack_start(GTK_BOX(hbox), pd->socks_proxy_host_entry, FALSE, FALSE, 0);
547
548 label = gtk_label_new("Port:");
549 gtk_widget_show(label);
550 gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 5);
551 pd->socks_proxy_port_entry = gtk_entry_new();
552 gtk_widget_show(pd->socks_proxy_port_entry);
553 gtk_box_pack_start(GTK_BOX(hbox), pd->socks_proxy_port_entry, FALSE, FALSE, 0);
554 gtk_widget_show(hbox);
555
556 gtk_box_pack_start(GTK_BOX(connection_page), hbox, FALSE, FALSE, 0);
557 gtk_entry_set_text(GTK_ENTRY(pd->socks_proxy_host_entry), proxy_host);
558
559 g_snprintf(buffer, sizeof(buffer), "%d", proxy_port);
560 gtk_entry_set_text(GTK_ENTRY(pd->socks_proxy_port_entry), buffer);
561 552
562 553
563 gtk_widget_show(connection_page); 554 gtk_widget_show(connection_page);
564 555
565 556
566 if (proxy_type == PROXY_HTTP) { 557 if (proxy_type != PROXY_NONE) {
567 if (pd->http_proxy_host_entry) 558 if (pd->proxy_host_entry)
568 gtk_widget_set_sensitive(pd->http_proxy_host_entry, TRUE); 559 gtk_widget_set_sensitive(pd->proxy_host_entry, TRUE);
569 if (pd->http_proxy_port_entry) 560 if (pd->proxy_port_entry)
570 gtk_widget_set_sensitive(pd->http_proxy_port_entry, TRUE); 561 gtk_widget_set_sensitive(pd->proxy_port_entry, TRUE);
571 if (pd->socks_proxy_host_entry)
572 gtk_widget_set_sensitive(pd->socks_proxy_host_entry, FALSE);
573 if (pd->socks_proxy_port_entry)
574 gtk_widget_set_sensitive(pd->socks_proxy_port_entry, FALSE);
575 } else if (proxy_type == PROXY_SOCKS) {
576 if (pd->socks_proxy_host_entry)
577 gtk_widget_set_sensitive(pd->socks_proxy_host_entry, TRUE);
578 if (pd->socks_proxy_port_entry)
579 gtk_widget_set_sensitive(pd->socks_proxy_port_entry, TRUE);
580 if (pd->http_proxy_host_entry)
581 gtk_widget_set_sensitive(pd->http_proxy_host_entry, FALSE);
582 if (pd->http_proxy_port_entry)
583 gtk_widget_set_sensitive(pd->http_proxy_port_entry, FALSE);
584 } else { 562 } else {
585 if (pd->http_proxy_host_entry) 563 if (pd->proxy_host_entry)
586 gtk_widget_set_sensitive(pd->http_proxy_host_entry, FALSE); 564 gtk_widget_set_sensitive(pd->proxy_host_entry, FALSE);
587 if (pd->http_proxy_port_entry) 565 if (pd->proxy_port_entry)
588 gtk_widget_set_sensitive(pd->http_proxy_port_entry, FALSE); 566 gtk_widget_set_sensitive(pd->proxy_port_entry, FALSE);
589 if (pd->socks_proxy_host_entry)
590 gtk_widget_set_sensitive(pd->socks_proxy_host_entry, FALSE);
591 if (pd->socks_proxy_port_entry)
592 gtk_widget_set_sensitive(pd->socks_proxy_port_entry, FALSE);
593 } 567 }
594 568
595 569
596 570
597 gtk_signal_connect(GTK_OBJECT(pd->aim_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 571 gtk_signal_connect(GTK_OBJECT(pd->aim_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL);
598 gtk_signal_connect(GTK_OBJECT(pd->aim_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 572 gtk_signal_connect(GTK_OBJECT(pd->aim_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL);
599 gtk_signal_connect(GTK_OBJECT(pd->login_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 573 gtk_signal_connect(GTK_OBJECT(pd->login_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL);
600 gtk_signal_connect(GTK_OBJECT(pd->login_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 574 gtk_signal_connect(GTK_OBJECT(pd->login_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL);
601 gtk_signal_connect(GTK_OBJECT(pd->socks_proxy_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 575 gtk_signal_connect(GTK_OBJECT(pd->proxy_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL);
602 gtk_signal_connect(GTK_OBJECT(pd->socks_proxy_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 576 gtk_signal_connect(GTK_OBJECT(pd->proxy_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL);
603 gtk_signal_connect(GTK_OBJECT(pd->socks_proxy_host_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 577
604 gtk_signal_connect(GTK_OBJECT(pd->socks_proxy_port_entry), "focus_out_event", GTK_SIGNAL_FUNC(connection_key_pressed), NULL); 578
605 579 #endif /* USE_OSCAR */
606 580
607 /* Away */ 581 /* Away */
608 582
609 a = awaymessage; 583 a = awaymessage;
610 pd->cur_message = NULL; 584 pd->cur_message = NULL;