forked from enlightenment/efl
elm genlist/gengrid: Refactoring. Moved global function pointers to
widget data. SVN revision: 65930
This commit is contained in:
parent
a524b3eb04
commit
95f6ebae61
|
@ -158,9 +158,6 @@ static const Evas_Smart_Cb_Description _signals[] = {
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static Eina_Compare_Cb _elm_gengrid_item_compare_cb;
|
|
||||||
static Eina_Compare_Cb _elm_gengrid_item_compare_data_cb;
|
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_event_hook(Evas_Object *obj,
|
_event_hook(Evas_Object *obj,
|
||||||
Evas_Object *src __UNUSED__,
|
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 *it = data;
|
||||||
const Elm_Gen_Item *item1 = data1;
|
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
|
static int
|
||||||
|
@ -1832,7 +1829,7 @@ _elm_gengrid_item_compare(const void *data, const void *data1)
|
||||||
Elm_Gen_Item *it, *item1;
|
Elm_Gen_Item *it, *item1;
|
||||||
it = ELM_GEN_ITEM_FROM_INLIST(data);
|
it = ELM_GEN_ITEM_FROM_INLIST(data);
|
||||||
item1 = ELM_GEN_ITEM_FROM_INLIST(data1);
|
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 *
|
static Elm_Gen_Item *
|
||||||
|
@ -2154,7 +2151,7 @@ elm_gengrid_item_direct_sorted_insert(Evas_Object *obj,
|
||||||
if (!wd->state)
|
if (!wd->state)
|
||||||
wd->state = eina_inlist_sorted_state_new();
|
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),
|
wd->items = eina_inlist_sorted_state_insert(wd->items, EINA_INLIST_GET(it),
|
||||||
_elm_gengrid_item_compare, wd->state);
|
_elm_gengrid_item_compare, wd->state);
|
||||||
if (wd->calc_job) ecore_job_del(wd->calc_job);
|
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,
|
Evas_Smart_Cb func,
|
||||||
const void *func_data)
|
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);
|
return elm_gengrid_item_direct_sorted_insert(obj, itc, data, _elm_gengrid_item_compare_data, func, func_data);
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,9 +209,6 @@ static const Evas_Smart_Cb_Description _signals[] = {
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
static Eina_Compare_Cb _elm_genlist_item_compare_cb;
|
|
||||||
static Eina_Compare_Cb _elm_genlist_item_compare_data_cb;
|
|
||||||
|
|
||||||
/* TEMPORARY */
|
/* TEMPORARY */
|
||||||
#undef ELM_CHECK_WIDTYPE
|
#undef ELM_CHECK_WIDTYPE
|
||||||
#define ELM_CHECK_WIDTYPE(obj, 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 *it = data;
|
||||||
const Elm_Gen_Item *item1 = data1;
|
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
|
static int
|
||||||
|
@ -3523,7 +3520,7 @@ _elm_genlist_item_compare(const void *data, const void *data1)
|
||||||
const Elm_Gen_Item *it, *item1;
|
const Elm_Gen_Item *it, *item1;
|
||||||
it = ELM_GEN_ITEM_FROM_INLIST(data);
|
it = ELM_GEN_ITEM_FROM_INLIST(data);
|
||||||
item1 = ELM_GEN_ITEM_FROM_INLIST(data1);
|
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
|
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 *it = data;
|
||||||
const Elm_Gen_Item *item1 = data1;
|
const Elm_Gen_Item *item1 = data1;
|
||||||
return _elm_genlist_item_compare_cb(it, item1);
|
return it->wd->item_compare_cb(it, item1);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -3750,7 +3747,7 @@ elm_genlist_item_direct_sorted_insert(Evas_Object *obj,
|
||||||
func_data);
|
func_data);
|
||||||
if (!it) return NULL;
|
if (!it) return NULL;
|
||||||
|
|
||||||
_elm_genlist_item_compare_cb = comp;
|
wd->item_compare_cb = comp;
|
||||||
|
|
||||||
if (it->parent)
|
if (it->parent)
|
||||||
{
|
{
|
||||||
|
@ -3826,7 +3823,8 @@ elm_genlist_item_sorted_insert(Evas_Object *obj,
|
||||||
Evas_Smart_Cb func,
|
Evas_Smart_Cb func,
|
||||||
const void *func_data)
|
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,
|
return elm_genlist_item_direct_sorted_insert(obj, itc, data, parent, flags,
|
||||||
_elm_genlist_item_compare_data, func, func_data);
|
_elm_genlist_item_compare_data, func, func_data);
|
||||||
|
|
|
@ -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() */
|
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 */
|
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;
|
Eina_Bool requeue : 1;
|
||||||
|
|
||||||
/* The stuff below directly come from gengrid without any thinking */
|
/* The stuff below directly come from gengrid without any thinking */
|
||||||
|
|
Loading…
Reference in New Issue