genlist: add SIG_CHANGED("changed") smart callback in genlist.
authorSangHyeon Lee <sh10233.lee@samsung.com>
Wed, 29 Jul 2015 20:20:40 +0000 (22:20 +0200)
committerCedric BAIL <cedric@osg.samsung.com>
Tue, 4 Aug 2015 13:21:39 +0000 (15:21 +0200)
Summary:
SIG_CAHANGED notify user to
genlist is now changed their items and properties and all
calculation is finished, so user can get correct values in
that callback.

This SIG_CHANGED smart callback already supported in gengrid.

Test Plan:
N/A
This patch is addition of new smart callback.

Reviewers: raster, seoz, singh.amitesh

Subscribers: Hermet, cedric, eagleeye

Differential Revision: https://phab.enlightenment.org/D2773

Signed-off-by: Cedric BAIL <cedric@osg.samsung.com>
src/bin/test_genlist.c
src/lib/elm_genlist.c

index e519681..01b5311 100644 (file)
@@ -273,6 +273,12 @@ _gl_longpress(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_
 }
 
 static void
+_gl_changed(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info)
+{
+   printf("changed %p\n", event_info);
+}
+
+static void
 _cleanup_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED)
 {
    free(data);
@@ -316,6 +322,7 @@ test_genlist(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_i
    evas_object_smart_callback_add(gl, "clicked,double", _gl_double_clicked, NULL);
    evas_object_smart_callback_add(gl, "clicked,right", _gl_right_clicked, NULL);
    evas_object_smart_callback_add(gl, "longpressed", _gl_longpress, NULL);
+   evas_object_smart_callback_add(gl, "changed", _gl_changed, NULL);
    // FIXME: This causes genlist to resize the horiz axis very slowly :(
    // Reenable this and resize the window horizontally, then try to resize it back
    //elm_genlist_mode_set(gl, ELM_LIST_LIMIT);
index b284117..7f223b2 100644 (file)
@@ -92,7 +92,8 @@
     cmd(SIG_ITEM_FOCUSED, "item,focused", "") \
     cmd(SIG_ITEM_UNFOCUSED, "item,unfocused", "") \
     cmd(SIG_PRESSED, "pressed", "") \
-    cmd(SIG_RELEASED, "released", "")
+    cmd(SIG_RELEASED, "released", "") \
+    cmd(SIG_CHANGED, "changed", "")
 
 ELM_PRIV_GENLIST_SIGNALS(ELM_PRIV_STATIC_VARIABLE_DECLARE);
 
@@ -2441,6 +2442,8 @@ _elm_genlist_pan_evas_object_smart_calculate(Eo *obj, Elm_Genlist_Pan_Data *psd)
 
    evas_event_thaw(evas_object_evas_get(obj));
    evas_event_thaw_eval(evas_object_evas_get(obj));
+
+   evas_object_smart_callback_call(sd->obj, SIG_CHANGED, NULL);
 }
 
 EOLIAN static void