| |
GTK+ Reference Manual |
||||
---|---|---|---|---|
Top | Description | Object Hierarchy | | Known Implementations | Properties | Signals |
GtkFileChooserGtkFileChooser Интерфейс выбора файла используемый в GtkFileChooserWidget и GtkFileChooserDialog |
#include <gtk/gtk.h> GtkFileChooser; enum GtkFileChooserAction; enum GtkFileChooserConfirmation; #define GTK_FILE_CHOOSER_ERROR enum GtkFileChooserError; void gtk_file_chooser_set_action (GtkFileChooser *chooser, GtkFileChooserAction action); GtkFileChooserAction gtk_file_chooser_get_action (GtkFileChooser *chooser); void gtk_file_chooser_set_local_only (GtkFileChooser *chooser, gboolean local_only); gboolean gtk_file_chooser_get_local_only (GtkFileChooser *chooser); void gtk_file_chooser_set_select_multiple (GtkFileChooser *chooser, gboolean select_multiple); gboolean gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser); void gtk_file_chooser_set_show_hidden (GtkFileChooser *chooser, gboolean show_hidden); gboolean gtk_file_chooser_get_show_hidden (GtkFileChooser *chooser); void gtk_file_chooser_set_do_overwrite_confirmation (GtkFileChooser *chooser, gboolean do_overwrite_confirmation); gboolean gtk_file_chooser_get_do_overwrite_confirmation (GtkFileChooser *chooser); void gtk_file_chooser_set_current_name (GtkFileChooser *chooser, const gchar *name); gchar* gtk_file_chooser_get_filename (GtkFileChooser *chooser); gboolean gtk_file_chooser_set_filename (GtkFileChooser *chooser, const char *filename); gboolean gtk_file_chooser_select_filename (GtkFileChooser *chooser, const char *filename); void gtk_file_chooser_unselect_filename (GtkFileChooser *chooser, const char *filename); void gtk_file_chooser_select_all (GtkFileChooser *chooser); void gtk_file_chooser_unselect_all (GtkFileChooser *chooser); GSList* gtk_file_chooser_get_filenames (GtkFileChooser *chooser); gboolean gtk_file_chooser_set_current_folder (GtkFileChooser *chooser, const gchar *filename); gchar* gtk_file_chooser_get_current_folder (GtkFileChooser *chooser); gchar* gtk_file_chooser_get_uri (GtkFileChooser *chooser); gboolean gtk_file_chooser_set_uri (GtkFileChooser *chooser, const char *uri); gboolean gtk_file_chooser_select_uri (GtkFileChooser *chooser, const char *uri); void gtk_file_chooser_unselect_uri (GtkFileChooser *chooser, const char *uri); GSList* gtk_file_chooser_get_uris (GtkFileChooser *chooser); gboolean gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser, const gchar *uri); gchar* gtk_file_chooser_get_current_folder_uri (GtkFileChooser *chooser); void gtk_file_chooser_set_preview_widget (GtkFileChooser *chooser, GtkWidget *preview_widget); GtkWidget* gtk_file_chooser_get_preview_widget (GtkFileChooser *chooser); void gtk_file_chooser_set_preview_widget_active (GtkFileChooser *chooser, gboolean active); gboolean gtk_file_chooser_get_preview_widget_active (GtkFileChooser *chooser); void gtk_file_chooser_set_use_preview_label (GtkFileChooser *chooser, gboolean use_label); gboolean gtk_file_chooser_get_use_preview_label (GtkFileChooser *chooser); char* gtk_file_chooser_get_preview_filename (GtkFileChooser *chooser); char* gtk_file_chooser_get_preview_uri (GtkFileChooser *chooser); void gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser, GtkWidget *extra_widget); GtkWidget* gtk_file_chooser_get_extra_widget (GtkFileChooser *chooser); void gtk_file_chooser_add_filter (GtkFileChooser *chooser, GtkFileFilter *filter); void gtk_file_chooser_remove_filter (GtkFileChooser *chooser, GtkFileFilter *filter); GSList* gtk_file_chooser_list_filters (GtkFileChooser *chooser); void gtk_file_chooser_set_filter (GtkFileChooser *chooser, GtkFileFilter *filter); GtkFileFilter* gtk_file_chooser_get_filter (GtkFileChooser *chooser); gboolean gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, const char *folder, GError **error); gboolean gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, const char *folder, GError **error); GSList* gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser); gboolean gtk_file_chooser_add_shortcut_folder_uri (GtkFileChooser *chooser, const char *uri, GError **error); gboolean gtk_file_chooser_remove_shortcut_folder_uri (GtkFileChooser *chooser, const char *uri, GError **error); GSList* gtk_file_chooser_list_shortcut_folder_uris (GtkFileChooser *chooser);
GInterface +----GtkFileChooser
GtkFileChooser требует GtkWidget.
GtkFileChooser реализован в GtkFileChooserWidget, GtkFileChooserButton и GtkFileChooserDialog.
"action" GtkFileChooserAction : Read / Write "do-overwrite-confirmation" gboolean : Read / Write "extra-widget" GtkWidget : Read / Write "file-system-backend" gchararray : Write / Construct Only "filter" GtkFileFilter : Read / Write "local-only" gboolean : Read / Write "preview-widget" GtkWidget : Read / Write "preview-widget-active" gboolean : Read / Write "select-multiple" gboolean : Read / Write "show-hidden" gboolean : Read / Write "use-preview-label" gboolean : Read / Write
"confirm-overwrite" GtkFileChooserConfirmationuser_function (GtkFileChooser *filechooser, gpointer user_data) : Run last "current-folder-changed" void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last "file-activated" void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last "selection-changed" void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last "update-preview" void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last
GtkFileChooser это интерфейс который реализуется виджетами выбора файлов. В GTK+, основными объектами реализующими этот интерфейс являются GtkFileChooserWidget, GtkFileChooserDialog, и GtkFileChooserButton. Вам не нужно создавать объект реализующий GtkFileChooser интерфейс, исключая случаи когда вы пробуете приспособить существующий селектор файлов для экспозиции стандартного программного интерфейса.
GtkFileChooser учитывает ярлыки для различных мест файловой системы. По умолчанию они отображаются в левой области окна. Это может по началу немного запутать, ярлыки происходят из различных источников и с разными особенностями, поэтому здесь приводится объясняющая терминология:
Bookmarks |
Создаются пользователем, перетаскивая папки из правой части окна в левую, или используя "Add". Закладки могут быть переименованы или удалены пользователем. |
Shortcuts |
Может обеспечиваться приложением или основной абстракцией файловой системы (например и gnome-vfs и файловая система Windows обеспечивают "Desktop" ярлыки). Ярлыки могут модифицироваться пользователем. |
Volumes |
Обеспечиваются основной абстракцией файловой системы. Они являются "корнями" файловой системы. |
Когда пользователь заканчивает выбор
файла в GtkFileChooser,
ваша программа может получить каждое
выбранное имя как имя файла (filenames) или
как URIs. Для URIs, обычно применяются
завершающие правила если URI содержит
не-ASCII символы. Однако имена файлов
всегда возвращаются в наборе символов
определённом переменной окруженияя
G_FILENAME_ENCODING
. Пожалуйста посмотрите
документацию по Glib для получения большей
информации об этой переменной.
Это значит
что в то время как вы помещаете результат
gtk_file_chooser_get_filename()
в open(2)
или fopen(3)
, вы не
можете непосредственно установить его
как текст виджета GtkLabel,
за исключением случаев когда вы сначала
преобразуете его в UTF-8, которую поддерживают
все виджеты GTK+. Вы должны использовать
g_filename_to_utf8()
для преобразования файловых имен в
строку которую можно поместить в виджеты
GTK+.
Вы можете добавить выборочный виджет
просмотра в виджет выбора файла и затем
получить уведомление о том когда
предварительный просмотр должен
обновляться. Для установки виджета
предварительного просмотра используйте
gtk_file_chooser_set_preview_widget()
.
Затем, подключите сигнал
GtkFileChooser::update-preview
для получения уведомления об обновлении
содержимого предварительного просмотра.
Ваш обратный вызов должен использовать
gtk_file_chooser_get_preview_filename()
чтобы видеть какой предварительный
просмотр необходим. Как только вы
сгенерировали предварительный просмотр
для соответствующего файла, вы должны
вызвать gtk_file_chooser_set_preview_widget_active()
с логическим флагом указывающим полностью
ли сгенерирован предварительный
просмотр.
Пример 2. Образец использования
{ GtkImage *preview; ... preview = gtk_image_new (); gtk_file_chooser_set_preview_widget (my_file_chooser, preview); g_signal_connect (my_file_chooser, "update-preview", G_CALLBACK (update_preview_cb), preview); } static void update_preview_cb (GtkFileChooser *file_chooser, gpointer data) { GtkWidget *preview; char *filename; GdkPixbuf *pixbuf; gboolean have_preview; preview = GTK_WIDGET (data); filename = gtk_file_chooser_get_preview_filename (file_chooser); pixbuf = gdk_pixbuf_new_from_file_at_size (filename, 128, 128, NULL); have_preview = (pixbuf != NULL); g_free (filename); gtk_image_set_from_pixbuf (GTK_IMAGE (preview), pixbuf); if (pixbuf) gobject_unref (pixbuf); gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview); }
Вы можете добавить дополнительные
виджеты в селектор файлов для обеспечения
опций которые не представляет интерфейс
по умолчанию. Например, вы можете добавить
кнопки переключатели для получения
пользователем опции открытия файла
только для чтения. Вы можете использовать
gtk_file_chooser_set_extra_widget()
для вставки дополнительных виджетов в
селектор файлов.
Пример 3. Образец использования
{
GtkWidget *toggle;
...
toggle = gtk_check_button_new_with_label ("Open file read-only");
gtk_widget_show (toggle);
gtk_file_chooser_set_extra_widget (my_file_chooser, toggle);
}
Если вам нужно установить больше чем один виджет, вы можете использовать контейнер, такой как GtkVBox или GtkTable для встраивания ваших виджетов. Затем установить контейнер как целый дополнительный виджет.
Внутренне, GTK+ реализует интерфейс
выбора файла с закрытым
GtkFileChooserDefaultClass
. Этот виджет имеет
несколько привязок клавиш key
bindings и связанные с ними сигналы. Этот
раздел описывает доступные сигналы
привязок клавиш.
Пример 4. GtkFileChooser пример клавишных привязок
По умолчанию клавиши активизирующие
сигналы привязок клавиш в
GtkFileChooserDefaultClass
следующие:
Имя сигнала |
Комбинация клавиш по умолчанию |
location-popup |
Control-L (пустой путь); / (путь "/")[a]; ~ (путь "~") |
up-folder |
Alt-Up[b] ; Backspace |
down-folder |
Alt-Down |
home-folder |
Alt-Home |
desktop-folder |
Alt-D |
quick-bookmark |
Alt-1 через Alt-0 |
[a] Поддерживается и клавиша / и клавиша "разделить" цифровой клавиатуры. [b] Поддерживаются и клавиши Up индивидуальной клавиатуры и клавиша Up цифровой клавиатуры. |
Вы можете изменить значения по
умолчанию на собственные. Например, для
добавления модификатора Shift
к некоторым привязкам по умолчанию, вы
можете включить следующий фрагмент в
ваш .gtkrc-2.0
файл:
binding "my-own-gtkfilechooser-bindings" { bind "<Alt><Shift>Up" { "up-folder" () } bind "<Alt><Shift>Down" { "down-folder" () } bind "<Alt><Shift>Home" { "home-folder" () } } class "GtkFileChooserDefault" binding "my-own-gtkfilechooser-bindings"
void user_function (GtkFileChooserDefault *chooser, const char *path, gpointer user_data);
Используется для отображения селектором
файла диалога "Location", который
используется для ручного ввода имени
выбираемого файла. Параметр path
это строка которая вставляется в
текстовый ввод для определения имени
файла. По умолчанию диалог ввода файла
появляется при нажатии Control-L
с пустой строкой "" в параметре
path
. А также при нажатии на
/ (слэш) появляется строка ввода
имени файла с параметром path
равным строке "/
" (слэш): это
позволяет вам вводить путь имени файла
или каталога. В Unix системах, параметр
path
равный строке "~/"
приводит непосредственно в домашний
каталог.
|
объект получающий сигнал. |
|
Содержимое по умолчанию для текстового ввода имени файла |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
Вы можете
создать свою собственную привязку для
сигнала всплывающего размещения с
выборочной строкой параметра path
и иметь заготовочную форму для для
лёгкого ввода закладок. Например, вы
часто обращаетесь к /home/username/misc
.
Тогда вы можете создать горячую клавишу
Alt-M включив следующий
код в ваш .gtkrc-2.0
:
binding "misc-shortcut" { bind "<Alt>M" { "location-popup" ("/home/username/misc") } } class "GtkFileChooserDefault" binding "misc-shortcut"
void user_function (GtkFileChooserDefault *chooser, gpointer user_data);
Этот сигнал заставляет селектор файлов обратиться к родительской папке текущемго каталога в иерархии файлов. По умолчанию это происходит при нажатии клавиши Backspace и Alt-Up (клавиша Up на цифровой клавиатуре также работает).
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooserDefault *chooser, gpointer user_data);
Этот сигнал заставляет селектор файлов обратиться к дочерней папке текущемго каталога в иерархии файлов. Подкаталог который будет использован для отображения в пути панели виджета селектора файлов. Например, если путь отображаемый в панели "/foo/bar/baz", то в этом случае селектор файлов переключится на подкаталог "baz". По умолчанию это управляется нажатием Alt-Down (клавиша Down цифровой клавиатуры также поддерживается).
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooserDefault *chooser, gpointer user_data);
Этот сигнал заставляет селектор файлов показать домашний каталог пользователя в списке файлов. По умолчанию он управляется клавишами Alt-Home (клавиша Home цифровой клавиатуры также поддерживается).
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooserDefault *chooser, gpointer user_data);
Этот сигнал заставляет показать каталог рабочего стола пользователя. По умолчанию управляется с помощью Alt-D.
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooserDefault *chooser, gint bookmark_index, gpointer user_data);
Используется для создания переключателя
селектора файлов в закладке определённой
параметром bookmark_index
. Например,
если вы имеете дерево закладок, вы можете
поместить 0, 1, 2 в этот сигнал для
переключения каждого элемента
соответственно. По умолчанию привязан
к Alt-1, Alt-2,
и так далее до Alt-0.
Помните что в привязке по умолчанию,
Alt-1 фактически
определён для переключения закладки с
индексом 0, и далее последовательно;
Alt-0 определён для
переключения закладки с индексом 10.
|
объект получающий сигнал. |
|
Перечень закладок для переключения; индексация начинается с 0. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
typedef struct _GtkFileChooser GtkFileChooser;
typedef enum { GTK_FILE_CHOOSER_ACTION_OPEN, GTK_FILE_CHOOSER_ACTION_SAVE, GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER, GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER } GtkFileChooserAction;
Описывает используется ли GtkFileChooser для открытия существующих файлов или возможного сохранения нового файла.
Указывает режим открытия. Селектор файлов позволяет пользователю только открывать существующие файлы. |
|
Указывает режим сохранения. Селектор файлов позволяет открывать существующий файл или вводить новое имя файла. |
|
Указывает режим открытия для выбранных каталогов. Селектор файлов позволяет выбирать пользователю существующие каталоги. |
|
Указывает режим для создания новых каталогов. Селектор файлов позволяет пользователю вводить существующие имена каталогов или создавать новые. |
typedef enum { GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM, GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME, GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN } GtkFileChooserConfirmation;
Используется как возвращаемое значение
обработчиков для сигнала confirm-overwrite
GtkFileChooser
. Это значение определяет
представляет ли селектор файлов готовый
диалог подтверждений, принимающий
выбранное пользователем имя, или
позволяет пользователю выбрать другое
имя файла.
Селектор файлов представляет заготовленный диалог для подтверждения перезаписи существующего файла. |
|
Селектор файлов завершает и принимает выбор имени файла пользователем. |
|
Селектор файла продолжает выполнение позволяя пользователю выбрать другое имя файла. |
Начиная с версии 2.8
#define GTK_FILE_CHOOSER_ERROR (gtk_file_chooser_error_quark ())
Используется для получения GError восклицание для ошибок GtkFileChooser.
typedef enum {
GTK_FILE_CHOOSER_ERROR_NONEXISTENT,
GTK_FILE_CHOOSER_ERROR_BAD_FILENAME,
GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS
} GtkFileChooserError;
Идентифицирует варианты ошибок которые могут произойти во время вызова функций GtkFileChooser.
Указывает что файл не существует. |
|
Указывает на не корректное имя файла. |
|
void gtk_file_chooser_set_action (GtkFileChooser *chooser, GtkFileChooserAction action);
Устанавливает тип операции выполняемой
селектором; интерфейс пользователя
адаптируется для действий выбора.
Например, опция для создания нового
каталога может быть показана если
действие равно GTK_FILE_CHOOSER_ACTION_SAVE
,
а не GTK_FILE_CHOOSER_ACTION_OPEN
.
|
|
|
Действие выполняемое селектором файлов |
Начиная с версии 2.4
GtkFileChooserAction gtk_file_chooser_get_action (GtkFileChooser *chooser);
В качестве результата получает тип
действия выполняемого селектором файла;
смотрите gtk_file_chooser_set_action()
.
|
|
Возвращает : |
Действие выполняемое селектором файлов |
Начиная с версии 2.4
void gtk_file_chooser_set_local_only (GtkFileChooser *chooser, gboolean local_only);
Устанавливает только ли локальные файлы
могут быть выбраны в селекторе файлов.
Если local_only
это TRUE
(значение по умолчанию), то выбранные
файлы гарантировано являются файлами
доступными через родную файловую систему
и поэтому приложение должно беспокоиться
только о функциях имени файла в
GtkFileChooser, таких
как gtk_file_chooser_get_filename()
,
а не о функциях URI таких как
gtk_file_chooser_get_uri()
,
|
|
|
|
Начиная с версии 2.4
gboolean gtk_file_chooser_get_local_only (GtkFileChooser *chooser);
Определяет только ли локальные файлы
могут быть выбраны в селекторе файлов.
Смотрите gtk_file_chooser_set_local_only()
|
GtkFileChoosre |
Возвращает : |
|
Начиная с версии 2.4
void gtk_file_chooser_set_select_multiple (GtkFileChooser *chooser, gboolean select_multiple);
Устанавливает возможен ли множественный выбор фалов в селекторе файлов. Уместно только если действие установлено в GTK_FILE_CHOOSER_ACTION_OPEN или GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.
|
|
|
|
Начиная с версии 2.4
gboolean gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser);
Определяет возможен ли множественный
выбор в селекторе файлов. Смотрите
gtk_file_chooser_set_select_multiple()
.
|
|
Возвращает : |
|
Начиная с версии 2.4
void gtk_file_chooser_set_show_hidden (GtkFileChooser *chooser, gboolean show_hidden);
Устанавливает отображаются ли скрытые файлы и каталоги в селекторе файлов.
|
|
|
|
Начиная с версии 2.6
gboolean gtk_file_chooser_get_show_hidden (GtkFileChooser *chooser);
Определяет отображаются ли скрытые
файлы и каталоги в селекторе файлов.
Смотрите gtk_file_chooser_set_show_hidden()
.
|
|
Возвращает : |
|
Начиная с версии 2.6
void gtk_file_chooser_set_do_overwrite_confirmation (GtkFileChooser *chooser, gboolean do_overwrite_confirmation);
Устанавливает находится ли селектор
файлов в режиме GTK_FILE_CHOOSER_ACTION_SAVE представляя
диалог подтверждения если пользователь
вводит имя файла который уже существует.
Значение по умолчанию FALSE
.
Независимо от этой установки, chooser
издаст сигнал "confirm-overwrite".
Если диалог подтверждения необходим
вам постоянно, установите это свойство
в значение TRUE
.
Вы можете изменить способ выполнения
подтверждения фактически обрабатывая
сигнал "confirm-overwrite"; пожалуйста
обратитесь к документации для детального
изучения.
|
|
|
Подтверждать ли перезапись в режиме сохранения |
Начиная с версии 2.8
gboolean gtk_file_chooser_get_do_overwrite_confirmation (GtkFileChooser *chooser);
Запрашивает установлено ли подтверждение при попытке пользователя ввести имя существующего файла.
|
|
Возвращает : |
|
Начиная с версии 2.8
void gtk_file_chooser_set_current_name (GtkFileChooser *chooser, const gchar *name);
Устанавливает текущеме имя в селекторе файлов, как будто введённое пользователем. Помните что помещаемое здесь имя это строка UTF-8 а не имя файла (filename). Эта функция предназначена для использования в таких диалогах как "Сохранить как...".
Если вам нужно выбрать специальный
существующий файл, вы должны использовать
gtk_file_chooser_set_filename()
или gtk_file_chooser_set_uri()
вместо неё. Пожалуйста посмотрите
документацию по использованию этих
функций, а также gtk_file_chooser_set_current_name()
.
|
|
|
Имя файла для использования, как строка UTF-8 |
Начиная с версии 2.4
gchar* gtk_file_chooser_get_filename (GtkFileChooser *chooser);
В качестве результата получает имя файла используемое в данный момент в селекторе файлов. Если выбрано множество файлов, то возвращается имя одного из них наугад.
Если селектор файлов в режиме каталога, эта функция вернёт имя каталога.
|
|
Возвращает : |
Имя текущемго выбранного файла, или
|
Начиная с версии 2.4
gboolean gtk_file_chooser_set_filename (GtkFileChooser *chooser, const char *filename);
Устанавливает filename
как
текущеме имя файла для селектора файлов,
изменяя родительскую папку файлов и
фактически выбирая файл из списка. Если
chooser
в режиме
GTK_FILE_CHOOSER_ACTION_SAVE,
основное имя файла также появится в
диалоге ввода имени файла.
Если имя файла не находится в текущемм
каталоге chooser
, то текущий
каталог селектора файлов chooser
изменяется в каталог содержащий filename
.
Это равноценно последовательности
gtk_file_chooser_unselect_all()
следующей за gtk_file_chooser_select_filename()
.
Помните что файл должен существовать, или ничего не произойдёт за исключением смены каталога.
Если вы реализуете диалог File/Save As..., вы должны использовать эту функцию если вы уже имеете имя файла который пользователь может сохранить; например, когда пользователь открывает существующий файл а затем выполняет File/Save As... для него. Если нет уже существующего имени файла например, если пользователь просто создал новый файл и сохраняет его в первый раз, не вызывайте эту функцию. Вместо неё используйте что-то похожее на:
if (document_is_new)
{
/* пользователь просто создаёт новый документ */
gtk_file_chooser_set_current_folder (chooser, default_folder_for_saving);
gtk_file_chooser_set_current_name (chooser, "Untitled document");
}
else
{
/* пользователь редактирует существующий документ */
gtk_file_chooser_set_filename (chooser, existing_filename);
}
|
|
|
Имя файла для установки как текущеме |
Возвращает : |
|
Начиная с версии 2.4
gboolean gtk_file_chooser_select_filename (GtkFileChooser *chooser, const char *filename);
Выбирает имя файла. Если имя файла не
находится в текущемй папке селектора
файлов chooser
, то текущий
каталог chooser
будет изменён
на каталог содержащий файл filename
.
|
|
|
Имя файла для выбора |
Возвращает : |
|
Начиная с версии 2.4
void gtk_file_chooser_unselect_filename (GtkFileChooser *chooser, const char *filename);
Снимает текущеме выделение файла. Если имени файла нет в текущемм каталоге или нет текущемго выделения файла, то ничего не происходит.
|
|
|
Имя файла для снятия выделения |
Начиная с версии 2.4
void gtk_file_chooser_select_all (GtkFileChooser *chooser);
Выбирает все файлы в текущемм каталоге селектора файлов.
|
Начиная с версии 2.4
void gtk_file_chooser_unselect_all (GtkFileChooser *chooser);
Снимает выделение всех файлов в текущемм каталоге селектора файлов.
|
Начиная с версии 2.4
GSList* gtk_file_chooser_get_filenames (GtkFileChooser *chooser);
В качестве результата получает списки
всех выделенных файлов и подкаталогов
в текущемм каталоге селектора файлов
chooser
. Возвращаемые имена
являются абсолютными путями. Если файлы
в текущемм каталоге не могут быть
представлены с локальными именами, то
они будут проигнорированы. (Смотрите
gtk_file_chooser_get_uris()
)
|
|
Возвращает : |
GSList
содержащий имена всех выделенных
файлов и подкаталогов в текущемм
каталоге. Освобождается список с
помощью |
Начиная с версии 2.4
gboolean gtk_file_chooser_set_current_folder (GtkFileChooser *chooser, const gchar *filename);
Устанавливает текущий каталог селектора
файлов chooser
из локального
имени. Пользователю будет показано
полное содержимое текущемго каталога,
плюс элементы пользовательского
интерфейса для навигации по другим
каталогам.
|
|
|
Полный путь нового текущемго каталога |
Возвращает : |
Начиная с версии 2.4
gchar* gtk_file_chooser_get_current_folder (GtkFileChooser *chooser);
Получает текущий каталог селектора
файлов chooser
как локальное
имя. Смотрите gtk_file_chooser_set_current_folder()
.
Помните, это текущий отображаемый
каталог селектора файлов (например
"/home/username/Documents"), это не тоже самое
как текущий выбранный каталог если
селектор файлов находится в режиме
GTK_FILE_CHOOSER_SELECT_FOLDER (например
"/home/username/Documents/selected-folder/"). Для
получения текущемго выбранного каталога
в этом режиме, используйте
gtk_file_chooser_get_uri()
как удобный способ получения выбора.
|
|
Возвращает : |
Полный путь текущемго каталога, или
|
Начиная с версии 2.4
gchar* gtk_file_chooser_get_uri (GtkFileChooser *chooser);
Получает в качестве результата URI текущемго выбранного файла в селекторе файлов. Если выбрано множество файлов, возвращается произвольно выбранное имя одного из них.
Если селектор файлов в режиме каталога, эта функция возвращает выбранный каталог.
|
|
Возвращает : |
Текущий выбранный URI, или |
Начиная с версии 2.4
gboolean gtk_file_chooser_set_uri (GtkFileChooser *chooser, const char *uri);
Устанавливает файл на который ссылается
uri
как текущий файл селектора
файлов, изменяет URI's родительского
каталога и фактически выделяет URI в
списке. Если chooser
в режиме
GTK_FILE_CHOOSER_ACTION_SAVE,
основное имя URI's также появится в воде
имени файлового диалога.
Если URI не текущий каталог селектора
файлов chooser
, то текущий
каталог chooser
будет сменён
на каталог содержащий uri
.
Это равносильно последовательности
gtk_file_chooser_unselect_all()
затем gtk_file_chooser_select_uri()
.
Помните что URI уже должен существовать, или ничего не произойдёт кроме смены каталога. Если вы реализуете диалог File/Save As..., вы должны использовать эту функцию если вы уже имеете имя файла который пользователь может сохранить; например, когда пользователь открывает существующий файл а затем выполняет File/Save As... для него. Если нет уже существующего имени файла например, если пользователь просто создал новый файл и сохраняет его в первый раз, не вызывайте эту функцию. Вместо неё используйте что-то похожее на:
if (document_is_new)
{
/* пользователь просто создаёт новый документ */
gtk_file_chooser_set_current_folder_uri (chooser, default_folder_for_saving);
gtk_file_chooser_set_current_name (chooser, "Untitled document");
}
else
{
/* пользователь редактирует существующий документ */
gtk_file_chooser_set_uri (chooser, existing_uri);
}
|
|
|
URI для установки в качестве текущемго |
Возвращает : |
|
Начиная с версии 2.4
gboolean gtk_file_chooser_select_uri (GtkFileChooser *chooser, const char *uri);
Выбирает файл соответствующий uri
.
Если URI не ссылается на файл в текущемм
каталоге chooser
, то текущий
каталог селектора файлов chooser
изменяется на каталог содержащий
filename
.
|
|
|
URI для выбора |
Возвращает : |
|
Начиная с версии 2.4
void gtk_file_chooser_unselect_uri (GtkFileChooser *chooser, const char *uri);
Снимает выделение файла на который
ссылается uri
. Если файл не
существует или нет текущемго выделения,
то ничего не происходит.
|
|
|
URI для отмены выделения |
Начиная с версии 2.4
GSList* gtk_file_chooser_get_uris (GtkFileChooser *chooser);
Список всех выделенных файлов и
подкаталогов в текущемм каталоге селектора
файлов chooser
. Возвращаются
абсолютные имена URIs.
|
|
Возвращает : |
GSList
содержащий имена всех выделенных
файлов и подкаталогов в текущемм
каталоге. Возвращаемый список
освобождается с помощью |
Начиная с версии 2.4
gboolean gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser, const gchar *uri);
Устанавливает текущий каталог chooser
из URI. Пользователю показывается всё
содержимое каталога, плюс элементы
пользовательского интерфейса для
перемещения к другим каталогам.
|
|
|
URI для нового текущемго каталога |
Возвращает : |
Начиная с версии 2.4
gchar* gtk_file_chooser_get_current_folder_uri (GtkFileChooser *chooser);
В качестве результата получает текущий
каталог селектора файлов chooser
как URI. Смотрите
gtk_file_chooser_set_current_folder_uri()
.
Помните что это каталог который
селектор файлов отображает в текущий
момент (например "file:///home/username/Documents"),
это не то же самое что текущий выбранные
каталог если селектор в режиме
GTK_FILE_CHOOSER_SELECT_FOLDER (например
"file:///home/username/Documents/selected-folder/"). Для
получения текущемго выбранного каталога
в этом режиме, используйте
gtk_file_chooser_get_uri()
как удобный способ получения выбора.
|
|
Возвращает : |
URI для текущемго каталога. Освобождается
с помощью |
Начиная с версии 2.4
void gtk_file_chooser_set_preview_widget (GtkFileChooser *chooser, GtkWidget *preview_widget);
Устанавливает поставляемый приложением
виджет используемый для отображения
предварительного просмотра выбранного
файла. Для реализации предварительного
просмотра, после установки виджета
предварительного просмотра, подключается
сигнал ::update-preview и вызывается
gtk_file_chooser_get_preview_filename()
или gtk_file_chooser_get_preview_uri()
для каждого изменения. Если вы можете
отобразить предварительный просмотр
нового файла, обновите ваш виджет и
установите предварительный просмотр
в активное использование
gtk_file_chooser_set_preview_widget_active()
.
Иначе установите предварительный
просмотр в неактивное состояние.
Когда нет поставляемого приложением виджета предварительного просмотра, или поставляемый приложением виджет в неактивном состоянии, селектор файлов может отображать внутренне сгенерированный предварительный просмотр текущемго файла или может не отобразить никакого предварительного просмотра вообще.
|
|
|
Виджет для отображения предварительного просмотра. |
Начиная с версии 2.4
GtkWidget* gtk_file_chooser_get_preview_widget (GtkFileChooser *chooser);
Возвращает текущий виджет предварительного
просмотра; смотрите
gtk_file_chooser_set_preview_widget()
.
|
|
Возвращает : |
Текущий виджет предварительного
просмотра, или |
Начиная с версии 2.4
void gtk_file_chooser_set_preview_widget_active (GtkFileChooser *chooser, gboolean active);
Устанавливает должен ли виджет
предварительного просмотра установленный
gtk_file_chooser_set_preview_widget()
отображаться для текущемго имени файла.
Когда параметр active
установлен
в значение FALSE, селектор файлов может
отображать внутренне сгенерированный
предварительный просмотр текущемго
файла или вообще не показывать его.
Смотрите gtk_file_chooser_set_preview_widget()
для детального изучения.
|
|
|
Отображается ли определённый пользователем виджет предварительного просмотра |
Начиная с версии 2.4
gboolean gtk_file_chooser_get_preview_widget_active (GtkFileChooser *chooser);
Определяет должен ли отображаться
виджет предварительного просмотра
установленный с помощью
gtk_file_chooser_set_preview_widget()
для текущемго файла. Смотрите
gtk_file_chooser_set_preview_widget_active()
.
|
|
Возвращает : |
|
Начиная с версии 2.4
void gtk_file_chooser_set_use_preview_label (GtkFileChooser *chooser, gboolean use_label);
Устанавливает должен ли селектор файлов
отображать заготовленный ярлык с именем
предварительно просматриваемого файла;
значение по умолчанию TRUE
.
Приложения которые рисуют всю область
предварительного просмотра самостоятельно
должны установить FALSE
и отобразить имя самостоятельно в их
виджете предварительного просмотра.
Смотрите также: gtk_file_chooser_set_preview_widget()
|
|
|
Отображается ли заготовленный ярлык с именем для предварительно просматриваемого файла |
Начиная с версии 2.4
gboolean gtk_file_chooser_get_use_preview_label (GtkFileChooser *chooser);
Определяет отображается ли заготовленный
ярлык с именем предварительно
просматриваемого файла. Смотрите
gtk_file_chooser_set_use_preview_label()
.
|
|
Возвращает : |
|
char* gtk_file_chooser_get_preview_filename (GtkFileChooser *chooser);
Определяет имя файла который должен
предварительно просматриваться в
выбранном виджете предварительного
просмотра. Смотрите
gtk_file_chooser_set_preview_widget()
.
|
|
Возвращает : |
Имя файла для предварительного
просмотра, или |
Начиная с версии 2.4
char* gtk_file_chooser_get_preview_uri (GtkFileChooser *chooser);
Определяет URI который должен предварительно
просматриваться в выбранном виджете
предварительного просмотра. Смотрите
gtk_file_chooser_set_preview_widget()
.
|
|
Возвращает : |
URI файла для предварительного
просмотра, или |
Начиная с версии 2.4
void gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser, GtkWidget *extra_widget);
Устанавливает поставляемый приложением виджет обеспечивающий пользователю дополнительные опции.
|
|
|
Виджет для дополнительных опций |
Начиная с версии 2.4
GtkWidget* gtk_file_chooser_get_extra_widget (GtkFileChooser *chooser);
Определяет текущий виджет предварительного
просмотра; смотрите
gtk_file_chooser_set_extra_widget()
.
|
|
Возвращает : |
Текущий дополнительный виджет, или
|
Начиная с версии 2.4
void gtk_file_chooser_add_filter (GtkFileChooser *chooser, GtkFileFilter *filter);
Добавляет filter
в список
фильтров между которыми пользователь
может делать выбор. Когда фильтр выбран,
отображаются только файлы соответствующие
этому фильтру.
Помните что chooser
монопольно
владеет фильтром, поэтому вы ссылаетесь
и помещаете его, если вам нужно сохранить
ссылку.
|
|
|
Начиная с версии 2.4
void gtk_file_chooser_remove_filter (GtkFileChooser *chooser, GtkFileFilter *filter);
Удаляет filter
из списка
фильтров выбираемых пользователем.
|
|
|
Начиная с версии 2.4
GSList* gtk_file_chooser_list_filters (GtkFileChooser *chooser);
Список текущих установленных фильтров
выбираемых пользователем; смотрите
gtk_file_chooser_add_filter()
,
gtk_file_chooser_remove_filter()
.
|
|
Возвращает : |
GSList
содержит текущие установленные фильтры
которые может выбрать пользователь.
Содержимым списка владеет GTK+, но вы
должны освобождать список самостоятельно
с помощью |
Начиная с версии 2.4
void gtk_file_chooser_set_filter (GtkFileChooser *chooser, GtkFileFilter *filter);
Устанавливает текущий фильтр; только фалы соответствующие фильтру будут отображаться. Если список фильтров выбираемых пользователем не пуст, то фильтр должен быть одним из фильтров в этом списке. Установка текущемго фильтра, когда список пуст, полезна для ограничения пользователя изменять отображение отфильтрованных файлов.
|
|
|
Начиная с версии 2.4
GtkFileFilter* gtk_file_chooser_get_filter (GtkFileChooser *chooser);
Определяет текущий фильтр; смотрите
gtk_file_chooser_set_filter()
.
|
|
Возвращает : |
Текущий фильтр, или |
Начиная с версии 2.4
gboolean gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, const char *folder, GError **error);
Добавляет каталог для отображения с ярлыками каталогов в селекторе файлов. Помните что ярлыки каталогов не сохраняются, поскольку их обеспечивают приложения. Например, вы можете использовать "/usr/share/mydrawprogram/Clipart" для добавления каталога в список значений.
|
|
|
Имя добавляемого каталога |
|
Ошибка, или |
Возвращает : |
|
Начиная с версии 2.4
gboolean gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, const char *folder, GError **error);
Удаляет каталог из списка ярлыков каталогов селектора файлов.
|
|
|
Имя удаляемого каталога |
|
Ошибка, или |
Возвращает : |
|
Начиная с версии 2.4
GSList* gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser);
Запрашивает список ярлыков каталогов
в селекторе файлов, которые установлены
с помощью gtk_file_chooser_add_shortcut_folder()
.
|
|
Возвращает : |
Список имён каталогов, или |
Начиная с версии 2.4
gboolean gtk_file_chooser_add_shortcut_folder_uri (GtkFileChooser *chooser, const char *uri, GError **error);
Добавляет URI для отображения с ярлыками каталогов в селекторе файлов. Помните что ярлыки каталогов не сохраняются, поскольку их обеспечивают приложения. Например, вы можете использовать "/usr/share/mydrawprogram/Clipart" для добавления каталога в список значений.
|
|
|
URI добавляемого каталога |
|
Ошибка, или |
Возвращает : |
|
Начиная с версии 2.4
gboolean gtk_file_chooser_remove_shortcut_folder_uri (GtkFileChooser *chooser, const char *uri, GError **error);
Удаляет каталог URI из списка ярлыков каталогов селектора файлов.
|
|
|
URI удаляемого каталога |
|
Ошибка, или |
Возвращает : |
|
Начиная с версии 2.4
GSList* gtk_file_chooser_list_shortcut_folder_uris (GtkFileChooser *chooser);
Запрашивает список ярлыков каталогов
селектора файлов, которые установлены
с помощью gtk_file_chooser_add_shortcut_folder_uri()
.
|
|
Возвращает : |
Список каталогов URIs, или |
Начиная с версии 2.4
action
""action" GtkFileChooserAction : Read / Write
Тип операции выполняемой селектором файлов.
Значение по умолчанию: GTK_FILE_CHOOSER_ACTION_OPEN
do-overwrite-confirmation
""do-overwrite-confirmation" gboolean : Read / Write
Представляет ли селектор файлов в режиме
GTK_FILE_CHOOSER_ACTION_SAVE
диалог подтверждения перезаписи, если
пользователь выбрал имя уже существующего
файла.
Значение по умолчанию: FALSE
Начиная с версии 2.8
extra-widget
""extra-widget" GtkWidget : Read / Write
Виджет обеспечиваемый приложением для дополнительных опций.
file-system-backend
""file-system-backend" gchararray : Write / Construct Only
Имя файловой системы внутреннего использования.
Значение по умолчанию: NULL
filter
""filter" GtkFileFilter : Read / Write
Текущий фильтр отображаемых файлов.
local-only
""local-only" gboolean : Read / Write
Должны ли выбранные файлы ограничиваться локальными файлами: URLs.
Значение по умолчанию: TRUE
preview-widget
""preview-widget" GtkWidget : Read / Write
Виджет поставляемый приложением предварительного просмотра.
preview-widget-active
""preview-widget-active" gboolean : Read / Write
Должен ли отображаться виджет для предварительного просмотра поставляемый приложением.
Значение по умолчанию: TRUE
select-multiple
""select-multiple" gboolean : Read / Write
Возможен ли множественный выбор файлов.
Значение по умолчанию: FALSE
show-hidden
""show-hidden" gboolean : Read / Write
Отображаются ли скрытые файлы и каталоги.
Значение по умолчанию: FALSE
use-preview-label
""use-preview-label" gboolean : Read / Write
Отображается ли заготовленный ярлык имени предварительно просматриваемого файла.
Значение по умолчанию: TRUE
GtkFileChooserConfirmationuser_function (GtkFileChooser *filechooser, gpointer user_data) : Run last
Этот сигнал издаётся каждый раз представляя диалог подтверждения когда пользователь выбирает для записи имя уже существующего файла. Сигнал издаётся только в режиме GTK_FILE_CHOOSER_ACTION_SAVE.
Большинство приложений просто отключит
свойство do-overwrite-confirmation
(или вызов функции
gtk_file_chooser_set_do_overwrite_confirmation()
),
и они автоматически получат заготовленный
диалог подтверждения. Приложения которые
нуждаются в настройке этого поведения
должны сделать это, а также подключить
сигнал confirm-overwrite.
Обработчик этого сигнала должен вернуть значение GtkFileChooserConfirmation, которое указывает принятое действие. Если обработчик определяет что пользователь должен выбрать другое имя файла, он должен вернуть GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN. Если он определит что пользователь удовлетворён своим выбором имени файла, он должен вернуть GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME. С другой стороны, если он определит что заготовленный диалог подтверждения должен использоваться, он возвращает GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM. Следующий пример иллюстрирует это.
Пример 5. Выборочная конфигурация
static GtkFileChooserConfirmation confirm_overwrite_callback (GtkFileChooser *chooser, gpointer data) { char *uri; uri = gtk_file_chooser_get_uri (chooser); if (is_uri_read_only (uri)) { if (user_wants_to_replace_read_only_file (uri)) return GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME; else return GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN; } else return GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM; /* fall back to the default dialog */ } ... chooser = gtk_file_chooser_dialog_new (...); gtk_file_chooser_set_do_overwrite_confirmation (GTK_FILE_CHOOSER (dialog), TRUE); g_signal_connect (chooser, "confirm-overwrite", G_CALLBACK (confirm_overwrite_callback), NULL); if (gtk_dialog_run (chooser) == GTK_RESPONSE_ACCEPT) save_to_file (gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (chooser)); gtk_widget_destroy (chooser);
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
Возвращает : |
GtkFileChooserConfirmation значение которое указывает что действие принято после издания сигнала. |
Начиная с версии 2.8
void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last
Этот сигнал издаётся при смене текущемго каталога в GtkFileChooser. Это может произойти в результате выбора пользователем некоторых действий сменяющих каталог, таких как выбор каталога в закладках. Это может также произойти как результат вызова функции для явной смены каталога в селекторе файлов.
Обычно вам не нужно подключать этот сигнал, если вы не отслеживаете какой каталог показывает селектор файлов.
Смотрите также:
gtk_file_chooser_set_current_folder()
,
gtk_file_chooser_get_current_folder()
,
gtk_file_chooser_set_current_folder_uri()
,
gtk_file_chooser_get_current_folder_uri()
.
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last
Этот сигнал издаётся когда пользователь "активизирует" файл в селекторе файлов. Это может произойти при двойном щелчке мышью на файле в списке файлов, или при нажатии клавиши Enter.
Обычно вам не нужно подключать этот сигнал. Он используется внутри GtkFileChooserDialog для определения какую кнопку активизировать по умолчанию в диалоге.
Смотрите также: gtk_file_chooser_get_filename()
,
gtk_file_chooser_get_filenames()
,
gtk_file_chooser_get_uri()
,
gtk_file_chooser_get_uris()
.
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last
Этот сигнал издаётся при появлении изменений в наборе выбранных файлов в GtkFileChooser. Это может произойти когда пользователь изменяет выделение с помощью мыши или клавиатуры, или когда явно вызывается функция для изменения выделения.
Обычно вам не нужно подключать этот сигнал, поскольку проще подождать пока селектор файлов закончит выполнение, а затем получить список выделенных файлов используя функции упомянутые ниже.
Смотрите также: gtk_file_chooser_select_filename()
,
gtk_file_chooser_unselect_filename()
,
gtk_file_chooser_get_filename()
,
gtk_file_chooser_get_filenames()
,
gtk_file_chooser_select_uri()
,
gtk_file_chooser_unselect_uri()
,
gtk_file_chooser_get_uri()
,
gtk_file_chooser_get_uris()
.
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
void user_function (GtkFileChooser *chooser, gpointer user_data) : Run last
Этот сигнал издаётся когда предварительный просмотр в селекторе файлов должен быть сгенерирован заново. Например, это может произойти при изменении текущемго выбранного файла. Вы должны использовать этот сигнал если вам нужен селектор файлов имеющий виджеты предварительного просмотра.
Как только вы установили виджет
предварительного просмотра используя
gtk_file_chooser_set_preview_widget()
,
вы должны обновить его когда издастся
сигнал. Вы можете использовать функции
gtk_file_chooser_get_preview_filename()
или gtk_file_chooser_get_preview_uri()
для получения имени файла для
предварительного просмотра. Ваш виджет
возможно не будет в состоянии просматривать
все виды файлов; поэтому ваша
callback-функция должна вызывать
gtk_file_chooser_set_preview_wiget_active()
для
информирования селектора файлов об
успешной или не успешной генерации
предварительного просмотра.
Пожалуйста посмотрите примерный код в the section called Adding a Preview Widget.
Смотрите также:
gtk_file_chooser_set_preview_widget()
,
gtk_file_chooser_set_preview_widget_active()
,
gtk_file_chooser_set_use_preview_label()
,
gtk_file_chooser_get_preview_filename()
,
gtk_file_chooser_get_preview_uri()
.
|
объект получающий сигнал. |
|
пользовательские данные устанавливаемые при подключении обработчика сигнала. |
GtkFileChooserDialog, GtkFileChooserWidget, GtkFileChooserButton
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |