rimmed pushed a commit to branch master.

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

commit 53614760bb2736efb8762c0cad63560c798afc28
Author: Vitalii Vorobiov <vi.vorob...@samsung.com>
Date:   Mon Nov 9 16:48:26 2015 +0200

    property_image: usage_info frame and fill with content
---
 src/bin/ui/property_image.c | 104 +++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 103 insertions(+), 1 deletion(-)

diff --git a/src/bin/ui/property_image.c b/src/bin/ui/property_image.c
index d3098a4..11c3ac0 100644
--- a/src/bin/ui/property_image.c
+++ b/src/bin/ui/property_image.c
@@ -34,6 +34,12 @@
    Image_Prop_Data *pd = evas_object_data_get(property, IMAGE_PROP_DATA); \
    assert(pd != NULL);
 
+typedef struct _Search_Data Search_Data;
+struct _Search_Data
+{
+   Evas_Object *search_entry;
+   Elm_Object_Item *last_item_found;
+};
 struct _Image_Prop_Data
 {
    Evas_Object *box;
@@ -50,6 +56,10 @@ struct _Image_Prop_Data
    Evas_Object *usage_list;
    Evas_Object *info_frame;
 
+   Search_Data usage_search_data;
+   Evas_Object *usage_genlist;
+   Evas_Object *usage_frame;
+
    Eina_Stringshare *selected_image;
 };
 typedef struct _Image_Prop_Data Image_Prop_Data;
@@ -222,11 +232,93 @@ _on_image_selected(void *data,
      }
 }
 
+ITEM_SEARCH_FUNC(genlist, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE, NULL)
+static void
+_on_usage_search_entry_changed_cb(void *data,
+                                  Evas_Object *obj __UNUSED__,
+                                  void *event_info __UNUSED__)
+{
+   Image_Prop_Data *pd = data;
+
+   assert(pd != NULL);
+
+   _genlist_item_search(pd->usage_genlist,
+                        &(pd->usage_search_data),
+                        pd->usage_search_data.last_item_found);
+}
+static void
+_search_next_genlist_item_cb(void *data,
+                             Evas_Object *obj __UNUSED__,
+                             void *event_info __UNUSED__)
+{
+   Image_Prop_Data *pd = data;
+   Elm_Object_Item *start_from = NULL;
+
+   assert(pd != NULL);
+
+   if (pd->usage_search_data.last_item_found)
+     {
+        start_from =
+           elm_genlist_item_next_get(pd->usage_search_data.last_item_found);
+     }
+
+   _genlist_item_search(pd->usage_genlist,
+                        &(pd->usage_search_data), start_from);
+}
+static inline Evas_Object *
+_image_editor_search_field_create(Evas_Object *parent)
+{
+   Evas_Object *entry, *icon;
+
+   assert(parent != NULL);
+
+   ENTRY_ADD(parent, entry, true);
+   elm_object_part_text_set(entry, "guide", _("Search"));
+   ICON_STANDARD_ADD(entry, icon, true, "search");
+   elm_object_part_content_set(entry, "elm.swallow.end", icon);
+   return entry;
+}
+static Evas_Object *
+_image_usage_layout_create(Image_Prop_Data *pd)
+{
+   Evas_Object *layout = NULL;
+   Evas_Object *genlist = NULL;
+   Evas_Object *entry = NULL;
+   Evas_Object *parent = NULL;
+
+   assert(pd != NULL);
+   parent = pd->usage_frame;
+
+   layout = elm_layout_add(parent);
+   elm_layout_theme_set(layout, "layout", "image_editor", "usage_info");
+   evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_show(layout);
+
+   genlist = elm_genlist_add(layout);
+   evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, 
EVAS_HINT_EXPAND);
+   evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
+   evas_object_show(genlist);
+   elm_object_part_content_set(layout, "eflete.swallow.genlist", genlist);
+   pd->usage_genlist = genlist;
+
+   entry = _image_editor_search_field_create(layout);
+   elm_object_part_content_set(layout, "eflete.swallow.search_line", entry);
+   evas_object_smart_callback_add(entry, "changed",
+                                  _on_usage_search_entry_changed_cb, pd);
+   evas_object_smart_callback_add(entry, "activated",
+                                  _search_next_genlist_item_cb, pd);
+   pd->usage_search_data.search_entry = entry;
+   pd->usage_search_data.last_item_found = NULL;
+   evas_object_hide(layout);
+   return layout;
+}
+
 Evas_Object *
 ui_property_image_add(Evas_Object *parent)
 {
    Image_Prop_Data *pd;
-   Evas_Object *item, *box;
+   Evas_Object *item, *box, *layout;
 
    assert(parent != NULL);
 
@@ -269,6 +361,16 @@ ui_property_image_add(Evas_Object *parent)
    elm_object_content_set(pd->info_frame, box);
    elm_box_pack_end(pd->box, pd->info_frame);
 
+   /* Frame with usage */
+   FRAME_PROPERTY_ADD(pd->box, pd->usage_frame, true, _("Usage"), pd->box)
+   BOX_ADD(pd->info_frame, box, false, false);
+   elm_box_align_set(box, 0.5, 0.0);
+
+   layout = _image_usage_layout_create(pd);
+
+   elm_object_content_set(pd->usage_frame, layout);
+   elm_box_pack_end(pd->box, pd->usage_frame);
+
    evas_object_smart_callback_add(ap.win, SIGNAL_IMAGE_SELECTED, 
_on_image_selected, pd->box);
 
    return pd->box;

-- 


Reply via email to