From c4100abed540c814232f093b9bbe8b53e4c525de Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Thu, 14 Jul 2011 04:36:07 +0000 Subject: [PATCH] elementary/transit - added a new APIs elm_transit_chain_transit_del SVN revision: 61353 --- src/lib/Elementary.h.in | 15 +++++++++++++++ src/lib/elm_transit.c | 16 ++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/src/lib/Elementary.h.in b/src/lib/Elementary.h.in index 5402b1c..a42404b 100644 --- a/src/lib/Elementary.h.in +++ b/src/lib/Elementary.h.in @@ -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. diff --git a/src/lib/elm_transit.c b/src/lib/elm_transit.c index 05cd1db..83c3816 100644 --- a/src/lib/elm_transit.c +++ b/src/lib/elm_transit.c @@ -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) { -- 2.7.4