forked from enlightenment/efl
elementary: add elm_gengrid_item_sorted_insert.
Original patch from Thiery. SVN revision: 60686
This commit is contained in:
parent
303f6f594e
commit
6f4ff6e812
|
@ -40,3 +40,4 @@ Shinwoo Kim <kimcinoo@gmail.com>
|
||||||
Govindaraju SM <govi.sm@samsung.com> <govism@gmail.com>
|
Govindaraju SM <govi.sm@samsung.com> <govism@gmail.com>
|
||||||
Prince Kumar Dubey <prince.dubey@samsung.com> <prince.dubey@gmail.com>
|
Prince Kumar Dubey <prince.dubey@samsung.com> <prince.dubey@gmail.com>
|
||||||
Sung W. Park <sungwoo@gmail.com>
|
Sung W. Park <sungwoo@gmail.com>
|
||||||
|
Thierry el Borgi <thierry@substantiel.fr>
|
||||||
|
|
|
@ -2226,6 +2226,7 @@ extern "C" {
|
||||||
EAPI Elm_Gengrid_Item *elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
EAPI Elm_Gengrid_Item *elm_gengrid_item_prepend(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
||||||
EAPI Elm_Gengrid_Item *elm_gengrid_item_insert_before(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
EAPI Elm_Gengrid_Item *elm_gengrid_item_insert_before(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
||||||
EAPI Elm_Gengrid_Item *elm_gengrid_item_insert_after(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
EAPI Elm_Gengrid_Item *elm_gengrid_item_insert_after(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Elm_Gengrid_Item *relative, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
||||||
|
EAPI Elm_Gengrid_Item *elm_gengrid_item_sorted_insert(Evas_Object *obj, const Elm_Gengrid_Item_Class *gic, const void *data, Eina_Compare_Cb comp, Evas_Smart_Cb func, const void *func_data) EINA_ARG_NONNULL(1);
|
||||||
/* smart callbacks called:
|
/* smart callbacks called:
|
||||||
*
|
*
|
||||||
* selected - User has selected an item.
|
* selected - User has selected an item.
|
||||||
|
|
|
@ -295,7 +295,7 @@ static const Evas_Smart_Cb_Description _signals[] = {
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static Eina_Compare_Cb _elm_gengrid_item_compare_cb;
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_event_hook(Evas_Object *obj,
|
_event_hook(Evas_Object *obj,
|
||||||
|
@ -1730,6 +1730,15 @@ _scr_scroll(void *data,
|
||||||
evas_object_smart_callback_call(data, SIG_SCROLL, NULL);
|
evas_object_smart_callback_call(data, SIG_SCROLL, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_elm_gengrid_item_compare(const void *data, const void *data1)
|
||||||
|
{
|
||||||
|
Elm_Gengrid_Item *item, *item1;
|
||||||
|
item = ELM_GENGRID_ITEM_FROM_INLIST(data);
|
||||||
|
item1 = ELM_GENGRID_ITEM_FROM_INLIST(data1);
|
||||||
|
return _elm_gengrid_item_compare_cb(item->base.data, item1->base.data);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Add a new Gengrid object.
|
* Add a new Gengrid object.
|
||||||
*
|
*
|
||||||
|
@ -2096,6 +2105,31 @@ elm_gengrid_item_insert_after(Evas_Object *obj,
|
||||||
return item;
|
return item;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EAPI Elm_Gengrid_Item *
|
||||||
|
elm_gengrid_item_sorted_insert(Evas_Object *obj,
|
||||||
|
const Elm_Gengrid_Item_Class *gic,
|
||||||
|
const void *data,
|
||||||
|
Eina_Compare_Cb comp,
|
||||||
|
Evas_Smart_Cb func,
|
||||||
|
const void *func_data)
|
||||||
|
{
|
||||||
|
Elm_Gengrid_Item *item;
|
||||||
|
ELM_CHECK_WIDTYPE(obj, widtype) NULL;
|
||||||
|
Widget_Data *wd = elm_widget_data_get(obj);
|
||||||
|
if (!wd) return NULL;
|
||||||
|
|
||||||
|
item = _item_create(wd, gic, data, func, func_data);
|
||||||
|
if (!item) return NULL;
|
||||||
|
_elm_gengrid_item_compare_cb = comp;
|
||||||
|
|
||||||
|
wd->items = eina_inlist_sorted_insert(wd->items, EINA_INLIST_GET(item),
|
||||||
|
_elm_gengrid_item_compare);
|
||||||
|
if (wd->calc_job) ecore_job_del(wd->calc_job);
|
||||||
|
wd->calc_job = ecore_job_add(_calc_job, wd);
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove an item from the Gengrid.
|
* Remove an item from the Gengrid.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue