Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy  |   |  Known Implementations  |  Properties  |  Signals

GtkFileChooser

GtkFileChooser Интерфейс выбора файла используемый в 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"

Сигнал "GtkFileChooserDefault::location-popup"

void user_function (GtkFileChooserDefault *chooser, const char *path, gpointer user_data);

Используется для отображения селектором файла диалога "Location", который используется для ручного ввода имени выбираемого файла. Параметр path это строка которая вставляется в текстовый ввод для определения имени файла. По умолчанию диалог ввода файла появляется при нажатии Control-L с пустой строкой "" в параметре path . А также при нажатии на / (слэш) появляется строка ввода имени файла с параметром path равным строке "/" (слэш): это позволяет вам вводить путь имени файла или каталога. В Unix системах, параметр path равный строке "~/" приводит непосредственно в домашний каталог.

chooser :

объект получающий сигнал.

path :

Содержимое по умолчанию для текстового ввода имени файла

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Подсказка

Вы можете создать свою собственную привязку для сигнала всплывающего размещения с выборочной строкой параметра 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"
          

Сигнал "GtkFileChooserDefault::up-folder"

void user_function (GtkFileChooserDefault *chooser, gpointer user_data);

Этот сигнал заставляет селектор файлов обратиться к родительской папке текущемго каталога в иерархии файлов. По умолчанию это происходит при нажатии клавиши Backspace и Alt-Up (клавиша Up на цифровой клавиатуре также работает).

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Сигнал "GtkFileChooserDefault::down-folder"

void user_function (GtkFileChooserDefault *chooser, gpointer user_data);

Этот сигнал заставляет селектор файлов обратиться к дочерней папке текущемго каталога в иерархии файлов. Подкаталог который будет использован для отображения в пути панели виджета селектора файлов. Например, если путь отображаемый в панели "/foo/bar/baz", то в этом случае селектор файлов переключится на подкаталог "baz". По умолчанию это управляется нажатием Alt-Down (клавиша Down цифровой клавиатуры также поддерживается).

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Сигнал "GtkFileChooserDefault::home-folder"

void user_function (GtkFileChooserDefault *chooser, gpointer user_data);

Этот сигнал заставляет селектор файлов показать домашний каталог пользователя в списке файлов. По умолчанию он управляется клавишами Alt-Home (клавиша Home цифровой клавиатуры также поддерживается).

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Сигнал "GtkFileChooserDefault::desktop-folder"

void user_function (GtkFileChooserDefault *chooser, gpointer user_data);

Этот сигнал заставляет показать каталог рабочего стола пользователя. По умолчанию управляется с помощью Alt-D.

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Сигнал "GtkFileChooserDefault::quick-bookmark"

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.

chooser :

объект получающий сигнал.

bookmark_indes :

Перечень закладок для переключения; индексация начинается с 0.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Детали

GtkFileChooser

typedef struct _GtkFileChooser GtkFileChooser;

enum GtkFileChooserAction

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 для открытия существующих файлов или возможного сохранения нового файла.

GTK_FILE_CHOOSER_ACTION_OPEN

Указывает режим открытия. Селектор файлов позволяет пользователю только открывать существующие файлы.

GTK_FILE_CHOOSER_ACTION_SAVE

Указывает режим сохранения. Селектор файлов позволяет открывать существующий файл или вводить новое имя файла.

GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER

Указывает режим открытия для выбранных каталогов. Селектор файлов позволяет выбирать пользователю существующие каталоги.

GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER

Указывает режим для создания новых каталогов. Селектор файлов позволяет пользователю вводить существующие имена каталогов или создавать новые.


enum GtkFileChooserConfirmation

typedef enum { GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM, GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME, GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN } GtkFileChooserConfirmation;

Используется как возвращаемое значение обработчиков для сигнала confirm-overwrite GtkFileChooser. Это значение определяет представляет ли селектор файлов готовый диалог подтверждений, принимающий выбранное пользователем имя, или позволяет пользователю выбрать другое имя файла.

GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM

Селектор файлов представляет заготовленный диалог для подтверждения перезаписи существующего файла.

GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME

Селектор файлов завершает и принимает выбор имени файла пользователем.

GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN

Селектор файла продолжает выполнение позволяя пользователю выбрать другое имя файла.

Начиная с версии 2.8


GTK_FILE_CHOOSER_ERROR

#define GTK_FILE_CHOOSER_ERROR (gtk_file_chooser_error_quark ())

Используется для получения GError восклицание для ошибок GtkFileChooser.


enum GtkFileChooserError

typedef enum { GTK_FILE_CHOOSER_ERROR_NONEXISTENT, GTK_FILE_CHOOSER_ERROR_BAD_FILENAME, GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS } GtkFileChooserError;

Идентифицирует варианты ошибок которые могут произойти во время вызова функций GtkFileChooser.

GTK_FILE_CHOOSER_ERROR_NONEXISTENT

Указывает что файл не существует.

GTK_FILE_CHOOSER_ERROR_BAD_FILENAME

Указывает на не корректное имя файла.

GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS


gtk_file_chooser_set_action ()

void gtk_file_chooser_set_action (GtkFileChooser *chooser, GtkFileChooserAction action);

Устанавливает тип операции выполняемой селектором; интерфейс пользователя адаптируется для действий выбора. Например, опция для создания нового каталога может быть показана если действие равно GTK_FILE_CHOOSER_ACTION_SAVE, а не GTK_FILE_CHOOSER_ACTION_OPEN.

chooser :

GtkFileChooser

action :

Действие выполняемое селектором файлов

Начиная с версии 2.4


gtk_file_chooser_get_action ()

GtkFileChooserAction gtk_file_chooser_get_action (GtkFileChooser *chooser);

В качестве результата получает тип действия выполняемого селектором файла; смотрите gtk_file_chooser_set_action().

chooser :

GtkFileChooser

Возвращает :

Действие выполняемое селектором файлов

Начиная с версии 2.4


gtk_file_chooser_set_local_only ()

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(),

chooser :

GtkFileChooser

local_only :

TRUE если только локальные файлы могут быть выбраны

Начиная с версии 2.4


gtk_file_chooser_get_local_only ()

gboolean    gtk_file_chooser_get_local_only (GtkFileChooser *chooser);

Определяет только ли локальные файлы могут быть выбраны в селекторе файлов. Смотрите gtk_file_chooser_set_local_only()

chooser :

GtkFileChoosre

Возвращает :

TRUE если только локальные файлы могут быть выбраны.

Начиная с версии 2.4


gtk_file_chooser_set_select_multiple ()

void gtk_file_chooser_set_select_multiple (GtkFileChooser *chooser, gboolean select_multiple);

Устанавливает возможен ли множественный выбор фалов в селекторе файлов. Уместно только если действие установлено в GTK_FILE_CHOOSER_ACTION_OPEN или GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER.

chooser :

GtkFileChooser

select_multiple :

TRUE если можно выбрать множество файлов.

Начиная с версии 2.4


gtk_file_chooser_get_select_multiple ()

gboolean gtk_file_chooser_get_select_multiple (GtkFileChooser *chooser);

Определяет возможен ли множественный выбор в селекторе файлов. Смотрите gtk_file_chooser_set_select_multiple().

chooser :

GtkFileChooser

Возвращает :

TRUE если возможен множественный выбор файлов.

Начиная с версии 2.4


gtk_file_chooser_set_show_hidden ()

void gtk_file_chooser_set_show_hidden (GtkFileChooser *chooser, gboolean show_hidden);

Устанавливает отображаются ли скрытые файлы и каталоги в селекторе файлов.

chooser :

GtkFileChooser

show_hidden :

TRUE если скрытые файлы и каталоги должны отображаться.

Начиная с версии 2.6


gtk_file_chooser_get_show_hidden ()

gboolean gtk_file_chooser_get_show_hidden (GtkFileChooser *chooser);

Определяет отображаются ли скрытые файлы и каталоги в селекторе файлов. Смотрите gtk_file_chooser_set_show_hidden().

chooser :

GtkFileChooser

Возвращает :

TRUE если скрытые файлы и каталоги отображаются.

Начиная с версии 2.6


gtk_file_chooser_set_do_overwrite_confirmation ()

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"; пожалуйста обратитесь к документации для детального изучения.

chooser :

GtkFileChooser

do_overwrite_confirmation :

Подтверждать ли перезапись в режиме сохранения

Начиная с версии 2.8


gtk_file_chooser_get_do_overwrite_confirmation ()

gboolean gtk_file_chooser_get_do_overwrite_confirmation (GtkFileChooser *chooser);

Запрашивает установлено ли подтверждение при попытке пользователя ввести имя существующего файла.

chooser :

GtkFileChooser

Возвращает :

TRUE если селектор файлов будет представлять диалог подтверждения; иначе FALSE.

Начиная с версии 2.8


gtk_file_chooser_set_current_name ()

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().

chooser :

GtkFileChooser

name :

Имя файла для использования, как строка UTF-8

Начиная с версии 2.4


gtk_file_chooser_get_filename ()

gchar*      gtk_file_chooser_get_filename   (GtkFileChooser *chooser);

В качестве результата получает имя файла используемое в данный момент в селекторе файлов. Если выбрано множество файлов, то возвращается имя одного из них наугад.

Если селектор файлов в режиме каталога, эта функция вернёт имя каталога.

chooser :

GtkFileChooser

Возвращает :

Имя текущемго выбранного файла, или NULL если нет выбранного файла, или выбранный файл не может быть представлен локальным именем. Освобождается с помощью g_free().

Начиная с версии 2.4


gtk_file_chooser_set_filename ()

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); }

chooser :

GtkFileChooser

filename :

Имя файла для установки как текущеме

Возвращает :

TRUE если выполнено и смена каталога и выбор файла, иначе FALSE.

Начиная с версии 2.4


gtk_file_chooser_select_filename ()

gboolean gtk_file_chooser_select_filename (GtkFileChooser *chooser, const char *filename);

Выбирает имя файла. Если имя файла не находится в текущемй папке селектора файлов chooser, то текущий каталог chooser будет изменён на каталог содержащий файл filename.

chooser :

GtkFileChooser

filename :

Имя файла для выбора

Возвращает :

TRUE если выполнено и смена каталога и выбор файла, иначе FALSE.

Начиная с версии 2.4


gtk_file_chooser_unselect_filename ()

void gtk_file_chooser_unselect_filename (GtkFileChooser *chooser, const char *filename);

Снимает текущеме выделение файла. Если имени файла нет в текущемм каталоге или нет текущемго выделения файла, то ничего не происходит.

chooser :

GtkFileChooser

filename :

Имя файла для снятия выделения

Начиная с версии 2.4


gtk_file_chooser_select_all ()

void        gtk_file_chooser_select_all     (GtkFileChooser *chooser);

Выбирает все файлы в текущемм каталоге селектора файлов.

chooser :

GtkFileChooser

Начиная с версии 2.4


gtk_file_chooser_unselect_all ()

void        gtk_file_chooser_unselect_all   (GtkFileChooser *chooser);

Снимает выделение всех файлов в текущемм каталоге селектора файлов.

chooser :

GtkFileChooser

Начиная с версии 2.4


gtk_file_chooser_get_filenames ()

GSList*     gtk_file_chooser_get_filenames  (GtkFileChooser *chooser);

В качестве результата получает списки всех выделенных файлов и подкаталогов в текущемм каталоге селектора файлов chooser. Возвращаемые имена являются абсолютными путями. Если файлы в текущемм каталоге не могут быть представлены с локальными именами, то они будут проигнорированы. (Смотрите gtk_file_chooser_get_uris())

chooser :

GtkFileChooser

Возвращает :

GSList содержащий имена всех выделенных файлов и подкаталогов в текущемм каталоге. Освобождается список с помощью g_slist_free(), а имена файлов с помощью g_free().

Начиная с версии 2.4


gtk_file_chooser_set_current_folder ()

gboolean gtk_file_chooser_set_current_folder (GtkFileChooser *chooser, const gchar *filename);

Устанавливает текущий каталог селектора файлов chooser из локального имени. Пользователю будет показано полное содержимое текущемго каталога, плюс элементы пользовательского интерфейса для навигации по другим каталогам.

chooser :

GtkFileChooser

filename :

Полный путь нового текущемго каталога

Возвращает :

TRUE если смена каталога выполнена полностью, иначе FALSE.

Начиная с версии 2.4


gtk_file_chooser_get_current_folder ()

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() как удобный способ получения выбора.

chooser :

GtkFileChooser

Возвращает :

Полный путь текущемго каталога, или NULL если текущий путь не может представлять локальное имя файла. Освобождается с помощью g_free(). Эта функция также возвратит NULL если селектор файлов не смог загрузить последний требуемый каталог; например, тоже самое произошло бы если вызвать gtk_file_chooser_set_current_folder() для не существующего каталога.

Начиная с версии 2.4


gtk_file_chooser_get_uri ()

gchar*      gtk_file_chooser_get_uri        (GtkFileChooser *chooser);

Получает в качестве результата URI текущемго выбранного файла в селекторе файлов. Если выбрано множество файлов, возвращается произвольно выбранное имя одного из них.

Если селектор файлов в режиме каталога, эта функция возвращает выбранный каталог.

chooser :

GtkFileChooser

Возвращает :

Текущий выбранный URI, или NULL если нет выбранного файла. Освобождается с помощью g_free()

Начиная с версии 2.4


gtk_file_chooser_set_uri ()

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); }

chooser :

GtkFileChooser

uri :

URI для установки в качестве текущемго

Возвращает :

TRUE если и смена каталога и выбор URI полностью выполнены, иначе FALSE.

Начиная с версии 2.4


gtk_file_chooser_select_uri ()

gboolean gtk_file_chooser_select_uri (GtkFileChooser *chooser, const char *uri);

Выбирает файл соответствующий uri. Если URI не ссылается на файл в текущемм каталоге chooser, то текущий каталог селектора файлов chooser изменяется на каталог содержащий filename.

chooser :

GtkFileChooser

uri :

URI для выбора

Возвращает :

TRUE если и смена каталога и выбор URI полностью выполнены, иначе FALSE.

Начиная с версии 2.4


gtk_file_chooser_unselect_uri ()

void gtk_file_chooser_unselect_uri (GtkFileChooser *chooser, const char *uri);

Снимает выделение файла на который ссылается uri. Если файл не существует или нет текущемго выделения, то ничего не происходит.

chooser :

GtkFileChooser

uri :

URI для отмены выделения

Начиная с версии 2.4


gtk_file_chooser_get_uris ()

GSList*     gtk_file_chooser_get_uris       (GtkFileChooser *chooser);

Список всех выделенных файлов и подкаталогов в текущемм каталоге селектора файлов chooser. Возвращаются абсолютные имена URIs.

chooser :

GtkFileChooser

Возвращает :

GSList содержащий имена всех выделенных файлов и подкаталогов в текущемм каталоге. Возвращаемый список освобождается с помощью g_slist_free(), а имена файлов с помощью g_free().

Начиная с версии 2.4


gtk_file_chooser_set_current_folder_uri ()

gboolean gtk_file_chooser_set_current_folder_uri (GtkFileChooser *chooser, const gchar *uri);

Устанавливает текущий каталог chooser из URI. Пользователю показывается всё содержимое каталога, плюс элементы пользовательского интерфейса для перемещения к другим каталогам.

chooser :

GtkFileChooser

uri :

URI для нового текущемго каталога

Возвращает :

TRUE если каталог был полностью сменён, иначе FALSE.

Начиная с версии 2.4


gtk_file_chooser_get_current_folder_uri ()

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() как удобный способ получения выбора.

chooser :

GtkFileChooser

Возвращает :

URI для текущемго каталога. Освобождается с помощью g_free(). Эта функция также вернёт NULL если селектор файлов не смог загрузить последний запрошенный каталог; например, тоже самое произойдёт при вызове gtk_file_chooser_set_current_folder_uri() для не существующего каталога.

Начиная с версии 2.4


gtk_file_chooser_set_preview_widget ()

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(). Иначе установите предварительный просмотр в неактивное состояние.

Когда нет поставляемого приложением виджета предварительного просмотра, или поставляемый приложением виджет в неактивном состоянии, селектор файлов может отображать внутренне сгенерированный предварительный просмотр текущемго файла или может не отобразить никакого предварительного просмотра вообще.

chooser :

GtkFileChooser

preview_widget :

Виджет для отображения предварительного просмотра.

Начиная с версии 2.4


gtk_file_chooser_get_preview_widget ()

GtkWidget* gtk_file_chooser_get_preview_widget (GtkFileChooser *chooser);

Возвращает текущий виджет предварительного просмотра; смотрите gtk_file_chooser_set_preview_widget().

chooser :

GtkFileChooser

Возвращает :

Текущий виджет предварительного просмотра, или NULL

Начиная с версии 2.4


gtk_file_chooser_set_preview_widget_active ()

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() для детального изучения.

chooser :

GtkFileChooser

active :

Отображается ли определённый пользователем виджет предварительного просмотра

Начиная с версии 2.4


gtk_file_chooser_get_preview_widget_active ()

gboolean gtk_file_chooser_get_preview_widget_active (GtkFileChooser *chooser);

Определяет должен ли отображаться виджет предварительного просмотра установленный с помощью gtk_file_chooser_set_preview_widget() для текущемго файла. Смотрите gtk_file_chooser_set_preview_widget_active().

chooser :

GtkFileChooser

Возвращает :

TRUE если виджет предварительного просмотра активен для текущемго файла.

Начиная с версии 2.4


gtk_file_chooser_set_use_preview_label ()

void gtk_file_chooser_set_use_preview_label (GtkFileChooser *chooser, gboolean use_label);

Устанавливает должен ли селектор файлов отображать заготовленный ярлык с именем предварительно просматриваемого файла; значение по умолчанию TRUE. Приложения которые рисуют всю область предварительного просмотра самостоятельно должны установить FALSE и отобразить имя самостоятельно в их виджете предварительного просмотра.

Смотрите также: gtk_file_chooser_set_preview_widget()

chooser :

GtkFileChooser

use_label :

Отображается ли заготовленный ярлык с именем для предварительно просматриваемого файла

Начиная с версии 2.4


gtk_file_chooser_get_use_preview_label ()

gboolean gtk_file_chooser_get_use_preview_label (GtkFileChooser *chooser);

Определяет отображается ли заготовленный ярлык с именем предварительно просматриваемого файла. Смотрите gtk_file_chooser_set_use_preview_label().

chooser :

GtkFileChooser

Возвращает :

TRUE если селектор файлов установлен для отображения заготовленного ярлыка с именем предварительно просматриваемого файла, иначе FALSE.


gtk_file_chooser_get_preview_filename ()

char* gtk_file_chooser_get_preview_filename (GtkFileChooser *chooser);

Определяет имя файла который должен предварительно просматриваться в выбранном виджете предварительного просмотра. Смотрите gtk_file_chooser_set_preview_widget().

chooser :

GtkFileChooser

Возвращает :

Имя файла для предварительного просмотра, или NULL если нет выбранного файла, или если выбранный файл не может быть представлен локальным именем. Освобождается с помощью g_free()

Начиная с версии 2.4


gtk_file_chooser_get_preview_uri ()

char* gtk_file_chooser_get_preview_uri (GtkFileChooser *chooser);

Определяет URI который должен предварительно просматриваться в выбранном виджете предварительного просмотра. Смотрите gtk_file_chooser_set_preview_widget().

chooser :

GtkFileChooser

Возвращает :

URI файла для предварительного просмотра, или NULL если нет выбранного файла. Освобождается с помощью g_free().

Начиная с версии 2.4


gtk_file_chooser_set_extra_widget ()

void gtk_file_chooser_set_extra_widget (GtkFileChooser *chooser, GtkWidget *extra_widget);

Устанавливает поставляемый приложением виджет обеспечивающий пользователю дополнительные опции.

chooser :

GtkFileChooser

extra_widget :

Виджет для дополнительных опций

Начиная с версии 2.4


gtk_file_chooser_get_extra_widget ()

GtkWidget* gtk_file_chooser_get_extra_widget (GtkFileChooser *chooser);

Определяет текущий виджет предварительного просмотра; смотрите gtk_file_chooser_set_extra_widget().

chooser :

GtkFileChooser

Возвращает :

Текущий дополнительный виджет, или NULL

Начиная с версии 2.4


gtk_file_chooser_add_filter ()

void gtk_file_chooser_add_filter (GtkFileChooser *chooser, GtkFileFilter *filter);

Добавляет filter в список фильтров между которыми пользователь может делать выбор. Когда фильтр выбран, отображаются только файлы соответствующие этому фильтру.

Помните что chooser монопольно владеет фильтром, поэтому вы ссылаетесь и помещаете его, если вам нужно сохранить ссылку.

chooser :

GtkFileChooser

filter :

GtkFileFilter

Начиная с версии 2.4


gtk_file_chooser_remove_filter ()

void gtk_file_chooser_remove_filter (GtkFileChooser *chooser, GtkFileFilter *filter);

Удаляет filter из списка фильтров выбираемых пользователем.

chooser :

GtkFileChooser

filter :

GtkFileFilter

Начиная с версии 2.4


gtk_file_chooser_list_filters ()

GSList*     gtk_file_chooser_list_filters   (GtkFileChooser *chooser);

Список текущих установленных фильтров выбираемых пользователем; смотрите gtk_file_chooser_add_filter(), gtk_file_chooser_remove_filter().

chooser :

GtkFileChooser

Возвращает :

GSList содержит текущие установленные фильтры которые может выбрать пользователь. Содержимым списка владеет GTK+, но вы должны освобождать список самостоятельно с помощью g_slist_free().

Начиная с версии 2.4


gtk_file_chooser_set_filter ()

void gtk_file_chooser_set_filter (GtkFileChooser *chooser, GtkFileFilter *filter);

Устанавливает текущий фильтр; только фалы соответствующие фильтру будут отображаться. Если список фильтров выбираемых пользователем не пуст, то фильтр должен быть одним из фильтров в этом списке. Установка текущемго фильтра, когда список пуст, полезна для ограничения пользователя изменять отображение отфильтрованных файлов.

chooser :

GtkFileChooser

filter :

GtkFileFilter

Начиная с версии 2.4


gtk_file_chooser_get_filter ()

GtkFileFilter* gtk_file_chooser_get_filter  (GtkFileChooser *chooser);

Определяет текущий фильтр; смотрите gtk_file_chooser_set_filter().

chooser :

GtkFileChooser

Возвращает :

Текущий фильтр, или NULL

Начиная с версии 2.4


gtk_file_chooser_add_shortcut_folder ()

gboolean gtk_file_chooser_add_shortcut_folder (GtkFileChooser *chooser, const char *folder, GError **error);

Добавляет каталог для отображения с ярлыками каталогов в селекторе файлов. Помните что ярлыки каталогов не сохраняются, поскольку их обеспечивают приложения. Например, вы можете использовать "/usr/share/mydrawprogram/Clipart" для добавления каталога в список значений.

chooser :

GtkFileChooser

folder :

Имя добавляемого каталога

error :

Ошибка, или NULL

Возвращает :

TRUE если каталог полностью добавлен, иначе FALSE. В последнем случае, error будет установлена как соответствующая ошибка.

Начиная с версии 2.4


gtk_file_chooser_remove_shortcut_folder ()

gboolean gtk_file_chooser_remove_shortcut_folder (GtkFileChooser *chooser, const char *folder, GError **error);

Удаляет каталог из списка ярлыков каталогов селектора файлов.

chooser :

GtkFileChooser

folder :

Имя удаляемого каталога

error :

Ошибка, или NULL

Возвращает :

TRUE если операция выполнена, иначе FALSE. В последнем случае, error будет установлена как соответствующая ошибка. Смотрите также: gtk_file_chooser_add_shortcut_folder()

Начиная с версии 2.4


gtk_file_chooser_list_shortcut_folders ()

GSList* gtk_file_chooser_list_shortcut_folders (GtkFileChooser *chooser);

Запрашивает список ярлыков каталогов в селекторе файлов, которые установлены с помощью gtk_file_chooser_add_shortcut_folder().

chooser :

GtkFileChooser

Возвращает :

Список имён каталогов, или NULL если они не являются ярлыками каталогов. Освобождается возвращаемый список с помощью g_slist_free(), а имена файлов с помощью g_free().

Начиная с версии 2.4


gtk_file_chooser_add_shortcut_folder_uri ()

gboolean gtk_file_chooser_add_shortcut_folder_uri (GtkFileChooser *chooser, const char *uri, GError **error);

Добавляет URI для отображения с ярлыками каталогов в селекторе файлов. Помните что ярлыки каталогов не сохраняются, поскольку их обеспечивают приложения. Например, вы можете использовать "/usr/share/mydrawprogram/Clipart" для добавления каталога в список значений.

chooser :

GtkFileChooser

uri :

URI добавляемого каталога

error :

Ошибка, или NULL

Возвращает :

TRUE если каталог полностью добавлен, иначе FALSE. В последнем случае, error будет установлен как соответствующая ошибка.

Начиная с версии 2.4


gtk_file_chooser_remove_shortcut_folder_uri ()

gboolean gtk_file_chooser_remove_shortcut_folder_uri (GtkFileChooser *chooser, const char *uri, GError **error);

Удаляет каталог URI из списка ярлыков каталогов селектора файлов.

chooser :

GtkFileChooser

uri :

URI удаляемого каталога

error :

Ошибка, или NULL

Возвращает :

TRUE если действие выполнено, иначе FALSE. В последнем случае, error устанавливается как соответствующая ошибка. Смотрите также: gtk_file_chooser_add_shortcut_folder_uri()

Начиная с версии 2.4


gtk_file_chooser_list_shortcut_folder_uris ()

GSList* gtk_file_chooser_list_shortcut_folder_uris (GtkFileChooser *chooser);

Запрашивает список ярлыков каталогов селектора файлов, которые установлены с помощью gtk_file_chooser_add_shortcut_folder_uri().

chooser :

GtkFileChooser

Возвращает :

Список каталогов URIs, или NULL если они не являются ярлыками каталогов. Освобождается возвращаемый список с помощью g_slist_free(), а URIs с помощью g_free().

Начиная с версии 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

Детали сигналов

Сигнал "confirm-overwrite"

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);

filechooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Возвращает :

GtkFileChooserConfirmation значение которое указывает что действие принято после издания сигнала.

Начиная с версии 2.8


Сигнал "current-folder-changed"

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().

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "file-activated"

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().

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "selection-changed"

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().

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.


Сигнал "update-preview"

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().

chooser :

объект получающий сигнал.

user_data :

пользовательские данные устанавливаемые при подключении обработчика сигнала.

Смотрите также

GtkFileChooserDialog, GtkFileChooserWidget, GtkFileChooserButton