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

📄 prefs.cc

📁 一个功能比较强的下载软件
💻 CC
📖 第 1 页 / 共 5 页
字号:
	/* first box inside window */	GtkWidget *tmphbox=gtk_hbox_new(FALSE,0);	GtkWidget *tmpvbox=gtk_vbox_new(FALSE,0);	gtk_box_set_spacing(GTK_BOX(tmphbox),5);	gtk_box_set_spacing(GTK_BOX(tmpvbox),5);	gtk_container_set_border_width(GTK_CONTAINER(d4x_prefs_window),5);	gtk_container_add(GTK_CONTAINER(d4x_prefs_window),tmpvbox);	/* container for tree */	GtkWidget *scroll_win=gtk_scrolled_window_new((GtkAdjustment*)NULL,(GtkAdjustment*)NULL);	gtk_widget_set_size_request(scroll_win,150,-1);	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scroll_win),					GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);	gtk_box_pack_start (GTK_BOX (tmphbox), scroll_win, FALSE, TRUE, 0);	gtk_box_pack_start (GTK_BOX (tmpvbox), tmphbox, TRUE, TRUE, 0);	gtk_widget_show (scroll_win);	/* containder for all other */	d4x_prefs_frame=gtk_frame_new("test");//	gtk_widget_set_size_request(d4x_prefs_frame,480,-1);	gtk_box_pack_start (GTK_BOX (tmphbox), d4x_prefs_frame, TRUE, TRUE, 0);	gtk_container_set_border_width(GTK_CONTAINER(d4x_prefs_frame),5);	/* create tree of options */	D4XPWS.root_model=gtk_tree_store_new(1,G_TYPE_STRING);	GtkWidget *root_tree=D4XPWS.root_tree=gtk_tree_view_new_with_model(GTK_TREE_MODEL(D4XPWS.root_model));	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(D4XPWS.root_tree),FALSE);	GtkTreeSelection *sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(D4XPWS.root_tree));	gtk_tree_selection_set_select_function(sel,d4x_prefs_select_func,NULL,NULL);	GtkCellRenderer *renderer = gtk_cell_renderer_text_new ();	GtkTreeViewColumn *column = gtk_tree_view_column_new_with_attributes ("Category",									      renderer,									      "text",0,									      NULL);	gtk_tree_view_append_column (GTK_TREE_VIEW (D4XPWS.root_tree), column);//	gtk_widget_set_size_request(root_tree,150,-1);	gtk_scrolled_window_add_with_viewport(GTK_SCROLLED_WINDOW (scroll_win),					      root_tree);	gtk_widget_show(root_tree);	GtkTreeIter iter,child_iter;	gtk_tree_store_append(D4XPWS.root_model,&iter,NULL);	gtk_tree_store_set(D4XPWS.root_model,&iter,0,_("Download"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("Limits"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("FTP"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("HTTP"),-1);	gtk_tree_store_append(D4XPWS.root_model,&(D4XPWS.iter_download_proxy),&iter);	gtk_tree_store_set(D4XPWS.root_model,&(D4XPWS.iter_download_proxy),0,_("Proxy"),-1);		gtk_tree_store_append(D4XPWS.root_model,&iter,NULL);	gtk_tree_store_set(D4XPWS.root_model,&iter,0,_("Interface"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("Main window"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("Confirmation"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("Graph"),-1);	gtk_tree_store_append(D4XPWS.root_model,&(D4XPWS.iter_interface_sound),&iter);	gtk_tree_store_set(D4XPWS.root_model,&(D4XPWS.iter_interface_sound),0,_("Sounds"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("Themes"),-1);	gtk_tree_store_append(D4XPWS.root_model,&iter,NULL);	gtk_tree_store_set(D4XPWS.root_model,&iter,0,_("Integration"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&iter);	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("Clipboard"),-1);	gtk_tree_store_append(D4XPWS.root_model,&(D4XPWS.iter_main),NULL);	gtk_tree_store_set(D4XPWS.root_model,&(D4XPWS.iter_main),0,_("Main"),-1);	gtk_tree_store_append(D4XPWS.root_model,&(D4XPWS.iter_main_log),&(D4XPWS.iter_main));	gtk_tree_store_set(D4XPWS.root_model,&(D4XPWS.iter_main_log),0,_("Main log"),-1);	gtk_tree_store_append(D4XPWS.root_model,&child_iter,&(D4XPWS.iter_main));	gtk_tree_store_set(D4XPWS.root_model,&child_iter,0,_("FTP search"),-1);	/* show window */	GtkWidget *buttons_hbox=gtk_hbutton_box_new();	gtk_button_box_set_layout(GTK_BUTTON_BOX(buttons_hbox),GTK_BUTTONBOX_END);	gtk_box_set_spacing(GTK_BOX(buttons_hbox),5);	gtk_box_pack_start (GTK_BOX (tmpvbox), buttons_hbox, FALSE, FALSE, 0);	GtkWidget *ok_button=gtk_button_new_with_label(_("Ok"));	GtkWidget *cancel_button=gtk_button_new_with_label(_("Cancel"));	GtkWidget *apply_button=gtk_button_new_with_label(_("Apply"));	g_signal_connect(G_OBJECT(cancel_button),"clicked",G_CALLBACK(d4x_prefs_cancel),NULL);	g_signal_connect(G_OBJECT(apply_button),"clicked",G_CALLBACK(d4x_prefs_apply),NULL);	g_signal_connect(G_OBJECT(ok_button),"clicked",G_CALLBACK(d4x_prefs_ok),NULL);	GTK_WIDGET_SET_FLAGS(ok_button,GTK_CAN_DEFAULT);	GTK_WIDGET_SET_FLAGS(cancel_button,GTK_CAN_DEFAULT);	GTK_WIDGET_SET_FLAGS(apply_button,GTK_CAN_DEFAULT);	gtk_box_pack_start(GTK_BOX(buttons_hbox),ok_button,TRUE,TRUE,0);	gtk_box_pack_start(GTK_BOX(buttons_hbox),apply_button,TRUE,TRUE,0);	gtk_box_pack_start(GTK_BOX(buttons_hbox),cancel_button,TRUE,TRUE,0);	gtk_window_set_default(GTK_WINDOW(d4x_prefs_window),ok_button);		gtk_tree_view_expand_all(GTK_TREE_VIEW (D4XPWS.root_tree));		gtk_widget_show_all(d4x_prefs_window);	gtk_widget_set_size_request(d4x_prefs_window,-1,-1);};void d4x_prefs_init_page(int page){	d4x_prefs_init_pre();	GtkTreeSelection *sel=gtk_tree_view_get_selection(GTK_TREE_VIEW(D4XPWS.root_tree));	switch (page){	case PREFS_PAGE_MAINLOG:		gtk_tree_selection_select_iter(sel,&(D4XPWS.iter_main_log));		break;	case PREFS_PAGE_MAIN:		gtk_tree_selection_select_iter(sel,&(D4XPWS.iter_main));		break;	};	gtk_widget_queue_draw(D4XPWS.root_tree);};void d4x_prefs_init(){	d4x_prefs_init_page(PREFS_PAGE_MAIN);};static void d4x_prefs_get_field(GtkWidget *widget,char **where,tHistory *history){	if (where==NULL) return;	if (*where) delete[] (*where);	*where=copy_string(text_from_combo(widget));	if (history!=NULL) history->add(*where);};void d4x_prefs_apply_tmp(){	char *label=(char *)gtk_frame_get_label(GTK_FRAME(d4x_prefs_frame));	if (equal(label,_("Download"))){		TMPCFG.DEFAULT_CFG.get_date=GTK_TOGGLE_BUTTON(D4XPWS.get_date_check)->active;		TMPCFG.DEFAULT_CFG.retry=GTK_TOGGLE_BUTTON(D4XPWS.retry_check)->active;		TMPCFG.DEFAULT_CFG.sleep_before_complete=GTK_TOGGLE_BUTTON(D4XPWS.sleep_check)->active;		TMPCFG.RECURSIVE_OPTIMIZE=GTK_TOGGLE_BUTTON(D4XPWS.recursive)->active;		TMPCFG.PAUSE_AFTER_ADDING=GTK_TOGGLE_BUTTON(D4XPWS.pause_check)->active;		TMPCFG.DEFAULT_CFG.check_time=GTK_TOGGLE_BUTTON(D4XPWS.check_time_check)->active;		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.permissions)),"%u",&(TMPCFG.DEFAULT_PERMISIONS));		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.savepath)->combo,					 &TMPCFG.GLOBAL_SAVE_PATH,					 ALL_HISTORIES[PATH_HISTORY]);		return;	};	if (equal(label,_("Limits"))){		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.timeout_entry)),"%u",&TMPCFG.DEFAULT_CFG.timeout);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.sleep_entry)),"%u",&TMPCFG.DEFAULT_CFG.time_for_sleep);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.attempts_entry)),"%u",&TMPCFG.DEFAULT_CFG.number_of_attempts);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.limits_log)),"%u",&TMPCFG.MAX_LOG_LENGTH);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.rollback_entry)),"%u",&TMPCFG.DEFAULT_CFG.rollback);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.speed_entry)),"%u",&TMPCFG.DEFAULT_CFG.speed);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.split_entry)),"%u",&TMPCFG.NUMBER_OF_PARTS);		return;	};	if (equal(label,_("FTP"))){		TMPCFG.DEFAULT_CFG.passive=GTK_TOGGLE_BUTTON(D4XPWS.ftp_passive_check)->active;		TMPCFG.DEFAULT_CFG.permisions=GTK_TOGGLE_BUTTON(D4XPWS.permisions_check)->active;		TMPCFG.DEFAULT_CFG.dont_send_quit=GTK_TOGGLE_BUTTON(D4XPWS.dont_send_quit_check)->active;		TMPCFG.DEFAULT_CFG.follow_link=0;		if (GTK_TOGGLE_BUTTON(D4XPWS.follow_link_check)->active)			TMPCFG.DEFAULT_CFG.follow_link=1;		if (GTK_TOGGLE_BUTTON(D4XPWS.link_as_file_check)->active)			TMPCFG.DEFAULT_CFG.follow_link=2;		TMPCFG.FTP_DIR_IN_LOG=GTK_TOGGLE_BUTTON(D4XPWS.ftp_dir_in_log)->active;		TMPCFG.DEFAULT_CFG.ftp_dirontop=GTK_TOGGLE_BUTTON(D4XPWS.ftp_dirontop)->active;		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.ftp_recurse_depth_entry)),"%u",&TMPCFG.DEFAULT_CFG.ftp_recurse_depth);		if (TMPCFG.ANONYMOUS_PASS)			delete[] TMPCFG.ANONYMOUS_PASS;		TMPCFG.ANONYMOUS_PASS=copy_string(text_from_combo(D4XPWS.ftp_anonymous_pass));		return;	};	if (equal(label,_("HTTP"))){		TMPCFG.DEFAULT_CFG.leave_server=GTK_TOGGLE_BUTTON(D4XPWS.leave_server_check)->active;		TMPCFG.DEFAULT_CFG.dont_leave_dir=GTK_TOGGLE_BUTTON(D4XPWS.leave_dir_check)->active;		TMPCFG.DEFAULT_CFG.change_links=GTK_TOGGLE_BUTTON(D4XPWS.change_links_check)->active;		TMPCFG.DEFAULT_CFG.ihate_etag=GTK_TOGGLE_BUTTON(D4XPWS.ihate_etag_check)->active;//		TMPCFG.DEFAULT_CFG.=GTK_TOGGLE_BUTTON(D4XPWS.)->active;		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.http_recurse_depth_entry)),"%u",&TMPCFG.DEFAULT_CFG.http_recurse_depth);		d4x_prefs_get_field(D4XPWS.user_agent_entry,				    &TMPCFG.USER_AGENT,				    ALL_HISTORIES[USER_AGENT_HISTORY]);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.unknown_filename)->combo,				    &TMPCFG.DEFAULT_NAME,				    ALL_HISTORIES[FILE_HISTORY]);		if (TMPCFG.DEFAULT_FILTER)			delete[] TMPCFG.DEFAULT_FILTER;		TMPCFG.DEFAULT_FILTER=copy_string(text_from_combo(D4XPWS.default_filter));		return;	};	if (equal(label,_("Proxy"))){		D4XPWS.proxy.apply_changes(&TMPCFG);		return;	};	if (equal(label,_("Interface"))){		TMPCFG.DND_TRASH=GTK_TOGGLE_BUTTON(D4XPWS.dnd_trash)->active;		TMPCFG.FIXED_LOG_FONT=GTK_TOGGLE_BUTTON(D4XPWS.fixed_font_log)->active;		return;	};	if (equal(label,_("Main window"))){		TMPCFG.USE_MAINWIN_TITLE=GTK_TOGGLE_BUTTON(D4XPWS.mw_use_title)->active;		TMPCFG.USE_MAINWIN_TITLE2=GTK_TOGGLE_BUTTON(D4XPWS.mw_use_title2)->active;		TMPCFG.SCROLL_MAINWIN_TITLE=GTK_TOGGLE_BUTTON(D4XPWS.mw_scroll_title)->active;		TMPCFG.WINDOW_LOWER=GTK_TOGGLE_BUTTON(D4XPWS.window_lower)->active;		TMPCFG.DONOTSET_WINPOS=GTK_TOGGLE_BUTTON(D4XPWS.winpos)->active;		return;	};	if (equal(label,_("Confirmation"))){		TMPCFG.CONFIRM_DELETE=GTK_TOGGLE_BUTTON(D4XPWS.confirm_delete)->active;		TMPCFG.CONFIRM_DELETE_ALL=GTK_TOGGLE_BUTTON(D4XPWS.confirm_delete_all)->active;		TMPCFG.CONFIRM_DELETE_COMPLETED=GTK_TOGGLE_BUTTON(D4XPWS.confirm_delete_completed)->active;		TMPCFG.CONFIRM_DELETE_FATALED=GTK_TOGGLE_BUTTON(D4XPWS.confirm_delete_fataled)->active;		TMPCFG.CONFIRM_EXIT=GTK_TOGGLE_BUTTON(D4XPWS.confirm_exit)->active;		TMPCFG.CONFIRM_OPENING_MANY=GTK_TOGGLE_BUTTON(D4XPWS.confirm_opening_many)->active;		return;	};	if (equal(label,_("Graph"))){		TMPCFG.GRAPH_BACK=my_gtk_colorsel_get_color(MY_GTK_COLORSEL(D4XPWS.speed_color_back));		TMPCFG.GRAPH_FORE1=my_gtk_colorsel_get_color(MY_GTK_COLORSEL(D4XPWS.speed_color_fore1));		TMPCFG.GRAPH_FORE2=my_gtk_colorsel_get_color(MY_GTK_COLORSEL(D4XPWS.speed_color_fore2));		TMPCFG.GRAPH_PICK=my_gtk_colorsel_get_color(MY_GTK_COLORSEL(D4XPWS.speed_color_pick));		TMPCFG.GRAPH_ORDER=GTK_TOGGLE_BUTTON(D4XPWS.graph_order)->active;		TMPCFG.GRAPH_MODE=GTK_TOGGLE_BUTTON(D4XPWS.graph_mode)->active;		return;	};	if (equal(label,_("Sounds"))){		TMPCFG.ENABLE_SOUNDS=GTK_TOGGLE_BUTTON(D4XPWS.snd_enable)->active;#ifdef HAVE_ESD		TMPCFG.ESD_SOUND=GTK_TOGGLE_BUTTON(D4XPWS.esd_sound)->active;#endif //HAVE_ESD		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.snd_startup)->combo,				    &TMPCFG.SOUND_STARTUP,				    ALL_HISTORIES[SOUNDS_HISTORY]);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.snd_fail)->combo,				    &TMPCFG.SOUND_FAIL,				    ALL_HISTORIES[SOUNDS_HISTORY]);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.snd_complete)->combo,				    &TMPCFG.SOUND_COMPLETE,				    ALL_HISTORIES[SOUNDS_HISTORY]);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.snd_add)->combo,				    &TMPCFG.SOUND_ADD,				    ALL_HISTORIES[SOUNDS_HISTORY]);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.snd_dnd_drop)->combo,				    &TMPCFG.SOUND_DND_DROP,				    ALL_HISTORIES[SOUNDS_HISTORY]);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.snd_queue_finish)->combo,				    &TMPCFG.SOUND_QUEUE_FINISH,				    ALL_HISTORIES[SOUNDS_HISTORY]);	};	if (equal(label,_("Integration"))){		TMPCFG.EXIT_COMPLETE=GTK_TOGGLE_BUTTON(D4XPWS.exit_complete)->active;		TMPCFG.NEED_DIALOG_FOR_DND=GTK_TOGGLE_BUTTON(D4XPWS.dnd_dialog)->active;		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.exit_complete_time)),"%u",&TMPCFG.EXIT_COMPLETE_TIME);		d4x_prefs_get_field(MY_GTK_FILESEL(D4XPWS.exec_on_exit)->combo,				    &TMPCFG.EXEC_WHEN_QUIT,				    ALL_HISTORIES[EXEC_HISTORY]);		return;	};	if (equal(label,_("Clipboard"))){		TMPCFG.CLIPBOARD_SKIP_OR_CATCH=GTK_TOGGLE_BUTTON(D4XPWS.clipboard_catch_button)->active;		TMPCFG.CLIPBOARD_MONITOR=GTK_TOGGLE_BUTTON(D4XPWS.clipboard_monitor)->active;		d4x_prefs_get_field(D4XPWS.clipboard_skip,				    &TMPCFG.SKIP_IN_CLIPBOARD,				    ALL_HISTORIES[SKIP_HISTORY]);		d4x_prefs_get_field(D4XPWS.clipboard_catch,				    &TMPCFG.CATCH_IN_CLIPBOARD,				    ALL_HISTORIES[SKIP_HISTORY]);		return;	};	if (equal(label,_("FTP search"))){		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.search_ping_times)),"%u",&TMPCFG.SEARCH_PING_TIMES);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.search_entries)),"%u",&TMPCFG.SEARCH_ENTRIES);		GSList *group=gtk_radio_menu_item_group((GtkRadioMenuItem *)((GtkOptionMenu *)D4XPWS.search_host)->menu_item);		int i=D4X_SEARCH_ENGINES.count()-1;		if (i<0) i=0;		while(group && !((GtkCheckMenuItem *)(group->data))->active){			group = group->next;			i--;		};		TMPCFG.SEARCH_HOST=i;		return;	};	if (equal(label,_("Main"))){		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.speed_limit_1)),"%u",&TMPCFG.SPEED_LIMIT_1);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.speed_limit_2)),"%u",&TMPCFG.SPEED_LIMIT_2);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.save_list_entry)),"%u",&TMPCFG.SAVE_LIST_INTERVAL);		TMPCFG.SAVE_LIST=GTK_TOGGLE_BUTTON(D4XPWS.save_list_check)->active;		TMPCFG.WRITE_DESCRIPTION=GTK_TOGGLE_BUTTON(D4XPWS.description)->active;		TMPCFG.ALLOW_FORCE_RUN=GTK_TOGGLE_BUTTON(D4XPWS.allow_force_run)->active;		TMPCFG.REMEMBER_PASS=GTK_TOGGLE_BUTTON(D4XPWS.remember_pass)->active;		return;	};	if (equal(label,_("Main log"))){		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.log_length)),"%u",&TMPCFG.MAX_MAIN_LOG_LENGTH);		sscanf(gtk_entry_get_text(GTK_ENTRY(D4XPWS.log_fsize)),"%li",&TMPCFG.MAIN_LOG_FILE_LIMIT);		TMPCFG.MAIN_LOG_DETAILED=GTK_TOGGLE_BUTTON(D4XPWS.log_detailed)->active;		TMPCFG.APPEND_REWRITE_LOG=GTK_TO

⌨️ 快捷键说明

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