## GcrCollection GcrCollection — A collection of objects. |

## Synopsis

                        GcrCollection;
    guint               gcr_collection_get_length           (GcrCollection *self);
    GList *             gcr_collection_get_objects          (GcrCollection *self);
    gboolean            gcr_collection_contains             (GcrCollection *self,
                                                             GObject *object);
    void                gcr_collection_emit_added           (GcrCollection *self,
                                                             GObject *object);
    void                gcr_collection_emit_removed         (GcrCollection *self,
                                                             GObject *object);

## Object Hierarchy

      GInterface
       +----GcrCollection

## Prerequisites

GcrCollection requires GObject.

## Known Implementations

GcrCollection is implemented by GcrFilterCollection, GcrSimpleCollection and GcrUnionCollection.

## Signals

      "added"                                          : Run Last
      "removed"                                        : Run Last

## Description

A GcrCollection is used to group a set of objects. This is an abstract interface which can be used to determine which objects show up in a selector or other user interface element.

Use `gcr_simple_collection_new()` to create a concrete implementation of this interface which you can add objects to.

## Details

### GcrCollection

    typedef struct _GcrCollection GcrCollection;

A GcrCollection is used to group a set of objects.

### gcr_collection_get_length ()

    guint               gcr_collection_get_length           (GcrCollection *self);

Get the number of objects in this collection.

`self` : | The collection
Returns : | The number of objects.

### gcr_collection_get_objects ()

    GList *             gcr_collection_get_objects          (GcrCollection *self);

Get a list of the objects in this collection.

`self` : | The collection
Returns : | a list of the objects in this collection, which should be freed with `g_list_free()`. [transfer container][element-type GLib.Object]

### gcr_collection_contains ()

    gboolean            gcr_collection_contains             (GcrCollection *self,
                                                             GObject *object);

Check whether the collection contains an object or not.

`self` : | the collection
`object` : | object to check
Returns : | whether the collection contains this object

### gcr_collection_emit_added ()

    void                gcr_collection_emit_added           (GcrCollection *self,
                                                             GObject *object);

Emit the "added" signal for the given object. This function is used by implementors of this interface.

`self` : | The collection
`object` : | The object that was added

### gcr_collection_emit_removed ()

    void                gcr_collection_emit_removed         (GcrCollection *self,
                                                             GObject *object);

Emit the "removed" signal for the given object. This function is used by implementors of this interface.

`self` : | The collection
`object` : | The object that was removed

## Signal Details

### The `"added"` signal

    void                user_function                      (GcrCollection *self,
                                                            GObject       *object,
                                                            gpointer       user_data)      : Run Last

This signal is emitted when an object is added to the collection.

`self` : | the collection
`object` : | object that was added. [type GLib.Object]
`user_data` : | user data set when the signal handler was connected.

### The `"removed"` signal

    void                user_function                      (GcrCollection *self,
                                                            GObject       *object,
                                                            gpointer       user_data)      : Run Last

This signal is emitted when an object is removed from the collection.

`self` : | the collection
`object` : | object that was removed. [type GLib.Object]
`user_data` : | user data set when the signal handler was connected.