GtkFileFilter
GtkFileFilter — Фильтр для выбора подмножества файлов
Функции
Типы и значения
| GtkFileFilter | |
| struct | GtkFileFilterInfo |
| enum | GtkFileFilterFlags |
Иерархия объектов
GObject ╰── GInitiallyUnowned ╰── GtkFileFilter
Реализованные интерфейсы
GtkFileFilter реализует GtkBuildable.
Файлы заголовков
#include <gtk/gtk.h>
Описание
GtkFileFilter можно использовать для ограничения файлов, отображаемых в GtkFileChooser. Файлы можно фильтровать по имени (с помощью gtk_file_filter_add_pattern()), по MIME-типу (с помощью gtk_file_filter_add_mime_type()) или с помощью пользовательской функции фильтра (с помощью gtk_file_filter_add_custom()).
Фильтрация по MIME-типам обрабатывает псевдонимы и подклассы MIME-типов; например, фильтр для text/plain также соответствует файлам с MIME-типом application/rtf, так как application/rtf является подклассом text/plain. Обратите внимание, что GtkFileFilter позволяет использовать подстановочные знаки для подтипа MIME-типа, поэтому вы можете, например, фильтровать по image/*.
Обычно фильтры используются, добавляя их в GtkFileChooser, см. gtk_file_chooser_add_filter(), но также можно вручную использовать фильтр для файла с помощью gtk_file_filter_filter().
GtkFileFilter как GtkBuildable
Реализация GtkFileFilter интерфейса GtkBuildable поддерживает добавление правил с помощью элементов <mime-types>, <patterns> и <applications> и перечисление правил внутри. Указание <mime-type> или <pattern> имеет тот же эффект, что и вызов gtk_file_filter_add_mime_type() или gtk_file_filter_add_pattern().
Пример фрагмента определения пользовательского интерфейса, определяющего правила GtkFileFilter:
Функции
GtkFileFilterFunc ()
gboolean (*GtkFileFilterFunc) (const GtkFileFilterInfo *filter_info,gpointer data);
Тип функции, используемой с пользовательскими фильтрами, см. gtk_file_filter_add_custom().
Параметры
filter_info | структура GtkFileFilterInfo, заполненная в соответствии со флагами | |
data | пользовательские данные, переданные в | [closure] |
Возвращаемое значение
TRUE, если файл должен быть отображён
gtk_file_filter_new ()
GtkFileFilter *
gtk_file_filter_new (void); Создаёт новый GtkFileFilter без добавленных правил. Такой фильтр не принимает файлы, поэтому он не особенно полезен, пока вы не добавите правила с помощью gtk_file_filter_add_mime_type(), gtk_file_filter_add_pattern() или gtk_file_filter_add_custom(). Чтобы создать фильтр, принимающий любые файлы, используйте:
<object class="GtkFileFilter">
<mime-types>
<mime-type>text/plain</mime-type>
<mime-type>image/ *</mime-type>
</mime-types>
<patterns>
<pattern>*.txt</pattern>
<pattern>*.png</pattern>
</patterns>
</object>Возвращаемое значение
новый GtkFileFilter
С версии: 2.4
gtk_file_filter_set_name ()
void gtk_file_filter_set_name (GtkFileFilter *filter,const gchar *name);
Устанавливает удобочитаемое имя фильтра; эта строка будет отображаться в пользовательском интерфейсе выбора файлов, если есть переключаемый список фильтров.
Параметры
filter | ||
name | удобочитаемое имя фильтра, или | [allow-none] |
С версии: 2.4
gtk_file_filter_get_name ()
const gchar *
gtk_file_filter_get_name (GtkFileFilter *filter); Возвращает удобочитаемое имя фильтра. См. gtk_file_filter_set_name().
Параметры
filter |
Возвращаемое значение
Удобочитаемое имя фильтра или NULL. Это значение принадлежит GTK+ и его нельзя изменять или освобождать.
[nullable]
С версии: 2.4
gtk_file_filter_add_mime_type ()
void gtk_file_filter_add_mime_type (GtkFileFilter *filter,const gchar *mime_type);
Добавляет правило, разрешающее указанный тип MIME для filter.
Параметры
filter | ||
mime_type | название типа MIME |
С версии: 2.4
gtk_file_filter_add_pattern ()
void gtk_file_filter_add_pattern (GtkFileFilter *filter,const gchar *pattern);
Добавляет правило, разрешающее шаблон в стиле оболочки для фильтра.
Параметры
filter | ||
pattern | шаблон в стиле оболочки |
С версии: 2.4
gtk_file_filter_add_pixbuf_formats ()
void
gtk_file_filter_add_pixbuf_formats (GtkFileFilter *filter); Добавляет правило, разрешающее файлы изображений в форматах, поддерживаемых GdkPixbuf.
Параметры
filter |
С версии: 2.6
gtk_file_filter_add_custom ()
void gtk_file_filter_add_custom (GtkFileFilter *filter,GtkFileFilterFlags needed,GtkFileFilterFunc func,gpointer data,GDestroyNotify notify);
Добавляет правило в фильтр, разрешающее файлы на основе пользовательской функции обратного вызова. Битовое поле needed, которое передаётся, предоставляет информацию о том, какие виды информации необходимы функции фильтра; это позволяет GTK+ избежать извлечения дорогостоящей информации, когда она не нужна фильтру.
Параметры
filter | ||
needed | битовое поле флагов, указывающих информацию, необходимую пользовательской функции фильтра. | |
func | функция обратного вызова; если функция возвращает | |
data | данные, передаваемые в | |
notify | функция для освобождения |
С версии: 2.4
gtk_file_filter_get_needed ()
GtkFileFilterFlags
gtk_file_filter_get_needed (GtkFileFilter *filter); Получает поля, которые необходимо заполнить для GtkFileFilterInfo, переданного в gtk_file_filter_filter()
Как правило, эта функция не будет использоваться приложениями; она предназначена в основном для использования в реализации GtkFileChooser.
Параметры
filter |
Возвращаемое значение
битовое поле флагов, указывающих необходимые поля при вызове gtk_file_filter_filter()
С версии: 2.4
gtk_file_filter_filter ()
gboolean gtk_file_filter_filter (GtkFileFilter *filter,const GtkFileFilterInfo *filter_info);
Проверяет, нужно ли отображать файл в соответствии с filter. Структура GtkFileFilterInfo filter_info должна содержать поля, возвращаемые функцией gtk_file_filter_get_needed().
Как правило, эта функция не используется приложениями; она предназначена в основном для реализации GtkFileChooser.
Параметры
filter | ||
filter_info | a GtkFileFilterInfo, содержащая информацию о файле. |
Возвращаемое значение
TRUE, если файл должен быть отображён
С версии: 2.4
gtk_file_filter_new_from_gvariant ()
GtkFileFilter *
gtk_file_filter_new_from_gvariant (GVariant *variant); Десериализация фильтра файлов из a{sv} варианта в формате, созданном функцией gtk_file_filter_to_gvariant().
Параметры
variant | an a{sv} GVariant |
С версии: 3.22
gtk_file_filter_to_gvariant ()
GVariant *
gtk_file_filter_to_gvariant (GtkFileFilter *filter); Сериализация фильтра файлов в a{sv} вариант.
Параметры
filter |
С версии: 3.22
Типы и значения
GtkFileFilter
typedef struct _GtkFileFilter GtkFileFilter;
struct GtkFileFilterInfo
struct GtkFileFilterInfo {
GtkFileFilterFlags contains;
const gchar *filename;
const gchar *uri;
const gchar *display_name;
const gchar *mime_type;
};
A GtkFileFilterInfo используется для передачи информации о проверяемом файле в функцию gtk_file_filter_filter().
Члены
GtkFileFilterFlags | Флаги, указывающие, какие из следующих полей заполнены | |
const gchar * | имя файла, проверяемого на соответствие. | |
const gchar * | URI проверяемого файла | |
const gchar * | строка, используемая для отображения файла в диалоговом окне выбора файла. | |
const gchar * | тип MIME файла |
enum GtkFileFilterFlags
Эти флаги указывают, какие части структуры GtkFileFilterInfo заполнены или должны быть заполнены.
Члены
GTK_FILE_FILTER_FILENAME | имя файла, проверяемого на соответствие | |
GTK_FILE_FILTER_URI | URI проверяемого файла | |
GTK_FILE_FILTER_DISPLAY_NAME | строка, используемая для отображения файла в диалоговом окне выбора файла | |
GTK_FILE_FILTER_MIME_TYPE | тип MIME файла |
См. также
© 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/GtkFileFilter.html