⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 prefs.cc

📁 一个功能比较强的下载软件
💻 CC
📖 第 1 页 / 共 5 页
字号:
/*	WebDownloader for X-Window *	Copyright (C) 1999-2002 Koshelev Maxim *	This Program is free but not GPL!!! You can't modify it *	without agreement with author. You can't distribute modified *	program but you can distribute unmodified program. * *	This program is distributed in the hope that it will be useful, *	but WITHOUT ANY WARRANTY; without even the implied warranty of *	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. */#include <gtk/gtk.h>#include <gdk/gdkkeysyms.h>#include "../ntlocale.h"#include "../var.h"#include "../locstr.h"#include "../main.h"#include "misc.h"#include "prefs.h"#include "mywidget.h"#include "buttons.h"#include "edit.h"#include "graph.h"#include "dndtrash.h"#include "../config.h"#include "../sndserv.h"#include <dirent.h>#include <sys/stat.h>#include "../xml.h"#include "lod.h"extern tMain aa;GtkWidget *d4x_prefs_window=(GtkWidget *)NULL;GtkWidget *d4x_prefs_frame=(GtkWidget *)NULL;/* initialisation only for NULL in 'char*' */tMainCfg TMPCFG={	{300,5,0,100,0,1,0,0,	 0,0,0,0,0,1,1,1,0,0,0,0,1,0,0,	 0,0},	100,NULL,NULL,NULL,NULL,NULL,NULL,0,0,	100,0,0,0,NULL,0,0, //Log	5,0, //List	1,600,0,0, //flags	1,0,0,40,40,500,400,300,300,1,0,1,0,20,30,0,5,1,1,0,0,100,0,//interface	0,1,NULL,NULL, //clipboard	0xFFFFFF,0x555555,0xAAAAAA,0,0,	/* Proxy */	NULL,0,NULL,NULL,1,NULL,0,NULL,NULL,0,0,0,0,0,	/* SOCKS */	NULL,0,NULL,NULL,	1,1,1,1,1,1,	3,1024,10*1024,	NULL,0,	0x0FFFFFFF,	0,0,1,1,	1,0,15,	1,0,(char*)NULL,(char*)NULL,(char*)NULL,(char*)NULL,(char*)NULL,(char*)NULL,	0,(char*)NULL,(char*)NULL};struct D4xPrefsWidget{	/* TREE ITEMS */	GtkWidget *root_tree;	GtkTreeStore *root_model;//	GtkTreeIter *tree_download;	GtkTreeIter iter_download_proxy;	GtkTreeIter iter_interface_sound;	GtkTreeIter iter_main;	GtkTreeIter iter_main_log;	/* DOWNLOAD */	GtkWidget *savepath;	GtkWidget *sleep_check;	GtkWidget *get_date_check;	GtkWidget *retry_check;	GtkWidget *recursive;	GtkWidget *pause_check;	GtkWidget *check_time_check;	GtkWidget *change_links_check;	GtkWidget *permissions;	/* FTP */	GtkWidget *ftp_passive_check;	GtkWidget *dont_send_quit_check;	GtkWidget *permisions_check;	GtkWidget *follow_link_check;	GtkWidget *link_as_file_check;	GtkWidget *load_link_check;	GtkWidget *ftp_dir_in_log;	GtkWidget *ftp_dirontop;	GtkWidget *ftp_recurse_depth_entry;	GtkWidget *ftp_anonymous_pass;	/* LIMITS */	GtkWidget *limits_log;	GtkWidget *timeout_entry;	GtkWidget *sleep_entry;	GtkWidget *attempts_entry;	GtkWidget *rollback_entry;	GtkWidget *speed_entry;	GtkWidget *split_entry;	/* HTTP */	GtkWidget *leave_dir_check;	GtkWidget *leave_server_check;	GtkWidget *ihate_etag_check;	GtkWidget *http_recurse_depth_entry;	GtkWidget *user_agent_entry;	GtkWidget *unknown_filename;	GtkWidget *default_filter;	d4xFilterSel *filter_sel;	/* PROXY */	tProxyWidget proxy;	/* Main window */	GtkWidget *mw_use_title;	GtkWidget *mw_use_title2;	GtkWidget *mw_scroll_title;	GtkWidget *window_lower;	GtkWidget *winpos;	/* CONFIRM */	GtkWidget *confirm_delete;	GtkWidget *confirm_delete_all;	GtkWidget *confirm_delete_fataled;	GtkWidget *confirm_delete_completed;	GtkWidget *confirm_exit;	GtkWidget *confirm_opening_many;	/* CLIPBOARD */	GtkWidget *clipboard_monitor;	GtkWidget *clipboard_skip;	GtkWidget *clipboard_skip_button;	GtkWidget *clipboard_catch_button;	GtkWidget *clipboard_catch;	/* MAINLOG */	GtkWidget *log_rewrite;	GtkWidget *log_append;	GtkWidget *log_save;	GtkWidget *log_save_path;	GtkWidget *log_detailed;	GtkWidget *log_length;	GtkWidget *log_fsize;	GtkWidget *log_fslabel;	/* INTEGRATION */	GtkWidget *exit_complete;	GtkWidget *exit_complete_time;	GtkWidget *exec_on_exit;	GtkWidget *dnd_dialog;	/* MAIN */	GtkWidget *allow_force_run;	GtkWidget *remember_pass;	GtkWidget *description;	GtkWidget *save_list_entry;	GtkWidget *save_list_check;	GtkWidget *speed_limit_1;	GtkWidget *speed_limit_2;	/* FTP SEARCH */	GtkWidget *search_ping_times;	GtkWidget *search_host;	GtkWidget *search_entries;	/* INTERFACE */	GtkWidget *dnd_trash;	GtkWidget *fixed_font_log;	/* GRAPH */	GtkWidget *graph_order;	GtkWidget *graph_mode;	GtkWidget *speed_color_pick;	GtkWidget *speed_color_fore1;	GtkWidget *speed_color_fore2;	GtkWidget *speed_color_back;	/* SOUNDS */	GtkWidget *snd_enable;	GtkWidget *esd_sound;	GtkWidget *snd_dnd_drop;	GtkWidget *snd_startup;	GtkWidget *snd_add;	GtkWidget *snd_complete;	GtkWidget *snd_fail;	GtkWidget *snd_queue_finish;	/* THEMES */	GtkWidget *themes_dir;	GtkWidget *themes_list;	GtkWidget *theme_info;	GtkTextBuffer *theme_text;//	GtkWidget *;};static D4xPrefsWidget D4XPWS;void d4x_prefs_apply_tmp();void d4x_prefs_apply();void d4x_prefs_ok();void toggle_button_set_state(GtkToggleButton *tb,gboolean state) {#if (GTK_MAJOR_VERSION==1) && (GTK_MINOR_VERSION==1) && (GTK_MICRO_VERSION<=12)	gtk_toggle_button_set_state(tb,state);#else	gtk_toggle_button_set_active(tb,state);#endif}static void prefs_filter_sel_delete();gint d4x_prefs_cancel() {	if (d4x_prefs_window){		gtk_widget_destroy(d4x_prefs_window);		d4x_prefs_window=(GtkWidget *)NULL;		if (D4XPWS.filter_sel)			prefs_filter_sel_delete();	};	return TRUE;};static gint d4x_prefs_esc_handler(GtkWidget *window,GdkEvent *event){	if (event && event->type == GDK_KEY_PRESS) {		GdkEventKey *kevent=(GdkEventKey *)event;		switch(kevent->keyval) {		case GDK_Escape:{			d4x_prefs_cancel();			return TRUE;			break;		};		};	};	return FALSE;};GtkWidget *d4x_prefs_child_destroy(char *title){	GtkWidget *child=GTK_BIN(d4x_prefs_frame)->child;	if (child){		d4x_prefs_apply_tmp();		gtk_widget_destroy(child);//		gtk_container_remove(GTK_CONTAINER(d4x_prefs_frame),child);//		gtk_widget_destroy(child);			};	gtk_frame_set_label(GTK_FRAME(d4x_prefs_frame),title);	GtkWidget *tmpbox=gtk_vbox_new(FALSE,0);	gtk_box_set_spacing(GTK_BOX(tmpbox),5);	gtk_container_add(GTK_CONTAINER(d4x_prefs_frame),tmpbox);	return(tmpbox);};void d4x_prefs_download(){	GtkWidget *tmpbox=d4x_prefs_child_destroy(_("Download"));		D4XPWS.get_date_check=gtk_check_button_new_with_label(_("Get date from the server"));	GTK_TOGGLE_BUTTON(D4XPWS.get_date_check)->active=TMPCFG.DEFAULT_CFG.get_date;	gtk_box_pack_start(GTK_BOX(tmpbox),D4XPWS.get_date_check,FALSE,FALSE,0);	D4XPWS.retry_check=gtk_check_button_new_with_label(_("Retry if resuming is not supported"));	GTK_TOGGLE_BUTTON(D4XPWS.retry_check)->active=TMPCFG.DEFAULT_CFG.retry;	gtk_box_pack_start(GTK_BOX(tmpbox),D4XPWS.retry_check,FALSE,FALSE,0);	D4XPWS.sleep_check=gtk_check_button_new_with_label(_("Sleep before completing"));	GTK_TOGGLE_BUTTON(D4XPWS.sleep_check)->active=TMPCFG.DEFAULT_CFG.sleep_before_complete;	gtk_box_pack_start(GTK_BOX(tmpbox),D4XPWS.sleep_check,FALSE,FALSE,0);	D4XPWS.recursive=gtk_check_button_new_with_label(_("Optimize recursive downloads"));	gtk_box_pack_start(GTK_BOX(tmpbox),D4XPWS.recursive,FALSE,FALSE,0);	GTK_TOGGLE_BUTTON(D4XPWS.recursive)->active=TMPCFG.RECURSIVE_OPTIMIZE;	D4XPWS.pause_check=gtk_check_button_new_with_label(_("Pause this just after adding"));	GTK_TOGGLE_BUTTON(D4XPWS.pause_check)->active=TMPCFG.PAUSE_AFTER_ADDING;	gtk_box_pack_start(GTK_BOX(tmpbox),D4XPWS.pause_check,FALSE,FALSE,0);	D4XPWS.check_time_check=gtk_check_button_new_with_label(_("Compare date/time of remote file with local one"));	GTK_TOGGLE_BUTTON(D4XPWS.check_time_check)->active=TMPCFG.DEFAULT_CFG.check_time;	gtk_box_pack_start(GTK_BOX(tmpbox),D4XPWS.check_time_check,FALSE,FALSE,0);	GtkWidget *tbox=gtk_hbox_new(FALSE,0);	gtk_box_set_spacing(GTK_BOX(tbox),5);	D4XPWS.permissions=my_gtk_entry_new_with_max_length(3,TMPCFG.DEFAULT_PERMISIONS);	gtk_box_pack_start(GTK_BOX(tbox),D4XPWS.permissions,FALSE,FALSE,0);	GtkWidget *tlabel=gtk_label_new(_("Default permissions of local file"));	gtk_box_pack_start(GTK_BOX(tbox),tlabel,FALSE,FALSE,0);	gtk_box_pack_start(GTK_BOX(tmpbox),tbox,FALSE,FALSE,0);	GtkWidget *prefs_other_sbox=gtk_vbox_new(FALSE,0);	D4XPWS.savepath=my_gtk_filesel_new(ALL_HISTORIES[PATH_HISTORY]);	MY_GTK_FILESEL(D4XPWS.savepath)->modal=GTK_WINDOW(d4x_prefs_window);	MY_GTK_FILESEL(D4XPWS.savepath)->only_dirs=TRUE;	if (TMPCFG.GLOBAL_SAVE_PATH)		text_to_combo(MY_GTK_FILESEL(D4XPWS.savepath)->combo,TMPCFG.GLOBAL_SAVE_PATH);	GtkWidget *prefs_other_slabel=gtk_label_new(_("Save downloads to folder"));	gtk_box_pack_start(GTK_BOX(prefs_other_sbox),prefs_other_slabel,FALSE,FALSE,0);	gtk_box_pack_start(GTK_BOX(prefs_other_sbox),D4XPWS.savepath,FALSE,FALSE,0);	gtk_box_pack_start(GTK_BOX(tmpbox),prefs_other_sbox,FALSE,FALSE,0);	gtk_widget_show_all(tmpbox);};void d4x_prefs_download_limits(){	GtkWidget *tmpbox=d4x_prefs_child_destroy(_("Limits"));	D4XPWS.timeout_entry=my_gtk_entry_new_with_max_length(3,TMPCFG.DEFAULT_CFG.timeout);	D4XPWS.sleep_entry=my_gtk_entry_new_with_max_length(3,TMPCFG.DEFAULT_CFG.time_for_sleep);	D4XPWS.attempts_entry=my_gtk_entry_new_with_max_length(3,TMPCFG.DEFAULT_CFG.number_of_attempts);	D4XPWS.rollback_entry=my_gtk_entry_new_with_max_length(5,TMPCFG.DEFAULT_CFG.rollback);	D4XPWS.speed_entry=my_gtk_entry_new_with_max_length(5,TMPCFG.DEFAULT_CFG.speed);	D4XPWS.split_entry=my_gtk_entry_new_with_max_length(2,TMPCFG.NUMBER_OF_PARTS);	GtkWidget *other_hbox=gtk_hbox_new(FALSE,0);	gtk_box_set_spacing(GTK_BOX(other_hbox),5);	GtkWidget *other_label=gtk_label_new(_("Timeout for reading from socket (in seconds)"));	gtk_box_pack_start(GTK_BOX(other_hbox),D4XPWS.timeout_entry,FALSE,FALSE,0);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -