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

📄 callbacks.c

📁 gfa is a small and fast address book written in C and GTK+.
💻 C
📖 第 1 页 / 共 3 页
字号:
	sprintf(id_request_active, "select group_id from gfa_groups where group_name = '%s';", activegroupname);	rc = sqlite3_exec(db, id_request_active, callback_id, &id_active, &zErrMsg);	const char* lname = gtk_entry_get_text(GTK_ENTRY(lastname));	const char* fname = gtk_entry_get_text(GTK_ENTRY(firstname));	const char* str = gtk_entry_get_text(GTK_ENTRY(street));	const char* n = gtk_entry_get_text(GTK_ENTRY(no));	const char* z = gtk_entry_get_text(GTK_ENTRY(zip));	const char* c = gtk_entry_get_text(GTK_ENTRY(city));	const char* p = gtk_entry_get_text(GTK_ENTRY(phone));	const char* m = gtk_entry_get_text(GTK_ENTRY(mobile));	const char* e = gtk_entry_get_text(GTK_ENTRY(email));	const char* u = gtk_label_get_text(GTK_LABEL(label));	const char* b = gtk_entry_get_text(GTK_ENTRY(birth));	const char* w = gtk_entry_get_text(GTK_ENTRY(web));	const char* i = gtk_entry_get_text(GTK_ENTRY(icq));	const char* y = gtk_entry_get_text(GTK_ENTRY(yahoo));	const char* ms = gtk_entry_get_text(GTK_ENTRY(msn));	const char* wp = gtk_entry_get_text(GTK_ENTRY(workphone));	const char* wm = gtk_entry_get_text(GTK_ENTRY(workmobile));	const char* we = gtk_entry_get_text(GTK_ENTRY(workemail));	if (strlen(lname) == 0 || strlen(fname) == 0)	{		GtkWidget* dialog = create_dialog2();		int result = gtk_dialog_run (GTK_DIALOG (dialog));  	  		gtk_widget_destroy (dialog);	}else{		char copy[1024];		sprintf(copy,"cp -f '%s' '%s'",u, path);		system(copy);		char* imagefile = (char*)(strtok((char*)(u),"/"));		char* temp;		while(imagefile != NULL)		{			strcpy(temp,imagefile);			imagefile = (char*)(strtok(NULL,"/"));		}		char img[1024];		g_sprintf(img, "%s/%s",path,temp);		char check[1024];		sprintf(check, "SELECT * FROM gfa WHERE Last_Name = '%s' AND First_Name = '%s';", lname, fname);		rc = sqlite3_exec(db, check, check_insert, 0, &zErrMsg);		char query[1024];		if (rc == 0)		{			if(strcmp(activegroupname,"All")==0)			{				rc = sqlite3_exec(db, "select * from gfa;", callback_insert, button, &zErrMsg);				sprintf(query, "insert into gfa values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');", lname,fname,str,n,z,c,p,m,e,img,b,w,i,y,ms,wp,wm,we,id); 				rc = sqlite3_exec(db, query, NULL, 0, &zErrMsg);				char execute[1024];				sprintf(execute, "select Last_Name,First_Name from gfa ORDER BY Last_Name,First_Name ASC", id_active);				rc = sqlite3_exec(db, execute, callback, button, &zErrMsg);			}else{				rc = sqlite3_exec(db, "select * from gfa;", callback_insert, button, &zErrMsg);				sprintf(query, "insert into gfa values('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');", lname,fname,str,n,z,c,p,m,e,img,b,w,i,y,ms,wp,wm,we,id); 				rc = sqlite3_exec(db, query, NULL, 0, &zErrMsg);				char execute[1024];				sprintf(execute, "select Last_Name,First_Name from gfa where Groups = '%s' ORDER BY Last_Name,First_Name ASC", id_active);				rc = sqlite3_exec(db, execute, callback, button, &zErrMsg);				}		}else{			if(strcmp(activegroupname,"All")==0)			{				rc = sqlite3_exec(db, "select * from gfa;", callback_insert, button, &zErrMsg);				sprintf(query, "UPDATE gfa SET Last_Name = '%s',First_Name = '%s',Street = '%s',No = '%s',Zip = '%s',City = '%s',Phone = '%s',Mobile = '%s', Email = '%s', Image = '%s', Birth = '%s', Web ='%s', Icq = '%s', Yahoo = '%s', Msn = '%s', Workphone = '%s', Workmobile = '%s', Workemail = '%s', Groups = '%s' WHERE Last_Name = '%s' AND First_Name = '%s';", lname,fname,str,n,z,c,p,m,e,img,b,w,i,y,ms,wp,wm,we,id,lname,fname);				rc = sqlite3_exec(db, query, NULL, 0, &zErrMsg);							rc = sqlite3_exec(db, "select Last_Name,First_Name from gfa ORDER BY Last_Name,First_Name ASC;", callback, button, &zErrMsg);			}else{				rc = sqlite3_exec(db, "select * from gfa;", callback_insert, button, &zErrMsg);				sprintf(query, "UPDATE gfa SET Last_Name = '%s',First_Name = '%s',Street = '%s',No = '%s',Zip = '%s',City = '%s',Phone = '%s',Mobile = '%s', Email = '%s', Image = '%s', Birth = '%s', Web ='%s', Icq = '%s', Yahoo = '%s', Msn = '%s', Workphone = '%s', Workmobile = '%s', Workemail = '%s', Groups = '%s' WHERE Last_Name = '%s' AND First_Name = '%s';", lname,fname,str,n,z,c,p,m,e,img,b,w,i,y,ms,wp,wm,we,id,lname,fname);				rc = sqlite3_exec(db, query, NULL, 0, &zErrMsg);							char execute[1024];				sprintf(execute, "select Last_Name,First_Name from gfa where Groups = '%s' ORDER BY Last_Name,First_Name ASC;", id_active);				rc = sqlite3_exec(db, execute, callback, button, &zErrMsg);			}		}			sqlite3_close(db);		gtk_combo_box_set_active(GTK_COMBO_BOX(addresscombobox),comboid);			} }voidon_mainwindow_realize                  (GtkWidget       *widget,                                        gpointer         user_data){	sqlite3 *db;	int rc;	char *zErrMsg = 0;		char* home = getenv("HOME");	mode_t mode = (mode_t) 0755;	char path[1024];	sprintf(path,"%s/.gfa", home);	mkdir(path,mode);	char dbfile[1024];	sprintf(dbfile,"%s/.gfa/gfa.db", home);	rc = sqlite3_open(dbfile,&db);	rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS gfa(Last_Name char(50), First_Name char(50), Street char(100), No char(10), Zip char(10), City char(50), Phone char(30), Mobile char(30), Email char(200), Image char(1024), Birth char(30), Web char(200), Icq char(20), Yahoo char(20), Msn char(50), Workphone char(30), Workmobile char(30), Workemail char(200)) ;", NULL, 0, &zErrMsg);	rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS gfa_groups(group_id INTEGER PRIMARY KEY AUTOINCREMENT, group_name char(100));", NULL, 0, &zErrMsg);	rc = sqlite3_exec(db,"insert into gfa_groups (group_id,group_name) values('1','General');",NULL,0,&zErrMsg);	rc = sqlite3_exec(db, "SELECT * FROM gfa;",oldcheck,db,&zErrMsg);	rc = sqlite3_exec(db,"alter table gfa add column Groups INTEGER DEFAULT '1';", NULL, 0, &zErrMsg);	rc = sqlite3_exec(db, "select Last_Name,First_Name from gfa ORDER BY Last_Name,First_Name ASC;", callback, widget, &zErrMsg);		GtkWidget* combo = lookup_widget(widget, "groupcombobox");	gtk_combo_box_append_text(GTK_COMBO_BOX(combo),"All");	gtk_combo_box_set_active(GTK_COMBO_BOX(combo),0);	rc = sqlite3_exec(db, "select group_name from gfa_groups;", callback_group, combo, &zErrMsg);	GtkWidget* combogroup = lookup_widget(combo, "comboboxgroup");	gtk_combo_box_set_active(GTK_COMBO_BOX(combogroup),0);		sqlite3_close(db);		GtkWidget* label = lookup_widget(widget, "url");	gtk_label_set_text(GTK_LABEL(label),"/usr/share/gfa/pixmaps/person.png");}voidon_deletebutton_clicked                (GtkButton       *button,                                        gpointer         user_data){	sqlite3 *db;	int rc;	char *zErrMsg = 0;	char* home = getenv("HOME");			char path[1024];	sprintf(path,"%s/.gfa", home);		char filename[1024];	sprintf(filename, "%s/gfa.db",path);	rc = sqlite3_open(filename, &db);	GtkWidget* lastname = lookup_widget(GTK_WIDGET(button), "lastnameentry");	GtkWidget* firstname = lookup_widget(GTK_WIDGET(button), "firstnameentry");	const char* lname = gtk_entry_get_text(GTK_ENTRY(lastname));	const char* fname = gtk_entry_get_text(GTK_ENTRY(firstname));	char del_file[1024];	sprintf(del_file, "SELECT Image FROM gfa WHERE Last_Name = '%s' AND First_Name = '%s';", lname, fname);		char del[1024];	sprintf(del, "DELETE FROM gfa WHERE Last_Name = '%s' AND First_Name = '%s';", lname, fname);	GtkWidget* dialog = create_dialog1();	int result = gtk_dialog_run (GTK_DIALOG (dialog));  	switch (result)  	{      	case GTK_RESPONSE_YES:		rc = sqlite3_exec(db, del_file, del_file_callback, 0, &zErrMsg);		rc = sqlite3_exec(db, del, NULL, 0, &zErrMsg);		if(rc==0)		{		GtkWidget* combo = lookup_widget(GTK_WIDGET(button), "addresscombobox");		int position = gtk_combo_box_get_active(GTK_COMBO_BOX(combo));		gtk_combo_box_remove_text(GTK_COMBO_BOX(combo), position);		GtkWidget* lastname = lookup_widget(GTK_WIDGET(button), "lastnameentry");		GtkWidget* firstname = lookup_widget(GTK_WIDGET(button), "firstnameentry");		GtkWidget* street = lookup_widget(GTK_WIDGET(button), "streetentry");		GtkWidget* no = lookup_widget(GTK_WIDGET(button), "noentry");		GtkWidget* zip = lookup_widget(GTK_WIDGET(button), "zipentry");		GtkWidget* city = lookup_widget(GTK_WIDGET(button), "cityentry");		GtkWidget* phone = lookup_widget(GTK_WIDGET(button), "phoneentry");		GtkWidget* mobile = lookup_widget(GTK_WIDGET(button), "mobileentry");		GtkWidget* email = lookup_widget(GTK_WIDGET(button), "emailentry");		GtkWidget* label = lookup_widget(GTK_WIDGET(button), "url");		GtkWidget* birth = lookup_widget(GTK_WIDGET(button), "birthdateentry");		GtkWidget* web = lookup_widget(GTK_WIDGET(button), "webentry");		GtkWidget* icq = lookup_widget(GTK_WIDGET(button), "icqentry");		GtkWidget* yahoo = lookup_widget(GTK_WIDGET(button), "yahooentry");		GtkWidget* msn = lookup_widget(GTK_WIDGET(button), "msnentry");		GtkWidget* workphone = lookup_widget(GTK_WIDGET(button), "workphoneentry");		GtkWidget* workmobile = lookup_widget(GTK_WIDGET(button), "workmobileentry");		GtkWidget* workemail = lookup_widget(GTK_WIDGET(button), "workemailentry");		GtkWidget* image = lookup_widget(GTK_WIDGET(button), "buddy");		GtkWidget* groupcombo = lookup_widget(GTK_WIDGET(button), "comboboxgroup");			gtk_entry_set_text(GTK_ENTRY(lastname),"");		gtk_entry_set_text(GTK_ENTRY(firstname),"");		gtk_entry_set_text(GTK_ENTRY(street),"");		gtk_entry_set_text(GTK_ENTRY(no),"");		gtk_entry_set_text(GTK_ENTRY(zip),"");		gtk_entry_set_text(GTK_ENTRY(city),"");		gtk_entry_set_text(GTK_ENTRY(phone),"");		gtk_entry_set_text(GTK_ENTRY(mobile),"");		gtk_entry_set_text(GTK_ENTRY(email),"");		gtk_label_set_text(GTK_LABEL(label),"/usr/share/gfa/pixmaps/person.png");		gtk_image_set_from_file(GTK_IMAGE(image),"/usr/share/gfa/pixmaps/person.png");		gtk_entry_set_text(GTK_ENTRY(birth),"");		gtk_entry_set_text(GTK_ENTRY(web),"");		gtk_entry_set_text(GTK_ENTRY(icq),"");		gtk_entry_set_text(GTK_ENTRY(yahoo),"");		gtk_entry_set_text(GTK_ENTRY(msn),"");		gtk_entry_set_text(GTK_ENTRY(workphone),"");		gtk_entry_set_text(GTK_ENTRY(workmobile),"");		gtk_entry_set_text(GTK_ENTRY(workemail),"");		gtk_combo_box_set_active(GTK_COMBO_BOX(groupcombo),0);		}			sqlite3_close(db);		break;      	default: 		break;    	}  	gtk_widget_destroy (dialog);	}voidon_emailsend_clicked                   (GtkButton       *button,                                        gpointer         user_data){	GtkWidget* dialog = create_dialog3();	int result = gtk_dialog_run (GTK_DIALOG (dialog));	gtk_widget_destroy (dialog);	}voidon_newbutton_clicked                   (GtkButton       *button,                                        gpointer         user_data){	GtkWidget* combo = lookup_widget(GTK_WIDGET(button), "addresscombobox");	GtkWidget* groupcombo = lookup_widget(GTK_WIDGET(button), "comboboxgroup");	GtkWidget* lastname = lookup_widget(GTK_WIDGET(button), "lastnameentry");	GtkWidget* firstname = lookup_widget(GTK_WIDGET(button), "firstnameentry");	GtkWidget* street = lookup_widget(GTK_WIDGET(button), "streetentry");	GtkWidget* no = lookup_widget(GTK_WIDGET(button), "noentry");	GtkWidget* zip = lookup_widget(GTK_WIDGET(button), "zipentry");	GtkWidget* city = lookup_widget(GTK_WIDGET(button), "cityentry");	GtkWidget* phone = lookup_widget(GTK_WIDGET(button), "phoneentry");	GtkWidget* mobile = lookup_widget(GTK_WIDGET(button), "mobileentry");	GtkWidget* email = lookup_widget(GTK_WIDGET(button), "emailentry");	GtkWidget* label = lookup_widget(GTK_WIDGET(button), "url");	GtkWidget* birth = lookup_widget(GTK_WIDGET(button), "birthdateentry");	GtkWidget* web = lookup_widget(GTK_WIDGET(button), "webentry");	GtkWidget* icq = lookup_widget(GTK_WIDGET(button), "icqentry");	GtkWidget* yahoo = lookup_widget(GTK_WIDGET(button), "yahooentry");	GtkWidget* msn = lookup_widget(GTK_WIDGET(button), "msnentry");	GtkWidget* workphone = lookup_widget(GTK_WIDGET(button), "workphoneentry");	GtkWidget* workmobile = lookup_widget(GTK_WIDGET(button), "workmobileentry");	GtkWidget* workemail = lookup_widget(GTK_WIDGET(button), "workemailentry");	GtkWidget* image = lookup_widget(GTK_WIDGET(button), "buddy");		gtk_entry_set_text(GTK_ENTRY(lastname),"");	gtk_entry_set_text(GTK_ENTRY(firstname),"");	gtk_entry_set_text(GTK_ENTRY(street),"");	gtk_entry_set_text(GTK_ENTRY(no),"");	gtk_entry_set_text(GTK_ENTRY(zip),"");	gtk_entry_set_text(GTK_ENTRY(city),"");	gtk_entry_set_text(GTK_ENTRY(phone),"");	gtk_entry_set_text(GTK_ENTRY(mobile),"");	gtk_entry_set_text(GTK_ENTRY(email),"");	gtk_label_set_text(GTK_LABEL(label),"/usr/share/gfa/pixmaps/person.png");	gtk_image_set_from_file(GTK_IMAGE(image),"/usr/share/gfa/pixmaps/person.png");	gtk_entry_set_text(GTK_ENTRY(birth),"");	gtk_entry_set_text(GTK_ENTRY(web),"");	gtk_entry_set_text(GTK_ENTRY(icq),"");	gtk_entry_set_text(GTK_ENTRY(yahoo),"");	gtk_entry_set_text(GTK_ENTRY(msn),"");	gtk_entry_set_text(GTK_ENTRY(workphone),"");	gtk_entry_set_text(GTK_ENTRY(workmobile),"");	gtk_entry_set_text(GTK_ENTRY(workemail),"");	gtk_combo_box_set_active(GTK_COMBO_BOX(combo),-1);	gtk_combo_box_set_active(GTK_COMBO_BOX(groupcombo),0);}voidon_new_activate                        (GtkMenuItem     *menuitem,                                        gpointer         user_data){	GtkWidget* button = lookup_widget(GTK_WIDGET(menuitem), "newbutton");	on_newbutton_clicked(GTK_BUTTON(button), NULL);}voidon_save_activate                       (GtkMenuItem     *menuitem,                                        gpointer         user_data){	GtkWidget* button = lookup_widget(GTK_WIDGET(menuitem), "savebutton");	on_savebutton_clicked(GTK_BUTTON(button),NULL);}voidon_delete_activate                     (GtkMenuItem     *menuitem,                                        gpointer         user_data){	GtkWidget* button = lookup_widget(GTK_WIDGET(menuitem), "deletebutton");	on_deletebutton_clicked(GTK_BUTTON(button),NULL);}voidon_quit_activate                       (GtkMenuItem     *menuitem,                                        gpointer         user_data){	gtk_main_quit();}voidon_about_activate                      (GtkMenuItem     *menuitem,                                        gpointer         user_data){	GtkWidget* about = create_aboutdialog1();	gtk_dialog_run(GTK_DIALOG (about));  	gtk_widget_destroy (about);}voidon_buddy_button_clicked                (GtkButton       *button,                                        gpointer         user_data){	GtkWidget* chooser = create_filechooserdialog();	GtkFileFilter *filter = gtk_file_filter_new ();	gtk_file_filter_add_pixbuf_formats(filter);	gtk_file_filter_set_name(filter,"Known image types");	gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(chooser),filter);	int result = gtk_dialog_run(GTK_DIALOG(chooser));	char *filename;	GtkWidget* image = lookup_widget(GTK_WIDGET(button), "buddy");	GtkWidget* label = lookup_widget(GTK_WIDGET(button), "url");	switch (result)  	{      	case GTK_RESPONSE_OK:    		filename = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser));		gtk_image_set_from_file(GTK_IMAGE(image),filename);		gtk_label_set_text(GTK_LABEL(label),filename);		break;		case 123:		gtk_image_set_from_file(GTK_IMAGE(image),"/usr/share/gfa/pixmaps/person.png");		gtk_label_set_text(GTK_LABEL(label),"/usr/share/gfa/pixmaps/person.png");

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -