rimmed pushed a commit to branch master.

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

commit edb89738f40f53a8cacfa0f90778104e303dbf18
Author: Vitalii Vorobiov <[email protected]>
Date:   Wed Jan 18 19:20:03 2017 +0200

    image_manager: add groups
    
    image, image sets and vectors are different things
---
 src/bin/ui/image_manager.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 46 insertions(+)

diff --git a/src/bin/ui/image_manager.c b/src/bin/ui/image_manager.c
index 8873cd4..a7c0a0a 100644
--- a/src/bin/ui/image_manager.c
+++ b/src/bin/ui/image_manager.c
@@ -77,12 +77,17 @@ struct _Image_Manager
    } bg_switcher;
 #endif
    Search_Data image_search_data;
+
+   Elm_Object_Item *image_set_header;
+   Elm_Object_Item *image_header;
+   Elm_Object_Item *vector_header;
 };
 
 static Eina_Bool _on_image_done(void *data __UNUSED__, Evas_Object *obj 
__UNUSED__, void *event_info);
 static void _image_info_setup(const Image_Item* it);
 
 static Image_Manager mng;
+static Elm_Gengrid_Item_Class *gic_group = NULL;
 static Elm_Gengrid_Item_Class *gic = NULL;
 static Elm_Gengrid_Item_Class *gic_set = NULL;
 
@@ -448,6 +453,21 @@ _grid_del(void *data,
    free(it);
 }
 
+static char *
+_grid_group_label_get(void *data,
+                      Evas_Object *obj __UNUSED__,
+                      const char  *part __UNUSED__)
+{
+   return strdup(data);
+}
+
+static void
+_grid_group_del(void *data,
+                Evas_Object *obj __UNUSED__)
+{
+   eina_stringshare_del(data);
+}
+
 static void
 _image_info_setup(const Image_Item* it)
 {
@@ -881,9 +901,15 @@ _image_manager_init(void)
    int counter = 0;
    Image2 *res = NULL;
    Image_Set2 *image_set = NULL;
+   Eina_Stringshare *name;
 
    images = ap.project->RM.images;
 
+   /*
+    * Add group image
+    */
+   name = eina_stringshare_add(_("Image"));
+   mng.image_header = elm_gengrid_item_append(mng.gengrid, gic_group, name, 
NULL, NULL);
    if (images)
      {
         EINA_LIST_FOREACH(images, l, res)
@@ -901,6 +927,11 @@ _image_manager_init(void)
          elm_gengrid_item_bring_in(elm_gengrid_first_item_get(mng.gengrid), 
ELM_GENGRID_ITEM_SCROLLTO_TOP);
      }
 
+   /*
+    * Add group image-set
+    */
+   name = eina_stringshare_add(_("Image Set"));
+   mng.image_set_header = elm_gengrid_item_append(mng.gengrid, gic_group, 
name, NULL, NULL);
    counter = 0;
    EINA_LIST_FOREACH(ap.project->RM.image_sets, l, image_set)
      {
@@ -915,6 +946,12 @@ _image_manager_init(void)
         elm_gengrid_item_append(mng.gengrid, gic_set, it, _grid_sel_cb, NULL);
      }
 
+   /*
+    * Add group vectors
+    */
+   name = eina_stringshare_add(_("Vectors"));
+   mng.vector_header = elm_gengrid_item_append(mng.gengrid, gic_group, name, 
NULL, NULL);
+
    return true;
 }
 
@@ -1024,6 +1061,15 @@ image_manager_add(void)
         gic_set->func.del = _grid_del;
      }
 
+   if (!gic_group)
+     {
+        gic_group = elm_gengrid_item_class_new();
+        gic_group->item_style = "group_index";
+        gic_group->func.text_get = _grid_group_label_get;
+        gic_group->func.content_get = NULL;
+        gic_group->func.del = _grid_group_del;
+     }
+
    mng.gengrid = elm_gengrid_add(mng.layout);
    elm_object_part_content_set(mng.layout, "elm.swallow.list", mng.gengrid);
    elm_gengrid_item_size_set(mng.gengrid, ITEM_WIDTH, ITEM_HEIGHT);

-- 


Reply via email to