rimmed pushed a commit to branch master.

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

commit f4672f5e3793053c46a9a6d66fee8bd01877611a
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Fri Nov 27 20:12:43 2015 +0200

    popup: multiple image add implementation and use it in tweens
---
 src/bin/ui/popup.c          | 28 ++++++++++++++++++----------
 src/bin/ui/property_group.c | 30 +++++++++++++++---------------
 2 files changed, 33 insertions(+), 25 deletions(-)

diff --git a/src/bin/ui/popup.c b/src/bin/ui/popup.c
index b56536c..66b981e 100644
--- a/src/bin/ui/popup.c
+++ b/src/bin/ui/popup.c
@@ -22,6 +22,7 @@
 static Popup_Button btn_pressed;
 static Evas_Object *popup;
 static Evas_Object *helper;
+static Evas_Object *gengrid;
 static Evas_Object *fs;
 static Helper_Done_Cb dismiss_func;
 static void* func_data;
@@ -383,19 +384,25 @@ popup_fileselector_image_helper(const char *title, 
Evas_Object *follow_up, const
 
 static void
 _done_image(void *data,
-            Evas_Object *obj,
+            Evas_Object *obj __UNUSED__,
             void *event_info __UNUSED__)
 {
    Eina_Bool res = true;
    Item *item = NULL;
-   const Eina_List* sel_list;
+   const Eina_List *sel_list, *l;
+   Eina_List *ret_list = NULL;
+   Elm_Object_Item *item_list;
 
    if (dismiss_func)
      {
-        TODO("Make multiselect for tweens and remake gengrid because of that?")
-        sel_list = elm_gengrid_selected_items_get(obj);
-        item = elm_object_item_data_get(eina_list_data_get(sel_list));
-        res = ((Helper_Done_Cb)dismiss_func)(func_data, obj, (char 
*)item->image_name);
+        sel_list = elm_gengrid_selected_items_get(gengrid);
+        EINA_LIST_FOREACH(sel_list, l, item_list)
+          {
+             item = elm_object_item_data_get(item_list);
+             ret_list = eina_list_append(ret_list, 
eina_stringshare_add(item->image_name));
+          }
+        res = ((Helper_Done_Cb)dismiss_func)(func_data, obj, ret_list);
+        eina_list_free(ret_list);
      }
 
    if (res)
@@ -421,7 +428,7 @@ _grid_del(void *data,
 }
 
 Eina_Bool
-_image_gengrid_init(Evas_Object *gengrid)
+_image_gengrid_init()
 {
    Eina_List *l = NULL;
    Item *it = NULL;
@@ -507,7 +514,7 @@ popup_gengrid_image_helper(const char *title, Evas_Object 
*follow_up,
                            Helper_Done_Cb func, void *data,
                            Eina_Bool multi)
 {
-   Evas_Object *gengrid, *entry, *icon, *button;
+   Evas_Object *entry, *icon, *button;
 
    dismiss_func = func;
    func_data = data;
@@ -529,6 +536,7 @@ popup_gengrid_image_helper(const char *title, Evas_Object 
*follow_up,
 
         BUTTON_ADD(fs, button, _("Ok"))
         elm_object_part_content_set(helper, "elm.swallow.ok", button);
+        evas_object_smart_callback_add(button, "clicked", _done_image, 
follow_up);
         evas_object_show(button);
      }
    else
@@ -536,13 +544,13 @@ popup_gengrid_image_helper(const char *title, Evas_Object 
*follow_up,
         elm_gengrid_multi_select_set(gengrid, false);
         elm_gengrid_multi_select_mode_set(gengrid,
                                           
ELM_OBJECT_MULTI_SELECT_MODE_WITH_CONTROL);
+        evas_object_smart_callback_add(gengrid, "clicked,double", _done_image, 
follow_up);
      }
    elm_gengrid_item_size_set(gengrid, ITEM_WIDTH, ITEM_HEIGHT);
    elm_gengrid_align_set(gengrid, 0.0, 0.0);
    elm_scroller_policy_set(gengrid, ELM_SCROLLER_POLICY_OFF,
                            ELM_SCROLLER_POLICY_OFF);
    elm_object_part_content_set(fs, "eflete.swallow.genlist", gengrid);
-   evas_object_smart_callback_add(gengrid, "clicked,double", _done_image, 
follow_up);
 
    if (!gic)
      {
@@ -553,7 +561,7 @@ popup_gengrid_image_helper(const char *title, Evas_Object 
*follow_up,
         gic->func.del = _grid_del;
      }
 
-   _image_gengrid_init(gengrid);
+   _image_gengrid_init();
 
    ENTRY_ADD(fs, entry, true);
    elm_object_part_text_set(entry, "guide", _("Search"));
diff --git a/src/bin/ui/property_group.c b/src/bin/ui/property_group.c
index c497dae..b606c7b 100644
--- a/src/bin/ui/property_group.c
+++ b/src/bin/ui/property_group.c
@@ -2850,14 +2850,17 @@ _on_image_editor_done(void *data,
                       Evas_Object *obj __UNUSED__,
                       void *event_info)
 {
-   Group_Prop_Data *pd = (Group_Prop_Data *)data;
-
    const char *value;
-   const char *selected = (const char *)event_info;
+   Eina_List *list_selected = (Eina_List *)event_info;
+   const char *selected;
 
-   if (!selected) return false;
+   Group_Prop_Data *pd = (Group_Prop_Data *)data;
+
+   if (!list_selected) return false;
    value = elm_entry_entry_get(pd->attributes.state_image.image);
 
+   selected = eina_list_data_get(list_selected);
+
    if (strcmp(value, selected) == 0) return false;
    elm_entry_entry_set(pd->attributes.state_image.image, selected);
 
@@ -2920,30 +2923,27 @@ _on_image_editor_tween_done(void *data,
                             void *event_info)
 {
    Evas_Object *tween_list = (Evas_Object *)data;
-   const char *selected = (const char *)event_info;
-//   Eina_List *selected = (Eina_List *)ei;
-//   Eina_List *l = NULL;
-//   const char *name = NULL;
+   Eina_List *selected = (Eina_List *)event_info;
+   Eina_List *l = NULL;
+   const char *name = NULL;
    Group_Prop_Data *pd = evas_object_data_get(tween_list, GROUP_PROP_DATA);
 
    assert(pd != NULL);
 
    if (!selected) return false;
 
-//   EINA_LIST_FOREACH(selected, l, name)
-//     {
+   EINA_LIST_FOREACH(selected, l, name)
+     {
         if (edje_edit_state_tween_add(pd->group->edit_object, pd->part->name,
                                       pd->part->current_state->parsed_name,
-                                      pd->part->current_state->parsed_val, 
selected))
+                                      pd->part->current_state->parsed_val, 
name))
           {
              elm_gengrid_item_append(tween_list, _itc_tween,
-                                     eina_stringshare_add(selected), NULL, 
NULL);
+                                     eina_stringshare_add(name), NULL, NULL);
              //project_changed(false);
           }
-//     }
-   elm_frame_collapse_go(pd->attributes.state_image.tween, false);
+     }
    return true;
-//   edje_edit_string_list_free(selected);
 }
 
 static void

-- 


Reply via email to