## ThunarVfsMimeInfo

ThunarVfsMimeInfo — Represents a MIME type in the system.

## Synopsis

    #include <thunar-vfs/thunar-vfs.h>

                        ThunarVfsMimeInfo;
    ThunarVfsMimeInfo * thunar_vfs_mime_info_new            (const gchar *name,
                                                             gssize len);
    ThunarVfsMimeInfo * thunar_vfs_mime_info_ref            (ThunarVfsMimeInfo *info);
    void                thunar_vfs_mime_info_unref          (ThunarVfsMimeInfo *info);
    const gchar *       thunar_vfs_mime_info_get_comment    (ThunarVfsMimeInfo *info);
    const gchar *       thunar_vfs_mime_info_get_name       (const ThunarVfsMimeInfo *info);
    gchar *             thunar_vfs_mime_info_get_media      (const ThunarVfsMimeInfo *info);
    gchar *             thunar_vfs_mime_info_get_subtype    (const ThunarVfsMimeInfo *info);
    guint               thunar_vfs_mime_info_hash           (gconstpointer info);
    gboolean            thunar_vfs_mime_info_equal          (gconstpointer a,
                                                             gconstpointer b);
    const gchar *       thunar_vfs_mime_info_lookup_icon_name
                                                            (ThunarVfsMimeInfo *info,
                                                             GtkIconTheme *icon_theme);
    void                thunar_vfs_mime_info_list_free      (GList *info_list);

## Description

## Details

### ThunarVfsMimeInfo

    typedef struct {
    } ThunarVfsMimeInfo;

The ThunarVfsMimeInfo struct contains private data only, and should be accessed using the functions below.

### thunar_vfs_mime_info_new ()

    ThunarVfsMimeInfo * thunar_vfs_mime_info_new            (const gchar *name,
                                                             gssize len);

Allocates a new ThunarVfsMimeInfo object with an initial reference count of one and sets it to the given `name`.

Note that no checking is performed on the given `name`. You should not normally use this function, but use `thunar_vfs_mime_database_get_info()` instead.

In addition, if you allocate ThunarVfsMimeInfos using this function, you cannot mix them with the objects allocated in a ThunarVfsMimeDatabase, because the ThunarVfsMimeDatabase and associated functions assume that ThunarVfsMimeInfo objects are unique.

`name` : | the mime type name.
`len` : | the length of `name` or `-1` if zero-terminated.
Returns : | the newly allocated ThunarVfsMimeInfo.

### thunar_vfs_mime_info_ref ()

    ThunarVfsMimeInfo * thunar_vfs_mime_info_ref            (ThunarVfsMimeInfo *info);

Increments the reference count on `info` and returns the reference to `info`.

`info` : | a ThunarVfsMimeInfo.
Returns : | a reference to `info`.

### thunar_vfs_mime_info_unref ()

    void                thunar_vfs_mime_info_unref          (ThunarVfsMimeInfo *info);

Decrements the reference count on `info` and releases the resources allocated for `info` once the reference count drops to zero.

`info` : | a ThunarVfsMimeInfo.

### thunar_vfs_mime_info_get_comment ()

    const gchar *       thunar_vfs_mime_info_get_comment    (ThunarVfsMimeInfo *info);

Determines the description for the given `info`.

Note that this method MUST NOT be called from threads other than the main thread, because it's not thread-safe!

`info` : | a ThunarVfsMimeInfo.
Returns : | the comment associated with the `info` or the empty string if no comment was provided.

### thunar_vfs_mime_info_get_name ()

    const gchar *       thunar_vfs_mime_info_get_name       (const ThunarVfsMimeInfo *info);

Returns the full qualified name of the MIME type described by the `info` object.

`info` : | a ThunarVfsMimeInfo.
Returns : | the name of `info`.

### thunar_vfs_mime_info_get_media ()

    gchar *             thunar_vfs_mime_info_get_media      (const ThunarVfsMimeInfo *info);

Returns the media portion of the MIME type, e.g. if your ThunarVfsMimeInfo instance refers to "text/plain", invoking this method will return "text".

The caller is responsible to free the returned string using `g_free()` when no longer needed.

`info` : | a ThunarVfsMimeInfo.
Returns : | the media portion of the MIME type.

### thunar_vfs_mime_info_get_subtype ()

    gchar *             thunar_vfs_mime_info_get_subtype    (const ThunarVfsMimeInfo *info);

Returns the subtype portion of the MIME type, e.g. if `info` refers to "application/octect-stream", this method will return "octect-stream".

The caller is responsible to free the returned string using `g_free()` when no longer needed.

`info` : | a ThunarVfsMimeInfo.
Returns : | the subtype portion of `info`.

### thunar_vfs_mime_info_hash ()

    guint               thunar_vfs_mime_info_hash           (gconstpointer info);

Calculates a hash value for `info`.

`info` : | a ThunarVfsMimeInfo.
Returns : | a hash value for `info`.

### thunar_vfs_mime_info_equal ()

    gboolean            thunar_vfs_mime_info_equal          (gconstpointer a,
                                                             gconstpointer b);

Compares `a` and `b` and returns `TRUE` if both are equal.

`a` : | a ThunarVfsMimeInfo.
`b` : | a ThunarVfsMimeInfo.
Returns : | `TRUE` if `a` and `b` are equal.

### thunar_vfs_mime_info_lookup_icon_name ()

    const gchar *       thunar_vfs_mime_info_lookup_icon_name
                                                            (ThunarVfsMimeInfo *info,
                                                             GtkIconTheme *icon_theme);

Tries to determine the name of a suitable icon for `info` in `icon_theme`. The returned icon name can then be used in calls to `gtk_icon_theme_lookup_icon()` or `gtk_icon_theme_load_icon()`.

The returned icon name is owned by `info` and MUST NOT be freed by the caller.

Note that this method MUST NOT be called from threads other than the main thread, because it's not thread-safe!

`info` : | a ThunarVfsMimeInfo.
`icon_theme` : | the GtkIconTheme on which to perform the lookup.
Returns : | a suitable icon name for `info` in `icon_theme`.

### thunar_vfs_mime_info_list_free ()

    void                thunar_vfs_mime_info_list_free      (GList *info_list);

Frees the list and all ThunarVfsMimeInfos contained within the list.

`info_list` : | a GList of ThunarVfsMimeInfos

## See Also

ThunarVfsMimeDatabase