<!-- ##### SECTION Title ##### -->
GnomeFileEntry

<!-- ##### SECTION Short_Description ##### -->
An entry widget for file names.

<!-- ##### SECTION Long_Description ##### -->
<para>
  This widget provides an entry box with history (a #GnomeEntry) and a
  button which can pop up a file selector dialog box
  (GtkFileSelection). It also accepts DND drops from the filemanager
  and other sources.
</para>

<para>
The following is an example of its use. It is a collection of excerpts
from the sound section of the GNOME control center.</para>

<informalexample>
  <programlisting>
static SoundProps *
sound_properties_create(void)
{
   char *path;
   GtkWidget *btn_filename;
   SoundProps *retval;

...
   /* Create the gnome_file_entry widget, with a given title */

   btn_filename = gnome_file_entry_new(NULL, _("Select sound file"));

   /* sets the default path */
   path = gnome_datadir_file ("sounds/");
   gnome_file_entry_set_default_path(GNOME_FILE_ENTRY (retval->btn_filename), path);

   /* Connect the function sound_properties_event_change_file to the
   event "changed" of the entry widget of gnome_file_entry. The
   function will be called with a pointer to the entry widget in the
   gnome_file_entry and the "retval" value. Look at
   sound_properties_event_change_file below. */

   gtk_signal_connect(GTK_OBJECT(gnome_file_entry_gtk_entry(GNOME_FILE_ENTRY(btn_filename))),
                       "changed",
                       GTK_SIGNAL_FUNC(sound_properties_event_change_file),
                       retval);
...

}
...

/* This is the callback function for the "changed" event of the
gnome_file_entry.  */

static void
sound_properties_event_change_file(GtkEditable *entry, SoundProps *props)
{
    char *tmp, *sounddir, *tmp2;
    
...
    /* Get the current value of the gnome_file_entry */
    tmp = gtk_entry_get_text(GTK_ENTRY(entry));

...

}

...

static void
sound_properties_event_play(GtkWidget *widget, SoundProps *props)
{
    GtkWidget *entry;

    /* This code shows how to read the current value of the widget,
       you first have to get a pointer to the entry widget of the
       gnome_file_entry*/

    entry = gnome_file_entry_gtk_entry(GNOME_FILE_ENTRY(props->btn_filename));

    gnome_sound_play(gtk_entry_get_text(GTK_ENTRY(entry)));
}

...

/* This is the way that you set the value of the widget */

GtkWidget *btn_filename;

gtk_entry_set_text(GTK_ENTRY(gnome_file_entry_gtk_entry(GNOME_FILE_ENTRY(btn_filename))),
ctmp);


  </programlisting>
</informalexample>

<!-- ##### SECTION See_Also ##### -->
<para>
  #GnomeEntry, #GnomeIconEntry, #GnomePixmapEntry, #GnomeNumberEntry
</para>

<!-- ##### STRUCT GnomeFileEntry ##### -->
<para>

</para>


<!-- ##### FUNCTION gnome_file_entry_new ##### -->
<para>
</para>

@history_id: An id for the entry widget (see #GnomeEntry)
@browse_dialog_title: Title for the dialog window.
@Returns: A pointer to the widget, NULL if it cannot be created.


<!-- ##### FUNCTION gnome_file_entry_gnome_entry ##### -->
<para>
</para>

@fentry: 
@Returns: 


<!-- ##### FUNCTION gnome_file_entry_gtk_entry ##### -->
<para>
</para>

@fentry: 
@Returns: 


<!-- ##### FUNCTION gnome_file_entry_set_title ##### -->
<para>
</para>

@fentry: Pointer to the #GnomeFileEntry widget
@browse_dialog_title: String with the new title


<!-- ##### FUNCTION gnome_file_entry_set_default_path ##### -->
<para>
</para>

@fentry: 
@path: 


<!-- ##### FUNCTION gnome_file_entry_set_directory ##### -->
<para>

</para>

@fentry: 
@directory_entry: 


<!-- ##### FUNCTION gnome_file_entry_get_full_path ##### -->
<para>

</para>

@fentry: 
@file_must_exist: 
@Returns: 


<!-- ##### FUNCTION gnome_file_entry_set_modal ##### -->
<para>

</para>

@fentry: 
@is_modal: 


<!-- ##### SIGNAL GnomeFileEntry::browse-clicked ##### -->
<para>
  Signal emitted when the "browse" button is clicked. This is so that you
  can add stuff to the file selector or to override this method.
</para>

@fileentry: the object which received the signal.

