Prev

Up

Home

GTK+ Reference Manual

Next

Top  |  Description  |  Object Hierarchy

GtkRecentFilter

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

Краткое описание

#include <gtk/gtk.h> GtkRecentFilter; GtkRecentFilterInfo; enum GtkRecentFilterFlags; gboolean (*GtkRecentFilterFunc) (const GtkRecentFilterInfo *filter_info, gpointer user_data); GtkRecentFilter* gtk_recent_filter_new (void); const gchar* gtk_recent_filter_get_name (GtkRecentFilter *filter); void gtk_recent_filter_set_name (GtkRecentFilter *filter, const gchar *name); void gtk_recent_filter_add_mime_type (GtkRecentFilter *filter, const gchar *mime_type); void gtk_recent_filter_add_pattern (GtkRecentFilter *filter, const gchar *pattern); void gtk_recent_filter_add_pixbuf_formats (GtkRecentFilter *filter); void gtk_recent_filter_add_application (GtkRecentFilter *filter, const gchar *application); void gtk_recent_filter_add_group (GtkRecentFilter *filter, const gchar *group); void gtk_recent_filter_add_age (GtkRecentFilter *filter, gint days); void gtk_recent_filter_add_custom (GtkRecentFilter *filter, GtkRecentFilterFlags needed, GtkRecentFilterFunc func, gpointer data, GDestroyNotify data_destroy); GtkRecentFilterFlags gtk_recent_filter_get_needed (GtkRecentFilter *filter); gboolean gtk_recent_filter_filter (GtkRecentFilter *filter, const GtkRecentFilterInfo *filter_info);

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

GObject +----GInitiallyUnowned +----GtkObject +----GtkRecentFilter

Описание

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

typedef struct _GtkRecentFilter GtkRecentFilter;

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


GtkRecentFilterInfo

typedef struct { GtkRecentFilterFlags contains; const gchar *uri; const gchar *display_name; const gchar *mime_type; const gchar **applications; const gchar **groups; gint age; } GtkRecentFilterInfo;

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

GtkRecentFilterFlags contains;

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

const gchar *uri;

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

const gchar *display_name;

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

const gchar *mime_type;

mime тип файла

const gchar **applications;

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

const gchar **groups;

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

gint age;

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


enum GtkRecentFilterFlags

typedef enum { GTK_RECENT_FILTER_URI = 1 << 0, GTK_RECENT_FILTER_DISPLAY_NAME = 1 << 1, GTK_RECENT_FILTER_MIME_TYPE = 1 << 2, GTK_RECENT_FILTER_APPLICATION = 1 << 3, GTK_RECENT_FILTER_GROUP = 1 << 4, GTK_RECENT_FILTER_AGE = 1 << 5 } 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

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


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(). Для создания фильтра показывающего все недавно использованные файлы используйте:

GtkRecentFilter *filter = gtk_recent_filter_new (); gtk_recent_filter_add_pattern (filter, "*");

Возвращает :

Новый GtkRecentFilter

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


gtk_recent_filter_get_name ()

const gchar* gtk_recent_filter_get_name     (GtkRecentFilter *filter);

Выдаёт читабельное (human-readable) имя для фильтра. Смотрите gtk_recent_filter_set_name().

filter :

GtkRecentFilter

Возвращает :

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

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


gtk_recent_filter_set_name ()

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

Устанавливает читабельное (human-readable) имя фильтра; это строка которая отображается в селекторе недавно использованных файлов пользовательского интерфейса если есть список выбираемых фильтров.

filter :

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 :

GtkRecentFilter

mime_type :

MIME тип

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


gtk_recent_filter_add_pattern ()

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

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

filter :

GtkRecentFilter

pattern :

Шаблон файла

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


gtk_recent_filter_add_pixbuf_formats ()

void gtk_recent_filter_add_pixbuf_formats (GtkRecentFilter *filter);

Добавляет правило отбора файлов изображений в формате поддерживаемом GdkPixbuf.

filter :

GtkRecentFilter

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


gtk_recent_filter_add_application ()

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

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

filter :

GtkRecentFilter

application :

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

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


gtk_recent_filter_add_group ()

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

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

filter :

GtkRecentFilter

group :

Имя группы

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


gtk_recent_filter_add_age ()

void gtk_recent_filter_add_age (GtkRecentFilter *filter, gint days);

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

filter :

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 :

GtkRecentFilter

needed :

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

func :

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

data :

Данные помещаемые в func

data_destroy :

Функция вызываемая для освобождения данных data когда они больше не нужны.

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


gtk_recent_filter_get_needed ()

GtkRecentFilterFlags gtk_recent_filter_get_needed (GtkRecentFilter *filter);

Выдаёт поля которые необходимо заполнить в структуре помещаемой в gtk_recent_filter_filter()

Эта функция обычно не используется приложениями; она преимущественно предназначена для использования при реализации GtkRecentChooser.

filter :

GtkRecentFilter

Возвращает :

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

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

Эта функция обычно не используется приложениями; она преимущественно предназначена для использования при реализации GtkRecentChooser.

filter :

GtkRecentFilter

filter_info :

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

Возвращает :

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

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

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

GtkRecentChooser