예제 #1
0
        /// <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);
        }
예제 #2
0
파일: GenGrid.cs 프로젝트: yunmiha/TizenFX
        /// <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);
        }