ClutterChildMeta: Clutter Reference Manual

## ClutterChildMeta ClutterChildMeta — Wrapper for actors inside a container |

## Functions

ClutterContainer * | clutter_child_meta_get_container ()
ClutterActor * | clutter_child_meta_get_actor ()

## Properties

ClutterActor * | actor | Read / Write / Construct Only
ClutterContainer * | container | Read / Write / Construct Only

## Types and Values

| ClutterChildMeta
struct | ClutterChildMetaClass

## Object Hierarchy

        GObject
        ╰── ClutterChildMeta
            ╰── ClutterLayoutMeta

## Description

ClutterChildMeta is a wrapper object created by ClutterContainer implementations in order to store child-specific data and properties.

A ClutterChildMeta wraps a ClutterActor inside a ClutterContainer.

ClutterChildMeta is available since Clutter 0.8

## Functions

### clutter_child_meta_get_container ()

    ClutterContainer *
    clutter_child_meta_get_container (ClutterChildMeta *data);

Retrieves the container using `data`

#### Parameters

data | a ClutterChildMeta |

#### Returns

a ClutterContainer.

[transfer none]

Since: 0.8

### clutter_child_meta_get_actor ()

    ClutterActor *
    clutter_child_meta_get_actor (ClutterChildMeta *data);

Retrieves the actor wrapped by `data`

#### Parameters

data | a ClutterChildMeta |

#### Returns

a ClutterActor.

[transfer none]

Since: 0.8

## Types and Values

### ClutterChildMeta

    typedef struct {
      ClutterContainer *container;
      ClutterActor *actor;
    } ClutterChildMeta;

Base interface for container specific state for child actors. A child data is meant to be used when you need to keep track of information about each individual child added to a container.

In order to use it you should create your own subclass of ClutterChildMeta and set the ClutterContainerIface child_meta_type interface member to your subclass type, like:

    1
    2
    3
    4
    5
    6
    7
    static void
    my_container_iface_init (ClutterContainerIface *iface)
    {
      // set the rest of the #ClutterContainer vtable

      container_iface->child_meta_type  = MY_TYPE_CHILD_META;
    }

This will automatically create a ClutterChildMeta of type `MY_TYPE_CHILD_META` for every actor that is added to the container.

The child data for an actor can be retrieved using the `clutter_container_get_child_meta()` function.

The properties of the data and your subclass can be manipulated with `clutter_container_child_set()` and `clutter_container_child_get()` which act like `g_object_set()` and `g_object_get()`.

You can provide hooks for your own storage as well as control the instantiation by overriding the ClutterContainerIface virtual functions `ClutterContainerIface.create_child_meta()`, `ClutterContainerIface.destroy_child_meta()`, and `ClutterContainerIface.get_child_meta()`.

#### Members

ClutterContainer *`container`; | the container handling this data |
ClutterActor *`actor`; | the actor wrapped by this data |

Since: 0.8

### struct ClutterChildMetaClass

    struct ClutterChildMetaClass {
    };

The ClutterChildMetaClass contains only private data

Since: 0.8

## Property Details

### The `“actor”` property

      “actor”                    ClutterActor *

The ClutterActor being wrapped by this ClutterChildMeta

Owner: ClutterChildMeta

Flags: Read / Write / Construct Only

Since: 0.8

### The `“container”` property

      “container”                ClutterContainer *

The ClutterContainer that created this ClutterChildMeta.

Owner: ClutterChildMeta

Flags: Read / Write / Construct Only

Since: 0.8