GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | Implemented Interfaces | Properties |
GtkFileSelectionGtkFileSelection Приглашение ввести имя файла или каталога |
#include <gtk/gtk.h>
GtkFileSelection;
GtkWidget* gtk_file_selection_new (const gchar *title);
void gtk_file_selection_set_filename (GtkFileSelection *filesel,
const gchar *filename);
const gchar* gtk_file_selection_get_filename
(GtkFileSelection *filesel);
void gtk_file_selection_complete (GtkFileSelection *filesel,
const gchar *pattern);
void gtk_file_selection_show_fileop_buttons
(GtkFileSelection *filesel);
void gtk_file_selection_hide_fileop_buttons
(GtkFileSelection *filesel);
gchar** gtk_file_selection_get_selections
(GtkFileSelection *filesel);
void gtk_file_selection_set_select_multiple
(GtkFileSelection *filesel,
gboolean select_multiple);
gboolean gtk_file_selection_get_select_multiple
(GtkFileSelection *filesel);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkWidget
+----GtkContainer
+----GtkBin
+----GtkWindow
+----GtkDialog
+----GtkFileSelection
GtkFileSelection реализует AtkImplementorIface.
"filename" gchararray : Read / Write
"select-multiple" gboolean : Read / Write
"show-fileops" gboolean : Read / Write
GtkFileSelection должен использоваться для получения от пользователя имени файла или каталога. Он создаёт новое окно диалога содержащее список каталогов и список файлов соответствующих текущемму рабочему каталогу. Файловой системой можно управлять используя список каталогов или выпадающее меню истории. Альтернативно, клавиша TAB может использоваться для дополнения используемого имени файла как это обычно делается в текстовых редакторах таких как emacs и jed.
Диалоги выбора файла создаются с
помощью вызова gtk_file_selection_new()
.
Имя файла по умолчанию может быть
установлено используя
gtk_file_selection_set_filename()
а выбранное имя файла определяется с
помощью gtk_file_selection_get_filename()
.
Используйте gtk_file_selection_complete()
для отображения файлов и каталогов
соответствующих определенному шаблону.
Например это можно использовать для
отображения только *.txt файлов, или только
файлов начинающихся с gtk*.
Простые файловые операции; создание
каталога, удаление файла и переименование
файла, доступны из кнопок в верху диалога.
Они могут быть скрыты используя
gtk_file_selection_hide_fileop_buttons()
и показаны снова используя
gtk_file_selection_show_fileop_buttons()
.
Пример 1. Получение имя файла от пользователя.
/* Виджет выбора файла и строка хранения выбранного имени файла */
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;
/* Создаём селектор */
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);
/* Убеждаемся в закрытие диалога после нажатия кнопки пользователем. */
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);
/* Отображаем диалог */
gtk_widget_show (file_selector);
}
typedef struct {
GtkWidget *dir_list;
GtkWidget *file_list;
GtkWidget *selection_entry;
GtkWidget *selection_text;
GtkWidget *main_vbox;
GtkWidget *ok_button;
GtkWidget *cancel_button;
GtkWidget *help_button;
GtkWidget *history_pulldown;
GtkWidget *history_menu;
GList *history_list;
GtkWidget *fileop_dialog;
GtkWidget *fileop_entry;
gchar *fileop_file;
gpointer cmpl_state;
GtkWidget *fileop_c_dir;
GtkWidget *fileop_del_file;
GtkWidget *fileop_ren_file;
GtkWidget *button_area;
GtkWidget *action_area;
} GtkFileSelection;
GtkFileSelection структура содержит следующие GtkWidget поля:
*fileop_dialog; |
Диалог используемый для отображения GtkFileSelection. Он может быть настроен, добавлены/удалены виджеты из него, используя стандартные функции GtkDialog. |
*ok_button, *cancel_button; |
Две основные кнопки с которыми связываются сигналы для выполнения действий когда пользователь нажимает OK или Cancel. |
*history_pulldown; |
GtkOptionMenu используется для выпадающего меню истории каталога. |
*fileop_c_dir, *fileop_del_file, *fileop_ren_file; |
Кнопки которые появляются в верху
диалога выбора файла. Эти кнопки
действий ("operation buttons") могут быть
скрыты и вновь показаны с помощью
|
GtkWidget* gtk_file_selection_new (const gchar *title);Создаёт новый диалог выбора файла. По умолчанию он будет содержать GtkTreeView текущемго рабочего каталога приложения и список файлов. Присутствуют также операционные кнопки позволяющие пользователю создавать каталоги, удалять файлы или переименовывать их.
|
Сообщение которое будет помещено в заголовок панели запроса файла. |
Возвращает : |
Новый выбор файла. |
void gtk_file_selection_set_filename (GtkFileSelection *filesel,
const gchar *filename);
Устанавливает путь по умолчанию для
запроса файла. Если filename
включает путь каталога, то этот путь
используется как текущий рабочий
каталог.
Следовательно может быть открыт запрос
текущемго рабочего каталога и без имени
файла, filename
должен иметь
конечный разделитель каталога.
Кодировка filename
это
преимущественно кодировка имени файла
GLib, которая может не быть UTF-8. Смотрите
g_filename_from_utf8()
.
|
|
|
Строка для установки имени файла по умолчанию. |
const gchar* gtk_file_selection_get_filename
(GtkFileSelection *filesel);
Эта функция возвращает выбранное имя
файла в кодировке имен файлов GLib. Для
преобразования в UTF-8, вызовите
g_filename_to_utf8()
.
Возвращаемая строка указывает статический
буфер и должна быть скопирована, если
вы планируете иметь её в наличии.
Если нет выбранного файла, то возвращается путь выбранного каталога.
|
|
Возвращает : |
Текущий выбранный файл в дисковой кодировке. |
void gtk_file_selection_complete (GtkFileSelection *filesel,
const gchar *pattern);
Попытается сопоставить pattern
доступные имена файлов или подкаталогов
в текущемм каталоге. Если соответствие
определено, соответствующее имя файла
появится в поле ввода текста диалога
выбора файла. Если определено частичное
соответствие, список "Files" будет
содержать имена файлов которые
соответствуют этой части, а список
"Folders" те каталоги которые
соответствуют данной части.
|
|
|
Строка символов которым могут или не могут соответствовать имена файлов в текущемм каталоге. |
void gtk_file_selection_show_fileop_buttons
(GtkFileSelection *filesel);
Показывает кнопки файловых операций, если они предварительно были скрыты. Остальная часть виджетов в диалоге соответственно изменяется.
|
void gtk_file_selection_hide_fileop_buttons
(GtkFileSelection *filesel);
Скрывает кнопки файловых операций которые обычно появляются в верху диалога. Может быть полезной, если вам понадобится создать измененный селектор файлов, основываясь на GtkFileSelection.
|
gchar** gtk_file_selection_get_selections
(GtkFileSelection *filesel);
Определяет список выбранных пользователем файлов в диалоговом окне. Эта функция предназначена для использования при выборе пользователем множества файлов в списке.
Имя файла в кодировке имен файлов
GLib. Для преобразования в UTF-8, вызовите
g_filename_to_utf8()
на каждой строке.
|
|
Возвращает : |
|
void gtk_file_selection_set_select_multiple
(GtkFileSelection *filesel,
gboolean select_multiple);
Устанавливает позволен ли пользователю
множественный выбор файлов в списке.
Используйте gtk_file_selection_get_selections()
для получения списка выбранных файлов.
|
|
|
Позволено или нет пользователю выбирать множество файлов в списке. |
gboolean gtk_file_selection_get_select_multiple
(GtkFileSelection *filesel);
Определяет может ли пользователь
выбирать множество файлов в списке или
нет. Смотрите gtk_file_selection_set_select_multiple()
.
|
|
Возвращает : |
|
filename
""filename" gchararray : Read / WriteТекущее выбранное имя файла.
Значение по умолчанию : NULL
Свойство "
select-multiple
""select-multiple" gboolean : Read / WriteПозволен ли множественный выбор файлов.
Значение по умолчанию : FALSE
Свойство "
show-fileops
""show-fileops" gboolean : Read / WriteОтображаются ли кнопки файловых операций.
Значение по умолчанию : FALSE
Смотрите также
Добавьте ваши собственные виджеты в GtkFileSelection. |