All pastes #445575 Raw Edit

biomega

public c v1 · immutable
·published 2007-04-17 23:03 UTC
rendered paste body
#include <gtk/gtk.h>static void hola();static void destroy(GtkWidget *widget, gpointer data);static gboolean delete_event(GtkWidget *widget, GdkEvent *event, gpointer data);struct datos {   GtkWidget *entrada;   GtkWidget *etiqueta;};typedef struct datos STRUC;static void print_to_label(STRUC *some_data);int main(int argc, char *argv[]){   /* Se definene los widgets */   GtkWidget *window;   GtkWidget *button, *boton;   GtkWidget *mainbox, *box;   GtkWidget *label;   GtkWidget *entrybox;   /* Se define la estructura para pasarla al callback */      STRUC *info;   /* 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 asignan los datos a la estructura */   info->entrada = entrybox;   info->etiqueta = label;   /* 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);   /* Se asignan las funciones para los botones */   gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(hola), NULL);   gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(print_to_label), info);   gtk_signal_connect(GTK_OBJECT(boton), "clicked", GTK_SIGNAL_FUNC(destroy), GTK_OBJECT(window));   /* 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;}static void hola(){   g_print("Este mensaje va a la consola\n");}static void print_to_label(STRUC *some_data){   /* Iniciamos algunas variables que ayudan */   gchar buffer[50];   GtkWidget *entry;   GtkWidget *label;   /* Obtenemos los datos y los usamos */   buffer = gtk_entry_get_text(GTK_ENTRY(some_data->entrada));   gtk_label_set_text(GTK_LABEL(some_data->etiqueta), buffer);}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;}