Guest User

Untitled

a guest
Jan 12th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.73 KB | None | 0 0
  1. #include <gtk/gtk.h>
  2.  
  3. typedef struct main_dialog_type {
  4.     GtkWidget *entrybox;
  5.     GtkWidget *label;
  6. } MainDialog;
  7.  
  8. static void destroy(GtkWidget *widget, gpointer data) {
  9.     gtk_main_quit();
  10. }
  11.  
  12. static void hello(GtkWidget *widget, gpointer data) {
  13.     GtkWidget* p1 = ((MainDialog *) data) -> entrybox; /* Recuperamos los parámetros. */
  14.     GtkWidget *dialog = gtk_about_dialog_new();
  15.     gchar *cadena = gtk_entry_get_text(GTK_ENTRY(p1)); /* Guardamos el contenido del EntryBox apuntado. */
  16.  
  17.     gtk_about_dialog_set_comments(GTK_ABOUT_DIALOG(dialog), cadena);
  18.     gtk_dialog_run(GTK_DIALOG (dialog));
  19.     gtk_widget_destroy(dialog);
  20. }
  21.  
  22. int main(int argc, char *argv[]) {
  23.     MainDialog param1;
  24.  
  25.     /* GtkWidget es puntero contenedor para los idg */
  26.     GtkWidget *window1;
  27.     GtkWidget *vbox1;
  28.     GtkWidget *label1;
  29.     GtkWidget *entrybox1;
  30.     GtkWidget *button1;
  31.  
  32.     gtk_init(&argc, &argv);
  33.  
  34.     window1 = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  35.     g_signal_connect(window1, "destroy", G_CALLBACK(destroy), NULL);
  36.     gtk_window_set_default_size(GTK_WINDOW(window1), 200, 100);
  37.  
  38.     vbox1 = gtk_vbox_new(FALSE, 4);
  39.  
  40.     label1 = gtk_label_new("Mete tu texto <3");
  41.     entrybox1 = gtk_entry_new();
  42.     button1 = gtk_button_new_with_label("OK");
  43.  
  44.     param1.entrybox = entrybox1;
  45.     param1.label = label1;
  46.     g_signal_connect(button1, "clicked", G_CALLBACK(hello), &param1);
  47.  
  48.     gtk_box_pack_start(GTK_BOX(vbox1), label1, FALSE, FALSE, 0);
  49.     gtk_box_pack_start(GTK_BOX(vbox1), entrybox1, FALSE, FALSE, 0);
  50.     gtk_box_pack_end(GTK_BOX(vbox1), button1, FALSE, FALSE, 0);
  51.  
  52.     gtk_container_add(GTK_CONTAINER(window1), vbox1);
  53.  
  54.     gtk_widget_show(label1);
  55.     gtk_widget_show(entrybox1);
  56.     gtk_widget_show(button1);
  57.     gtk_widget_show(vbox1);
  58.     gtk_widget_show(window1);
  59.  
  60.     gtk_main();
  61.  
  62.     return 0;
  63. }
Add Comment
Please, Sign In to add comment