diff --git a/clutter/clutter-actor.c b/clutter/clutter-actor.c index de3a4a92f..ea4dc040a 100644 --- a/clutter/clutter-actor.c +++ b/clutter/clutter-actor.c @@ -731,17 +731,17 @@ static ClutterPaintVolume *_clutter_actor_get_paint_volume_mutable (ClutterActor static GQuark quark_shader_data = 0; static GQuark quark_actor_layout_info = 0; -G_DEFINE_ABSTRACT_TYPE_WITH_CODE (ClutterActor, - clutter_actor, - G_TYPE_INITIALLY_UNOWNED, - G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER, - clutter_container_iface_init) - G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_SCRIPTABLE, - clutter_scriptable_iface_init) - G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_ANIMATABLE, - clutter_animatable_iface_init) - G_IMPLEMENT_INTERFACE (ATK_TYPE_IMPLEMENTOR, - atk_implementor_iface_init)); +G_DEFINE_TYPE_WITH_CODE (ClutterActor, + clutter_actor, + G_TYPE_INITIALLY_UNOWNED, + G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_CONTAINER, + clutter_container_iface_init) + G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_SCRIPTABLE, + clutter_scriptable_iface_init) + G_IMPLEMENT_INTERFACE (CLUTTER_TYPE_ANIMATABLE, + clutter_animatable_iface_init) + G_IMPLEMENT_INTERFACE (ATK_TYPE_IMPLEMENTOR, + atk_implementor_iface_init)); /*< private > * clutter_actor_get_debug_name: @@ -5806,6 +5806,24 @@ clutter_actor_init (ClutterActor *self) memset (priv->clip, 0, sizeof (gfloat) * 4); } +/** + * clutter_actor_new: + * + * Creates a new #ClutterActor. + * + * A newly created actor has a floating reference, which will be sunk + * when it is added to another actor. + * + * Return value: (transfer full): the newly created #ClutterActor + * + * Since: 1.10 + */ +ClutterActor * +clutter_actor_new (void) +{ + return g_object_new (CLUTTER_TYPE_ACTOR, NULL); +} + /** * clutter_actor_destroy: * @self: a #ClutterActor diff --git a/clutter/clutter-actor.h b/clutter/clutter-actor.h index 3e58a9c4c..d919a5a6f 100644 --- a/clutter/clutter-actor.h +++ b/clutter/clutter-actor.h @@ -261,7 +261,9 @@ struct _ClutterActorClass gpointer _padding_dummy[28]; }; -GType clutter_actor_get_type (void) G_GNUC_CONST; +GType clutter_actor_get_type (void) G_GNUC_CONST; + +ClutterActor * clutter_actor_new (void); void clutter_actor_set_flags (ClutterActor *self, ClutterActorFlags flags); diff --git a/tests/conform/test-actor-layout.c b/tests/conform/test-actor-layout.c index 74b83e30b..62cab0ef0 100644 --- a/tests/conform/test-actor-layout.c +++ b/tests/conform/test-actor-layout.c @@ -212,20 +212,24 @@ basic_layout (TestConformSimpleFixture *fixture, ClutterActor *flower[3]; TestState *state; - vase = clutter_box_new (clutter_flow_layout_new (CLUTTER_FLOW_HORIZONTAL)); + vase = clutter_actor_new (); + clutter_actor_set_layout_manager (vase, clutter_flow_layout_new (CLUTTER_FLOW_HORIZONTAL)); clutter_actor_add_child (stage, vase); - flower[0] = clutter_rectangle_new_with_color (CLUTTER_COLOR_Red); + flower[0] = clutter_actor_new (); + clutter_actor_set_background_color (flower[0], CLUTTER_COLOR_Red); clutter_actor_set_size (flower[0], 100, 100); clutter_actor_set_name (flower[0], "Red Flower"); clutter_actor_add_child (vase, flower[0]); - flower[1] = clutter_rectangle_new_with_color (CLUTTER_COLOR_Yellow); + flower[1] = clutter_actor_new (); + clutter_actor_set_background_color (flower[1], CLUTTER_COLOR_Yellow); clutter_actor_set_size (flower[1], 100, 100); clutter_actor_set_name (flower[1], "Yellow Flower"); clutter_actor_add_child (vase, flower[1]); - flower[2] = clutter_rectangle_new_with_color (CLUTTER_COLOR_Green); + flower[2] = clutter_actor_new (); + clutter_actor_set_background_color (flower[2], CLUTTER_COLOR_Green); clutter_actor_set_size (flower[2], 100, 100); clutter_actor_set_name (flower[2], "Green Flower"); clutter_actor_add_child (vase, flower[2]); @@ -252,22 +256,26 @@ margin_layout (TestConformSimpleFixture *fixture, ClutterActor *flower[3]; TestState *state; - vase = clutter_box_new (clutter_flow_layout_new (CLUTTER_FLOW_HORIZONTAL)); + vase = clutter_actor_new (); + clutter_actor_set_layout_manager (vase, clutter_flow_layout_new (CLUTTER_FLOW_HORIZONTAL)); clutter_actor_add_child (stage, vase); - flower[0] = clutter_rectangle_new_with_color (CLUTTER_COLOR_Red); + flower[0] = clutter_actor_new (); + clutter_actor_set_background_color (flower[0], CLUTTER_COLOR_Red); clutter_actor_set_size (flower[0], 100, 100); clutter_actor_set_name (flower[0], "Red Flower"); clutter_actor_add_child (vase, flower[0]); - flower[1] = clutter_rectangle_new_with_color (CLUTTER_COLOR_Yellow); + flower[1] = clutter_actor_new (); + clutter_actor_set_background_color (flower[1], CLUTTER_COLOR_Yellow); clutter_actor_set_size (flower[1], 100, 100); clutter_actor_set_name (flower[1], "Yellow Flower"); clutter_actor_set_margin_right (flower[1], 6); clutter_actor_set_margin_left (flower[1], 6); clutter_actor_add_child (vase, flower[1]); - flower[2] = clutter_rectangle_new_with_color (CLUTTER_COLOR_Green); + flower[2] = clutter_actor_new (); + clutter_actor_set_background_color (flower[2], CLUTTER_COLOR_Green); clutter_actor_set_size (flower[2], 100, 100); clutter_actor_set_name (flower[2], "Green Flower"); clutter_actor_set_margin_top (flower[2], 6);