diff --git a/clutter/clutter-layout-manager.c b/clutter/clutter-layout-manager.c index 9f17f52b2..70bcecc7b 100644 --- a/clutter/clutter-layout-manager.c +++ b/clutter/clutter-layout-manager.c @@ -75,38 +75,10 @@ * set_container() virtual function. The layout manager * should not hold a real reference (i.e. call g_object_ref()) on the * container actor, to avoid reference cycles. - * If the layout manager has properties affecting the layout + * If a layout manager has properties affecting the layout * policies then it should emit the #ClutterLayoutManager::layout-changed * signal on itself by using the clutter_layout_manager_layout_changed() * function whenever one of these properties changes. - * If the layout manager has layout properties, that is properties that - * should exist only as the result of the presence of a specific (layout - * manager, container actor, child actor) combination, and it wishes to store - * those properties inside a #ClutterLayoutMeta then it should override the - * ClutterLayoutManager::get_child_meta_type() - * virtual function to return the #GType of the #ClutterLayoutMeta sub-class - * used to store the layout properties; optionally, the #ClutterLayoutManager - * sub-class might also override the - * ClutterLayoutManager::create_child_meta() virtual - * function to control how the #ClutterLayoutMeta instance is created, - * otherwise the default implementation will be equivalent to: - * - * ClutterLayoutManagerClass *klass; - * GType meta_type; - * - * klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager); - * meta_type = klass->get_child_meta_type (manager); - * - * return g_object_new (meta_type, - * "manager", manager, - * "container", container, - * "actor", actor, - * NULL); - * - * Where manager is the #ClutterLayoutManager, - * container is the #ClutterContainer using the - * #ClutterLayoutManager and actor is the #ClutterActor - * child of the #ClutterContainer. * * * @@ -279,6 +251,79 @@ * orientation layout property of a layout manager. * * + * + * Layout Properties + * If a layout manager has layout properties, that is properties that + * should exist only as the result of the presence of a specific (layout + * manager, container actor, child actor) combination, and it wishes to store + * those properties inside a #ClutterLayoutMeta, then it should override the + * ClutterLayoutManager::get_child_meta_type() + * virtual function to return the #GType of the #ClutterLayoutMeta sub-class + * used to store the layout properties; optionally, the #ClutterLayoutManager + * sub-class might also override the + * ClutterLayoutManager::create_child_meta() virtual + * function to control how the #ClutterLayoutMeta instance is created, + * otherwise the default implementation will be equivalent to: + * + * ClutterLayoutManagerClass *klass; + * GType meta_type; + * + * klass = CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager); + * meta_type = klass->get_child_meta_type (manager); + * + * return g_object_new (meta_type, + * "manager", manager, + * "container", container, + * "actor", actor, + * NULL); + * + * Where manager is the #ClutterLayoutManager, + * container is the #ClutterContainer using the + * #ClutterLayoutManager and actor is the #ClutterActor + * child of the #ClutterContainer. + * + * + * + * Using ClutterLayoutManager with ClutterScript + * #ClutterLayoutManager instance can be created in the same way + * as other objects in #ClutterScript; properties can be set using the + * common syntax. + * Layout properties can be set on children of a container with + * a #ClutterLayoutManager using the layout:: + * modifier on the property name, for instance: + * + * { + * "type" : "ClutterBox", + * "layout-manager" : { "type" : "ClutterTableLayout" }, + * "children" : [ + * { + * "type" : "ClutterTexture", + * "filename" : "image-00.png", + * + * "layout::row" : 0, + * "layout::column" : 0, + * "layout::x-align" : "left", + * "layout::y-align" : "center", + * "layout::x-expand" : true, + * "layout::y-expand" : true + * }, + * { + * "type" : "ClutterTexture", + * "filename" : "image-01.png", + * + * "layout::row" : 0, + * "layout::column" : 1, + * "layout::x-align" : "right", + * "layout::y-align" : "center", + * "layout::x-expand" : true, + * "layout::y-expand" : true + * } + * ] + * } + * + * + * + * * #ClutterLayoutManager is available since Clutter 1.2 */