+ return items.end();
+}
+
+void InsertToItemContainer(ItemContainer& items, Item item)
+{
+ if(items.end() == FindItemById(items, item.first))
+ {
+ ItemIter iterToInsert = std::lower_bound(items.begin(), items.end(), item);
+ items.insert(iterToInsert, item);
+ }
+}
+
+/**
+ * Helper to apply size constraint to mOvershootOverlay
+ * @param[in] overshootOverlay The overshootOverlay actor
+ * @param[in] The required height
+ */
+void ApplyOvershootSizeConstraint(Actor overshootOverlay, float height)
+{
+ Constraint constraint = Constraint::New<Vector3>(overshootOverlay, Actor::Property::SIZE, OvershootOverlaySizeConstraint(height));
+ constraint.AddSource(ParentSource(Dali::Toolkit::ItemView::Property::SCROLL_DIRECTION));
+ constraint.AddSource(ParentSource(Dali::Toolkit::ItemView::Property::LAYOUT_ORIENTATION));
+ constraint.AddSource(ParentSource(Dali::Actor::Property::SIZE));
+ constraint.SetTag(OVERSHOOT_SIZE_CONSTRAINT_TAG);
+ constraint.Apply();