rimmed pushed a commit to branch master. http://git.enlightenment.org/tools/eflete.git/commit/?id=305a255ec0e129c3da57665dc68c74bdeb0144eb
commit 305a255ec0e129c3da57665dc68c74bdeb0144eb Author: Vitalii Vorobiov <[email protected]> Date: Wed Jun 29 12:11:15 2016 +0300 property_textblock: use elementary combobox --- src/bin/ui/property/property_textblock.c | 80 +++++++++++++++++++------------- 1 file changed, 49 insertions(+), 31 deletions(-) diff --git a/src/bin/ui/property/property_textblock.c b/src/bin/ui/property/property_textblock.c index d43691e..6759cc7 100644 --- a/src/bin/ui/property/property_textblock.c +++ b/src/bin/ui/property/property_textblock.c @@ -458,18 +458,28 @@ _tag_parse(const char *value, const char *text) static void _fill_combobox_with_enum(Evas_Object *control, const char **array) { - int i = 0; + 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) { - ewe_combobox_item_add(control, array[i]); + 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 Eina_List * _subitems_get(Property_Attribute *pa) { @@ -528,7 +538,7 @@ static void _change_cb(Property_Attribute *pa, Property_Action *action) { Eina_Stringshare *str_val1 = NULL, *str_tmp = NULL; - Ewe_Combobox_Item *cb_item = NULL; + Combobox_Item *cb_item = NULL; double double_val1 = 0.0; Eina_Bool bool_val1 = false; int r = -1, g = -1, b = -1, a = -1; @@ -550,9 +560,9 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case PROPERTY_CONTROL_ENTRY: str_val1 = property_entry_get(action->control); break; - case PROPERTY_CONTROL_COMBOBOX: - TODO("change this after migrating to elm_combobox"); - cb_item = ewe_combobox_select_item_get(action->control); + case PROPERTY_CONTROL_NEWCOMBOBOX: + cb_item = evas_object_data_get(action->control, "CURRENT_DATA"); + if (!cb_item) return; break; case PROPERTY_CONTROL_COLOR: property_color_control_color_get(action->control, &r, &g, &b, &a); @@ -575,18 +585,20 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WEIGHT: assert(cb_item != NULL); tpd.font_style_weight = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "font_weight"); + _tag_parse(eina_stringshare_add(cb_item->data), "font_weight"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; + elm_object_text_set(action->control, font_weight_list[tpd.font_style_weight]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WIDTH: assert(cb_item != NULL); tpd.font_style_width = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "font_width"); + _tag_parse(eina_stringshare_add(cb_item->data), "font_width"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; + elm_object_text_set(action->control, font_width_list[tpd.font_style_width]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_COLOR: tpd.color.r = r; @@ -613,18 +625,20 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_HOR: assert(cb_item != NULL); tpd.font_align_hor = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "align"); + _tag_parse(eina_stringshare_add(cb_item->data), "align"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; + elm_object_text_set(action->control, font_horizontal_align[tpd.font_align_hor]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_VER: assert(cb_item != NULL); tpd.font_valign_hor = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "valign"); + _tag_parse(eina_stringshare_add(cb_item->data), "valign"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; + elm_object_text_set(action->control, font_horizontal_valign[tpd.font_valign_hor]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_MARGIN_LEFT: tpd.left_margin = double_val1; @@ -647,10 +661,11 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_WRAP: assert(cb_item != NULL); tpd.wrap = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "wrap"); + _tag_parse(eina_stringshare_add(cb_item->data), "wrap"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; + elm_object_text_set(action->control, text_wrap[tpd.wrap]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_FORMAT_TABSTOPS: @@ -743,11 +758,12 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_STYLE: assert(cb_item != NULL); tpd.glow_style = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "style"); + _tag_parse(eina_stringshare_add(cb_item->data), "style"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; GENLIST_FILTER_APPLY(pd->genlist); + elm_object_text_set(action->control, font_glow_list[tpd.glow_style]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_COLOR: tpd.shadow_color.r = r; @@ -764,10 +780,11 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_DIRECTION: assert(cb_item != NULL); eina_stringshare_del(style_table[DIRECTION_NUM][1]); - style_table[DIRECTION_NUM][1] = eina_stringshare_add(cb_item->title); - _tag_parse(cb_item->title, "direction"); + style_table[DIRECTION_NUM][1] = eina_stringshare_add(cb_item->data); + _tag_parse(cb_item->data, "direction"); _style_edit_update(); ap.project->changed = true; + elm_object_text_set(action->control, direction_list[tpd.direction]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_OUTER_COLOR: tpd.outer_color.r = r; @@ -821,11 +838,12 @@ _change_cb(Property_Attribute *pa, Property_Action *action) case ATTRIBUTE_TEXTBLOCK_ITEM_LINES_UNDERLINE: assert(cb_item != NULL); tpd.underline = cb_item->index; - _tag_parse(eina_stringshare_add(cb_item->title), "underline"); + _tag_parse(eina_stringshare_add(cb_item->data), "underline"); _style_edit_update(); CRIT_ON_FAIL(editor_save(ap.project->global_object)); ap.project->changed = true; GENLIST_FILTER_APPLY(pd->genlist); + elm_object_text_set(action->control, underl_styles[tpd.underline]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_LINES_UNDERLINE_COLOR_ONE: tpd.underone_color.r = r; @@ -903,10 +921,10 @@ _update_cb(Property_Attribute *pa, Property_Action *action) property_entry_set(action->control, tpd.font); break; case ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WEIGHT: - ewe_combobox_select_item_set(action->control, tpd.font_style_weight); + elm_object_text_set(action->control, font_weight_list[tpd.font_style_weight]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WIDTH: - ewe_combobox_select_item_set(action->control, tpd.font_style_width); + elm_object_text_set(action->control, font_width_list[tpd.font_style_width]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_COLOR: property_color_control_color_set(action->control, @@ -919,10 +937,10 @@ _update_cb(Property_Attribute *pa, Property_Action *action) elm_spinner_value_set(action->control, tpd.font_size); break; case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_HOR: - ewe_combobox_select_item_set(action->control, tpd.font_align_hor); + elm_object_text_set(action->control, font_horizontal_align[tpd.font_align_hor]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_VER: - ewe_combobox_select_item_set(action->control, tpd.font_valign_hor); + elm_object_text_set(action->control, font_horizontal_valign[tpd.font_valign_hor]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_MARGIN_LEFT: elm_spinner_value_set(action->control, tpd.left_margin); @@ -931,7 +949,7 @@ _update_cb(Property_Attribute *pa, Property_Action *action) elm_spinner_value_set(action->control, tpd.right_margin); break; case ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_WRAP: - ewe_combobox_select_item_set(action->control, tpd.wrap); + elm_object_text_set(action->control, text_wrap[tpd.wrap]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_FORMAT_TABSTOPS: elm_spinner_value_set(action->control, tpd.tabstops); @@ -964,7 +982,7 @@ _update_cb(Property_Attribute *pa, Property_Action *action) elm_spinner_value_set(action->control, tpd.linerelsize); break; case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_STYLE: - ewe_combobox_select_item_set(action->control, tpd.glow_style); + elm_object_text_set(action->control, font_glow_list[tpd.glow_style]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_COLOR: property_color_control_color_set(action->control, @@ -974,7 +992,7 @@ _update_cb(Property_Attribute *pa, Property_Action *action) tpd.shadow_color.a); break; case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_DIRECTION: - ewe_combobox_select_item_set(action->control, tpd.direction); + elm_object_text_set(action->control, direction_list[tpd.direction]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_OUTER_COLOR: property_color_control_color_set(action->control, @@ -1001,7 +1019,7 @@ _update_cb(Property_Attribute *pa, Property_Action *action) tpd.strikethrough_color.a); break; case ATTRIBUTE_TEXTBLOCK_ITEM_LINES_UNDERLINE: - ewe_combobox_select_item_set(action->control, tpd.underline); + elm_object_text_set(action->control, underl_styles[tpd.underline]); break; case ATTRIBUTE_TEXTBLOCK_ITEM_LINES_UNDERLINE_COLOR_ONE: property_color_control_color_set(action->control, @@ -1228,14 +1246,14 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WEIGHT: IT.name = "Font style (weight)"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WEIGHT, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WEIGHT, _("Overrides the weight defined in \"font\". " "For example, the value \"Bold\" is the " "same as font value \"style=Bold\".")); break; case PROPERTY_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WIDTH: IT.name = "Font style (width)"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WIDTH, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_TEXT_FONT_STYLE_WIDTH, _("Overrides the width defined in \"font\". " "For example, the value \"Condensed\" is the " "same as font value \"style=Condensed\".")); @@ -1260,7 +1278,7 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_POSITION_ALIGN_HOR: IT.name = "Horizontal align"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_HOR, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_HOR, _("Sets the horizontal alignment of the text.<br>" " * auto - Respects LTR/RTL settings.<br> " " * center - Centers the text in the line.<br>" @@ -1270,7 +1288,7 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_POSITION_ALIGN_VER: IT.name = "Vertical align"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_VER, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_ALIGN_VER, _("Sets the vertical alignment of the text.<br>" " * top - Puts text at the top of the line.<br>" " * center - Centers the text in the line.<br>" @@ -1288,7 +1306,7 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_POSITION_WRAP: IT.name = "Wrap"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_WRAP, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_POSITION_WRAP, _("Sets the wrap policy of the text.<br>" " * word - Only wraps lines at word boundaries.<br>" " * char - Wraps at any character.<br>" @@ -1351,7 +1369,7 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_GLOW_SHADOW_STYLE: IT.name = "Style"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_STYLE, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_STYLE, _("Sets the style of the text.")); break; case PROPERTY_TEXTBLOCK_ITEM_GLOW_SHADOW_COLOR: @@ -1362,7 +1380,7 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_GLOW_SHADOW_DIRECTION: IT.name = "Direction"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_DIRECTION, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_GLOW_SHADOW_DIRECTION, _("Sets the shadow direction")); IT.filter_cb = _direction_filter_cb; break; @@ -1394,7 +1412,7 @@ _init_items() break; case PROPERTY_TEXTBLOCK_ITEM_LINES_UNDERLINE: IT.name = "Underline"; - _action1(&IT, NULL, NULL, PROPERTY_CONTROL_COMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_LINES_UNDERLINE, + _action1(&IT, NULL, NULL, PROPERTY_CONTROL_NEWCOMBOBOX, ATTRIBUTE_TEXTBLOCK_ITEM_LINES_UNDERLINE, _("Sets if and how a text is underlined.")); break; case PROPERTY_TEXTBLOCK_ITEM_LINES_UNDERLINE_COLOR_ONE: --
