📄 prefs.cc
字号:
g_signal_connect(G_OBJECT(D4XPWS.clipboard_monitor), "clicked", G_CALLBACK(d4x_prefs_toggle_clipboard_monitor),NULL); GtkWidget *prefs_other_scbox=gtk_vbox_new(FALSE,0); D4XPWS.clipboard_skip=my_gtk_combo_new(ALL_HISTORIES[SKIP_HISTORY]); text_to_combo(D4XPWS.clipboard_skip,TMPCFG.SKIP_IN_CLIPBOARD); D4XPWS.clipboard_skip_button=gtk_radio_button_new_with_label((GSList *)NULL, _("Skip these extensions in clipboard")); gtk_box_pack_start(GTK_BOX(prefs_other_scbox),D4XPWS.clipboard_skip_button,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_other_scbox),D4XPWS.clipboard_skip,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_other_scbox,FALSE,FALSE,0); D4XPWS.clipboard_catch=my_gtk_combo_new(ALL_HISTORIES[SKIP_HISTORY]); text_to_combo(D4XPWS.clipboard_catch,TMPCFG.CATCH_IN_CLIPBOARD); D4XPWS.clipboard_catch_button=gtk_radio_button_new_with_label(gtk_radio_button_get_group(GTK_RADIO_BUTTON(D4XPWS.clipboard_skip_button)), _("Catch these extensions in clipboard")); prefs_other_scbox=gtk_vbox_new(FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_other_scbox),D4XPWS.clipboard_catch_button,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_other_scbox),D4XPWS.clipboard_catch,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_other_scbox,FALSE,FALSE,0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(D4XPWS.clipboard_monitor),TMPCFG.CLIPBOARD_MONITOR); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(D4XPWS.clipboard_skip_button),!TMPCFG.CLIPBOARD_SKIP_OR_CATCH); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(D4XPWS.clipboard_catch_button),TMPCFG.CLIPBOARD_SKIP_OR_CATCH); d4x_prefs_toggle_clipboard_monitor(D4XPWS.clipboard_monitor); gtk_widget_show_all(vbox);};static void d4x_prefs_toggle_save_log(GtkWidget *parent) { gtk_widget_set_sensitive(D4XPWS.log_append,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(D4XPWS.log_fsize,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(D4XPWS.log_fslabel,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(D4XPWS.log_rewrite,GTK_TOGGLE_BUTTON(parent)->active); gtk_widget_set_sensitive(D4XPWS.log_save_path,GTK_TOGGLE_BUTTON(parent)->active);};void d4x_prefs_main_log(){ GtkWidget *vbox=d4x_prefs_child_destroy(_("Main log")); GtkWidget *prefs_limits_mlbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(prefs_limits_mlbox),5); D4XPWS.log_length=my_gtk_entry_new_with_max_length(4,TMPCFG.MAX_MAIN_LOG_LENGTH); gtk_box_pack_start(GTK_BOX(prefs_limits_mlbox),D4XPWS.log_length,FALSE,FALSE,0); GtkWidget *prefs_limits_mllabel=gtk_label_new(_("Maximum lines in MAIN log")); gtk_box_pack_start(GTK_BOX(prefs_limits_mlbox),prefs_limits_mllabel,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_limits_mlbox,FALSE,FALSE,0); D4XPWS.log_detailed=gtk_check_button_new_with_label(_("Output detailed information")); GTK_TOGGLE_BUTTON(D4XPWS.log_detailed)->active=TMPCFG.MAIN_LOG_DETAILED; gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.log_detailed,FALSE,FALSE,0); D4XPWS.log_save=gtk_check_button_new_with_label(_("Save main log into file")); GTK_TOGGLE_BUTTON(D4XPWS.log_save)->active=TMPCFG.SAVE_MAIN_LOG; gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.log_save,FALSE,FALSE,0); g_signal_connect(G_OBJECT(D4XPWS.log_save),"clicked",G_CALLBACK(d4x_prefs_toggle_save_log),NULL); D4XPWS.log_save_path=my_gtk_filesel_new(ALL_HISTORIES[LOG_HISTORY]); MY_GTK_FILESEL(D4XPWS.log_save_path)->modal=GTK_WINDOW(d4x_prefs_window); if (TMPCFG.SAVE_LOG_PATH) text_to_combo(MY_GTK_FILESEL(D4XPWS.log_save_path)->combo,TMPCFG.SAVE_LOG_PATH); gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.log_save_path,FALSE,FALSE,0); char temp[MAX_LEN]; GtkWidget *prefs_log_mlfbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(prefs_log_mlfbox),5); D4XPWS.log_fsize=gtk_entry_new(); gtk_entry_set_max_length(GTK_ENTRY(D4XPWS.log_fsize),9); gtk_widget_set_size_request(D4XPWS.log_fsize,80,-1); sprintf(temp,"%li",TMPCFG.MAIN_LOG_FILE_LIMIT); gtk_entry_set_text(GTK_ENTRY(D4XPWS.log_fsize),temp); gtk_box_pack_start(GTK_BOX(prefs_log_mlfbox),D4XPWS.log_fsize,FALSE,FALSE,0); D4XPWS.log_fslabel=gtk_label_new(_("Maximum size for file of main log (in KBytes)")); gtk_box_pack_start(GTK_BOX(prefs_log_mlfbox),D4XPWS.log_fslabel,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_log_mlfbox,FALSE,FALSE,0); GtkWidget *hboxtemp=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hboxtemp),5); D4XPWS.log_append=gtk_radio_button_new_with_label((GSList *)NULL,_("Append to file")); gtk_box_pack_start(GTK_BOX(hboxtemp),D4XPWS.log_append,FALSE,FALSE,0); GSList *other_group=gtk_radio_button_get_group(GTK_RADIO_BUTTON(D4XPWS.log_append)); D4XPWS.log_rewrite=gtk_radio_button_new_with_label(other_group,_("Overwrite file")); gtk_box_pack_start(GTK_BOX(hboxtemp),D4XPWS.log_rewrite,FALSE,FALSE,0); GTK_TOGGLE_BUTTON(D4XPWS.log_append)->active=TMPCFG.APPEND_REWRITE_LOG; GTK_TOGGLE_BUTTON(D4XPWS.log_rewrite)->active=!TMPCFG.APPEND_REWRITE_LOG; gtk_box_pack_start(GTK_BOX(vbox),hboxtemp,FALSE,FALSE,0); d4x_prefs_toggle_save_log(D4XPWS.log_save); gtk_widget_show_all(vbox);};static void d4x_prefs_toggle_exit_complete(GtkWidget *parent) { gtk_widget_set_sensitive(D4XPWS.exit_complete_time,GTK_TOGGLE_BUTTON(parent)->active);};void d4x_prefs_integration(){ GtkWidget *vbox=d4x_prefs_child_destroy(_("Integration")); D4XPWS.exit_complete=gtk_check_button_new_with_label(_("Exit if nothing to do after")); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(D4XPWS.exit_complete),TMPCFG.EXIT_COMPLETE); g_signal_connect(G_OBJECT(D4XPWS.exit_complete),"clicked",G_CALLBACK(d4x_prefs_toggle_exit_complete),NULL); D4XPWS.exit_complete_time=my_gtk_entry_new_with_max_length(3,TMPCFG.EXIT_COMPLETE_TIME); GtkWidget *prefs_common_hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(prefs_common_hbox),5); GtkWidget *prefs_common_label=gtk_label_new(_("minutes")); gtk_box_pack_start(GTK_BOX(prefs_common_hbox),D4XPWS.exit_complete,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_common_hbox),D4XPWS.exit_complete_time,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_common_hbox),prefs_common_label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_common_hbox,FALSE,FALSE,0); d4x_prefs_toggle_exit_complete(D4XPWS.exit_complete); GtkWidget *prefs_other_ebox=gtk_vbox_new(FALSE,0); D4XPWS.exec_on_exit=my_gtk_filesel_new(ALL_HISTORIES[EXEC_HISTORY]); MY_GTK_FILESEL(D4XPWS.exec_on_exit)->modal=GTK_WINDOW(d4x_prefs_window); text_to_combo(MY_GTK_FILESEL(D4XPWS.exec_on_exit)->combo,TMPCFG.EXEC_WHEN_QUIT); GtkWidget *prefs_other_elabel=gtk_label_new(_("Run this on exit")); gtk_box_pack_start(GTK_BOX(prefs_other_ebox),prefs_other_elabel,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_other_ebox),D4XPWS.exec_on_exit,TRUE,TRUE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_other_ebox,FALSE,FALSE,0); D4XPWS.dnd_dialog=gtk_check_button_new_with_label(_("Open dialog for Drag-n-Drop")); gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.dnd_dialog,FALSE,FALSE,0); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(D4XPWS.dnd_dialog),TMPCFG.NEED_DIALOG_FOR_DND); gtk_widget_show_all(vbox);};static void d4x_prefs_toggle_save_list(GtkWidget *parent) { gtk_widget_set_sensitive(D4XPWS.save_list_entry,GTK_TOGGLE_BUTTON(parent)->active);};void d4x_prefs_main(){ GtkWidget *vbox=d4x_prefs_child_destroy(_("Main")); GtkWidget *prefs_limits_tbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(prefs_limits_tbox),5); D4XPWS.save_list_check=gtk_check_button_new_with_label(_("Save list of downloads every")); g_signal_connect(G_OBJECT(D4XPWS.save_list_check),"clicked",G_CALLBACK(d4x_prefs_toggle_save_list),NULL); GTK_TOGGLE_BUTTON(D4XPWS.save_list_check)->active=TMPCFG.SAVE_LIST; D4XPWS.save_list_entry=my_gtk_entry_new_with_max_length(3,TMPCFG.SAVE_LIST_INTERVAL); GtkWidget *prefs_common_hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(prefs_common_hbox),5); GtkWidget *prefs_common_label=gtk_label_new(_("minutes")); gtk_box_pack_start(GTK_BOX(prefs_common_hbox),D4XPWS.save_list_check,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_common_hbox),D4XPWS.save_list_entry,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(prefs_common_hbox),prefs_common_label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),prefs_common_hbox,FALSE,FALSE,0); d4x_prefs_toggle_save_list(D4XPWS.save_list_check); D4XPWS.allow_force_run=gtk_check_button_new_with_label(_("Allow to user force run downloads")); D4XPWS.remember_pass=gtk_check_button_new_with_label(_("Remember passwords")); D4XPWS.description=gtk_check_button_new_with_label(_("Write Descript.ion file")); GTK_TOGGLE_BUTTON(D4XPWS.allow_force_run)->active=TMPCFG.ALLOW_FORCE_RUN; GTK_TOGGLE_BUTTON(D4XPWS.remember_pass)->active=TMPCFG.REMEMBER_PASS; GTK_TOGGLE_BUTTON(D4XPWS.description)->active=TMPCFG.WRITE_DESCRIPTION; gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.allow_force_run,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.remember_pass,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.description,FALSE,FALSE,0);#include "pixmaps/speed1.xpm"#include "pixmaps/speed2.xpm" GtkWidget *label=gtk_label_new(_("bytes/sec speed level one (red button)")); GtkWidget *hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),5); D4XPWS.speed_limit_1=my_gtk_entry_new_with_max_length(6,TMPCFG.SPEED_LIMIT_1); gtk_box_pack_start(GTK_BOX(hbox),new_pixmap(speed1_xpm,NULL),FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(hbox),D4XPWS.speed_limit_1,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); label=gtk_label_new(_("bytes/sec speed level two (yellow button)")); hbox=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(hbox),5); D4XPWS.speed_limit_2=my_gtk_entry_new_with_max_length(6,TMPCFG.SPEED_LIMIT_2); gtk_box_pack_start(GTK_BOX(hbox),new_pixmap(speed2_xpm,NULL),FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(hbox),D4XPWS.speed_limit_2,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(hbox),label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,FALSE,0); // GTK_TOGGLE_BUTTON(D4XPWS.)->active=TMPCFG.; gtk_widget_show_all(vbox);};void d4x_prefs_search(){ GtkWidget *vbox=d4x_prefs_child_destroy(_("FTP search")); GtkWidget *box=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(box),5); D4XPWS.search_ping_times=my_gtk_entry_new_with_max_length(3,TMPCFG.SEARCH_PING_TIMES); gtk_box_pack_start(GTK_BOX(box),D4XPWS.search_ping_times,FALSE,FALSE,0); GtkWidget *label=gtk_label_new(_("Number of attempts to ping hosts")); gtk_box_pack_start(GTK_BOX(box),label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),box,FALSE,FALSE,0); box=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(box),5); D4XPWS.search_entries=my_gtk_entry_new_with_max_length(3,TMPCFG.SEARCH_ENTRIES); gtk_box_pack_start(GTK_BOX(box),D4XPWS.search_entries,FALSE,FALSE,0); label=gtk_label_new(_("Number of hosts in list")); gtk_box_pack_start(GTK_BOX(box),label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),box,FALSE,FALSE,0); int count=D4X_SEARCH_ENGINES.count(); if (count==0) count++; char **labels=new char*[count]; D4X_SEARCH_ENGINES.names2array(labels); D4XPWS.search_host=gtk_option_menu_new(); GtkWidget *menu=gtk_menu_new (); GtkWidget *menu_item; GSList *group=(GSList *)NULL; gint i; for (i = 0; (unsigned int)i <count; i++){ menu_item = gtk_radio_menu_item_new_with_label (group, labels[i]); group = gtk_radio_menu_item_group (GTK_RADIO_MENU_ITEM (menu_item)); gtk_menu_shell_append (GTK_MENU_SHELL (menu), menu_item); if (i==TMPCFG.SEARCH_HOST) gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM (menu_item), TRUE); gtk_widget_show(menu_item); }; delete[] labels; gtk_option_menu_set_menu (GTK_OPTION_MENU (D4XPWS.search_host), menu); gtk_option_menu_set_history (GTK_OPTION_MENU (D4XPWS.search_host),TMPCFG.SEARCH_HOST); box=gtk_hbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(box),5); label=gtk_label_new(_("search engine to use")); gtk_box_pack_start(GTK_BOX(box),D4XPWS.search_host,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(box),label,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),box,FALSE,FALSE,0); gtk_widget_show_all(vbox);};void d4x_prefs_interface(){ GtkWidget *vbox=d4x_prefs_child_destroy(_("Interface")); D4XPWS.dnd_trash=gtk_check_button_new_with_label(_("Show DnD basket")); D4XPWS.fixed_font_log=gtk_check_button_new_with_label(_("Use fixed font in logs")); GTK_TOGGLE_BUTTON(D4XPWS.dnd_trash)->active=TMPCFG.DND_TRASH; GTK_TOGGLE_BUTTON(D4XPWS.fixed_font_log)->active=TMPCFG.FIXED_LOG_FONT; gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.dnd_trash,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.fixed_font_log,FALSE,FALSE,0); gtk_widget_show_all(vbox);};static gint d4x_prefs_reset_colors(){ my_gtk_colorsel_set_color(MY_GTK_COLORSEL(D4XPWS.speed_color_back),0xFFFFFF); my_gtk_colorsel_set_color(MY_GTK_COLORSEL(D4XPWS.speed_color_fore1),0x555555); my_gtk_colorsel_set_color(MY_GTK_COLORSEL(D4XPWS.speed_color_fore2),0xAAAAAA); my_gtk_colorsel_set_color(MY_GTK_COLORSEL(D4XPWS.speed_color_pick),0); return TRUE;};void d4x_prefs_graph(){ GtkWidget *vbox=d4x_prefs_child_destroy(_("Graph")); D4XPWS.graph_order=gtk_check_button_new_with_label(_("Revert drawing graph of speeds")); GTK_TOGGLE_BUTTON(D4XPWS.graph_order)->active=TMPCFG.GRAPH_ORDER; gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.graph_order,FALSE,FALSE,0); D4XPWS.graph_mode=gtk_check_button_new_with_label(_("Compressed mode")); GTK_TOGGLE_BUTTON(D4XPWS.graph_mode)->active=TMPCFG.GRAPH_MODE; gtk_box_pack_start(GTK_BOX(vbox),D4XPWS.graph_mode,FALSE,FALSE,0); GtkWidget *vbox_colors=gtk_vbox_new(FALSE,0); gtk_box_set_spacing(GTK_BOX(vbox_colors),5); D4XPWS.speed_color_pick=my_gtk_colorsel_new(TMPCFG.GRAPH_PICK,_("Color for picks")); D4XPWS.speed_color_fore1=my_gtk_colorsel_new(TMPCFG.GRAPH_FORE1,_("Color for total speed")); D4XPWS.speed_color_fore2=my_gtk_colorsel_new(TMPCFG.GRAPH_FORE2,_("Color for speed of selected")); D4XPWS.speed_color_back=my_gtk_colorsel_new(TMPCFG.GRAPH_BACK,_("Background color")); MY_GTK_COLORSEL(D4XPWS.speed_color_pick)->modal=GTK_WINDOW(d4x_prefs_window); MY_GTK_COLORSEL(D4XPWS.speed_color_fore1)->modal=GTK_WINDOW(d4x_prefs_window); MY_GTK_COLORSEL(D4XPWS.speed_color_fore2)->modal=GTK_WINDOW(d4x_prefs_window); MY_GTK_COLORSEL(D4XPWS.speed_color_back)->modal=GTK_WINDOW(d4x_prefs_window); gtk_box_pack_start(GTK_BOX(vbox_colors),D4XPWS.speed_color_back,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox_colors),D4XPWS.speed_color_fore1,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox_colors),D4XPWS.speed_color_fore2,FALSE,FALSE,0); gtk_box_pack_start(GTK_BOX(vbox_colors),D4XPWS.speed_color_pick,FALSE,FALSE,0); GtkWidget *button_reset=gtk_button_new_with_label(_("Reset to default")); g_signal_connect(G_OBJECT(button_reset),"clicked",G_CALLBACK(d4x_prefs_reset_colors),NULL); gtk_box_pack_start(GTK_BOX(vbox_colors),button_reset,FALSE,FALSE,0); GtkWidget *frame_colors=gtk_frame_new(_("Colors for graph")); gtk_container_set_border_width(GTK_CONTAINER(frame_colors),5); gtk_container_add(GTK_CONTAINER(frame_colors),vbox_colors); gtk_container_set_border_width(GTK_CONTAINER(vbox_colors),5); gtk_box_pack_start(GTK_BOX(vbox),frame_colors,FALSE,FALSE,0); gtk_widget_show_all(vbox);};#define SND_ENTRY_INIT(a,b) { \ a=my_gtk_filesel_new(ALL_HISTORIES[SOUNDS_HISTORY]); \ gtk_widget_set_size_request(a,320,-1); \ MY_GTK_FILESEL(a)->modal=GTK_WINDOW(d4x_prefs_window); \ if (b) \ text_to_combo(MY_GTK_FILESEL(a)->combo,b); \ else \ text_to_combo(MY_GTK_FILESEL(a)->combo,""); \ gtk_box_pack_start(GTK_BOX(vbox),a,TRUE,FALSE,0); \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -