## MxBin MxBin — a simple container with one actor. |

## Synopsis

    struct              MxBin;
    struct              MxBinClass;
    void                mx_bin_allocate_child               (MxBin *bin,
                                                             const ClutterActorBox *box,
                                                             ClutterAllocationFlags flags);
    void                mx_bin_set_child                    (MxBin *bin,
                                                             ClutterActor *child);
    ClutterActor *      mx_bin_get_child                    (MxBin *bin);
    void                mx_bin_set_alignment                (MxBin *bin,
                                                             MxAlign x_align,
                                                             MxAlign y_align);
    void                mx_bin_get_alignment                (MxBin *bin,
                                                             MxAlign *x_align,
                                                             MxAlign *y_align);
    void                mx_bin_set_fill                     (MxBin *bin,
                                                             gboolean x_fill,
                                                             gboolean y_fill);
    void                mx_bin_get_fill                     (MxBin *bin,
                                                             gboolean *x_fill,
                                                             gboolean *y_fill);

## Object Hierarchy

      GObject
       +----GInitiallyUnowned
             +----ClutterActor
                   +----MxWidget
                         +----MxBin
                               +----MxButton
                               +----MxDialog
                               +----MxExpander
                               +----MxFrame
                               +----MxKineticScrollView
                               +----MxScrollBar
                               +----MxScrollView
                               +----MxToolbar
                               +----MxViewport

## Implemented Interfaces

MxBin implements ClutterScriptable, ClutterAnimatable, AtkImplementorIface, MxStylable, ClutterContainer and MxFocusable.

## Properties

      "child"                    ClutterActor*         : Read / Write
      "x-align"                  MxAlign               : Read / Write
      "x-fill"                   gboolean              : Read / Write
      "y-align"                  MxAlign               : Read / Write
      "y-fill"                   gboolean              : Read / Write

## Description

MxBin is a simple abstract container capable of having only one ClutterActor as a child. MxBin does not allocate the child itself, therefore any subclasses are required to implement the ClutterActorClass.allocate function. #`mx_bin_allocate_child()` can be used if no special allocation requirements are needed.

MxFrame is a simple implementation of MxBin that can be used as a single actor container that implements alignment and padding.

## Details

### struct MxBin

    struct MxBin;

The MxBin struct contains only private data

### struct MxBinClass

    struct MxBinClass {
    };

The MxBinClass struct contains only private data

### mx_bin_allocate_child ()

    void                mx_bin_allocate_child               (MxBin *bin,
                                                             const ClutterActorBox *box,
                                                             ClutterAllocationFlags flags);

Allocates the child of an MxBin using the width and height from `box`. This function should usually only be called by subclasses of MxBin.

This function can be used to allocate the child of an MxBin if no special allocation requirements are needed. It is similar to mx_allocate_align_fill, except that it reads the alignment, padding and fill values from the MxBin, and will call clutter_actor_allocate on the child.

`bin` : | An MxBin
`box` : | The allocation box of the parent actor.
`flags` : | ClutterAllocationFlags, usually provided by the. clutter_actor_allocate function.

### mx_bin_set_child ()

    void                mx_bin_set_child                    (MxBin *bin,
                                                             ClutterActor *child);

Sets `child` as the child of `bin`.

If `bin` already has a child, the previous child is removed.

`bin` : | a MxBin
`child` : | a ClutterActor, or `NULL`

### mx_bin_get_child ()

    ClutterActor *      mx_bin_get_child                    (MxBin *bin);

Retrieves a pointer to the child of `bin`.

`bin` : | a MxBin
Returns : | a ClutterActor, or `NULL`. [transfer none]

### mx_bin_set_alignment ()

    void                mx_bin_set_alignment                (MxBin *bin,
                                                             MxAlign x_align,
                                                             MxAlign y_align);

Sets the horizontal and vertical alignment of the child inside a MxBin.

`bin` : | a MxBin
`x_align` : | horizontal alignment
`y_align` : | vertical alignment

### mx_bin_get_alignment ()

    void                mx_bin_get_alignment                (MxBin *bin,
                                                             MxAlign *x_align,
                                                             MxAlign *y_align);

Retrieves the horizontal and vertical alignment of the child inside a MxBin, as set by `mx_bin_set_alignment()`.

`bin` : | a MxBin
`x_align` : | return location for the horizontal alignment, or `NULL`
`y_align` : | return location for the vertical alignment, or `NULL`

### mx_bin_set_fill ()

    void                mx_bin_set_fill                     (MxBin *bin,
                                                             gboolean x_fill,
                                                             gboolean y_fill);

Sets whether the child of `bin` should fill out the horizontal and/or vertical allocation of the parent

`bin` : | a MxBin
`x_fill` : | `TRUE` if the child should fill horizontally the `bin`
`y_fill` : | `TRUE` if the child should fill vertically the `bin`

### mx_bin_get_fill ()

    void                mx_bin_get_fill                     (MxBin *bin,
                                                             gboolean *x_fill,
                                                             gboolean *y_fill);

Retrieves the horizontal and vertical fill settings

`bin` : | a MxBin
`x_fill` : | return location for the horizontal fill, or `NULL`. [out]
`y_fill` : | return location for the vertical fill, or `NULL`. [out]

## Property Details

### The `"child"` property

      "child"                    ClutterActor*         : Read / Write

The child ClutterActor of the MxBin container.

### The `"x-align"` property

      "x-align"                  MxAlign               : Read / Write

The horizontal alignment of the MxBin child.

Default value: MX_ALIGN_MIDDLE

### The `"x-fill"` property

      "x-fill"                   gboolean              : Read / Write

Whether the child should fill the horizontal allocation

Default value: FALSE

### The `"y-align"` property

      "y-align"                  MxAlign               : Read / Write

The vertical alignment of the MxBin child.

Default value: MX_ALIGN_MIDDLE

### The `"y-fill"` property

      "y-fill"                   gboolean              : Read / Write

Whether the child should fill the vertical allocation

Default value: FALSE