elementary/gengrid - made to use signal callback descriptions table.

SVN revision: 58817
This commit is contained in:
ChunEon Park 2011-04-22 00:57:15 +00:00
parent 9420b44918
commit 628d558cde
1 changed files with 57 additions and 18 deletions

View File

@ -248,6 +248,43 @@ static Eina_Bool _deselect_all_items(Widget_Data *wd);
static Evas_Smart_Class _pan_sc = EVAS_SMART_CLASS_INIT_VERSION; static Evas_Smart_Class _pan_sc = EVAS_SMART_CLASS_INIT_VERSION;
static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl); static void _mirrored_set(Evas_Object *obj, Eina_Bool rtl);
static const char SIG_CLICKED_DOUBLE[] = "clicked,double";
static const char SIG_SELECTED[] = "selected";
static const char SIG_UNSELECTED[] = "unselected";
static const char SIG_REALIZED[] = "realized";
static const char SIG_UNREALIZED[] = "unrealized";
static const char SIG_CHANGED[] = "changed";
static const char SIG_DRAG_START_UP[] = "drag,start,up";
static const char SIG_DRAG_START_DOWN[] = "drag,start,down";
static const char SIG_DRAG_START_LEFT[] = "drag,start,left";
static const char SIG_DRAG_START_RIGHT[] = "drag,start,right";
static const char SIG_DRAG_STOP[] = "drag,stop";
static const char SIG_DRAG[] = "drag";
static const char SIG_SCROLL[] = "scroll";
static const char SIG_SCROLL_DRAG_START[] = "scroll,drag,start";
static const char SIG_SCROLL_DRAG_STOP[] = "scroll,drag,stop";
static const Evas_Smart_Cb_Description _signals[] = {
{SIG_CLICKED_DOUBLE, ""},
{SIG_SELECTED, ""},
{SIG_UNSELECTED, ""},
{SIG_REALIZED, ""},
{SIG_UNREALIZED, ""},
{SIG_CHANGED, ""},
{SIG_DRAG_START_UP, ""},
{SIG_DRAG_START_DOWN, ""},
{SIG_DRAG_START_LEFT, ""},
{SIG_DRAG_START_RIGHT, ""},
{SIG_DRAG_STOP, ""},
{SIG_DRAG, ""},
{SIG_SCROLL, ""},
{SIG_SCROLL_DRAG_START, ""},
{SIG_SCROLL_DRAG_STOP, ""},
{NULL, NULL}
};
static Eina_Bool static Eina_Bool
_event_hook(Evas_Object *obj, _event_hook(Evas_Object *obj,
Evas_Object *src __UNUSED__, Evas_Object *src __UNUSED__,
@ -421,7 +458,7 @@ _event_hook(Evas_Object *obj,
(!strcmp(ev->keyname, "space"))) (!strcmp(ev->keyname, "space")))
{ {
item = elm_gengrid_selected_item_get(obj); item = elm_gengrid_selected_item_get(obj);
evas_object_smart_callback_call(item->wd->self, "clicked,double", item); evas_object_smart_callback_call(item->wd->self, SIG_CLICKED_DOUBLE, item);
evas_object_smart_callback_call(item->wd->self, "clicked", item); // will be removed evas_object_smart_callback_call(item->wd->self, "clicked", item); // will be removed
} }
else return EINA_FALSE; else return EINA_FALSE;
@ -726,7 +763,7 @@ _mouse_move(void *data,
ecore_timer_del(item->long_timer); ecore_timer_del(item->long_timer);
item->long_timer = NULL; item->long_timer = NULL;
} }
evas_object_smart_callback_call(item->wd->self, "drag", item); evas_object_smart_callback_call(item->wd->self, SIG_DRAG, item);
return; return;
} }
if ((!item->down) || (item->wd->longpressed)) if ((!item->down) || (item->wd->longpressed))
@ -756,13 +793,13 @@ _mouse_move(void *data,
const char *left_drag, *right_drag; const char *left_drag, *right_drag;
if (!elm_widget_mirrored_get(item->wd->self)) if (!elm_widget_mirrored_get(item->wd->self))
{ {
left_drag = "drag,start,left"; left_drag = SIG_DRAG_START_LEFT;
right_drag = "drag,start,right"; right_drag = SIG_DRAG_START_RIGHT;
} }
else else
{ {
left_drag = "drag,start,right"; left_drag = SIG_DRAG_START_RIGHT;
right_drag = "drag,start,left"; right_drag = SIG_DRAG_START_LEFT;
} }
item->dragging = 1; item->dragging = 1;
@ -776,7 +813,7 @@ _mouse_move(void *data,
if (dy < 0) if (dy < 0)
{ {
if (ady > adx) if (ady > adx)
evas_object_smart_callback_call(item->wd->self, "drag,start,up", evas_object_smart_callback_call(item->wd->self, SIG_DRAG_START_UP,
item); item);
else else
{ {
@ -789,7 +826,7 @@ _mouse_move(void *data,
{ {
if (ady > adx) if (ady > adx)
evas_object_smart_callback_call(item->wd->self, evas_object_smart_callback_call(item->wd->self,
"drag,start,down", item); SIG_DRAG_START_DOWN, item);
else else
{ {
if (dx < 0) if (dx < 0)
@ -838,7 +875,7 @@ _mouse_down(void *data,
_item_hilight(item); _item_hilight(item);
if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK) if (ev->flags & EVAS_BUTTON_DOUBLE_CLICK)
{ {
evas_object_smart_callback_call(item->wd->self, "clicked,double", item); evas_object_smart_callback_call(item->wd->self, SIG_CLICKED_DOUBLE, item);
evas_object_smart_callback_call(item->wd->self, "clicked", item); // will be removed evas_object_smart_callback_call(item->wd->self, "clicked", item); // will be removed
} }
if (item->long_timer) ecore_timer_del(item->long_timer); if (item->long_timer) ecore_timer_del(item->long_timer);
@ -871,7 +908,7 @@ _mouse_up(void *data,
if (item->dragging) if (item->dragging)
{ {
item->dragging = EINA_FALSE; item->dragging = EINA_FALSE;
evas_object_smart_callback_call(item->wd->self, "drag,stop", item); evas_object_smart_callback_call(item->wd->self, SIG_DRAG_STOP, item);
dragged = EINA_TRUE; dragged = EINA_TRUE;
} }
if (item->wd->on_hold) if (item->wd->on_hold)
@ -1165,7 +1202,7 @@ _item_place(Elm_Gengrid_Item *item,
{ {
_item_realize(item); _item_realize(item);
if (!was_realized) if (!was_realized)
evas_object_smart_callback_call(item->wd->self, "realized", item); evas_object_smart_callback_call(item->wd->self, SIG_REALIZED, item);
evas_object_move(item->base.view, x, y); evas_object_move(item->base.view, x, y);
evas_object_resize(item->base.view, item->wd->item_width, evas_object_resize(item->base.view, item->wd->item_width,
item->wd->item_height); item->wd->item_height);
@ -1174,7 +1211,7 @@ _item_place(Elm_Gengrid_Item *item,
{ {
_item_unrealize(item); _item_unrealize(item);
if (was_realized) if (was_realized)
evas_object_smart_callback_call(item->wd->self, "unrealized", item); evas_object_smart_callback_call(item->wd->self, SIG_UNREALIZED, item);
} }
} }
@ -1237,7 +1274,7 @@ call:
if (item->func.func) if (item->func.func)
item->func.func((void *)item->func.data, item->wd->self, item); item->func.func((void *)item->func.data, item->wd->self, item);
if (!item->delete_me) if (!item->delete_me)
evas_object_smart_callback_call(item->wd->self, "selected", item); evas_object_smart_callback_call(item->wd->self, SIG_SELECTED, item);
item->walking--; item->walking--;
item->wd->walking--; item->wd->walking--;
if ((item->wd->clear_me) && (!item->wd->walking)) if ((item->wd->clear_me) && (!item->wd->walking))
@ -1260,7 +1297,7 @@ _item_unselect(Elm_Gengrid_Item *item)
{ {
item->selected = EINA_FALSE; item->selected = EINA_FALSE;
item->wd->selected = eina_list_remove(item->wd->selected, item); item->wd->selected = eina_list_remove(item->wd->selected, item);
evas_object_smart_callback_call(item->wd->self, "unselected", item); evas_object_smart_callback_call(item->wd->self, SIG_UNSELECTED, item);
} }
} }
@ -1433,7 +1470,7 @@ _pan_calculate(Evas_Object *obj)
if (!cx) cy++; if (!cx) cy++;
} }
} }
evas_object_smart_callback_call(sd->wd->self, "changed", NULL); evas_object_smart_callback_call(sd->wd->self, SIG_CHANGED, NULL);
} }
static void static void
@ -1492,7 +1529,7 @@ _scr_drag_start(void *data,
Evas_Object *obj __UNUSED__, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__) void *event_info __UNUSED__)
{ {
evas_object_smart_callback_call(data, "scroll,drag,start", NULL); evas_object_smart_callback_call(data, SIG_SCROLL_DRAG_START, NULL);
} }
static void static void
@ -1500,7 +1537,7 @@ _scr_drag_stop(void *data,
Evas_Object *obj __UNUSED__, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__) void *event_info __UNUSED__)
{ {
evas_object_smart_callback_call(data, "scroll,drag,stop", NULL); evas_object_smart_callback_call(data, SIG_SCROLL_DRAG_STOP, NULL);
} }
static void static void
@ -1508,7 +1545,7 @@ _scr_scroll(void *data,
Evas_Object *obj __UNUSED__, Evas_Object *obj __UNUSED__,
void *event_info __UNUSED__) void *event_info __UNUSED__)
{ {
evas_object_smart_callback_call(data, "scroll", NULL); evas_object_smart_callback_call(data, SIG_SCROLL, NULL);
} }
/** /**
@ -1570,6 +1607,8 @@ elm_gengrid_add(Evas_Object *parent)
evas_object_smart_callback_add(obj, "scroll-freeze-on", _freeze_on, obj); evas_object_smart_callback_add(obj, "scroll-freeze-on", _freeze_on, obj);
evas_object_smart_callback_add(obj, "scroll-freeze-off", _freeze_off, obj); evas_object_smart_callback_add(obj, "scroll-freeze-off", _freeze_off, obj);
evas_object_smart_callbacks_descriptions_set(obj, _signals);
if (!smart) if (!smart)
{ {
static Evas_Smart_Class sc; static Evas_Smart_Class sc;