rimmed pushed a commit to branch master.

http://git.enlightenment.org/tools/eflete.git/commit/?id=2c9b5b0c92a76e72cb93e2ddf169351b68660aca

commit 2c9b5b0c92a76e72cb93e2ddf169351b68660aca
Author: Viacheslav Reutskyi <reutskiy....@gmail.com>
Date:   Sat Feb 13 10:21:11 2016 +0200

    demo_group: update the caption style for part lst in the demo mode
---
 src/bin/ui/demo_group.c | 92 +++++++++++++++++++++++++++++++------------------
 1 file changed, 59 insertions(+), 33 deletions(-)

diff --git a/src/bin/ui/demo_group.c b/src/bin/ui/demo_group.c
index 9c9093b..2340731 100644
--- a/src/bin/ui/demo_group.c
+++ b/src/bin/ui/demo_group.c
@@ -38,20 +38,33 @@ typedef struct
    Eina_List *signal_list;
 } Part_Demo_List;
 
-static Elm_Genlist_Item_Class *itc_group;
+static Elm_Genlist_Item_Class *itc_swallow, *itc_text, *itc_signal;
 static Elm_Genlist_Item_Class *itc_part;
 static Elm_Genlist_Item_Class *itc_part_selected;
 static Elm_Genlist_Item_Class *itc_signals;
 
-static char *
-_group_label_get(void *data,
-                Evas_Object *obj __UNUSED__,
-                const char *pr __UNUSED__)
-{
-   assert(data);
-
-   return strdup(data);
+#define CAPTION_GENLIST_ITEM_TEXT_GET(TYPE, TITLE) \
+static char * \
+_##TYPE##_label_cb(void *data, \
+                   Evas_Object *obj __UNUSED__, \
+                   const char *part) \
+{ \
+   assert(data != NULL); \
+   char buf[5]; /* I'm really think that 5 symbol for parts count enough */ \
+   Part_Demo_List *pl = (Part_Demo_List *)data; \
+   if (!strcmp(part, "elm.text")) \
+     return strdup(TITLE); \
+   if (!strcmp(part, "elm.text.end")) \
+     { \
+        snprintf(buf, 5, "%d", eina_list_count(pl->TYPE##_list)); \
+        return strdup(buf); \
+     } \
+   return NULL; \
 }
+CAPTION_GENLIST_ITEM_TEXT_GET(swallow, "Swallows")
+CAPTION_GENLIST_ITEM_TEXT_GET(text, "Texts")
+CAPTION_GENLIST_ITEM_TEXT_GET(signal, "Signals")
+
 static char *
 _part_label_get(void *data,
                 Evas_Object *obj __UNUSED__,
@@ -228,12 +241,25 @@ demo_group_add(Group *group)
 
    pl->group = group;
    /* add some genlists */
-   if (!itc_group)
+   if (!itc_swallow)
+     {
+        itc_swallow = elm_genlist_item_class_new();
+        itc_swallow->item_style = "caption";
+        itc_swallow->func.text_get = _swallow_label_cb;
+     }
+   if (!itc_text)
+     {
+        itc_text = elm_genlist_item_class_new();
+        itc_text->item_style = "caption";
+        itc_text->func.text_get = _text_label_cb;
+     }
+   if (!itc_signal)
      {
-        itc_group = elm_genlist_item_class_new();
-        itc_group->item_style = "part";
-        itc_group->func.text_get = _group_label_get;
+        itc_signal = elm_genlist_item_class_new();
+        itc_signal->item_style = "caption";
+        itc_signal->func.text_get = _signal_label_cb;
      }
+
    if (!itc_part)
      {
         itc_part = elm_genlist_item_class_new();
@@ -269,26 +295,26 @@ demo_group_add(Group *group)
    evas_object_data_set(pl->genlist, DEMO_GROUP_DATA, pl);
 
    pl->it_swallow = elm_genlist_item_append(pl->genlist,
-                                        itc_group,
-                                        eina_stringshare_add("Swallows"),
-                                        NULL,
-                                        ELM_GENLIST_ITEM_TREE,
-                                        NULL,
-                                        NULL);
-   pl->it_text = elm_genlist_item_append(pl->genlist,
-                                     itc_group,
-                                     eina_stringshare_add("Text"),
-                                     NULL,
-                                     ELM_GENLIST_ITEM_TREE,
-                                     NULL,
-                                     NULL);
-   pl->it_signal = elm_genlist_item_append(pl->genlist,
-                                           itc_group,
-                                           eina_stringshare_add("Signals"),
-                                           NULL,
-                                           ELM_GENLIST_ITEM_TREE,
-                                           NULL,
-                                           NULL);
+                                            itc_swallow,
+                                            pl,
+                                            NULL,
+                                            ELM_GENLIST_ITEM_TREE,
+                                            NULL,
+                                            NULL);
+   pl->it_text =    elm_genlist_item_append(pl->genlist,
+                                            itc_text,
+                                            pl,
+                                            NULL,
+                                            ELM_GENLIST_ITEM_TREE,
+                                            NULL,
+                                            NULL);
+   pl->it_signal =  elm_genlist_item_append(pl->genlist,
+                                            itc_signal,
+                                            pl,
+                                            NULL,
+                                            ELM_GENLIST_ITEM_TREE,
+                                            NULL,
+                                            NULL);
 
    EINA_LIST_FOREACH(pl->group->parts, l, part)
      {

-- 


Reply via email to