StBoxLayout: add insert_before
Add st_container_move_before internal API, and st_box_layout_insert_before, that inserts an actor before another in the container. https://bugzilla.gnome.org/show_bug.cgi?id=637681
This commit is contained in:
parent
cedcbc5fcf
commit
046308c582
@ -1213,3 +1213,14 @@ st_box_layout_insert_actor (StBoxLayout *self,
|
|||||||
clutter_container_add_actor((ClutterContainer*) self, actor);
|
clutter_container_add_actor((ClutterContainer*) self, actor);
|
||||||
st_container_move_child (ST_CONTAINER (self), actor, pos);
|
st_container_move_child (ST_CONTAINER (self), actor, pos);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
st_box_layout_insert_before (StBoxLayout *self,
|
||||||
|
ClutterActor *actor,
|
||||||
|
ClutterActor *sibling)
|
||||||
|
{
|
||||||
|
g_return_if_fail (ST_IS_BOX_LAYOUT (self));
|
||||||
|
|
||||||
|
clutter_container_add_actor(CLUTTER_CONTAINER (self), actor);
|
||||||
|
st_container_move_before (ST_CONTAINER (self), actor, sibling);
|
||||||
|
}
|
||||||
|
@ -90,6 +90,10 @@ void st_box_layout_insert_actor (StBoxLayout *self,
|
|||||||
ClutterActor *actor,
|
ClutterActor *actor,
|
||||||
int pos);
|
int pos);
|
||||||
|
|
||||||
|
void st_box_layout_insert_before (StBoxLayout *self,
|
||||||
|
ClutterActor *actor,
|
||||||
|
ClutterActor *sibling);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
|
||||||
#endif /* _ST_BOX_LAYOUT_H */
|
#endif /* _ST_BOX_LAYOUT_H */
|
||||||
|
@ -159,6 +159,29 @@ st_container_move_child (StContainer *container,
|
|||||||
clutter_actor_queue_relayout ((ClutterActor*) container);
|
clutter_actor_queue_relayout ((ClutterActor*) container);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
st_container_move_before (StContainer *container,
|
||||||
|
ClutterActor *actor,
|
||||||
|
ClutterActor *sibling)
|
||||||
|
{
|
||||||
|
StContainerPrivate *priv = container->priv;
|
||||||
|
GList *actor_item = NULL;
|
||||||
|
GList *sibling_item = NULL;
|
||||||
|
|
||||||
|
actor_item = g_list_find (priv->children, actor);
|
||||||
|
sibling_item = g_list_find (priv->children, sibling);
|
||||||
|
|
||||||
|
g_return_if_fail (actor_item != NULL);
|
||||||
|
g_return_if_fail (sibling_item != NULL);
|
||||||
|
|
||||||
|
priv->children = g_list_delete_link (priv->children, actor_item);
|
||||||
|
priv->children = g_list_insert_before (priv->children, sibling_item, actor);
|
||||||
|
|
||||||
|
st_container_update_pseudo_classes (container);
|
||||||
|
|
||||||
|
clutter_actor_queue_relayout (CLUTTER_ACTOR (container));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* st_container_get_children_list:
|
* st_container_get_children_list:
|
||||||
* @container: An #StContainer
|
* @container: An #StContainer
|
||||||
|
@ -62,6 +62,9 @@ GList * st_container_get_focus_chain (StContainer *container);
|
|||||||
void st_container_move_child (StContainer *container,
|
void st_container_move_child (StContainer *container,
|
||||||
ClutterActor *actor,
|
ClutterActor *actor,
|
||||||
int pos);
|
int pos);
|
||||||
|
void st_container_move_before (StContainer *container,
|
||||||
|
ClutterActor *actor,
|
||||||
|
ClutterActor *sibling);
|
||||||
GList * st_container_get_children_list (StContainer *container);
|
GList * st_container_get_children_list (StContainer *container);
|
||||||
|
|
||||||
G_END_DECLS
|
G_END_DECLS
|
||||||
|
Loading…
Reference in New Issue
Block a user