rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=29b1dcc0cb7692feed870548cc84f2b47129b325

commit 29b1dcc0cb7692feed870548cc84f2b47129b325
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Mon Jan 11 14:34:20 2016 +0000

    live_list: set text and send signal
    
    Swallow as well, just weirdly not working yet :C
---
 src/bin/ui/live_view/elementary/live_list.c | 78 +++++++++++++++++++++--------
 1 file changed, 58 insertions(+), 20 deletions(-)

diff --git a/src/bin/ui/live_view/elementary/live_list.c 
b/src/bin/ui/live_view/elementary/live_list.c
index c379eee..f01d09f 100644
--- a/src/bin/ui/live_view/elementary/live_list.c
+++ b/src/bin/ui/live_view/elementary/live_list.c
@@ -20,43 +20,81 @@
 #include "live_elementary_widgets.h"
 
 static void
-_on_list_swallow_check(void *data __UNUSED__,
-                       Evas_Object *obj __UNUSED__,
-                       void *ei __UNUSED__)
+_on_list_swallow_check(void *data,
+                       Evas_Object *obj,
+                       void *ei)
 {
-   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;
+
+   Elm_Object_Item *item = elm_list_first_item_get(object);
+
+   while (item)
+     {
+        if (part->object)
+          {
+             evas_object_del(part->object);
+             part->object = NULL;
+          }
+
+        if (part->swallow_content != CONTENT_NONE)
+          part->object = object_generate(part, obj);
+
+        if (part->object)
+          {
+             evas_object_color_set(part->object,
+                                   part->r,
+                                   part->g,
+                                   part->b,
+                                   part->a);
+
+             evas_object_size_hint_min_set(part->object,
+                                           part->min_w,
+                                           part->min_h);
+             evas_object_size_hint_max_set(part->object,
+                                           part->max_w,
+                                           part->max_h);
+          }
+        elm_object_item_part_content_set(item, part->name, part->object);
+        item = elm_list_item_next(item);
+     }
 }
 
 static void
-_on_list_text_check(void *data __UNUSED__,
+_on_list_text_check(void *data ,
                     Evas_Object *obj __UNUSED__,
-                    void *ei __UNUSED__)
+                    void *ei)
 {
-   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;
+
+   Elm_Object_Item *item = elm_list_first_item_get(object);
+
+   while (item)
+     {
+        elm_object_item_part_text_set(item, part->name, part->text_content);
+        item = elm_list_item_next(item);
+     }
 }
 
 static void
 _list_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_list_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_list_item_next(item);
      }
 }
@@ -83,9 +121,9 @@ widget_list_create(Evas_Object *parent, const Group *group)
    else
      elm_list_mode_set(object, ELM_LIST_SCROLL);
 
-   evas_object_data_set(object, SWALLOW_FUNC, _on_list_swallow_check);
-   evas_object_data_set(object, TEXT_FUNC, _on_list_text_check);
-   evas_object_data_set(object, SIGNAL_FUNC, _list_send_signal);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SWALLOW_SET, 
_on_list_swallow_check, object);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_TEXT_SET, 
_on_list_text_check, object);
+   evas_object_smart_callback_add(ap.win, SIGNAL_DEMO_SIGNAL_SEND, 
_list_send_signal, object);
 
    elm_object_style_set(object, group->style);
 

-- 


Reply via email to