A GtkFileFilter can be used to restrict the files being shown in a FileChooser.
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 FileFilter allows wildcards for the subtype of a mime type, so you can e.g. filter for image/\*.
GtkFileFilter as GtkBuildable
The GtkFileFilter implementation of the GtkBuildable interface supports adding rules using the <mime-types>, <patterns> and < applications> elements and listing the rules within. Specifying a <mime-type> or <pattern> has the same effect as as calling add_mime_type or add_pattern.
An example of a UI definition fragment specifying GtkFileFilter rules: