From 1ac843e2596e6ad550fb6a743ea859f29e66f356 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 11 Oct 2011 21:06:59 +0000 Subject: [PATCH] add elm_pager_content_del() for deleting arbitrary pages from a pager SVN revision: 63993 --- legacy/elementary/src/lib/Elementary.h.in | 8 ++++++++ legacy/elementary/src/lib/elm_pager.c | 15 +++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/legacy/elementary/src/lib/Elementary.h.in b/legacy/elementary/src/lib/Elementary.h.in index c3a073028e..296c9d3cce 100644 --- a/legacy/elementary/src/lib/Elementary.h.in +++ b/legacy/elementary/src/lib/Elementary.h.in @@ -19691,6 +19691,14 @@ extern "C" { * undefined behavior. */ EAPI void elm_pager_content_push(Evas_Object *obj, Evas_Object *content) EINA_ARG_NONNULL(1); + /** + * @brief Delete an arbitrary page from the stack + * @param obj The pager object + * @param subobj The content object to remove + * This removes a content item from the pager stack. If necessary, elm_pager_content_pop() + * will be called to animate a change. + */ + EAPI void elm_pager_content_del(Evas_Object *obj, Evas_Object *subobj) EINA_ARG_NONNULL(1, 2); /** * @brief Pop the object that is on top of the stack * diff --git a/legacy/elementary/src/lib/elm_pager.c b/legacy/elementary/src/lib/elm_pager.c index 802a77ba9e..8d17e048b4 100644 --- a/legacy/elementary/src/lib/elm_pager.c +++ b/legacy/elementary/src/lib/elm_pager.c @@ -371,6 +371,21 @@ elm_pager_content_push(Evas_Object *obj, Evas_Object *content) _sizing_eval(obj); } +EAPI void +elm_pager_content_del(Evas_Object *obj, Evas_Object *subobj) +{ + ELM_CHECK_WIDTYPE(obj, widtype); + Widget_Data *wd = elm_widget_data_get(obj); + if (!subobj) return; + if (!wd) return; + if (!wd->stack) return; + + if (subobj == wd->top->content) + elm_pager_content_pop(obj); + else + _content_del(obj, NULL, subobj, NULL); +} + EAPI void elm_pager_content_pop(Evas_Object *obj) {