DnD: Code improvement + variables renaming

Little code improvement
Rename cbdata with dropdata
This commit is contained in:
Daniel Zaoui 2013-10-27 11:27:17 +02:00
parent 23822e1288
commit 579d309cc5
2 changed files with 49 additions and 52 deletions

View File

@ -86,7 +86,7 @@ struct _Dropable
void *enterdata; void *enterdata;
void *leavedata; void *leavedata;
void *posdata; void *posdata;
void *cbdata; void *dropdata;
struct { struct {
Evas_Coord x, y; Evas_Coord x, y;
Eina_Bool in : 1; Eina_Bool in : 1;
@ -280,7 +280,7 @@ static Eina_Bool _x11_elm_drop_target_add (Evas_Object *obj, Elm_
Elm_Drag_State entercb, void *enterdata, Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata, Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Pos poscb, void *posdata, Elm_Drag_Pos poscb, void *posdata,
Elm_Drop_Cb dropcb, void *cbdata); Elm_Drop_Cb dropcb, void *dropdata);
static Eina_Bool _x11_elm_drop_target_del (Evas_Object *obj); static Eina_Bool _x11_elm_drop_target_del (Evas_Object *obj);
static Eina_Bool _x11_elm_selection_selection_has_owner (Evas_Object *obj __UNUSED__); static Eina_Bool _x11_elm_selection_selection_has_owner (Evas_Object *obj __UNUSED__);
@ -784,7 +784,7 @@ _x11_notify_handler_text(X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify
ddata.data = data->data; ddata.data = data->data;
ddata.len = data->length; ddata.len = data->length;
ddata.action = sel->action; ddata.action = sel->action;
dropable->dropcb(dropable->cbdata, dropable->obj, &ddata); dropable->dropcb(dropable->dropdata, dropable->obj, &ddata);
goto end; goto end;
} }
} }
@ -952,7 +952,7 @@ _x11_vcard_receive(X11_Cnp_Selection *sel, Ecore_X_Event_Selection_Notify *notif
ddata.data = data->data; ddata.data = data->data;
ddata.len = data->length; ddata.len = data->length;
ddata.action = sel->action; ddata.action = sel->action;
dropable->dropcb(dropable->cbdata, dropable->obj, &ddata); dropable->dropcb(dropable->dropdata, dropable->obj, &ddata);
ecore_x_dnd_send_finished(); ecore_x_dnd_send_finished();
} }
else if (sel->datacb) else if (sel->datacb)
@ -1490,7 +1490,7 @@ found:
snprintf(entrytag, len + 1, tagstring, savedtypes.imgfile); snprintf(entrytag, len + 1, tagstring, savedtypes.imgfile);
ddata.data = entrytag; ddata.data = entrytag;
cnp_debug("Insert %s\n", (char *)ddata.data); cnp_debug("Insert %s\n", (char *)ddata.data);
if (dropable->dropcb) dropable->dropcb(dropable->cbdata, dropable->obj, &ddata); if (dropable->dropcb) dropable->dropcb(dropable->dropdata, dropable->obj, &ddata);
ecore_x_dnd_send_finished(); ecore_x_dnd_send_finished();
if (savedtypes.imgfile) free(savedtypes.imgfile); if (savedtypes.imgfile) free(savedtypes.imgfile);
savedtypes.imgfile = NULL; savedtypes.imgfile = NULL;
@ -1502,7 +1502,7 @@ found:
cnp_debug("Doing image insert (%s)\n", savedtypes.imgfile); cnp_debug("Doing image insert (%s)\n", savedtypes.imgfile);
ddata.format = ELM_SEL_FORMAT_IMAGE; ddata.format = ELM_SEL_FORMAT_IMAGE;
ddata.data = (char *)savedtypes.imgfile; ddata.data = (char *)savedtypes.imgfile;
dropable->dropcb(dropable->cbdata, dropable->obj, &ddata); dropable->dropcb(dropable->dropdata, dropable->obj, &ddata);
ecore_x_dnd_send_finished(); ecore_x_dnd_send_finished();
ELM_SAFE_FREE(savedtypes.imgfile, free); ELM_SAFE_FREE(savedtypes.imgfile, free);
@ -1803,12 +1803,12 @@ _x11_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drag_State entercb, void *enterdata, Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata, Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Pos poscb, void *posdata, Elm_Drag_Pos poscb, void *posdata,
Elm_Drop_Cb dropcb, void *cbdata) Elm_Drop_Cb dropcb, void *dropdata)
{ {
Dropable *drop, *dropable; Dropable *dropable;
Ecore_X_Window xwin = _x11_elm_widget_xwin_get(obj); Ecore_X_Window xwin = _x11_elm_widget_xwin_get(obj);
Eina_List *item, *l; Eina_List *item, *l;
int first; Eina_Bool first = !drops;
Eina_Bool have_drops = EINA_FALSE; Eina_Bool have_drops = EINA_FALSE;
_x11_elm_cnp_init(); _x11_elm_cnp_init();
@ -1824,44 +1824,41 @@ _x11_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
break; break;
} }
} }
first = (!drops) ? 1 : 0;
EINA_LIST_FOREACH(drops, item, drop) eo_do(obj, eo_base_data_get("__elm_dropable", (void **)&dropable));
if (dropable)
{ {
if (drop->obj == obj) /* Update: Not a new one */
{ dropable->dropcb = dropcb;
/* Update: Not a new one */ dropable->dropdata = dropdata;
drop->dropcb = dropcb; dropable->types = format;
drop->cbdata = cbdata; return EINA_TRUE;
drop->types = format;
return EINA_TRUE;
}
} }
/* Create new drop */ /* Create new drop */
drop = calloc(1, sizeof(Dropable)); dropable = calloc(1, sizeof(Dropable));
if (!drop) return EINA_FALSE; if (!dropable) return EINA_FALSE;
/* FIXME: Check for eina's deranged error method */ /* FIXME: Check for eina's deranged error method */
drops = eina_list_append(drops, drop); drops = eina_list_append(drops, dropable);
if (!drops/* || or other error */) if (!drops/* || or other error */)
{ {
free(drop); free(dropable);
return EINA_FALSE; return EINA_FALSE;
} }
drop->entercb = entercb; dropable->entercb = entercb;
drop->enterdata = enterdata; dropable->enterdata = enterdata;
drop->leavecb = leavecb; dropable->leavecb = leavecb;
drop->leavedata = leavedata; dropable->leavedata = leavedata;
drop->poscb = poscb; dropable->poscb = poscb;
drop->posdata = posdata; dropable->posdata = posdata;
drop->dropcb = dropcb; dropable->dropcb = dropcb;
drop->cbdata = cbdata; dropable->dropdata = dropdata;
drop->types = format; dropable->types = format;
drop->obj = obj; dropable->obj = obj;
eo_do(obj, eo_base_data_set("__elm_dropable", drop, NULL)); eo_do(obj, eo_base_data_set("__elm_dropable", dropable, NULL));
evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL, evas_object_event_callback_add(obj, EVAS_CALLBACK_DEL,
/* I love C and varargs */ /* I love C and varargs */
(Evas_Object_Event_Cb)elm_drop_target_del, (Evas_Object_Event_Cb)elm_drop_target_del,
@ -2108,7 +2105,7 @@ static Eina_Bool _wl_selection_send(void *udata, int type __UNUSED__, void *even
static Eina_Bool _wl_selection_receive(void *udata, int type __UNUSED__, void *event); static Eina_Bool _wl_selection_receive(void *udata, int type __UNUSED__, void *event);
static Eina_Bool _wl_elm_dnd_init(void); static Eina_Bool _wl_elm_dnd_init(void);
static Eina_Bool _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State entercb, void *enterdata, Elm_Drag_State leavecb, void *leavedata, Elm_Drag_Pos poscb, void *posdata, Elm_Drop_Cb dropcb, void *cbdata); static Eina_Bool _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State entercb, void *enterdata, Elm_Drag_State leavecb, void *leavedata, Elm_Drag_Pos poscb, void *posdata, Elm_Drop_Cb dropcb, void *dropdata);
static Eina_Bool _wl_elm_drop_target_del(Evas_Object *obj); static Eina_Bool _wl_elm_drop_target_del(Evas_Object *obj);
static Eina_Bool _wl_elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action action); static Eina_Bool _wl_elm_drag_action_set(Evas_Object *obj, Elm_Xdnd_Action action);
@ -2289,7 +2286,7 @@ _wl_elm_dnd_init(void)
} }
static Eina_Bool static Eina_Bool
_wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State entercb, void *enterdata, Elm_Drag_State leavecb, void *leavedata, Elm_Drag_Pos poscb, void *posdata, Elm_Drop_Cb dropcb, void *cbdata) _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State entercb, void *enterdata, Elm_Drag_State leavecb, void *leavedata, Elm_Drag_Pos poscb, void *posdata, Elm_Drop_Cb dropcb, void *dropdata)
{ {
Dropable *drop; Dropable *drop;
Eina_List *l; Eina_List *l;
@ -2302,7 +2299,7 @@ _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State
if (drop->obj == obj) if (drop->obj == obj)
{ {
drop->dropcb = dropcb; drop->dropcb = dropcb;
drop->cbdata = cbdata; drop->dropdata = dropdata;
drop->types = format; drop->types = format;
return EINA_TRUE; return EINA_TRUE;
} }
@ -2324,7 +2321,7 @@ _wl_elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format, Elm_Drag_State
drop->poscb = poscb; drop->poscb = poscb;
drop->posdata = posdata; drop->posdata = posdata;
drop->dropcb = dropcb; drop->dropcb = dropcb;
drop->cbdata = cbdata; drop->dropdata = dropdata;
drop->types = format; drop->types = format;
drop->obj = obj; drop->obj = obj;
@ -2803,7 +2800,7 @@ _wl_dropable_data_handle(Wl_Cnp_Selection *sel, char *data)
entrytag = alloca(l + 1); entrytag = alloca(l + 1);
snprintf(entrytag, l + 1, tagstring, savedtypes.imgfile); snprintf(entrytag, l + 1, tagstring, savedtypes.imgfile);
sdata.data = entrytag; sdata.data = entrytag;
drop->dropcb(drop->cbdata, drop->obj, &sdata); drop->dropcb(drop->dropdata, drop->obj, &sdata);
ecore_wl_dnd_drag_end(ecore_wl_input_get()); ecore_wl_dnd_drag_end(ecore_wl_input_get());
free(savedtypes.imgfile); free(savedtypes.imgfile);
savedtypes.imgfile = NULL; savedtypes.imgfile = NULL;
@ -2812,7 +2809,7 @@ _wl_dropable_data_handle(Wl_Cnp_Selection *sel, char *data)
{ {
sdata.format = ELM_SEL_FORMAT_IMAGE; sdata.format = ELM_SEL_FORMAT_IMAGE;
sdata.data = (char *)savedtypes.imgfile; sdata.data = (char *)savedtypes.imgfile;
drop->dropcb(drop->cbdata, drop->obj, &sdata); drop->dropcb(drop->dropdata, drop->obj, &sdata);
ecore_wl_dnd_drag_end(ecore_wl_input_get()); ecore_wl_dnd_drag_end(ecore_wl_input_get());
free(savedtypes.imgfile); free(savedtypes.imgfile);
savedtypes.imgfile = NULL; savedtypes.imgfile = NULL;
@ -3014,7 +3011,7 @@ static Eina_Bool _local_elm_drop_target_add(Evas_Object *obj __UNUSED__, Elm_Se
Elm_Drag_State entercb __UNUSED__, void *enterdata __UNUSED__, Elm_Drag_State entercb __UNUSED__, void *enterdata __UNUSED__,
Elm_Drag_State leavecb __UNUSED__, void *leavedata __UNUSED__, Elm_Drag_State leavecb __UNUSED__, void *leavedata __UNUSED__,
Elm_Drag_Pos poscb __UNUSED__, void *posdata __UNUSED__, Elm_Drag_Pos poscb __UNUSED__, void *posdata __UNUSED__,
Elm_Drop_Cb dropcb __UNUSED__, void *cbdata __UNUSED__); Elm_Drop_Cb dropcb __UNUSED__, void *dropdata __UNUSED__);
static Eina_Bool _local_elm_drop_target_del(Evas_Object *obj __UNUSED__); static Eina_Bool _local_elm_drop_target_del(Evas_Object *obj __UNUSED__);
static Eina_Bool _local_elm_drag_start(Evas_Object *obj __UNUSED__, static Eina_Bool _local_elm_drag_start(Evas_Object *obj __UNUSED__,
Elm_Sel_Format format __UNUSED__, Elm_Sel_Format format __UNUSED__,
@ -3129,7 +3126,7 @@ _local_elm_drop_target_add(Evas_Object *obj __UNUSED__,
Elm_Drag_Pos poscb __UNUSED__, Elm_Drag_Pos poscb __UNUSED__,
void *posdata __UNUSED__, void *posdata __UNUSED__,
Elm_Drop_Cb dropcb __UNUSED__, Elm_Drop_Cb dropcb __UNUSED__,
void *cbdata __UNUSED__) void *dropdata __UNUSED__)
{ {
// XXX: implement me // XXX: implement me
_local_elm_cnp_init(); _local_elm_cnp_init();
@ -3382,23 +3379,23 @@ elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drag_State entercb, void *enterdata, Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata, Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Pos poscb, void *posdata, Elm_Drag_Pos poscb, void *posdata,
Elm_Drop_Cb dropcb, void *cbdata) Elm_Drop_Cb dropcb, void *dropdata)
{ {
if (!_elm_cnp_init_count) _elm_cnp_init(); if (!_elm_cnp_init_count) _elm_cnp_init();
#ifdef HAVE_ELEMENTARY_X #ifdef HAVE_ELEMENTARY_X
if (_x11_elm_widget_xwin_get(obj)) if (_x11_elm_widget_xwin_get(obj))
return _x11_elm_drop_target_add(obj, format, entercb, enterdata, return _x11_elm_drop_target_add(obj, format, entercb, enterdata,
leavecb, leavedata, poscb, posdata, leavecb, leavedata, poscb, posdata,
dropcb, cbdata); dropcb, dropdata);
#endif #endif
#ifdef HAVE_ELEMENTARY_WAYLAND #ifdef HAVE_ELEMENTARY_WAYLAND
return _wl_elm_drop_target_add(obj, format, entercb, enterdata, return _wl_elm_drop_target_add(obj, format, entercb, enterdata,
leavecb, leavedata, poscb, posdata, leavecb, leavedata, poscb, posdata,
dropcb, cbdata); dropcb, dropdata);
#endif #endif
return _local_elm_drop_target_add(obj, format, entercb, enterdata, return _local_elm_drop_target_add(obj, format, entercb, enterdata,
leavecb, leavedata, poscb, posdata, leavecb, leavedata, poscb, posdata,
dropcb, cbdata); dropcb, dropdata);
} }
EAPI Eina_Bool EAPI Eina_Bool
@ -3569,7 +3566,7 @@ elm_drop_item_container_add(Evas_Object *obj,
Elm_Drag_State entercb, void *enterdata, Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata, Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Item_Container_Pos poscb, void *posdata, Elm_Drag_Item_Container_Pos poscb, void *posdata,
Elm_Drop_Item_Container_Cb dropcb, void *cbdata) Elm_Drop_Item_Container_Cb dropcb, void *dropdata)
{ {
Item_Container_Drop_Info *st; Item_Container_Drop_Info *st;
@ -3591,7 +3588,7 @@ elm_drop_item_container_add(Evas_Object *obj,
entercb, enterdata, entercb, enterdata,
leavecb, leavedata, leavecb, leavedata,
_elm_item_container_pos_cb, posdata, _elm_item_container_pos_cb, posdata,
_elm_item_container_drop_cb, cbdata); _elm_item_container_drop_cb, dropdata);
return EINA_TRUE; return EINA_TRUE;
} }

View File

@ -291,7 +291,7 @@ EAPI void elm_cnp_selection_loss_callback_set(Evas_Object *obj, Elm_Sel_Type sel
* @param poscb The function to call when the object has a drag over it * @param poscb The function to call when the object has a drag over it
* @param posdata The application data to pass to posdata * @param posdata The application data to pass to posdata
* @param dropcb The function to call when a drop has occurred * @param dropcb The function to call when a drop has occurred
* @param cbdata The application data to pass to dropcb * @param dropdata The application data to pass to dropcb
* @return Returns EINA_TRUE, if successful, or EINA_FALSE if not. * @return Returns EINA_TRUE, if successful, or EINA_FALSE if not.
* *
* @ingroup CopyPaste * @ingroup CopyPaste
@ -302,7 +302,7 @@ EAPI Eina_Bool elm_drop_target_add(Evas_Object *obj, Elm_Sel_Format format,
Elm_Drag_State entercb, void *enterdata, Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata, Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Pos poscb, void *posdata, Elm_Drag_Pos poscb, void *posdata,
Elm_Drop_Cb dropcb, void *cbdata); Elm_Drop_Cb dropcb, void *dropdata);
/** /**
* @brief Deletes the drop target status of an object * @brief Deletes the drop target status of an object
@ -472,7 +472,7 @@ EAPI Eina_Bool elm_drag_item_container_del(Evas_Object *obj);
* @param poscb The function to call when the object has a drag over it * @param poscb The function to call when the object has a drag over it
* @param posdata The application data to pass to posdata * @param posdata The application data to pass to posdata
* @param dropcb The function to call when a drop has occurred * @param dropcb The function to call when a drop has occurred
* @param cbdata The application data to pass to dropcb * @param dropdata The application data to pass to dropcb
* @return Returns EINA_TRUE, if successful, or EINA_FALSE if not. * @return Returns EINA_TRUE, if successful, or EINA_FALSE if not.
* *
* @ingroup CopyPaste * @ingroup CopyPaste
@ -485,7 +485,7 @@ EAPI Eina_Bool elm_drop_item_container_add(Evas_Object *obj,
Elm_Drag_State entercb, void *enterdata, Elm_Drag_State entercb, void *enterdata,
Elm_Drag_State leavecb, void *leavedata, Elm_Drag_State leavecb, void *leavedata,
Elm_Drag_Item_Container_Pos poscb, void *posdata, Elm_Drag_Item_Container_Pos poscb, void *posdata,
Elm_Drop_Item_Container_Cb dropcb, void *cbdata); Elm_Drop_Item_Container_Cb dropcb, void *dropdata);
/** /**
* @brief Removes a container from list of drop tragets. * @brief Removes a container from list of drop tragets.