elm genlist/gengrid: Refactoring. Moved global function pointers to

widget data.

SVN revision: 65930
This commit is contained in:
Daniel Juyung Seo 2011-12-06 01:19:12 +00:00
parent a524b3eb04
commit 95f6ebae61
3 changed files with 13 additions and 15 deletions

View File

@ -158,9 +158,6 @@ static const Evas_Smart_Cb_Description _signals[] = {
{NULL, NULL}
};
static Eina_Compare_Cb _elm_gengrid_item_compare_cb;
static Eina_Compare_Cb _elm_gengrid_item_compare_data_cb;
static Eina_Bool
_event_hook(Evas_Object *obj,
Evas_Object *src __UNUSED__,
@ -1823,7 +1820,7 @@ _elm_gengrid_item_compare_data(const void *data, const void *data1)
const Elm_Gen_Item *it = data;
const Elm_Gen_Item *item1 = data1;
return _elm_gengrid_item_compare_data_cb(it->base.data, item1->base.data);
return it->wd->item_compare_data_cb(it->base.data, item1->base.data);
}
static int
@ -1832,7 +1829,7 @@ _elm_gengrid_item_compare(const void *data, const void *data1)
Elm_Gen_Item *it, *item1;
it = ELM_GEN_ITEM_FROM_INLIST(data);
item1 = ELM_GEN_ITEM_FROM_INLIST(data1);
return _elm_gengrid_item_compare_cb(it, item1);
return it->wd->item_compare_cb(it, item1);
}
static Elm_Gen_Item *
@ -2154,7 +2151,7 @@ elm_gengrid_item_direct_sorted_insert(Evas_Object *obj,
if (!wd->state)
wd->state = eina_inlist_sorted_state_new();
_elm_gengrid_item_compare_cb = comp;
wd->item_compare_cb = comp;
wd->items = eina_inlist_sorted_state_insert(wd->items, EINA_INLIST_GET(it),
_elm_gengrid_item_compare, wd->state);
if (wd->calc_job) ecore_job_del(wd->calc_job);
@ -2171,7 +2168,8 @@ elm_gengrid_item_sorted_insert(Evas_Object *obj,
Evas_Smart_Cb func,
const void *func_data)
{
_elm_gengrid_item_compare_data_cb = comp;
Widget_Data *wd = elm_widget_data_get(obj);
wd->item_compare_data_cb = comp;
return elm_gengrid_item_direct_sorted_insert(obj, itc, data, _elm_gengrid_item_compare_data, func, func_data);
}

View File

@ -209,9 +209,6 @@ static const Evas_Smart_Cb_Description _signals[] = {
{NULL, NULL}
};
static Eina_Compare_Cb _elm_genlist_item_compare_cb;
static Eina_Compare_Cb _elm_genlist_item_compare_data_cb;
/* TEMPORARY */
#undef ELM_CHECK_WIDTYPE
#define ELM_CHECK_WIDTYPE(obj, widtype) \
@ -3514,7 +3511,7 @@ _elm_genlist_item_compare_data(const void *data, const void *data1)
const Elm_Gen_Item *it = data;
const Elm_Gen_Item *item1 = data1;
return _elm_genlist_item_compare_data_cb(it->base.data, item1->base.data);
return it->wd->item_compare_data_cb(it->base.data, item1->base.data);
}
static int
@ -3523,7 +3520,7 @@ _elm_genlist_item_compare(const void *data, const void *data1)
const Elm_Gen_Item *it, *item1;
it = ELM_GEN_ITEM_FROM_INLIST(data);
item1 = ELM_GEN_ITEM_FROM_INLIST(data1);
return _elm_genlist_item_compare_cb(it, item1);
return it->wd->item_compare_cb(it, item1);
}
static int
@ -3531,7 +3528,7 @@ _elm_genlist_item_list_compare(const void *data, const void *data1)
{
const Elm_Gen_Item *it = data;
const Elm_Gen_Item *item1 = data1;
return _elm_genlist_item_compare_cb(it, item1);
return it->wd->item_compare_cb(it, item1);
}
static void
@ -3750,7 +3747,7 @@ elm_genlist_item_direct_sorted_insert(Evas_Object *obj,
func_data);
if (!it) return NULL;
_elm_genlist_item_compare_cb = comp;
wd->item_compare_cb = comp;
if (it->parent)
{
@ -3826,7 +3823,8 @@ elm_genlist_item_sorted_insert(Evas_Object *obj,
Evas_Smart_Cb func,
const void *func_data)
{
_elm_genlist_item_compare_data_cb = comp;
Widget_Data *wd = elm_widget_data_get(obj);
wd->item_compare_data_cb = comp;
return elm_genlist_item_direct_sorted_insert(obj, itc, data, parent, flags,
_elm_genlist_item_compare_data, func, func_data);

View File

@ -145,6 +145,8 @@ struct _Widget_Data
double longpress_timeout; /* longpress timeout. this value comes from _elm_config by default. this can be changed by elm_genlist_longpress_timeout_set() */
int generation; /* a generation of genlist. when genlist is cleared, this value will be increased and a new generation will start */
Eina_Compare_Cb item_compare_cb;
Eina_Compare_Cb item_compare_data_cb;
Eina_Bool requeue : 1;
/* The stuff below directly come from gengrid without any thinking */