Re: Dialog-like window?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I just make myself a dialog in Glade and then use gtk_dialog_run... the

result it returns just lets you know what button was clicked... once 
that is done you can take any information you want from the dialog 
before returning from the function. Below is a little example. Let's say 
you have a dialog made in glade called "dialog1" and on that dialog you 
have the stock "Ok" and "Cancel" buttons. Inside the dialog is an Entry 
called "entry1" where you want to get a string from the user.

You could then use this "dialog" as a function such as:  g_print("You 
typed: %s", dialog_get_string ());  or   gchar *some_string = 
dialog_get_string ();

gchar *
dialog_get_string ()
{
       GladeXML                *gxml = NULL;
       GtkWidget               *dialog = NULL;
       GtkWidget               *entry = NULL;
       GtkResponseType         response;   
       gchar                   *str = NULL;
      
       /* build dialog from glade */

       gxml = glade_xml_new ("gui.glade", "dialog1", NULL); 
      
       dialog = glade_xml_get_widget (gxml, "dialog1");
       entry = glade_xml_get_widget (gxml, "entry1");
      
       response = gtk_dialog_run (GTK_DIALOG(dialog));
      
       /*
       function sits here waiting for the user to click a button
       on my home-made dialog. Let's say that in this example I
       have "Ok" and "Cancel". I will just return str as NULL if
       the user clicks cancel, but will return the contents of the
       entry if they click "Ok".
       */

       if (response == GTK_RESPONSE_OK)
       {
               /* get value from the text */
               str = g_strdup (gtk_entry_get_text (GTK_ENTRY (entry)));

               /*
               this is also where you could get values to populate
               some struct you want to return to user
               */
              
       }    

       /* clean up */
       gtk_widget_destroy (dialog);
       gtk_object_unref (GTK_OBJECT (gxml));
      
       return str;
}


- Micah Carrick
 www.micahcarrick.com     www.gtkforums.com

Fabricio Rocha wrote:
> Dudes,
>
>        Is there a way of creating a window which, when shown, will cause 
> the caller function to sit and wait until it gives a result? I mean, 
> something like the GtkDialogs and gtk_dialog_run. However, as far as I 
> understood, a normal GtkDialog only "returns" integer values.
>
>        I ask this because I would like to have a certain dialog working 
> itself like a function, building a structure according to whatever is 
> shown or input in its widgets, and then returning this structure (or any 
> other type) when the user clicks on OK. Then the program would continue 
> from the point where the "open_dialog function" was called, using the 
> data structure (or any other value type) which has been created with the 
> dialog.
>
>          I have seen this behaviour in other programming 
> languages/toolkits, but still haven´t got a clue of how to emulate this 
> in GTK. What do you suggest?
>
> Thank you!
>
> Fabricio Rocha
> Brasilia, Brasil
> The RADiola Project
> http://radiola.sourceforge.net
>
> 		
> _______________________________________________________ 
> Yahoo! Mail - Sempre a melhor opção para você! 
> Experimente já e veja as novidades. 
> http://br.yahoo.com/mailbeta/tudonovo/
> _______________________________________________
> gtk-app-devel-list mailing list
> gtk-app-devel-list@xxxxxxxxx
> http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list
>
>   


_______________________________________________
gtk-list mailing list
gtk-list@xxxxxxxxx
http://mail.gnome.org/mailman/listinfo/gtk-list


[Index of Archives]     [Touch Screen Library]     [GIMP Users]     [Gnome]     [KDE]     [Yosemite News]     [Steve's Art]

  Powered by Linux