From e9d230c154e17c97dff21edff31db7efd9c12b38 Mon Sep 17 00:00:00 2001 From: Richard Huang Date: Wed, 18 Jun 2014 13:23:25 +0100 Subject: [PATCH] New API to get the range of items in the current ItemView cache Change-Id: I559963ec022f6bd2d4c607da6c2a0ce19190aacf Signed-off-by: Adeel Kazmi --- .../internal/controls/scrollable/item-view/item-view-impl.cpp | 6 ++++++ .../internal/controls/scrollable/item-view/item-view-impl.h | 5 +++++ .../public-api/controls/scrollable/item-view/item-view.cpp | 5 +++++ .../public-api/controls/scrollable/item-view/item-view.h | 8 ++++++++ 4 files changed, 24 insertions(+) diff --git a/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp b/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp index be23888..73a25ff 100644 --- a/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp +++ b/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.cpp @@ -1796,6 +1796,12 @@ Vector3 ItemView::GetItemsAnchorPoint() const return mItemsAnchorPoint; } +void ItemView::GetItemsRange(ItemRange& range) +{ + range.begin = mItemPool.begin()->first; + range.end = mItemPool.rbegin()->first + 1; +} + } // namespace Internal } // namespace Toolkit diff --git a/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h b/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h index 40a5955..bd143eb 100644 --- a/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h +++ b/base/dali-toolkit/internal/controls/scrollable/item-view/item-view-impl.h @@ -284,6 +284,11 @@ public: */ Vector3 GetItemsAnchorPoint() const; + /** + * @copydoc Toolkit::ItemView::GetItemsRange + */ + void GetItemsRange(ItemRange& range); + private: /** diff --git a/base/dali-toolkit/public-api/controls/scrollable/item-view/item-view.cpp b/base/dali-toolkit/public-api/controls/scrollable/item-view/item-view.cpp index b638186..0271e1a 100644 --- a/base/dali-toolkit/public-api/controls/scrollable/item-view/item-view.cpp +++ b/base/dali-toolkit/public-api/controls/scrollable/item-view/item-view.cpp @@ -249,6 +249,11 @@ Vector3 ItemView::GetItemsAnchorPoint() const return GetImpl(*this).GetItemsAnchorPoint(); } +void ItemView::GetItemsRange(ItemRange& range) +{ + GetImpl(*this).GetItemsRange(range); +} + } // namespace Toolkit } // namespace Dali diff --git a/capi/dali-toolkit/public-api/controls/scrollable/item-view/item-view.h b/capi/dali-toolkit/public-api/controls/scrollable/item-view/item-view.h index 82c9c83..61c7265 100644 --- a/capi/dali-toolkit/public-api/controls/scrollable/item-view/item-view.h +++ b/capi/dali-toolkit/public-api/controls/scrollable/item-view/item-view.h @@ -44,6 +44,7 @@ class ItemView; class ScrollConnector; class ItemFactory; class ItemLayout; +struct ItemRange; typedef IntrusivePtr ItemLayoutPtr; @@ -412,6 +413,13 @@ public: */ Vector3 GetItemsAnchorPoint() const; + /** + * @brief Get the range of items that are currently in ItemView. + * + * @param[out] range The range of items. + */ + void GetItemsRange(ItemRange& range); + public: // Not intended for application developers /** -- 2.7.4