#include #include //Prototipos de funciones void mensaje(GtkWidget *texto); //Funciones para terminar el programa static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data); static void destroy(GtkWidget *widget, gpointer data); //Programa principal int 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 funciones void mensaje(GtkWidget *texto) { gchar buffer[50]; strcpy(buffer, gtk_entry_get_text(GTK_ENTRY(texto))); g_print("%s\n", buffer); } //Funciones para terminar el Programa static 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; }