[clutter/wip/apocalypses/apocalypse-1: 78/92] layout-manager: Add compute_expand() vfunc
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [clutter/wip/apocalypses/apocalypse-1: 78/92] layout-manager: Add compute_expand() vfunc
- Date: Tue, 3 Jan 2012 22:26:44 +0000 (UTC)
commit 2d7f5db54367d513642f8aa01b51fe83bc8c2baa
Author: Emmanuele Bassi <ebassi linux intel com>
Date: Tue Dec 20 18:38:47 2011 +0000
layout-manager: Add compute_expand() vfunc
This virtual function will let layout managers with legacy expansion
flags be able to influence the lazy computation of the expansion flags
on ClutterActor.
clutter/clutter-layout-manager.c | 16 ++++++++++++++++
clutter/clutter-layout-manager.h | 12 +++++++++---
2 files changed, 25 insertions(+), 3 deletions(-)
---
diff --git a/clutter/clutter-layout-manager.c b/clutter/clutter-layout-manager.c
index 9538b96..475e849 100644
--- a/clutter/clutter-layout-manager.c
+++ b/clutter/clutter-layout-manager.c
@@ -578,6 +578,21 @@ layout_manager_real_end_animation (ClutterLayoutManager *manager)
}
static void
+layout_manager_real_compute_expand (ClutterLayoutManager *manager,
+ ClutterContainer *container,
+ ClutterActor *child,
+ gboolean *x_expand,
+ gboolean *y_expand)
+{
+ /* be default, we don't interfere with the Actor [xy]-expand */
+ if (x_expand != NULL)
+ *x_expand = FALSE;
+
+ if (y_expand != NULL)
+ *y_expand = FALSE;
+}
+
+static void
clutter_layout_manager_class_init (ClutterLayoutManagerClass *klass)
{
quark_layout_meta =
@@ -594,6 +609,7 @@ clutter_layout_manager_class_init (ClutterLayoutManagerClass *klass)
klass->get_animation_progress = layout_manager_real_get_animation_progress;
klass->end_animation = layout_manager_real_end_animation;
klass->set_container = layout_manager_real_set_container;
+ klass->compute_expand = layout_manager_real_compute_expand;
/**
* ClutterLayoutManager::layout-changed:
diff --git a/clutter/clutter-layout-manager.h b/clutter/clutter-layout-manager.h
index db6ce07..f3cc11b 100644
--- a/clutter/clutter-layout-manager.h
+++ b/clutter/clutter-layout-manager.h
@@ -90,6 +90,9 @@ struct _ClutterLayoutManager
* progress of the animation of a #ClutterLayoutManager
* @layout_changed: class handler for the #ClutterLayoutManager::layout-changed
* signal
+ * @compute_expand: virtual function, used to let the layout manager instance
+ * influence the result of the clutter_actor_needs_x_expand() and
+ * clutter_actor_needs_y_expand() functions
*
* The #ClutterLayoutManagerClass structure contains only private
* data and should be accessed using the provided API
@@ -102,7 +105,6 @@ struct _ClutterLayoutManagerClass
GInitiallyUnownedClass parent_class;
/*< public >*/
- /* vfuncs, not signals */
void (* get_preferred_width) (ClutterLayoutManager *manager,
ClutterContainer *container,
gfloat for_height,
@@ -132,9 +134,14 @@ struct _ClutterLayoutManagerClass
gdouble (* get_animation_progress) (ClutterLayoutManager *manager);
void (* end_animation) (ClutterLayoutManager *manager);
- /* signals */
void (* layout_changed) (ClutterLayoutManager *manager);
+ void (* compute_expand) (ClutterLayoutManager *manager,
+ ClutterContainer *container,
+ ClutterActor *child,
+ gboolean *x_expand,
+ gboolean *y_expand);
+
/*< private >*/
/* padding for future expansion */
void (* _clutter_padding_1) (void);
@@ -144,7 +151,6 @@ struct _ClutterLayoutManagerClass
void (* _clutter_padding_5) (void);
void (* _clutter_padding_6) (void);
void (* _clutter_padding_7) (void);
- void (* _clutter_padding_8) (void);
};
GType clutter_layout_manager_get_type (void) G_GNUC_CONST;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]