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

📄 create.c

📁 -一个LINUX下的使用方&#63845 的CD-ROM刻录软件,开放源码
💻 C
📖 第 1 页 / 共 5 页
字号:
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 + -