Mercurial > pidgin
comparison src/prefs.c @ 1124:a70d5200edde
[gaim-migrate @ 1134]
starting to put the permit/deny stuff back. i think this is a suitable beginning for the UI.
committer: Tailor Script <tailor@pidgin.im>
author | Eric Warmenhoven <eric@warmenhoven.org> |
---|---|
date | Wed, 22 Nov 2000 12:58:27 +0000 |
parents | bc718030af96 |
children | 1a3dbc0e6529 |
comparison
equal
deleted
inserted
replaced
1123:bc718030af96 | 1124:a70d5200edde |
---|---|
46 | 46 |
47 struct debug_window *dw = NULL; | 47 struct debug_window *dw = NULL; |
48 static GtkWidget *prefs = NULL; | 48 static GtkWidget *prefs = NULL; |
49 | 49 |
50 static GtkWidget *gaim_button(const char *, int *, int, GtkWidget *); | 50 static GtkWidget *gaim_button(const char *, int *, int, GtkWidget *); |
51 static void prefs_build_general(GtkWidget *); | 51 static void prefs_build_general(); |
52 static void prefs_build_buddy(GtkWidget *); | 52 static void prefs_build_buddy(); |
53 static void prefs_build_convo(GtkWidget *); | 53 static void prefs_build_convo(); |
54 static void prefs_build_sound(GtkWidget *); | 54 static void prefs_build_sound(); |
55 static void prefs_build_away(GtkWidget *); | 55 static void prefs_build_away(); |
56 static void prefs_build_browser(GtkWidget *); | 56 static void prefs_build_browser(); |
57 static void prefs_build_deny(); | |
57 static gint handle_delete(GtkWidget *, GdkEvent *, void *); | 58 static gint handle_delete(GtkWidget *, GdkEvent *, void *); |
58 static void delete_prefs(GtkWidget *, void *); | 59 static void delete_prefs(GtkWidget *, void *); |
59 void set_default_away(GtkWidget *, gpointer); | 60 void set_default_away(GtkWidget *, gpointer); |
60 | 61 |
61 static GtkWidget *prefdialog = NULL; | 62 static GtkWidget *prefdialog = NULL; |
62 static GtkWidget *debugbutton = NULL; | 63 static GtkWidget *debugbutton = NULL; |
63 GtkWidget *prefs_away_list = NULL; | 64 GtkWidget *prefs_away_list = NULL; |
64 GtkWidget *prefs_away_menu = NULL; | 65 GtkWidget *prefs_away_menu = NULL; |
66 GtkWidget *preftree = NULL; | |
67 GtkCTreeNode *general_node = NULL; | |
68 GtkCTreeNode *deny_node = NULL; | |
65 | 69 |
66 static void destdeb(GtkWidget *m, gpointer n) | 70 static void destdeb(GtkWidget *m, gpointer n) |
67 { | 71 { |
68 gtk_widget_destroy(debugbutton); | 72 gtk_widget_destroy(debugbutton); |
69 debugbutton = NULL; | 73 debugbutton = NULL; |
115 gtk_widget_show(label); | 119 gtk_widget_show(label); |
116 | 120 |
117 /* | 121 /* |
118 prefrem = gaim_button(_("Remember password"), &general_options, OPT_GEN_REMEMBER_PASS, box); | 122 prefrem = gaim_button(_("Remember password"), &general_options, OPT_GEN_REMEMBER_PASS, box); |
119 gtk_signal_connect(GTK_OBJECT(prefrem), "destroy", GTK_SIGNAL_FUNC(remdes), 0); | 123 gtk_signal_connect(GTK_OBJECT(prefrem), "destroy", GTK_SIGNAL_FUNC(remdes), 0); |
120 */ | 124 gaim_button(_("Auto-login"), &general_options, OPT_GEN_AUTO_LOGIN, box); |
121 /* gaim_button(_("Auto-login"), &general_options, OPT_GEN_AUTO_LOGIN, box); */ | |
122 | 125 |
123 sep = gtk_hseparator_new(); | 126 sep = gtk_hseparator_new(); |
124 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); | 127 gtk_box_pack_start(GTK_BOX(box), sep, FALSE, FALSE, 5); |
125 gtk_widget_show(sep); | 128 gtk_widget_show(sep); |
129 */ | |
126 | 130 |
127 gaim_button(_("Use borderless buttons (requires restart for some buttons)"), &display_options, OPT_DISP_COOL_LOOK, box); | 131 gaim_button(_("Use borderless buttons (requires restart for some buttons)"), &display_options, OPT_DISP_COOL_LOOK, box); |
128 gaim_button(_("Show Buddy Ticker after restart"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, box); | 132 gaim_button(_("Show Buddy Ticker after restart"), &display_options, OPT_DISP_SHOW_BUDDYTICKER, box); |
129 if (!dw && (general_options & OPT_GEN_DEBUG)) | 133 if (!dw && (general_options & OPT_GEN_DEBUG)) |
130 general_options = general_options ^ OPT_GEN_DEBUG; | 134 general_options = general_options ^ OPT_GEN_DEBUG; |
1345 } | 1349 } |
1346 | 1350 |
1347 gtk_widget_show(prefdialog); | 1351 gtk_widget_show(prefdialog); |
1348 } | 1352 } |
1349 | 1353 |
1354 static GtkWidget *deny_conn_hbox = NULL; | |
1355 static GtkWidget *deny_opt_menu = NULL; | |
1356 static struct gaim_connection *current_deny_gc = NULL; | |
1357 static gboolean current_is_deny = FALSE; | |
1358 static GtkWidget *allow_list = NULL; | |
1359 static GtkWidget *block_list = NULL; | |
1360 | |
1361 static void set_deny_mode(GtkWidget *w, int data) | |
1362 { | |
1363 current_deny_gc->permdeny = data; | |
1364 serv_set_permit_deny(current_deny_gc); | |
1365 do_export(NULL, 0); | |
1366 } | |
1367 | |
1368 static GtkWidget *deny_opt(char *label, int which, GtkWidget *box, GtkWidget *set) | |
1369 { | |
1370 GtkWidget *opt; | |
1371 | |
1372 if (!set) | |
1373 opt = gtk_radio_button_new_with_label(NULL, label); | |
1374 else | |
1375 opt = gtk_radio_button_new_with_label(gtk_radio_button_group(GTK_RADIO_BUTTON(set)), label); | |
1376 gtk_box_pack_start(GTK_BOX(box), opt, FALSE, FALSE, 0); | |
1377 gtk_signal_connect(GTK_OBJECT(opt), "clicked", GTK_SIGNAL_FUNC(set_deny_mode), (void *)which); | |
1378 gtk_widget_show(opt); | |
1379 if (current_deny_gc->permdeny == which) | |
1380 gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(opt), TRUE); | |
1381 | |
1382 return opt; | |
1383 } | |
1384 | |
1385 static void des_deny_opt(GtkWidget *d, gpointer e) | |
1386 { | |
1387 gtk_widget_destroy(d); | |
1388 current_deny_gc = NULL; | |
1389 deny_conn_hbox = NULL; | |
1390 deny_opt_menu = NULL; | |
1391 current_is_deny = FALSE; | |
1392 allow_list = NULL; | |
1393 block_list = NULL; | |
1394 } | |
1395 | |
1396 static void build_allow_list() | |
1397 { | |
1398 GtkWidget *label; | |
1399 GtkWidget *list_item; | |
1400 GSList *p = current_deny_gc->permit; | |
1401 | |
1402 gtk_list_remove_items(GTK_LIST(allow_list), GTK_LIST(allow_list)->children); | |
1403 | |
1404 while (p) { | |
1405 label = gtk_label_new(p->data); | |
1406 list_item = gtk_list_item_new(); | |
1407 gtk_container_add(GTK_CONTAINER(list_item), label); | |
1408 gtk_object_set_user_data(GTK_OBJECT(list_item), p->data); | |
1409 gtk_widget_show(label); | |
1410 gtk_container_add(GTK_CONTAINER(allow_list), list_item); | |
1411 gtk_widget_show(list_item); | |
1412 p = p->next; | |
1413 } | |
1414 } | |
1415 | |
1416 void build_block_list() | |
1417 { | |
1418 GtkWidget *label; | |
1419 GtkWidget *list_item; | |
1420 GSList *d = current_deny_gc->deny; | |
1421 | |
1422 if (!prefs) return; | |
1423 | |
1424 gtk_list_remove_items(GTK_LIST(block_list), GTK_LIST(block_list)->children); | |
1425 | |
1426 while (d) { | |
1427 label = gtk_label_new(d->data); | |
1428 list_item = gtk_list_item_new(); | |
1429 gtk_container_add(GTK_CONTAINER(list_item), label); | |
1430 gtk_object_set_user_data(GTK_OBJECT(list_item), d->data); | |
1431 gtk_widget_show(label); | |
1432 gtk_container_add(GTK_CONTAINER(block_list), list_item); | |
1433 gtk_widget_show(list_item); | |
1434 d = d->next; | |
1435 } | |
1436 } | |
1437 | |
1438 static void deny_gc_opt(GtkWidget *opt, struct gaim_connection *gc) | |
1439 { | |
1440 current_deny_gc = gc; | |
1441 build_allow_list(); | |
1442 build_block_list(); | |
1443 } | |
1444 | |
1445 static void build_deny_menu() | |
1446 { | |
1447 GtkWidget *menu; | |
1448 GtkWidget *opt; | |
1449 GSList *c = connections; | |
1450 struct gaim_connection *gc; | |
1451 int count = 0; | |
1452 gboolean found = FALSE; | |
1453 | |
1454 if (g_slist_length(connections) == 1) { | |
1455 gtk_widget_hide(deny_conn_hbox); | |
1456 return; | |
1457 } else | |
1458 gtk_widget_show(deny_conn_hbox); | |
1459 | |
1460 menu = gtk_menu_new(); | |
1461 | |
1462 while (c) { | |
1463 gc = (struct gaim_connection *)c->data; | |
1464 opt = gtk_menu_item_new_with_label(gc->username); | |
1465 gtk_signal_connect(GTK_OBJECT(opt), "activate", | |
1466 GTK_SIGNAL_FUNC(deny_gc_opt), gc); | |
1467 gtk_widget_show(opt); | |
1468 gtk_menu_append(GTK_MENU(menu), opt); | |
1469 if (gc == current_deny_gc) | |
1470 found = TRUE; | |
1471 else if (!found) | |
1472 count++; | |
1473 c = c->next; | |
1474 } | |
1475 | |
1476 if (!found) { | |
1477 current_deny_gc = connections->data; | |
1478 count = 0; | |
1479 } | |
1480 | |
1481 gtk_option_menu_remove_menu(GTK_OPTION_MENU(deny_opt_menu)); | |
1482 gtk_option_menu_set_menu(GTK_OPTION_MENU(deny_opt_menu), menu); | |
1483 gtk_option_menu_set_history(GTK_OPTION_MENU(deny_opt_menu), count); | |
1484 | |
1485 gtk_widget_show(menu); | |
1486 gtk_widget_show(deny_opt_menu); | |
1487 } | |
1488 | |
1489 static void deny_page() | |
1490 { | |
1491 GtkWidget *parent; | |
1492 GtkWidget *box; | |
1493 GtkWidget *hbox; | |
1494 GtkWidget *label; | |
1495 GtkWidget *vbox; | |
1496 GtkWidget *opt; | |
1497 GtkWidget *sw; | |
1498 GtkWidget *bbox; | |
1499 GtkWidget *button; | |
1500 | |
1501 current_deny_gc = connections->data; /* this is safe because this screen will only be | |
1502 available when there are connections */ | |
1503 current_is_deny = TRUE; | |
1504 | |
1505 parent = prefdialog->parent; | |
1506 gtk_widget_destroy(prefdialog); | |
1507 | |
1508 prefdialog = gtk_frame_new(_("Privacy Options")); | |
1509 gtk_container_add(GTK_CONTAINER(parent), prefdialog); | |
1510 | |
1511 box = gtk_vbox_new(FALSE, 5); | |
1512 gtk_container_add(GTK_CONTAINER(prefdialog), box); | |
1513 gtk_widget_show(box); | |
1514 | |
1515 label = gtk_label_new(_("No. This doesn't work yet. Nothing actually gets sent to the" | |
1516 " server. But the UI works. That's all I wanted.")); | |
1517 gtk_label_set_line_wrap(GTK_LABEL(label), TRUE); | |
1518 gtk_box_pack_start(GTK_BOX(box), label, FALSE, FALSE, 5); | |
1519 gtk_widget_show(label); | |
1520 | |
1521 deny_conn_hbox = gtk_hbox_new(FALSE, 5); | |
1522 gtk_box_pack_start(GTK_BOX(box), deny_conn_hbox, FALSE, FALSE, 0); | |
1523 gtk_widget_show(deny_conn_hbox); | |
1524 | |
1525 label = gtk_label_new(_("Set privacy for:")); | |
1526 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), label, FALSE, FALSE, 5); | |
1527 gtk_widget_show(label); | |
1528 | |
1529 deny_opt_menu = gtk_option_menu_new(); | |
1530 gtk_box_pack_start(GTK_BOX(deny_conn_hbox), deny_opt_menu, FALSE, FALSE, 5); | |
1531 gtk_signal_connect(GTK_OBJECT(deny_opt_menu), "destroy", | |
1532 GTK_SIGNAL_FUNC(des_deny_opt), NULL); | |
1533 gtk_widget_show(deny_opt_menu); | |
1534 | |
1535 build_deny_menu(); | |
1536 | |
1537 hbox = gtk_hbox_new(FALSE, 5); | |
1538 gtk_box_pack_start(GTK_BOX(box), hbox, TRUE, TRUE, 5); | |
1539 gtk_widget_show(hbox); | |
1540 | |
1541 vbox = gtk_vbox_new(FALSE, 5); | |
1542 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); | |
1543 gtk_widget_show(vbox); | |
1544 | |
1545 opt = deny_opt(_("Allow all users to contact me"), 1, vbox, NULL); | |
1546 opt = deny_opt(_("Allow only the users below"), 3, vbox, opt); | |
1547 | |
1548 label = gtk_label_new(_("Allow List")); | |
1549 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); | |
1550 gtk_widget_show(label); | |
1551 | |
1552 sw = gtk_scrolled_window_new(NULL, NULL); | |
1553 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
1554 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
1555 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5); | |
1556 gtk_widget_show(sw); | |
1557 | |
1558 allow_list = gtk_list_new(); | |
1559 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), allow_list); | |
1560 gtk_widget_show(allow_list); | |
1561 | |
1562 build_allow_list(); | |
1563 | |
1564 bbox = gtk_hbox_new(TRUE, 5); | |
1565 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
1566 gtk_widget_show(bbox); | |
1567 | |
1568 button = picture_button(prefs, _("Add"), gnome_add_xpm); | |
1569 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5); | |
1570 | |
1571 button = picture_button(prefs, _("Remove"), gnome_remove_xpm); | |
1572 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5); | |
1573 | |
1574 vbox = gtk_vbox_new(FALSE, 5); | |
1575 gtk_box_pack_start(GTK_BOX(hbox), vbox, TRUE, TRUE, 5); | |
1576 gtk_widget_show(vbox); | |
1577 | |
1578 opt = deny_opt(_("Deny all users"), 2, vbox, opt); | |
1579 opt = deny_opt(_("Block the users below"), 4, vbox, opt); | |
1580 | |
1581 label = gtk_label_new(_("Block List")); | |
1582 gtk_box_pack_start(GTK_BOX(vbox), label, FALSE, FALSE, 5); | |
1583 gtk_widget_show(label); | |
1584 | |
1585 sw = gtk_scrolled_window_new(NULL, NULL); | |
1586 gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), | |
1587 GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); | |
1588 gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 5); | |
1589 gtk_widget_show(sw); | |
1590 | |
1591 block_list = gtk_list_new(); | |
1592 gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW(sw), block_list); | |
1593 gtk_widget_show(block_list); | |
1594 | |
1595 build_block_list(); | |
1596 | |
1597 bbox = gtk_hbox_new(TRUE, 5); | |
1598 gtk_box_pack_end(GTK_BOX(vbox), bbox, FALSE, FALSE, 5); | |
1599 gtk_widget_show(bbox); | |
1600 | |
1601 button = picture_button(prefs, _("Add"), gnome_add_xpm); | |
1602 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5); | |
1603 | |
1604 button = picture_button(prefs, _("Remove"), gnome_remove_xpm); | |
1605 gtk_box_pack_start(GTK_BOX(bbox), button, FALSE, FALSE, 5); | |
1606 | |
1607 gtk_widget_show(prefdialog); | |
1608 } | |
1609 | |
1610 void update_connection_dependent_prefs() /* what a crappy name */ | |
1611 { | |
1612 if (!prefs) return; | |
1613 if (!connections && deny_node) { | |
1614 if (current_is_deny) | |
1615 gtk_ctree_select(GTK_CTREE(preftree), general_node); | |
1616 gtk_ctree_remove_node(GTK_CTREE(preftree), deny_node); | |
1617 deny_node = NULL; | |
1618 } else if (connections) { | |
1619 if (!deny_node) | |
1620 prefs_build_deny(); | |
1621 else { | |
1622 build_deny_menu(); | |
1623 build_allow_list(); | |
1624 build_block_list(); | |
1625 } | |
1626 } | |
1627 } | |
1628 | |
1350 static void try_me(GtkCTree *ctree, GtkCTreeNode *node) | 1629 static void try_me(GtkCTree *ctree, GtkCTreeNode *node) |
1351 { | 1630 { |
1352 /* this is a hack */ | 1631 /* this is a hack */ |
1353 void (*func)(); | 1632 void (*func)(); |
1354 func = gtk_ctree_node_get_row_data(ctree, node); | 1633 func = gtk_ctree_node_get_row_data(ctree, node); |
1358 void show_prefs() | 1637 void show_prefs() |
1359 { | 1638 { |
1360 GtkWidget *vbox; | 1639 GtkWidget *vbox; |
1361 GtkWidget *hpaned; | 1640 GtkWidget *hpaned; |
1362 GtkWidget *scroll; | 1641 GtkWidget *scroll; |
1363 GtkWidget *preftree; | |
1364 GtkWidget *container; | 1642 GtkWidget *container; |
1365 GtkWidget *hbox; | 1643 GtkWidget *hbox; |
1366 GtkWidget *close; | 1644 GtkWidget *close; |
1367 | 1645 |
1368 if (prefs) { | 1646 if (prefs) { |
1411 | 1689 |
1412 prefdialog = gtk_vbox_new(FALSE, 5); | 1690 prefdialog = gtk_vbox_new(FALSE, 5); |
1413 gtk_container_add(GTK_CONTAINER(container), prefdialog); | 1691 gtk_container_add(GTK_CONTAINER(container), prefdialog); |
1414 gtk_widget_show(prefdialog); | 1692 gtk_widget_show(prefdialog); |
1415 | 1693 |
1416 prefs_build_general(preftree); | 1694 prefs_build_general(); |
1417 prefs_build_buddy(preftree); | 1695 prefs_build_buddy(); |
1418 prefs_build_convo(preftree); | 1696 prefs_build_convo(); |
1419 prefs_build_sound(preftree); | 1697 prefs_build_sound(); |
1420 prefs_build_away(preftree); | 1698 prefs_build_away(); |
1421 prefs_build_browser(preftree); | 1699 prefs_build_browser(); |
1700 prefs_build_deny(); | |
1422 | 1701 |
1423 //general_page(); | 1702 //general_page(); |
1424 | 1703 |
1425 hbox = gtk_hbox_new(FALSE, 5); | 1704 hbox = gtk_hbox_new(FALSE, 5); |
1426 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); | 1705 gtk_box_pack_end(GTK_BOX(vbox), hbox, FALSE, FALSE, 5); |
1536 save_prefs(); | 1815 save_prefs(); |
1537 gtk_widget_destroy(prefs); | 1816 gtk_widget_destroy(prefs); |
1538 } | 1817 } |
1539 prefs = NULL; | 1818 prefs = NULL; |
1540 prefs_away_menu = NULL; | 1819 prefs_away_menu = NULL; |
1820 deny_node = NULL; | |
1821 current_deny_gc = NULL; | |
1541 } | 1822 } |
1542 | 1823 |
1543 | 1824 |
1544 void set_option(GtkWidget *w, int *option) | 1825 void set_option(GtkWidget *w, int *option) |
1545 { | 1826 { |
1614 gtk_widget_show(button); | 1895 gtk_widget_show(button); |
1615 | 1896 |
1616 return button; | 1897 return button; |
1617 } | 1898 } |
1618 | 1899 |
1619 void prefs_build_general(GtkWidget *preftree) | 1900 void prefs_build_general() |
1620 { | 1901 { |
1621 GtkCTreeNode *parent; | |
1622 char *text[1]; | 1902 char *text[1]; |
1623 | 1903 |
1624 text[0] = _("General"); | 1904 text[0] = _("General"); |
1625 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, | 1905 general_node = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, |
1626 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1906 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
1627 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, general_page); | 1907 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), general_node, general_page); |
1628 | 1908 |
1629 gtk_ctree_select(GTK_CTREE(preftree), parent); | 1909 gtk_ctree_select(GTK_CTREE(preftree), general_node); |
1630 } | 1910 } |
1631 | 1911 |
1632 void prefs_build_buddy(GtkWidget *preftree) | 1912 void prefs_build_buddy() |
1633 { | 1913 { |
1634 GtkCTreeNode *parent; | 1914 GtkCTreeNode *parent; |
1635 char *text[1]; | 1915 char *text[1]; |
1636 | 1916 |
1637 text[0] = _("Buddy List"); | 1917 text[0] = _("Buddy List"); |
1638 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, | 1918 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, |
1639 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1919 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
1640 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, buddy_page); | 1920 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, buddy_page); |
1641 } | 1921 } |
1642 | 1922 |
1643 void prefs_build_convo(GtkWidget *preftree) | 1923 void prefs_build_convo() |
1644 { | 1924 { |
1645 GtkCTreeNode *parent, *node, *node2; | 1925 GtkCTreeNode *parent, *node, *node2; |
1646 char *text[1]; | 1926 char *text[1]; |
1647 | 1927 |
1648 text[0] = _("Conversations"); | 1928 text[0] = _("Conversations"); |
1669 node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, | 1949 node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, |
1670 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1950 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
1671 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, font_page); | 1951 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, font_page); |
1672 } | 1952 } |
1673 | 1953 |
1674 void prefs_build_sound(GtkWidget *preftree) | 1954 void prefs_build_sound() |
1675 { | 1955 { |
1676 GtkCTreeNode *parent, *node; | 1956 GtkCTreeNode *parent, *node; |
1677 char *text[1]; | 1957 char *text[1]; |
1678 | 1958 |
1679 text[0] = _("Sounds"); | 1959 text[0] = _("Sounds"); |
1685 node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, | 1965 node = gtk_ctree_insert_node(GTK_CTREE(preftree), parent, NULL, |
1686 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1966 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
1687 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, event_page); | 1967 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), node, event_page); |
1688 } | 1968 } |
1689 | 1969 |
1690 void prefs_build_away(GtkWidget *preftree) | 1970 void prefs_build_away() |
1691 { | 1971 { |
1692 GtkCTreeNode *parent; | 1972 GtkCTreeNode *parent; |
1693 char *text[1]; | 1973 char *text[1]; |
1694 | 1974 |
1695 text[0] = _("Away Messages"); | 1975 text[0] = _("Away Messages"); |
1696 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, | 1976 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, |
1697 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1977 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
1698 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, away_page); | 1978 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, away_page); |
1699 } | 1979 } |
1700 | 1980 |
1701 void prefs_build_browser(GtkWidget *preftree) | 1981 void prefs_build_browser() |
1702 { | 1982 { |
1703 GtkCTreeNode *parent; | 1983 GtkCTreeNode *parent; |
1704 char *text[1]; | 1984 char *text[1]; |
1705 | 1985 |
1706 text[0] = _("Browser"); | 1986 text[0] = _("Browser"); |
1707 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, | 1987 parent = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, |
1708 text, 5, NULL, NULL, NULL, NULL, 0, 1); | 1988 text, 5, NULL, NULL, NULL, NULL, 0, 1); |
1709 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, browser_page); | 1989 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), parent, browser_page); |
1710 } | 1990 } |
1991 | |
1992 void prefs_build_deny() | |
1993 { | |
1994 char *text[1]; | |
1995 | |
1996 if (connections && !deny_node) { | |
1997 text[0] = _("Privacy"); | |
1998 deny_node = gtk_ctree_insert_node(GTK_CTREE(preftree), NULL, NULL, | |
1999 text, 5, NULL, NULL, NULL, NULL, 0, 1); | |
2000 gtk_ctree_node_set_row_data(GTK_CTREE(preftree), deny_node, deny_page); | |
2001 } | |
2002 } |