GLoadableIcon
3
GIO Library

# GLoadableIcon

Loadable Icons

## Synopsis

    #include <gio/gio.h>

                        GLoadableIcon;
                        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.

### GLoadableIconIface

    typedef struct {
      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);
    } GLoadableIconIface;

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.

`cancellable` :

  optional GCancellable object, `NULL` to ignore.

`error` :

  a GError location to store the error occuring, or `NULL` to ignore.

Returns :

  a GInputStream to read the icon from.

### 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.

`callback` :

  a GAsyncReadyCallback to call when the request is satisfied

`user_data` :

  the data to pass to callback function

### 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 occuring, or `NULL` to ignore.

Returns :

  a GInputStream to read the icon from.

## See Also

GIcon, GThemedIcon