diff options
author | Thibault Saunier <thibault.saunier@collabora.com> | 2013-07-03 18:33:05 -0400 |
---|---|---|
committer | Mathieu Duponchelle <mathieu.duponchelle@epitech.eu> | 2013-07-09 22:13:42 +0200 |
commit | bce084f4fdb79d16af26344e11968eb1d1e36c3d (patch) | |
tree | f45bd6741b502671ad21b65899bb6f7e7e52725a | |
parent | 4e51b347ff5c7b713a308dc0114616fcec137e96 (diff) |
timeline-element: Add a method to get the topelevel parent of an element
API:
ges_timeline_element_get_toplevel_parent
-rw-r--r-- | docs/libs/ges-sections.txt | 1 | ||||
-rw-r--r-- | ges/ges-timeline-element.c | 21 | ||||
-rw-r--r-- | ges/ges-timeline-element.h | 2 |
3 files changed, 24 insertions, 0 deletions
diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index 3ef0927..4a9eaa1 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -374,6 +374,7 @@ ges_timeline_element_ripple_end ges_timeline_element_roll_start ges_timeline_element_roll_end ges_timeline_element_trim +ges_timeline_element_get_toplevel_parent GES_TIMELINE_ELEMENT_PARENT GES_TIMELINE_ELEMENT_TIMELINE GES_TIMELINE_ELEMENT_START diff --git a/ges/ges-timeline-element.c b/ges/ges-timeline-element.c index 0442082..5fc88b4 100644 --- a/ges/ges-timeline-element.c +++ b/ges/ges-timeline-element.c @@ -832,3 +832,24 @@ ges_timeline_element_copy (GESTimelineElement * self, gboolean deep) return ret; } + +/** + * ges_timeline_element_get_toplevel_parent: + * @self: The #GESTimelineElement to get the toplevel parent from + * + * Gets the toplevel #GESTimelineElement controlling @self + * + * Returns: (transfer full): The toplevel controlling parent of @self + */ +GESTimelineElement * +ges_timeline_element_get_toplevel_parent (GESTimelineElement * self) +{ + GESTimelineElement *toplevel = self; + + g_return_val_if_fail (GES_IS_TIMELINE_ELEMENT (self), NULL); + + while (GES_TIMELINE_ELEMENT_PARENT (toplevel)) + toplevel = GES_TIMELINE_ELEMENT_PARENT (toplevel); + + return gst_object_ref (toplevel); +} diff --git a/ges/ges-timeline-element.h b/ges/ges-timeline-element.h index b2d0173..f495a8c 100644 --- a/ges/ges-timeline-element.h +++ b/ges/ges-timeline-element.h @@ -179,6 +179,8 @@ struct _GESTimelineElementClass GType ges_timeline_element_get_type (void) G_GNUC_CONST; +GESTimelineElement * +ges_timeline_element_get_toplevel_parent (GESTimelineElement *self); GESTimelineElement * ges_timeline_element_get_parent (GESTimelineElement * self); gboolean ges_timeline_element_set_parent (GESTimelineElement *self, GESTimelineElement *parent); gboolean ges_timeline_element_set_timeline (GESTimelineElement *self, GESTimeline *timeline); |