GTK+ Reference Manual |
||||
---|---|---|---|---|
GtkFileFilterGtkFileFilter Фильтр для выбора подмножества файлов |
#include <gtk/gtk.h>
GtkFileFilter;
GtkFileFilterInfo;
enum GtkFileFilterFlags;
gboolean (*GtkFileFilterFunc) (const GtkFileFilterInfo *filter_info,
gpointer data);
GtkFileFilter* gtk_file_filter_new (void);
void gtk_file_filter_set_name (GtkFileFilter *filter,
const gchar *name);
const gchar* gtk_file_filter_get_name (GtkFileFilter *filter);
void gtk_file_filter_add_mime_type (GtkFileFilter *filter,
const gchar *mime_type);
void gtk_file_filter_add_pattern (GtkFileFilter *filter,
const gchar *pattern);
void gtk_file_filter_add_pixbuf_formats
(GtkFileFilter *filter);
void gtk_file_filter_add_custom (GtkFileFilter *filter,
GtkFileFilterFlags needed,
GtkFileFilterFunc func,
gpointer data,
GDestroyNotify notify);
GtkFileFilterFlags gtk_file_filter_get_needed
(GtkFileFilter *filter);
gboolean gtk_file_filter_filter (GtkFileFilter *filter,
const GtkFileFilterInfo *filter_info);
GObject
+----GInitiallyUnowned
+----GtkObject
+----GtkFileFilter
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()
.
typedef struct _GtkFileFilter GtkFileFilter;Структура GtkFileFilter содержит только закрытые данные и не должна использоваться непосредственно.
GtkFileFilterInfo
typedef struct { GtkFileFilterFlags contains; const gchar *filename; const gchar *uri; const gchar *display_name; const gchar *mime_type; } GtkFileFilterInfo;
Структура GtkFileFilterInfo используется для размещения информации о проверяемом файле в
gtk_file_filter_filter()
.
GtkFileFilterFlags |
Флаг указывающий какие из следующих полей являются заполненными |
const gchar * |
Имя проверяемого файла |
const gchar * |
URI проверяемого файла |
const gchar * |
Строка используемая для отображения файла в селекторе файлов |
const gchar * |
mime тип файла |
typedef enum {
GTK_FILE_FILTER_FILENAME = 1 << 0,
GTK_FILE_FILTER_URI = 1 << 1,
GTK_FILE_FILTER_DISPLAY_NAME = 1 << 2,
GTK_FILE_FILTER_MIME_TYPE = 1 << 3
} GtkFileFilterFlags;
Эти флажки указывают какая часть структуры GtkFileFilterInfo заполнена или нуждается в заполнении.
Имя проверяемого файла |
|
URI проверяемого файла |
|
Строка используемая для отображения файла в селекторе файлов |
|
mime тип файла |
gboolean (*GtkFileFilterFunc) (const GtkFileFilterInfo *filter_info,
gpointer data);
Тип функции которая используется для
выборочной фильтрации, смотрите
gtk_file_filter_add_custom()
.
|
GtkFileFilterInfo которая
заполняется согласно |
|
Пользовательские данные помещаемые
в |
Возвращает : |
|
GtkFileFilter* gtk_file_filter_new (void);Создаёт новый GtkFileFilter без добавленных в него правил. Такой фильтр отвергает все файлы, поэтому бесполезен без добавления правил с помощью
gtk_file_filter_add_mime_type()
,gtk_file_filter_add_pattern()
, илиgtk_file_filter_add_custom()
. Для создания фильтра разрешающего отображение всех файлов используйте:GtkFileFilter *filter = gtk_file_filter_new (); gtk_file_filter_add_pattern (filter, "*");
Возвращает : |
новый GtkFileFilter |
Начиная с версии 2.4
void gtk_file_filter_set_name (GtkFileFilter *filter,
const gchar *name);
Устанавливает, удобное для чтения пользователем, имя фильтра; это строка которая будет отображаться в интерфейсе селектора файлов, если есть список выбираемых фильтров.
|
|
|
Имя фильтра в удобочитаемом виде,
или |
Начиная с версии 2.4
const gchar* gtk_file_filter_get_name (GtkFileFilter *filter);Определяет читабельное имя фильтра. Смотрите
gtk_file_filter_set_name()
.
|
|
Возвращает : |
Читабельное имя фильтра, или |
Начиная с версии 2.4
void gtk_file_filter_add_mime_type (GtkFileFilter *filter,
const gchar *mime_type);
Добавляет правило позволяющее полученный
mime тип для filter
.
|
|
|
имя MIME типа |
Начиная с версии 2.4
void gtk_file_filter_add_pattern (GtkFileFilter *filter,
const gchar *pattern);
Добавляет правило позволяющее общий стиль оболочки для фильтра.
|
|
|
Общий стиль оболочки |
Начиная с версии 2.4
void gtk_file_filter_add_pixbuf_formats
(GtkFileFilter *filter);
Добавляет правило допускающее файлы изображения в формате поддерживаемом GdkPixbuf.
|
Начиная с версии 2.6
void gtk_file_filter_add_custom (GtkFileFilter *filter,
GtkFileFilterFlags needed,
GtkFileFilterFunc func,
gpointer data,
GDestroyNotify notify);
Добавляет правило к фильтру позволяющему
файлы основываясь на выборочной функции.
Логическое поле needed
помещается
для обеспечения информации в которой
нуждается функция фильтрации; это
позволяет GTK+ избегать ненужной для
фильтра информации.
|
|
|
Логическое поле флажков указывающих необходимую информацию для выборочной функции фильтрации. |
|
callback-функция; если функция возвращает
|
|
Данные помещаемые в |
|
Функция вызываемая для освобождения
|
Начиная с версии 2.4
GtkFileFilterFlags gtk_file_filter_get_needed
(GtkFileFilter *filter);
Определяет поля необходимые для
заполнения в структуре помещаемой в
gtk_file_filter_filter()
Эта функция обычно не будет использоваться в приложениях; она предназначена преимущественно для использования в реализации GtkFileChooser.
|
|
Возвращает : |
Логическое поле флажков указывающих
необходимые поля для вызова
|
Начиная с версии 2.4
gboolean gtk_file_filter_filter (GtkFileFilter *filter,
const GtkFileFilterInfo *filter_info);
Проверяет должен ли отображаться файл
согласно filter
. GtkFileFilterInfo
структура filter_info
должна
включать поля возвращаемые из
gtk_file_filter_get_needed()
.
Эта функция обычно не будет использоваться в приложениях; она предназначена преимущественно для использования в реализации GtkFileChooser.
|
|
|
GtkFileFilterInfo структура содержащая информацию о файле. |
Возвращает : |
|
Начиная с версии 2.4