### Interface

# Clutter Content

#### Description [src]

    interface Clutter.Content : GObject.Object

Delegate for painting the content of an actor

`ClutterContent` is an interface to implement types responsible for painting the content of a `ClutterActor`.

Multiple actors can use the same `ClutterContent` instance, in order to share the resources associated with painting the same content..

#### Prerequisite

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

#### Implementations

- ClutterTextureContent

#### Instance methods

###### clutter_content_get_preferred_size

Retrieves the natural size of the `content`, if any.

###### clutter_content_invalidate

Invalidates a `ClutterContent`.

###### clutter_content_invalidate_size

Signals that `content`‘s size changed. Attached actors with request mode set to `CLUTTER_REQUEST_CONTENT_SIZE` will have a relayout queued.

#### Signals

###### Clutter.Content::attached

This signal is emitted each time a `ClutterContent` implementation is assigned to a `ClutterActor`.

###### Clutter.Content::detached

This signal is emitted each time a `ClutterContent` implementation is removed from a `ClutterActor`.

#### Interface structure

    struct ClutterContentInterface {
      gboolean (* get_preferred_size) (
        ClutterContent* content,
        gfloat* width,
        gfloat* height
      );
      void (* paint_content) (
        ClutterContent* content,
        ClutterActor* actor,
        ClutterPaintNode* node,
        ClutterPaintContext* paint_context
      );
      void (* attached) (
        ClutterContent* content,
        ClutterActor* actor
      );
      void (* detached) (
        ClutterContent* content,
        ClutterActor* actor
      );
      void (* invalidate) (
        ClutterContent* content
      );
      void (* invalidate_size) (
        ClutterContent* content
      );

    }

The `ClutterContentInterface` structure contains only private data.

###### Interface members

`get_preferred_size` |
    gboolean (* get_preferred_size) (
        ClutterContent* content,
        gfloat* width,
        gfloat* height
      )
| Virtual function; should be overridden by subclasses of `ClutterContent` that have a natural size.
`paint_content` |
    void (* paint_content) (
        ClutterContent* content,
        ClutterActor* actor,
        ClutterPaintNode* node,
        ClutterPaintContext* paint_context
      )
| Virtual function; called each time the content needs to paint itself.
`attached` |
    void (* attached) (
        ClutterContent* content,
        ClutterActor* actor
      )
| Virtual function; called each time a `ClutterContent` is attached to a `ClutterActor`.
`detached` |
    void (* detached) (
        ClutterContent* content,
        ClutterActor* actor
      )
| Virtual function; called each time a `ClutterContent` is detached from a `ClutterActor`.
`invalidate` |
    void (* invalidate) (
        ClutterContent* content
      )
| Virtual function; called each time a `ClutterContent` state is changed.
`invalidate_size` |
    void (* invalidate_size) (
        ClutterContent* content
      )
| No description available.

#### Virtual methods

###### Clutter.Content.attached

Virtual function; called each time a `ClutterContent` is attached to a `ClutterActor`.

###### Clutter.Content.detached

Virtual function; called each time a `ClutterContent` is detached from a `ClutterActor`.

###### Clutter.Content.get_preferred_size

Retrieves the natural size of the `content`, if any.

###### Clutter.Content.invalidate

Invalidates a `ClutterContent`.

###### Clutter.Content.invalidate_size

Signals that `content`‘s size changed. Attached actors with request mode set to `CLUTTER_REQUEST_CONTENT_SIZE` will have a relayout queued.

###### Clutter.Content.paint_content

Virtual function; called each time the content needs to paint itself.