Spec-Zone.ru › GTK 3.22

GtkRecentFilter

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

Функции

gboolean (*GtkRecentFilterFunc) ()
GtkRecentFilter * gtk_recent_filter_new ()
const gchar * gtk_recent_filter_get_name ()
void gtk_recent_filter_set_name ()
void gtk_recent_filter_add_mime_type ()
void gtk_recent_filter_add_pattern ()
void gtk_recent_filter_add_pixbuf_formats ()
void gtk_recent_filter_add_application ()
void gtk_recent_filter_add_group ()
void gtk_recent_filter_add_age ()
void gtk_recent_filter_add_custom ()
GtkRecentFilterFlags gtk_recent_filter_get_needed ()
gboolean gtk_recent_filter_filter ()

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

GtkRecentFilter
struct GtkRecentFilterInfo
перечисление GtkRecentFilterFlags

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

    GObject
    ╰── GInitiallyUnowned
        ╰── GtkRecentFilter

Реализованные интерфейсы

GtkRecentFilter реализует GtkBuildable.

Файлы включения

#include <gtk/gtk.h>

Описание

Класс GtkRecentFilter может использоваться для ограничения файлов, отображаемых в GtkRecentChooser. Файлы можно фильтровать по имени (с помощью gtk_recent_filter_add_pattern()), по типу MIME (с помощью gtk_file_filter_add_mime_type()), по приложению, которое их зарегистрировало (с помощью gtk_recent_filter_add_application()), или с помощью пользовательской функции фильтрации (с помощью gtk_recent_filter_add_custom()).

Фильтрация по типу MIME обрабатывает псевдонимы и подклассы типов MIME; например, фильтр для text/plain также соответствует файлу с типом MIME application/rtf, так как application/rtf является подклассом text/plain. Обратите внимание, что GtkRecentFilter допускает использование подстановочных знаков для подтипа типа MIME, поэтому вы можете, например, фильтровать по image/*.

Обычно фильтры используются путем добавления их в GtkRecentChooser, см. gtk_recent_chooser_add_filter(), но также можно вручную применить фильтр к файлу с помощью gtk_recent_filter_filter().

Поддержка недавно использованных файлов доступна начиная с GTK+ 2.10.

GtkRecentFilter как GtkBuildable

Реализация GtkRecentFilter интерфейса GtkBuildable поддерживает добавление правил с помощью элементов <mime-types>, <patterns> и <applications> и перечисление правил внутри. Указание <mime-type>, <pattern> или <application> имеет тот же эффект, что и вызов gtk_recent_filter_add_mime_type(), gtk_recent_filter_add_pattern() или gtk_recent_filter_add_application().

Пример фрагмента определения пользовательского интерфейса, указывающего правила GtkRecentFilter:

Функции

GtkRecentFilterFunc ()

gboolean
(*GtkRecentFilterFunc) (const GtkRecentFilterInfo *filter_info,
                        gpointer user_data);

Тип функции, используемой с пользовательскими фильтрами, см. gtk_recent_filter_add_custom().

Параметры

filter_info

структура GtkRecentFilterInfo, заполненная в соответствии с флагами needed, переданными в gtk_recent_filter_add_custom()

user_data

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

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

TRUE, если файл должен быть отображён

gtk_recent_filter_new ()

GtkRecentFilter *
gtk_recent_filter_new (void);

Создаёт новый GtkRecentFilter без добавления правил. Такой фильтр не принимает недавно использованные ресурсы, поэтому не очень полезен, пока вы не добавите правила с помощью gtk_recent_filter_add_pattern(), gtk_recent_filter_add_mime_type(), gtk_recent_filter_add_application(), gtk_recent_filter_add_age(). Для создания фильтра, принимающего все недавно использованные ресурсы, используйте:

<object class="GtkRecentFilter">
  <mime-types>
    <mime-type>text/plain</mime-type>
    <mime-type>image/png</mime-type>
  </mime-types>
  <patterns>
    <pattern>*.txt</pattern>
    <pattern>*.png</pattern>
  </patterns>
  <applications>
    <application>gimp</application>
    <application>gedit</application>
    <application>glade</application>
  </applications>
</object>

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

новый GtkRecentFilter

С: 2.10

gtk_recent_filter_get_name ()

const gchar *
gtk_recent_filter_get_name (GtkRecentFilter *filter);

Получает удобочитаемое имя фильтра. См. gtk_recent_filter_set_name().

Параметры

filter

a GtkRecentFilter

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

имя фильтра или NULL. Возвращаемая строка принадлежит объекту фильтра и не должна освобождаться.

[nullable]

С: 2.10

gtk_recent_filter_set_name ()

void
gtk_recent_filter_set_name (GtkRecentFilter *filter,
                            const gchar *name);

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

Параметры

filter

a GtkRecentFilter

name

удобочитаемое имя filter

С: 2.10

gtk_recent_filter_add_mime_type ()

void
gtk_recent_filter_add_mime_type (GtkRecentFilter *filter,
                                 const gchar *mime_type);

Добавляет правило, позволяющее ресурсам на основе их зарегистрированного MIME-типа.

Параметры

filter

a GtkRecentFilter

mime_type

MIME-тип

С: 2.10

gtk_recent_filter_add_pattern ()

void
gtk_recent_filter_add_pattern (GtkRecentFilter *filter,
                               const gchar *pattern);

Добавляет правило, разрешающее ресурсы на основе соответствия шаблону их имени отображения.

Параметры

filter

a GtkRecentFilter

pattern

шаблон файла

С: 2.10

gtk_recent_filter_add_pixbuf_formats ()

void
gtk_recent_filter_add_pixbuf_formats (GtkRecentFilter *filter);

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

Параметры

filter

a GtkRecentFilter

С: 2.10

gtk_recent_filter_add_application ()

void
gtk_recent_filter_add_application (GtkRecentFilter *filter,
                                   const gchar *application);

Добавляет правило, позволяющее ресурсы на основе имени приложения, которое их зарегистрировало.

Параметры

filter

a GtkRecentFilter

application

имя приложения

С: 2.10

gtk_recent_filter_add_group ()

void
gtk_recent_filter_add_group (GtkRecentFilter *filter,
                             const gchar *group);

Добавляет правило, разрешающее ресурсы на основе имени группы, к которой они относятся.

Параметры

filter

a GtkRecentFilter

group

имя группы

С: 2.10

gtk_recent_filter_add_age ()

void
gtk_recent_filter_add_age (GtkRecentFilter *filter,
                           gint days);

Добавляет правило, позволяющее ресурсы на основе их возраста — количество дней, прошедших с момента последнего изменения.

Параметры

filter

a GtkRecentFilter

days

количество дней

С: 2.10

gtk_recent_filter_add_custom ()

void
gtk_recent_filter_add_custom (GtkRecentFilter *filter,
                              GtkRecentFilterFlags needed,
                              GtkRecentFilterFunc func,
                              gpointer data,
                              GDestroyNotify data_destroy);

Добавляет правило фильтру, позволяющее ресурсы на основе пользовательской функции обратного вызова. Битовое поле needed, переданное в нём, предоставляет информацию о том, какие типы информации функция фильтра нуждается; это позволяет GTK+ избежать получения дорогостоящей информации, когда она не требуется фильтром.

Параметры

filter

a GtkRecentFilter

needed

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

func

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

data

данные для передачи в func

data_destroy

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

С: 2.10

gtk_recent_filter_get_needed ()

GtkRecentFilterFlags
gtk_recent_filter_get_needed (GtkRecentFilter *filter);

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

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

Параметры

filter

a GtkRecentFilter

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

побитовое поле флагов, указывающее необходимые поля при вызове gtk_recent_filter_filter()

Since: 2.10

gtk_recent_filter_filter ()

gboolean
gtk_recent_filter_filter (GtkRecentFilter *filter,
                          const GtkRecentFilterInfo *filter_info);

Проверяет, следует ли отображать файл в соответствии с filter. GtkRecentFilterInfo filter_info должен содержать поля, возвращенные функцией gtk_recent_filter_get_needed(), и должен установить поле GtkRecentFilterInfo.contains в filter_info, чтобы указать, какие поля установлены.

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

Параметры

filter

a GtkRecentFilter

filter_info

a GtkRecentFilterInfo содержащий информацию о недавно использованном ресурсе

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

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

Since: 2.10

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

GtkRecentFilter

typedef struct _GtkRecentFilter GtkRecentFilter;

struct GtkRecentFilterInfo

struct GtkRecentFilterInfo {
  GtkRecentFilterFlags contains;

  const gchar *uri;
  const gchar *display_name;
  const gchar *mime_type;
  const gchar **applications;
  const gchar **groups;

  gint age;
};

Структура GtkRecentFilterInfo используется для передачи информации о проверяемом файле в функцию gtk_recent_filter_filter().

Члены

GtkRecentFilterFlags contains;

GtkRecentFilterFlags, указывающие, какие поля установлены.

const gchar *uri;

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

[nullable]

const gchar *display_name;

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

[nullable]

const gchar *mime_type;

Тип MIME файла.

[nullable]

const gchar **applications;

Список приложений, которые зарегистрировали файл.

[nullable][array zero-terminated=1]

const gchar **groups;

Группы, к которым принадлежит файл.

[nullable][array zero-terminated=1]

gint age;

Количество дней, прошедших с момента регистрации файла.

enum GtkRecentFilterFlags

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

Члены

GTK_RECENT_FILTER_URI

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

GTK_RECENT_FILTER_DISPLAY_NAME

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

GTK_RECENT_FILTER_MIME_TYPE

тип MIME файла

GTK_RECENT_FILTER_APPLICATION

список приложений, которые зарегистрировали файл

GTK_RECENT_FILTER_GROUP

группы, к которым принадлежит файл

GTK_RECENT_FILTER_AGE

количество дней, прошедших с момента регистрации файла

© 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/GtkRecentFilter.html

Spec-Zone.ru

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