rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=30fc1322196b914e3bb1677e84513e5457a744a6

commit 30fc1322196b914e3bb1677e84513e5457a744a6
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Fri Jan 8 19:05:36 2016 +0000

    live_gengrid: callbacks for demo are same as in genlist
---
 src/bin/ui/live_view/elementary/live_gengrid.c | 96 ++++++++++++++++++--------
 1 file changed, 69 insertions(+), 27 deletions(-)

diff --git a/src/bin/ui/live_view/elementary/live_gengrid.c 
b/src/bin/ui/live_view/elementary/live_gengrid.c
index ec85666..cfc4220 100644
--- a/src/bin/ui/live_view/elementary/live_gengrid.c
+++ b/src/bin/ui/live_view/elementary/live_gengrid.c
@@ -24,8 +24,21 @@ _on_gengrid_swallow_check(void *data __UNUSED__,
                           Evas_Object *obj __UNUSED__,
                           void *ei __UNUSED__)
 {
-   TODO("Remake on_swallow_check, so that would be used everywhere.")
-   ERR(N_("Complex widgets are not implemented yet."))
+   Demo_Part *part = (Demo_Part *)ei;
+   Evas_Object *object = (Evas_Object *)data;
+   Eina_List *part_list = evas_object_data_get(object, SWALLOW_LIST);
+
+   if (!eina_list_data_find(part_list, part->name))
+     part_list =  eina_list_append(part_list, part);
+   evas_object_data_set(object, SWALLOW_LIST, part_list);
+
+   Elm_Object_Item *item = NULL;
+   item = elm_gengrid_first_item_get(object);
+   while (item)
+     {
+        elm_gengrid_item_update(item);
+        item = elm_gengrid_item_next_get(item);
+     }
 }
 
 static void
@@ -33,30 +46,41 @@ _on_gengrid_text_check(void *data __UNUSED__,
                        Evas_Object *obj __UNUSED__,
                        void *ei __UNUSED__)
 {
-   TODO("Remake on_text_check, so that would be used everywhere.")
-   ERR(N_("Complex widgets are not implemented yet."))
+   Demo_Part *part = (Demo_Part *)ei;
+   Evas_Object *object = (Evas_Object *)data;
+   Eina_List *part_list = evas_object_data_get(object, TEXT_LIST);
+
+   if (!eina_list_data_find(part_list, part->name))
+     part_list =  eina_list_append(part_list, part);
+   evas_object_data_set(object, TEXT_LIST, part_list);
+
+   Elm_Object_Item *item = NULL;
+   item = elm_gengrid_first_item_get(object);
+   while (item)
+     {
+        elm_gengrid_item_update(item);
+        item = elm_gengrid_item_next_get(item);
+     }
 }
 
 static void
 _gengrid_send_signal(void *data,
-                     Evas_Object *obj,
+                     Evas_Object *obj __UNUSED__,
                      void *ei __UNUSED__)
 {
+   Demo_Signal *sig = (Demo_Signal *)ei;
    Elm_Object_Item *item = NULL;
 
    assert(data != NULL);
 
    item = elm_gengrid_first_item_get(data);
-
-   const char *name = evas_object_data_get(obj, SIGNAL_NAME);
-   const char *source = evas_object_data_get(obj, SIGNAL_SOURCE);
-
-   assert(name != NULL);
-   assert(source != NULL);
+   assert(sig != NULL);
+   assert(sig->sig_name != NULL);
+   assert(sig->source_name != NULL);
 
    while (item)
      {
-        elm_object_item_signal_emit(item, name, source);
+        elm_object_item_signal_emit(item, sig->sig_name, sig->source_name);
         item = elm_gengrid_item_next_get(item);
      }
 }
@@ -64,19 +88,18 @@ _gengrid_send_signal(void *data,
 
 /*********** GEN GRID CREATING FUNCTIONS ****************/
 static char *
-_grid_text_get(void        *data,
+_grid_text_get(void *data __UNUSED__,
                Evas_Object *obj,
                const char  *part)
 {
    Eina_List *part_list = evas_object_data_get(obj, TEXT_LIST);
+   Demo_Part *demo_part;
    Eina_List *l = NULL;
-   const char *part_name = NULL;
-   const char *text = (char *) data;
 
-   EINA_LIST_FOREACH(part_list, l, part_name)
+   EINA_LIST_FOREACH(part_list, l, demo_part)
      {
-        if (!strcmp(part_name, part))
-          return strdup(text);
+        if (!strcmp(demo_part->name, part))
+          return strdup(demo_part->text_content);
      }
 
    return NULL;
@@ -88,16 +111,35 @@ _grid_content_get(void *data __UNUSED__,
                   const char  *part)
 {
    Eina_List *part_list = evas_object_data_get(obj, SWALLOW_LIST);
+   Demo_Part *demo_part;
    Eina_List *l = NULL;
-   const char *part_name = NULL;
 
-   EINA_LIST_FOREACH(part_list, l, part_name)
+   EINA_LIST_FOREACH(part_list, l, demo_part)
      {
-        if (!strcmp(part_name, part))
+        if (!strcmp(demo_part->name, part))
           {
-             Evas_Object *rect = evas_object_rectangle_add(obj);
-             evas_object_color_set(rect, HIGHLIGHT_COLOR);
-             return rect;
+             if ((demo_part->swallow_content == CONTENT_NONE) && 
(demo_part->object))
+               demo_part->object = NULL;
+             else if (demo_part->swallow_content != CONTENT_NONE)
+               demo_part->object = object_generate(demo_part, obj);
+
+             if (demo_part->object)
+               {
+                  evas_object_color_set(demo_part->object,
+                                        demo_part->r,
+                                        demo_part->g,
+                                        demo_part->b,
+                                        demo_part->a);
+
+                  evas_object_size_hint_min_set(demo_part->object,
+                                                demo_part->min_w,
+                                                demo_part->min_h);
+                  evas_object_size_hint_max_set(demo_part->object,
+                                                demo_part->max_w,
+                                                demo_part->max_h);
+               }
+
+             return demo_part->object;
           }
      }
 
@@ -167,9 +209,9 @@ widget_gengrid_create(Evas_Object *parent, const Group 
*group)
    item_style = strcmp(group->class, "item") == 0;
    object = _create_gengrid(parent, item_style, group->style);
 
-   evas_object_data_set(object, SWALLOW_FUNC, _on_gengrid_swallow_check);
-   evas_object_data_set(object, TEXT_FUNC, _on_gengrid_text_check);
-   evas_object_data_set(object, SIGNAL_FUNC, _gengrid_send_signal);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, 
_on_gengrid_swallow_check, object);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, 
_on_gengrid_text_check, object);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SIGNAL_SEND, 
_gengrid_send_signal, object);
 
    evas_object_data_set(object, SWALLOW_LIST, swallow_list);
    evas_object_data_set(object, TEXT_LIST, text_list);

-- 


Reply via email to