/// <summary> /// Inserts an item in a GenList widget using a user-defined sort function. /// </summary> /// <param name="itemClass">The itemClass defines how to display the data.</param> /// <param name="data">The item data.</param> /// <param name="comparison">User-defined comparison function that defines the sort order based on the genlist item and its data.</param> /// <param name="type">The genlist item type.</param> /// <param name="parent">The parent item, otherwise null if there is no parent item.</param> /// <returns>Return a genlist item that contains the data and itemClass.</returns> /// <since_tizen> preview </since_tizen> public GenListItem InsertSorted(GenItemClass itemClass, object data, Comparison <object> comparison, GenListItemType type, GenListItem parent) { GenListItem item = new GenListItem(data, itemClass); Interop.Elementary.Eina_Compare_Cb compareCallback = (handle1, handle2) => { GenListItem first = (ItemObject.GetItemByHandle(handle1) as GenListItem) ?? item; GenListItem second = (ItemObject.GetItemByHandle(handle2) as GenListItem) ?? item; return(comparison(first.Data, second.Data)); }; IntPtr handle = Interop.Elementary.elm_genlist_item_sorted_insert( RealHandle, // genlist handle itemClass.UnmanagedPtr, // item clas (IntPtr)item.Id, // data parent, // parent (int)type, // item type compareCallback, // compare callback null, //select callback (IntPtr)item.Id); // callback data item.Handle = handle; AddInternal(item); return(item); }
/// <summary> /// Inserts an item in a GenGrid widget using a user-defined sort function. /// </summary> /// <param name="itemClass">The itemClass defines how to display the data.</param> /// <param name="data">The item data.</param> /// <param name="comparison">User defined comparison function that defines the sort order based on the gengrid item and its data.</param> /// <returns>Return a gengrid item that contains the data and itemClass.</returns> /// <since_tizen> preview </since_tizen> public GenGridItem InsertSorted(GenItemClass itemClass, object data, Comparison <object> comparison) { GenGridItem item = new GenGridItem(data, itemClass, this); Interop.Elementary.Eina_Compare_Cb compareCallback = (handle1, handle2) => { GenGridItem first = (ItemObject.GetItemByHandle(handle1) as GenGridItem) ?? item; GenGridItem second = (ItemObject.GetItemByHandle(handle2) as GenGridItem) ?? item; return(comparison(first.Data, second.Data)); }; item.Handle = Interop.Elementary.elm_gengrid_item_sorted_insert(RealHandle, itemClass.UnmanagedPtr, (IntPtr)item.Id, compareCallback, null, (IntPtr)item.Id); AddInternal(item); return(item); }