## GLoadableIcon

GLoadableIcon — Loadable Icons

## Synopsis

    #include <gio/gio.h>

                        GLoadableIcon;
    struct              GLoadableIconIface;
    GInputStream *      g_loadable_icon_load                (GLoadableIcon *icon,
                                                             int size,
                                                             char **type,
                                                             GCancellable *cancellable,
                                                             GError **error);
    void                g_loadable_icon_load_async          (GLoadableIcon *icon,
                                                             int size,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);
    GInputStream *      g_loadable_icon_load_finish         (GLoadableIcon *icon,
                                                             GAsyncResult *res,
                                                             char **type,
                                                             GError **error);

## Object Hierarchy

      GInterface
       +----GLoadableIcon

## Prerequisites

GLoadableIcon requires GIcon and GObject.

## Known Implementations

GLoadableIcon is implemented by GFileIcon.

## Description

Extends the GIcon interface and adds the ability to load icons from streams.

## Details

### GLoadableIcon

    typedef struct _GLoadableIcon GLoadableIcon;

Generic type for all kinds of icons that can be loaded as a stream.

### struct GLoadableIconIface

    struct GLoadableIconIface {
      GTypeInterface g_iface;

      /* Virtual Table */

      GInputStream * (* load)        (GLoadableIcon       *icon,
                                      int                  size,
                                      char               **type,
                                      GCancellable        *cancellable,
                                      GError             **error);
      void           (* load_async)  (GLoadableIcon       *icon,
                                      int                  size,
                                      GCancellable        *cancellable,
                                      GAsyncReadyCallback  callback,
                                      gpointer             user_data);
      GInputStream * (* load_finish) (GLoadableIcon       *icon,
                                      GAsyncResult        *res,
                                      char               **type,
                                      GError             **error);
    };

Interface for icons that can be loaded as a stream.

GTypeInterface `g_iface`; | The parent interface.
`load` () | Loads an icon.
`load_async` () | Loads an icon asynchronously.
`load_finish` () | Finishes an asynchronous icon load.

### g_loadable_icon_load ()

    GInputStream *      g_loadable_icon_load                (GLoadableIcon *icon,
                                                             int size,
                                                             char **type,
                                                             GCancellable *cancellable,
                                                             GError **error);

Loads a loadable icon. For the asynchronous version of this function, see `g_loadable_icon_load_async()`.

`icon` : | a GLoadableIcon.
`size` : | an integer.
`type` : | a location to store the type of the loaded icon, `NULL` to ignore. [out][allow-none]
`cancellable` : | optional GCancellable object, `NULL` to ignore. [allow-none]
`error` : | a GError location to store the error occurring, or `NULL` to ignore.
Returns : | a GInputStream to read the icon from. [transfer full]

### g_loadable_icon_load_async ()

    void                g_loadable_icon_load_async          (GLoadableIcon *icon,
                                                             int size,
                                                             GCancellable *cancellable,
                                                             GAsyncReadyCallback callback,
                                                             gpointer user_data);

Loads an icon asynchronously. To finish this function, see `g_loadable_icon_load_finish()`. For the synchronous, blocking version of this function, see `g_loadable_icon_load()`.

`icon` : | a GLoadableIcon.
`size` : | an integer.
`cancellable` : | optional GCancellable object, `NULL` to ignore. [allow-none]
`callback` : | a GAsyncReadyCallback to call when the request is satisfied. [scope async]
`user_data` : | the data to pass to callback function. [closure]

### g_loadable_icon_load_finish ()

    GInputStream *      g_loadable_icon_load_finish         (GLoadableIcon *icon,
                                                             GAsyncResult *res,
                                                             char **type,
                                                             GError **error);

Finishes an asynchronous icon load started in `g_loadable_icon_load_async()`.

`icon` : | a GLoadableIcon.
`res` : | a GAsyncResult.
`type` : | a location to store the type of the loaded icon, `NULL` to ignore.
`error` : | a GError location to store the error occurring, or `NULL` to ignore.
Returns : | a GInputStream to read the icon from. [transfer full]

## See Also

GIcon, GThemedIcon