📄 create.c
字号:
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 + -