Spec-Zone.ru › GTK 3.22

GtkFileFilter

GtkFileFilter — Фильтр для выбора подмножества файлов

Функции

gboolean (*GtkFileFilterFunc) ()
GtkFileFilter * gtk_file_filter_new ()
void gtk_file_filter_set_name ()
const gchar * gtk_file_filter_get_name ()
void gtk_file_filter_add_mime_type ()
void gtk_file_filter_add_pattern ()
void gtk_file_filter_add_pixbuf_formats ()
void gtk_file_filter_add_custom ()
GtkFileFilterFlags gtk_file_filter_get_needed ()
gboolean gtk_file_filter_filter ()
GtkFileFilter * gtk_file_filter_new_from_gvariant ()
GVariant * gtk_file_filter_to_gvariant ()

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

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, заполненная в соответствии со флагами needed, переданными в gtk_file_filter_add_custom()

data

пользовательские данные, переданные в gtk_file_filter_add_custom().

[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

a GtkFileFilter

name

удобочитаемое имя фильтра, или NULL для удаления существующего имени.

[allow-none]

С версии: 2.4

gtk_file_filter_get_name ()

const gchar *
gtk_file_filter_get_name (GtkFileFilter *filter);

Возвращает удобочитаемое имя фильтра. См. gtk_file_filter_set_name().

Параметры

filter

a GtkFileFilter

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

Удобочитаемое имя фильтра или 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

a GtkFileFilter

mime_type

название типа MIME

С версии: 2.4

gtk_file_filter_add_pattern ()

void
gtk_file_filter_add_pattern (GtkFileFilter *filter,
                             const gchar *pattern);

Добавляет правило, разрешающее шаблон в стиле оболочки для фильтра.

Параметры

filter

a GtkFileFilter

pattern

шаблон в стиле оболочки

С версии: 2.4

gtk_file_filter_add_pixbuf_formats ()

void
gtk_file_filter_add_pixbuf_formats (GtkFileFilter *filter);

Добавляет правило, разрешающее файлы изображений в форматах, поддерживаемых GdkPixbuf.

Параметры

filter

a GtkFileFilter

С версии: 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

a GtkFileFilter

needed

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

func

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

data

данные, передаваемые в func

notify

функция для освобождения data, когда она больше не нужна.

С версии: 2.4

gtk_file_filter_get_needed ()

GtkFileFilterFlags
gtk_file_filter_get_needed (GtkFileFilter *filter);

Получает поля, которые необходимо заполнить для GtkFileFilterInfo, переданного в gtk_file_filter_filter()

Как правило, эта функция не будет использоваться приложениями; она предназначена в основном для использования в реализации GtkFileChooser.

Параметры

filter

a GtkFileFilter

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

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

a GtkFileFilter

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

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

новый объект GtkFileFilter.

[transfer full]

С версии: 3.22

gtk_file_filter_to_gvariant ()

GVariant *
gtk_file_filter_to_gvariant (GtkFileFilter *filter);

Сериализация фильтра файлов в a{sv} вариант.

Параметры

filter

a GtkFileFilter

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

новый, плавающий, GVariant.

[transfer none]

С версии: 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 contains;

Флаги, указывающие, какие из следующих полей заполнены

const gchar *filename;

имя файла, проверяемого на соответствие.

const gchar *uri;

URI проверяемого файла

const gchar *display_name;

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

const gchar *mime_type;

тип MIME файла

enum GtkFileFilterFlags

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

Члены

GTK_FILE_FILTER_FILENAME

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

GTK_FILE_FILTER_URI

URI проверяемого файла

GTK_FILE_FILTER_DISPLAY_NAME

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

GTK_FILE_FILTER_MIME_TYPE

тип MIME файла

См. также

GtkFileChooser

© 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

Spec-Zone.ru

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