summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThibault Saunier <thibault.saunier@collabora.com>2013-07-03 18:33:05 -0400
committerMathieu Duponchelle <mathieu.duponchelle@epitech.eu>2013-07-09 22:13:42 +0200
commitbce084f4fdb79d16af26344e11968eb1d1e36c3d (patch)
treef45bd6741b502671ad21b65899bb6f7e7e52725a
parent4e51b347ff5c7b713a308dc0114616fcec137e96 (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.txt1
-rw-r--r--ges/ges-timeline-element.c21
-rw-r--r--ges/ges-timeline-element.h2
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);