ClutterFlowLayout

ClutterFlowLayout — A reflowing layout manager

Functions

Properties

gfloat column-spacing Read / Write
gboolean homogeneous Read / Write
gfloat max-column-width Read / Write
gfloat max-row-height Read / Write
gfloat min-column-width Read / Write
gfloat min-row-height Read / Write
ClutterFlowOrientation orientation Read / Write / Construct
gfloat row-spacing Read / Write
gboolean snap-to-grid Read / Write

Types and Values

Object Hierarchy

    GObject
    ╰── GInitiallyUnowned
        ╰── ClutterLayoutManager
            ╰── ClutterFlowLayout

Description

ClutterFlowLayout is a layout manager which implements the following policy:

  • the preferred natural size depends on the value of the “orientation” property; the layout will try to maintain all its children on a single row or column;

  • if either the width or the height allocated are smaller than the preferred ones, the layout will wrap; in this case, the preferred height or width, respectively, will take into account the amount of columns and rows;

  • each line (either column or row) in reflowing will have the size of the biggest cell on that line; if the “homogeneous” property is set to FALSE the actor will be allocated within that area, and if set to TRUE instead the actor will be given exactly that area;

  • the size of the columns or rows can be controlled for both minimum and maximum; the spacing can also be controlled in both columns and rows.

The flow-layout example shows how to use the ClutterFlowLayout.

ClutterFlowLayout is available since Clutter 1.2

Functions

clutter_flow_layout_new ()

ClutterLayoutManager *
clutter_flow_layout_new (ClutterFlowOrientation orientation);

Creates a new ClutterFlowLayout with the given orientation

Parameters

orientation

the orientation of the flow layout

 

Returns

the newly created ClutterFlowLayout

Since 1.2


clutter_flow_layout_set_homogeneous ()

void
clutter_flow_layout_set_homogeneous (ClutterFlowLayout *layout,
                                     gboolean homogeneous);

Sets whether the layout should allocate the same space for each child

Parameters

layout

a ClutterFlowLayout

 

homogeneous

whether the layout should be homogeneous or not

 

Since 1.2


clutter_flow_layout_get_homogeneous ()

gboolean
clutter_flow_layout_get_homogeneous (ClutterFlowLayout *layout);

Retrieves whether the layout is homogeneous

Parameters

layout

a ClutterFlowLayout

 

Returns

TRUE if the ClutterFlowLayout is homogeneous

Since 1.2


clutter_flow_layout_set_orientation ()

void
clutter_flow_layout_set_orientation (ClutterFlowLayout *layout,
                                     ClutterFlowOrientation orientation);

Sets the orientation of the flow layout

The orientation controls the direction used to allocate the children: either horizontally or vertically. The orientation also controls the direction of the overflowing

Parameters

layout

a ClutterFlowLayout

 

orientation

the orientation of the layout

 

Since 1.2


clutter_flow_layout_get_orientation ()

ClutterFlowOrientation
clutter_flow_layout_get_orientation (ClutterFlowLayout *layout);

Retrieves the orientation of the layout

Parameters

layout

a ClutterFlowLayout

 

Returns

the orientation of the ClutterFlowLayout

Since 1.2


clutter_flow_layout_set_snap_to_grid ()

void
clutter_flow_layout_set_snap_to_grid (ClutterFlowLayout *layout,
                                      gboolean snap_to_grid);

Whether the layout should place its children on a grid.

Parameters

layout

a ClutterFlowLayout

 

snap_to_grid

TRUE if layout should place its children on a grid

 

Since 1.16


clutter_flow_layout_get_snap_to_grid ()

gboolean
clutter_flow_layout_get_snap_to_grid (ClutterFlowLayout *layout);

Retrieves the value of “snap-to-grid” property

Parameters

layout

a ClutterFlowLayout

 

Returns

TRUE if the layout is placing its children on a grid

Since 1.16


clutter_flow_layout_set_column_spacing ()

void
clutter_flow_layout_set_column_spacing
                               (ClutterFlowLayout *layout,
                                gfloat spacing);

Sets the space between columns, in pixels

Parameters

layout

a ClutterFlowLayout

 

spacing

the space between columns

 

Since 1.2


clutter_flow_layout_get_column_spacing ()

gfloat
clutter_flow_layout_get_column_spacing
                               (ClutterFlowLayout *layout);

Retrieves the spacing between columns

Parameters

layout

a ClutterFlowLayout

 

Returns

the spacing between columns of the ClutterFlowLayout, in pixels

Since 1.2


clutter_flow_layout_set_row_spacing ()

void
clutter_flow_layout_set_row_spacing (ClutterFlowLayout *layout,
                                     gfloat spacing);

Sets the spacing between rows, in pixels

Parameters

layout

a ClutterFlowLayout

 

spacing

the space between rows

 

Since 1.2


clutter_flow_layout_get_row_spacing ()

gfloat
clutter_flow_layout_get_row_spacing (ClutterFlowLayout *layout);

Retrieves the spacing between rows

Parameters

layout

a ClutterFlowLayout

 

Returns

the spacing between rows of the ClutterFlowLayout, in pixels

Since 1.2


clutter_flow_layout_set_column_width ()

void
clutter_flow_layout_set_column_width (ClutterFlowLayout *layout,
                                      gfloat min_width,
                                      gfloat max_width);

Sets the minimum and maximum widths that a column can have

Parameters

layout

a ClutterFlowLayout

 

min_width

minimum width of a column

 

max_width

maximum width of a column

 

Since 1.2


clutter_flow_layout_get_column_width ()

void
clutter_flow_layout_get_column_width (ClutterFlowLayout *layout,
                                      gfloat *min_width,
                                      gfloat *max_width);

Retrieves the minimum and maximum column widths

Parameters

layout

a ClutterFlowLayout

 

min_width

return location for the minimum column width, or NULL.

[out]

max_width

return location for the maximum column width, or NULL.

[out]

Since 1.2


clutter_flow_layout_set_row_height ()

void
clutter_flow_layout_set_row_height (ClutterFlowLayout *layout,
                                    gfloat min_height,
                                    gfloat max_height);

Sets the minimum and maximum heights that a row can have

Parameters

layout

a ClutterFlowLayout

 

min_height

the minimum height of a row

 

max_height

the maximum height of a row

 

Since 1.2


clutter_flow_layout_get_row_height ()

void
clutter_flow_layout_get_row_height (ClutterFlowLayout *layout,
                                    gfloat *min_height,
                                    gfloat *max_height);

Retrieves the minimum and maximum row heights

Parameters

layout

a ClutterFlowLayout

 

min_height

return location for the minimum row height, or NULL.

[out]

max_height

return location for the maximum row height, or NULL.

[out]

Since 1.2

Types and Values

enum ClutterFlowOrientation

The direction of the arrangement of the children inside a ClutterFlowLayout

Members

CLUTTER_FLOW_HORIZONTAL

Arrange the children of the flow layout horizontally first

 

CLUTTER_FLOW_VERTICAL

Arrange the children of the flow layout vertically first

 

Since 1.2


struct ClutterFlowLayout

struct ClutterFlowLayout;

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

Since 1.2


struct ClutterFlowLayoutClass

struct ClutterFlowLayoutClass {
};

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

Since 1.2

Property Details

The “column-spacing” property

  “column-spacing”           gfloat

The spacing between columns, in pixels; the value of this property is honoured by horizontal non-overflowing layouts and by vertical overflowing layouts

Flags: Read / Write

Allowed values: >= 0

Default value: 0

Since 1.2


The “homogeneous” property

  “homogeneous”              gboolean

Whether each child inside the ClutterFlowLayout should receive the same allocation

Flags: Read / Write

Default value: FALSE

Since 1.2


The “max-column-width” property

  “max-column-width”         gfloat

Maximum width for each column in the layout, in pixels. If set to -1 the width will be the maximum child width

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since 1.2


The “max-row-height” property

  “max-row-height”           gfloat

Maximum height for each row in the layout, in pixels. If set to -1 the width will be the maximum child height

Flags: Read / Write

Allowed values: >= -1

Default value: -1

Since 1.2


The “min-column-width” property

  “min-column-width”         gfloat

Minimum width for each column in the layout, in pixels

Flags: Read / Write

Allowed values: >= 0

Default value: 0

Since 1.2


The “min-row-height” property

  “min-row-height”           gfloat

Minimum height for each row in the layout, in pixels

Flags: Read / Write

Allowed values: >= 0

Default value: 0

Since 1.2


The “orientation” property

  “orientation”              ClutterFlowOrientation

The orientation of the ClutterFlowLayout. The children of the layout will be layed out following the orientation.

This property also controls the overflowing directions

Flags: Read / Write / Construct

Default value: CLUTTER_FLOW_HORIZONTAL

Since 1.2


The “row-spacing” property

  “row-spacing”              gfloat

The spacing between rows, in pixels; the value of this property is honoured by vertical non-overflowing layouts and by horizontal overflowing layouts

Flags: Read / Write

Allowed values: >= 0

Default value: 0

Since 1.2


The “snap-to-grid” property

  “snap-to-grid”             gboolean

Whether the ClutterFlowLayout should arrange its children on a grid

Flags: Read / Write

Default value: TRUE

Since 1.16