rimmed pushed a commit to branch master.

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

commit f7f9de7d05a1781b12d743852c3977c4bb3c8b1b
Author: Vitalii Vorobiov <[email protected]>
Date:   Fri Jun 24 13:41:04 2016 +0300

    property_group: apply new combobox to a bunch of simple params
    
    like cursor_mode, shadow direction, texct effect, etc
---
 src/bin/ui/property/property_group.c | 128 ++++++++++++++++++++---------------
 1 file changed, 72 insertions(+), 56 deletions(-)

diff --git a/src/bin/ui/property/property_group.c 
b/src/bin/ui/property/property_group.c
index e308abe..e6f4645 100644
--- a/src/bin/ui/property/property_group.c
+++ b/src/bin/ui/property/property_group.c
@@ -689,6 +689,30 @@ _fill_combobox_with_enum(Evas_Object *control, const char 
**array)
 }
 
 static void
+_fill_newcombobox_with_enum(Evas_Object *control, const char **array)
+{
+   unsigned int i = 0;
+   Combobox_Item *combobox_item;
+   Elm_Genlist_Item_Class *itc;
+
+   assert(control != NULL);
+   assert(array != NULL);
+
+   itc = evas_object_data_get(control, "COMMON_ITC");
+
+   while (array[i] != NULL)
+     {
+        combobox_item = mem_malloc(sizeof(Combobox_Item));
+        combobox_item->index = i;
+        combobox_item->data = eina_stringshare_add(array[i]);
+        elm_genlist_item_append(control, itc,
+                                combobox_item, NULL,
+                                ELM_GENLIST_ITEM_NONE, NULL, NULL);
+        ++i;
+     }
+}
+
+static void
 _ccl_control_free(void *data __UNUSED__,
                   Evas *e __UNUSED__,
                   Evas_Object *obj,
@@ -980,28 +1004,28 @@ _init_cb(Property_Attribute *pa, Property_Action *action)
          _fill_combobox_with_enum(action->control, aspect_preference_strings);
          break;
       case ATTRIBUTE_PART_IGNORE_FLAGS:
-         _fill_combobox_with_enum(action->control, ignore_flags_strings);
+         _fill_newcombobox_with_enum(action->control, ignore_flags_strings);
          break;
       case ATTRIBUTE_PART_POINTER_MODE:
-         _fill_combobox_with_enum(action->control, pointer_mode_strings);
+         _fill_newcombobox_with_enum(action->control, pointer_mode_strings);
          break;
       case ATTRIBUTE_PART_SELECT_MODE:
-         _fill_combobox_with_enum(action->control, select_mode_strings);
+         _fill_newcombobox_with_enum(action->control, select_mode_strings);
          break;
       case ATTRIBUTE_PART_ENTRY_MODE:
-         _fill_combobox_with_enum(action->control, entry_mode_strings);
+         _fill_newcombobox_with_enum(action->control, entry_mode_strings);
          break;
       case ATTRIBUTE_PART_CURSOR_MODE:
-         _fill_combobox_with_enum(action->control, cursor_mode_strings);
+         _fill_newcombobox_with_enum(action->control, cursor_mode_strings);
          break;
       case ATTRIBUTE_STATE_FILL_TYPE:
-         _fill_combobox_with_enum(action->control, fill_type_strings);
+         _fill_newcombobox_with_enum(action->control, fill_type_strings);
          break;
       case ATTRIBUTE_PART_TEXT_EFFECT:
-         _fill_combobox_with_enum(action->control, text_effect_strings);
+         _fill_newcombobox_with_enum(action->control, text_effect_strings);
          break;
       case ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION:
-         _fill_combobox_with_enum(action->control, 
text_shadow_direction_strings);
+         _fill_newcombobox_with_enum(action->control, 
text_shadow_direction_strings);
          break;
       case ATTRIBUTE_STATE_TABLE_HOMOGENEOUS:
          _fill_combobox_with_enum(action->control, table_homogeneous_strings);
@@ -1612,37 +1636,29 @@ _update_cb(Property_Attribute *pa, Property_Action 
*action)
          edje_edit_string_free(str_val1);
          return editor_state_proxy_source_default_is(EDIT_OBJ, STATE_ARGS);
       case ATTRIBUTE_PART_IGNORE_FLAGS:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_ignore_flags_get(EDIT_OBJ, PART_ARGS));
+         elm_object_text_set(action->control, ignore_flags_strings[(int) 
edje_edit_part_ignore_flags_get(EDIT_OBJ, PART_ARGS)]);
          return editor_part_ignore_flags_default_is(EDIT_OBJ, PART_ARGS);
       case ATTRIBUTE_PART_POINTER_MODE:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_pointer_mode_get(EDIT_OBJ, PART_ARGS));
+         elm_object_text_set(action->control, pointer_mode_strings[(int) 
edje_edit_part_pointer_mode_get(EDIT_OBJ, PART_ARGS)]);
          return editor_part_pointer_mode_default_is(EDIT_OBJ, PART_ARGS);
       case ATTRIBUTE_PART_SELECT_MODE:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_select_mode_get(EDIT_OBJ, PART_ARGS));
+         elm_object_text_set(action->control, select_mode_strings[(int) 
edje_edit_part_select_mode_get(EDIT_OBJ, PART_ARGS)]);
          return editor_part_select_mode_default_is(EDIT_OBJ, PART_ARGS);
       case ATTRIBUTE_PART_ENTRY_MODE:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_entry_mode_get(EDIT_OBJ, PART_ARGS));
+         elm_object_text_set(action->control, entry_mode_strings[(int) 
edje_edit_part_entry_mode_get(EDIT_OBJ, PART_ARGS)]);
          return editor_part_entry_mode_default_is(EDIT_OBJ, PART_ARGS);
       case ATTRIBUTE_PART_CURSOR_MODE:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_cursor_mode_get(EDIT_OBJ, PART_ARGS));
+         elm_object_text_set(action->control, cursor_mode_strings[(int) 
edje_edit_part_cursor_mode_get(EDIT_OBJ, PART_ARGS)]);
          return editor_part_cursor_mode_default_is(EDIT_OBJ, PART_ARGS);
       case ATTRIBUTE_STATE_FILL_TYPE:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_state_fill_type_get(EDIT_OBJ, STATE_ARGS));
+         elm_object_text_set(action->control, fill_type_strings[(int) 
edje_edit_state_fill_type_get(EDIT_OBJ, STATE_ARGS)]);
          return editor_state_fill_type_default_is(EDIT_OBJ, STATE_ARGS);
       case ATTRIBUTE_PART_TEXT_EFFECT:
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_text_effect_get(EDIT_OBJ, PART_ARGS));
+         elm_object_text_set(action->control, text_effect_strings[(int) 
edje_edit_part_text_effect_get(EDIT_OBJ, PART_ARGS)]);
          return editor_part_text_effect_default_is(EDIT_OBJ, PART_ARGS);
       case ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION:
          /* shodow directions are shifted by 4 in enum */
-         ewe_combobox_select_item_set(action->control,
-           (int) edje_edit_part_text_shadow_direction_get(EDIT_OBJ, 
PART_ARGS)>>4);
+         elm_object_text_set(action->control, 
text_shadow_direction_strings[(int) 
edje_edit_part_text_shadow_direction_get(EDIT_OBJ, PART_ARGS)>>4]);
          return editor_part_text_shadow_direction_default_is(EDIT_OBJ, 
PART_ARGS);
       case ATTRIBUTE_PART_DRAG_X:
          int_val1 = edje_edit_part_drag_x_get(EDIT_OBJ, PART_ARGS);
@@ -3278,59 +3294,59 @@ _change_cb(Property_Attribute *pa, Property_Action 
*action)
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_IGNORE_FLAGS:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_part_ignore_flags_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_part_ignore_flags_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_POINTER_MODE:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_part_pointer_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_part_pointer_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_SELECT_MODE:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_part_select_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_part_select_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_ENTRY_MODE:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_part_entry_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_part_entry_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_CURSOR_MODE:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_part_cursor_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_part_cursor_mode_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_STATE_FILL_TYPE:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_state_fill_type_set(EDIT_OBJ, CHANGE_NO_MERGE, 
STATE_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_state_fill_type_set(EDIT_OBJ, CHANGE_NO_MERGE, 
STATE_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_TEXT_EFFECT:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
-         CRIT_ON_FAIL(editor_part_text_effect_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item->index));
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
+         CRIT_ON_FAIL(editor_part_text_effect_set(EDIT_OBJ, CHANGE_NO_MERGE, 
PART_ARGS, cb_item_combo->index));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
       case ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION:
-         assert(cb_item != NULL);
-         str_val1 = eina_stringshare_add(cb_item->title);
+         assert(cb_item_combo != NULL);
+         str_val1 = eina_stringshare_add(cb_item_combo->data);
          /* shodow directions are shifted by 4 in enum */
-         CRIT_ON_FAIL(editor_part_text_shadow_direction_set(EDIT_OBJ, 
CHANGE_NO_MERGE, PART_ARGS, cb_item->index << 4));
+         CRIT_ON_FAIL(editor_part_text_shadow_direction_set(EDIT_OBJ, 
CHANGE_NO_MERGE, PART_ARGS, cb_item_combo->index << 4));
          eina_stringshare_del(group_pd.history.new.str_val1);
          group_pd.history.new.str_val1 = str_val1;
          break;
@@ -4492,7 +4508,7 @@ _init_items()
               break;
            case PROPERTY_GROUP_ITEM_PART_IGNORE_FLAGS:
               IT.name = "Ignore flags";
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_IGNORE_FLAGS,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_IGNORE_FLAGS,
                        _("Specifies whether events with the given flags "
                          "must be ignored. These events do not have their "
                          "signals emitted to the parts."));
@@ -4500,7 +4516,7 @@ _init_items()
            case PROPERTY_GROUP_ITEM_PART_POINTER_MODE:
               IT.name = "Pointer mode";
               IT.filter_data.part_types &= ~PART_SPACER;
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_POINTER_MODE,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_POINTER_MODE,
                        _("Sets the mouse pointer behavior for the part. "
                          "The default value is AUTOGRAB. The following modes 
are available: "
                          " * AUTOGRAB, when the part is clicked and the button 
"
@@ -4770,13 +4786,13 @@ _init_items()
            case PROPERTY_GROUP_ITEM_PART_TEXT_EFFECT:
               IT.name = "Effect";
               IT.filter_data.part_types = PART_TEXT;
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_TEXT_EFFECT,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_TEXT_EFFECT,
                        _("Causes Edje to draw the selected effect."));
               break;
            case PROPERTY_GROUP_ITEM_PART_TEXT_SHADOW_DIRECTION:
               IT.name = "Shadow direction";
               IT.filter_data.part_types = PART_TEXT;
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_TEXT_SHADOW_DIRECTION,
                        _("Shadow directions."));
               break;
 
@@ -4784,7 +4800,7 @@ _init_items()
            case PROPERTY_GROUP_ITEM_PART_SELECT_MODE:
               IT.name = "Select mode";
               IT.filter_data.part_types = PART_TEXTBLOCK;
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_SELECT_MODE,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_SELECT_MODE,
                        _("Sets the selection mode for a textblock part to one 
of the following: "
                          "The DEFAULT selection mode is what you expect on any 
desktop. "
                          "Press mouse, drag, and release to end. The EXPLICIT 
mode requires "
@@ -4795,7 +4811,7 @@ _init_items()
            case PROPERTY_GROUP_ITEM_PART_ENTRY_MODE:
               IT.name = "Entry mode";
               IT.filter_data.part_types = PART_TEXTBLOCK;
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_ENTRY_MODE,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_ENTRY_MODE,
                        _("Sets the edit mode for a textblock part to one of 
the following:<br>"
                          "* NONE<br>"
                          "* PLAIN<br>"
@@ -4810,7 +4826,7 @@ _init_items()
            case PROPERTY_GROUP_ITEM_PART_CURSOR_MODE:
               IT.name = "Cursor mode";
               IT.filter_data.part_types = PART_TEXTBLOCK;
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_PART_CURSOR_MODE,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_PART_CURSOR_MODE,
                        _("Sets the cursor mode for a textblock part to one of 
the following: "
                          "UNDER cursor mode means the cursor draws below the 
character "
                          "pointed at. This is the default mode. BEFORE cursor 
mode means "
@@ -5040,7 +5056,7 @@ _init_items()
               break;
            case PROPERTY_GROUP_ITEM_STATE_FILL_TYPE:
               IT.name = "Type";
-              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, 
ATTRIBUTE_STATE_FILL_TYPE,
+              _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, 
ATTRIBUTE_STATE_FILL_TYPE,
                        _("Sets the image fill type.<br>"
                          "* SCALE - the image is scaled according to "
                          "the params value \"relative\" and \"offset\" from "

-- 


Reply via email to