## ClutterGroup

ClutterGroup — Actor class containing multiple children. actors.

## Synopsis

                        ClutterGroup;
                        ClutterGroupClass;
    ClutterActor*       clutter_group_new                   (void);
    void                clutter_group_add_many              (ClutterGroup *group,
                                                             ClutterActor *first_actor,
                                                             ...);
    void                clutter_group_add_many_valist       (ClutterGroup *group,
                                                             ClutterActor *first_actor,
                                                             va_list var_args);
    void                clutter_group_remove                (ClutterGroup *group,
                                                             ClutterActor *actor);
    void                clutter_group_remove_all            (ClutterGroup *group);
    gint                clutter_group_get_n_children        (ClutterGroup *self);
    ClutterActor*       clutter_group_get_nth_child         (ClutterGroup *self,
                                                             gint index_);
    void                clutter_group_raise                 (ClutterGroup *self,
                                                             ClutterActor *actor,
                                                             ClutterActor *sibling);
    void                clutter_group_lower                 (ClutterGroup *self,
                                                             ClutterActor *actor,
                                                             ClutterActor *sibling);
    void                clutter_group_sort_depth_order      (ClutterGroup *self);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----ClutterActor
                   +----ClutterGroup
                         +----ClutterStage

## Implemented Interfaces

ClutterGroup implements ClutterContainer.

## Signals

      "add"                                            : Run First
      "remove"                                         : Run First

## Description

A ClutterGroup is an Actor which contains multiple child actors positioned relative to the ClutterGroup position. Other operations such as scaling, rotating and clipping of the group will apply to the child actors.

A ClutterGroup's size is defined by the size and position of its children. Resize requests via the ClutterActor API will be ignored.

## Details

### ClutterGroup

    typedef struct _ClutterGroup ClutterGroup;

### ClutterGroupClass

    typedef struct {
    } ClutterGroupClass;

### clutter_group_new ()

    ClutterActor*       clutter_group_new                   (void);

Create a new ClutterGroup.

Returns : | the newly created ClutterGroup actor

### clutter_group_add_many ()

    void                clutter_group_add_many              (ClutterGroup *group,
                                                             ClutterActor *first_actor,
                                                             ...);

### Warning

`clutter_group_add_many` is deprecated and should not be used in newly-written code.

Adds a `NULL`-terminated list of actors to a group. This function is equivalent to calling `clutter_group_add()` for each member of the list.

`Deprecated`: 0.4: This function is obsolete, use `clutter_container_add()` instead.

`group` : | A ClutterGroup
`first_actor` : | the ClutterActor actor to add to the group
`...` : | additional actors to add to the group

### clutter_group_add_many_valist ()

    void                clutter_group_add_many_valist       (ClutterGroup *group,
                                                             ClutterActor *first_actor,
                                                             va_list var_args);

### Warning

`clutter_group_add_many_valist` is deprecated and should not be used in newly-written code.

Similar to `clutter_group_add_many()` but using a va_list. Use this function inside bindings.

`Deprecated`: 0.4: This function is obsolete, use `clutter_container_add_valist()` instead.

`group` : | a ClutterGroup
`first_actor` : | the ClutterActor actor to add to the group
`var_args` : | the actors to be added

### clutter_group_remove ()

    void                clutter_group_remove                (ClutterGroup *group,
                                                             ClutterActor *actor);

### Warning

`clutter_group_remove` is deprecated and should not be used in newly-written code.

Removes a child ClutterActor from the parent ClutterGroup.

`Deprecated`: 0.4: This function is obsolete, use `clutter_container_remove_actor()` instead.

`group` : | A ClutterGroup
`actor` : | A ClutterActor

### clutter_group_remove_all ()

    void                clutter_group_remove_all            (ClutterGroup *group);

Removes all children actors from the ClutterGroup.

`group` : | A ClutterGroup

### clutter_group_get_n_children ()

    gint                clutter_group_get_n_children        (ClutterGroup *self);

Gets the number of actors held in the group.

`self` : | A ClutterGroup
Returns : | The number of child actors held in the group.

Since 0.2

### clutter_group_get_nth_child ()

    ClutterActor*       clutter_group_get_nth_child         (ClutterGroup *self,
                                                             gint index_);

Gets a groups child held at `index_` in stack.

`self` : | A ClutterGroup
`index_` : | the position of the requested actor.
Returns : | A Clutter actor or NULL if `index_` is invalid.

Since 0.2

### clutter_group_raise ()

    void                clutter_group_raise                 (ClutterGroup *self,
                                                             ClutterActor *actor,
                                                             ClutterActor *sibling);

### Warning

`clutter_group_raise` has been deprecated since version 0.6 and should not be used in newly-written code. Use `clutter_container_raise_child()` instead.

Raises `actor` to `sibling` level in the depth ordering.

`self` : | a ClutterGroup
`actor` : | a ClutterActor
`sibling` : | a ClutterActor

### clutter_group_lower ()

    void                clutter_group_lower                 (ClutterGroup *self,
                                                             ClutterActor *actor,
                                                             ClutterActor *sibling);

### Warning

`clutter_group_lower` has been deprecated since version 0.6 and should not be used in newly-written code. Use `clutter_container_lower_child()` instead

Lowers `actor` to `sibling` level in the depth ordering.

`self` : | a ClutterGroup
`actor` : | a ClutterActor
`sibling` : | a ClutterActor

### clutter_group_sort_depth_order ()

    void                clutter_group_sort_depth_order      (ClutterGroup *self);

### Warning

`clutter_group_sort_depth_order` has been deprecated since version 0.6 and should not be used in newly-written code. Use `clutter_container_sort_depth_order()` instead.

Sorts a ClutterGroup's children by their depth value. This function should not be used by applications.

`self` : | A ClutterGroup

## Signal Details

### The `"add"` signal

    void                user_function                      (ClutterGroup *group,
                                                            ClutterActor *actor,
                                                            gpointer      user_data)      : Run First

The ::add signal is emitted each time an actor has been added to the group.

`Deprecated`: 0.4: This signal is deprecated, you should connect to the ClutterContainer::actor-added signal instead.

`group` : | the ClutterGroup that received the signal
`actor` : | the actor added to the group
`user_data` : | user data set when the signal handler was connected.

### The `"remove"` signal

    void                user_function                      (ClutterGroup *group,
                                                            ClutterActor *actor,
                                                            gpointer      user_data)      : Run First

The ::remove signal is emitted each time an actor has been removed from the group

`Deprecated`: 0.4: This signal is deprecated, you should connect to the ClutterContainer::actor-removed signal instead

`group` : | the ClutterGroup that received the signal
`actor` : | the actor added to the group
`user_data` : | user data set when the signal handler was connected.