📄 create.c
字号:
l1 = rightjust_gtk_label_new(text(105)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,2,3); gtk_widget_show(l1); e1 = gtk_entry_new(); vrylist_l3 = e1; gtk_entry_set_editable(GTK_ENTRY(e1),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,2,8,2,3); gtk_widget_show(e1); l1 = rightjust_gtk_label_new(text(145)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,3,4); gtk_widget_show(l1); e1 = gtk_entry_new(); vrylist_l4 = e1; gtk_entry_set_editable(GTK_ENTRY(e1),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,2,8,3,4); gtk_widget_show(e1); /* options frame */ vbox = gtk_vbox_new(FALSE,0); gtk_container_add(GTK_CONTAINER(f3),vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 5); gtk_widget_show(vbox); tbl = gtk_table_new(2,8,TRUE); gtk_table_set_col_spacings(GTK_TABLE(tbl),10); gtk_box_pack_start(GTK_BOX(vbox),tbl,FALSE,FALSE,10); gtk_widget_show(tbl); check = gtk_check_button_new_with_label(text(234)); gtk_signal_connect(GTK_OBJECT(check),"clicked", GTK_SIGNAL_FUNC(verifyoptions_selected),GINT_TO_POINTER(0)); gtk_table_attach_defaults(GTK_TABLE(tbl),check,1,8,0,1); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), curset.noaudioverify); gtk_widget_show(check); define_tooltip(check, help(53)); check = gtk_check_button_new_with_label(text(236)); gtk_signal_connect(GTK_OBJECT(check),"clicked", GTK_SIGNAL_FUNC(verifyoptions_selected),GINT_TO_POINTER(1)); gtk_table_attach_defaults(GTK_TABLE(tbl),check,1,8,1,2); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(check), curset.verifyfailabort); gtk_widget_show(check); define_tooltip(check, help(54)); /* right frame */ vbox = gtk_vbox_new(FALSE,0); gtk_container_add(GTK_CONTAINER(f2),vbox); gtk_container_set_border_width (GTK_CONTAINER (vbox), 10); gtk_widget_show(vbox); scrolled_win = gtk_scrolled_window_new (NULL, NULL); gtk_box_pack_start(GTK_BOX(vbox),scrolled_win,TRUE,TRUE,0); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_win), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); gtk_widget_show(scrolled_win); titles[0] = g_strdup(""); titles[1] = text(102); img_list = gtk_clist_new_with_titles(2,titles); gtk_container_add (GTK_CONTAINER (scrolled_win), img_list); imglist = GTK_CLIST(img_list); gtk_signal_connect(GTK_OBJECT(imglist), "select_row", GTK_SIGNAL_FUNC(verify_select_row),NULL); gtk_signal_connect(GTK_OBJECT(imglist), "unselect_row", GTK_SIGNAL_FUNC(verify_select_row),NULL); gtk_clist_set_column_width(imglist, 0, 16); gtk_clist_set_column_auto_resize(imglist, 1, TRUE); if (setupdata.option_selectionmode == 0) { gtk_clist_set_selection_mode (imglist, GTK_SELECTION_MULTIPLE); } else { gtk_clist_set_selection_mode (imglist, GTK_SELECTION_EXTENDED); } gtk_widget_show(img_list); gtk_widget_realize(img_list); tbl = gtk_table_new(1,8,TRUE); gtk_table_set_row_spacings(GTK_TABLE(tbl),10); gtk_table_set_col_spacings(GTK_TABLE(tbl),10); gtk_box_pack_start(GTK_BOX(vbox),tbl,FALSE,FALSE,10); gtk_widget_show(tbl); l1 = rightjust_gtk_label_new(text(300)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,0,1); gtk_widget_show(l1); e1 = gtk_entry_new(); imglist_l1 = e1; gtk_entry_set_editable(GTK_ENTRY(e1),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,2,8,0,1); gtk_widget_show(e1); gtk_widget_show(actionspace); /* fill entries */ fill_verify_tracks(0);}/* callback for write button */void writesometracks_clicked(GtkWidget *widget, gpointer data) {gint ret, stat;gint spaceneededoncd; /* no cd-writer defined */ if (curset.writer_devnr == -1) { show_dialog(ICO_ERROR,text(204), T_OK, NULL, NULL, 0); return; } /* see if we have anything selected at all */ if (g_list_first(trackreadset.trackparams) == NULL) { show_dialog(ICO_WARN,text(315),T_OK,NULL,NULL,0); return; } spaceneededoncd = (trackreadset.cdsize*1024)/CDDAFRAME; /* first check if all tracks we need are available on hd */ /* dont check for file sizes, we assume the user did not modify them since the last update of the imagelist */ stat = check_write_files(1); switch(stat) { /* files with wrong size */ case 1: break; /* files missing */ case 2: show_dialog(ICO_ERROR,text(316),T_OK,NULL,NULL,0); return; /* no permission/invalid */ case 3: show_dialog(ICO_ERROR,text(201),T_OK,NULL,NULL,0); return; } /* check if enough space on cd-r? */ if (spaceneededoncd > (curset.cdrtype*60*75)) { ret = show_dialog(ICO_WARN,text(278),T_ANYWAY,T_CANCEL,NULL,1); if (ret == 1) { /* aborted */ return; } } /* ok, now we are sure that all tracks are fine ...prompt for CD-R */ ret = show_dialog(ICO_INFO,text(202),T_OK,T_CANCEL,NULL,0); if (ret != 0) { return; } /* start writing */ show_and_do_write_tracks(curset.writer_devnr, -1, 0);}/* callback for fixate cdr */void fixate_clicked(GtkWidget *widget, gpointer data) {gint ret; /* no cd-writer defined */ if (curset.writer_devnr == -1) { show_dialog(ICO_ERROR,text(204), T_OK, NULL, NULL, 0); return; } /* prompt for CD-R */ ret = show_dialog(ICO_INFO,text(202),T_OK,T_CANCEL,NULL,0); if (ret != 0) { return; } /* start fixating */ show_and_do_write_tracks(curset.writer_devnr, -1, 2);}/* redraw the selected-tracks list */void redraw_writelist(GtkCList *llist, GtkWidget *lentry) {GList *loop;gchar *track;gchar tmp[MAXLINE];gchar tmp2[MAXLINE];gchar titlestr[MAXLINE];GtkStyle *style;gchar *data[2];GdkPixmap *pixmap1, *pixmap2, *pixmap3;GdkBitmap *mask1, *mask2, *mask3;gchar basename[MAXLINE], fname[MAXLINE], *p;image_files_t *entry;gint count,lcount;gint sizecount; /* clean up first */ gtk_clist_clear(llist); style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(imglist))); pixmap1 = gdk_pixmap_create_from_xpm_d(llist->clist_window, &mask1, &style->bg[GTK_STATE_NORMAL],(gchar **)minidata_xpm); pixmap2 = gdk_pixmap_create_from_xpm_d(llist->clist_window, &mask2, &style->bg[GTK_STATE_NORMAL],(gchar **)miniaudio_xpm); pixmap3 = gdk_pixmap_create_from_xpm_d(llist->clist_window, &mask3, &style->bg[GTK_STATE_NORMAL],(gchar **)mininodata_xpm); data[0] = NULL; count = 1; lcount = 0; sizecount = 0; 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; } /* get the base-dirname */ strncpy(basename,entry->path,MAXLINE); p = rindex(basename,'/'); *p = '\0'; if (strcmp(basename,"") == 0) { strcpy(basename,"/"); } strcpy(fname, p+1); sizecount+=(gint) (get_size_from_imagelist(track)/1024); 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]", count, titlestr, tmp2); data[1] = tmp; gtk_clist_append(llist,data); if (entry->type == 0) { gtk_clist_set_pixmap(llist,lcount,0,pixmap1,mask1); } else { gtk_clist_set_pixmap(llist,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]", count, titlestr, tmp2); data[1] = tmp; gtk_clist_append(llist,data); gtk_clist_set_pixmap(llist,lcount,0,pixmap2,mask2); lcount++; count++; } loop = loop->next; } convert_kbytes2mbminstring(sizecount, tmp); gtk_entry_set_text(GTK_ENTRY(lentry), tmp);}/* fill the tracks-to-write list */void fill_writelist2(GtkCList *llist, GtkWidget *lentry) {GList *loop;track_read_param_t *trackparam;gchar track[MAXLINE];gchar tmp[MAXLINE];gchar tmp2[MAXLINE];gchar titlestr[MAXLINE];GtkStyle *style;gchar *data[2];GdkPixmap *pixmap1, *pixmap2, *pixmap3;GdkBitmap *mask1, *mask2, *mask3;gchar basename[MAXLINE], fname[MAXLINE], *p;image_files_t *entry;gint count,lcount; /* clean up first */ gtk_clist_clear(llist); style = gtk_style_copy(gtk_widget_get_style(GTK_WIDGET(imglist))); pixmap1 = gdk_pixmap_create_from_xpm_d(llist->clist_window, &mask1, &style->bg[GTK_STATE_NORMAL],(gchar **)minidata_xpm); pixmap2 = gdk_pixmap_create_from_xpm_d(llist->clist_window, &mask2, &style->bg[GTK_STATE_NORMAL],(gchar **)miniaudio_xpm); pixmap3 = gdk_pixmap_create_from_xpm_d(llist->clist_window, &mask3, &style->bg[GTK_STATE_NORMAL],(gchar **)mininodata_xpm); data[0] = NULL; count = 1; lcount = 0; loop = g_list_first(trackreadset.trackparams); while (loop) { trackparam = loop->data; strcpy(track, trackparam->trackfile); entry = get_entry_from_imagelist(track); if (entry == NULL) { /* should never happen */ loop = loop->next; continue; } /* get the base-dirname */ strncpy(basename,track,MAXLINE); p = rindex(basename,'/'); *p = '\0'; if (strcmp(basename,"") == 0) { strcpy(basename,"/"); } strcpy(fname, p+1); strcpy(titlestr,""); assign_trackname(titlestr, entry); /* no title found - so use filename as title */ if (strcmp(titlestr,"") == 0) { strcpy(titlestr,fname); } /* data */ if (trackparam->tracktype == 0) { convert_frames2mbstring((entry->size)/DATASECTORSIZE, tmp2); g_snprintf(tmp,MAXLINE,"%2d. %s [%s]", count, titlestr, tmp2); data[1] = tmp; gtk_clist_append(llist,data); if (entry->type == 0) { gtk_clist_set_pixmap(llist,lcount,0,pixmap1,mask1); } else { gtk_clist_set_pixmap(llist,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]", count, titlestr, tmp2); data[1] = tmp; gtk_clist_append(llist,data); gtk_clist_set_pixmap(llist,lcount,0,pixmap2,mask2); lcount++; count++; } loop = loop->next; } convert_kbytes2mbminstring(trackreadset.cdsize, tmp); gtk_entry_set_text(GTK_ENTRY(lentry), tmp);}void write_delete_tracks(GtkWidget *widget, gpointer data) {gint nrtracks;GList *sel, *loop, *loop2;gint row; nrtracks = 0; /* get the list of track-filenames to remove from the write-list */ sel = cdlist->selection; while (sel) { row = GPOINTER_TO_INT(sel->data); loop = g_list_nth(writelist,row); if (loop->data) { /* mark as deleted */ g_free(loop->data); loop->data = NULL; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -