rimmed pushed a commit to branch master.

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

commit 2235b95f3394f2a59e121e80f9cfa8a93ab7d0a0
Author: Andrii Kroitor <an.kroi...@samsung.com>
Date:   Thu Feb 4 15:33:02 2016 +0200

    group_navigator: move part type selection from menu to combobox
---
 src/bin/ui/group_navigator.c | 82 +++++++++++++++++++++++---------------------
 1 file changed, 42 insertions(+), 40 deletions(-)

diff --git a/src/bin/ui/group_navigator.c b/src/bin/ui/group_navigator.c
index 4f65b03..6e148b3 100644
--- a/src/bin/ui/group_navigator.c
+++ b/src/bin/ui/group_navigator.c
@@ -678,11 +678,12 @@ _popup_cancel_clicked(void *data,
 }
 
 static void
-_popup_add_part_ok_clicked(void *data,
+_popup_add_part_ok_clicked(void *data __UNUSED__,
                            Evas_Object *obj __UNUSED__,
                            void *event_info __UNUSED__)
 {
-   const Edje_Part_Type type = *((const Edje_Part_Type *)data);
+   Ewe_Combobox_Item *item;
+   Edje_Part_Type type = EDJE_PART_TYPE_NONE;
    Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA);
    const char *name;
    Eina_Stringshare *msg;
@@ -690,6 +691,22 @@ _popup_add_part_ok_clicked(void *data,
 
    assert(pl != NULL);
 
+   item = ewe_combobox_select_item_get(pl->popup.combobox);
+   TODO("add data to combobox item to get rid of string comparsion")
+#define CHECK_TYPE(TYPE) (!strcmp(item->title, part_types[TYPE])) type = TYPE;
+   if CHECK_TYPE(EDJE_PART_TYPE_RECTANGLE)
+   else if CHECK_TYPE(EDJE_PART_TYPE_TEXT)
+   else if CHECK_TYPE(EDJE_PART_TYPE_IMAGE)
+   else if CHECK_TYPE(EDJE_PART_TYPE_SWALLOW)
+   else if CHECK_TYPE(EDJE_PART_TYPE_TEXTBLOCK)
+   else if CHECK_TYPE(EDJE_PART_TYPE_GROUP)
+   else if CHECK_TYPE(EDJE_PART_TYPE_BOX)
+   else if CHECK_TYPE(EDJE_PART_TYPE_TABLE)
+   else if CHECK_TYPE(EDJE_PART_TYPE_PROXY)
+   else if CHECK_TYPE(EDJE_PART_TYPE_SPACER)
+#undef CHECK_TYPE
+   assert(type != EDJE_PART_TYPE_NONE);
+
    name = elm_entry_entry_get(pl->popup.entry_name);
    msg = eina_stringshare_printf(_("added new part \"%s\""), name);
    change = change_add(msg);
@@ -730,25 +747,40 @@ group_navigator_part_add(Evas_Object *obj, Part *part)
 }
 
 static void
-_on_menu_add_part_clicked(void *data,
+_on_menu_add_part_clicked(void *data __UNUSED__,
                           Evas_Object *obj __UNUSED__,
                           void *ei __UNUSED__)
 {
-   const Edje_Part_Type type = *((const Edje_Part_Type *)data);
+   Edje_Part_Type type;
    Part_List *pl = evas_object_data_get(obj, GROUP_NAVIGATOR_DATA);
 
    Eina_Stringshare *title;
    Evas_Object *box, *item;
 
    assert(pl != NULL);
-   assert(type <= part_types_count);
 
    ap.popup = elm_popup_add(ap.win);
-   title = eina_stringshare_printf(_("Add new %s part to group \"%s\""), 
_(part_types[type]), pl->group->name);
+   title = eina_stringshare_printf(_("Add new part to group \"%s\""), 
pl->group->name);
    elm_object_part_text_set(ap.popup, "title,text", title);
    eina_stringshare_del(title);
 
    BOX_ADD(ap.popup, box, false, false);
+   LAYOUT_PROP_ADD(box, _("Part type:"), "property", "1swallow")
+   EWE_COMBOBOX_ADD(item, pl->popup.combobox)
+
+   ewe_combobox_select_item_set(pl->popup.combobox, 0);
+   for (type = EDJE_PART_TYPE_RECTANGLE; type <= EDJE_PART_TYPE_SPACER; type++)
+     {
+        if ((type == EDJE_PART_TYPE_GRADIENT) ||
+            (type == EDJE_PART_TYPE_EXTERNAL))
+          continue;
+        ewe_combobox_item_add(pl->popup.combobox, part_types[type]);
+     }
+   ewe_combobox_select_item_set(pl->popup.combobox, 0);
+   elm_object_part_content_set(item, "elm.swallow.content", 
pl->popup.combobox);
+
+   elm_box_pack_end(box, item);
+
    LAYOUT_PROP_ADD(box, _("Part name:"), "property", "1swallow")
    ENTRY_ADD(box, pl->popup.entry_name, true);
    eo_do(pl->popup.entry_name, eo_event_callback_add(ELM_ENTRY_EVENT_VALIDATE, 
elm_validator_regexp_helper, pl->name_validator));
@@ -761,7 +793,7 @@ _on_menu_add_part_clicked(void *data,
    elm_object_content_set(ap.popup, box);
    BUTTON_ADD(box, pl->popup.btn_add, _("Add"));
    evas_object_data_set(pl->popup.btn_add, GROUP_NAVIGATOR_DATA, pl);
-   evas_object_smart_callback_add(pl->popup.btn_add, "clicked", 
_popup_add_part_ok_clicked, data);
+   evas_object_smart_callback_add(pl->popup.btn_add, "clicked", 
_popup_add_part_ok_clicked, NULL);
    elm_object_part_content_set(ap.popup, "button1", pl->popup.btn_add);
    elm_object_disabled_set(pl->popup.btn_add, true);
 
@@ -774,17 +806,6 @@ _on_menu_add_part_clicked(void *data,
    evas_object_show(ap.popup);
    elm_object_focus_set(pl->popup.entry_name, true);
 }
-/* constan variables to be passed as item data */
-static const Edje_Part_Type _type_rect = EDJE_PART_TYPE_RECTANGLE;
-static const Edje_Part_Type _type_text = EDJE_PART_TYPE_TEXT;
-static const Edje_Part_Type _type_image = EDJE_PART_TYPE_IMAGE;
-static const Edje_Part_Type _type_swallow = EDJE_PART_TYPE_SWALLOW;
-static const Edje_Part_Type _type_textblock = EDJE_PART_TYPE_TEXTBLOCK;
-static const Edje_Part_Type _type_group = EDJE_PART_TYPE_GROUP;
-static const Edje_Part_Type _type_box = EDJE_PART_TYPE_BOX;
-static const Edje_Part_Type _type_table = EDJE_PART_TYPE_TABLE;
-static const Edje_Part_Type _type_proxy = EDJE_PART_TYPE_PROXY;
-static const Edje_Part_Type _type_spacer = EDJE_PART_TYPE_SPACER;
 
 static void
 _popup_add_state_ok_clicked(void *data,
@@ -1632,7 +1653,6 @@ group_navigator_add(Group *group)
 {
    Evas_Object *icon;
    Part_List *pl;
-   Elm_Object_Item *menu_item;
 
    assert(group != NULL);
    assert(ap.win != NULL);
@@ -1736,33 +1756,15 @@ group_navigator_add(Group *group)
    pl->menu = elm_menu_add(ap.win);
    evas_object_data_set(pl->menu, GROUP_NAVIGATOR_DATA, pl);
 
+   elm_menu_item_add(pl->menu, NULL, NULL, _("Part"), 
_on_menu_add_part_clicked, NULL);
+   elm_menu_item_separator_add(pl->menu, NULL);
+
    pl->add_state_menu_item = elm_menu_item_add(pl->menu, NULL, NULL, 
_("State"), _on_menu_add_state_clicked, NULL);
    elm_object_item_disabled_set(pl->add_state_menu_item, true);
    pl->add_part_item_menu_item = elm_menu_item_add(pl->menu, NULL, NULL, 
_("Item"), _on_menu_add_item_clicked, NULL);
    elm_object_item_disabled_set(pl->add_part_item_menu_item, true);
    elm_menu_item_separator_add(pl->menu, NULL);
 
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Rectangle"), 
_on_menu_add_part_clicked, &_type_rect);
-   elm_menu_item_icon_name_set(menu_item, "type_rectangle");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Text"), 
_on_menu_add_part_clicked, &_type_text);
-   elm_menu_item_icon_name_set(menu_item, "type_text");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Image"), 
_on_menu_add_part_clicked, &_type_image);
-   elm_menu_item_icon_name_set(menu_item, "type_image");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Swallow"), 
_on_menu_add_part_clicked, &_type_swallow);
-   elm_menu_item_icon_name_set(menu_item, "type_swallow");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Textblock"), 
_on_menu_add_part_clicked, &_type_textblock);
-   elm_menu_item_icon_name_set(menu_item, "type_textblock");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Group"), 
_on_menu_add_part_clicked, &_type_group);
-   elm_menu_item_icon_name_set(menu_item, "type_group");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Box"), 
_on_menu_add_part_clicked, &_type_box);
-   elm_menu_item_icon_name_set(menu_item, "type_box");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Table"), 
_on_menu_add_part_clicked, &_type_table);
-   elm_menu_item_icon_name_set(menu_item, "type_table");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Proxy"), 
_on_menu_add_part_clicked, &_type_proxy);
-   elm_menu_item_icon_name_set(menu_item, "type_proxy");
-   menu_item = elm_menu_item_add(pl->menu, NULL, NULL, _("Spacer"), 
_on_menu_add_part_clicked, &_type_spacer);
-   elm_menu_item_icon_name_set(menu_item, "type_spacer");
-   elm_menu_item_separator_add(pl->menu, NULL);
    elm_menu_item_add(pl->menu, NULL, NULL, _("Program"), 
_on_menu_add_program_clicked, NULL);
 
    pl->name_validator = elm_validator_regexp_new(PART_NAME_REGEX, NULL);

-- 


Reply via email to