efl_text_change_info: change text change type property( bool -> enum)

changed the insertion property to be an enum instead of a boolean property.
this will be clearer for usage and provide the ability to add more types in the future.

Reviewed-by: Xavi Artigas <xavierartigas@yahoo.es>
Differential Revision: https://phab.enlightenment.org/D11272
This commit is contained in:
abdulleh Ghujeh 2020-02-03 09:57:57 +00:00 committed by Marcel Hollerbach
parent dd4bad3037
commit 7c058d5e61
3 changed files with 15 additions and 9 deletions

View File

@ -10,6 +10,12 @@ enum Efl.Text_Bidirectional_Type {
inherit [[Inherit text type]]
}
enum @beta Efl.Text_Change_Type {
[[Text change type.]]
insert = 0, [[the content was inserted.]]
remove [[the content was removed.]]
}
struct @beta Efl.Text_Change_Info {
[[This structure includes all the information about content changes.
@ -18,6 +24,6 @@ struct @beta Efl.Text_Change_Info {
content: string; [[The content added/removed]]
position: size; [[The position where it was added/removed]]
length: size; [[The length of content in characters (not bytes, actual unicode characters)]]
insertion: bool; [[$true if the content was inserted, $false if removed]]
type: Efl.Text_Change_Type; [[Text change type]]
mergeable: bool; [[$true if can be merged with the previous one. Used for example with insertion when something is already selected]]
}

View File

@ -289,7 +289,7 @@ _text_filter_markup_prepend_internal(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_
if (changeinfo)
{
info = calloc(1, sizeof(*info));
info->insertion = EINA_TRUE;
info->type = EFL_TEXT_CHANGE_TYPE_INSERT;
info->content = eina_stringshare_add(text);
info->length =
eina_unicode_utf8_get_len(info->content);
@ -611,7 +611,7 @@ _entry_imf_event_delete_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_U
tmp = efl_text_cursor_range_text_get(del_start, del_end);
info.insertion = EINA_FALSE;
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
info.position = start;
info.length = end - start;
info.content = tmp;
@ -955,7 +955,7 @@ _range_del_emit(Evas_Object *obj, Efl_Text_Cursor *cur1, Efl_Text_Cursor *cur2)
if (start == end)
return;
info.insertion = EINA_FALSE;
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
info.position = start;
info.length = end - start;
@ -1001,7 +1001,7 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data
Efl_Text_Change_Info info = { NULL, 0, 0, 0, 0 };
char *tmp = NULL;
info.insertion = EINA_FALSE;
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
if (backspace)
{
@ -1047,7 +1047,7 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data
evas_textblock_cursor_free(cc);
}
info.insertion = EINA_FALSE;
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
info.position = pos;
info.length = 1;
info.content = tmp;
@ -1531,7 +1531,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_sel_range_del_emit(obj, en);
info.mergeable = EINA_TRUE;
}
info.insertion = EINA_TRUE;
info.type = EFL_TEXT_CHANGE_TYPE_INSERT;
info.content = string;
info.position = efl_text_cursor_position_get(cur);
info.length = eina_unicode_utf8_get_len(string);

View File

@ -424,7 +424,7 @@ _selection_data_cb(void *data EINA_UNUSED, Eo *obj,
efl_text_interactive_all_unselect(obj);
}
cur = efl_text_interactive_main_cursor_get(obj);
info.insertion = EINA_TRUE;
info.type = EFL_TEXT_CHANGE_TYPE_INSERT;
info.position = efl_text_cursor_position_get(cur);
info.length = len;
info.content = buf;
@ -1945,7 +1945,7 @@ _efl_ui_textbox_selection_cut(Eo *obj, Efl_Ui_Textbox_Data *sd)
start_pos = efl_text_cursor_position_get(start);
end_pos = efl_text_cursor_position_get(end);
tmp = efl_text_cursor_range_text_get(start, end);
info.insertion = EINA_FALSE;
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
info.position = start_pos;
info.length = end_pos - start_pos;
info.content = tmp;