自己以前做的一个文件分割软件!那时候U盘容量太小,COPY个东西装不小!所以做了个文件分割合并软件!与大家分享一下!我把原代码帖出来!GTK+写的,只要你懂C,知道一点点GTK,就可以看懂!
#include<gtk/gtk.h>
#include<stdio.h>
#include<dirent.h>
#include<unistd.h>
#include<string.h>
GtkWidget *fg_entry1,*fg_entry2;
GtkWidget *hb_entry1,*hb_entry2,*hb_entry3,*hb_entry4,*hb_entry5;
GtkWidget *hb_entry6,*hb_entry7,*hb_entry8,*hb_entry9,*hb_entry10,*hb_entry11;
GtkAdjustment *adj;
void DialogAbout();
void divide_ok()
{
GtkWidget *label1,*button,*dialog_window;
dialog_window=gtk_dialog_new();
g_signal_connect(G_OBJECT(dialog_window),"destroy",G_CALLBACK (gtk_widget_destroyed),&dialog_window);
gtk_window_set_title(GTK_WINDOW(dialog_window),"MokeMars's file divide software");
gtk_container_set_border_width(GTK_CONTAINER(dialog_window),0);
button=gtk_button_new_with_label("OK");
GTK_WIDGET_SET_FLAGS(button,GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area),button,TRUE,TRUE,0);
g_signal_connect_swapped (G_OBJECT(button),"clicked",G_CALLBACK (gtk_widget_destroy),G_OBJECT(dialog_window));
label1=gtk_label_new("The document divide is successful!/n");
gtk_misc_set_padding(GTK_MISC(label1),10,10);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox),label1,TRUE,TRUE,0);
gtk_widget_grab_default(button);
gtk_widget_show_all(dialog_window);
}
void unite_ok()
{
GtkWidget *label1,*button,*dialog_window;
dialog_window=gtk_dialog_new();
g_signal_connect(G_OBJECT(dialog_window),"destroy",G_CALLBACK (gtk_widget_destroyed),&dialog_window);
gtk_window_set_title(GTK_WINDOW(dialog_window),"MokeMars's file divide software");
gtk_container_set_border_width(GTK_CONTAINER(dialog_window),0);
button=gtk_button_new_with_label("OK");
GTK_WIDGET_SET_FLAGS(button,GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area),button,TRUE,TRUE,0);
g_signal_connect_swapped (G_OBJECT(button),"clicked",G_CALLBACK (gtk_widget_destroy),G_OBJECT(dialog_window));
label1=gtk_label_new("The document add is successful!/n");
gtk_misc_set_padding(GTK_MISC(label1),10,10);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox),label1,TRUE,TRUE,0);
gtk_widget_grab_default(button);
gtk_widget_show_all(dialog_window);
}
void fg_file_ok_sel( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(fg_entry1),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void fg_select_file()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (fg_file_ok_sel), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void fg_save_file_ok_sel( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(fg_entry2),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void fg_save_select_file()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (fg_save_file_ok_sel), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"");
gtk_widget_show (filew);
}
void hb_file_ok_sel_1( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry1),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_1()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_1), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_2( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry2),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_2()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_2), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_3( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry3),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_3()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_3), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_4( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry4),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_4()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_4), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_5( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry5),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_5()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_5), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_6( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry6),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_6()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_6), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_7( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry7),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_7()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_7), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_8( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry8),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_8()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_8), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_9( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry9),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_9()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_9), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_file_ok_sel_10( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry10),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_select_file_10()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_file_ok_sel_10), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
void hb_save_file_ok_sel( GtkWidget *w,
GtkFileSelection *fs )
{
g_print ("%s/n",gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_entry_set_text(GTK_ENTRY(hb_entry11),gtk_file_selection_get_filename (GTK_FILE_SELECTION (fs)));
gtk_widget_destroy(GTK_WIDGET(fs));
}
void hb_save_select_file()
{
GtkWidget *filew;
filew = gtk_file_selection_new ("File selection");
g_signal_connect (G_OBJECT (filew), "destroy",
G_CALLBACK (gtk_widget_destroyed), NULL);
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filew)->ok_button),
"clicked", G_CALLBACK (hb_save_file_ok_sel), (gpointer) filew);
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filew)->cancel_button),
"clicked", G_CALLBACK (gtk_widget_destroy),
G_OBJECT (filew));
gtk_file_selection_set_filename (GTK_FILE_SELECTION(filew),
"mokemars.png");
gtk_widget_show (filew);
}
unsigned long getfilelength(char *filename)
{
FILE *fp=NULL;
unsigned long i=0;
char c[1];
fp=fopen(filename,"r");
if(fp!=NULL)
{
g_print("file open ok!/n");
}
while(fread(&c,1,1,fp)>0)
{
i++;
}
fclose(fp);
return i;
}
void divide()
{
gchar *filename,*savedir;
char newfilename[256]={0};
char *testname[10]={"1.txt","2.txt","3.txt","4.txt","5.txt","6.txt","7.txt","8.txt","9.txt","10.txt"};
char c;
unsigned long num;
unsigned long filelength,k,s,n;
FILE *fp=NULL,*fpnew=NULL;
filename=gtk_entry_get_text(GTK_ENTRY(fg_entry1));
savedir=gtk_entry_get_text(GTK_ENTRY(fg_entry2));
g_print("%s/n",(char *)filename);
g_print("%s/n",(char *)savedir);
filelength=getfilelength(filename);
g_print("file length %ld !/n",filelength);
fp=fopen(filename,"r");
if(fp==NULL)
{
g_print("%s open wrong!/n",filename);
return;
}
num=gtk_adjustment_get_value(adj);
g_print("The number is %ld !/n",num);
k=filelength/num;
g_print("every file length is %ld !/n",k);
for(s=1;s<num;s++)
{
strcpy(newfilename,savedir);
strcat(newfilename,"/");
strcat(newfilename,testname[s-1]);
g_print("%s/n",newfilename);
fpnew=fopen(newfilename,"w+");
for(n=0;n<k;n++)
{
fread(&c,1,1,fp);
fwrite(&c,1,1,fpnew);
}
fclose(fpnew);
newfilename[0]=0;
}
strcpy(newfilename,savedir);
strcat(newfilename,"/");
strcat(newfilename,testname[s-1]);
g_print("%s/n",newfilename);
fpnew=fopen(newfilename,"w+");
for(n=0;n<filelength-k*(num-1);n++)
{
fread(&c,1,1,fp);
fwrite(&c,1,1,fpnew);
}
fclose(fpnew);
newfilename[0]=0;
fclose(fp);
divide_ok();
}
void unite()
{
gchar *filename1,*filename2,*filename3,*filename4,*filename5,*filename6,*filename7,*filename8,*filename9,*filename10;
gchar *savefilename;
FILE *fp,*fpopen;
char c;;
filename1=gtk_entry_get_text(GTK_ENTRY(hb_entry1));
filename2=gtk_entry_get_text(GTK_ENTRY(hb_entry3));
filename3=gtk_entry_get_text(GTK_ENTRY(hb_entry5));
filename4=gtk_entry_get_text(GTK_ENTRY(hb_entry7));
filename5=gtk_entry_get_text(GTK_ENTRY(hb_entry9));
filename6=gtk_entry_get_text(GTK_ENTRY(hb_entry2));
filename7=gtk_entry_get_text(GTK_ENTRY(hb_entry4));
filename8=gtk_entry_get_text(GTK_ENTRY(hb_entry6));
filename9=gtk_entry_get_text(GTK_ENTRY(hb_entry8));
filename10=gtk_entry_get_text(GTK_ENTRY(hb_entry10));
savefilename=gtk_entry_get_text(GTK_ENTRY(hb_entry11));
fp=fopen(savefilename,"w+");
if((fpopen=fopen(filename1,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename2,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fclose(fpopen);
}
if((fpopen=fopen(filename3,"r"))!=NULL)
{
fpopen=fopen(filename3,"r");
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename4,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename5,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename6,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename7,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename8,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename9,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
if((fpopen=fopen(filename10,"r"))!=NULL)
{
while(fread(&c,1,1,fpopen)>0)
{
fwrite(&c,1,1,fp);
}
fflush(fpopen);
fclose(fpopen);
}
fflush(fp);
fclose(fp);
unite_ok();
}
GtkWidget *create_fgbox(gint horizontal,char *title,gint spacing)
{
GtkWidget *frame;
GtkWidget *hbox,*vbox;
GtkWidget *button1,*button2,*button3;
GtkWidget *label1,*label2,*label3;
GtkWidget *spinner;
GtkWidget *separator1,*separator2;
frame=gtk_frame_new(title);
hbox=gtk_hbox_new(FALSE,5);
vbox=gtk_vbox_new(FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(vbox),5);
gtk_container_add(GTK_CONTAINER(frame),vbox);
gtk_box_set_spacing(GTK_BOX(hbox),spacing);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label1=gtk_label_new("FileName:");
gtk_box_pack_start(GTK_BOX(hbox),label1,TRUE,TRUE,0);
fg_entry1=gtk_entry_new();
gtk_entry_set_max_length (GTK_ENTRY (fg_entry1), 00);
gtk_entry_set_text(GTK_ENTRY(fg_entry1),"");
gtk_editable_select_region(GTK_EDITABLE(fg_entry1),0, GTK_ENTRY (fg_entry1)->text_length);
gtk_box_pack_start(GTK_BOX(hbox),fg_entry1,TRUE,TRUE,0);
button1=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button1),"clicked",G_CALLBACK (fg_select_file),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button1,TRUE,TRUE,0);
label2 = gtk_label_new ("Num:");
gtk_box_pack_start (GTK_BOX (hbox), label2, TRUE, TRUE, 0);
adj = (GtkAdjustment *) gtk_adjustment_new (1.0, 1.0, 10.0, 1.0,0.0, 0.0);
spinner = gtk_spin_button_new (adj, 0, 0);
gtk_spin_button_set_wrap (GTK_SPIN_BUTTON (spinner), TRUE);
gtk_box_pack_start (GTK_BOX (hbox), spinner, TRUE, TRUE, 0);
separator1=gtk_hseparator_new();
gtk_box_pack_start (GTK_BOX (vbox), separator1, TRUE, TRUE, 0);
hbox=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label3 = gtk_label_new ("SaveFileDir:");
gtk_box_pack_start(GTK_BOX(hbox),label3,TRUE,TRUE,0);
fg_entry2=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(fg_entry2),"");
gtk_editable_select_region(GTK_EDITABLE(fg_entry2),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),fg_entry2,TRUE,TRUE,0);
button2=gtk_button_new_with_label("View");
g_signal_connect_swapped(G_OBJECT(button2),"clicked",G_CALLBACK (fg_save_select_file),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button2,TRUE,TRUE,0);
separator2=gtk_hseparator_new();
gtk_box_pack_start (GTK_BOX (vbox), separator2, TRUE, TRUE, 0);
button3=gtk_button_new_with_label("Divaid");
g_signal_connect_swapped(G_OBJECT(button3),"clicked",G_CALLBACK (divide),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(vbox),button3,TRUE,TRUE,0);
return frame;
}
GtkWidget *create_hbbox(gint horizontal,char *title,gint spacing)
{
GtkWidget *frame;
GtkWidget *hbox,*vbox;
GtkWidget *button1,*button2,*button3,*button4,*button5;
GtkWidget *button6,*button7,*button8,*button9,*button10,*button11,*button12,*button13;
GtkWidget *label1,*label2,*label3,*label4,*label5,*label6,*label7,*label8,*label9,*label10,*label11;
GtkWidget *separator1,*separator2;
frame=gtk_frame_new(title);
hbox=gtk_hbox_new(FALSE,5);
vbox=gtk_vbox_new(FALSE,5);
gtk_container_set_border_width(GTK_CONTAINER(vbox),5);
gtk_container_add(GTK_CONTAINER(frame),vbox);
gtk_box_set_spacing(GTK_BOX(hbox),spacing);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label1=gtk_label_new("FileName1:");
gtk_box_pack_start(GTK_BOX(hbox),label1,TRUE,TRUE,0);
hb_entry1=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry1),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry1),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry1,TRUE,TRUE,0);
button1=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button1),"clicked",G_CALLBACK (hb_select_file_1),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button1,TRUE,TRUE,0);
label2=gtk_label_new("FileName6:");
gtk_box_pack_start(GTK_BOX(hbox),label2,TRUE,TRUE,0);
hb_entry2=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry2),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry2),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry2,TRUE,TRUE,0);
button2=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button2),"clicked",G_CALLBACK (hb_select_file_2),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button2,TRUE,TRUE,0);
hbox=gtk_hbox_new(FALSE,0);;
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label3=gtk_label_new("FileName2:");
gtk_box_pack_start(GTK_BOX(hbox),label3,TRUE,TRUE,0);
hb_entry3=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry3),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry3),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry3,TRUE,TRUE,0);
button3=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button3),"clicked",G_CALLBACK (hb_select_file_3),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button3,TRUE,TRUE,0);
label4=gtk_label_new("FileName7:");
gtk_box_pack_start(GTK_BOX(hbox),label4,TRUE,TRUE,0);
hb_entry4=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry4),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry4),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry4,TRUE,TRUE,0);
button4=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button4),"clicked",G_CALLBACK (hb_select_file_4),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button4,TRUE,TRUE,0);
hbox=gtk_hbox_new(FALSE,0);;
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label5=gtk_label_new("FileName3:");
gtk_box_pack_start(GTK_BOX(hbox),label5,TRUE,TRUE,0);
hb_entry5=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry5),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry5),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry5,TRUE,TRUE,0);
button5=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button5),"clicked",G_CALLBACK (hb_select_file_5),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button5,TRUE,TRUE,0);
label6=gtk_label_new("FileName8:");
gtk_box_pack_start(GTK_BOX(hbox),label6,TRUE,TRUE,0);
hb_entry6=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry6),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry6),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry6,TRUE,TRUE,0);
button6=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button6),"clicked",G_CALLBACK (hb_select_file_6),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button6,TRUE,TRUE,0);
hbox=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label7=gtk_label_new("FileName4:");
gtk_box_pack_start(GTK_BOX(hbox),label7,TRUE,TRUE,0);
hb_entry7=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry7),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry7),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry7,TRUE,TRUE,0);
button7=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button7),"clicked",G_CALLBACK (hb_select_file_7),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button7,TRUE,TRUE,0);
label8=gtk_label_new("FileName9:");
gtk_box_pack_start(GTK_BOX(hbox),label8,TRUE,TRUE,0);
hb_entry8=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry8),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry8),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry8,TRUE,TRUE,0);
button8=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button8),"clicked",G_CALLBACK (hb_select_file_8),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button8,TRUE,TRUE,0);
hbox=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label9=gtk_label_new("FileName5:");
gtk_box_pack_start(GTK_BOX(hbox),label9,TRUE,TRUE,0);
hb_entry9=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry9),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry9),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry9,TRUE,TRUE,0);
button9=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button9),"clicked",G_CALLBACK (hb_select_file_9),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button9,TRUE,TRUE,0);
label10=gtk_label_new("FileName10:");
gtk_box_pack_start(GTK_BOX(hbox),label10,TRUE,TRUE,0);
hb_entry10=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry10),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry10),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry10,TRUE,TRUE,0);
button10=gtk_button_new_with_label("Open");
g_signal_connect_swapped(G_OBJECT(button10),"clicked",G_CALLBACK (hb_select_file_10),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button10,TRUE,TRUE,0);
hbox=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
separator1=gtk_hseparator_new();
gtk_box_pack_start (GTK_BOX (hbox), separator1, TRUE, TRUE, 0);
hbox=gtk_hbox_new(FALSE,0);;
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
label11 = gtk_label_new ("SaveFileName:");
gtk_box_pack_start(GTK_BOX(hbox),label11,TRUE,TRUE,0);
hb_entry11=gtk_entry_new();
gtk_entry_set_text(GTK_ENTRY(hb_entry11),"");
gtk_editable_select_region(GTK_EDITABLE(hb_entry11),0,-1);
gtk_box_pack_start(GTK_BOX(hbox),hb_entry11,TRUE,TRUE,0);
button11=gtk_button_new_with_label("View");
g_signal_connect_swapped(G_OBJECT(button11),"clicked",G_CALLBACK (hb_save_select_file),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button11,TRUE,TRUE,0);
hbox=gtk_hbox_new(FALSE,0);
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
separator2=gtk_hseparator_new();
gtk_box_pack_start (GTK_BOX (hbox), separator2, TRUE, TRUE, 0);
hbox=gtk_hbox_new(FALSE,0);;
gtk_box_pack_start(GTK_BOX(vbox),hbox,TRUE,TRUE,0);
button12=gtk_button_new_with_label("About");
g_signal_connect_swapped(G_OBJECT(button12),"clicked",G_CALLBACK (DialogAbout),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button12,TRUE,TRUE,0);
button13=gtk_button_new_with_label("Add");
g_signal_connect_swapped(G_OBJECT(button13),"clicked",G_CALLBACK (unite),G_OBJECT(frame));
gtk_box_pack_start(GTK_BOX(hbox),button13,TRUE,TRUE,0);
return frame;
}
void DialogAbout()
{
GtkWidget *label1,*label2,*button,*dialog_window;
dialog_window=gtk_dialog_new();
g_signal_connect(G_OBJECT(dialog_window),"destroy",G_CALLBACK (gtk_widget_destroyed),&dialog_window);
gtk_window_set_title(GTK_WINDOW(dialog_window),"MokeMars's file divide software");
gtk_container_set_border_width(GTK_CONTAINER(dialog_window),0);
button=gtk_button_new_with_label("OK");
GTK_WIDGET_SET_FLAGS(button,GTK_CAN_DEFAULT);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->action_area),button,TRUE,TRUE,0);
g_signal_connect_swapped (G_OBJECT(button),"clicked",G_CALLBACK (gtk_widget_destroy),G_OBJECT(dialog_window));
label1=gtk_label_new("The software dedicate to my parents, appreciate their fosterage from childhood!/n");
gtk_misc_set_padding(GTK_MISC(label1),10,10);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox),label1,TRUE,TRUE,0);
label2=gtk_label_new("Email:mokemars@163.com /n"
"/nThe software developed by mokemars 2006-3-20");
gtk_misc_set_padding(GTK_MISC(label2),20,10);
gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog_window)->vbox),label2,TRUE,TRUE,0);
gtk_widget_grab_default(button);
gtk_widget_show_all(dialog_window);
}
int main( int argc,
char *argv[] )
{
GtkWidget *window;
GtkWidget *main_vbox;
gtk_init (&argc, &argv);
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
gtk_window_set_title (GTK_WINDOW (window), "MokeMars's file divide software");
gtk_widget_set_size_request (GTK_WIDGET (window),600, 400);
g_signal_connect(G_OBJECT (window), "destroy",G_CALLBACK (gtk_main_quit), NULL);
gtk_container_set_border_width (GTK_CONTAINER (window), 1);
main_vbox = gtk_vbox_new (FALSE, 5);
gtk_container_add (GTK_CONTAINER (window), main_vbox);
gtk_box_pack_start (GTK_BOX (main_vbox),create_fgbox (TRUE, "Divaid", 5), TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (main_vbox),create_hbbox (TRUE, "Add", 5),TRUE, TRUE, 0);
gtk_widget_show_all (window);
gtk_main ();
return 0;
}
//编译
CC = gcc
CFLAGS = -Wall /
-DG_DISABLE_DEPRECATED /
-DGDK_DISABLE_DEPRECATED /
-DGDK_PIXBUF_DISABLE_DEPRECATED /
-DGTK_DISABLE_DEPRECATED
wjfg: wjfg.c
$(CC) wjfg.c -o wjfg $(CFLAGS) `pkg-config gtk+-2.0 --cflags --libs`
clean:
rm -f *.o wjfg