📄 options_dialog.c
字号:
} if (hosts) { if (hosts->domain) gtk_entry_set_text (GTK_ENTRY (new_proxy_domain), hosts->domain); else { tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 24 & 0xff); gtk_entry_set_text (GTK_ENTRY (network1), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 16 & 0xff); gtk_entry_set_text (GTK_ENTRY (network2), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address >> 8 & 0xff); gtk_entry_set_text (GTK_ENTRY (network3), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_network_address & 0xff); gtk_entry_set_text (GTK_ENTRY (network4), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 24 & 0xff); gtk_entry_set_text (GTK_ENTRY (netmask1), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 16 & 0xff); gtk_entry_set_text (GTK_ENTRY (netmask2), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask >> 8 & 0xff); gtk_entry_set_text (GTK_ENTRY (netmask3), tempstr); g_free (tempstr); tempstr = g_strdup_printf ("%d", hosts->ipv4_netmask & 0xff); gtk_entry_set_text (GTK_ENTRY (netmask4), tempstr); g_free (tempstr); } }#if GTK_MAJOR_VERSION == 1 tempwid = gtk_button_new_with_label (_("OK")); GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (add_ok), (gpointer) templist); gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (dialog)); gtk_widget_show (tempwid); tempwid = gtk_button_new_with_label (_(" Cancel ")); GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, TRUE, TRUE, 0); gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (dialog)); gtk_widget_show (tempwid);#else g_signal_connect (GTK_OBJECT (dialog), "response", G_CALLBACK (proxyhosts_action), NULL);#endif gtk_widget_show (dialog);}static voidmake_proxy_hosts_tab (GtkWidget * notebook){ GtkWidget *tempwid, *box, *hbox, *scroll; gftp_config_list_vars * proxy_hosts; char *add_data[2]; GList * templist; add_data[0] = _("Network"); add_data[1] = _("Netmask"); box = gtk_vbox_new (FALSE, 6); gtk_container_border_width (GTK_CONTAINER (box), 12); gtk_widget_show (box); tempwid = gtk_label_new (_("Local Hosts")); gtk_widget_show (tempwid); gtk_notebook_append_page (GTK_NOTEBOOK (notebook), box, tempwid); scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start (GTK_BOX (box), scroll, TRUE, TRUE, 0); proxy_list = gtk_clist_new_with_titles (2, add_data); gtk_container_add (GTK_CONTAINER (scroll), proxy_list); gtk_clist_set_column_auto_resize (GTK_CLIST (proxy_list), 0, TRUE); gtk_clist_set_column_auto_resize (GTK_CLIST (proxy_list), 1, TRUE); gtk_widget_show (proxy_list); gtk_widget_show (scroll); gftp_lookup_global_option ("dont_use_proxy", &proxy_hosts); new_proxy_hosts = gftp_copy_proxy_hosts (proxy_hosts->list); for (templist = new_proxy_hosts; templist != NULL; templist = templist->next) add_host_to_listbox (templist); hbox = gtk_hbox_new (TRUE, 12); gtk_box_pack_start (GTK_BOX (box), hbox, FALSE, FALSE, 0); gtk_widget_show (hbox);#if GTK_MAJOR_VERSION == 1 tempwid = gtk_button_new_with_label (_("Add"));#else tempwid = gtk_button_new_from_stock (GTK_STOCK_ADD);#endif GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (add_proxy_host), NULL); gtk_widget_show (tempwid);#if GTK_MAJOR_VERSION == 1 tempwid = gtk_button_new_with_label (_("Edit"));#elif GTK_MAJOR_VERSION == 2 && GTK_MINOR_VERSION < 5 tempwid = gtk_button_new_with_mnemonic (_("_Edit"));#else tempwid = gtk_button_new_from_stock (GTK_STOCK_EDIT);#endif edit_button = tempwid; GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (add_proxy_host), (gpointer) 1); gtk_widget_show (tempwid);#if GTK_MAJOR_VERSION == 1 tempwid = gtk_button_new_with_label (_("Delete"));#else tempwid = gtk_button_new_from_stock (GTK_STOCK_DELETE);#endif delete_button = tempwid; GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (hbox), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (delete_proxy_host), NULL); gtk_widget_show (tempwid); gtk_signal_connect (GTK_OBJECT (proxy_list), "select_row", GTK_SIGNAL_FUNC (buttons_toggle), (gpointer) 1); gtk_signal_connect (GTK_OBJECT (proxy_list), "unselect_row", GTK_SIGNAL_FUNC (buttons_toggle), NULL); buttons_toggle (NULL, 0, 0, 0, NULL);}static gftp_options_dialog_data *_init_option_data (void){ gftp_options_dialog_data * option_data; option_data = g_malloc0 (sizeof (*option_data)); _setup_option (gftp_option_type_text, option_data, _print_option_type_text, _save_option_type_text, NULL); _setup_option (gftp_option_type_textcombo, option_data, _print_option_type_textcombo, _save_option_type_textcombo, NULL); _setup_option (gftp_option_type_textcomboedt, option_data, _print_option_type_textcomboedt, _save_option_type_textcomboedt, NULL); _setup_option (gftp_option_type_hidetext, option_data, _print_option_type_hidetext, _save_option_type_text, NULL); _setup_option (gftp_option_type_int, option_data, _print_option_type_int, _save_option_type_int, NULL); _setup_option (gftp_option_type_checkbox, option_data, _print_option_type_checkbox, _save_option_type_checkbox, NULL); _setup_option (gftp_option_type_float, option_data, _print_option_type_float, _save_option_type_float, NULL); _setup_option (gftp_option_type_notebook, option_data, _print_option_type_notebook, NULL, NULL); return (option_data);}voidoptions_dialog (gpointer data){ gftp_config_vars * cv; GList * templist; void *value; int i;#if GTK_MAJOR_VERSION == 1 GtkWidget * tempwid;#endif gftp_option_data = _init_option_data ();#if GTK_MAJOR_VERSION == 1 gftp_option_data->dialog = gtk_dialog_new (); gtk_window_set_title (GTK_WINDOW (gftp_option_data->dialog), _("Options")); gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->action_area), 5); gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), 15); gtk_box_set_homogeneous (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), TRUE);#else gftp_option_data->dialog = gtk_dialog_new_with_buttons (_("Options"), NULL, 0, GTK_STOCK_APPLY, GTK_RESPONSE_APPLY, GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL, GTK_STOCK_OK, GTK_RESPONSE_OK, NULL); gtk_container_set_border_width (GTK_CONTAINER (gftp_option_data->dialog), 5); gtk_dialog_set_has_separator (GTK_DIALOG (gftp_option_data->dialog), FALSE); gtk_window_set_resizable (GTK_WINDOW (gftp_option_data->dialog), FALSE);#endif gtk_window_set_wmclass (GTK_WINDOW(gftp_option_data->dialog), "options", "gFTP"); gtk_window_set_position (GTK_WINDOW (gftp_option_data->dialog), GTK_WIN_POS_MOUSE);#if GTK_MAJOR_VERSION == 1 gtk_container_border_width (GTK_CONTAINER (GTK_DIALOG (gftp_option_data->dialog)->vbox), 10);#endif gtk_box_set_spacing (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->vbox), 2); gtk_widget_realize (gftp_option_data->dialog); if (gftp_icon != NULL) { gdk_window_set_icon (gftp_option_data->dialog->window, NULL, gftp_icon->pixmap, gftp_icon->bitmap); gdk_window_set_icon_name (gftp_option_data->dialog->window, gftp_version); } gftp_option_data->notebook = gtk_notebook_new (); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->vbox), gftp_option_data->notebook, TRUE, TRUE, 0); gtk_widget_show (gftp_option_data->notebook);#if GTK_MAJOR_VERSION > 1 gtk_container_border_width (GTK_CONTAINER (gftp_option_data->notebook), 5);#endif cv = gftp_options_list->data; gftp_option_data->last_option = cv[0].otype; for (templist = gftp_options_list; templist != NULL; templist = templist->next) { cv = templist->data; for (i=0; cv[i].key != NULL; i++) { if (!(cv[i].ports_shown & GFTP_PORT_GTK)) continue; if (gftp_option_types[cv[i].otype].ui_print_function == NULL) continue; if (*cv[i].key != '\0') gftp_lookup_global_option (cv[i].key, &value); else value = NULL; cv[i].user_data = gftp_option_types[cv[i].otype].ui_print_function (&cv[i], gftp_option_types[cv[i].otype].user_data, value); gftp_option_data->last_option = cv[i].otype; } } make_proxy_hosts_tab (gftp_option_data->notebook);#if GTK_MAJOR_VERSION == 1 tempwid = gtk_button_new_with_label (_("OK")); GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (apply_changes), NULL); gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (gftp_option_data->dialog)); gtk_widget_show (tempwid); tempwid = gtk_button_new_with_label (_(" Cancel ")); GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (clean_old_changes), NULL); gtk_signal_connect_object (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (gtk_widget_destroy), GTK_OBJECT (gftp_option_data->dialog)); gtk_widget_show (tempwid); tempwid = gtk_button_new_with_label (_("Apply")); GTK_WIDGET_SET_FLAGS (tempwid, GTK_CAN_DEFAULT); gtk_box_pack_start (GTK_BOX (GTK_DIALOG (gftp_option_data->dialog)->action_area), tempwid, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", GTK_SIGNAL_FUNC (apply_changes), NULL); gtk_widget_grab_default (tempwid); gtk_widget_show (tempwid);#else g_signal_connect (GTK_OBJECT (gftp_option_data->dialog), "response", G_CALLBACK (options_action), NULL);#endif gtk_widget_show (gftp_option_data->dialog);}voidgftp_gtk_setup_bookmark_options (GtkWidget * notebook, gftp_bookmarks_var * bm){ gftp_config_vars * cv; GList * templist; void *value; int i; gftp_option_data = _init_option_data (); gftp_option_data->bm = bm; gftp_option_data->notebook = notebook; cv = gftp_options_list->data; gftp_option_data->last_option = cv[0].otype; for (templist = gftp_options_list; templist != NULL; templist = templist->next) { cv = templist->data; for (i=0; cv[i].key != NULL; i++) { if (!(cv[i].flags & GFTP_CVARS_FLAGS_SHOW_BOOKMARK)) continue; if (gftp_option_types[cv[i].otype].ui_print_function == NULL) continue; if (*cv[i].key != '\0') gftp_lookup_bookmark_option (bm, cv[i].key, &value); else value = NULL; cv[i].user_data = gftp_option_types[cv[i].otype].ui_print_function (&cv[i], gftp_option_data, value); gftp_option_data->last_option = cv[i].otype; } }}voidgftp_gtk_save_bookmark_options (gftp_bookmarks_var * bm){ gftp_config_vars * cv; GList * templist; int i; for (templist = gftp_options_list; templist != NULL; templist = templist->next) { cv = templist->data; for (i=0; cv[i].key != NULL; i++) { if (!(cv[i].flags & GFTP_CVARS_FLAGS_SHOW_BOOKMARK)) continue; if (gftp_option_types[cv[i].otype].ui_save_function == NULL) continue; gftp_option_types[cv[i].otype].ui_save_function (&cv[i], gftp_option_data); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -