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 | |
| struct | GtkFileFilterInfo |
| перечисление | 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 | объект GtkFileFilter | |
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 | объект 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 | Объект GtkFileFilter | |
mime_type | имя MIME типа |
С: 2.4
gtk_file_filter_add_pattern ()
void gtk_file_filter_add_pattern (GtkFileFilter *filter,const gchar *pattern);
Добавляет правило, разрешающее шаблон в стиле оболочки glob фильтру.
Параметры
filter | объект GtkFileFilter | |
pattern | шаблон в стиле оболочки glob |
С: 2.4
gtk_file_filter_add_pixbuf_formats ()
void
gtk_file_filter_add_pixbuf_formats (GtkFileFilter *filter); Добавляет правило, разрешающее файлы изображений в форматах, поддерживаемых GdkPixbuf.
Параметры
filter | объект 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 | объект GtkFileFilter | |
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 | объект 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 | ||
filter_info | a GtkFileFilterInfo содержащая информацию о файле. |
Возвращаемое значение
TRUE, если файл следует отобразить
С: 2.4
Типы и значения
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;
};
Структура 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.20/GtkFileFilter.html