All pastes #460254 Raw Edit

biomega

public c v1 · immutable
#460254 ·published 2007-04-26 23:21 UTC
rendered paste body
#include <gtk/gtk.h>#include <string.h>//Prototipos de funcionesvoid mensaje(GtkWidget *button, GtkWidget *texto);void text2label(GtkWidget *button, GtkWidget *etiqueta);//Funciones para terminar el programastatic gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data);static void destroy(GtkWidget *widget, gpointer data);struct data {   GtkWidget *window;   GtkWidget *button, *boton, *buton;   GtkWidget *mainbox, *box;   GtkWidget *label;   GtkWidget *entrybox;} *widgets;//Programa principalint main(int argc, char *argv[]){   /* Se inicia GTK */   gtk_init(&argc, &argv);   /* Se crean los widgets */   widgets->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);   widgets->mainbox = gtk_vbox_new(FALSE, 0);   widgets->box = gtk_hbox_new(FALSE, 0);   widgets->button = gtk_button_new_with_label("Imprimir");   widgets->buton = gtk_button_new_with_label("Terminal");   widgets->boton = gtk_button_new_with_label("Salir");   widgets->label = gtk_label_new("Escribe algo:");   widgets->entrybox = gtk_entry_new();   /* Se crean las funciones para finalizar el programa */   g_signal_connect(widgets->window, "delete_event", G_CALLBACK(delete_event), NULL);   g_signal_connect(widgets->window, "destroy", G_CALLBACK(destroy), NULL);   g_signal_connect(widgets->boton, "clicked", GTK_SIGNAL_FUNC(destroy), GTK_OBJECT(widgets->window));   /* Funciones para el boton "Imprimir" */   g_signal_connect(widgets->buton, "clicked", GTK_SIGNAL_FUNC(mensaje), GTK_ENTRY(widgets->entrybox));   //g_signal_connect(widgets->button, "clicked", GTK_SIGNAL_FUNC(text2label), label);   /* Agregamos la etiqueta, la caja de texto y los botones */   gtk_box_pack_start(GTK_BOX(widgets->mainbox), widgets->label, TRUE, TRUE, 0);   gtk_box_pack_start(GTK_BOX(widgets->mainbox), widgets->entrybox, TRUE, TRUE, 0);   gtk_box_pack_start(GTK_BOX(widgets->mainbox), widgets->box, TRUE, TRUE, 0);   /* Agregamos los botones a la caja */   gtk_box_pack_start(GTK_BOX(widgets->box), widgets->button, TRUE, TRUE, 0);   gtk_box_pack_start(GTK_BOX(widgets->box), widgets->buton, TRUE, TRUE, 0);   gtk_box_pack_start(GTK_BOX(widgets->box), widgets->boton, TRUE, TRUE, 0);   /* Se agrega la caja a la ventana */   gtk_container_add(GTK_CONTAINER(widgets->window), widgets->mainbox);   /* Se muestran los widgets */   gtk_widget_show(widgets->button);   gtk_widget_show(widgets->buton);   gtk_widget_show(widgets->boton);   gtk_widget_show(widgets->label);   gtk_widget_show(widgets->entrybox);   gtk_widget_show(widgets->box);   gtk_widget_show(widgets->mainbox);   gtk_widget_show(widgets->window);   /* Se ejecuta la aplicacion */   gtk_main();    return 0;}//Definicion de funcionesvoid mensaje(GtkWidget *button, GtkWidget *texto){   gchar buffer[50];   strcpy(buffer, gtk_entry_get_text(GTK_ENTRY(texto)));   g_print("%s\n", buffer);}void text2label(GtkWidget *button, GtkWidget *etiqueta){  gtk_label_set_text(GTK_LABEL(etiqueta), "Boton aplastado");}//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;}