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

📄 setup.c

📁 -一个LINUX下的使用方&#63845 的CD-ROM刻录软件,开放源码
💻 C
📖 第 1 页 / 共 4 页
字号:
gchar tmp[MAXLINE];gchar fs[MAXLINE];gint free, sum;gint i;GdkCursor *cursor,*normal_cursor;GdkWindowAttr *win_attr;gchar *mnt;gint marktodelete;	/* set watch-cursor */	gdk_window_get_user_data(GTK_WIDGET(toplevel)->window,		(gpointer) &win_attr);	normal_cursor = win_attr->cursor;	cursor = gdk_cursor_new(GDK_WATCH);	gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,cursor);	/* give gtk time to update cursor */	gtk_main_iteration_do(FALSE);	marktodelete = -1;	sum = 0;	/* loop through all rows */	for (i = 0; i < clist->rows; i++) {		gtk_clist_get_text(clist,i,0,data);		mnt = (gchar *)gtk_clist_get_row_data(clist,i);		free = get_free_space(data[0],fs);		convert_kbytes2mbminstring(free,tmp);		gtk_clist_set_text(clist,i,1,tmp);		/* not yet a filesystem registred (updated) for this path? */		if (mnt == NULL) {			/* do it now */			gtk_clist_set_row_data(clist,i,g_strdup(fs));		}				/* now check if the new updated filesystem is already		   in use (should never happen - but may possible if the		   user repartitioned its drive without telling xcdroast) */		if (fs_in_use2(clist,fs,i) == 1) {			/* mark the conflicting entry */			marktodelete = i;			continue;		}		/* add sizes up */		sum+=free;	}		convert_kbytes2mbminstring(sum,tmp);	gtk_label_set_text(GTK_LABEL(updatesum_label),tmp);	/* normal cursor */	normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW);	gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor);	/* if we found a conflicting entry - delete it now */	if (marktodelete != -1) {			g_free(gtk_clist_get_row_data(clist,marktodelete));		gtk_clist_remove(clist,marktodelete);		show_dialog(ICO_WARN,text(81),T_OK,NULL,NULL,0);	}}void remove_imagepath_callback(GtkWidget *widget, GtkCList *clist) {GList *sel;gint row;	sel = clist->selection;	if (sel != NULL) {		row = GPOINTER_TO_INT(sel->data);		g_free(gtk_clist_get_row_data(clist,row));		gtk_clist_remove(clist,row);	} else {		show_dialog(ICO_INFO,text(77),T_OK,NULL,NULL,0);		}}/* draw hd-setup screen */void draw_hd_setup(GtkWidget *win) {GtkWidget *vbox;GtkWidget *scrolled_win;GtkWidget *f1,*l1;gchar *titles[2];gchar *data[2];GtkWidget *list;GtkCList  *clist;GList *loop;GtkWidget *tbl;GtkWidget *b1;GtkWidget *e1;gint row;#ifdef PRIV_COLS GtkStyle *style;GdkColor c;#endif	vbox = gtk_vbox_new(FALSE,0);	gtk_container_add(GTK_CONTAINER(win),vbox);	gtk_container_set_border_width(GTK_CONTAINER(vbox),10);	gtk_widget_show(vbox);	f1 = gtk_frame_new(text(40));	set_font_and_color(f1,BOLDFONT,NULL);	gtk_box_pack_start(GTK_BOX(vbox),f1,TRUE,TRUE,0);	gtk_widget_show(f1);	scrolled_win = gtk_scrolled_window_new (NULL, NULL);	gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5);	gtk_container_add(GTK_CONTAINER(f1),scrolled_win);	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),		GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC);	gtk_widget_show(scrolled_win);	titles[0] = text(41);	titles[1] = text(42);	list = gtk_clist_new_with_titles(2,titles);	gtk_widget_set_usize(GTK_WIDGET(list),0,tbf(150));	gtk_container_add (GTK_CONTAINER (scrolled_win), list);		clist = GTK_CLIST(list);	gtk_clist_set_column_auto_resize(clist, 1, TRUE);	clist_list = clist;#ifdef PRIV_COLS         gdk_color_parse(GTKLISTCOL,&c);        gdk_color_alloc(gtk_widget_get_colormap(list),&c);        style = gtk_style_copy(gtk_widget_get_style(list));        style->base[GTK_STATE_NORMAL] = c;        gtk_widget_set_style(GTK_WIDGET(list),style);#endif	gtk_clist_set_column_width(clist,0,tbf(300));	/* now fill list with current values */	loop = g_list_first(setupdata.image_dirs);	while (loop) {		data[0] = (gchar *)loop->data;		data[1] = " -"; 		row = gtk_clist_append(clist,data);		gtk_clist_set_row_data(clist,row,NULL);		loop = loop->next;	}	gtk_widget_show(list);	tbl = gtk_table_new(4,8,TRUE);	gtk_table_set_row_spacings(GTK_TABLE(tbl),5);	gtk_table_set_col_spacings(GTK_TABLE(tbl),5);	gtk_table_set_col_spacing(GTK_TABLE(tbl),1,10);	gtk_table_set_col_spacing(GTK_TABLE(tbl),2,10);	gtk_box_pack_start(GTK_BOX(vbox),tbl,FALSE,TRUE,10);	gtk_widget_show(tbl);	l1 = rightjust_gtk_label_new(text(43));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,3,0,1);	gtk_widget_show(l1);	f1 = gtk_frame_new(NULL);	gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN);	gtk_table_attach_defaults(GTK_TABLE(tbl),f1,3,6,0,1);	gtk_widget_show(f1);	l1 = gtk_label_new("");	updatesum_label = l1;	gtk_container_add(GTK_CONTAINER(f1),l1);	gtk_widget_show(l1);	b1 = gtk_button_new_with_label(text(44));	updatebutton = b1;	gtk_table_attach_defaults(GTK_TABLE(tbl),b1,6,8,0,1);	gtk_signal_connect (GTK_OBJECT (b1), "clicked",		GTK_SIGNAL_FUNC(update_imagepath_callback),clist);	gtk_widget_show(b1);	define_tooltip(b1,help(17));	l1 = rightjust_gtk_label_new(text(46));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,2,3);	gtk_widget_show(l1);	e1 = gtk_entry_new();	clist_entry = e1; 	gtk_signal_connect(GTK_OBJECT(e1), "activate",		GTK_SIGNAL_FUNC(entry_imagepath_callback),clist);	gtk_table_attach_defaults(GTK_TABLE(tbl),e1,2,6,2,3);	gtk_widget_show(e1);	b1 = gtk_button_new_with_label(text(45));	gtk_table_attach_defaults(GTK_TABLE(tbl),b1,6,8,2,3);	gtk_signal_connect (GTK_OBJECT (b1), "clicked",		GTK_SIGNAL_FUNC(button_imagepath_callback),NULL);	gtk_widget_show(b1);	define_tooltip(b1,help(18));	b1 = gtk_button_new_with_label(text(47));	gtk_table_attach_defaults(GTK_TABLE(tbl),b1,2,4,3,4); 	gtk_signal_connect(GTK_OBJECT(b1), "clicked",		GTK_SIGNAL_FUNC(entry_imagepath_callback),clist);	gtk_widget_show(b1);	define_tooltip(b1,help(19));	b1 = gtk_button_new_with_label(text(48));	gtk_table_attach_defaults(GTK_TABLE(tbl),b1,4,6,3,4); 	gtk_signal_connect(GTK_OBJECT(b1), "clicked",		GTK_SIGNAL_FUNC(remove_imagepath_callback),clist);	gtk_widget_show(b1);	define_tooltip(b1,help(20));}/* callbacks for misc-menu */void dspdevice_selected(GtkWidget *item, gchar *device) {	g_free(setupdata.dsp_device);	setupdata.dsp_device = g_strdup(device);	/* set dsp-test-button to active when we set a dsp-device */	if (strcmp(setupdata.dsp_device,"") != 0) {		gtk_widget_set_sensitive(btn_testdsp, TRUE);	} else {		gtk_widget_set_sensitive(btn_testdsp, FALSE);	}}void dsptest_callback(GtkWidget *widget, gpointer data) {	show_setup_dsptest();}void notifyvia_selected(GtkWidget *item, gpointer data) {	setupdata.notify_via = 		gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(item));}void notifyat_selected(GtkWidget *item, gpointer data) {	setupdata.notify_at = GPOINTER_TO_INT(data); }void cddb_entry1_callback(GtkWidget *widget, gpointer data) {gchar tmp[MAXLINE];		g_free(setupdata.cddb_host);	strcpy(tmp, gtk_entry_get_text(GTK_ENTRY(widget)));	strip_string(tmp);	setupdata.cddb_host = g_strdup(tmp);	gtk_entry_set_text(GTK_ENTRY(widget), tmp);	gtk_entry_select_region(GTK_ENTRY(widget), 0, 			GTK_ENTRY(widget)->text_length);}void cddb_entry2_callback(GtkWidget *widget, gpointer data) {gchar tmp[MAXLINE];		setupdata.cddb_port = atoi(gtk_entry_get_text(GTK_ENTRY(widget)));	g_snprintf(tmp, MAXLINE,"%d",setupdata.cddb_port);	gtk_entry_set_text(GTK_ENTRY(widget),tmp);	gtk_entry_select_region(GTK_ENTRY(widget), 0, 			GTK_ENTRY(widget)->text_length);}void logfile_entry_callback(GtkWidget *widget, gpointer data) {gchar tmp[MAXLINE];		g_free(setupdata.logfile);	strcpy(tmp, gtk_entry_get_text(GTK_ENTRY(widget)));	check_tilde(tmp);	setupdata.logfile = g_strdup(tmp);	gtk_entry_set_text(GTK_ENTRY(widget), tmp);	gtk_entry_select_region(GTK_ENTRY(widget), 0, 			GTK_ENTRY(widget)->text_length);}void logfile_browse_callback(GtkWidget *widget, GtkEntry *entry) {char tmp[MAXLINE];	show_file_selector(gtk_entry_get_text(entry),tmp);	if (strcmp(tmp,"") != 0) {		gtk_entry_set_text(entry,tmp);		g_free(setupdata.logfile);		setupdata.logfile = g_strdup(gtk_entry_get_text(entry));	}}void loglevel_selected(GtkWidget *item, gpointer level) {	setupdata.loglevel = GPOINTER_TO_INT(level);}void language_selected(GtkWidget *item, gpointer lang) {	setupdata.language = GPOINTER_TO_INT(lang);}/* draw misc-setup screen */void draw_misc_setup(GtkWidget *win) {GtkWidget *vbox;GtkWidget *f1,*l1,*b1,*e1;GtkWidget *tbl;GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GSList *group;GtkWidget *btn;GList *dsp;gint i;gint menuhistory, menuidx, menulang;gchar tmp[MAXLINE];	vbox = gtk_vbox_new(FALSE,0);	gtk_container_add(GTK_CONTAINER(win),vbox);	gtk_container_set_border_width(GTK_CONTAINER(vbox),10);	gtk_widget_show(vbox);	f1 = gtk_frame_new(text(49));	set_font_and_color(f1,BOLDFONT,NULL);	gtk_box_pack_start(GTK_BOX(vbox),f1,FALSE,TRUE,0);	gtk_widget_show(f1);	tbl = gtk_table_new(4,8,TRUE);	gtk_container_add (GTK_CONTAINER (f1), tbl);	gtk_table_set_col_spacings(GTK_TABLE(tbl),5);	gtk_table_set_col_spacing(GTK_TABLE(tbl),2,10);	gtk_widget_show(tbl);	l1 = rightjust_gtk_label_new(text(50));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,1,3,0,1);	gtk_widget_show(l1);	/* get a list of all dsp-devices */	dsp = get_dsp_devices();	omenu = gtk_option_menu_new ();	menu = gtk_menu_new();	menuidx = 0; menuhistory = 0;	/* "none"-setting */	menu_item = gtk_menu_item_new_with_label(text(82));	gtk_signal_connect(GTK_OBJECT(menu_item),		"activate", GTK_SIGNAL_FUNC(dspdevice_selected),		"");	gtk_menu_append (GTK_MENU (menu), menu_item);	if (strcmp(setupdata.dsp_device,"") == 0) { menuhistory = menuidx; }	menuidx++;	gtk_widget_show (menu_item);	while (dsp) {		menu_item = gtk_menu_item_new_with_label((gchar *)dsp->data);		gtk_signal_connect(GTK_OBJECT(menu_item),			"activate", GTK_SIGNAL_FUNC(dspdevice_selected),			(gchar *)dsp->data);		gtk_menu_append (GTK_MENU (menu), menu_item);		if (setupdata.dsp_device != NULL) {			if (strcmp(setupdata.dsp_device,(gchar *)dsp->data) == 0) {				menuhistory = menuidx;			}		}		menuidx++;		gtk_widget_show (menu_item);		dsp = dsp->next;	}		gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);	gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory);	gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,3,6,0,1);	gtk_widget_show(omenu);	define_tooltip(omenu,help(21));	b1 = gtk_button_new_with_label(text(51));	btn_testdsp = b1;	gtk_signal_connect (GTK_OBJECT (b1), "clicked",		GTK_SIGNAL_FUNC(dsptest_callback),NULL);	gtk_table_attach_defaults(GTK_TABLE(tbl),b1,6,7,0,1);	gtk_widget_show(b1);	define_tooltip(b1,help(22));	/* only allow test when device is set */	if (strcmp(setupdata.dsp_device,"") == 0) {		gtk_widget_set_sensitive(btn_testdsp, FALSE);	}	l1 = rightjust_gtk_label_new(text(52));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,1,3,1,2);	gtk_widget_show(l1);	btn = gtk_radio_button_new_with_label(NULL,text(53));	gtk_table_attach_defaults(GTK_TABLE(tbl),btn,3,5,1,2);	gtk_widget_show(btn);	group = gtk_radio_button_group (GTK_RADIO_BUTTON(btn));	btn = gtk_radio_button_new_with_label(group,text(54));	gtk_signal_connect(GTK_OBJECT(btn),"clicked",		GTK_SIGNAL_FUNC(notifyvia_selected),NULL);	gtk_table_attach_defaults(GTK_TABLE(tbl),btn,5,7,1,2);	gtk_widget_show(btn);	gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn),		setupdata.notify_via);		l1 = rightjust_gtk_label_new(text(55));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,1,3,2,3);	gtk_widget_show(l1);	btn = gtk_radio_button_new_with_label(NULL,text(56));	gtk_signal_connect(GTK_OBJECT(btn),"clicked",		GTK_SIGNAL_FUNC(notifyat_selected),GINT_TO_POINTER(0));	gtk_table_attach_defaults(GTK_TABLE(tbl),btn,3,5,2,3);	gtk_widget_show(btn);	if (setupdata.notify_at == 0) 		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn),1);	group = gtk_radio_button_group (GTK_RADIO_BUTTON(btn));	btn = gtk_radio_button_new_with_label(group,text(57));	gtk_signal_connect(GTK_OBJECT(btn),"clicked",		GTK_SIGNAL_FUNC(notifyat_selected),GINT_TO_POINTER(1));	gtk_table_attach_defaults(GTK_TABLE(tbl),btn,5,7,2,3);	gtk_widget_show(btn);	if (setupdata.notify_at == 1) 		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn),1);	group = gtk_radio_button_group (GTK_RADIO_BUTTON(btn));	btn = gtk_radio_button_new_with_label(group,text(58));	gtk_signal_connect(GTK_OBJECT(btn),"clicked",		GTK_SIGNAL_FUNC(notifyat_selected),GINT_TO_POINTER(2));	gtk_table_attach_defaults(GTK_TABLE(tbl),btn,3,5,3,4);	gtk_widget_show(btn);	if (setupdata.notify_at == 2) 		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn),1);	group = gtk_radio_button_group (GTK_RADIO_BUTTON(btn));	btn = gtk_radio_button_new_with_label(group,text(59));	gtk_table_attach_defaults(GTK_TABLE(tbl),btn,5,7,3,4);	gtk_signal_connect(GTK_OBJECT(btn),"clicked",		GTK_SIGNAL_FUNC(notifyat_selected),GINT_TO_POINTER(3));	gtk_widget_show(btn);	if (setupdata.notify_at == 3) 		gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(btn),1);		f1 = gtk_frame_new(text(60));	set_font_and_color(f1,BOLDFONT,NULL);

⌨️ 快捷键说明

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