rendered paste body#include <gtk/gtk.h>#include <string.h>//Prototipos de funcionesvoid mensaje(GtkWidget *texto);//Funciones para terminar el programastatic gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data);static void destroy(GtkWidget *widget, gpointer data);//Programa principalint main(int argc, char *argv[]){ /* Se definene los widgets */ GtkWidget *window; GtkWidget *button, *boton; GtkWidget *mainbox, *box; GtkWidget *label; GtkWidget *entrybox; /* Se inicia GTK */ gtk_init(&argc, &argv); /* Se crean los widgets */ window = gtk_window_new(GTK_WINDOW_TOPLEVEL); mainbox = gtk_vbox_new(FALSE, 0); box = gtk_hbox_new(FALSE, 0); button = gtk_button_new_with_label("Imprimir"); boton = gtk_button_new_with_label("Salir"); label = gtk_label_new("Escribe algo:"); entrybox = gtk_entry_new(); /* Se crean las funciones para finalizar el programa */ g_signal_connect(G_OBJECT(window), "delete_event", G_CALLBACK(delete_event), NULL); g_signal_connect(G_OBJECT(window), "destroy", G_CALLBACK(destroy), NULL); g_signal_connect(GTK_OBJECT(boton), "clicked", GTK_SIGNAL_FUNC(destroy), GTK_OBJECT(window)); /* Funciones para el boton "Imprimir" */ g_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(mensaje), GTK_OBJECT(entrybox)); /* Agregamos la etiqueta, la caja de texto y los botones */ gtk_box_pack_start(GTK_BOX(mainbox), label, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(mainbox), entrybox, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(mainbox), box, TRUE, TRUE, 0); /* Agregamos los botones a la caja */ gtk_box_pack_start(GTK_BOX(box), button, TRUE, TRUE, 0); gtk_box_pack_start(GTK_BOX(box), boton, TRUE, TRUE, 0); /* Se agrega la caja a la ventana */ gtk_container_add(GTK_CONTAINER(window), mainbox); /* Se muestran los widgets */ gtk_widget_show(button); gtk_widget_show(boton); gtk_widget_show(label); gtk_widget_show(entrybox); gtk_widget_show(box); gtk_widget_show(mainbox); gtk_widget_show(window); /* Se ejecuta la aplicacion */ gtk_main(); return 0;}//Definicion de funcionesvoid mensaje(GtkWidget *texto){ gchar buffer[50]; strcpy(buffer, gtk_entry_get_text(GTK_ENTRY(texto))); g_print("%s\n", buffer);}//Funciones para terminar el Programastatic void destroy(GtkWidget *widget, gpointer data){ gtk_main_quit ();}static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data){ g_print ("delete event occurred\n"); return FALSE;}