#include gboolean delete_event(GtkWidget * w, GdkEvent * e, gpointer data) { gtk_main_quit(); return FALSE; } void mycall (GtkWidget * w , GdkEvent * e, GtkWidget *user_data) { GtkTextBuffer * buffer; GtkTextIter *start_it,*end_it; /*if(user_data)g_print("text view is not null\n"); else g_print("text view is null\n");*/ buffer=gtk_text_view_get_buffer(GTK_TEXT_VIEW(user_data)); gtk_text_buffer_get_start_iter(GTK_TEXT_BUFFER(buffer),start_it); gtk_text_buffer_get_end_iter(GTK_TEXT_BUFFER(buffer),end_it); g_print("%s\n",gtk_text_buffer_get_text(buffer,start_it,end_it,FALSE)); } int main(int argc, char *argv[]) { GtkWidget *window; GtkWidget *textview,*button,*vbox; gtk_init (&argc, &argv); window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_window_set_default_size(GTK_WINDOW(window),400,300); g_signal_connect(G_OBJECT(window),"delete_event",G_CALLBACK(delete_event),NULL); vbox=gtk_vbox_new(FALSE,0); button=gtk_button_new_with_label("Click me"); gtk_box_pack_start(GTK_BOX(vbox),button,FALSE,FALSE,0); gtk_widget_show(button); textview=gtk_text_view_new (); gtk_widget_show (textview); gtk_box_pack_start(GTK_BOX(vbox),textview,TRUE,TRUE,0); g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(mycall),textview); gtk_container_add (GTK_CONTAINER (window), vbox); gtk_widget_show(vbox); gtk_widget_show(window); gtk_main (); return 0; }