elementary/transit - added a new APIs elm_transit_chain_transit_del
authorhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 14 Jul 2011 04:36:07 +0000 (04:36 +0000)
committerhermet <hermet@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Thu, 14 Jul 2011 04:36:07 +0000 (04:36 +0000)
git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/elementary@61353 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/Elementary.h.in
src/lib/elm_transit.c

index 5402b1c..a42404b 100644 (file)
@@ -7587,6 +7587,21 @@ extern "C" {
    EAPI void                        elm_transit_chain_transit_add(Elm_Transit *transit, Elm_Transit *chain_transit) EINA_ARG_NONNULL(1, 2);
 
    /**
+    * Cut off the chain relationship between two transits.
+    *
+    * @note @p transit can not be NULL. Transit would have the chain relationship with @p chain transit.
+    * @note @p chain_transit can not be NULL. Chain transits should be chained to the @p transit.
+    *
+    * @param transit The transit object.
+    * @param chain_transit The chain transit object.
+    *
+    * This function remove the @p chain_transit transition from the @p transit. 
+    *
+    * @ingroup Transit
+    */
+   EAPI void                        elm_transit_chain_transit_del(Elm_Transit *transit, Elm_Transit *chain_transit) EINA_ARG_NONNULL(1,2);
+
+   /**
     * Get the current chain transit list.
     *
     * @note @p transit can not be NULL.
index 05cd1db..83c3816 100644 (file)
@@ -692,6 +692,22 @@ elm_transit_chain_transit_add(Elm_Transit *transit, Elm_Transit *chain_transit)
    transit->next_chain_transits = eina_list_append(transit->next_chain_transits, chain_transit);
 }
 
+EAPI void
+elm_transit_chain_transit_del(Elm_Transit *transit, Elm_Transit *chain_transit)
+{
+   ELM_TRANSIT_CHECK_OR_RETURN(transit);
+   ELM_TRANSIT_CHECK_OR_RETURN(chain_transit);
+
+   if (chain_transit->prev_chain_transit != transit)
+     {
+        WRN("These two transit does not have the chain relationship! : transit=%p, chain_transit=%p", transit, chain_transit);
+        return;
+     }
+
+   chain_transit->prev_chain_transit = NULL;
+   transit->next_chain_transits = eina_list_remove(transit->next_chain_transits, chain_transit);
+}
+
 EAPI Eina_List *
 elm_transit_chain_transits_get(const Elm_Transit * transit)
 {