From 16dd75499b09bbd844ee712d1dd43ef2d442c96d Mon Sep 17 00:00:00 2001 From: Nicolas Aguirre Date: Thu, 22 Jul 2010 16:13:40 +0000 Subject: [PATCH] Enable transition between previous item and the current when elm_slideshow_show is called. SVN revision: 50431 --- legacy/elementary/src/lib/elm_slideshow.c | 27 ++++++++++++++++++----- 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/legacy/elementary/src/lib/elm_slideshow.c b/legacy/elementary/src/lib/elm_slideshow.c index d6839c39ab..0b799bb67f 100644 --- a/legacy/elementary/src/lib/elm_slideshow.c +++ b/legacy/elementary/src/lib/elm_slideshow.c @@ -326,17 +326,32 @@ elm_slideshow_item_add(Evas_Object *obj, const Elm_Slideshow_Item_Class *itc, co EAPI void elm_slideshow_show(Elm_Slideshow_Item *item) { - Widget_Data *wd = elm_widget_data_get(item->obj); - if (!wd) return; - if (item == wd->current) return; + char buf[1024]; + Elm_Slideshow_Item *next = NULL; + Widget_Data *wd; + if (!item) + return; + ELM_CHECK_WIDTYPE(item->obj, widtype); + wd = elm_widget_data_get(item->obj); + if (!wd) + return; + if (item == wd->current) + return; + next = item; _end(item->obj, item->obj, NULL, NULL); + if (wd->timer) ecore_timer_del(wd->timer); + if (wd->timeout > 0) + wd->timer = ecore_timer_add(wd->timeout, _timer_cb, item->obj); + _item_realize(next); + edje_object_part_swallow(wd->slideshow, "elm.swallow.2", next->o); + evas_object_show(next->o); + snprintf(buf, sizeof(buf), "%s,next", wd->transition); + edje_object_signal_emit(wd->slideshow, buf, "slideshow"); wd->previous = wd->current; - wd->current = item; - _item_realize(item); + wd->current = next; - _end(item->obj, item->obj, NULL, NULL); } /**