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

📄 menus.c

📁 -一个LINUX下的使用方&#63845 的CD-ROM刻录软件,开放源码
💻 C
📖 第 1 页 / 共 5 页
字号:
			/* error while reading */			return 1;		}		loop = loop->next;	}	/* save the toc file (not for read single tracks) */	if (strcmp(trackreadset.tocfile,"") != 0) {		write_copy_cd_toc_file(trackreadset.tocfile);	}	/* unset current active toc-file */	g_free(curset.tocfile);	curset.tocfile = g_strdup("");	/* no error reading tracks */	gtk_label_set_text(GTK_LABEL(readtrack_info_label), text(161));	gtk_label_set_text(GTK_LABEL(readtrack_small_info), text(165));	/* now set progressbars to 100% - elsewhere we may end up	   with 99% due rounding errors */	gtk_progress_set_percentage(GTK_PROGRESS(readtrack_pbar1),1.0);	gtk_progress_set_percentage(GTK_PROGRESS(readtrack_pbar2),1.0);	return 0;}/* called from cancel or ok button */ void show_readtrack_btn_press(GtkWidget *widget, gpointer data) {	/* read-process running? */	if (read_done == 999) {		read_abort_mark = 1;		/* abort our read-process */		kill_readcdda();		return;	}	/* cancel event */	if (GPOINTER_TO_INT(data) == -1) {		dialog_done = -1;		return;	}}void show_readtrack_save_press(GtkWidget *widget, gpointer data) {char tmp[MAXLINE];	/* show fileselector */	show_file_selector(SAVEREADTRACKS,tmp);		/* not cancel pressed? */	if (strcmp(tmp,"") != 0) {		if (save_text2file(tmp, readtrack_textview) == 0) {			show_dialog(ICO_INFO,text(270), T_OK, NULL, NULL, 0);		}	}}gint readtrack_dialog_delete_event(GtkWidget *widget, GdkEvent *event, 	gpointer data) {	/* read-process running? */	if (read_done == 999) {		read_abort_mark = 1;		/* abort our read-process */		kill_readcdda();		return(TRUE);	}	dialog_done = -1;        return(TRUE);}/* change the read-tracks menu according to view-setting */void viewmode_selected(GtkWidget *item, gpointer val) {		curset.proc_view = GPOINTER_TO_INT(val);	gtk_window_set_policy(GTK_WINDOW(viewmode_dialog), FALSE, TRUE, TRUE );	if (GPOINTER_TO_INT(val) == 2) {		/* extended view */		gtk_widget_show(readtrack_info_frame);		gtk_widget_show(readtrack_info_tbl);		gtk_widget_show(viewmode_scrolled);		gtk_widget_show(readtrack_savebutton);		gtk_widget_hide(readtrack_small_info);		gtk_widget_hide(readtrack_small_info2);	} else if (GPOINTER_TO_INT(val) == 1) {		/* normal view */		gtk_widget_show(readtrack_info_frame);		gtk_widget_show(readtrack_info_tbl);		gtk_widget_hide(viewmode_scrolled);		gtk_widget_hide(readtrack_savebutton);		gtk_widget_hide(readtrack_small_info);		gtk_widget_hide(readtrack_small_info2);	} else {		/* small view */		gtk_widget_hide(readtrack_info_frame);		gtk_widget_hide(readtrack_info_tbl);		gtk_widget_hide(viewmode_scrolled);		gtk_widget_hide(readtrack_savebutton);		gtk_widget_show(readtrack_small_info);		gtk_widget_show(readtrack_small_info2);	}	while (gtk_events_pending())		gtk_main_iteration();	gtk_window_set_policy(GTK_WINDOW(viewmode_dialog), FALSE, TRUE, FALSE);}/* popup a modal window, set cursor to watch, trigger read tracks    and return 0 if all ok, -1 if not or    when cancel or delete_event found.   Centers automatically above the toplevel-widow */gint show_and_do_read_tracks(gint devnr, gint bulk) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *dialog;GtkWidget *l1;GtkWidget *button1, *button2;GtkWidget *box1,*box2,*txt;GtkWidget *f1, *tbl;GtkWidget *b1_sep, *lbl;GtkWidget *scrolled_win;gint xpos, ypos;gint xsize, ysize;GdkCursor *cursor,*normal_cursor;GtkRequisition rq;GdkWindowAttr *win_attr;GtkAdjustment *adj1, *adj2;GtkWidget *pbar1, *pbar2;gint i, menuidx, menuhistory;	/* if another dialog is running, ignore */	if (dialog_done == 999) {		return -1;	}	dodebug(8, "displaying show_and_do_read_tracks\n");		/* mark our dialog as running */	dialog_done = 999;	/* create new window and position it relative to the main window */        dialog = gtk_window_new(GTK_WINDOW_DIALOG);	viewmode_dialog = dialog;	gtk_window_set_title(GTK_WINDOW(dialog),text(2));	gtk_widget_set_usize(dialog,tbf(340),0);	/* make sure our window is always on top */	gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(toplevel));        gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",                GTK_SIGNAL_FUNC (readtrack_dialog_delete_event), 		(gpointer) dialog);	/* create layout for dialog */        box1 = gtk_vbox_new(FALSE,5);	gtk_container_set_border_width (GTK_CONTAINER (box1), 5);        gtk_container_add(GTK_CONTAINER(dialog),box1);	f1 = gtk_frame_new(NULL);	readtrack_info_frame = f1;	gtk_frame_set_shadow_type(GTK_FRAME(f1),GTK_SHADOW_IN);	gtk_widget_set_usize(f1,0,36);	gtk_box_pack_start(GTK_BOX(box1),f1,FALSE,TRUE,5);	if (curset.proc_view > 0) 		gtk_widget_show(f1);	lbl = gtk_label_new("");	readtrack_info_label = lbl;	gtk_container_add(GTK_CONTAINER(f1), lbl);	gtk_misc_set_alignment(GTK_MISC(lbl),0.5,0.5);	gtk_misc_set_padding(GTK_MISC(lbl),10,0);	gtk_widget_show(lbl);	tbl = gtk_table_new(2, 10, TRUE);	readtrack_info_tbl = tbl;	gtk_table_set_col_spacing(GTK_TABLE(tbl),1,10);	gtk_table_set_row_spacings(GTK_TABLE(tbl),5);	gtk_box_pack_start(GTK_BOX(box1),tbl,FALSE,TRUE,5);	if (curset.proc_view > 0) 		gtk_widget_show(tbl);	l1 = rightjust_gtk_label_new(text(150));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,0,1);	gtk_widget_show(l1);	adj1 = (GtkAdjustment *)gtk_adjustment_new(0, 0, 100, 0, 0, 0);	pbar1 = gtk_progress_bar_new_with_adjustment(adj1);	readtrack_pbar1 = pbar1;	gtk_progress_set_format_string(GTK_PROGRESS(pbar1),"%p%%");	gtk_progress_set_show_text(GTK_PROGRESS(pbar1),TRUE);	gtk_table_attach_defaults(GTK_TABLE(tbl),pbar1,2,10,0,1);	gtk_widget_show(pbar1);	l1 = rightjust_gtk_label_new(text(151));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,1,2);	gtk_widget_show(l1);	adj2 = (GtkAdjustment *)gtk_adjustment_new(0, 0, 100, 0, 0, 0);	pbar2 = gtk_progress_bar_new_with_adjustment(adj2);	readtrack_pbar2 = pbar2;	gtk_progress_set_format_string(GTK_PROGRESS(pbar2),"%p%%");	gtk_progress_set_show_text(GTK_PROGRESS(pbar2),TRUE);	gtk_table_attach_defaults(GTK_TABLE(tbl),pbar2,2,10,1,2);	gtk_widget_show(pbar2);	tbl = gtk_table_new(1, 10, TRUE);	gtk_table_set_col_spacing(GTK_TABLE(tbl),6,10);	gtk_table_set_row_spacings(GTK_TABLE(tbl),5);	gtk_box_pack_start(GTK_BOX(box1),tbl,FALSE,TRUE,0);	gtk_widget_show(tbl);	lbl = gtk_label_new("");	readtrack_small_info = lbl;	gtk_table_attach_defaults(GTK_TABLE(tbl),lbl,0,3,0,1);	if (curset.proc_view == 0) 		gtk_widget_show(lbl);	lbl = gtk_label_new("");	readtrack_small_info2 = lbl;	gtk_table_attach_defaults(GTK_TABLE(tbl),lbl,3,5,0,1);	if (curset.proc_view == 0) 		gtk_widget_show(lbl);	l1 = rightjust_gtk_label_new(text(152));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,5,7,0,1);	gtk_widget_show(l1);	omenu = gtk_option_menu_new();	menu = gtk_menu_new();	menuidx = 0; menuhistory = -1;	for (i=0; i<3; i++) {		menu_item = gtk_menu_item_new_with_label(text(153+i));		gtk_signal_connect(GTK_OBJECT(menu_item),			"activate", GTK_SIGNAL_FUNC(viewmode_selected),			GINT_TO_POINTER(i));		gtk_menu_append (GTK_MENU (menu), menu_item);		if (curset.proc_view == i) { menuhistory = menuidx; }		menuidx++;		gtk_widget_show (menu_item);	}	gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);	if (menuhistory != -1) {		gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory);	} else {		curset.proc_view = 1;		gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),1);	}	gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,7,10,0,1);	gtk_widget_show(omenu);	scrolled_win = gtk_scrolled_window_new (NULL, NULL);	viewmode_scrolled = scrolled_win;	gtk_container_set_border_width (GTK_CONTAINER (scrolled_win), 5);	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),			GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);	gtk_box_pack_start(GTK_BOX(box1),scrolled_win,TRUE,TRUE,0);	/* show only in extended view */	if (curset.proc_view == 2) 		gtk_widget_show(scrolled_win);	txt = gtk_text_new(NULL,NULL);	readtrack_textview = txt;	gtk_text_set_editable(GTK_TEXT(txt),FALSE);	gtk_text_set_word_wrap(GTK_TEXT(txt),TRUE);	gtk_container_add(GTK_CONTAINER(scrolled_win), txt);	gtk_widget_show(txt);	gtk_widget_show(box1);	b1_sep = gtk_hseparator_new();	gtk_box_pack_start(GTK_BOX(box1),b1_sep,FALSE,TRUE,0);	gtk_widget_show(b1_sep);	box2 = gtk_hbox_new(FALSE,0);	gtk_box_pack_start(GTK_BOX(box1),box2,FALSE,TRUE,10);	gtk_widget_show(box2);	button1 = gtk_button_new_with_label(T_CANCEL);	readtrack_button = button1;	gtk_box_pack_start(GTK_BOX(box2),button1,TRUE,TRUE,10);	gtk_widget_show(button1);	GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);	gtk_widget_grab_default (button1);	gtk_signal_connect(GTK_OBJECT(button1),"clicked",		GTK_SIGNAL_FUNC(show_readtrack_btn_press), GINT_TO_POINTER(-1));	button2 = gtk_button_new_with_label(text(162));	readtrack_savebutton = button2;	gtk_box_pack_start(GTK_BOX(box2),button2,TRUE,TRUE,10);	GTK_WIDGET_SET_FLAGS (button2, GTK_CAN_DEFAULT);	gtk_signal_connect(GTK_OBJECT(button2),"clicked",		GTK_SIGNAL_FUNC(show_readtrack_save_press), GINT_TO_POINTER(-1));	/* show only in extended view */	if (curset.proc_view == 2) 		gtk_widget_show(button2);	/* grab cursor and change to watch */        gtk_grab_add(dialog);	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);	/* only center window when toplevel visible */	if ( GTK_WIDGET_VISIBLE(toplevel)) {        	gtk_window_position(GTK_WINDOW(dialog),GTK_WIN_POS_NONE);        	gdk_window_get_origin(GTK_WIDGET(toplevel)->window,&xpos,&ypos);        	gdk_window_get_size(GTK_WIDGET(toplevel)->window,&xsize,&ysize);		gtk_widget_size_request(dialog,&rq);        	gtk_widget_set_uposition(GTK_WIDGET(dialog),xpos+xsize/2-rq.width/2,ypos+ysize/2-rq.height/2);	}	gtk_widget_show(dialog);	/* here is the action */	if (bulk == 0) {		/* read all selected tracks one at a time */		start_read_action(devnr);	} else {		/* use bulk mode of cdda2wav */		start_read_action_bulk(devnr);	}	/* update image-dir-lists */	scan_imagedirs();	/* when done with reading rename button to OK */	gtk_label_set_text(GTK_LABEL(GTK_BIN(readtrack_button)->child),T_OK);		dobeep(1);	/* now wait until button is pressed */	while (dialog_done == 999) {		wait_and_process_events();	}        gtk_grab_remove(GTK_WIDGET(dialog));	normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW);        gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor);	/* remove dialog window */        gtk_widget_destroy(dialog);	return dialog_done;}/* popup a modal window, set cursor to watch, return path or NULL-string    when cancel or delete_event found.   Centers automatically above the toplevel-widow */void show_device_detail(gint devnr) {GtkWidget *dialog;GtkWidget *button1;GtkWidget *box1,*box2,*txt;GtkWidget *f1;GtkWidget *scrolled_win;gint xpos, ypos;gint xsize, ysize;GdkCursor *cursor,*normal_cursor;GtkRequisition rq;GdkWindowAttr *win_attr;	/* if another dialog is running, ignore */	if (dialog_done == 999) {		return;	}	dodebug(8, "displaying show_device_detail\n");	/* mark our dialog as running */	dialog_done = 999;	/* create new window and position it relative to the main window */        dialog = gtk_window_new(GTK_WINDOW_DIALOG);	gtk_window_set_title(GTK_WINDOW(dialog),text(2));	gtk_widget_set_usize(dialog,tbf(500),tbf(300)); 	/* make sure our window is always on top */	gtk_window_set_transient_for(GTK_WINDOW(dialog),GTK_WINDOW(toplevel));        gtk_signal_connect (GTK_OBJECT (dialog), "delete_event",                GTK_SIGNAL_FUNC (dialog_delete_event), (gpointer) dialog);	/* create layout for dialog */        box1 = gtk_vbox_new(FALSE,0);	gtk_container_set_border_width (GTK_CONTAINER (box1), 5);        gtk_container_add(GTK_CONTAINER(dialog),box1);	f1 = gtk_frame_new(text(166));	set_font_and_color(f1,BOLDFONT,NULL);	gtk_box_pack_start(GTK_BOX(box1),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_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win),			GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);	gtk_container_add(GTK_CONTAINER(f1),scrolled_win);	gtk_widget_show(scrolled_win);		txt = gtk_text_new(NULL,NULL);	gtk_text_set_editable(GTK_TEXT(txt),FALSE);	gtk_text_set_word_wrap(GTK_TEXT(txt),TRUE);	gtk_container_add(GTK_CONTAINER(scrolled_win), txt);	gtk_widget_show(txt);	gtk_widget_show(box1);	box2 = gtk_hbox_new(FALSE,0);	gtk_box_pack_start(GTK_BOX(box1),box2,FALSE,TRUE,5);	gtk_widget_show(box2);	button1 = gtk_button_new_with_label(T_OK);	gtk_box_pack_start(GTK_BOX(box2),button1,TRUE,TRUE,10);	gtk_widget_show(button1);	GTK_WIDGET_SET_FLAGS (button1, GTK_CAN_DEFAULT);	gtk_signal_connect(GTK_OBJECT(button1),"clicked",		GTK_SIGNAL_FUNC(dialog_btn_press), GINT_TO_POINTER(0));	/* grab cursor and change to watch */        gtk_grab_add(dialog);	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);	/* only center window when toplevel visible */	if ( GTK_WIDGET_VISIBLE(toplevel)) {        	gtk_window_position(GTK_WINDOW(dialog),GTK_WIN_POS_NONE);        	gdk_window_get_origin(GTK_WIDGET(toplevel)->window,&xpos,&ypos);        	gdk_window_get_size(GTK_WIDGET(toplevel)->window,&xsize,&ysize);		gtk_widget_size_request(dialog,&rq);        	gtk_widget_set_uposition(GTK_WIDGET(dialog),xpos+xsize/2-rq.width/2,ypos+ysize/2-rq.height/2);	}	/* now fill text-widget with infos */

⌨️ 快捷键说明

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