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

📄 create.c

📁 -一个LINUX下的使用方&#63845 的CD-ROM刻录软件,开放源码
💻 C
📖 第 1 页 / 共 5 页
字号:
                nrtracks++;                sel = sel->next;        }        /* no tracks selected */        if (nrtracks == 0) {                show_dialog(ICO_WARN,text(302),T_OK,NULL,NULL,0);                return;        }	/* now really remove from list */	loop = g_list_first(writelist);	while (loop) {		loop2 = loop->next;		if (loop->data == NULL) {			writelist = g_list_remove_link(writelist, loop);		}		loop = loop2;	}	redraw_writelist(cdlist,cdlist_l1);	fill_write_tracks();}void write_add_tracks(GtkWidget *widget, gpointer data) {gint nrtracks;GList *sel;gint row;gchar tmp[MAXLINE];        nrtracks = 0;	/* get the list of track-filenames to add to the write-list */        sel = imglist->selection;        while (sel) {                row = GPOINTER_TO_INT(sel->data);                if (get_trackname_from_row(row, tmp) == 0) {                        /* we get now the full track-filename in tmp */			/* add to list */			writelist = g_list_append(writelist,g_strdup(tmp));		}                nrtracks++;                sel = sel->next;        }        /* no tracks selected */        if (nrtracks == 0) {                show_dialog(ICO_WARN,text(302),T_OK,NULL,NULL,0);                return;        }	redraw_writelist(cdlist,cdlist_l1);	fill_write_tracks();}/* this is the callback of a timeout  - we need that to   silently update the track-listing after the user reordered the list */gint redraw_tracklist_callback(gpointer data) {	redraw_writelist(cdlist,cdlist_l1);	/* call this only once */	return(FALSE);}/* called when you change order of entries in clist */void write_move_row(GtkWidget *clist, gint row1, gint row2, gpointer data) {GList *l1;	/* reorder memory-structure exactly like the clist does */	l1 = g_list_nth(writelist,row1);	if (row1 > row2) {		writelist = g_list_insert(writelist, l1->data, row2);		writelist = g_list_remove_link(writelist, l1);	} else {		writelist = g_list_insert(writelist, l1->data, row2+1);		writelist = g_list_remove_link(writelist, l1);	}	/* set timeout to update the clist */	gtk_timeout_add(10, redraw_tracklist_callback, NULL);}/* accept tracklayout button */void accept_layout_clicked(GtkWidget *widget, gpointer notebook) {GList *loop;track_read_param_t *trackparam;gchar *track;gint count,cdsize;image_files_t *entry;gfloat per;	/* see if we have anything selected at all */	if (g_list_first(writelist) == NULL) {		show_dialog(ICO_WARN,text(315),T_OK,NULL,NULL,0);		return;	}	/* fill the trackreadset with our tracks to write */	/* clear first */	clear_trackreadset();        cdsize = 0;	count = 1;        trackreadset.tocfile=g_strdup("");        loop = g_list_first(writelist);        while (loop) {                track = loop->data;                entry = get_entry_from_imagelist(track);                if (entry == NULL) {                        /* should never happen */                        loop = loop->next;                        continue;                }                /* allocate memory */                trackparam = g_new0(track_read_param_t,1);                trackparam->trackinfo_index = -1;                trackparam->starttrack = count;                trackparam->endtrack = 0;		if (entry->type == 1) {			/* audio */			trackparam->tracktype = 1;			trackparam->frames = (gint) (entry->size)/CDDAFRAME;		} else {			/* data */			trackparam->tracktype = 0;			trackparam->frames = (gint) (entry->size)/DATASECTORSIZE;		}		trackparam->kbyte = (gint) (entry->size)/1024;			g_free(trackparam->trackfile);		trackparam->trackfile = g_strdup(track);		cdsize += trackparam->kbyte;                trackreadset.nrtracks++;        		count++;		trackreadset.trackparams = g_list_append(			trackreadset.trackparams, trackparam);                loop = loop->next;        }        trackreadset.cdsize = cdsize;        /* ok..all data read - now calculate the percentages */        loop = g_list_first(trackreadset.trackparams);        while(loop) {                trackparam = loop->data;                per = (gfloat)trackparam->kbyte / cdsize;                trackparam->percent = per;                loop = loop->next;        }        if (debug > 1)                 print_trackreadset();	/* fill listing on page 1 */	fill_writelist2(imglist2,imglist_l2);	/* now change notebook tab back to page 1 */	gtk_notebook_set_page(GTK_NOTEBOOK(notebook), 0);}void fill_write_tracks() {gchar tmp[MAXLINE], tmp2[MAXLINE];gchar titlestr[MAXLINE];GList *loop;GtkStyle *style;gchar *data[2];GdkPixmap *pixmap1, *pixmap2, *pixmap3;GdkBitmap *mask1, *mask2, *mask3;gchar basename[MAXLINE], imgdir[MAXLINE], fname[MAXLINE], *p;gint lcount, count;image_files_t *entry;        /* clean up first */        gtk_clist_clear(imglist);        style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(imglist)));        pixmap1 = gdk_pixmap_create_from_xpm_d(imglist->clist_window,                &mask1, &style->bg[GTK_STATE_NORMAL],(gchar **)minidata_xpm);        pixmap2 = gdk_pixmap_create_from_xpm_d(imglist->clist_window,                &mask2, &style->bg[GTK_STATE_NORMAL],(gchar **)miniaudio_xpm);        pixmap3 = gdk_pixmap_create_from_xpm_d(imglist->clist_window,                &mask3, &style->bg[GTK_STATE_NORMAL],(gchar **)mininodata_xpm);        data[0] = NULL;        strcpy(imgdir,"");        count = 1;        lcount = 0;        /* check image-selector */        if (curset.image_index != -1) {                /* no automatic setting? */                strncpy(imgdir,(gchar *)g_list_nth_data(setupdata.image_dirs,                        curset.image_index), MAXLINE);        }        loop = g_list_first(imagelist);        while (loop) {                entry = loop->data;                /* get the base-dirname */                strncpy(basename,entry->path,MAXLINE);                  p = rindex(basename,'/');                *p = '\0';                if (strcmp(basename,"") == 0) {                        strcpy(basename,"/");                }                strcpy(fname, p+1);                if (strcmp(basename,imgdir) != 0 && imgdir[0] != '\0') {                        /* skip not selected dirs */                        loop = loop->next;                        continue;                }                if (entry->readable == 0) {                        /* dont display not readable files */                        loop = loop->next;                        continue;                }                strcpy(titlestr,"");		assign_trackname(titlestr, entry);                /* no title found - so use filename as title */                if (strcmp(titlestr,"") == 0) {                        strcpy(titlestr,fname);                }                /* iso9600-track/ unknown  */                if (entry->type == 0 || entry->type == 3) {                        convert_frames2mbstring((entry->size)/DATASECTORSIZE,                                tmp2);                        g_snprintf(tmp,MAXLINE,"%2d. %s [%s] (%s)",                                count, titlestr, tmp2, entry->path);                        data[1] = tmp;                        gtk_clist_append(imglist,data);			if (is_on_writelist(entry->path)) {				/* already on writelist? change color */				set_clist_row_color(imglist,					lcount,SELECTEDCLISTCOL);			}                        if (entry->type == 0) {                                gtk_clist_set_pixmap(imglist,lcount,0,pixmap1,mask1);                           } else {                                gtk_clist_set_pixmap(imglist,lcount,0,pixmap3,mask3);                           }                        count++;                        lcount++;                }                /* valid wav-file */                if (entry->type == 1) {                        convert_frames2minstring((entry->size)/CDDAFRAME, tmp2);                        g_snprintf(tmp,MAXLINE,"%2d. %s [%s] (%s)",                                count, titlestr, tmp2, entry->path);                        data[1] = tmp;                        gtk_clist_append(imglist,data);			if (is_on_writelist(entry->path)) {				/* already on writelist? change color */				set_clist_row_color(imglist,					lcount,SELECTEDCLISTCOL);			}                        gtk_clist_set_pixmap(imglist,lcount,0,pixmap2,mask2);                           lcount++;                        count++;                }                       loop = loop->next;        }        /* nothing selected - no size of files */        convert_kbytes2mbminstring(0, tmp);        gtk_entry_set_text(GTK_ENTRY(imglist_l1), tmp);  }/* draw the write-tracks menu */void draw_write_tracks() {gchar tmp[MAXLINE];GtkWidget *hbox, *vbox;GtkWidget *f1,*f2;GtkWidget *b1, *btn;GSList *group;GtkWidget *e1, *check;GtkWidget *l1;GtkWidget *tbl;GtkWidget *sep;GtkWidget *omenu;GtkWidget *menu;GtkWidget *menu_item;gint cdrtypes[] = CDR_TYPES_MIN;gint i, tmpval;gint menuidx, menuhistory;GtkWidget *notebook;gchar *titles[2];GtkWidget *scrolled_win, *img_list, *cd_list, *img_list2;        /* 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(2,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_image(0, tbl);        devices_setup_write(1, tbl);        gtk_widget_show(actionspace);	/* notebook tabs */        notebook = gtk_notebook_new();        gtk_notebook_set_tab_pos (GTK_NOTEBOOK (notebook), GTK_POS_TOP);        gtk_box_pack_start(GTK_BOX(actionspace),notebook,TRUE,TRUE,2);        gtk_widget_show(notebook);	vbox = gtk_vbox_new(FALSE,0);	l1 = gtk_label_new(text(307));	gtk_notebook_append_page(GTK_NOTEBOOK (notebook),vbox,l1);	gtk_widget_show(vbox);        /* left and right info-frames */        tbl = gtk_table_new(1,2,TRUE);        gtk_container_set_border_width(GTK_CONTAINER (tbl),5);        gtk_table_set_col_spacings(GTK_TABLE(tbl),5);        gtk_box_pack_start(GTK_BOX(vbox),tbl,TRUE,TRUE,0);        gtk_widget_show(tbl);        f1 = gtk_frame_new(text(306));        set_font_and_color(f1,BOLDFONT,NULL);        gtk_table_attach_defaults(GTK_TABLE(tbl),f1,0,1,0,1);        gtk_widget_show(f1);        f2 = gtk_frame_new(text(169));        set_font_and_color(f2,BOLDFONT,NULL);        gtk_table_attach_defaults(GTK_TABLE(tbl),f2,1,2,0,1);        gtk_widget_show(f2);        /* button bar at the bottom */        hbox = gtk_hbox_new(TRUE,10);        gtk_box_pack_start(GTK_BOX(vbox),hbox,FALSE,TRUE,5);        gtk_widget_show(hbox);        b1 = gtk_button_new_with_label(text(307));        gtk_box_pack_start(GTK_BOX(hbox),b1,TRUE,TRUE,10);        gtk_widget_show(b1);        gtk_signal_connect(GTK_OBJECT(b1), "clicked",                GTK_SIGNAL_FUNC(writesometracks_clicked), NULL);        define_tooltip(b1,help(94));        b1 = gtk_button_new_with_label(text(308));        gtk_box_pack_start(GTK_BOX(hbox),b1,TRUE,TRUE,10);        gtk_widget_show(b1);        gtk_signal_connect(GTK_OBJECT(b1), "clicked",                GTK_SIGNAL_FUNC(fixate_clicked), NULL);        define_tooltip(b1,help(95));        b1 = gtk_button_new_with_label(text(171));        gtk_box_pack_start(GTK_BOX(hbox),b1,TRUE,TRUE,10);        gtk_widget_show(b1);        gtk_signal_connect(GTK_OBJECT(b1), "clicked",                GTK_SIGNAL_FUNC(blankcd_clicked), NULL);        define_tooltip(b1,help(64));	/* left info frame */        vbox = gtk_vbox_new(FALSE,0);        gtk_container_add(GTK_CONTAINER(f1),vbox);        gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);        gtk_widget_show(vbox);        scrolled_win = gtk_scrolled_window_n

⌨️ 快捷键说明

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