### Interface

# Clutter Container

since: 13

#### Description [src]

    interface Clutter.Container : GObject.Object

An interface for container actors

`ClutterContainer` is an interface implemented by `ClutterActor`, and it provides some common API for notifying when a child actor is added or removed, as well as the infrastructure for accessing child properties through `ClutterChildMeta`.

Available since: 13

#### Prerequisite

In order to implement Container, your type must inherit from`GObject`.

#### Implementations

- ClutterActor
- ClutterClone
- ClutterScrollActor
- ClutterStage
- ClutterText

#### Functions

###### clutter_container_class_find_child_property

Looks up the `GParamSpec` for a child property of `klass`.

since: 13

###### clutter_container_class_list_child_properties

Returns an array of `GParamSpec` for all child properties.

since: 13

#### Instance methods

###### clutter_container_add

Adds a list of `ClutterActor`s to `container`. Each time and actor is added, the “actor-added” signal is emitted. Each actor should be parented to `container`, which takes a reference on the actor. You cannot add a `ClutterActor` to more than one `ClutterContainer`.

deprecated: 1.10 since: 13

###### clutter_container_add_actor

Adds a `ClutterActor` to `container`. This function will emit the “actor-added” signal. The actor should be parented to `container`. You cannot add a `ClutterActor` to more than one `ClutterContainer`.

deprecated: 1.10 since: 13

###### clutter_container_child_get

Gets `container` specific properties of an actor.

since: 13

###### clutter_container_child_get_property

Gets a container specific property of a child of `container`, In general, a copy is made of the property contents and the caller is responsible for freeing the memory by calling g_value_unset().

since: 13

###### clutter_container_child_notify

Calls the `ClutterContainerIface`.child_notify() virtual function of `ClutterContainer`. The default implementation will emit the `ClutterContainer::child-notify` signal.

since: 13

###### clutter_container_child_set

Sets container specific properties on the child of a container.

since: 13

###### clutter_container_child_set_property

Sets a container-specific property on a child of `container`.

since: 13

###### clutter_container_create_child_meta

Creates the `ClutterChildMeta` wrapping `actor` inside the `container`, if the `ClutterContainerIface::child_meta_type` class member is not set to `G_TYPE_INVALID`.

since: 13

###### clutter_container_destroy_child_meta

Destroys the `ClutterChildMeta` wrapping `actor` inside the `container`, if any.

since: 13

###### clutter_container_find_child_by_name

Finds a child actor of a container by its name. Search recurses into any child container.

since: 13

###### clutter_container_get_child_meta

Retrieves the `ClutterChildMeta` which contains the data about the `container` specific state for `actor`.

since: 13

###### clutter_container_remove

Removes a `NULL` terminated list of `ClutterActor`s from `container`. Each actor should be unparented, so if you want to keep it around you must hold a reference to it yourself, using g_object_ref(). Each time an actor is removed, the “actor-removed” signal is emitted by `container`.

deprecated: 1.10 since: 13

###### clutter_container_remove_actor

Removes `actor` from `container`. The actor should be unparented, so if you want to keep it around you must hold a reference to it yourself, using g_object_ref(). When the actor has been removed, the “actor-removed” signal is emitted by `container`.

deprecated: 1.10 since: 13

#### Signals

###### Clutter.Container::actor-added

The signal is emitted each time an actor has been added to `container`.

since: 13

###### Clutter.Container::actor-removed

The signal is emitted each time an actor is removed from `container`.

since: 13

###### Clutter.Container::child-notify

The signal is emitted each time a property is being set through the `clutter_container_child_set()` and `clutter_container_child_set_property()` calls.

since: 13

#### Interface structure

    struct ClutterContainerIface {
      void (* add) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      void (* remove) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      GType child_meta_type;
      void (* create_child_meta) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      void (* destroy_child_meta) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      ClutterChildMeta* (* get_child_meta) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      void (* actor_added) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      void (* actor_removed) (
        ClutterContainer* container,
        ClutterActor* actor
      );
      void (* child_notify) (
        ClutterContainer* container,
        ClutterActor* child,
        GParamSpec* pspec
      );

    }

Base interface for container actors. The `add` and `remove` virtual functions must be provided by any implementation; the other virtual functions are optional.

###### Interface members

`add` |
    void (* add) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`remove` |
    void (* remove) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`child_meta_type` |
    GType
| The GType used for storing auxiliary information about each of the containers children.
`create_child_meta` |
    void (* create_child_meta) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`destroy_child_meta` |
    void (* destroy_child_meta) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`get_child_meta` |
    ClutterChildMeta* (* get_child_meta) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`actor_added` |
    void (* actor_added) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`actor_removed` |
    void (* actor_removed) (
        ClutterContainer* container,
        ClutterActor* actor
      )
| No description available.
`child_notify` |
    void (* child_notify) (
        ClutterContainer* container,
        ClutterActor* child,
        GParamSpec* pspec
      )
| No description available.

#### Virtual methods

###### Clutter.Container.actor_added

No description available.

since: 13

###### Clutter.Container.actor_removed

No description available.

since: 13

###### Clutter.Container.add

Adds a `ClutterActor` to `container`. This function will emit the “actor-added” signal. The actor should be parented to `container`. You cannot add a `ClutterActor` to more than one `ClutterContainer`.

deprecated: 1.10 since: 13

###### Clutter.Container.child_notify

Calls the `ClutterContainerIface`.child_notify() virtual function of `ClutterContainer`. The default implementation will emit the `ClutterContainer::child-notify` signal.

since: 13

###### Clutter.Container.create_child_meta

Creates the `ClutterChildMeta` wrapping `actor` inside the `container`, if the `ClutterContainerIface::child_meta_type` class member is not set to `G_TYPE_INVALID`.

since: 13

###### Clutter.Container.destroy_child_meta

Destroys the `ClutterChildMeta` wrapping `actor` inside the `container`, if any.

since: 13

###### Clutter.Container.get_child_meta

Retrieves the `ClutterChildMeta` which contains the data about the `container` specific state for `actor`.

since: 13

###### Clutter.Container.remove

Removes `actor` from `container`. The actor should be unparented, so if you want to keep it around you must hold a reference to it yourself, using g_object_ref(). When the actor has been removed, the “actor-removed” signal is emitted by `container`.

deprecated: 1.10 since: 13