Top | ![]() |
![]() |
![]() |
![]() |
GtkFileSelection has been superseded by the newer GtkFileChooser family of widgets.
GtkFileSelection should be used to retrieve file or directory names from the user. It will create a new dialog window containing a directory list, and a file list corresponding to the current working directory. The filesystem can be navigated using the directory list or the drop-down history menu. Alternatively, the TAB key can be used to navigate using filename completion - common in text based editors such as emacs and jed.
File selection dialogs are created with a call to gtk_file_selection_new()
.
The default filename can be set using gtk_file_selection_set_filename()
and the selected filename retrieved using gtk_file_selection_get_filename()
.
Use gtk_file_selection_complete()
to display files and directories
that match a given pattern. This can be used for example, to show only
*.txt files, or only files beginning with gtk*.
Simple file operations; create directory, delete file, and rename file, are available from buttons at the top of the dialog. These can be hidden using gtk_file_selection_hide_fileop_buttons()
and shown again using gtk_file_selection_show_fileop_buttons()
.
Example 47. Getting a filename from the user.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
/* The file selection widget and the string to store the chosen filename */ void store_filename (GtkWidget *widget, gpointer user_data) { GtkWidget *file_selector = GTK_WIDGET (user_data); const gchar *selected_filename; selected_filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (file_selector)); g_print ("Selected filename: %s\n", selected_filename); } void create_file_selection (void) { GtkWidget *file_selector; /* Create the selector */ file_selector = gtk_file_selection_new ("Please select a file for editing."); g_signal_connect (GTK_FILE_SELECTION (file_selector)->ok_button, "clicked", G_CALLBACK (store_filename), file_selector); /* Ensure that the dialog box is destroyed when the user clicks a button. */ g_signal_connect_swapped (GTK_FILE_SELECTION (file_selector)->ok_button, "clicked", G_CALLBACK (gtk_widget_destroy), file_selector); g_signal_connect_swapped (GTK_FILE_SELECTION (file_selector)->cancel_button, "clicked", G_CALLBACK (gtk_widget_destroy), file_selector); /* Display that dialog */ gtk_widget_show (file_selector); } |