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

📄 duplicate.c

📁 -一个LINUX下的使用方&#63845 的CD-ROM刻录软件,开放源码
💻 C
📖 第 1 页 / 共 5 页
字号:
/* callbacks for devices_setup_read */void readdev_selected(GtkWidget *item, gpointer devnr) {GdkWindowAttr *win_attr;GdkCursor *cursor,*normal_cursor;	do_lock();	/* change cursor to watch */	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);	while (gtk_events_pending())		gtk_main_iteration();	curset.reader_devnr = GPOINTER_TO_INT(devnr);	if (curset.reader_devnr != -1) {		get_cd_toc_and_volid(curset.reader_devnr);	}	/* in which menu are we right now? */	/* info menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[0])) == 1) {		fill_cdlist();	}	/* info menu 2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[0])) == 1) {		fill_cdlist();	}	/* read menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[1])) == 1) {		fill_read_menu();	}	/* read menu 2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[1])) == 1) {		fill_read_tracks(0);	}	/* verify menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[2])) == 1) {		fill_verify_menu();	}	/* verify menu2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[2])) == 1) {		fill_verify_tracks(1);	}	/* write menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[4])) == 1) {		fill_write_menu();	}	/* write menu2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[5])) == 1) {		fill_write_tracks();	}	/* reset cursor */	normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW);	gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor);	do_unlock();}void readdev_speed(GtkWidget *item, GtkSpinButton *spin) {	curset.audioread_speed = gtk_spin_button_get_value_as_int(spin);}/* draw the device-setup-read line */void devices_setup_read(gint row, GtkWidget *tbl, gint showspeed) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *l1;GtkWidget *eject_btn, *eject_xpm;GtkWidget *load_btn, *load_xpm;GdkPixmap *pmap;GdkBitmap *mask;GtkStyle *style;gchar tmp[MAXLINE];GtkWidget *speed1;GtkObject *adj;gint menuidx, menuhistory;	/* no reader so far selected? set default primary reader */	if (curset.reader_devnr == -1) {		curset.reader_devnr = setupdata.readdev1_devnr;	}		if (curset.audioread_speed == -1) {		curset.audioread_speed = setupdata.audioread_speed;	}	/* read device */	l1 = rightjust_gtk_label_new(text(133));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,row,row+1);	gtk_widget_show(l1);	omenu = gtk_option_menu_new ();	menu = gtk_menu_new();	menuidx = 0; menuhistory = -1;	if (setupdata.readdev1_devnr != -1) {		if (convert_devnr2devstring(setupdata.readdev1_devnr,tmp) == 0) {			menu_item = gtk_menu_item_new_with_label(tmp);			gtk_signal_connect(GTK_OBJECT(menu_item),				"activate", GTK_SIGNAL_FUNC(readdev_selected),				GINT_TO_POINTER(setupdata.readdev1_devnr));			gtk_menu_append (GTK_MENU (menu), menu_item);			if (curset.reader_devnr == setupdata.readdev1_devnr) {				 menuhistory = menuidx;			}			menuidx++;			gtk_widget_show (menu_item);		}	}	if (setupdata.readdev2_devnr != -1 && 	    setupdata.readdev2_devnr != setupdata.readdev1_devnr) {		if (convert_devnr2devstring(setupdata.readdev2_devnr,tmp) == 0) {			menu_item = gtk_menu_item_new_with_label(tmp);			gtk_signal_connect(GTK_OBJECT(menu_item),				"activate", GTK_SIGNAL_FUNC(readdev_selected),				GINT_TO_POINTER(setupdata.readdev2_devnr));			gtk_menu_append (GTK_MENU (menu), menu_item);			if (curset.reader_devnr == setupdata.readdev2_devnr) {				 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 {		/* if we are here we have an invalid reader setting */		/* set to default */		curset.reader_devnr = setupdata.readdev1_devnr;		gtk_option_menu_set_history(GTK_OPTION_MENU (omenu), 0);	}	gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,12,row,row+1);	gtk_widget_show(omenu);	define_tooltip(omenu, help(42));	if (showspeed) { 		l1 = rightjust_gtk_label_new(text(136));		gtk_table_attach_defaults(GTK_TABLE(tbl),l1,12,15,row,row+1);		gtk_widget_show(l1);		adj = gtk_adjustment_new(0.0,0.0,64.0,1.0,1.0,1.0);		speed1 = gtk_spin_button_new(GTK_ADJUSTMENT(adj),0,0);		gtk_signal_connect (GTK_OBJECT (adj), "value_changed",			GTK_SIGNAL_FUNC (readdev_speed),GINT_TO_POINTER(speed1));		gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(speed1),1);		gtk_table_attach_defaults(GTK_TABLE(tbl),speed1,15,16,row,row+1);		if (curset.audioread_speed != -1) {			gtk_spin_button_set_value(GTK_SPIN_BUTTON(speed1),				(gfloat)curset.audioread_speed);		}		gtk_widget_show(speed1);		define_tooltip(speed1, help(43));	} else {		/* if not showing speed, show eject/load buttons */		gtk_widget_realize(tbl);		style = gtk_widget_get_style(tbl);		pmap = gdk_pixmap_create_from_xpm_d(tbl->window, &mask,			&style->bg[GTK_STATE_NORMAL], (gchar **) disc_eject);		eject_xpm = gtk_pixmap_new(pmap,mask);		eject_btn = gtk_button_new();		gtk_signal_connect (GTK_OBJECT (eject_btn), "clicked",			GTK_SIGNAL_FUNC (eject_clicked), GINT_TO_POINTER(0));		gtk_table_attach_defaults(GTK_TABLE(tbl),eject_btn,			14,15,row,row+1);		gtk_widget_show(eject_btn);		gtk_container_add(GTK_CONTAINER(eject_btn), eject_xpm);		gtk_widget_show(eject_xpm);		define_tooltip(eject_btn, help(78));		pmap = gdk_pixmap_create_from_xpm_d(tbl->window, &mask,			&style->bg[GTK_STATE_NORMAL], (gchar **) disc_load);		load_xpm = gtk_pixmap_new(pmap,mask);		load_btn = gtk_button_new();		gtk_signal_connect (GTK_OBJECT (load_btn), "clicked",			GTK_SIGNAL_FUNC (eject_clicked), GINT_TO_POINTER(1));		gtk_table_attach_defaults(GTK_TABLE(tbl),load_btn,			15,16,row,row+1);		gtk_widget_show(load_btn);		gtk_container_add(GTK_CONTAINER(load_btn), load_xpm);		gtk_widget_show(load_xpm);		define_tooltip(load_btn, help(79));	}}void imagedir_selected(GtkWidget *item, gpointer val) {GdkWindowAttr *win_attr;GdkCursor *cursor,*normal_cursor;	do_lock();	/* change cursor to watch */	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);	while (gtk_events_pending())		gtk_main_iteration();	curset.image_index = GPOINTER_TO_INT(val);	/* which sub-menu are we in? */	/* read menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[1])) == 1) {		fill_read_menu();	}	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[1])) == 1) {		fill_read_tracks(1);	}	/* verify menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[2])) == 1) {		fill_verify_menu();	}	/* verify menu2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[2])) == 1) {		fill_verify_tracks(0);	}	/* write menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[4])) == 1) {		fill_write_menu();	}	/* write menu2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[5])) == 1) {		fill_write_tracks();	}	/* delete menu? */	if (submenu == 1 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets[5])) == 1) {		fill_delete_menu();	}	/* delete menu2? */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[6])) == 1) {		fill_delete_menu();	}	/* master menu */	if (submenu == 2 && gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(side_widgets2[4])) == 1) {		fill_master_write_menu();	}	/* reset cursor */	normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW);	gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor);	do_unlock();}/* draw the device-setup-image line */void devices_setup_image(gint row, GtkWidget *tbl) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *l1;GList *loop;gchar tmp[MAXLINE];gint i, menuidx, menuhistory;	/* default curset.image_index is -1...so we are fine here */	/* image directory */	l1 = rightjust_gtk_label_new(text(134));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,row,row+1);	gtk_widget_show(l1);	omenu = gtk_option_menu_new ();	menu = gtk_menu_new();	/* automatic setting */	menuidx = 0; menuhistory = -1;	menu_item = gtk_menu_item_new_with_label(text(137));	gtk_signal_connect(GTK_OBJECT(menu_item),		"activate", GTK_SIGNAL_FUNC(imagedir_selected),		GINT_TO_POINTER(-1));	gtk_menu_append (GTK_MENU (menu), menu_item);	if (curset.image_index == -1) { menuhistory = menuidx; }	menuidx++;	gtk_widget_show (menu_item);	/* add image dirs */	i = 0;	loop = g_list_first(setupdata.image_dirs);	while(loop) {		strcpy(tmp,(gchar *)loop->data);		menu_item = gtk_menu_item_new_with_label(tmp);		gtk_signal_connect(GTK_OBJECT(menu_item),			"activate", GTK_SIGNAL_FUNC(imagedir_selected),			GINT_TO_POINTER(i));		gtk_menu_append (GTK_MENU (menu), menu_item);		if (curset.image_index == i) { menuhistory = menuidx; }		menuidx++;		gtk_widget_show (menu_item);		loop = loop->next;		i++;	}	gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);	if (menuhistory != -1) {		gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),menuhistory);	} else {		/* looks we got an invalid setting...set to default */		curset.image_index = -1;		gtk_option_menu_set_history(GTK_OPTION_MENU (omenu),0);	}	gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,12,row,row+1);	gtk_widget_show(omenu);	define_tooltip(omenu, help(44));}/* callbacks for devices_setup_write */void writedev_selected(GtkWidget *item, GtkWidget *omenu) {GdkWindowAttr *win_attr;GdkCursor *cursor,*normal_cursor;	/* this has no function yet, exept causing an eject on the	   write device */	do_lock();	/* change cursor to watch */	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);	while (gtk_events_pending())		gtk_main_iteration();	eject_cd(curset.writer_devnr);	/* now set the writer-device back to it real setting 	   (erasing the "Eject text") */	gtk_option_menu_set_history(GTK_OPTION_MENU (omenu), 0);		/* reset cursor */	normal_cursor = gdk_cursor_new (GDK_TOP_LEFT_ARROW);	gdk_window_set_cursor(GTK_WIDGET(toplevel)->window,normal_cursor);	do_unlock();}void writedev_speed(GtkWidget *item, GtkSpinButton *spin) {        curset.writer_speed = gtk_spin_button_get_value_as_int(spin);}/* draw the device-setup-write line */void devices_setup_write(gint row, GtkWidget *tbl) {GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;GtkWidget *l1;GtkWidget *speed1;GtkObject *adj;gchar tmp[MAXLINE];	/* we must have a writer defined here...so just set */	curset.writer_devnr = setupdata.writer_devnr;	if (curset.writer_speed == -1) {		curset.writer_speed = setupdata.writer_speed;	}		/* write device */	l1 = rightjust_gtk_label_new(text(135));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,4,row,row+1);	gtk_widget_show(l1);	omenu = gtk_option_menu_new ();	menu = gtk_menu_new();	if (convert_devnr2devstring(setupdata.writer_devnr,tmp) == 0) {		menu_item = gtk_menu_item_new_with_label(tmp);		gtk_menu_append (GTK_MENU (menu), menu_item);		gtk_widget_show (menu_item);		/* now add eject option here */		menu_item = gtk_menu_item_new_with_label(text(291));		gtk_signal_connect(GTK_OBJECT(menu_item),			"activate", GTK_SIGNAL_FUNC(writedev_selected),			omenu);			gtk_menu_append (GTK_MENU (menu), menu_item);		gtk_widget_show (menu_item);	}	gtk_option_menu_set_menu (GTK_OPTION_MENU (omenu), menu);	gtk_table_attach_defaults(GTK_TABLE(tbl),omenu,4,12,row,row+1);	gtk_widget_show(omenu);	define_tooltip(omenu, help(45));	l1 = rightjust_gtk_label_new(text(136));	gtk_table_attach_defaults(GTK_TABLE(tbl),l1,12,15,row,row+1);	gtk_widget_show(l1);	adj = gtk_adjustment_new(0.0,0.0,32.0,1.0,1.0,1.0);	speed1 = gtk_spin_button_new(GTK_ADJUSTMENT(adj),0,0);	gtk_signal_connect (GTK_OBJECT (adj), "value_changed",		GTK_SIGNAL_FUNC (writedev_speed),GINT_TO_POINTER(speed1));	gtk_spin_button_set_numeric(GTK_SPIN_BUTTON(speed1),1);	gtk_table_attach_defaults(GTK_TABLE(tbl),speed1,15,16,row,row+1);	if (curset.writer_speed != -1) {		gtk_spin_button_set_value(GTK_SPIN_BUTTON(speed1),			(gfloat)curset.writer_speed);	}	gtk_widget_show(speed1);	define_tooltip(speed1, help(46));}/* function to remove all selections on a clist */void undo_selections(GtkWidget *clist, gint row, gint column,	GdkEventButton *event, gpointer data) {	gtk_clist_unselect_all(GTK_CLIST(clist));}/* draw the cd-info-menu */void draw_info_menu() {GtkWidget *hbox, *vbox;GtkWidget *f1,*f2;GtkWidget *b1, *b_update;GtkWidget *e1;GtkWidget *l1;GtkWidget *tbl;GtkWidget *cd_list, *img_list;gchar *titles[2];GtkWidget *scrolled_win;	/* prepare draw area */	clear_actionspace();	f1 = gtk_frame_new(text(107));	set_font_and_color(f1,BOLDFONT,NULL);	gtk_box_pack_start(GTK_BOX(actionspace),f1,FALSE,FALSE,0);	gtk_widget_show(f1);	tbl = gtk_table_new(1,16,TRUE);		gtk_table_set_col_spacing(GTK_TABLE(tbl),3,10);	gtk_table_set_col_spacing(GTK_TABLE(tbl),14,5);	gtk_container_set_border_width(GTK_CONTAINER (tbl),5);	gtk_container_add(GTK_CONTAINER(f1),tbl);	gtk_widget_show(tbl);	devices_setup_read(0, tbl, 0);	/* left and right info-frames */	tbl = gtk_table_new(1,2,TRUE);	gtk_table_set_col_spacings(GTK_TABLE(tbl),10);	gtk_box_pack_start(GTK_BOX(actionspace),tbl,TRUE,TRUE,10);	gtk_widget_show(tbl);

⌨️ 快捷键说明

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