## CinnamonGenericContainer

CinnamonGenericContainer — A container class with signals for allocation

## Functions

guint | cinnamon_generic_container_get_n_skip_paint ()
gboolean | cinnamon_generic_container_get_skip_paint ()
void | cinnamon_generic_container_set_skip_paint ()

## Signals

void | allocate | Run Last
void | get-preferred-height | Run Last
void | get-preferred-width | Run Last

## Object Hierarchy

        GBoxed
        ╰── CinnamonGenericContainerAllocation
        GObject
        ╰── GInitiallyUnowned
            ╰── ClutterActor
                ╰── StWidget
                    ╰── CinnamonGenericContainer

## Description

CinnamonGenericContainer is mainly a workaround for the current lack of GObject subclassing + vfunc overrides in gjs. We implement the container interface, but proxy the virtual functions into signals, which gjs can catch.

CinnamonGenericContainer is an StWidget, and automatically takes its borders and padding into account during size request and allocation.

## Functions

### cinnamon_generic_container_get_n_skip_paint ()

    guint
    cinnamon_generic_container_get_n_skip_paint
                                   (CinnamonGenericContainer *self);

#### Parameters

self | A CinnamonGenericContainer |

#### Returns

Number of children which will not be painted.

### cinnamon_generic_container_get_skip_paint ()

    gboolean
    cinnamon_generic_container_get_skip_paint
                                   (CinnamonGenericContainer *self,
                                    ClutterActor *child);

Gets whether or not `actor` is skipped when painting.

#### Parameters

self | A CinnamonGenericContainer |
child | Child ClutterActor |

#### Returns

`TRUE` or `FALSE`

### cinnamon_generic_container_set_skip_paint ()

    void
    cinnamon_generic_container_set_skip_paint
                                   (CinnamonGenericContainer *self,
                                    ClutterActor *child,
                                    gboolean skip);

Set whether or not we should skip painting `actor` . Workaround for lack of gjs ability to override _paint vfunc.

#### Parameters

self | A CinnamonGenericContainer |
child | Child ClutterActor |
skip | `TRUE` if we should skip painting |

## Signal Details

### The `“allocate”` signal

    void
    user_function (CinnamonGenericContainer *self,
                   ClutterActorBox          *box,
                   ClutterAllocationFlags    flags,
                   gpointer                  user_data)

Emitted when `self` is allocated, after chaining up to the parent allocate method.

Note that `box` is `self` 's content box (qv `st_theme_node_get_content_box()`), NOT its allocation.

#### Parameters

self | the CinnamonGenericContainer |
box | `self` 's content box |
flags | the allocation flags. |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“get-preferred-height”` signal

    void
    user_function (CinnamonGenericContainer           *self,
                   float                               for_width,
                   CinnamonGenericContainerAllocation *alloc,
                   gpointer                            user_data)

Emitted when `clutter_actor_get_preferred_height()` is called on `self` . You should fill in the fields of `alloc` with the your minimum and natural heights. CinnamonGenericContainer will deal with taking its borders and padding into account for you.

`alloc` 's fields are initialized to 0, so unless you have a fixed height specified (via “height” or CSS), you must connect to this signal and fill in the values.

#### Parameters

self | the CinnamonGenericContainer |
for_width | as in `clutter_actor_get_preferred_height()` |
alloc | a CinnamonGenericContainerAllocation to be filled in |
user_data | user data set when the signal handler was connected. |

Flags: Run Last

### The `“get-preferred-width”` signal

    void
    user_function (CinnamonGenericContainer           *self,
                   float                               for_height,
                   CinnamonGenericContainerAllocation *alloc,
                   gpointer                            user_data)

Emitted when `clutter_actor_get_preferred_width()` is called on `self` . You should fill in the fields of `alloc` with the your minimum and natural widths. CinnamonGenericContainer will deal with taking its borders and padding into account for you.

`alloc` 's fields are initialized to 0, so unless you have a fixed width specified (via “width” or CSS), you must connect to this signal and fill in the values.

#### Parameters

self | the CinnamonGenericContainer |
for_height | as in `clutter_actor_get_preferred_width()` |
alloc | a CinnamonGenericContainerAllocation to be filled in |
user_data | user data set when the signal handler was connected. |

Flags: Run Last