layout-manager: Implement set_container()
Store a back pointer of the layout manager inside the container using the GObject instance data. This introduces a change in the implementation of ClutterLayoutManager, though it's still binary compatible.
This commit is contained in:
parent
8583986e16
commit
ab76584965
6
README
6
README
@ -296,6 +296,12 @@ Relevant information for developers with existing Clutter applications
|
|||||||
wanting to port to newer releases (see NEWS for general information on new
|
wanting to port to newer releases (see NEWS for general information on new
|
||||||
features).
|
features).
|
||||||
|
|
||||||
|
Release Notes for Clutter 1.4
|
||||||
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
* ClutterLayoutManager sub-classes should chain up to the parent class's
|
||||||
|
implementation.
|
||||||
|
|
||||||
Release Notes for Clutter 1.2
|
Release Notes for Clutter 1.2
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@ -559,9 +559,13 @@ clutter_bin_layout_set_container (ClutterLayoutManager *manager,
|
|||||||
ClutterContainer *container)
|
ClutterContainer *container)
|
||||||
{
|
{
|
||||||
ClutterBinLayoutPrivate *priv;
|
ClutterBinLayoutPrivate *priv;
|
||||||
|
ClutterLayoutManagerClass *parent_class;
|
||||||
|
|
||||||
priv = CLUTTER_BIN_LAYOUT (manager)->priv;
|
priv = CLUTTER_BIN_LAYOUT (manager)->priv;
|
||||||
priv->container = container;
|
priv->container = container;
|
||||||
|
|
||||||
|
parent_class = CLUTTER_LAYOUT_MANAGER_CLASS (clutter_bin_layout_parent_class);
|
||||||
|
parent_class->set_container (manager, container);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -550,6 +550,7 @@ clutter_box_layout_set_container (ClutterLayoutManager *layout,
|
|||||||
ClutterContainer *container)
|
ClutterContainer *container)
|
||||||
{
|
{
|
||||||
ClutterBoxLayoutPrivate *priv = CLUTTER_BOX_LAYOUT (layout)->priv;
|
ClutterBoxLayoutPrivate *priv = CLUTTER_BOX_LAYOUT (layout)->priv;
|
||||||
|
ClutterLayoutManagerClass *parent_class;
|
||||||
|
|
||||||
priv->container = container;
|
priv->container = container;
|
||||||
|
|
||||||
@ -566,6 +567,9 @@ clutter_box_layout_set_container (ClutterLayoutManager *layout,
|
|||||||
clutter_actor_set_request_mode (CLUTTER_ACTOR (priv->container),
|
clutter_actor_set_request_mode (CLUTTER_ACTOR (priv->container),
|
||||||
request_mode);
|
request_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parent_class = CLUTTER_LAYOUT_MANAGER_CLASS (clutter_box_layout_parent_class);
|
||||||
|
parent_class->set_container (layout, container);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -156,6 +156,8 @@ void
|
|||||||
clutter_fixed_layout_set_container (ClutterLayoutManager *manager,
|
clutter_fixed_layout_set_container (ClutterLayoutManager *manager,
|
||||||
ClutterContainer *container)
|
ClutterContainer *container)
|
||||||
{
|
{
|
||||||
|
ClutterLayoutManagerClass *parent_class;
|
||||||
|
|
||||||
if (container != NULL)
|
if (container != NULL)
|
||||||
{
|
{
|
||||||
g_object_set_data (G_OBJECT (manager), "fixed-container", container);
|
g_object_set_data (G_OBJECT (manager), "fixed-container", container);
|
||||||
@ -176,6 +178,9 @@ clutter_fixed_layout_set_container (ClutterLayoutManager *manager,
|
|||||||
|
|
||||||
g_object_set_data (G_OBJECT (manager), "fixed-container", NULL);
|
g_object_set_data (G_OBJECT (manager), "fixed-container", NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parent_class = CLUTTER_LAYOUT_MANAGER_CLASS (clutter_fixed_layout_parent_class);
|
||||||
|
parent_class->set_container (manager, container);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -684,6 +684,7 @@ clutter_flow_layout_set_container (ClutterLayoutManager *manager,
|
|||||||
ClutterContainer *container)
|
ClutterContainer *container)
|
||||||
{
|
{
|
||||||
ClutterFlowLayoutPrivate *priv = CLUTTER_FLOW_LAYOUT (manager)->priv;
|
ClutterFlowLayoutPrivate *priv = CLUTTER_FLOW_LAYOUT (manager)->priv;
|
||||||
|
ClutterLayoutManagerClass *parent_class;
|
||||||
|
|
||||||
priv->container = container;
|
priv->container = container;
|
||||||
|
|
||||||
@ -700,6 +701,9 @@ clutter_flow_layout_set_container (ClutterLayoutManager *manager,
|
|||||||
clutter_actor_set_request_mode (CLUTTER_ACTOR (priv->container),
|
clutter_actor_set_request_mode (CLUTTER_ACTOR (priv->container),
|
||||||
request_mode);
|
request_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
parent_class = CLUTTER_LAYOUT_MANAGER_CLASS (clutter_flow_layout_parent_class);
|
||||||
|
parent_class->set_container (manager, container);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -361,6 +361,14 @@ layout_manager_real_allocate (ClutterLayoutManager *manager,
|
|||||||
LAYOUT_MANAGER_WARN_NOT_IMPLEMENTED (manager, "allocate");
|
LAYOUT_MANAGER_WARN_NOT_IMPLEMENTED (manager, "allocate");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
layout_manager_real_set_container (ClutterLayoutManager *manager,
|
||||||
|
ClutterContainer *container)
|
||||||
|
{
|
||||||
|
if (container != NULL)
|
||||||
|
g_object_set_data (G_OBJECT (container), "clutter-layout-manager", manager);
|
||||||
|
}
|
||||||
|
|
||||||
static ClutterLayoutMeta *
|
static ClutterLayoutMeta *
|
||||||
layout_manager_real_create_child_meta (ClutterLayoutManager *manager,
|
layout_manager_real_create_child_meta (ClutterLayoutManager *manager,
|
||||||
ClutterContainer *container,
|
ClutterContainer *container,
|
||||||
@ -492,6 +500,7 @@ clutter_layout_manager_class_init (ClutterLayoutManagerClass *klass)
|
|||||||
klass->begin_animation = layout_manager_real_begin_animation;
|
klass->begin_animation = layout_manager_real_begin_animation;
|
||||||
klass->get_animation_progress = layout_manager_real_get_animation_progress;
|
klass->get_animation_progress = layout_manager_real_get_animation_progress;
|
||||||
klass->end_animation = layout_manager_real_end_animation;
|
klass->end_animation = layout_manager_real_end_animation;
|
||||||
|
klass->set_container = layout_manager_real_set_container;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClutterLayoutManager::layout-changed:
|
* ClutterLayoutManager::layout-changed:
|
||||||
@ -685,6 +694,12 @@ clutter_layout_manager_set_container (ClutterLayoutManager *manager,
|
|||||||
klass->set_container (manager, container);
|
klass->set_container (manager, container);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GType
|
||||||
|
_clutter_layout_manager_get_child_meta_type (ClutterLayoutManager *manager)
|
||||||
|
{
|
||||||
|
return CLUTTER_LAYOUT_MANAGER_GET_CLASS (manager)->get_child_meta_type (manager);
|
||||||
|
}
|
||||||
|
|
||||||
static inline ClutterLayoutMeta *
|
static inline ClutterLayoutMeta *
|
||||||
create_child_meta (ClutterLayoutManager *manager,
|
create_child_meta (ClutterLayoutManager *manager,
|
||||||
ClutterContainer *container,
|
ClutterContainer *container,
|
||||||
|
@ -42,6 +42,7 @@
|
|||||||
#include "clutter-event.h"
|
#include "clutter-event.h"
|
||||||
#include "clutter-feature.h"
|
#include "clutter-feature.h"
|
||||||
#include "clutter-id-pool.h"
|
#include "clutter-id-pool.h"
|
||||||
|
#include "clutter-layout-manager.h"
|
||||||
#include "clutter-master-clock.h"
|
#include "clutter-master-clock.h"
|
||||||
#include "clutter-stage-manager.h"
|
#include "clutter-stage-manager.h"
|
||||||
#include "clutter-stage-window.h"
|
#include "clutter-stage-window.h"
|
||||||
@ -335,6 +336,8 @@ gint32 _clutter_backend_get_units_serial (ClutterBackend *backend);
|
|||||||
gboolean _clutter_effect_pre_paint (ClutterEffect *effect);
|
gboolean _clutter_effect_pre_paint (ClutterEffect *effect);
|
||||||
void _clutter_effect_post_paint (ClutterEffect *effect);
|
void _clutter_effect_post_paint (ClutterEffect *effect);
|
||||||
|
|
||||||
|
GType _clutter_layout_manager_get_child_meta_type (ClutterLayoutManager *manager);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* _HAVE_CLUTTER_PRIVATE_H */
|
#endif /* _HAVE_CLUTTER_PRIVATE_H */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user