📄 create.c
字号:
GtkWidget *tbl, *check;GtkCList *clist;gchar *titles[2];GtkWidget *scrolled_win, *list; /* 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_read(0, tbl, 1); devices_setup_image(1, tbl); /* devices_setup_write(2, tbl); */ /* 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); vbox = gtk_vbox_new(FALSE,10); gtk_table_attach_defaults(GTK_TABLE(tbl),vbox,1,2,0,1); f1 = gtk_frame_new(text(96)); 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(97)); set_font_and_color(f2,BOLDFONT,NULL); gtk_box_pack_start(GTK_BOX(vbox),f2,TRUE,TRUE,0); gtk_widget_show(f2); f3 = gtk_frame_new(text(296)); set_font_and_color(f3,BOLDFONT,NULL); gtk_box_pack_start(GTK_BOX(vbox),f3,FALSE,FALSE,0); gtk_widget_show(f3); gtk_widget_show(vbox); /* button bar at the bottom */ hbox = gtk_hbox_new(TRUE,10); gtk_box_pack_start(GTK_BOX(actionspace),hbox,FALSE,TRUE,10); gtk_widget_show(hbox); b1 = gtk_button_new_with_label(text(221)); gtk_box_pack_start(GTK_BOX(hbox),b1,TRUE,TRUE,10); gtk_signal_connect(GTK_OBJECT(b1),"clicked", GTK_SIGNAL_FUNC(read_select_all), NULL); define_tooltip(b1,help(86)); gtk_widget_show(b1); b1 = gtk_button_new_with_label(text(222)); gtk_box_pack_start(GTK_BOX(hbox),b1,TRUE,TRUE,10); gtk_signal_connect(GTK_OBJECT(b1),"clicked", GTK_SIGNAL_FUNC(read_select_none), NULL); define_tooltip(b1,help(87)); gtk_widget_show(b1); b1 = gtk_button_new_with_label(text(298)); gtk_box_pack_start(GTK_BOX(hbox),b1,TRUE,TRUE,10); gtk_widget_show(b1); define_tooltip(b1,help(88)); gtk_signal_connect(GTK_OBJECT(b1), "clicked", GTK_SIGNAL_FUNC(readsometracks_clicked), NULL); /* left 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_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] = ""; titles[1] = text(101); list = gtk_clist_new_with_titles(2,titles); gtk_container_add (GTK_CONTAINER (scrolled_win), list); gtk_widget_realize(list); clist = GTK_CLIST(list); cdlist = clist; gtk_signal_connect(GTK_OBJECT(clist), "select_row", GTK_SIGNAL_FUNC(read_select_row),NULL); gtk_signal_connect(GTK_OBJECT(clist), "unselect_row", GTK_SIGNAL_FUNC(read_select_row),NULL); gtk_clist_set_column_width(cdlist, 0, 16); gtk_clist_set_column_auto_resize(cdlist, 1, TRUE); if (setupdata.option_selectionmode == 0) { gtk_clist_set_selection_mode (clist, GTK_SELECTION_MULTIPLE); } else { gtk_clist_set_selection_mode (clist, GTK_SELECTION_EXTENDED); } gtk_widget_show(list); tbl = gtk_table_new(2,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(104)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,0,1); gtk_widget_show(l1); e1 = gtk_entry_new(); cdlist_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); l1 = rightjust_gtk_label_new(text(300)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,2,1,2); gtk_widget_show(l1); e1 = gtk_entry_new(); cdlist_l2 = e1; gtk_entry_set_editable(GTK_ENTRY(e1),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,2,8,1,2); gtk_widget_show(e1); /* right info 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); tbl = gtk_table_new(4,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(146)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,3,0,1); gtk_widget_show(l1); e1 = gtk_entry_new(); imglist_l1 = e1; gtk_signal_connect(GTK_OBJECT(e1), "activate", GTK_SIGNAL_FUNC(set_image_prefix_callback),NULL); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,3,8,0,1); gtk_widget_show(e1); define_tooltip(e1, help(51)); l1 = rightjust_gtk_label_new(text(147)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,0,3,1,2); gtk_widget_show(l1); e1 = gtk_entry_new(); imglist_l2 = e1; gtk_entry_set_editable(GTK_ENTRY(e1),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,3,8,1,2); gtk_widget_show(e1); l1 = leftjust_gtk_label_new(text(272)); gtk_table_attach_defaults(GTK_TABLE(tbl),l1,1,8,2,3); gtk_widget_show(l1); e1 = gtk_entry_new(); imglist_l3 = e1; gtk_entry_set_editable(GTK_ENTRY(e1),FALSE); gtk_table_attach_defaults(GTK_TABLE(tbl),e1,3,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(1,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(297)); gtk_signal_connect(GTK_OBJECT(check),"clicked", GTK_SIGNAL_FUNC(readoptions_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.indexscan); define_tooltip(check, help(80)); gtk_widget_show(check); gtk_widget_show(actionspace); /* fill entries */ fill_read_tracks(0);}/* fill the entries in the verify_tracks_menu */void fill_verify_tracks(gint dontupdateimglist) {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; /* update cd-info */ if (curset.reader_devnr != -1) { get_cd_toc_and_volid(curset.reader_devnr); } /* cd loaded? */ if (cdinfo.nr_tracks == -1) { gtk_entry_set_text(GTK_ENTRY(vrylist_l1), text(156)); gtk_entry_set_text(GTK_ENTRY(vrylist_l2),""); gtk_entry_set_text(GTK_ENTRY(vrylist_l3),""); gtk_entry_set_text(GTK_ENTRY(vrylist_l4),""); return; } if (cdinfo.nr_tracks == -2) { gtk_entry_set_text(GTK_ENTRY(vrylist_l1), text(196)); gtk_entry_set_text(GTK_ENTRY(vrylist_l2),""); gtk_entry_set_text(GTK_ENTRY(vrylist_l3),""); gtk_entry_set_text(GTK_ENTRY(vrylist_l4),""); return; } /* cd-type */ determine_cd_type(tmp,0); gtk_entry_set_text(GTK_ENTRY(vrylist_l1), tmp); /* cd-label */ if (cdinfo.title && cdinfo.artist && cdinfo.title[0] != '\0' && setupdata.option_displaycdtext) { g_snprintf(tmp,MAXLINE,"%s / %s", cdinfo.title, cdinfo.artist); gtk_entry_set_text(GTK_ENTRY(vrylist_l2), tmp); gtk_entry_set_position(GTK_ENTRY(vrylist_l2),0); } else if (cdinfo.cddb_dtitle != NULL) { gtk_entry_set_text(GTK_ENTRY(vrylist_l2), cdinfo.cddb_dtitle); gtk_entry_set_position(GTK_ENTRY(vrylist_l2),0); } else { gtk_entry_set_text(GTK_ENTRY(vrylist_l2),""); } /* cd-size */ convert_frames2mbminstring(cdinfo.total_size, tmp); gtk_entry_set_text(GTK_ENTRY(vrylist_l3), tmp); /* nr tracks */ g_snprintf(tmp,MAXLINE,"%d",cdinfo.nr_tracks); gtk_entry_set_text(GTK_ENTRY(vrylist_l4), tmp); /* now draw image-list */ if (dontupdateimglist) return; /* 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]", count, titlestr, tmp2); data[1] = tmp; gtk_clist_append(imglist,data); 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]", count, titlestr, tmp2); data[1] = tmp; gtk_clist_append(imglist,data); 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); }/* find out which trackfilename is in which row *//* this is a little complicated because I have to recreate the exact order of tracks as they are filled by fill_verify_tracks */gint get_trackname_from_row(gint row, gchar *tname) {GList *loop;image_files_t *entry;gint count;gchar basename[MAXLINE], imgdir[MAXLINE], fname[MAXLINE], *p; strcpy(imgdir,""); count = 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; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -