Spec-Zone.ru › GTK 3.22

GtkFileChooser

GtkFileChooser — Интерфейс выбора файла, используемый GtkFileChooserWidget и GtkFileChooserDialog

Функции

void gtk_file_chooser_set_action ()
GtkFileChooserAction gtk_file_chooser_get_action ()
void gtk_file_chooser_set_local_only ()
gboolean gtk_file_chooser_get_local_only ()
void gtk_file_chooser_set_select_multiple ()
gboolean gtk_file_chooser_get_select_multiple ()
void gtk_file_chooser_set_show_hidden ()
gboolean gtk_file_chooser_get_show_hidden ()
void gtk_file_chooser_set_do_overwrite_confirmation ()
gboolean gtk_file_chooser_get_do_overwrite_confirmation ()
void gtk_file_chooser_set_create_folders ()
gboolean gtk_file_chooser_get_create_folders ()
void gtk_file_chooser_set_current_name ()
gchar * gtk_file_chooser_get_current_name ()
gchar * gtk_file_chooser_get_filename ()
gboolean gtk_file_chooser_set_filename ()
gboolean gtk_file_chooser_select_filename ()
void gtk_file_chooser_unselect_filename ()
void gtk_file_chooser_select_all ()
void gtk_file_chooser_unselect_all ()
GSList * gtk_file_chooser_get_filenames ()
gboolean gtk_file_chooser_set_current_folder ()
gchar * gtk_file_chooser_get_current_folder ()
gchar * gtk_file_chooser_get_uri ()
gboolean gtk_file_chooser_set_uri ()
gboolean gtk_file_chooser_select_uri ()
void gtk_file_chooser_unselect_uri ()
GSList * gtk_file_chooser_get_uris ()
gboolean gtk_file_chooser_set_current_folder_uri ()
gchar * gtk_file_chooser_get_current_folder_uri ()
void gtk_file_chooser_set_preview_widget ()
GtkWidget * gtk_file_chooser_get_preview_widget ()
void gtk_file_chooser_set_preview_widget_active ()
gboolean gtk_file_chooser_get_preview_widget_active ()
void gtk_file_chooser_set_use_preview_label ()
gboolean gtk_file_chooser_get_use_preview_label ()
char * gtk_file_chooser_get_preview_filename ()
char * gtk_file_chooser_get_preview_uri ()
void gtk_file_chooser_set_extra_widget ()
GtkWidget * gtk_file_chooser_get_extra_widget ()
void gtk_file_chooser_add_filter ()
void gtk_file_chooser_remove_filter ()
GSList * gtk_file_chooser_list_filters ()
void gtk_file_chooser_set_filter ()
GtkFileFilter * gtk_file_chooser_get_filter ()
gboolean gtk_file_chooser_add_shortcut_folder ()
gboolean gtk_file_chooser_remove_shortcut_folder ()
GSList * gtk_file_chooser_list_shortcut_folders ()
gboolean gtk_file_chooser_add_shortcut_folder_uri ()
gboolean gtk_file_chooser_remove_shortcut_folder_uri ()
GSList * gtk_file_chooser_list_shortcut_folder_uris ()
GFile * gtk_file_chooser_get_current_folder_file ()
GFile * gtk_file_chooser_get_file ()
GSList * gtk_file_chooser_get_files ()
GFile * gtk_file_chooser_get_preview_file ()
gboolean gtk_file_chooser_select_file ()
gboolean gtk_file_chooser_set_current_folder_file ()
gboolean gtk_file_chooser_set_file ()
void gtk_file_chooser_unselect_file ()

Свойства

GtkFileChooserAction action Чтение / Запись
gboolean create-folders Чтение / Запись
gboolean do-overwrite-confirmation Чтение / Запись
GtkWidget * extra-widget Чтение / Запись
GtkFileFilter * filter Чтение / Запись
gboolean local-only Чтение / Запись
GtkWidget * preview-widget Чтение / Запись
gboolean preview-widget-active Чтение / Запись
gboolean select-multiple Чтение / Запись
gboolean show-hidden Чтение / Запись
gboolean use-preview-label Чтение / Запись

Сигналы

GtkFileChooserConfirmation confirm-overwrite Выполняется последним
void current-folder-changed Выполняется последним
void file-activated Выполняется последним
void selection-changed Выполняется последним
void update-preview Выполняется последним

Типы и значения

GtkFileChooser
перечисление GtkFileChooserAction
перечисление GtkFileChooserConfirmation
#определить GTK_FILE_CHOOSER_ERROR
перечисление GtkFileChooserError

Иерархия объектов

    GInterface
    ╰── GtkFileChooser

Предварительные условия

GtkFileChooser требует GObject.

Известные реализации

GtkFileChooser реализуется с помощью GtkFileChooserButton, GtkFileChooserDialog и GtkFileChooserWidget.

Включения

#include <gtk/gtk.h>

Описание

GtkFileChooser — это интерфейс, который может быть реализован виджетами выбора файлов. В GTK+ главными объектами, реализующими этот интерфейс, являются GtkFileChooserWidget, GtkFileChooserDialog и GtkFileChooserButton. Вам не нужно писать объект, реализующий интерфейс GtkFileChooser, если вы не пытаетесь адаптировать существующий селектор файлов для экспонирования стандартного программного интерфейса.

GtkFileChooser позволяет быстро переходить к различным местам в файловой системе. В стандартной реализации они отображаются в левой панели. Возможно, сначала будет немного непонятно, что эти ярлыки берутся из различных источников и имеют различные формы, поэтому давайте объясним терминологию:

  • Закладки: создаются пользователем, перетаскивая папки из правой панели в левую или используя функцию «Добавить». Закладки могут быть переименованы и удалены пользователем.

  • Ярлыки: могут предоставляться приложением. Например, программа «Рисование» может добавить ярлык для папки «Клипарты». Ярлыки не могут быть изменены пользователем.

  • Тома: предоставляются базовой абстракцией файловой системы. Они являются «корнями» файловой системы.

Имена файлов и кодировки

Когда пользователь завершает выбор файлов в GtkFileChooser, ваша программа может получить выбранные имена в виде имён файлов или URI. Для URI применяются стандартные правила экранирования, если URI содержит не-ASCII символы. Однако имена файлов всегда возвращаются в кодировке, указанной переменной среды G_FILENAME_ENCODING. Подробнее об этой переменной см. документацию GLib.

Это означает, что хотя вы можете передать результат gtk_file_chooser_get_filename() в open() или fopen(), вы, возможно, не сможете напрямую установить его как текст виджета GtkLabel, если не преобразуете его сначала в UTF-8, что ожидают все виджеты GTK+. Вы должны использовать g_filename_to_utf8() для преобразования имён файлов в строки, которые могут быть переданы виджетам GTK+.

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

Вы можете добавить пользовательский виджет предварительного просмотра к селектору файлов и получить уведомление о необходимости обновления предварительного просмотра. Для установки виджета предварительного просмотра используйте gtk_file_chooser_set_preview_widget(). Затем подключитесь к сигналу «update-preview», чтобы получать уведомления о необходимости обновления содержимого предварительного просмотра.

Ваш обработчик должен использовать gtk_file_chooser_get_preview_filename() для определения того, что нужно просмотреть. После того, как вы сгенерировали предварительный просмотр соответствующего файла, вы должны вызвать gtk_file_chooser_set_preview_widget_active() с логическим значением, указывающим, смог ли ваш обработчик успешно сгенерировать предварительный просмотр.

Пример: Использование виджета предварительного просмотра

Добавление дополнительных виджетов

Вы можете добавить дополнительные виджеты к селектору файлов, чтобы предоставить опции, отсутствующие в стандартном дизайне. Например, вы можете добавить переключатель, чтобы дать пользователю возможность открыть файл в режиме только для чтения. Для вставки дополнительных виджетов в селектор файлов используйте gtk_file_chooser_set_extra_widget().

Пример добавления дополнительных виджетов:

Если вы хотите установить более одного дополнительного виджета в селекторе файлов, вы можете использовать контейнер, такой как GtkBox или GtkGrid, и включить ваши виджеты в него. Затем установите контейнер как весь дополнительный виджет.

Функции

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

a GtkFileChooser

action

действие, выполняемое выбором файла

С: 2.4

gtk_file_chooser_get_action ()

GtkFileChooserAction
gtk_file_chooser_get_action (GtkFileChooser *chooser);

Получает тип операции, выполняемой выбором файла; см. gtk_file_chooser_set_action().

Параметры

chooser

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

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

Параметры

chooser

a 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

a GtkFileChooser

Возвращает

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

a 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

a GtkFileChooser

Возвращает

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

С: 2.4

gtk_file_chooser_set_show_hidden ()

void
gtk_file_chooser_set_show_hidden (GtkFileChooser *chooser,
                                  gboolean show_hidden);

Устанавливает, отображать ли скрытые файлы и папки в файловом селекторе.

Параметры

chooser

a 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

a 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.

Если установлено TRUE, то chooser будет излучать сигнал “confirm-overwrite” при необходимости.

Если вам нужен только стандартный диалог подтверждения, установите это свойство в TRUE. Вы можете переопределить способ подтверждения, фактически обрабатывая сигнал “confirm-overwrite”; подробности см. в документации к нему.

Параметры

chooser

a GtkFileChooser

do_overwrite_confirmation

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

С: 2.8

gtk_file_chooser_get_do_overwrite_confirmation ()

gboolean
gtk_file_chooser_get_do_overwrite_confirmation
                               (GtkFileChooser *chooser);

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

Параметры

chooser

a GtkFileChooser

Возвращаемое значение

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

С: 2.8

gtk_file_chooser_set_create_folders ()

void
gtk_file_chooser_set_create_folders (GtkFileChooser *chooser,
                                     gboolean create_folders);

Устанавливает, будет ли диалоговое окно выбора файла предлагать создать новые папки. Это актуально только если действие не задано как GTK_FILE_CHOOSER_ACTION_OPEN.

Параметры

chooser

a GtkFileChooser

create_folders

TRUE, если должна отображаться кнопка «Создать папку»

С: 2.18

gtk_file_chooser_get_create_folders ()

gboolean
gtk_file_chooser_get_create_folders (GtkFileChooser *chooser);

Возвращает, будет ли диалоговое окно выбора файла предлагать создать новые папки. См. gtk_file_chooser_set_create_folders().

Параметры

chooser

a GtkFileChooser

Возвращаемое значение

TRUE, если должна отображаться кнопка «Создать папку».

С: 2.18

gtk_file_chooser_set_current_name ()

void
gtk_file_chooser_set_current_name (GtkFileChooser *chooser,
                                   const gchar *name);

Устанавливает текущее имя в селекторе файлов, как если бы оно было введено пользователем. Обратите внимание, что имя, переданное сюда, представляет собой строку UTF-8, а не имя файла. Эта функция предназначена для использования, например, в качестве предлагаемого имени в диалоговом окне «Сохранить как…». Вы можете передать «Untitled.doc» или аналогичное подходящее предложение для name.

Если вы хотите предварительно выбрать определённый существующий файл, используйте gtk_file_chooser_set_filename() или gtk_file_chooser_set_uri() вместо этого. Документация по этим функциям содержит пример использования gtk_file_chooser_set_current_name().

Параметры

chooser

a GtkFileChooser

name

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

[type имя_файла]

С: 2.4

gtk_file_chooser_get_current_name ()

gchar *
gtk_file_chooser_get_current_name (GtkFileChooser *chooser);

Возвращает текущее имя в селекторе файлов, введённое пользователем в поле ввода для «Имени».

Это предназначено для использования в диалогах сохранения, чтобы получить текущее имя файла, введённое пользователем, когда сам файл ещё не существует. Например, приложение, добавляющее пользовательский дополнительный виджет в диалог выбора файла для «формата файла», может захотеть изменить расширение введённого имени файла в зависимости от выбранного формата, скажем, с «.jpg» на «.png».

Параметры

chooser

a GtkFileChooser

Возвращаемое значение

Сырой текст из поля «Имя» диалога выбора файла. Освободите его с помощью g_free(). Обратите внимание, что эта строка не является полным именем пути или URI; это то, что содержится в поле ввода. Также обратите внимание, что эта строка в кодировке UTF-8, которая не обязательно является системной кодировкой для имён файлов.

С: 3.10

gtk_file_chooser_get_filename ()

gchar *
gtk_file_chooser_get_filename (GtkFileChooser *chooser);

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

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

Параметры

chooser

a GtkFileChooser

Возвращаемое значение

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

[nullable][type имя_файла]

С: 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

a GtkFileChooser

filename

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

[type имя_файла]

Возвращаемое значение

Не используется.

С: 2.4

gtk_file_chooser_select_filename ()

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

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

Параметры

chooser

a GtkFileChooser

filename

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

[type имя_файла]

Возвращаемое значение

Не используется.

См. также: gtk_file_chooser_set_filename()

С: 2.4

gtk_file_chooser_unselect_filename ()

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

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

Параметры

chooser

a GtkFileChooser

filename

имя файла для снятия выбора.

[type filename]

С: 2.4

gtk_file_chooser_select_all ()

void
gtk_file_chooser_select_all (GtkFileChooser *chooser);

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

Параметры

chooser

a GtkFileChooser

С: 2.4

gtk_file_chooser_unselect_all ()

void
gtk_file_chooser_unselect_all (GtkFileChooser *chooser);

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

Параметры

chooser

a GtkFileChooser

С: 2.4

gtk_file_chooser_get_filenames ()

GSList *
gtk_file_chooser_get_filenames (GtkFileChooser *chooser);

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

Параметры

chooser

a GtkFileChooser

Возвращает

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

[element-type filename][transfer full]

С: 2.4

gtk_file_chooser_set_current_folder ()

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

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

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

Параметры

chooser

a GtkFileChooser

filename

полный путь новой текущей папки.

[type filename]

Возвращает

Неполезно.

С: 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_ACTION_SELECT_FOLDER (например, "/home/username/Documents/selected-folder/". Чтобы получить текущую выбранную папку в этом режиме, используйте gtk_file_chooser_get_uri() как обычный способ получения выбора.

Параметры

chooser

a GtkFileChooser

Возвращает

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

[nullable][type filename]

С: 2.4

gtk_file_chooser_get_uri ()

gchar *
gtk_file_chooser_get_uri (GtkFileChooser *chooser);

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

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

Параметры

chooser

a GtkFileChooser

Возвращает

Текущий выбранный URI или NULL, если ни один файл не выбран. Если gtk_file_chooser_set_local_only() установлено в TRUE (по умолчанию), локальный URI будет возвращён для всех расположений FUSE. Освободите с помощью g_free().

[nullable][transfer full]

С: 2.4

gtk_file_chooser_set_uri ()

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

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

Обратите внимание, что URI должен существовать, иначе ничего не будет сделано, кроме перехода в каталог.

Вы должны использовать эту функцию только при реализации диалогового окна сохранения, для которого у вас уже есть имя файла, куда пользователь может сохранить. Например, когда пользователь открывает существующий файл, а затем выполняет «Сохранить как…», чтобы сохранить копию или изменённую версию. Если у вас нет имени файла — например, если пользователь только что создал новый файл и сохраняет его впервые, не вызывайте эту функцию. Вместо этого используйте что-то подобное:

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

Параметры

chooser

a GtkFileChooser

uri

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

Возвращает

Неполезно.

С: 2.4

gtk_file_chooser_select_uri ()

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

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

Параметры

chooser

a GtkFileChooser

uri

URI для выбора

Возвращает

Не используется.

С: 2.4

gtk_file_chooser_unselect_uri ()

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

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

Параметры

chooser

a GtkFileChooser

uri

URI для отмены выбора

С: 2.4

gtk_file_chooser_get_uris ()

GSList *
gtk_file_chooser_get_uris (GtkFileChooser *chooser);

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

Параметры

chooser

a GtkFileChooser

Возвращает

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

[element-type utf8][transfer full]

С: 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

a 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_ACTION_SELECT_FOLDER (например, "file:///home/username/Documents/selected-folder/"). Чтобы получить текущую выбранную папку в этом режиме, используйте gtk_file_chooser_get_uri() как обычный способ получения выбора.

Параметры

chooser

a GtkFileChooser

Возвращает

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

[nullable][transfer full]

С: 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

a 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

a GtkFileChooser

Возвращает

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

[nullable][transfer none]

С: 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

a 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

a 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

a 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

a 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

a GtkFileChooser

Возвращаемое значение

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

[nullable][type имя_файла]

С момента: 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

a GtkFileChooser

Возвращаемое значение

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

[nullable][transfer full]

С момента: 2.4

gtk_file_chooser_set_extra_widget ()

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

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

Параметры

chooser

a 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

a GtkFileChooser

Возвращаемое значение

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

[nullable][transfer none]

С момента: 2.4

gtk_file_chooser_add_filter ()

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

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

Обратите внимание, что chooser принимает владение фильтром, поэтому вам нужно выполнять ref и sink, если вы хотите сохранить ссылку.

Параметры

chooser

a GtkFileChooser

filter

a GtkFileFilter.

[transfer full]

С момента: 2.4

gtk_file_chooser_remove_filter ()

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

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

Параметры

chooser

a GtkFileChooser

filter

a 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

a GtkFileChooser

Возвращаемое значение

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

[element-type GtkFileFilter][transfer container]

С: 2.4

gtk_file_chooser_set_filter ()

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

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

Параметры

chooser

a GtkFileChooser

filter

a GtkFileFilter

С: 2.4

gtk_file_chooser_get_filter ()

GtkFileFilter *
gtk_file_chooser_get_filter (GtkFileChooser *chooser);

Возвращает текущий фильтр; см. gtk_file_chooser_set_filter().

Параметры

chooser

a GtkFileChooser

Возвращаемое значение

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

[nullable][transfer none]

С: 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

a GtkFileChooser

folder

имя файла папки для добавления.

[type filename]

error

место для хранения ошибки, или NULL.

[allow-none]

Возвращаемое значение

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

a GtkFileChooser

folder

имя файла папки для удаления.

[type filename]

error

место для хранения ошибки, или NULL.

[allow-none]

Возвращаемое значение

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

a GtkFileChooser

Возвращаемое значение

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

[nullable][element-type filename][transfer full]

С: 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 папки для отображения со значками папок в файловом выборе. Обратите внимание, что папки-ярлыки не сохраняются, так как они предоставляются приложением. Например, вы можете добавить папку «file:///usr/share/mydrawprogram/Clipart» в список томов.

Параметры

chooser

a GtkFileChooser

uri

URI добавляемой папки

error

место для хранения ошибки или NULL.

[allow-none]

Возвращает

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

a GtkFileChooser

uri

URI папки для удаления

error

место для хранения ошибки или NULL.

[allow-none]

Возвращает

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

a GtkFileChooser

Возвращает

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

[nullable][element-type utf8][transfer full]

С: 2.4

gtk_file_chooser_get_current_folder_file ()

GFile *
gtk_file_chooser_get_current_folder_file
                               (GtkFileChooser *chooser);

Возвращает текущую папку chooser в виде GFile. См. gtk_file_chooser_get_current_folder_uri().

Параметры

chooser

a GtkFileChooser

Возвращает

GFile текущей папки.

[transfer full]

С: 2.14

gtk_file_chooser_get_file ()

GFile *
gtk_file_chooser_get_file (GtkFileChooser *chooser);

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

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

Параметры

chooser

a GtkFileChooser

Возвращает

выбранный GFile. Вы владеете возвращенным файлом; используйте g_object_unref() для его освобождения.

[transfer full]

С: 2.14

gtk_file_chooser_get_files ()

GSList *
gtk_file_chooser_get_files (GtkFileChooser *chooser);

Перечисляет все выбранные файлы и подпапки в текущей папке chooser в виде GFile. Внутренняя функция, см. gtk_file_chooser_get_uris().

Параметры

chooser

a GtkFileChooser

Возвращает

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

[element-type GFile][transfer full]

С: 2.14

gtk_file_chooser_get_preview_file ()

GFile *
gtk_file_chooser_get_preview_file (GtkFileChooser *chooser);

Возвращает GFile для предварительного просмотра в пользовательском предварительном просмотре. Внутренняя функция, см. gtk_file_chooser_get_preview_uri().

Параметры

chooser

a GtkFileChooser

Возвращает

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

[nullable][transfer full]

С: 2.14

gtk_file_chooser_select_file ()

gboolean
gtk_file_chooser_select_file (GtkFileChooser *chooser,
                              GFile *file,
                              GError **error);

Выбирает файл, на который ссылается file. Внутренняя функция. См. _gtk_file_chooser_select_uri().

Параметры

chooser

a GtkFileChooser

file

выбираемый файл

error

место для хранения ошибки, или NULL.

[allow-none]

Возвращаемое значение

Не имеет практического значения.

С: 2.14

gtk_file_chooser_set_current_folder_file ()

gboolean
gtk_file_chooser_set_current_folder_file
                               (GtkFileChooser *chooser,
                                GFile *file,
                                GError **error);

Устанавливает текущую папку для chooser из GFile. Внутренняя функция, см. gtk_file_chooser_set_current_folder_uri().

Параметры

chooser

a GtkFileChooser

file

GFile для новой папки

error

место для хранения ошибки, или NULL.

[allow-none]

Возвращаемое значение

TRUE, если папка успешно изменена, FALSE в противном случае.

С: 2.14

gtk_file_chooser_set_file ()

gboolean
gtk_file_chooser_set_file (GtkFileChooser *chooser,
                           GFile *file,
                           GError **error);

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

Если имя файла не находится в текущей папке chooser, то текущая папка chooser будет изменена на папку, содержащую filename. Это эквивалентно последовательности gtk_file_chooser_unselect_all(), за которой следует gtk_file_chooser_select_filename().

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

При реализации диалога сохранения, используйте эту функцию, если у вас уже есть имя файла, в который пользователь может сохранить; например, когда пользователь открывает существующий файл, а затем нажимает «Сохранить как…». Если у вас ещё нет имени файла — например, если пользователь только что создал новый файл и сохраняет его в первый раз, не вызывайте эту функцию. Вместо этого используйте что-то подобное:

Параметры

chooser

a GtkFileChooser

file

GFile для установки текущего

error

место для хранения ошибки, или NULL для игнорирования ошибок.

[allow-none]

Возвращаемое значение

Не имеет практического значения.

С: 2.14

gtk_file_chooser_unselect_file ()

void
gtk_file_chooser_unselect_file (GtkFileChooser *chooser,
                                GFile *file);

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

Параметры

chooser

a GtkFileChooser

file

GFile

С: 2.14

Типы и значения

GtkFileChooser

typedef struct _GtkFileChooser GtkFileChooser;

перечисление GtkFileChooserAction

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

Элементы

GTK_FILE_CHOOSER_ACTION_OPEN

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

GTK_FILE_CHOOSER_ACTION_SAVE

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

GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER

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

GTK_FILE_CHOOSER_ACTION_CREATE_FOLDER

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

перечисление GtkFileChooserConfirmation

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

Элементы

GTK_FILE_CHOOSER_CONFIRMATION_CONFIRM

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

GTK_FILE_CHOOSER_CONFIRMATION_ACCEPT_FILENAME

Файловый диалог завершит работу и примет выбор пользователя имени файла.

GTK_FILE_CHOOSER_CONFIRMATION_SELECT_AGAIN

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

Since: 2.8

GTK_FILE_CHOOSER_ERROR

#define GTK_FILE_CHOOSER_ERROR (gtk_file_chooser_error_quark ())

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

перечисление GtkFileChooserError

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

Элементы

GTK_FILE_CHOOSER_ERROR_NONEXISTENT

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

GTK_FILE_CHOOSER_ERROR_BAD_FILENAME

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

GTK_FILE_CHOOSER_ERROR_ALREADY_EXISTS

Указывает дублирование пути (например, при добавлении закладки).

GTK_FILE_CHOOSER_ERROR_INCOMPLETE_HOSTNAME

Указывает неполное имя хоста (например, "http://foo" без слэша после).

Подробное описание свойств

Свойство “action”

  “action”                   GtkFileChooserAction

Тип операции, выполняемой файловым селектором.

Флаги: Чтение / Запись

Значение по умолчанию: GTK_FILE_CHOOSER_ACTION_OPEN

Свойство “create-folders”

  “create-folders”           gboolean

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

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Since: 2.18

Свойство “do-overwrite-confirmation”

  “do-overwrite-confirmation” gboolean

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

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Since: 2.8

Свойство “extra-widget”

  “extra-widget”             GtkWidget *

Вспомогательный виджет, предоставленный приложением, для дополнительных параметров.

Флаги: Чтение / Запись

Свойство “filter”

  “filter”                   GtkFileFilter *

Текущий фильтр для выбора отображаемых файлов.

Флаги: Чтение / Запись

Свойство “local-only”

  “local-only”               gboolean

Указывает, должны ли выбранные файлы быть ограничены локальными URL-адресами.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Свойство “preview-widget”

  “preview-widget”           GtkWidget *

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

Флаги: Чтение / Запись

Свойство “preview-widget-active”

  “preview-widget-active”    gboolean

Указывает, должен ли отображаться предоставленный приложением виджет для пользовательских предварительных просмотров.

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Свойство “select-multiple”

  “select-multiple”          gboolean

Указывает, разрешено ли выбрать несколько файлов.

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “show-hidden”

  “show-hidden”              gboolean

Указывает, должны ли отображаться скрытые файлы и папки.

Флаги: Чтение / Запись

Значение по умолчанию: FALSE

Свойство “use-preview-label”

  “use-preview-label”        gboolean

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

Флаги: Чтение / Запись

Значение по умолчанию: TRUE

Подробности сигналов

Сигнал “confirm-overwrite”

GtkFileChooserConfirmation
user_function (GtkFileChooser *chooser,
               gpointer        user_data)

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

Настройка подтверждения

{
  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)
    g_object_unref (pixbuf);

  gtk_file_chooser_set_preview_widget_active (file_chooser, have_preview);
}

Параметры

chooser

объект, получивший сигнал.

user_data

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

Возвращаемое значение

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

Флаги: Выполнить последним

С версии: 2.8

Сигнал “current-folder-changed”

void
user_function (GtkFileChooser *chooser,
               gpointer        user_data)

Этот сигнал испускается, когда текущая папка в 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)

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

Этот сигнал испускается при изменении набора выбранных файлов в 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)

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

После установки виджета предварительного просмотра с помощью gtk_file_chooser_set_preview_widget(), вы должны обновить его при генерации этого сигнала. Вы можете использовать функции gtk_file_chooser_get_preview_filename() или gtk_file_chooser_get_preview_uri() для получения имени файла для предварительного просмотра. Возможно, ваш виджет не сможет просмотреть все типы файлов; ваш обработчик должен вызвать gtk_file_chooser_set_preview_widget_active(), чтобы сообщить файловому диалогу об успешном или неуспешном выполнении генерации предварительного просмотра.

См. пример кода в Примере использования виджета предварительного просмотра.

См. также: 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

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

Флаги: Run Last

См. также

GtkFileChooserDialog, GtkFileChooserWidget, GtkFileChooserButton

© 2005–2020 The GNOME Project
Licensed under the GNU Lesser General Public License version 2.1 or later.
https://developer.gnome.org/gtk3/3.22/GtkFileChooser.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API