`GtkFileFilter` filters files by name or mime type.
`GtkFileFilter` can be used to restrict the files being shown in a `GtkFileChooser`. Files can be filtered based on their name (with [
[email protected]_pattern] or [[email protected]_suffix]) or on their mime type (with [[email protected]_mime_type
]).
Filtering by mime types handles aliasing and subclassing of mime types; e.g. a filter for text/plain also matches a file with mime type
application/rtf, since application/rtf is a subclass of text/plain. Note that `GtkFileFilter` allows wildcards for the subtype of a mime
type, so you can e.g. filter for image/\*.
Normally, file filters are used by adding them to a `GtkFileChooser` (see [[email protected]_filter]), but it is also possible
to manually use a file filter on any [[email protected]] containing `GFileInfo` objects.
GtkFileFilter as GtkBuildable
The `GtkFileFilter` implementation of the `GtkBuildable` interface supports adding rules using the `<mime-types>` and `<patterns
>` and `<suffixes>` elements and listing the rules within. Specifying a `<mime-type>` or `<pattern>` or `<suffix
>` has the same effect as as calling [[email protected]_mime_type] or [[email protected]_pattern] or [
[email protected]_suffix].
An example of a UI definition fragment specifying `GtkFileFilter` rules: ```xml <object class="GtkFileFilter"> <property
name="name" translatable="yes">Text and Images</property> <mime-types> <mime-type>text/plain</mime-type>
<mime-type>image/ *</mime-type> </mime-types> <patterns> <pattern>*.txt</pattern> </patterns
> <suffixes> <suffix>png</suffix> </suffixes> </object> ```