ClutterBoxLayout: Clutter Reference Manual

## ClutterBoxLayout ClutterBoxLayout — A layout manager arranging children on a single line |

## Functions

ClutterLayoutManager * | clutter_box_layout_new ()
void | clutter_box_layout_set_pack_start ()
gboolean | clutter_box_layout_get_pack_start ()
void | clutter_box_layout_set_spacing ()
guint | clutter_box_layout_get_spacing ()
void | clutter_box_layout_set_homogeneous ()
gboolean | clutter_box_layout_get_homogeneous ()
ClutterOrientation | clutter_box_layout_get_orientation ()
void | clutter_box_layout_set_orientation ()
void | clutter_box_layout_set_vertical ()
gboolean | clutter_box_layout_get_vertical ()
void | clutter_box_layout_pack ()
void | clutter_box_layout_set_alignment ()
void | clutter_box_layout_get_alignment ()
void | clutter_box_layout_set_expand ()
gboolean | clutter_box_layout_get_expand ()
void | clutter_box_layout_set_fill ()
void | clutter_box_layout_get_fill ()
void | clutter_box_layout_set_use_animations ()
gboolean | clutter_box_layout_get_use_animations ()
void | clutter_box_layout_set_easing_duration ()
guint | clutter_box_layout_get_easing_duration ()
void | clutter_box_layout_set_easing_mode ()
gulong | clutter_box_layout_get_easing_mode ()

## Properties

guint | easing-duration | Read / Write
gulong | easing-mode | Read / Write
gboolean | homogeneous | Read / Write
ClutterOrientation | orientation | Read / Write
gboolean | pack-start | Read / Write
guint | spacing | Read / Write
gboolean | use-animations | Read / Write
gboolean | vertical | Read / Write

## Types and Values

enum | ClutterBoxAlignment
struct | ClutterBoxLayout
struct | ClutterBoxLayoutClass
enum | ClutterOrientation

## Object Hierarchy

        GObject
        ╰── GInitiallyUnowned
            ╰── ClutterLayoutManager
                ╰── ClutterBoxLayout

## Description

The ClutterBoxLayout is a ClutterLayoutManager implementing the following layout policy:

- all children are arranged on a single line

- the axis used is controlled by the “orientation” property

- the order of the packing is determined by the “pack-start” boolean property

- each child will be allocated to its natural size or, if “x-expand” or “y-expand” are set, the available size

- honours the ClutterActor's “x-align” and “y-align” properties to fill the available size

- if the “homogeneous” boolean propert is set, then all widgets will get the same size, ignoring expand settings and the preferred sizes

It is possible to control the spacing between children of a ClutterBoxLayout by using `clutter_box_layout_set_spacing()`.

ClutterBoxLayout is available since Clutter 1.2

## Functions

### clutter_box_layout_new ()

    ClutterLayoutManager *
    clutter_box_layout_new (void);

Creates a new ClutterBoxLayout layout manager

#### Returns

the newly created ClutterBoxLayout

Since 1.2

### clutter_box_layout_set_pack_start ()

    void
    clutter_box_layout_set_pack_start (ClutterBoxLayout *layout,
                                       gboolean pack_start);

Sets whether children of `layout` should be layed out by appending them or by prepending them

#### Parameters

layout | a ClutterBoxLayout |
pack_start | `TRUE` if the `layout` should pack children at the beginning of the layout |

Since 1.2

### clutter_box_layout_get_pack_start ()

    gboolean
    clutter_box_layout_get_pack_start (ClutterBoxLayout *layout);

Retrieves the value set using `clutter_box_layout_set_pack_start()`

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

`TRUE` if the ClutterBoxLayout should pack children at the beginning of the layout, and `FALSE` otherwise

Since 1.2

### clutter_box_layout_set_spacing ()

    void
    clutter_box_layout_set_spacing (ClutterBoxLayout *layout,
                                    guint spacing);

Sets the spacing between children of `layout`

#### Parameters

layout | a ClutterBoxLayout |
spacing | the spacing between children of the layout, in pixels |

Since 1.2

### clutter_box_layout_get_spacing ()

    guint
    clutter_box_layout_get_spacing (ClutterBoxLayout *layout);

Retrieves the spacing set using `clutter_box_layout_set_spacing()`

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

the spacing between children of the ClutterBoxLayout

Since 1.2

### clutter_box_layout_set_homogeneous ()

    void
    clutter_box_layout_set_homogeneous (ClutterBoxLayout *layout,
                                        gboolean homogeneous);

Sets whether the size of `layout` children should be homogeneous

#### Parameters

layout | a ClutterBoxLayout |
homogeneous | `TRUE` if the layout should be homogeneous |

Since 1.4

### clutter_box_layout_get_homogeneous ()

    gboolean
    clutter_box_layout_get_homogeneous (ClutterBoxLayout *layout);

Retrieves if the children sizes are allocated homogeneously.

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

`TRUE` if the ClutterBoxLayout is arranging its children homogeneously, and `FALSE` otherwise

Since 1.4

### clutter_box_layout_get_orientation ()

    ClutterOrientation
    clutter_box_layout_get_orientation (ClutterBoxLayout *layout);

Retrieves the orientation of the `layout` .

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

the orientation of the layout

Since 1.12

### clutter_box_layout_set_orientation ()

    void
    clutter_box_layout_set_orientation (ClutterBoxLayout *layout,
                                        ClutterOrientation orientation);

Sets the orientation of the ClutterBoxLayout layout manager.

#### Parameters

layout | a ClutterBoxLayout |
orientation | the orientation of the ClutterBoxLayout |

Since 1.12

### clutter_box_layout_set_vertical ()

    void
    clutter_box_layout_set_vertical (ClutterBoxLayout *layout,
                                     gboolean vertical);

`clutter_box_layout_set_vertical` has been deprecated since version 1.12 and should not be used in newly-written code.

Use `clutter_box_layout_set_orientation()` instead.

Sets whether `layout` should arrange its children vertically alongside the Y axis, instead of horizontally alongside the X axis

#### Parameters

layout | a ClutterBoxLayout |
vertical | `TRUE` if the layout should be vertical |

Since 1.2

### clutter_box_layout_get_vertical ()

    gboolean
    clutter_box_layout_get_vertical (ClutterBoxLayout *layout);

`clutter_box_layout_get_vertical` has been deprecated since version 1.12 and should not be used in newly-written code.

Use `clutter_box_layout_get_orientation()` instead

Retrieves the orientation of the `layout` as set using the `clutter_box_layout_set_vertical()` function

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

`TRUE` if the ClutterBoxLayout is arranging its children vertically, and `FALSE` otherwise

Since 1.2

### clutter_box_layout_pack ()

    void
    clutter_box_layout_pack (ClutterBoxLayout *layout,
                             ClutterActor *actor,
                             gboolean expand,
                             gboolean x_fill,
                             gboolean y_fill,
                             ClutterBoxAlignment x_align,
                             ClutterBoxAlignment y_align);

`clutter_box_layout_pack` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout honours ClutterActor's align and expand properties. The preferred way is adding the `actor` with `clutter_actor_add_child()` and setting “x-align”, “y-align”, “x-expand” and “y-expand”

Packs `actor` inside the ClutterContainer associated to `layout` and sets the layout properties

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor |
expand | whether the `actor` should expand |
x_fill | whether the `actor` should fill horizontally |
y_fill | whether the `actor` should fill vertically |
x_align | the horizontal alignment policy for `actor` |
y_align | the vertical alignment policy for `actor` |

Since 1.2

### clutter_box_layout_set_alignment ()

    void
    clutter_box_layout_set_alignment (ClutterBoxLayout *layout,
                                      ClutterActor *actor,
                                      ClutterBoxAlignment x_align,
                                      ClutterBoxAlignment y_align);

`clutter_box_layout_set_alignment` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour ClutterActor's “x-align” and “y-align” properies

Sets the horizontal and vertical alignment policies for `actor` inside `layout`

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor child of `layout` |
x_align | Horizontal alignment policy for `actor` |
y_align | Vertical alignment policy for `actor` |

Since 1.2

### clutter_box_layout_get_alignment ()

    void
    clutter_box_layout_get_alignment (ClutterBoxLayout *layout,
                                      ClutterActor *actor,
                                      ClutterBoxAlignment *x_align,
                                      ClutterBoxAlignment *y_align);

`clutter_box_layout_get_alignment` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour ClutterActor's “x-align” and “y-align” properies

Retrieves the horizontal and vertical alignment policies for `actor` as set using `clutter_box_layout_pack()` or `clutter_box_layout_set_alignment()`

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor child of `layout` |
x_align | return location for the horizontal alignment policy. | [out]
y_align | return location for the vertical alignment policy. | [out]

Since 1.2

### clutter_box_layout_set_expand ()

    void
    clutter_box_layout_set_expand (ClutterBoxLayout *layout,
                                   ClutterActor *actor,
                                   gboolean expand);

`clutter_box_layout_set_expand` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour ClutterActor's “x-expand” and “y-expand” properies

Sets whether `actor` should expand inside `layout`

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor child of `layout` |
expand | whether `actor` should expand |

Since 1.2

### clutter_box_layout_get_expand ()

    gboolean
    clutter_box_layout_get_expand (ClutterBoxLayout *layout,
                                   ClutterActor *actor);

`clutter_box_layout_get_expand` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour ClutterActor's “x-expand” and “y-expand” properies

Retrieves whether `actor` should expand inside `layout`

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor child of `layout` |

#### Returns

`TRUE` if the ClutterActor should expand, `FALSE` otherwise

Since 1.2

### clutter_box_layout_set_fill ()

    void
    clutter_box_layout_set_fill (ClutterBoxLayout *layout,
                                 ClutterActor *actor,
                                 gboolean x_fill,
                                 gboolean y_fill);

`clutter_box_layout_set_fill` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour ClutterActor's “x-align” and “y-align” properies

Sets the horizontal and vertical fill policies for `actor` inside `layout`

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor child of `layout` |
x_fill | whether `actor` should fill horizontally the allocated space |
y_fill | whether `actor` should fill vertically the allocated space |

Since 1.2

### clutter_box_layout_get_fill ()

    void
    clutter_box_layout_get_fill (ClutterBoxLayout *layout,
                                 ClutterActor *actor,
                                 gboolean *x_fill,
                                 gboolean *y_fill);

`clutter_box_layout_get_fill` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour ClutterActor's “x-align” and “y-align” properies

Retrieves the horizontal and vertical fill policies for `actor` as set using `clutter_box_layout_pack()` or `clutter_box_layout_set_fill()`

#### Parameters

layout | a ClutterBoxLayout |
actor | a ClutterActor child of `layout` |
x_fill | return location for the horizontal fill policy. | [out]
y_fill | return location for the vertical fill policy. | [out]

Since 1.2

### clutter_box_layout_set_use_animations ()

    void
    clutter_box_layout_set_use_animations (ClutterBoxLayout *layout,
                                           gboolean animate);

`clutter_box_layout_set_use_animations` has been deprecated since version 1.12 and should not be used in newly-written code.

The layout manager will honour the easing state of the children when allocating them.

Sets whether `layout` should animate changes in the layout properties

The duration of the animations is controlled by `clutter_box_layout_set_easing_duration()`; the easing mode to be used by the animations is controlled by `clutter_box_layout_set_easing_mode()`.

Enabling animations will override the easing state of each child of the actor using `layout` , and will use the “easing-mode” and “easing-duration” properties instead.

#### Parameters

layout | a ClutterBoxLayout |
animate | `TRUE` if the `layout` should use animations |

Since 1.2

### clutter_box_layout_get_use_animations ()

    gboolean
    clutter_box_layout_get_use_animations (ClutterBoxLayout *layout);

`clutter_box_layout_get_use_animations` has been deprecated since version 1.12 and should not be used in newly-written code.

Retrieves whether `layout` should animate changes in the layout properties.

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

`TRUE` if the animations should be used, `FALSE` otherwise

Since 1.2

### clutter_box_layout_set_easing_duration ()

    void
    clutter_box_layout_set_easing_duration
                                   (ClutterBoxLayout *layout,
                                    guint msecs);

`clutter_box_layout_set_easing_duration` has been deprecated since version 1.12 and should not be used in newly-written code.

The layout manager will honour the easing state of the children when allocating them.

Sets the duration of the animations used by `layout` when animating changes in the layout properties.

#### Parameters

layout | a ClutterBoxLayout |
msecs | the duration of the animations, in milliseconds |

Since 1.2

### clutter_box_layout_get_easing_duration ()

    guint
    clutter_box_layout_get_easing_duration
                                   (ClutterBoxLayout *layout);

`clutter_box_layout_get_easing_duration` has been deprecated since version 1.12 and should not be used in newly-written code.

Retrieves the duration set using `clutter_box_layout_set_easing_duration()`

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

the duration of the animations, in milliseconds

Since 1.2

### clutter_box_layout_set_easing_mode ()

    void
    clutter_box_layout_set_easing_mode (ClutterBoxLayout *layout,
                                        gulong mode);

`clutter_box_layout_set_easing_mode` has been deprecated since version 1.12 and should not be used in newly-written code.

The layout manager will honour the easing state of the children when allocating them.

Sets the easing mode to be used by `layout` when animating changes in layout properties.

#### Parameters

layout | a ClutterBoxLayout |
mode | an easing mode, either from ClutterAnimationMode or a logical id from `clutter_alpha_register_func()` |

Since 1.2

### clutter_box_layout_get_easing_mode ()

    gulong
    clutter_box_layout_get_easing_mode (ClutterBoxLayout *layout);

`clutter_box_layout_get_easing_mode` has been deprecated since version 1.12 and should not be used in newly-written code.

Retrieves the easing mode set using `clutter_box_layout_set_easing_mode()`

#### Parameters

layout | a ClutterBoxLayout |

#### Returns

an easing mode

Since 1.2

## Types and Values

### enum ClutterBoxAlignment

The alignment policies available on each axis of the ClutterBoxLayout

#### Members

CLUTTER_BOX_ALIGNMENT_START | Align the child to the top or to to the left, depending on the used axis |
CLUTTER_BOX_ALIGNMENT_END | Align the child to the bottom or to the right, depending on the used axis |
CLUTTER_BOX_ALIGNMENT_CENTER | Align the child to the center |

Since 1.2

### struct ClutterBoxLayout

    struct ClutterBoxLayout;

The ClutterBoxLayout structure contains only private data and should be accessed using the provided API

Since 1.2

### struct ClutterBoxLayoutClass

    struct ClutterBoxLayoutClass {
    };

The ClutterBoxLayoutClass structure contains only private data and should be accessed using the provided API

Since 1.2

### enum ClutterOrientation

Represents the orientation of actors or layout managers.

#### Members

CLUTTER_ORIENTATION_HORIZONTAL | An horizontal orientation |
CLUTTER_ORIENTATION_VERTICAL | A vertical orientation |

Since 1.12

## Property Details

### The `“easing-duration”` property

      “easing-duration”          guint

The duration of the animations, in case “use-animations” is set to `TRUE`.

The duration is expressed in milliseconds.

`ClutterBoxLayout:easing-duration` has been deprecated since version 1.12 and should not be used in newly-written code.

The ClutterBoxLayout will honour the easing state of the children when allocating them.

Flags: Read / Write

Default value: 500

Since 1.2

### The `“easing-mode”` property

      “easing-mode”              gulong

The easing mode for the animations, in case “use-animations” is set to `TRUE`.

The easing mode has the same semantics of “mode”: it can either be a value from the ClutterAnimationMode enumeration, like `CLUTTER_EASE_OUT_CUBIC`, or a logical id as returned by `clutter_alpha_register_func()`.

The default value is `CLUTTER_EASE_OUT_CUBIC`.

`ClutterBoxLayout:easing-mode` has been deprecated since version 1.12 and should not be used in newly-written code.

The ClutterBoxLayout will honour the easing state of the children when allocating them.

Flags: Read / Write

Since 1.2

### The `“homogeneous”` property

      “homogeneous”              gboolean

Whether the ClutterBoxLayout should arrange its children homogeneously, i.e. all childs get the same size

Flags: Read / Write

Default value: FALSE

Since 1.4

### The `“orientation”` property

      “orientation”              ClutterOrientation

The orientation of the ClutterBoxLayout, either horizontal or vertical

Flags: Read / Write

Default value: CLUTTER_ORIENTATION_HORIZONTAL

Since 1.12

### The `“pack-start”` property

      “pack-start”               gboolean

Whether the ClutterBoxLayout should pack items at the start or append them at the end

Flags: Read / Write

Default value: FALSE

Since 1.2

### The `“spacing”` property

      “spacing”                  guint

The spacing between children of the ClutterBoxLayout, in pixels

Flags: Read / Write

Default value: 0

Since 1.2

### The `“use-animations”` property

      “use-animations”           gboolean

Whether the ClutterBoxLayout should animate changes in the layout, overriding the easing state of the children.

`ClutterBoxLayout:use-animations` has been deprecated since version 1.12 and should not be used in newly-written code.

ClutterBoxLayout will honour the easing state of the children when allocating them.

Flags: Read / Write

Default value: FALSE

Since 1.2

### The `“vertical”` property

      “vertical”                 gboolean

Whether the ClutterBoxLayout should arrange its children alongside the Y axis, instead of alongside the X axis

`ClutterBoxLayout:vertical` has been deprecated since version 1.12 and should not be used in newly-written code.

Use “orientation” instead.

Flags: Read / Write

Default value: FALSE

Since 1.2