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.
This commit is contained in:
parent
fd5e422b9f
commit
2956116561
@ -577,6 +577,21 @@ layout_manager_real_end_animation (ClutterLayoutManager *manager)
|
|||||||
clutter_layout_manager_layout_changed (manager);
|
clutter_layout_manager_layout_changed (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
|
static void
|
||||||
clutter_layout_manager_class_init (ClutterLayoutManagerClass *klass)
|
clutter_layout_manager_class_init (ClutterLayoutManagerClass *klass)
|
||||||
{
|
{
|
||||||
@ -594,6 +609,7 @@ clutter_layout_manager_class_init (ClutterLayoutManagerClass *klass)
|
|||||||
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;
|
klass->set_container = layout_manager_real_set_container;
|
||||||
|
klass->compute_expand = layout_manager_real_compute_expand;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ClutterLayoutManager::layout-changed:
|
* ClutterLayoutManager::layout-changed:
|
||||||
|
@ -90,6 +90,9 @@ struct _ClutterLayoutManager
|
|||||||
* progress of the animation of a #ClutterLayoutManager
|
* progress of the animation of a #ClutterLayoutManager
|
||||||
* @layout_changed: class handler for the #ClutterLayoutManager::layout-changed
|
* @layout_changed: class handler for the #ClutterLayoutManager::layout-changed
|
||||||
* signal
|
* 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
|
* The #ClutterLayoutManagerClass structure contains only private
|
||||||
* data and should be accessed using the provided API
|
* data and should be accessed using the provided API
|
||||||
@ -102,7 +105,6 @@ struct _ClutterLayoutManagerClass
|
|||||||
GInitiallyUnownedClass parent_class;
|
GInitiallyUnownedClass parent_class;
|
||||||
|
|
||||||
/*< public >*/
|
/*< public >*/
|
||||||
/* vfuncs, not signals */
|
|
||||||
void (* get_preferred_width) (ClutterLayoutManager *manager,
|
void (* get_preferred_width) (ClutterLayoutManager *manager,
|
||||||
ClutterContainer *container,
|
ClutterContainer *container,
|
||||||
gfloat for_height,
|
gfloat for_height,
|
||||||
@ -132,9 +134,14 @@ struct _ClutterLayoutManagerClass
|
|||||||
gdouble (* get_animation_progress) (ClutterLayoutManager *manager);
|
gdouble (* get_animation_progress) (ClutterLayoutManager *manager);
|
||||||
void (* end_animation) (ClutterLayoutManager *manager);
|
void (* end_animation) (ClutterLayoutManager *manager);
|
||||||
|
|
||||||
/* signals */
|
|
||||||
void (* layout_changed) (ClutterLayoutManager *manager);
|
void (* layout_changed) (ClutterLayoutManager *manager);
|
||||||
|
|
||||||
|
void (* compute_expand) (ClutterLayoutManager *manager,
|
||||||
|
ClutterContainer *container,
|
||||||
|
ClutterActor *child,
|
||||||
|
gboolean *x_expand,
|
||||||
|
gboolean *y_expand);
|
||||||
|
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
/* padding for future expansion */
|
/* padding for future expansion */
|
||||||
void (* _clutter_padding_1) (void);
|
void (* _clutter_padding_1) (void);
|
||||||
@ -144,7 +151,6 @@ struct _ClutterLayoutManagerClass
|
|||||||
void (* _clutter_padding_5) (void);
|
void (* _clutter_padding_5) (void);
|
||||||
void (* _clutter_padding_6) (void);
|
void (* _clutter_padding_6) (void);
|
||||||
void (* _clutter_padding_7) (void);
|
void (* _clutter_padding_7) (void);
|
||||||
void (* _clutter_padding_8) (void);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
GType clutter_layout_manager_get_type (void) G_GNUC_CONST;
|
GType clutter_layout_manager_get_type (void) G_GNUC_CONST;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user