diff --git a/clutter/clutter-bin-layout.c b/clutter/clutter-bin-layout.c
index be544abf3..c922319c6 100644
--- a/clutter/clutter-bin-layout.c
+++ b/clutter/clutter-bin-layout.c
@@ -1,3 +1,38 @@
+/*
+ * Clutter.
+ *
+ * An OpenGL based 'interactive canvas' library.
+ *
+ * Copyright (C) 2009 Intel Corporation.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see .
+ *
+ * Author:
+ * Emmanuele Bassi
+ */
+
+/**
+ * SECTION:clutter-bin-layout
+ * @short_description: A simple layout manager
+ *
+ * #ClutterBinLayout is a layout manager which implements the following
+ * policy:
+ *
+ *
+ * #ClutterBinLayout is available since Clutter 1.2
+ */
+
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
@@ -336,6 +371,14 @@ clutter_bin_layout_class_init (ClutterBinLayoutClass *klass)
gobject_class->set_property = clutter_bin_layout_set_property;
gobject_class->get_property = clutter_bin_layout_get_property;
+ /**
+ * ClutterBinLayout:x-align:
+ *
+ * The horizontal alignment policy for actors managed by the
+ * #ClutterBinLayout
+ *
+ * Since: 1.2
+ */
pspec = g_param_spec_enum ("x-align",
"X Align",
"Horizontal alignment for the actors "
@@ -345,6 +388,14 @@ clutter_bin_layout_class_init (ClutterBinLayoutClass *klass)
CLUTTER_PARAM_READWRITE);
g_object_class_install_property (gobject_class, PROP_X_ALIGN, pspec);
+ /**
+ * ClutterBinLayout:y-align:
+ *
+ * The vertical alignment policy for actors managed by the
+ * #ClutterBinLayout
+ *
+ * Since: 1.2
+ */
pspec = g_param_spec_enum ("y-align",
"Y Align",
"Vertical alignment for the actors "
@@ -371,6 +422,19 @@ clutter_bin_layout_init (ClutterBinLayout *self)
self->priv->y_align = CLUTTER_BIN_ALIGNMENT_CENTER;
}
+/**
+ * clutter_bin_layout_new:
+ * @x_align: the #ClutterBinAlignment policy to be used on the
+ * horizontal axis
+ * @y_align: the #ClutterBinAlignment policy to be used on the
+ * vertical axis
+ *
+ * Creates a new #ClutterBinLayout layout manager
+ *
+ * Return value: the newly created layout manager
+ *
+ * Since: 1.2
+ */
ClutterLayoutManager *
clutter_bin_layout_new (ClutterBinAlignment x_align,
ClutterBinAlignment y_align)
@@ -381,6 +445,19 @@ clutter_bin_layout_new (ClutterBinAlignment x_align,
NULL);
}
+/**
+ * clutter_bin_layout_set_alignment:
+ * @self: a #ClutterBinLayout
+ * @x_align: the #ClutterBinAlignment policy to be used on the
+ * horizontal axis
+ * @y_align: the #ClutterBinAlignment policy to be used on the
+ * vertical axis
+ *
+ * Sets the alignment policies on the horizontal and vertical
+ * axis for @self
+ *
+ * Since: 1.2
+ */
void
clutter_bin_layout_set_alignment (ClutterBinLayout *self,
ClutterBinAlignment x_align,
@@ -388,10 +465,26 @@ clutter_bin_layout_set_alignment (ClutterBinLayout *self,
{
g_return_if_fail (CLUTTER_IS_BIN_LAYOUT (self));
+ g_object_freeze_notify (G_OBJECT (self));
+
set_x_align (self, x_align);
set_y_align (self, y_align);
+
+ g_object_thaw_notify (G_OBJECT (self));
}
+/**
+ * clutter_bin_layout_get_alignment:
+ * @self: a #ClutterBinLayout
+ * @x_align: (out) (allow-none): return location for the horizontal
+ * alignment policy
+ * @y_align: (out) (allow-none): return location for the vertical
+ * alignment policy
+ *
+ * Retrieves the horizontal and vertical alignment policies for @self
+ *
+ * Since: 1.2
+ */
void
clutter_bin_layout_get_alignment (ClutterBinLayout *self,
ClutterBinAlignment *x_align,
diff --git a/clutter/clutter-bin-layout.h b/clutter/clutter-bin-layout.h
index dd360deef..09449a1f6 100644
--- a/clutter/clutter-bin-layout.h
+++ b/clutter/clutter-bin-layout.h
@@ -20,6 +20,23 @@ typedef struct _ClutterBinLayout ClutterBinLayout;
typedef struct _ClutterBinLayoutPrivate ClutterBinLayoutPrivate;
typedef struct _ClutterBinLayoutClass ClutterBinLayoutClass;
+/**
+ * ClutterBinAlignment:
+ * @CLUTTER_BIN_ALIGNMENT_FIXED: Fixed position alignment; the
+ * #ClutterBinLayout will honour the fixed position provided
+ * by the actors themselves when allocating them
+ * @CLUTTER_BIN_ALIGNMENT_FILL: Fill the allocation size
+ * @CLUTTER_BIN_ALIGNMENT_START: Position the actors at the top
+ * or left side of the container, depending on the axis
+ * @CLUTTER_BIN_ALIGNMENT_END: Position the actors at the bottom
+ * or right side of the container, depending on the axis
+ * @CLUTTER_BIN_ALIGNMENT_CENTER: Position the actors at the
+ * center of the container, depending on the axis
+ *
+ * The alignment policies available on each axis for #ClutterBinLayout
+ *
+ * Since: 1.2
+ */
typedef enum {
CLUTTER_BIN_ALIGNMENT_FIXED,
CLUTTER_BIN_ALIGNMENT_FILL,
@@ -28,22 +45,47 @@ typedef enum {
CLUTTER_BIN_ALIGNMENT_CENTER
} ClutterBinAlignment;
+/**
+ * ClutterBinLayout:
+ *
+ * The #ClutterBinLayout structure contains only private data
+ * and should be accessed using the provided API
+ *
+ * Since: 1.2
+ */
struct _ClutterBinLayout
{
+ /*< private >*/
ClutterLayoutManager parent_instance;
ClutterBinLayoutPrivate *priv;
};
+/**
+ * ClutterBinLayoutClass:
+ *
+ * The #ClutterBinLayoutClass structure contains only private
+ * data and should be accessed using the provided API
+ *
+ * Since: 1.2
+ */
struct _ClutterBinLayoutClass
{
+ /*< private >*/
ClutterLayoutManagerClass parent_class;
};
GType clutter_bin_layout_get_type (void) G_GNUC_CONST;
-ClutterLayoutManager *clutter_bin_layout_new (ClutterBinAlignment align_x,
- ClutterBinAlignment align_y);
+ClutterLayoutManager *clutter_bin_layout_new (ClutterBinAlignment align_x,
+ ClutterBinAlignment align_y);
+
+void clutter_bin_layout_set_alignment (ClutterBinLayout *self,
+ ClutterBinAlignment x_align,
+ ClutterBinAlignment y_align);
+void clutter_bin_layout_get_alignment (ClutterBinLayout *self,
+ ClutterBinAlignment *x_align,
+ ClutterBinAlignment *y_align);
G_END_DECLS