Add callback when drag start in item containers
authorDaniel Zaoui <daniel.zaoui@samsung.com>
Thu, 28 Nov 2013 14:05:28 +0000 (16:05 +0200)
committerDaniel Zaoui <daniel.zaoui@samsung.com>
Thu, 28 Nov 2013 14:24:01 +0000 (16:24 +0200)
src/lib/elm_cnp.c
src/lib/elm_cnp.h

index 5baeac4d9373dbf02dcc2604477d4e49bff2ec28..8cc5e59c17f39de0ccb59722d84f55521774f003 100644 (file)
@@ -3950,6 +3950,7 @@ _cont_obj_drag_start(void *data)
    Item_Container_Drag_Info *st = data;
    st->tm = NULL;
    Elm_Drag_User_Info *info = &st->user_info;
+   if (info->dragstart) info->dragstart(info->startcbdata, st->obj);
    elm_widget_scroll_freeze_push(st->obj);
    evas_object_event_callback_del_full
       (st->obj, EVAS_CALLBACK_MOUSE_MOVE, _cont_obj_mouse_move, st);
index efcb256e73d7ff9b9518d7a0007be9b8b64c926e..a24deb98ec0a3d49ea0d857f43ecd2123f2b854d 100644 (file)
@@ -187,6 +187,15 @@ typedef void (*Elm_Drag_Accept) (void *data, Evas_Object *obj, Eina_Bool doaccep
  */
 typedef void (*Elm_Drag_Pos) (void *data, Evas_Object *obj, Evas_Coord x, Evas_Coord y, Elm_Xdnd_Action action);
 
+/**
+ * Callback called when a drag starts from an item container
+ *
+ * @param data Application specific data
+ * @param obj The object where the drag started
+ * @since 1.8
+ */
+typedef void (*Elm_Drag_Start) (void *data, Evas_Object *obj);
+
 /**
  * @brief Set copy data for a widget.
  *
@@ -424,6 +433,8 @@ struct _Elm_Drag_User_Info
    Elm_Xdnd_Action action;
    Elm_Drag_Icon_Create_Cb createicon;
    void *createdata;
+   Elm_Drag_Start dragstart;
+   void *startcbdata;
    Elm_Drag_Pos dragpos;
    void *dragdata;
    Elm_Drag_Accept acceptcb;