Fix namespace clashes for Efl.Text.Cursor

Three renames are applied here:
Efl.Text.Cursor -> Efl.Text_Cursor.Object (class)
Efl.Text.Cursor_Type -> Efl.Text_Cursor.Type (enum)
Efl.Text.Cursor_Move_Type -> Efl.Text_Cursor.Move_Type (enum)

Nothing changes for the enums on the C side. For the class... Well,
the method names are a bit more verbose now.

These renames are required to avoid clashing with the Efl.Text interface.
This did not cause trouble to C# because interfaces are prefixed with "I",
but it did cause trouble to Eolian when the EO files were installed and
somebody tried to use them.
Ref T8648

Differential Revision: https://phab.enlightenment.org/D11663
This commit is contained in:
Xavi Artigas 2020-04-07 11:11:13 +00:00 committed by Marcel Hollerbach
parent 8a155aecb6
commit f526ad8c26
19 changed files with 619 additions and 620 deletions

View File

@ -8,13 +8,13 @@
static void
_apply_style(Eo *obj, size_t start_pos, size_t end_pos, const char *style)
{
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
start = efl_ui_textbox_cursor_create(obj);
end = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_position_set(start, start_pos);
efl_text_cursor_position_set(end, end_pos);
efl_text_cursor_object_position_set(start, start_pos);
efl_text_cursor_object_position_set(end, end_pos);
efl_text_formatter_attribute_insert(start, end, style);
@ -101,15 +101,15 @@ typedef struct
static void
_on_bt3_clicked(void *data, const Efl_Event *event EINA_UNUSED)
{
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor_Object *sel_start, *sel_end;
Eo *en = data;
efl_text_interactive_selection_cursors_get(en, &sel_start, &sel_end);
const char *s = efl_text_cursor_range_text_get(sel_start, sel_end);
const char *s = efl_text_cursor_object_range_text_get(sel_start, sel_end);
printf("SELECTION REGION: %d - %d\n",
efl_text_cursor_position_get( sel_start),
efl_text_cursor_position_get(sel_end));
efl_text_cursor_object_position_get( sel_start),
efl_text_cursor_object_position_get(sel_end));
printf("SELECTION:\n");
if (s) printf("%s\n", s);
}

View File

@ -13,7 +13,7 @@ interface Efl.Text_Interactive extends Efl.Text, Efl.Text_Font_Properties,
[[The cursor used to insert new text, the one that's visible to the user.]]
get {}
values {
cursor: Efl.Text.Cursor; [[The cursor visible to the user.]]
cursor: Efl.Text_Cursor.Object; [[The cursor visible to the user.]]
}
}
@property selection_allowed {
@ -34,12 +34,12 @@ interface Efl.Text_Interactive extends Efl.Text, Efl.Text_Font_Properties,
}
set {
[[The positions of passed cursors will be used to set selection cursors positions.
Further modification for passed @Efl.Text.Cursor objects, will not affect selection.
Further modification for passed @Efl.Text_Cursor.Object objects, will not affect selection.
Setter is recommended to set new range for selection.]]
}
values {
start: Efl.Text.Cursor; [[The start of the selection.]]
end: Efl.Text.Cursor; [[The end of the selection.]]
start: Efl.Text_Cursor.Object; [[The start of the selection.]]
end: Efl.Text_Cursor.Object; [[The end of the selection.]]
}
}
@property editable {

View File

@ -13,10 +13,10 @@
typedef struct _Efl_Ui_Internal_Text_Interactive_Data
{
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor_Object *sel_start, *sel_end;
Eina_Bool watch_selection;
Efl_Text_Cursor *main_cursor;
Efl_Text_Cursor *preedit_start, *preedit_end;
Efl_Text_Cursor_Object *main_cursor;
Efl_Text_Cursor_Object *preedit_start, *preedit_end;
Ecore_Timer *pw_timer;
Eina_List *seq;
char *selection;
@ -48,9 +48,9 @@ typedef struct _Efl_Ui_Internal_Text_Interactive_Data
} Efl_Ui_Internal_Text_Interactive_Data;
static void _sel_range_del_emit(Evas_Object *obj, Efl_Ui_Internal_Text_Interactive_Data *en);
static void _sel_init(Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data *en);
static void _sel_init(Efl_Text_Cursor_Object *c, Efl_Ui_Internal_Text_Interactive_Data *en);
static void _sel_enable(Evas_Object *o,Efl_Ui_Internal_Text_Interactive_Data *en);
static void _sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en);
static void _sel_extend(Efl_Text_Cursor_Object *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en);
static void _sel_clear(Evas_Object *o EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en);
static void _emit_sel_state( Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en);
static const char *_entry_selection_get(Efl_Ui_Internal_Text_Interactive *obj, Efl_Ui_Internal_Text_Interactive_Data *en);
@ -61,33 +61,33 @@ static void _sel_watch_thaw(Efl_Ui_Internal_Text_Interactive_Data *en);
static void
_text_filter_format_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c, const char *text);
Efl_Text_Cursor_Object *c, const char *text);
static Efl_Text_Change_Info *
_text_filter_text_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c,
Efl_Text_Cursor_Object *c,
const char *text,
const char *fmtpre, const char *fmtpost,
Eina_Bool clearsel, Eina_Bool changeinfo);
static Efl_Text_Change_Info *
_text_filter_markup_prepend_internal(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c,
Efl_Text_Cursor_Object *c,
char *text,
const char *fmtpre, const char *fmtpost,
Eina_Bool clearsel, Eina_Bool changeinfo);
static Efl_Text_Change_Info *
_text_filter_markup_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c,
Efl_Text_Cursor_Object *c,
const char *text,
const char *fmtpre, const char *fmtpost,
Eina_Bool clearsel, Eina_Bool changeinfo);
static void
_cur_pos_copy(Efl_Text_Cursor *src, Efl_Text_Cursor *dest)
_cur_pos_copy(Efl_Text_Cursor_Object *src, Efl_Text_Cursor_Object *dest)
{
efl_text_cursor_position_set(dest, efl_text_cursor_position_get(src));
efl_text_cursor_object_position_set(dest, efl_text_cursor_object_position_get(src));
}
static void
@ -126,17 +126,17 @@ _preedit_del(Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en)
{
if (!en || !en->have_preedit) return;
if (!en->preedit_start || !en->preedit_end) return;
if (efl_text_cursor_equal(en->preedit_start, en->preedit_end)) return;
if (efl_text_cursor_object_equal(en->preedit_start, en->preedit_end)) return;
/* delete the preedit characters */
efl_text_cursor_range_delete(en->preedit_start, en->preedit_end);
efl_text_cursor_object_range_delete(en->preedit_start, en->preedit_end);
}
static Eina_Bool
_entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED, char **text, int *cursor_pos)
{
Efl_Canvas_Textblock *obj = data;
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
const char *str;
if (text)
@ -153,7 +153,7 @@ _entry_imf_retrieve_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSE
if (cursor_pos)
{
if (cur)
*cursor_pos = efl_text_cursor_position_get(cur);
*cursor_pos = efl_text_cursor_object_position_get(cur);
else
*cursor_pos = 0;
}
@ -262,7 +262,7 @@ _entry_imf_event_commit_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED, void
static Efl_Text_Change_Info *
_text_filter_markup_prepend_internal(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c,
Efl_Text_Cursor_Object *c,
char *text,
const char *fmtpre, const char *fmtpost,
Eina_Bool clearsel, Eina_Bool changeinfo)
@ -301,11 +301,11 @@ _text_filter_markup_prepend_internal(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_
info->mergeable = EINA_TRUE;
}
info->position =
efl_text_cursor_position_get(efl_text_interactive_main_cursor_get(obj));
efl_text_cursor_object_position_get(efl_text_interactive_main_cursor_get(obj));
}
if (fmtpre) _text_filter_format_prepend(obj, en, efl_text_interactive_main_cursor_get(obj), fmtpre);
//evas_object_textblock_text_markup_prepend(c, text);
efl_text_cursor_text_insert(c, text);
efl_text_cursor_object_text_insert(c, text);
free(text);
if (fmtpost) _text_filter_format_prepend(obj, en, efl_text_interactive_main_cursor_get(obj), fmtpost);
return info;
@ -315,7 +315,7 @@ _text_filter_markup_prepend_internal(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_
static Efl_Text_Change_Info *
_text_filter_markup_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c,
Efl_Text_Cursor_Object *c,
const char *text,
const char *fmtpre, const char *fmtpost,
Eina_Bool clearsel, Eina_Bool changeinfo)
@ -344,7 +344,7 @@ _text_filter_markup_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Inte
static Efl_Text_Change_Info *
_text_filter_text_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c,
Efl_Text_Cursor_Object *c,
const char *text,
const char *fmtpre, const char *fmtpost,
Eina_Bool clearsel, Eina_Bool changeinfo)
@ -369,7 +369,7 @@ _text_filter_text_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Intera
static void
_text_filter_format_prepend(Efl_Canvas_Textblock *obj, Efl_Ui_Internal_Text_Interactive_Data *en,
Efl_Text_Cursor *c, const char *text)
Efl_Text_Cursor_Object *c, const char *text)
{
EINA_SAFETY_ON_NULL_RETURN(text);
@ -443,7 +443,7 @@ static void
_entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED, void *event_info EINA_UNUSED)
{
Efl_Canvas_Textblock *obj = data;
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS);
Efl_Text_Change_Info *info = NULL;
int cursor_pos;
@ -482,7 +482,7 @@ _entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUS
/* delete preedit characters */
_preedit_del(obj, en);
preedit_start_pos = efl_text_cursor_position_get(cur);
preedit_start_pos = efl_text_cursor_object_position_get(cur);
/* insert preedit character(s) */
if (strlen(preedit_string) > 0)
@ -552,17 +552,17 @@ _entry_imf_event_preedit_changed_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUS
en->preedit_end = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, en->preedit_end);
preedit_end_pos = efl_text_cursor_position_get(cur);
preedit_end_pos = efl_text_cursor_object_position_get(cur);
for (i = 0; i < (preedit_end_pos - preedit_start_pos); i++)
{
efl_text_cursor_move(en->preedit_start, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS);
efl_text_cursor_object_move(en->preedit_start, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS);
}
en->have_preedit = EINA_TRUE;
/* set cursor position */
efl_text_cursor_position_set(cur, preedit_start_pos + cursor_pos);
efl_text_cursor_object_position_set(cur, preedit_start_pos + cursor_pos);
}
if (info)
@ -588,35 +588,35 @@ static void
_entry_imf_event_delete_surrounding_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED, void *event_info)
{
Efl_Canvas_Textblock *obj = data;
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS);
Ecore_IMF_Event_Delete_Surrounding *ev = event_info;
Efl_Text_Cursor *del_start, *del_end;
Efl_Text_Cursor_Object *del_start, *del_end;
Efl_Text_Change_Info info = { NULL, 0, 0, 0, 0 };
int cursor_pos;
int start, end;
char *tmp;
cursor_pos = efl_text_cursor_position_get(cur);
cursor_pos = efl_text_cursor_object_position_get(cur);
del_start = efl_canvas_textblock_cursor_create(obj);
efl_text_cursor_position_set(del_start, cursor_pos + ev->offset);
efl_text_cursor_object_position_set(del_start, cursor_pos + ev->offset);
del_end = efl_canvas_textblock_cursor_create(obj);
efl_text_cursor_position_set(del_end, cursor_pos + ev->offset + ev->n_chars);
efl_text_cursor_object_position_set(del_end, cursor_pos + ev->offset + ev->n_chars);
start = efl_text_cursor_position_get(del_start);
end = efl_text_cursor_position_get(del_end);
start = efl_text_cursor_object_position_get(del_start);
end = efl_text_cursor_object_position_get(del_end);
if (start == end) goto end;
tmp = efl_text_cursor_range_text_get(del_start, del_end);
tmp = efl_text_cursor_object_range_text_get(del_start, del_end);
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
info.position = start;
info.length = end - start;
info.content = tmp;
efl_text_cursor_range_delete(del_start, del_end);
efl_text_cursor_object_range_delete(del_start, del_end);
efl_event_callback_call(obj, EFL_TEXT_INTERACTIVE_EVENT_CHANGED_USER, &info);
free(tmp);
@ -632,21 +632,21 @@ static void
_entry_imf_event_selection_set_cb(void *data, Ecore_IMF_Context *ctx EINA_UNUSED, void *event_info)
{
Efl_Canvas_Textblock *obj = data;
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS);
Ecore_IMF_Event_Selection *ev = event_info;
if (ev->start == ev->end)
{
efl_text_cursor_position_set(cur, ev->start);
efl_text_cursor_object_position_set(cur, ev->start);
}
else
{
_sel_clear(obj, en);
efl_text_cursor_position_set(cur, ev->start);
efl_text_cursor_object_position_set(cur, ev->start);
_sel_enable(obj, en);
_sel_init(cur, en);
efl_text_cursor_position_set(cur, ev->end);
efl_text_cursor_object_position_set(cur, ev->end);
_sel_extend(cur, obj, en);
}
}
@ -680,7 +680,7 @@ _entry_imf_cursor_location_set(Efl_Ui_Internal_Text_Interactive_Data *en)
Eina_Rect rect;
if (!en->imf_context) return;
rect = efl_text_cursor_geometry_get(en->main_cursor ,EFL_TEXT_CURSOR_TYPE_BEFORE);
rect = efl_text_cursor_object_cursor_geometry_get(en->main_cursor ,EFL_TEXT_CURSOR_TYPE_BEFORE);
ecore_imf_context_cursor_location_set(en->imf_context, rect.x, rect.y, rect.w, rect.h);
// FIXME: ecore_imf_context_bidi_direction_set(en->imf_context, (Ecore_IMF_BiDi_Direction)dir);
#else
@ -698,13 +698,13 @@ _entry_imf_cursor_info_set(Efl_Ui_Internal_Text_Interactive_Data *en)
if (en->have_selection)
{
if (efl_text_cursor_compare(en->sel_start, en->sel_end) < 0)
cursor_pos = efl_text_cursor_position_get(en->sel_start);
if (efl_text_cursor_object_compare(en->sel_start, en->sel_end) < 0)
cursor_pos = efl_text_cursor_object_position_get(en->sel_start);
else
cursor_pos = efl_text_cursor_position_get(en->sel_end);
cursor_pos = efl_text_cursor_object_position_get(en->sel_end);
}
else
cursor_pos = efl_text_cursor_position_get(en->main_cursor);
cursor_pos = efl_text_cursor_object_position_get(en->main_cursor);
ecore_imf_context_cursor_position_set(en->imf_context, cursor_pos);
@ -758,7 +758,7 @@ static const char *
_entry_selection_get(Efl_Ui_Internal_Text_Interactive *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en)
{
if ((!en->selection) && (en->have_selection))
en->selection = efl_text_cursor_range_text_get(en->sel_start, en->sel_end);
en->selection = efl_text_cursor_object_range_text_get(en->sel_start, en->sel_end);
return en->selection;
}
@ -768,12 +768,12 @@ _sel_reset(Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en){
if (!en->watch_selection)
return;
if (!en->have_selection && efl_text_cursor_equal(en->sel_start, en->sel_end))
if (!en->have_selection && efl_text_cursor_object_equal(en->sel_start, en->sel_end))
return;
if (en->have_selection)
{
if (efl_text_cursor_equal(en->sel_start, en->sel_end))
if (efl_text_cursor_object_equal(en->sel_start, en->sel_end))
{
_sel_clear(obj, en);
}
@ -790,7 +790,7 @@ _sel_reset(Eo *obj, Efl_Ui_Internal_Text_Interactive_Data *en){
}
else
{
if (!efl_text_cursor_equal(en->sel_start, en->sel_end))
if (!efl_text_cursor_object_equal(en->sel_start, en->sel_end))
{
_sel_enable(obj, en);
_entry_imf_cursor_info_set(en);
@ -817,7 +817,7 @@ _sel_cursor_changed(void *data EINA_UNUSED, const Efl_Event *event EINA_UNUSED)
}
static void
_sel_init(Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data *en)
_sel_init(Efl_Text_Cursor_Object *c, Efl_Ui_Internal_Text_Interactive_Data *en)
{
if (en->have_selection)
return;
@ -854,23 +854,23 @@ _sel_enable(Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en)
static void
_emit_sel_state( Eo *o, Efl_Ui_Internal_Text_Interactive_Data *en)
{
if (!efl_text_cursor_compare(en->sel_start, en->sel_end))
if (!efl_text_cursor_object_compare(en->sel_start, en->sel_end))
{
_sel_clear(o, en);
}
else
{
Eina_Range range = eina_range_from_to(efl_text_cursor_position_get(en->sel_start),
efl_text_cursor_position_get(en->sel_end));
Eina_Range range = eina_range_from_to(efl_text_cursor_object_position_get(en->sel_start),
efl_text_cursor_object_position_get(en->sel_end));
efl_event_callback_call(o, EFL_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED, &range);
}
}
static void
_sel_extend(Efl_Text_Cursor *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en)
_sel_extend(Efl_Text_Cursor_Object *c, Evas_Object *o, Efl_Ui_Internal_Text_Interactive_Data *en)
{
_sel_enable(o, en);
if (efl_text_cursor_equal(c, en->sel_end)) return;
if (efl_text_cursor_object_equal(c, en->sel_end)) return;
_sel_watch_freeze(en);
_cur_pos_copy(c, en->sel_end);
@ -919,7 +919,7 @@ _efl_ui_internal_text_interactive_efl_text_interactive_have_selection_get(
const Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en)
{
if (!en->have_selection) return en->have_selection;
return !efl_text_cursor_equal(en->sel_start, en->sel_end);
return !efl_text_cursor_object_equal(en->sel_start, en->sel_end);
}
@ -933,8 +933,8 @@ _efl_ui_internal_text_interactive_efl_text_interactive_all_select(
Eo *c1 = efl_canvas_textblock_cursor_create(obj);
Eo *c2 = efl_canvas_textblock_cursor_create(obj);
efl_text_cursor_move(c1, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_move(c2, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(c1, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_object_move(c2, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_interactive_selection_cursors_set(obj, c1, c2);
@ -944,14 +944,14 @@ _efl_ui_internal_text_interactive_efl_text_interactive_all_select(
static void
_range_del_emit(Evas_Object *obj, Efl_Text_Cursor *cur1, Efl_Text_Cursor *cur2)
_range_del_emit(Evas_Object *obj, Efl_Text_Cursor_Object *cur1, Efl_Text_Cursor_Object *cur2)
{
size_t start, end;
char *tmp;
Efl_Text_Change_Info info = { NULL, 0, 0, 0, 0 };
start = efl_text_cursor_position_get(cur1);
end = efl_text_cursor_position_get(cur2);
start = efl_text_cursor_object_position_get(cur1);
end = efl_text_cursor_object_position_get(cur2);
if (start == end)
return;
@ -959,10 +959,10 @@ _range_del_emit(Evas_Object *obj, Efl_Text_Cursor *cur1, Efl_Text_Cursor *cur2)
info.position = start;
info.length = end - start;
tmp = efl_text_cursor_range_text_get(cur1, cur2);
tmp = efl_text_cursor_object_range_text_get(cur1, cur2);
info.content = tmp;
efl_text_cursor_range_delete(cur1, cur2);
efl_text_cursor_object_range_delete(cur1, cur2);
efl_event_callback_call(obj, EFL_TEXT_INTERACTIVE_EVENT_CHANGED_USER, &info);
if (tmp) free(tmp);
@ -976,25 +976,25 @@ _sel_range_del_emit(Evas_Object *obj, Efl_Ui_Internal_Text_Interactive_Data *en)
}
static void
_delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data *en EINA_UNUSED, size_t pos,
_delete_emit(Eo *obj, Efl_Text_Cursor_Object *c, Efl_Ui_Internal_Text_Interactive_Data *en EINA_UNUSED, size_t pos,
Eina_Bool backspace)
{
Eo * cur = efl_duplicate(c);
if (backspace)
{
if (!efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS))
if (!efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS))
{
return;
}
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
}
else
{
if (!efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT))
if (!efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT))
{
return;
}
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS);
}
efl_del(cur);
cur = NULL;
@ -1006,7 +1006,7 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data
{
Evas_Textblock_Cursor *cc = evas_object_textblock_cursor_new(obj);
evas_textblock_cursor_copy(efl_text_cursor_handle_get(c), cc);
evas_textblock_cursor_copy(efl_text_cursor_object_handle_get(c), cc);
Eina_Bool remove_cluster = evas_textblock_cursor_at_cluster_as_single_glyph(cc,EINA_FALSE);
if (remove_cluster)
{
@ -1020,14 +1020,14 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data
info.position = evas_textblock_cursor_pos_get(cc);
info.length = pos -info.position;
tmp = evas_textblock_cursor_range_text_get(efl_text_cursor_handle_get(c), cc, EVAS_TEXTBLOCK_TEXT_MARKUP);
evas_textblock_cursor_range_delete(efl_text_cursor_handle_get(c), cc);
tmp = evas_textblock_cursor_range_text_get(efl_text_cursor_object_handle_get(c), cc, EVAS_TEXTBLOCK_TEXT_MARKUP);
evas_textblock_cursor_range_delete(efl_text_cursor_object_handle_get(c), cc);
evas_textblock_cursor_free(cc);
}
else
{
Evas_Textblock_Cursor *cc = evas_object_textblock_cursor_new(obj);
evas_textblock_cursor_copy(efl_text_cursor_handle_get(c), cc);
evas_textblock_cursor_copy(efl_text_cursor_object_handle_get(c), cc);
Eina_Bool remove_cluster = evas_textblock_cursor_at_cluster_as_single_glyph(cc,EINA_TRUE);
if (remove_cluster)
@ -1042,8 +1042,8 @@ _delete_emit(Eo *obj, Efl_Text_Cursor *c, Efl_Ui_Internal_Text_Interactive_Data
info.position = pos;
info.length = evas_textblock_cursor_pos_get(cc) - info.position;
tmp = evas_textblock_cursor_range_text_get(efl_text_cursor_handle_get(c), cc, EVAS_TEXTBLOCK_TEXT_MARKUP);
evas_textblock_cursor_range_delete(efl_text_cursor_handle_get(c), cc);
tmp = evas_textblock_cursor_range_text_get(efl_text_cursor_object_handle_get(c), cc, EVAS_TEXTBLOCK_TEXT_MARKUP);
evas_textblock_cursor_range_delete(efl_text_cursor_object_handle_get(c), cc);
evas_textblock_cursor_free(cc);
}
@ -1087,7 +1087,7 @@ _compose_seq_reset(Efl_Ui_Internal_Text_Interactive_Data *en)
* movement_forward: if the movement we are going to do is forward (towards the end of the textblock)
*/
static void
_key_down_sel_pre(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool shift, Eina_Bool movement_forward)
_key_down_sel_pre(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor_Object *cur, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool shift, Eina_Bool movement_forward)
{
if (en->select_allow)
{
@ -1097,7 +1097,7 @@ _key_down_sel_pre(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, E
}
else if (en->have_selection)
{
Eina_Bool sel_forward = efl_text_cursor_compare(en->sel_start, en->sel_end);
Eina_Bool sel_forward = efl_text_cursor_object_compare(en->sel_start, en->sel_end);
if ((sel_forward && movement_forward) || (!sel_forward && !movement_forward))
_cur_pos_copy(en->sel_end, cur);
else
@ -1109,7 +1109,7 @@ _key_down_sel_pre(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, E
}
static void
_key_down_sel_post(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor *cur, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool shift)
_key_down_sel_post(Efl_Ui_Internal_Text_Interactive *obj, Efl_Text_Cursor_Object *cur, Efl_Ui_Internal_Text_Interactive_Data *en, Eina_Bool shift)
{
if (en->select_allow)
{
@ -1122,7 +1122,7 @@ static void
_key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info)
{
Evas_Event_Key_Down *ev = event_info;
Efl_Text_Cursor *cur;
Efl_Text_Cursor_Object *cur;
Eina_Bool control, alt, shift;
#if defined(__APPLE__) && defined(__MACH__)
Eina_Bool super, altgr;
@ -1162,7 +1162,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
#endif
cur = efl_text_interactive_main_cursor_get(obj);
old_cur_pos = efl_text_cursor_position_get(cur);
old_cur_pos = efl_text_cursor_object_position_get(cur);
if (old_cur_pos < 0) return;
control = evas_key_modifier_is_set(ev->modifiers, "Control");
@ -1217,7 +1217,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
if (efl_text_interactive_have_selection_get(obj))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
if (efl_text_cursor_line_jump_by(cur, -1))
if (efl_text_cursor_object_line_jump_by(cur, -1))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
_key_down_sel_post(obj, cur, en, shift);
@ -1233,7 +1233,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
if (efl_text_interactive_have_selection_get(obj))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
if (efl_text_cursor_line_jump_by(cur, 1))
if (efl_text_cursor_object_line_jump_by(cur, 1))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
_key_down_sel_post(obj, cur, en, shift);
@ -1246,14 +1246,14 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_key_down_sel_pre(obj, cur, en, shift, EINA_FALSE);
#if defined(__APPLE__) && defined(__MACH__)
if (altgr) efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
if (altgr) efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
#else
/* If control is pressed, go to the start of the word */
if (control) efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
if (control) efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
#endif
if (efl_text_interactive_have_selection_get(obj))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
if (efl_text_cursor_move(cur,EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS))
if (efl_text_cursor_object_move(cur,EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
_key_down_sel_post(obj, cur, en, shift);
@ -1265,14 +1265,14 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_key_down_sel_pre(obj, cur, en, shift, EINA_TRUE);
#if defined(__APPLE__) && defined(__MACH__)
if (altgr) efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
if (altgr) efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
#else
/* If control is pressed, go to the end of the word */
if (control) efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
if (control) efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
#endif
if (efl_text_interactive_have_selection_get(obj))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
if (efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT))
if (efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT))
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
_key_down_sel_post(obj, cur, en, shift);
@ -1283,10 +1283,10 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
if (control && !en->have_selection)
{
// del to start of previous word
Efl_Text_Cursor *tc = efl_canvas_textblock_cursor_create(obj);
Efl_Text_Cursor_Object *tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
_range_del_emit(obj, cur, tc);
@ -1317,11 +1317,11 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
if (control)
{
// del to end of next word
Efl_Text_Cursor *tc = efl_canvas_textblock_cursor_create(obj);
Efl_Text_Cursor_Object *tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
_range_del_emit(obj, cur, tc);
@ -1354,9 +1354,9 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_key_down_sel_pre(obj, cur, en, shift, EINA_FALSE);
if ((control) && (multiline))
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
else
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
_key_down_sel_post(obj, cur, en, shift);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@ -1369,9 +1369,9 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_key_down_sel_pre(obj, cur, en, shift, EINA_TRUE);
if ((control) && (multiline))
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
else
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
_key_down_sel_post(obj, cur, en, shift);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@ -1444,7 +1444,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_compose_seq_reset(en);
_key_down_sel_pre(obj, cur, en, shift, EINA_FALSE);
efl_text_cursor_line_jump_by(cur, -10);
efl_text_cursor_object_line_jump_by(cur, -10);
_key_down_sel_post(obj, cur, en, shift);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@ -1455,7 +1455,7 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
_compose_seq_reset(en);
_key_down_sel_pre(obj, cur, en, shift, EINA_TRUE);
efl_text_cursor_line_jump_by(cur, 10);
efl_text_cursor_object_line_jump_by(cur, 10);
_key_down_sel_post(obj, cur, en, shift);
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@ -1533,10 +1533,10 @@ _key_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
}
info.type = EFL_TEXT_CHANGE_TYPE_INSERT;
info.content = string;
info.position = efl_text_cursor_position_get(cur);
info.position = efl_text_cursor_object_position_get(cur);
info.length = eina_unicode_utf8_get_len(string);
efl_text_cursor_text_insert(cur, string);
efl_text_cursor_object_text_insert(cur, string);
changed_user = EINA_TRUE;
ev->event_flags |= EVAS_EVENT_FLAG_ON_HOLD;
@ -1553,12 +1553,12 @@ end:
}
static void
_cursor_char_coord_set(Efl_Canvas_Textblock *obj, Efl_Text_Cursor *cur, Evas_Coord canvasx, Evas_Coord canvasy, Evas_Coord *_cx, Evas_Coord *_cy)
_cursor_char_coord_set(Efl_Canvas_Textblock *obj, Efl_Text_Cursor_Object *cur, Evas_Coord canvasx, Evas_Coord canvasy, Evas_Coord *_cx, Evas_Coord *_cy)
{
Evas_Coord cx, cy;
Evas_Coord x, y, lh = 0, cly = 0;
Efl_Text_Cursor *line_cur;
Efl_Text_Cursor *tc;
Efl_Text_Cursor_Object *line_cur;
Efl_Text_Cursor_Object *tc;
tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
@ -1567,15 +1567,15 @@ _cursor_char_coord_set(Efl_Canvas_Textblock *obj, Efl_Text_Cursor *cur, Evas_Coo
cy = canvasy - y;
line_cur = efl_canvas_textblock_cursor_create(obj);
efl_text_cursor_move(line_cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
evas_textblock_cursor_line_geometry_get(efl_text_cursor_handle_get(line_cur), NULL, &cly, NULL, &lh);
efl_text_cursor_object_move(line_cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
evas_textblock_cursor_line_geometry_get(efl_text_cursor_object_handle_get(line_cur), NULL, &cly, NULL, &lh);
/* Consider a threshold of half the line height */
if (cy > (cly + lh) && cy < (cly + lh + lh / 2))
{
cy = cly + lh - 1; // Make it inside Textblock
}
efl_text_cursor_move(line_cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
evas_textblock_cursor_line_geometry_get(efl_text_cursor_handle_get(line_cur), NULL, &cly, NULL, NULL);
efl_text_cursor_object_move(line_cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
evas_textblock_cursor_line_geometry_get(efl_text_cursor_object_handle_get(line_cur), NULL, &cly, NULL, NULL);
if (cy < cly && cy > (cly - lh / 2))
{
@ -1584,7 +1584,7 @@ _cursor_char_coord_set(Efl_Canvas_Textblock *obj, Efl_Text_Cursor *cur, Evas_Coo
efl_del(line_cur);
/* No need to check return value if not able to set the char coord Textblock
* will take care */
efl_text_cursor_char_coord_set(cur, EINA_POSITION2D(cx, cy));
efl_text_cursor_object_char_coord_set(cur, EINA_POSITION2D(cx, cy));
if (_cx) *_cx = cx;
if (_cy) *_cy = cy;
}
@ -1595,8 +1595,8 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN
Evas_Coord cx, cy;
Evas_Event_Mouse_Down *ev = event_info;
Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS);
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor *tc = NULL;
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *tc = NULL;
Eina_Bool dosel = EINA_FALSE;
Eina_Bool shift;
@ -1627,10 +1627,10 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN
{
tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
if (efl_text_cursor_compare(cur, en->sel_start) < 0)
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
if (efl_text_cursor_object_compare(cur, en->sel_start) < 0)
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
else
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
_sel_extend(cur, obj, en);
}
else
@ -1640,9 +1640,9 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN
_sel_clear(obj, en);
tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
_sel_init(cur, en);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
_sel_extend(cur, obj, en);
}
goto end;
@ -1653,12 +1653,12 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN
{
tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
if (efl_text_cursor_compare(cur, en->sel_start) < 0)
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
if (efl_text_cursor_object_compare(cur, en->sel_start) < 0)
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
else
{
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
}
_sel_extend(cur, obj, en);
}
@ -1669,10 +1669,10 @@ _mouse_down_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EIN
_sel_clear(obj, en);
tc = efl_canvas_textblock_cursor_create(obj);
_cur_pos_copy(cur, tc);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
_sel_init(cur, en);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
_sel_extend(cur, obj, en);
}
goto end;
@ -1703,7 +1703,7 @@ _mouse_up_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void
{
Evas_Coord cx, cy;
Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS);
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
Evas_Event_Mouse_Up *ev = event_info;
if ((!ev) || (ev->button != 1)) return;
@ -1744,10 +1744,10 @@ _mouse_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, vo
{
Evas_Coord cx, cy;
Efl_Ui_Internal_Text_Interactive_Data *en = efl_data_scope_get(obj, MY_CLASS);
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
Evas_Event_Mouse_Move *ev = event_info;
Evas_Coord x, y, w, h;
Efl_Text_Cursor *tc;
Efl_Text_Cursor_Object *tc;
Eina_Bool multiline;
multiline = efl_text_multiline_get(obj);
@ -1774,28 +1774,28 @@ _mouse_move_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, vo
if (multiline)
{
efl_text_cursor_char_coord_set(cur, EINA_POSITION2D(cx, cy));
efl_text_cursor_object_char_coord_set(cur, EINA_POSITION2D(cx, cy));
}
else
{
Evas_Coord lx, ly, lw, lh;
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
evas_textblock_cursor_line_geometry_get(efl_text_cursor_handle_get(cur), &lx, &ly, &lw, &lh);
efl_text_cursor_char_coord_set(cur, EINA_POSITION2D(cx, ly + (lh / 2)));
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
evas_textblock_cursor_line_geometry_get(efl_text_cursor_object_handle_get(cur), &lx, &ly, &lw, &lh);
efl_text_cursor_object_char_coord_set(cur, EINA_POSITION2D(cx, ly + (lh / 2)));
}
if (en->select_allow)
{
_sel_extend(cur, obj, en);
if (!efl_text_cursor_equal(en->sel_start, en->sel_end))
if (!efl_text_cursor_object_equal(en->sel_start, en->sel_end))
_sel_enable(obj, en);
}
efl_del(tc);
}
}
EOLIAN static Efl_Text_Cursor *
EOLIAN static Efl_Text_Cursor_Object *
_efl_ui_internal_text_interactive_efl_text_interactive_main_cursor_get(const Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *pd)
{
return pd->main_cursor;
@ -1833,9 +1833,9 @@ _efl_ui_internal_text_interactive_efl_object_finalize(Eo *obj, Efl_Ui_Internal_T
en->sel_start = efl_canvas_textblock_cursor_create(obj);
en->sel_end = efl_canvas_textblock_cursor_create(obj);
efl_event_callback_add(en->sel_start, EFL_TEXT_CURSOR_EVENT_CHANGED,
efl_event_callback_add(en->sel_start, EFL_TEXT_CURSOR_OBJECT_EVENT_CHANGED,
_sel_cursor_changed, obj);
efl_event_callback_add(en->sel_end, EFL_TEXT_CURSOR_EVENT_CHANGED,
efl_event_callback_add(en->sel_end, EFL_TEXT_CURSOR_OBJECT_EVENT_CHANGED,
_sel_cursor_changed, obj);
#ifdef HAVE_ECORE_IMF
@ -1908,7 +1908,7 @@ _efl_ui_internal_text_interactive_efl_text_text_set(Eo *eo_obj, Efl_Ui_Internal_
const char *text)
{
efl_text_set(efl_super(eo_obj, MY_CLASS), text);
efl_text_cursor_move(o->main_cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(o->main_cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
}
EOLIAN void
@ -1916,7 +1916,7 @@ _efl_ui_internal_text_interactive_efl_text_markup_markup_set(Eo *eo_obj, Efl_Ui_
const char *text)
{
efl_text_markup_set(efl_super(eo_obj, MY_CLASS), text);
efl_text_cursor_move(o->main_cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(o->main_cursor, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
}
EOLIAN static void
@ -1939,10 +1939,10 @@ _efl_ui_internal_text_interactive_efl_text_interactive_selection_allowed_get(con
}
EOLIAN static void
_efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_get(const Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *pd, Efl_Text_Cursor **start, Efl_Text_Cursor **end)
_efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_get(const Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *pd, Efl_Text_Cursor_Object **start, Efl_Text_Cursor_Object **end)
{
if (efl_text_cursor_position_get(pd->sel_start) >
efl_text_cursor_position_get(pd->sel_end))
if (efl_text_cursor_object_position_get(pd->sel_start) >
efl_text_cursor_object_position_get(pd->sel_end))
{
if (start) *start = pd->sel_end;
if (end) *end = pd->sel_start;
@ -1955,16 +1955,16 @@ _efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_get(con
}
EOLIAN static void
_efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_set(Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en, Efl_Text_Cursor *start, Efl_Text_Cursor *end)
_efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_set(Eo *obj EINA_UNUSED, Efl_Ui_Internal_Text_Interactive_Data *en, Efl_Text_Cursor_Object *start, Efl_Text_Cursor_Object *end)
{
if (!efl_text_interactive_selection_allowed_get(obj))
return;
int new_sel_start_pos = efl_text_cursor_position_get(start);
int new_sel_end_pos = efl_text_cursor_position_get(end);
int new_sel_start_pos = efl_text_cursor_object_position_get(start);
int new_sel_end_pos = efl_text_cursor_object_position_get(end);
int current_sel_start_pos = efl_text_cursor_position_get(en->sel_start);
int current_sel_end_pos = efl_text_cursor_position_get(en->sel_end);
int current_sel_start_pos = efl_text_cursor_object_position_get(en->sel_start);
int current_sel_end_pos = efl_text_cursor_object_position_get(en->sel_end);
Eina_Bool b_start_changed = (new_sel_start_pos == current_sel_start_pos);
Eina_Bool b_end_changed = (new_sel_end_pos == current_sel_end_pos);
@ -1973,8 +1973,8 @@ _efl_ui_internal_text_interactive_efl_text_interactive_selection_cursors_set(Eo
return;
_sel_watch_freeze(en);
efl_text_cursor_position_set(en->sel_start, new_sel_start_pos);
efl_text_cursor_position_set(en->sel_end, new_sel_end_pos);
efl_text_cursor_object_position_set(en->sel_start, new_sel_start_pos);
efl_text_cursor_object_position_set(en->sel_end, new_sel_end_pos);
_sel_watch_thaw(en);
_sel_reset(obj, en);
}

View File

@ -59,7 +59,7 @@ struct _Efl_Ui_Textbox_Data
Mod_Api *api; // module api if supplied
int cursor_pos;
Elm_Scroller_Policy policy_h, policy_v;
Efl_Text_Cursor *sel_handler_cursor;
Efl_Text_Cursor_Object *sel_handler_cursor;
struct
{
Evas_Object *hover_parent; /**< hover parent object. entry is a hover parent object by default */
@ -311,7 +311,7 @@ _update_selection_handler(Eo *obj)
Eina_Position2D off;
Evas_Coord hx, hy;
Eina_Bool hidden = EINA_FALSE;
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor_Object *sel_start, *sel_end;
Eina_Rect rc_tmp;
efl_text_interactive_selection_cursors_get(obj, &sel_start, &sel_end);
@ -321,7 +321,7 @@ _update_selection_handler(Eo *obj)
//evas_object_geometry_get(sd->entry_edje, &ent_x, &ent_y, NULL, NULL);
rc_tmp = efl_text_cursor_geometry_get(sel_start, EFL_TEXT_CURSOR_TYPE_BEFORE);
rc_tmp = efl_text_cursor_object_cursor_geometry_get(sel_start, EFL_TEXT_CURSOR_TYPE_BEFORE);
sx = rc_tmp.x;
sy = rc_tmp.y;
sh = rc_tmp.h;
@ -352,7 +352,7 @@ _update_selection_handler(Eo *obj)
}
hidden = EINA_FALSE;
rc_tmp = efl_text_cursor_geometry_get(sel_end, EFL_TEXT_CURSOR_TYPE_BEFORE);
rc_tmp = efl_text_cursor_object_cursor_geometry_get(sel_end, EFL_TEXT_CURSOR_TYPE_BEFORE);
ex = rc_tmp.x;
ey = rc_tmp.y;
eh = rc_tmp.h;
@ -401,7 +401,7 @@ _selection_data_cb(Efl_Ui_Textbox *obj, void *data EINA_UNUSED, const Eina_Value
{
Eina_Content *content;
Eina_Slice slice;
Efl_Text_Cursor *cur, *start, *end;
Efl_Text_Cursor_Object *cur, *start, *end;
Efl_Text_Change_Info info = { NULL, 0, 0, 0, 0 };
if (eina_value_type_get(&value) != EINA_VALUE_TYPE_CONTENT)
@ -410,19 +410,19 @@ _selection_data_cb(Efl_Ui_Textbox *obj, void *data EINA_UNUSED, const Eina_Value
content = eina_value_to_content(&value);
slice = eina_content_data_get(content);
efl_text_interactive_selection_cursors_get(obj, &start, &end);
if (!efl_text_cursor_equal(start, end))
if (!efl_text_cursor_object_equal(start, end))
{
efl_text_cursor_range_delete(start, end);
efl_text_cursor_object_range_delete(start, end);
efl_text_interactive_all_unselect(obj);
}
cur = efl_text_interactive_main_cursor_get(obj);
info.type = EFL_TEXT_CHANGE_TYPE_INSERT;
info.position = efl_text_cursor_position_get(cur);
info.position = efl_text_cursor_object_position_get(cur);
info.length = slice.len;
info.content = slice.mem;
if (eina_streq(eina_content_type_get(content), "application/x-elementary-markup"))
{
efl_text_cursor_markup_insert(cur, slice.mem);
efl_text_cursor_object_markup_insert(cur, slice.mem);
}
else if (!strncmp(eina_content_type_get(content), "image/", strlen("image/")))
{
@ -430,12 +430,12 @@ _selection_data_cb(Efl_Ui_Textbox *obj, void *data EINA_UNUSED, const Eina_Value
eina_strbuf_append_printf(result, "<item absize=240x180 href=");
eina_strbuf_append_slice(result, slice);
eina_strbuf_append_printf(result, "></item>");
efl_text_cursor_markup_insert(cur, eina_strbuf_string_get(result));
efl_text_cursor_object_markup_insert(cur, eina_strbuf_string_get(result));
eina_strbuf_free(result);
}
else // TEXT
{
efl_text_cursor_text_insert(cur, slice.mem);
efl_text_cursor_object_text_insert(cur, slice.mem);
}
efl_event_callback_call(obj, EFL_TEXT_INTERACTIVE_EVENT_CHANGED_USER, &info);
@ -649,10 +649,10 @@ _cursor_geometry_recalc(Evas_Object *obj)
cx = cy = cw = ch = 0;
Efl_Text_Cursor *main_cur =
Efl_Text_Cursor_Object *main_cur =
efl_text_interactive_main_cursor_get(obj);
rc = efl_text_cursor_geometry_get(main_cur, EFL_TEXT_CURSOR_TYPE_BEFORE);
rc = efl_text_cursor_object_cursor_geometry_get(main_cur, EFL_TEXT_CURSOR_TYPE_BEFORE);
cx = rc.x;
cy = rc.y;
cw = rc.w;
@ -779,7 +779,7 @@ _efl_ui_textbox_efl_ui_widget_interest_region_get(const Eo *obj EINA_UNUSED, Efl
Eina_Rect edje, elm;
Eina_Rect r = {};
r = efl_text_cursor_geometry_get(
r = efl_text_cursor_object_cursor_geometry_get(
efl_text_interactive_main_cursor_get(obj), EFL_TEXT_CURSOR_TYPE_BEFORE);
if (!efl_text_multiline_get(obj))
@ -849,11 +849,11 @@ _selection_store(Efl_Ui_Cnp_Buffer buffer,
Evas_Object *obj)
{
char *sel;
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
Eina_Content *content;
efl_text_interactive_selection_cursors_get(obj, &start, &end);
sel = efl_text_cursor_range_markup_get(start, end);
sel = efl_text_cursor_object_range_markup_get(start, end);
if ((!sel) || (!sel[0])) return; /* avoid deleting our own selection */
@ -1254,7 +1254,7 @@ _selection_handlers_offset_calc(Evas_Object *obj, Evas_Object *handler)
EFL_UI_TEXT_DATA_GET(obj, sd);
pos = efl_gfx_entity_position_get(sd->text_obj);
rc = efl_text_cursor_geometry_get(
rc = efl_text_cursor_object_cursor_geometry_get(
efl_text_interactive_main_cursor_get(obj), EFL_TEXT_CURSOR_TYPE_BEFORE);
cx = rc.x;
cy = rc.y;
@ -1283,8 +1283,8 @@ _start_handler_mouse_down_cb(void *data, const Efl_Event *event EINA_UNUSED)
EFL_UI_TEXT_DATA_GET(data, sd);
int start_pos, end_pos, pos;
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor *main_cur;
Efl_Text_Cursor_Object *sel_start, *sel_end;
Efl_Text_Cursor_Object *main_cur;
Eo *text_obj = sd->text_obj;
@ -1294,8 +1294,8 @@ _start_handler_mouse_down_cb(void *data, const Efl_Event *event EINA_UNUSED)
efl_text_interactive_selection_cursors_get(text_obj, &sel_start, &sel_end);
main_cur = efl_text_interactive_main_cursor_get(text_obj);
start_pos = efl_text_cursor_position_get(sel_start);
end_pos = efl_text_cursor_position_get(sel_end);
start_pos = efl_text_cursor_object_position_get(sel_start);
end_pos = efl_text_cursor_object_position_get(sel_end);
if (start_pos <= end_pos)
{
@ -1307,7 +1307,7 @@ _start_handler_mouse_down_cb(void *data, const Efl_Event *event EINA_UNUSED)
pos = end_pos;
sd->sel_handler_cursor = sel_end;
}
efl_text_cursor_position_set(main_cur, pos);
efl_text_cursor_object_position_set(main_cur, pos);
_selection_handlers_offset_calc(data, sd->start_handler);
}
@ -1341,11 +1341,11 @@ _start_handler_mouse_move_cb(void *data, const Efl_Event *event)
cy = ev->cur.y - sd->oy - re.y;
if (cx <= 0) cx = 1;
efl_text_cursor_char_coord_set(sd->sel_handler_cursor, EINA_POSITION2D(cx, cy));
pos = efl_text_cursor_position_get(sd->sel_handler_cursor);
efl_text_cursor_object_char_coord_set(sd->sel_handler_cursor, EINA_POSITION2D(cx, cy));
pos = efl_text_cursor_object_position_get(sd->sel_handler_cursor);
/* Set the main cursor. */
efl_text_cursor_position_set(
efl_text_cursor_object_position_set(
efl_text_interactive_main_cursor_get(sd->text_obj), pos);
efl_input_clickable_longpress_abort(data, 1);
@ -1357,8 +1357,8 @@ _end_handler_mouse_down_cb(void *data, const Efl_Event *event EINA_UNUSED)
{
EFL_UI_TEXT_DATA_GET(data, sd);
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor *main_cur;
Efl_Text_Cursor_Object *sel_start, *sel_end;
Efl_Text_Cursor_Object *main_cur;
int pos, start_pos, end_pos;
sd->end_handler_down = EINA_TRUE;
@ -1368,8 +1368,8 @@ _end_handler_mouse_down_cb(void *data, const Efl_Event *event EINA_UNUSED)
efl_text_interactive_selection_cursors_get(text_obj, &sel_start, &sel_end);
main_cur = efl_text_interactive_main_cursor_get(text_obj);
start_pos = efl_text_cursor_position_get(sel_start);
end_pos = efl_text_cursor_position_get(sel_end);
start_pos = efl_text_cursor_object_position_get(sel_start);
end_pos = efl_text_cursor_object_position_get(sel_end);
if (start_pos < end_pos)
{
@ -1382,7 +1382,7 @@ _end_handler_mouse_down_cb(void *data, const Efl_Event *event EINA_UNUSED)
sd->sel_handler_cursor = sel_start;
}
efl_text_cursor_position_set(main_cur, pos);
efl_text_cursor_object_position_set(main_cur, pos);
_selection_handlers_offset_calc(data, sd->end_handler);
}
@ -1416,10 +1416,10 @@ _end_handler_mouse_move_cb(void *data, const Efl_Event *event)
cy = ev->cur.y - sd->oy - re.y;
if (cx <= 0) cx = 1;
efl_text_cursor_char_coord_set(sd->sel_handler_cursor, EINA_POSITION2D(cx, cy));
pos = efl_text_cursor_position_get(sd->sel_handler_cursor);
efl_text_cursor_object_char_coord_set(sd->sel_handler_cursor, EINA_POSITION2D(cx, cy));
pos = efl_text_cursor_object_position_get(sd->sel_handler_cursor);
/* Set the main cursor. */
efl_text_cursor_position_set(efl_text_interactive_main_cursor_get(data), pos);
efl_text_cursor_object_position_set(efl_text_interactive_main_cursor_get(data), pos);
efl_input_clickable_longpress_abort(data, 1);
sd->long_pressed = EINA_FALSE;
}
@ -1707,7 +1707,7 @@ _efl_ui_textbox_efl_object_finalize(Eo *obj,
_efl_ui_textbox_selection_start_clear_cb, obj);
efl_event_callback_add(sd->text_obj, EFL_TEXT_INTERACTIVE_EVENT_SELECTION_CHANGED,
_efl_ui_textbox_selection_changed_cb, obj);
efl_event_callback_add(efl_text_interactive_main_cursor_get(sd->text_obj), EFL_TEXT_CURSOR_EVENT_CHANGED,
efl_event_callback_add(efl_text_interactive_main_cursor_get(sd->text_obj), EFL_TEXT_CURSOR_OBJECT_EVENT_CHANGED,
_efl_ui_textbox_cursor_changed_cb, obj);
efl_event_callback_add(sd->text_obj, EFL_GFX_ENTITY_EVENT_POSITION_CHANGED,
_text_position_changed_cb, obj);
@ -1822,12 +1822,12 @@ _efl_ui_textbox_calc_force(Eo *obj, Efl_Ui_Textbox_Data *sd)
static const char*
_efl_ui_textbox_selection_get(const Eo *obj, Efl_Ui_Textbox_Data *sd EINA_UNUSED)
{
Efl_Text_Cursor *start_obj, *end_obj;
Efl_Text_Cursor_Object *start_obj, *end_obj;
if ((efl_text_password_get(obj))) return NULL;
efl_text_interactive_selection_cursors_get(obj, &start_obj, &end_obj);
return efl_text_cursor_range_text_get(start_obj, end_obj);
return efl_text_cursor_object_range_text_get(start_obj, end_obj);
}
EOLIAN static void
@ -1846,17 +1846,17 @@ _efl_ui_textbox_selection_handles_enabled_get(const Eo *obj EINA_UNUSED, Efl_Ui_
static void
_efl_ui_textbox_entry_insert(Eo *obj, Efl_Ui_Textbox_Data *sd, const char *entry)
{
Efl_Text_Cursor *cur_obj = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_text_insert(cur_obj, entry);
Efl_Text_Cursor_Object *cur_obj = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_object_text_insert(cur_obj, entry);
sd->text_changed = EINA_TRUE;
efl_canvas_group_change(obj);
}
EOLIAN static Efl_Text_Cursor *
EOLIAN static Efl_Text_Cursor_Object *
_efl_ui_textbox_cursor_create(Eo *obj, Efl_Ui_Textbox_Data *pd)
{
Eo* cursor = efl_text_cursor_create(pd->text_obj);;
efl_text_cursor_text_object_set(cursor, pd->text_obj, obj);
Eo* cursor = efl_text_cursor_object_create(pd->text_obj);;
efl_text_cursor_object_text_object_set(cursor, pd->text_obj, obj);
return cursor;
}
@ -1887,31 +1887,31 @@ _efl_ui_textbox_efl_text_interactive_editable_set(Eo *obj, Efl_Ui_Textbox_Data *
static void
_efl_ui_textbox_select_region_set(Eo *obj, Efl_Ui_Textbox_Data *sd EINA_UNUSED, int start, int end)
{
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor_Object *sel_start, *sel_end;
if (efl_text_password_get(obj)) return;
efl_text_interactive_selection_cursors_get(obj, &sel_start, &sel_end);
efl_text_cursor_position_set(sel_start, start);
efl_text_cursor_position_set(sel_end, end);
efl_text_cursor_object_position_set(sel_start, start);
efl_text_cursor_object_position_set(sel_end, end);
}
static void
_efl_ui_textbox_select_region_get(Eo *obj, int *start, int *end)
{
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor_Object *sel_start, *sel_end;
efl_text_interactive_selection_cursors_get(obj, &sel_start, &sel_end);
if(start) *start = efl_text_cursor_position_get(sel_start);
if(end) *end = efl_text_cursor_position_get(sel_end);
if(start) *start = efl_text_cursor_object_position_get(sel_start);
if(end) *end = efl_text_cursor_object_position_get(sel_end);
}
EOLIAN static void
_efl_ui_textbox_selection_cut(Eo *obj, Efl_Ui_Textbox_Data *sd)
{
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
Efl_Text_Change_Info info = { NULL, 0, 0, 0, 0 };
char *tmp;
int end_pos, start_pos;
@ -1931,14 +1931,14 @@ _efl_ui_textbox_selection_cut(Eo *obj, Efl_Ui_Textbox_Data *sd)
_selection_store(EFL_UI_CNP_BUFFER_COPY_AND_PASTE, obj);
efl_text_interactive_selection_cursors_get(obj, &start, &end);
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);
start_pos = efl_text_cursor_object_position_get(start);
end_pos = efl_text_cursor_object_position_get(end);
tmp = efl_text_cursor_object_range_text_get(start, end);
info.type = EFL_TEXT_CHANGE_TYPE_REMOVE;
info.position = start_pos;
info.length = end_pos - start_pos;
info.content = tmp;
efl_text_cursor_range_delete(start, end);
efl_text_cursor_object_range_delete(start, end);
efl_event_callback_call(obj, EFL_TEXT_INTERACTIVE_EVENT_CHANGED_USER, &info);
free(tmp);
tmp = NULL;
@ -2220,13 +2220,13 @@ fail:
EOLIAN static int
_efl_ui_textbox_efl_access_text_caret_offset_get(const Eo *obj, Efl_Ui_Textbox_Data *_pd EINA_UNUSED)
{
return efl_text_cursor_position_get(efl_text_interactive_main_cursor_get(obj));
return efl_text_cursor_object_position_get(efl_text_interactive_main_cursor_get(obj));
}
EOLIAN static Eina_Bool
_efl_ui_textbox_efl_access_text_caret_offset_set(Eo *obj, Efl_Ui_Textbox_Data *_pd EINA_UNUSED, int offset)
{
efl_text_cursor_position_set(efl_text_interactive_main_cursor_get(obj), offset);
efl_text_cursor_object_position_set(efl_text_interactive_main_cursor_get(obj), offset);
return EINA_TRUE;
}
@ -2410,7 +2410,7 @@ _textblock_node_format_to_atspi_text_attr(Efl_Text_Attribute_Handle *annotation)
EOLIAN static Eina_Bool
_efl_ui_textbox_efl_access_text_attribute_get(const Eo *obj, Efl_Ui_Textbox_Data *_pd EINA_UNUSED, const char *attr_name EINA_UNUSED, int *start_offset, int *end_offset, char **value)
{
Efl_Text_Cursor *cur1, *cur2;
Efl_Text_Cursor_Object *cur1, *cur2;
Efl_Access_Text_Attribute *attr;
Eina_Iterator *annotations;
Efl_Text_Attribute_Handle *an;
@ -2426,8 +2426,8 @@ _efl_ui_textbox_efl_access_text_attribute_get(const Eo *obj, Efl_Ui_Textbox_Data
return EINA_FALSE;
}
efl_text_cursor_position_set(cur1, *start_offset);
efl_text_cursor_position_set(cur2, *end_offset);
efl_text_cursor_object_position_set(cur1, *start_offset);
efl_text_cursor_object_position_set(cur2, *end_offset);
annotations = efl_text_formatter_range_attributes_get(cur1, cur2);
@ -2456,7 +2456,7 @@ _efl_ui_textbox_efl_access_text_attribute_get(const Eo *obj, Efl_Ui_Textbox_Data
EOLIAN static Eina_List*
_efl_ui_textbox_efl_access_text_text_attributes_get(const Eo *obj, Efl_Ui_Textbox_Data *pd EINA_UNUSED, int *start_offset, int *end_offset)
{
Efl_Text_Cursor *cur1, *cur2;
Efl_Text_Cursor_Object *cur1, *cur2;
Eina_List *ret = NULL;
Efl_Access_Text_Attribute *attr;
Eina_Iterator *annotations;
@ -2472,8 +2472,8 @@ _efl_ui_textbox_efl_access_text_text_attributes_get(const Eo *obj, Efl_Ui_Textbo
return NULL;
}
efl_text_cursor_position_set(cur1, *start_offset);
efl_text_cursor_position_set(cur2, *end_offset);
efl_text_cursor_object_position_set(cur1, *start_offset);
efl_text_cursor_object_position_set(cur2, *end_offset);
annotations = efl_text_formatter_range_attributes_get(cur1, cur2);
@ -2498,7 +2498,7 @@ _efl_ui_textbox_efl_access_text_default_attributes_get(const Eo *obj, Efl_Ui_Tex
{
Eina_List *ret = NULL;
Efl_Access_Text_Attribute *attr;
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
Eina_Iterator *annotations;
Efl_Text_Attribute_Handle *an;
@ -2507,8 +2507,8 @@ _efl_ui_textbox_efl_access_text_default_attributes_get(const Eo *obj, Efl_Ui_Tex
start = efl_ui_textbox_cursor_create(mobj);
end = efl_ui_textbox_cursor_create(mobj);
efl_text_cursor_move(start, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_move(end, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(start, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_object_move(end, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
annotations = efl_text_formatter_range_attributes_get(start, end);
@ -2533,8 +2533,8 @@ _efl_ui_textbox_efl_access_editable_text_text_content_set(Eo *obj, Efl_Ui_Textbo
EOLIAN static Eina_Bool
_efl_ui_textbox_efl_access_editable_text_insert(Eo *obj, Efl_Ui_Textbox_Data *pd, const char *string, int position)
{
Efl_Text_Cursor *cur_obj = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_position_set(cur_obj, position);
Efl_Text_Cursor_Object *cur_obj = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_object_position_set(cur_obj, position);
_efl_ui_textbox_entry_insert(obj, pd, string);
return EINA_TRUE;
@ -2583,8 +2583,8 @@ _efl_ui_textbox_efl_access_editable_text_delete(Eo *obj, Efl_Ui_Textbox_Data *pd
EOLIAN static Eina_Bool
_efl_ui_textbox_efl_access_editable_text_paste(Eo *obj, Efl_Ui_Textbox_Data *_pd EINA_UNUSED, int position)
{
Efl_Text_Cursor *cur_obj = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_position_set(cur_obj, position);
Efl_Text_Cursor_Object *cur_obj = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_object_position_set(cur_obj, position);
efl_ui_textbox_selection_paste(obj);
return EINA_TRUE;
}
@ -2696,8 +2696,8 @@ _update_text_cursors(Eo *obj)
xx = yy = ww = hh = -1;
off =_decoration_calc_offset(sd);
rc_tmp1 = efl_text_cursor_geometry_get(efl_text_interactive_main_cursor_get(text_obj), EFL_TEXT_CURSOR_TYPE_BEFORE);
bidi_cursor = efl_text_cursor_lower_cursor_geometry_get(efl_text_interactive_main_cursor_get(text_obj), &rc_tmp2);
rc_tmp1 = efl_text_cursor_object_cursor_geometry_get(efl_text_interactive_main_cursor_get(text_obj), EFL_TEXT_CURSOR_TYPE_BEFORE);
bidi_cursor = efl_text_cursor_object_lower_cursor_geometry_get(efl_text_interactive_main_cursor_get(text_obj), &rc_tmp2);
xx = rc_tmp1.x;
yy = rc_tmp1.y;
ww = rc_tmp1.w;
@ -2747,7 +2747,7 @@ static void
_update_text_selection(Eo *obj, Eo *text_obj)
{
Eina_Position2D off;
Efl_Text_Cursor *sel_start, *sel_end;
Efl_Text_Cursor_Object *sel_start, *sel_end;
Eina_List *l;
Eina_Iterator *range;
@ -2763,7 +2763,7 @@ _update_text_selection(Eo *obj, Eo *text_obj)
efl_text_interactive_selection_cursors_get(text_obj, &sel_start, &sel_end);
range = efl_text_cursor_range_geometry_get(sel_start, sel_end);
range = efl_text_cursor_object_range_geometry_get(sel_start, sel_end);
l = sd->sel;
EINA_ITERATOR_FOREACH(range, r)
@ -2913,7 +2913,7 @@ _anchors_update(Eo *obj, Efl_Ui_Textbox_Data *sd)
Evas_Object *smart, *clip;
Eina_Iterator *it;
Eina_Position2D off;
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
Efl_Text_Attribute_Handle *an;
Eina_List *i, *ii;
Anchor *anc;
@ -2927,8 +2927,8 @@ _anchors_update(Eo *obj, Efl_Ui_Textbox_Data *sd)
end = efl_canvas_textblock_cursor_create(sd->text_obj);
/* Retrieve all annotations in the text. */
efl_text_cursor_move(start, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_move(end, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(start, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_object_move(end, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
it = efl_text_formatter_range_attributes_get(start, end);
efl_del(start);
@ -2988,7 +2988,7 @@ _anchors_update(Eo *obj, Efl_Ui_Textbox_Data *sd)
end = efl_ui_textbox_cursor_create(obj);
efl_text_formatter_attribute_cursors_get(anc->annotation, start, end);
range = efl_text_cursor_range_geometry_get(start, end);
range = efl_text_cursor_object_range_geometry_get(start, end);
count = eina_list_count(eina_iterator_container_get(range));
// Add additional rectangles if needed

View File

@ -83,7 +83,7 @@ class Efl.Ui.Textbox extends Efl.Ui.Layout_Base implements Efl.Input.Clickable,
}
cursor_create {
[[Creates and returns a new cursor for the text.]]
return: Efl.Text.Cursor @move; [[Text cursor.]]
return: Efl.Text_Cursor.Object @move; [[Text cursor.]]
}
selection_copy {
[[This executes a "copy" action on the selected text in the widget.]]

View File

@ -1315,30 +1315,30 @@ _text_string_at_offset_get(const Eldbus_Service_Interface *iface, const Eldbus_M
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, start);
Efl_Text_Cursor_Object *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, start);
switch(gran)
{
case EFL_ACCESS_TEXT_GRANULARITY_CHAR:
efl_text_cursor_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
efl_text_cursor_object_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT);
break;
case EFL_ACCESS_TEXT_GRANULARITY_WORD:
efl_text_cursor_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
efl_text_cursor_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
efl_text_cursor_object_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START);
efl_text_cursor_object_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END);
break;
case EFL_ACCESS_TEXT_GRANULARITY_LINE:
efl_text_cursor_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
efl_text_cursor_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
efl_text_cursor_object_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START);
efl_text_cursor_object_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END);
break;
case EFL_ACCESS_TEXT_GRANULARITY_PARAGRAPH:
efl_text_cursor_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START);
efl_text_cursor_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END);
efl_text_cursor_object_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START);
efl_text_cursor_object_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END);
break;
case EFL_ACCESS_TEXT_GRANULARITY_SENTENCE: /* this one is not supported by efl */
@ -1348,9 +1348,9 @@ _text_string_at_offset_get(const Eldbus_Service_Interface *iface, const Eldbus_M
return eldbus_message_error_new(msg, "org.freedesktop.DBus.Error.InvalidArgs", "Granularity not suported.");
}
str = efl_text_cursor_range_text_get(sel1, sel2);
start = efl_text_cursor_position_get(sel1);
end = efl_text_cursor_position_get(sel2);
str = efl_text_cursor_object_range_text_get(sel1, sel2);
start = efl_text_cursor_object_position_get(sel1);
end = efl_text_cursor_object_position_get(sel2);
efl_del(sel1);
efl_del(sel2);
@ -1392,11 +1392,11 @@ _text_text_get(const Eldbus_Service_Interface *iface, const Eldbus_Message *msg)
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, end);
str = efl_text_cursor_range_text_get(sel1, sel2);
Efl_Text_Cursor_Object *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, end);
str = efl_text_cursor_object_range_text_get(sel1, sel2);
efl_del(sel1);
efl_del(sel2);
}
@ -1438,8 +1438,8 @@ _text_caret_offset_set(const Eldbus_Service_Interface *iface, const Eldbus_Messa
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *cur = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_position_set(cur, offset);
Efl_Text_Cursor_Object *cur = efl_text_interactive_main_cursor_get(obj);
efl_text_cursor_object_position_set(cur, offset);
res = EINA_TRUE;
}
else if (efl_isa(obj, EFL_ACCESS_TEXT_INTERFACE))
@ -1476,9 +1476,9 @@ _text_character_at_offset_get(const Eldbus_Service_Interface *iface, const Eldbu
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_position_set(cur, offset);
res = efl_text_cursor_content_get(cur);
Efl_Text_Cursor_Object *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_position_set(cur, offset);
res = efl_text_cursor_object_content_get(cur);
efl_del(cur);
}
else if (efl_isa(obj, EFL_ACCESS_TEXT_INTERFACE))
@ -1537,11 +1537,11 @@ _text_attribute_value_get(const Eldbus_Service_Interface *iface, const Eldbus_Me
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor *sel2 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel2 = efl_ui_textbox_cursor_create(obj);
end = start+1;
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, end);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, end);
annotations = efl_text_formatter_range_attributes_get(sel1, sel2);
if (annotations)
@ -1610,12 +1610,12 @@ _text_attributes_get(const Eldbus_Service_Interface *iface, const Eldbus_Message
{
Eina_Iterator *annotations;
Efl_Text_Attribute_Handle *an;
Efl_Text_Cursor *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor *sel2 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel2 = efl_ui_textbox_cursor_create(obj);
end = start+1;
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, end);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, end);
annotations = efl_text_formatter_range_attributes_get(sel1, sel2);
efl_del(sel1);
@ -1682,11 +1682,11 @@ _text_default_attributes_get(const Eldbus_Service_Interface *iface, const Eldbus
{
Eina_Iterator *annotations;
Efl_Text_Attribute_Handle *an;
Efl_Text_Cursor *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor *sel2 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(sel1, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_object_move(sel2, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
annotations = efl_text_formatter_range_attributes_get(sel1, sel2);
EINA_ITERATOR_FOREACH(annotations, an)
@ -1800,9 +1800,9 @@ _text_character_extents_get(const Eldbus_Service_Interface *iface, const Eldbus_
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_position_set(cur, offset);
rect = efl_text_cursor_geometry_get(cur, EFL_TEXT_CURSOR_TYPE_UNDER);
Efl_Text_Cursor_Object *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_position_set(cur, offset);
rect = efl_text_cursor_object_cursor_geometry_get(cur, EFL_TEXT_CURSOR_TYPE_UNDER);
efl_del(cur);
rect = _text_interactive_get_pos(obj, rect, screen_coords);
res = rect.w != 0 ? EINA_TRUE : EINA_FALSE;
@ -1860,9 +1860,9 @@ _text_offset_at_point_get(const Eldbus_Service_Interface *iface, const Eldbus_Me
x -= r_obj.x - r_win.x;
y -= r_obj.y - r_win.y;
}
Efl_Text_Cursor *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_char_coord_set(cur, EINA_POSITION2D(x,y));
offset = efl_text_cursor_position_get(cur);
Efl_Text_Cursor_Object *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_char_coord_set(cur, EINA_POSITION2D(x,y));
offset = efl_text_cursor_object_position_get(cur);
efl_del(cur);
}
else if (efl_isa(obj, EFL_ACCESS_TEXT_INTERFACE))
@ -1920,10 +1920,10 @@ _text_selection_get(const Eldbus_Service_Interface *iface, const Eldbus_Message
{
if (sel_num == 0)
{
Efl_Text_Cursor *sel1, *sel2;
Efl_Text_Cursor_Object *sel1, *sel2;
efl_text_interactive_selection_cursors_get(obj, &sel1, &sel2);
start = efl_text_cursor_position_get(sel1);
end = efl_text_cursor_position_get(sel2);
start = efl_text_cursor_object_position_get(sel1);
end = efl_text_cursor_object_position_get(sel2);
}
}
else if (efl_isa(obj, EFL_ACCESS_TEXT_INTERFACE))
@ -1959,10 +1959,10 @@ _text_selection_add(const Eldbus_Service_Interface *iface, const Eldbus_Message
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Efl_Text_Cursor *sel1, *sel2;
Efl_Text_Cursor_Object *sel1, *sel2;
efl_text_interactive_selection_cursors_get(obj, &sel1, &sel2);
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, end);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, end);
res = EINA_TRUE;
}
else if (efl_isa(obj, EFL_ACCESS_TEXT_INTERFACE))
@ -2000,9 +2000,9 @@ _text_selection_remove(const Eldbus_Service_Interface *iface, const Eldbus_Messa
{
if (sel_num == 0)
{
Efl_Text_Cursor *sel1, *sel2;
Efl_Text_Cursor_Object *sel1, *sel2;
efl_text_interactive_selection_cursors_get(obj, &sel1, &sel2);
efl_text_cursor_range_delete(sel1, sel2);
efl_text_cursor_object_range_delete(sel1, sel2);
res = EINA_TRUE;
}
}
@ -2041,10 +2041,10 @@ _text_selection_set(const Eldbus_Service_Interface *iface, const Eldbus_Message
{
if (sel_num == 0)
{
Efl_Text_Cursor *sel1, *sel2;
Efl_Text_Cursor_Object *sel1, *sel2;
efl_text_interactive_selection_cursors_get(obj, &sel1, &sel2);
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, end);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, end);
res = EINA_TRUE;
}
}
@ -2086,11 +2086,11 @@ _text_range_extents_get(const Eldbus_Service_Interface *iface, const Eldbus_Mess
if (efl_isa(obj, EFL_TEXT_INTERACTIVE_INTERFACE))
{
Eina_Rectangle *r;
Efl_Text_Cursor *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_position_set(sel1, start);
efl_text_cursor_position_set(sel2, end);
Eina_Iterator *range = efl_text_cursor_range_precise_geometry_get(sel1, sel2);
Efl_Text_Cursor_Object *sel1 = efl_ui_textbox_cursor_create(obj);
Efl_Text_Cursor_Object *sel2 = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_position_set(sel1, start);
efl_text_cursor_object_position_set(sel2, end);
Eina_Iterator *range = efl_text_cursor_object_range_precise_geometry_get(sel1, sel2);
/* This rect represent coordinates x1, y1, x2, y2 (not x,y,w,h).
* In this way we bypass corner cases
@ -2713,16 +2713,16 @@ _text_properties_get(const Eldbus_Service_Interface *interface, const char *prop
{
if (checkCharacterCount)
{
Efl_Text_Cursor *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
result = efl_text_cursor_position_get(cur);
Efl_Text_Cursor_Object *cur = efl_ui_textbox_cursor_create(obj);
efl_text_cursor_object_move(cur, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
result = efl_text_cursor_object_position_get(cur);
efl_del(cur);
}
if (checkCarretOffset)
{
Efl_Text_Cursor *main_cur = efl_text_interactive_main_cursor_get(obj);
result = efl_text_cursor_position_get(main_cur);
Efl_Text_Cursor_Object *main_cur = efl_text_interactive_main_cursor_get(obj);
result = efl_text_cursor_object_position_get(main_cur);
}
}
else if (efl_isa(obj, EFL_ACCESS_TEXT_INTERFACE))

View File

@ -83,7 +83,7 @@ extern "C" {
#include <canvas/efl_canvas_scene3d.eo.h>
*/
#include <canvas/efl_canvas_snapshot.eo.h>
#include <canvas/efl_text_cursor.eo.h>
#include <canvas/efl_text_cursor_object.eo.h>
#include <canvas/efl_text_formatter.eo.h>
#include <canvas/efl_canvas_textblock.eo.h>
#include <canvas/efl_canvas_textblock_factory.eo.h>

View File

@ -34,7 +34,7 @@ struct _Efl_Canvas_Object_Animation_Event
*
* @{
*/
#include "canvas/efl_text_cursor.eo.h"
#include "canvas/efl_text_cursor_object.eo.h"
#include "canvas/efl_text_formatter.eo.h"
#include "canvas/efl_canvas_textblock.eo.h"
#include "canvas/efl_canvas_textblock_factory.eo.h"

View File

@ -323,8 +323,8 @@ EAPI Eina_Bool evas_textblock_cursor_at_cluster_as_single_glyph(Evas_Textblock_C
/*Attribute Factory Internal function*/
EAPI const char * efl_text_formatter_attribute_get(Efl_Text_Attribute_Handle *annotation);
EAPI Eina_Iterator * efl_text_formatter_range_attributes_get(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end);
EAPI void efl_text_formatter_attribute_cursors_get(const Efl_Text_Attribute_Handle *handle, Efl_Text_Cursor *start, Efl_Text_Cursor *end);
EAPI Eina_Iterator * efl_text_formatter_range_attributes_get(const Efl_Text_Cursor_Object *start, const Efl_Text_Cursor_Object *end);
EAPI void efl_text_formatter_attribute_cursors_get(const Efl_Text_Attribute_Handle *handle, Efl_Text_Cursor_Object *start, Efl_Text_Cursor_Object *end);
EAPI void efl_text_formatter_remove(Efl_Text_Attribute_Handle *annotation);
EAPI Eina_Bool efl_text_formatter_attribute_is_item(Efl_Text_Attribute_Handle *annotation);
EAPI Eina_Bool efl_text_formatter_item_geometry_get(const Efl_Text_Attribute_Handle *annotation, int *x, int *y, int *w, int *h);

View File

@ -29,7 +29,7 @@ class Efl.Canvas.Textblock extends Efl.Canvas.Object implements Efl.Text,
[[Creates a new cursor and adds it to the text object.
This cursor can be used to manipulate and iterate the content of the text object.
]]
return: Efl.Text.Cursor @move; [[The created text cursor.]]
return: Efl.Text_Cursor.Object @move; [[The created text cursor.]]
}
visible_range_get {
[[Returns the currently visible range.
@ -40,8 +40,8 @@ class Efl.Canvas.Textblock extends Efl.Canvas.Object implements Efl.Text,
]]
return: bool; [[$true on success.]]
params {
@in start: Efl.Text.Cursor; [[Range start position.]]
@in end: Efl.Text.Cursor; [[Range end position.]]
@in start: Efl.Text_Cursor.Object; [[Range start position.]]
@in end: Efl.Text_Cursor.Object; [[Range end position.]]
}
}
@property style_insets {
@ -73,7 +73,7 @@ class Efl.Canvas.Textblock extends Efl.Canvas.Object implements Efl.Text,
@property newline_as_paragraph_separator {
[[When $true, the newline character will behave as a paragraph separator.
Paragraph separator equal U+2029, and new line equal U+000A.
This will effect a lot of text behaviour like @Efl.Text.Cursor.move method.
This will effect a lot of text behaviour like @Efl.Text_Cursor.Object.move method.
]]
set {}
get {}

View File

@ -290,7 +290,7 @@ _evas_textblock_relayout_if_needed(Evas_Object *o);
* @param canvas_text_obj the canvas text object, where cursor methods will take effect.
* @param text_obj the text_object that user can get using cursor text_object property.
*/
EAPI void efl_text_cursor_text_object_set(Eo *cursor, Eo *canvas_text_obj, Eo *text_obj);
EAPI void efl_text_cursor_object_text_object_set(Eo *cursor, Eo *canvas_text_obj, Eo *text_obj);
/**
@ -298,7 +298,7 @@ EAPI void efl_text_cursor_text_object_set(Eo *cursor, Eo *canvas_text_obj, Eo *t
*
* @param parent the parent of the cursor object.
*/
EAPI Eo* efl_text_cursor_create(Eo *parent);
EAPI Eo* efl_text_cursor_object_create(Eo *parent);
/**
@ -307,7 +307,7 @@ EAPI Eo* efl_text_cursor_create(Eo *parent);
* @param obj the cursor object.
* @param handle the text cursor handle.
*/
EAPI void efl_text_cursor_handle_set(Eo *obj, Efl_Text_Cursor_Handle *handle);
EAPI void efl_text_cursor_object_handle_set(Eo *obj, Efl_Text_Cursor_Handle *handle);
/**
* Internally gets cursor handle(legacy textblock cursor) from cursor object.
@ -315,7 +315,7 @@ EAPI void efl_text_cursor_handle_set(Eo *obj, Efl_Text_Cursor_Handle *handle);
* @param obj the cursor object.
* @return the internal text cursor handle.
*/
EAPI Efl_Text_Cursor_Handle *efl_text_cursor_handle_get(const Eo *obj);
EAPI Efl_Text_Cursor_Handle *efl_text_cursor_object_handle_get(const Eo *obj);
#undef EAPI
#define EAPI

View File

@ -3,14 +3,14 @@
#include "efl_canvas_textblock_internal.h"
#include "eo_internal.h"
#define MY_CLASS EFL_TEXT_CURSOR_CLASS
#define MY_CLASS EFL_TEXT_CURSOR_OBJECT_CLASS
#define MY_CLASS_NAME "Efl.Text.Cursor"
typedef struct
{
Efl_Text_Cursor_Handle *handle;
Efl_Canvas_Object *text_obj;
} Efl_Text_Cursor_Data;
} Efl_Text_Cursor_Object_Data;
struct _Evas_Textblock_Selection_Iterator
{
@ -21,22 +21,22 @@ struct _Evas_Textblock_Selection_Iterator
typedef struct _Evas_Textblock_Selection_Iterator Evas_Textblock_Selection_Iterator;
EFL_CLASS_SIMPLE_CLASS(efl_text_cursor, "Efl.Text.Cursor", EFL_TEXT_CURSOR_CLASS)
EFL_CLASS_SIMPLE_CLASS(efl_text_cursor_object, "Efl.Text.Cursor", EFL_TEXT_CURSOR_OBJECT_CLASS)
EOLIAN static void
_efl_text_cursor_position_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, int position)
_efl_text_cursor_object_position_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, int position)
{
evas_textblock_cursor_pos_set(pd->handle, position);
}
EOLIAN static int
_efl_text_cursor_position_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_position_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd)
{
return evas_textblock_cursor_pos_get(pd->handle);
}
EOLIAN static Eina_Unicode
_efl_text_cursor_content_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_content_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd)
{
if (pd->handle && pd->handle->node)
return eina_ustrbuf_string_get(pd->handle->node->unicode)[pd->handle->pos];
@ -45,7 +45,7 @@ _efl_text_cursor_content_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd
}
EOLIAN static Eina_Rect
_efl_text_cursor_content_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_content_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd)
{
Eina_Rect rect = {0};
Eina_Bool item_is = evas_textblock_cursor_format_item_geometry_get(pd->handle, &(rect.x), &(rect.y), &(rect.w), &(rect.h));
@ -58,13 +58,13 @@ _efl_text_cursor_content_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor
}
EOLIAN static void
_efl_text_cursor_line_number_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, int line_number)
_efl_text_cursor_object_line_number_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, int line_number)
{
evas_textblock_cursor_line_set(pd->handle, line_number);
}
EOLIAN static int
_efl_text_cursor_line_number_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_line_number_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd)
{
Eina_Rect rect = {0};
@ -72,7 +72,7 @@ _efl_text_cursor_line_number_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data
}
EOLIAN static Eina_Rect
_efl_text_cursor_cursor_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor_Type ctype)
_efl_text_cursor_object_cursor_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Type ctype)
{
Eina_Rect rc = {0};
Evas_Textblock_Cursor_Type cursor_type = (ctype == EFL_TEXT_CURSOR_TYPE_BEFORE) ? EVAS_TEXTBLOCK_CURSOR_BEFORE : EVAS_TEXTBLOCK_CURSOR_UNDER;
@ -81,7 +81,7 @@ _efl_text_cursor_cursor_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_
}
EOLIAN static Eina_Bool
_efl_text_cursor_lower_cursor_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Eina_Rect *geometry2)
_efl_text_cursor_object_lower_cursor_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Eina_Rect *geometry2)
{
Eina_Rect rc = {0};
Eina_Bool b_ret = EINA_FALSE;
@ -94,24 +94,24 @@ _efl_text_cursor_lower_cursor_geometry_get(const Eo *obj EINA_UNUSED, Efl_Text_C
}
EOLIAN static Eina_Bool
_efl_text_cursor_equal(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, const Efl_Text_Cursor *dst)
_efl_text_cursor_object_equal(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, const Efl_Text_Cursor_Object *dst)
{
return evas_textblock_cursor_equal(pd->handle, efl_text_cursor_handle_get(dst));
return evas_textblock_cursor_equal(pd->handle, efl_text_cursor_object_handle_get(dst));
}
EOLIAN static int
_efl_text_cursor_compare(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, const Efl_Text_Cursor *dst)
_efl_text_cursor_object_compare(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, const Efl_Text_Cursor_Object *dst)
{
return evas_textblock_cursor_compare(pd->handle, efl_text_cursor_handle_get(dst));
return evas_textblock_cursor_compare(pd->handle, efl_text_cursor_object_handle_get(dst));
}
static void
_efl_text_cursor_copy(const Efl_Text_Cursor *obj, Efl_Text_Cursor *dst)
_efl_text_cursor_object_copy(const Efl_Text_Cursor_Object *obj, Efl_Text_Cursor_Object *dst)
{
Efl_Text_Cursor_Data *pd = efl_data_scope_safe_get(obj, MY_CLASS);
Efl_Text_Cursor_Object_Data *pd = efl_data_scope_safe_get(obj, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
Efl_Text_Cursor_Data *pd_dest = efl_data_scope_safe_get(dst, MY_CLASS);
Efl_Text_Cursor_Object_Data *pd_dest = efl_data_scope_safe_get(dst, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd_dest);
if (!pd->handle) return;
@ -119,22 +119,22 @@ _efl_text_cursor_copy(const Efl_Text_Cursor *obj, Efl_Text_Cursor *dst)
Efl_Text_Cursor_Handle *handle = evas_object_textblock_cursor_new(pd->handle->obj);
evas_textblock_cursor_copy(pd->handle, handle);
pd_dest->text_obj = pd->text_obj;
efl_text_cursor_handle_set(dst, handle);
efl_text_cursor_object_handle_set(dst, handle);
evas_textblock_cursor_unref(handle, NULL);
}
EOLIAN static Efl_Text_Cursor *
_efl_text_cursor_efl_duplicate_duplicate(const Eo *obj, Efl_Text_Cursor_Data *pd EINA_UNUSED)
EOLIAN static Efl_Text_Cursor_Object *
_efl_text_cursor_object_efl_duplicate_duplicate(const Eo *obj, Efl_Text_Cursor_Object_Data *pd EINA_UNUSED)
{
Efl_Text_Cursor *dup = efl_text_cursor_create(efl_parent_get(obj));
Efl_Text_Cursor_Object *dup = efl_text_cursor_object_create(efl_parent_get(obj));
_efl_text_cursor_copy(obj, dup);
_efl_text_cursor_object_copy(obj, dup);
return dup;
}
EOLIAN static Eina_Bool
_efl_text_cursor_move(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor_Move_Type type)
_efl_text_cursor_object_move(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Move_Type type)
{
Eina_Bool moved = EINA_FALSE;
int pos = evas_textblock_cursor_pos_get(pd->handle);
@ -200,13 +200,13 @@ _efl_text_cursor_move(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cu
}
EOLIAN static void
_efl_text_cursor_char_delete(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_char_delete(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd)
{
evas_textblock_cursor_char_delete(pd->handle);
}
EOLIAN static Eina_Bool
_efl_text_cursor_line_jump_by(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, int by)
_efl_text_cursor_object_line_jump_by(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, int by)
{
if (!pd->handle) return EINA_FALSE;
@ -218,13 +218,13 @@ _efl_text_cursor_line_jump_by(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, int
}
EOLIAN static void
_efl_text_cursor_char_coord_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Eina_Position2D coord)
_efl_text_cursor_object_char_coord_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Eina_Position2D coord)
{
evas_textblock_cursor_char_coord_set(pd->handle, coord.x, coord.y);
}
EOLIAN static void
_efl_text_cursor_cluster_coord_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Eina_Position2D coord)
_efl_text_cursor_object_cluster_coord_set(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Eina_Position2D coord)
{
evas_textblock_cursor_cluster_coord_set(pd->handle, coord.x, coord.y);
}
@ -294,33 +294,33 @@ _cursor_text_append(Efl_Text_Cursor_Handle *cur,
}
EOLIAN static void
_efl_text_cursor_text_insert(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, const char *text)
_efl_text_cursor_object_text_insert(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, const char *text)
{
_cursor_text_append(pd->handle, text);
}
EOLIAN static char *
_efl_text_cursor_range_text_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor *cur2)
_efl_text_cursor_object_range_text_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2)
{
return evas_textblock_cursor_range_text_get(pd->handle, efl_text_cursor_handle_get(cur2), EVAS_TEXTBLOCK_TEXT_PLAIN);
return evas_textblock_cursor_range_text_get(pd->handle, efl_text_cursor_object_handle_get(cur2), EVAS_TEXTBLOCK_TEXT_PLAIN);
}
EOLIAN static void
_efl_text_cursor_markup_insert(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, const char *markup)
_efl_text_cursor_object_markup_insert(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, const char *markup)
{
evas_object_textblock_text_markup_prepend(pd->handle, markup);
}
EOLIAN static char *
_efl_text_cursor_range_markup_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor *cur2)
_efl_text_cursor_object_range_markup_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2)
{
return evas_textblock_cursor_range_text_get(pd->handle,efl_text_cursor_handle_get(cur2), EVAS_TEXTBLOCK_TEXT_MARKUP);
return evas_textblock_cursor_range_text_get(pd->handle,efl_text_cursor_object_handle_get(cur2), EVAS_TEXTBLOCK_TEXT_MARKUP);
}
EOLIAN static Eina_Iterator *
_efl_text_cursor_range_geometry_get(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor *cur2)
_efl_text_cursor_object_range_geometry_get(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2)
{
return evas_textblock_cursor_range_simple_geometry_get(pd->handle, efl_text_cursor_handle_get(cur2));
return evas_textblock_cursor_range_simple_geometry_get(pd->handle, efl_text_cursor_object_handle_get(cur2));
}
/** selection iterator */
@ -405,22 +405,22 @@ _evas_textblock_selection_iterator_new(Eina_List *list)
}
EOLIAN static Eina_Iterator *
_efl_text_cursor_range_precise_geometry_get(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor *cur2)
_efl_text_cursor_object_range_precise_geometry_get(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2)
{
Eina_List *rects = evas_textblock_cursor_range_geometry_get(pd->handle, efl_text_cursor_handle_get(cur2));
Eina_List *rects = evas_textblock_cursor_range_geometry_get(pd->handle, efl_text_cursor_object_handle_get(cur2));
return _evas_textblock_selection_iterator_new(rects);
}
EOLIAN static void
_efl_text_cursor_range_delete(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd, Efl_Text_Cursor *cur2)
_efl_text_cursor_object_range_delete(Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd, Efl_Text_Cursor_Object *cur2)
{
evas_textblock_cursor_range_delete(pd->handle, efl_text_cursor_handle_get(cur2));
evas_textblock_cursor_range_delete(pd->handle, efl_text_cursor_object_handle_get(cur2));
}
EAPI void
efl_text_cursor_handle_set(Eo *obj, Efl_Text_Cursor_Handle *handle)
efl_text_cursor_object_handle_set(Eo *obj, Efl_Text_Cursor_Handle *handle)
{
Efl_Text_Cursor_Data *pd = efl_data_scope_safe_get(obj, MY_CLASS);
Efl_Text_Cursor_Object_Data *pd = efl_data_scope_safe_get(obj, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
if (handle == pd->handle)
return;
@ -436,21 +436,21 @@ efl_text_cursor_handle_set(Eo *obj, Efl_Text_Cursor_Handle *handle)
}
EAPI Efl_Text_Cursor_Handle *
efl_text_cursor_handle_get(const Eo *obj)
efl_text_cursor_object_handle_get(const Eo *obj)
{
Efl_Text_Cursor_Data *pd = efl_data_scope_safe_get(obj, MY_CLASS);
Efl_Text_Cursor_Object_Data *pd = efl_data_scope_safe_get(obj, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN_VAL(pd, NULL);
return pd->handle;
}
Eo* efl_text_cursor_create(Eo *parent)
Eo* efl_text_cursor_object_create(Eo *parent)
{
return efl_add(efl_text_cursor_realized_class_get(), parent);
return efl_add(efl_text_cursor_object_realized_class_get(), parent);
}
void efl_text_cursor_text_object_set(Eo *cursor, Eo *canvas_text_obj, Eo *text_obj)
void efl_text_cursor_object_text_object_set(Eo *cursor, Eo *canvas_text_obj, Eo *text_obj)
{
Efl_Text_Cursor_Data *pd = efl_data_scope_safe_get(cursor, MY_CLASS);
Efl_Text_Cursor_Object_Data *pd = efl_data_scope_safe_get(cursor, MY_CLASS);
EINA_SAFETY_ON_NULL_RETURN(pd);
Efl_Text_Cursor_Handle *handle = NULL;
if (efl_isa(canvas_text_obj, EFL_CANVAS_TEXTBLOCK_CLASS))
@ -465,19 +465,19 @@ void efl_text_cursor_text_object_set(Eo *cursor, Eo *canvas_text_obj, Eo *text_o
if (handle)
{
efl_text_cursor_handle_set(cursor, handle);
efl_text_cursor_object_handle_set(cursor, handle);
evas_textblock_cursor_unref(handle, NULL);
}
}
EOLIAN static Efl_Canvas_Object *
_efl_text_cursor_text_object_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_text_object_get(const Eo *obj EINA_UNUSED, Efl_Text_Cursor_Object_Data *pd)
{
return pd->text_obj;
}
EOLIAN static void
_efl_text_cursor_efl_object_destructor(Eo *obj, Efl_Text_Cursor_Data *pd)
_efl_text_cursor_object_efl_object_destructor(Eo *obj, Efl_Text_Cursor_Object_Data *pd)
{
if (pd->handle)
{
@ -494,4 +494,4 @@ _efl_text_cursor_efl_object_destructor(Eo *obj, Efl_Text_Cursor_Data *pd)
}
#include "efl_text_cursor.eo.c"
#include "efl_text_cursor_object.eo.c"

View File

@ -1,14 +1,14 @@
enum Efl.Text.Cursor_Type
enum Efl.Text_Cursor.Type
{
[[Shape of the text cursor.
This is normally used in @Efl.Text.Cursor methods to retrieve the cursor's geometry.
This is normally used in @Efl.Text_Cursor.Object methods to retrieve the cursor's geometry.
@since 1.24
]]
before, [[Cursor is a vertical bar (I-beam) placed before the selected character.]]
under [[Cursor is an horizontal line (underscore) placed under the selected character.]]
}
enum Efl.Text.Cursor_Move_Type
enum Efl.Text_Cursor.Move_Type
{
[[Text cursor movement types.
@ -32,12 +32,11 @@ enum Efl.Text.Cursor_Move_Type
paragraph_previous [[Advances to the end of the previous paragraph.]]
}
abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
abstract Efl.Text_Cursor.Object extends Efl.Object implements Efl.Duplicate{
[[Cursor API.
@since 1.24
]]
c_prefix: efl_text_cursor;
methods {
@property position {
@ -80,11 +79,11 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
of the same direction as paragraph,else ("split cursor") will return
and you need to consider the lower ("split cursor") @.lower_cursor_geometry
Split cursor geometry is valid only in @Efl.Text.Cursor_Type.before cursor mode.]]
Split cursor geometry is valid only in @Efl.Text_Cursor.Type.before cursor mode.]]
get {
}
keys {
ctype: Efl.Text.Cursor_Type; [[The type of the cursor.]]
ctype: Efl.Text_Cursor.Type; [[The type of the cursor.]]
}
values {
geometry: Eina.Rect; [[The geometry of the cursor (or upper cursor) in pixels.]]
@ -95,7 +94,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
[[Returns the geometry of the lower ("split cursor"), if logical cursor is
between LTR/RTL text.
To get the upper ("split cursor") @.cursor_geometry with @Efl.Text.Cursor_Type.before cursor mode.]]
To get the upper ("split cursor") @.cursor_geometry with @Efl.Text_Cursor.Type.before cursor mode.]]
get {
return: bool; [[$true if split cursor, $false otherwise.]]
}
@ -107,7 +106,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
equal @const {
[[Check if two cursors are equal - faster than compare if all you want is equality.]]
params {
dst: const(Efl.Text.Cursor); [[Destination Cursor.]]
dst: const(Efl.Text_Cursor.Object); [[Destination Cursor.]]
}
return: bool; [[$true if cursors are equal, $false otherwise.]]
}
@ -116,7 +115,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
[[Compare two cursors
Return <0 if cursor position less than dst, 0 if cursor == dest and >0 otherwise.]]
params {
dst: const(Efl.Text.Cursor); [[Destination Cursor.]]
dst: const(Efl.Text_Cursor.Object); [[Destination Cursor.]]
}
return: int; [[Difference between cursors.]]
}
@ -124,7 +123,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
move {
[[Move the cursor.]]
params {
@in type: Efl.Text.Cursor_Move_Type; [[The type of movement.]]
@in type: Efl.Text_Cursor.Move_Type; [[The type of movement.]]
}
return: bool; [[True if actually moved.]]
}
@ -175,7 +174,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
[[Markup of a given range in the text.]]
return: mstring @move; [[The markup in the given range.]]
params {
cur2: Efl.Text.Cursor; [[End of range.]]
cur2: Efl.Text_Cursor.Object; [[End of range.]]
}
}
@ -183,7 +182,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
[[Returns the text in the range between cursor and $cur2.]]
return: mstring @move; [[The text in the given range.]]
params {
cur2: Efl.Text.Cursor; [[End of range.]]
cur2: Efl.Text_Cursor.Object; [[End of range.]]
}
}
@ -194,7 +193,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
range are merged into one big rectangle. This is an optimized
version of @.range_precise_geometry_get.]]
params {
cur2: Efl.Text.Cursor; [[End of range.]]
cur2: Efl.Text_Cursor.Object; [[End of range.]]
}
return: iterator<Eina.Rect> @move; [[
Iterator on all geometries of the given range.]]
@ -206,7 +205,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
The geometry is represented as rectangles for each of the line
segments in the given range [$cur1, $cur2].]]
params {
cur2: Efl.Text.Cursor; [[End of range.]]
cur2: Efl.Text_Cursor.Object; [[End of range.]]
}
return: iterator<Eina.Rect> @move; [[
Iterator on all simple geometries of the given range.]]
@ -217,7 +216,7 @@ abstract Efl.Text.Cursor extends Efl.Object implements Efl.Duplicate{
This removes all the text in given range [$start,$end].]]
params {
@in cur2: Efl.Text.Cursor; [[Range end position.]]
@in cur2: Efl.Text_Cursor.Object; [[Range end position.]]
}
}

View File

@ -2,7 +2,7 @@
#include "evas_common_private.h"
#include "evas_private.h"
#include "efl_canvas_textblock_internal.h"
#include "efl_text_cursor.eo.h"
#include "efl_text_cursor_object.eo.h"
#define MY_CLASS EFL_TEXT_FORMATTER_CLASS
@ -12,22 +12,22 @@ typedef struct
} Efl_Text_Formatter_Data;
EOLIAN static void
_efl_text_formatter_attribute_insert(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end, const char *format)
_efl_text_formatter_attribute_insert(const Efl_Text_Cursor_Object *start, const Efl_Text_Cursor_Object *end, const char *format)
{
EINA_SAFETY_ON_TRUE_RETURN(!efl_text_cursor_handle_get(start) ||
!efl_text_cursor_handle_get(end) ||
efl_text_cursor_handle_get(start)->obj != efl_text_cursor_handle_get(end)->obj);
EINA_SAFETY_ON_TRUE_RETURN(!efl_text_cursor_object_handle_get(start) ||
!efl_text_cursor_object_handle_get(end) ||
efl_text_cursor_object_handle_get(start)->obj != efl_text_cursor_object_handle_get(end)->obj);
Eo *eo_obj= efl_text_cursor_handle_get(start)->obj;
Eo *eo_obj= efl_text_cursor_object_handle_get(start)->obj;
evas_textblock_async_block(eo_obj);
_evas_textblock_annotations_insert(eo_obj, efl_text_cursor_handle_get(start), efl_text_cursor_handle_get(end), format,
_evas_textblock_annotations_insert(eo_obj, efl_text_cursor_object_handle_get(start), efl_text_cursor_object_handle_get(end), format,
EINA_FALSE);
efl_event_callback_legacy_call(eo_obj, EFL_CANVAS_TEXTBLOCK_EVENT_CHANGED, NULL);
}
EOLIAN static unsigned int
_efl_text_formatter_attribute_clear(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end)
_efl_text_formatter_attribute_clear(const Efl_Text_Cursor_Object *start, const Efl_Text_Cursor_Object *end)
{
unsigned int ret = 0;
Eina_Iterator *annotations;
@ -55,29 +55,29 @@ efl_text_formatter_attribute_get(Efl_Text_Attribute_Handle *annotation)
}
Eina_Iterator *
efl_text_formatter_range_attributes_get(const Efl_Text_Cursor *start, const Efl_Text_Cursor *end)
efl_text_formatter_range_attributes_get(const Efl_Text_Cursor_Object *start, const Efl_Text_Cursor_Object *end)
{
Eina_List *lst = NULL;
Efl_Text_Attribute_Handle *it;
EINA_SAFETY_ON_TRUE_RETURN_VAL(!efl_text_cursor_handle_get(start) ||
!efl_text_cursor_handle_get(end) ||
efl_text_cursor_handle_get(start)->obj != efl_text_cursor_handle_get(end)->obj, NULL);
EINA_SAFETY_ON_TRUE_RETURN_VAL(!efl_text_cursor_object_handle_get(start) ||
!efl_text_cursor_object_handle_get(end) ||
efl_text_cursor_object_handle_get(start)->obj != efl_text_cursor_object_handle_get(end)->obj, NULL);
Eina_Inlist *annotations = _evas_textblock_annotations_get(efl_text_cursor_handle_get(start)->obj);
Eina_Inlist *annotations = _evas_textblock_annotations_get(efl_text_cursor_object_handle_get(start)->obj);
EINA_INLIST_FOREACH(annotations, it)
{
Efl_Text_Cursor_Handle start2, end2;
_evas_textblock_cursor_init(&start2, efl_text_cursor_handle_get(start)->obj);
_evas_textblock_cursor_init(&end2, efl_text_cursor_handle_get(start)->obj);
_evas_textblock_cursor_init(&start2, efl_text_cursor_object_handle_get(start)->obj);
_evas_textblock_cursor_init(&end2, efl_text_cursor_object_handle_get(start)->obj);
if (!it->start_node || !it->end_node) continue;
_textblock_cursor_pos_at_fnode_set(&start2, it->start_node);
_textblock_cursor_pos_at_fnode_set(&end2, it->end_node);
evas_textblock_cursor_char_prev(&end2);
if (!((evas_textblock_cursor_compare(&start2, efl_text_cursor_handle_get(end)) > 0) ||
(evas_textblock_cursor_compare(&end2, efl_text_cursor_handle_get(start)) < 0)))
if (!((evas_textblock_cursor_compare(&start2, efl_text_cursor_object_handle_get(end)) > 0) ||
(evas_textblock_cursor_compare(&end2, efl_text_cursor_object_handle_get(start)) < 0)))
{
lst = eina_list_append(lst, it);
}
@ -86,14 +86,14 @@ efl_text_formatter_range_attributes_get(const Efl_Text_Cursor *start, const Efl_
}
void
efl_text_formatter_attribute_cursors_get(const Efl_Text_Attribute_Handle *handle, Efl_Text_Cursor *start, Efl_Text_Cursor *end)
efl_text_formatter_attribute_cursors_get(const Efl_Text_Attribute_Handle *handle, Efl_Text_Cursor_Object *start, Efl_Text_Cursor_Object *end)
{
EINA_SAFETY_ON_TRUE_RETURN (!handle || !(handle->obj));
efl_text_cursor_text_object_set(start, handle->obj, handle->obj);
efl_text_cursor_text_object_set(end, handle->obj, handle->obj);
_textblock_cursor_pos_at_fnode_set(efl_text_cursor_handle_get(start), handle->start_node);
_textblock_cursor_pos_at_fnode_set(efl_text_cursor_handle_get(end), handle->end_node);
efl_text_cursor_object_text_object_set(start, handle->obj, handle->obj);
efl_text_cursor_object_text_object_set(end, handle->obj, handle->obj);
_textblock_cursor_pos_at_fnode_set(efl_text_cursor_object_handle_get(start), handle->start_node);
_textblock_cursor_pos_at_fnode_set(efl_text_cursor_object_handle_get(end), handle->end_node);
}
void

View File

@ -2,9 +2,9 @@ import efl_text_types;
abstract Efl.Text_Formatter extends Efl.Object {
[[Text Formatter API to manage text formatting(attributes).
Use it to insert and remove style attributes (font, size, color, ...) using @Efl.Text.Cursor on EFL Widgets.
Use it to insert and remove style attributes (font, size, color, ...) using @Efl.Text_Cursor.Object on EFL Widgets.
Attributes can be assigned to character ranges, selected using two @Efl.Text.Cursor instances.
Attributes can be assigned to character ranges, selected using two @Efl.Text_Cursor.Object instances.
Cursor instances are already bound to a text object so there's no need to provide it to this class.
Style is specified using format strings as described in @Efl.Canvas.Textblock.style_apply.
@ -20,8 +20,8 @@ abstract Efl.Text_Formatter extends Efl.Object {
The passed cursors must belong to same text object, otherwise insertion will be ignored.
]]
params {
start: const(Efl.Text.Cursor); [[Start of range.]]
end: const(Efl.Text.Cursor); [[End of range.]]
start: const(Efl.Text_Cursor.Object); [[Start of range.]]
end: const(Efl.Text_Cursor.Object); [[End of range.]]
format: string; [[Format string. Uses same format as $style in @Efl.Canvas.Textblock.style_apply.]]
}
}
@ -30,8 +30,8 @@ abstract Efl.Text_Formatter extends Efl.Object {
[[Clear (remove) attributes in the specified range [$start, $end - 1].
]]
params {
start: const(Efl.Text.Cursor); [[Start of range.]]
end: const(Efl.Text.Cursor); [[End of range.]]
start: const(Efl.Text_Cursor.Object); [[Start of range.]]
end: const(Efl.Text_Cursor.Object); [[End of range.]]
}
return: uint; [[Number of removed attributes.]]
}

View File

@ -66,7 +66,7 @@
#include "evas_common_private.h"
#include "evas_private.h"
#include "efl_text_cursor.eo.h"
#include "efl_text_cursor_object.eo.h"
#include "Efl.h"
#include "efl_canvas_textblock_internal.h"
@ -8296,11 +8296,11 @@ _efl_canvas_textblock_all_styles_get(const Eo *eo_obj EINA_UNUSED, Efl_Canvas_Te
return o->default_format.default_style_str;
}
EOLIAN static Efl_Text_Cursor *
EOLIAN static Efl_Text_Cursor_Object *
_efl_canvas_textblock_cursor_create(Eo *obj, Efl_Canvas_Textblock_Data *pd EINA_UNUSED)
{
Eo* cursor = efl_text_cursor_create(obj);
efl_text_cursor_text_object_set(cursor, obj, obj);
Eo* cursor = efl_text_cursor_object_create(obj);
efl_text_cursor_object_text_object_set(cursor, obj, obj);
return cursor;
}
@ -8654,7 +8654,7 @@ static void _evas_textblock_cursor_object_changed(Efl_Text_Cursor_Handle *cur)
Eo *cur_obj;
EINA_LIST_FOREACH(cur->cur_objs, l, cur_obj)
efl_event_callback_call(cur_obj, EFL_TEXT_CURSOR_EVENT_CHANGED, NULL);
efl_event_callback_call(cur_obj, EFL_TEXT_CURSOR_OBJECT_EVENT_CHANGED, NULL);
}
static void
@ -13210,11 +13210,11 @@ evas_textblock_cursor_visible_range_get(Efl_Text_Cursor_Handle *start, Evas_Text
EOLIAN static Eina_Bool
_efl_canvas_textblock_visible_range_get(Eo *eo_obj EINA_UNUSED,
Efl_Canvas_Textblock_Data *pd EINA_UNUSED,
Efl_Text_Cursor *start, Efl_Text_Cursor *end)
Efl_Text_Cursor_Object *start, Efl_Text_Cursor_Object *end)
{
return evas_textblock_cursor_visible_range_get(
efl_text_cursor_handle_get(start),
efl_text_cursor_handle_get(end)
efl_text_cursor_object_handle_get(start),
efl_text_cursor_object_handle_get(end)
);
}

View File

@ -44,7 +44,7 @@ pub_eo_files = [
'efl_canvas_group.eo',
'efl_gfx_mapping.eo',
'efl_canvas_event_grabber.eo',
'efl_text_cursor.eo',
'efl_text_cursor_object.eo',
'efl_canvas_textblock.eo',
'efl_text_formatter.eo',
'efl_canvas_object_animation.eo',
@ -187,7 +187,7 @@ evas_src += files([
'efl_canvas_vg_image.c',
'evas_filter_mixin.c',
'efl_canvas_object_animation.c',
'efl_text_cursor.c',
'efl_text_cursor_object.c',
'efl_text_formatter.c'
])

View File

@ -31,7 +31,7 @@ EFL_START_TEST(text_cnp)
efl_text_interactive_all_select(txt);
efl_ui_textbox_selection_copy(txt);
efl_text_interactive_all_unselect(txt);
efl_text_cursor_text_insert(efl_text_interactive_main_cursor_get(txt), "X");
efl_text_cursor_object_text_insert(efl_text_interactive_main_cursor_get(txt), "X");
efl_ui_textbox_selection_paste(txt);
ecore_main_loop_iterate();
ck_assert_int_eq(i_copy, 1);
@ -78,13 +78,13 @@ EFL_START_TEST(text_all_select_all_unselect)
efl_event_callback_priority_add(txt, EFL_UI_SELECTION_EVENT_WM_SELECTION_CHANGED, EFL_CALLBACK_PRIORITY_BEFORE, _stop_event_soon, NULL);
efl_text_set(txt, "Hello");
efl_text_interactive_all_select(txt);
Efl_Text_Cursor *c1=NULL, *c2 =NULL;
Efl_Text_Cursor_Object *c1=NULL, *c2 =NULL;
efl_text_interactive_selection_cursors_get(txt, &c1, &c2);
ck_assert_ptr_ne(c1, NULL);
ck_assert_ptr_ne(c2, NULL);
fail_if(!efl_text_interactive_have_selection_get(txt));
ck_assert_int_eq(efl_text_cursor_position_get(c1), 0);
ck_assert_int_eq(efl_text_cursor_position_get(c2), 5);
ck_assert_int_eq(efl_text_cursor_object_position_get(c1), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(c2), 5);
efl_text_interactive_all_unselect(txt);
fail_if(efl_text_interactive_have_selection_get(txt));
ecore_main_loop_iterate();
@ -95,30 +95,30 @@ EFL_START_TEST(text_all_select_all_unselect)
Eo *sel1, *sel2;
i_selection = 0;
efl_text_interactive_selection_cursors_get(txt, &sel1, &sel2);
efl_text_cursor_position_set(sel1, 1);
efl_text_cursor_position_set(sel2, 2);
efl_text_cursor_object_position_set(sel1, 1);
efl_text_cursor_object_position_set(sel2, 2);
ck_assert_int_eq(i_selection, 2);
efl_text_interactive_all_select(txt);
ck_assert_int_eq(i_selection, 3);
ck_assert_int_eq(efl_text_cursor_position_get(sel1), 0);
ck_assert_int_eq(efl_text_cursor_position_get(sel2), 5);
ck_assert_int_eq(efl_text_cursor_object_position_get(sel1), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(sel2), 5);
Eo *cur1 = efl_ui_textbox_cursor_create(txt);
Eo *cur2 = efl_ui_textbox_cursor_create(txt);
efl_text_cursor_position_set(cur1, 1);
efl_text_cursor_position_set(cur2, 2);
efl_text_cursor_object_position_set(cur1, 1);
efl_text_cursor_object_position_set(cur2, 2);
efl_text_interactive_selection_cursors_set(txt, cur1, cur2);
ck_assert_int_eq(i_selection, 4);
efl_text_interactive_selection_cursors_get(txt, &sel1, &sel2);
ck_assert_int_eq(efl_text_cursor_position_get(sel1),1);
ck_assert_int_eq(efl_text_cursor_position_get(sel2),2);
ck_assert_int_eq(efl_text_cursor_object_position_get(sel1),1);
ck_assert_int_eq(efl_text_cursor_object_position_get(sel2),2);
/*Select part then select all*/
efl_text_interactive_all_unselect(txt);
i_have_selection = 0, i_selection = 0;
efl_text_cursor_position_set(cur1, 1);
efl_text_cursor_position_set(cur2, 2);
efl_text_cursor_object_position_set(cur1, 1);
efl_text_cursor_object_position_set(cur2, 2);
efl_text_interactive_selection_cursors_set(txt, cur1, cur2);
ck_assert_int_eq(i_selection, 1);
ck_assert_int_eq(i_have_selection, 1);
@ -150,13 +150,13 @@ EFL_START_TEST(text_selection)
get_me_to_those_events(txt);
drag_object(txt, 2, 2, 295, 295, EINA_TRUE);
ecore_main_loop_iterate();
Efl_Text_Cursor *c1=NULL, *c2 =NULL;
Efl_Text_Cursor_Object *c1=NULL, *c2 =NULL;
efl_text_interactive_selection_cursors_get(txt, &c1, &c2);
ck_assert_ptr_ne(c1, NULL);
ck_assert_ptr_ne(c2, NULL);
fail_if(!efl_text_interactive_have_selection_get(txt));
ck_assert_int_eq(efl_text_cursor_position_get(c1), 0);
ck_assert_int_eq(efl_text_cursor_position_get(c2), 5);
ck_assert_int_eq(efl_text_cursor_object_position_get(c1), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(c2), 5);
efl_text_interactive_all_unselect(txt);
fail_if(efl_text_interactive_have_selection_get(txt));
efl_text_interactive_selection_allowed_set(txt, EINA_FALSE);
@ -206,10 +206,10 @@ EFL_START_TEST(text_scroll_mode)
/*scroll mode is false by default*/
fail_if(efl_ui_textbox_scrollable_get(txt));
efl_ui_textbox_scrollable_set(txt, !efl_ui_textbox_scrollable_get(txt));
efl_text_cursor_text_insert(cur, "World");
efl_text_cursor_object_text_insert(cur, "World");
fail_if(!efl_ui_textbox_scrollable_get(txt));
efl_ui_textbox_scrollable_set(txt, !efl_ui_textbox_scrollable_get(txt));
efl_text_cursor_text_insert(cur, "!!!");
efl_text_cursor_object_text_insert(cur, "!!!");
ck_assert_str_eq(efl_text_get(txt),"HelloWorld!!!");
efl_del(txt);
@ -256,22 +256,22 @@ EFL_START_TEST(text_keys_handler)
Evas *e = evas_object_evas_get(txt);
efl_ui_focus_util_focus(txt);
efl_text_cursor_move(efl_text_interactive_main_cursor_get(txt), EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_move(efl_text_interactive_main_cursor_get(txt), EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
evas_key_modifier_on(e, "Control");
evas_event_feed_key_down(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);
ecore_main_loop_iterate();
ck_assert_str_eq(efl_text_get(txt),"");
ck_assert_int_eq(efl_text_cursor_position_get(efl_text_interactive_main_cursor_get(txt)), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(efl_text_interactive_main_cursor_get(txt)), 0);
evas_event_feed_key_up(e, "BackSpace", "BackSpace", "\b", "\b", time(NULL), NULL);
ecore_main_loop_iterate();
efl_text_set(txt, "Hello");
efl_text_cursor_position_set(efl_text_interactive_main_cursor_get(txt), 0);
efl_text_cursor_object_position_set(efl_text_interactive_main_cursor_get(txt), 0);
evas_key_modifier_on(e, "Control");
evas_event_feed_key_down(e, "Delete", "Delete", "\177", "\177", time(NULL), NULL);
ecore_main_loop_iterate();
ck_assert_str_eq(efl_text_get(txt),"");
ck_assert_int_eq(efl_text_cursor_position_get(efl_text_interactive_main_cursor_get(txt)), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(efl_text_interactive_main_cursor_get(txt)), 0);
evas_event_feed_key_up(e, "Delete", "Delete", "\177", "\177", time(NULL), NULL);
ecore_main_loop_iterate();

View File

@ -38,7 +38,7 @@ static const char *style_buf =
Evas_Object *tb; \
Evas_Textblock_Style *st; \
Evas_Textblock_Cursor *cur; \
Efl_Text_Cursor *cur_obj; \
Efl_Text_Cursor_Object *cur_obj; \
evas = EVAS_TEST_INIT_EVAS(); \
evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); \
tb = evas_object_textblock_add(evas); \
@ -4351,7 +4351,7 @@ EFL_END_TEST;
EFL_START_TEST(evas_textblock_annotation)
{
START_TB_TEST();
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
start = efl_canvas_textblock_cursor_create(tb);
end = efl_canvas_textblock_cursor_create(tb);
@ -4367,18 +4367,18 @@ EFL_START_TEST(evas_textblock_annotation)
/* Check some trivial cases */
efl_text_cursor_position_set(start, 0);
efl_text_cursor_position_set(end, 3);
efl_text_cursor_object_position_set(start, 0);
efl_text_cursor_object_position_set(end, 3);
efl_text_formatter_attribute_insert(start, end, "font_size=80");
efl_text_cursor_position_set(start, 1);
efl_text_cursor_position_set(end, 2);
efl_text_cursor_object_position_set(start, 1);
efl_text_cursor_object_position_set(end, 2);
efl_text_formatter_attribute_insert(start, end, "font=arial");
efl_text_cursor_position_set(start, 2);
efl_text_cursor_position_set(end, 3);
efl_text_cursor_object_position_set(start, 2);
efl_text_cursor_object_position_set(end, 3);
efl_text_formatter_attribute_insert(start, end, "color=#fff");
efl_text_cursor_position_set(start, 0);
efl_text_cursor_position_set(end, 3);
efl_text_cursor_object_position_set(start, 0);
efl_text_cursor_object_position_set(end, 3);
unsigned int count = efl_text_formatter_attribute_clear(start, end);
fail_if(count != 3);
}
@ -4391,7 +4391,7 @@ static const char *efl_style_buf =
Evas *evas; \
Eo *txt; \
Efl_Text_Cursor_Handle *cur; \
Efl_Text_Cursor *cur_obj; \
Efl_Text_Cursor_Object *cur_obj; \
evas = EVAS_TEST_INIT_EVAS(); \
evas_font_hinting_set(evas, EVAS_FONT_HINTING_AUTO); \
txt = efl_add(EFL_CANVAS_TEXTBLOCK_CLASS, evas); \
@ -4497,30 +4497,30 @@ EFL_START_TEST(efl_canvas_textblock_cursor)
efl_text_set(txt, buf);
ck_assert_int_eq(strcmp(efl_text_get(txt), buf), 0);
pos = efl_text_cursor_position_get(cur_obj);
pos = efl_text_cursor_object_position_get(cur_obj);
ck_assert_int_eq(pos, 0);
ck_assert(!efl_text_cursor_line_jump_by(cur_obj, -1));
pos = efl_text_cursor_position_get(cur_obj);
ck_assert(!efl_text_cursor_object_line_jump_by(cur_obj, -1));
pos = efl_text_cursor_object_position_get(cur_obj);
ck_assert_int_eq(pos, 0);
ck_assert(efl_text_cursor_line_jump_by(cur_obj, 1));
pos = efl_text_cursor_position_get(cur_obj);
ck_assert(efl_text_cursor_object_line_jump_by(cur_obj, 1));
pos = efl_text_cursor_object_position_get(cur_obj);
ck_assert_int_eq(pos, 10);
efl_text_markup_set(txt, "Hello World<ps/>This is EFL<br/>Enlightenment");
efl_text_cursor_position_set(cur_obj, 0);
ck_assert_int_eq(efl_text_cursor_line_number_get(cur_obj), 0);
ck_assert(efl_text_cursor_line_jump_by(cur_obj, 2));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 24);
ck_assert_int_eq(efl_text_cursor_line_number_get(cur_obj), 2);
ck_assert(efl_text_cursor_line_jump_by(cur_obj, -2));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert_int_eq(efl_text_cursor_line_number_get(cur_obj), 0);
efl_text_cursor_object_position_set(cur_obj, 0);
ck_assert_int_eq(efl_text_cursor_object_line_number_get(cur_obj), 0);
ck_assert(efl_text_cursor_object_line_jump_by(cur_obj, 2));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 24);
ck_assert_int_eq(efl_text_cursor_object_line_number_get(cur_obj), 2);
ck_assert(efl_text_cursor_object_line_jump_by(cur_obj, -2));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
ck_assert_int_eq(efl_text_cursor_object_line_number_get(cur_obj), 0);
ck_assert(efl_text_cursor_line_jump_by(cur_obj, 2));
efl_text_cursor_line_number_set(cur_obj, 2);
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 24);
efl_text_cursor_line_number_set(cur_obj, 0);
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_object_line_jump_by(cur_obj, 2));
efl_text_cursor_object_line_number_set(cur_obj, 2);
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 24);
efl_text_cursor_object_line_number_set(cur_obj, 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
Eo * cursor_temp = efl_duplicate(cur_obj);
ck_assert_ptr_ne(cursor_temp, NULL);
@ -4528,172 +4528,172 @@ EFL_START_TEST(efl_canvas_textblock_cursor)
cursor_temp = NULL;
Eo * cursor1 = efl_canvas_textblock_cursor_create(txt);
efl_text_cursor_position_set(cursor1, 1);
pos = efl_text_cursor_position_get(cursor1);
efl_text_cursor_object_position_set(cursor1, 1);
pos = efl_text_cursor_object_position_get(cursor1);
ck_assert_int_eq(pos, 1);
efl_text_set(txt, "");
efl_text_set(txt, "");
efl_text_cursor_text_insert(cursor1, "aa");
efl_text_cursor_object_text_insert(cursor1, "aa");
ck_assert_int_eq(changed_emit, 4);
efl_text_markup_set(txt, "Hello<br/>Word");
efl_text_markup_set(txt, "Hello<br/>Word");
efl_text_cursor_markup_insert(cursor1, "aa");
efl_text_cursor_object_markup_insert(cursor1, "aa");
ck_assert_int_eq(changed_emit, 6);
efl_text_set(txt, "");
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_PREVIOUS));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_PREVIOUS));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST));
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LAST));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_PREVIOUS));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_PREVIOUS));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST));
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LAST));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
ck_assert_int_eq(changed_emit, 7);
efl_text_markup_set(txt, "Hello World<ps/>This is EFL<br/>Enlightenment");
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 1);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 1);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_PREVIOUS));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 1);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 1);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_PREVIOUS));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
efl_text_cursor_position_set(cur_obj, 0);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 4);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 4);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
efl_text_cursor_object_position_set(cur_obj, 0);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 4);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 4);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_START));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 5);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 10);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_ne(efl_text_cursor_position_get(cur_obj), 10);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 5);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 10);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_WORD_END));
ck_assert_int_ne(efl_text_cursor_object_position_get(cur_obj), 10);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 23);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 23);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 12);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 12);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 23);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 23);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 12);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 12);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LINE_START));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
#if defined(HAVE_FRIBIDI) && defined(HAVE_HARFBUZZ)
efl_text_markup_set(txt, "الْبَرْمَجةُ<ps/>مَرْحبَاً");
efl_text_cursor_cluster_coord_set(cur_obj, EINA_POSITION2D(0, 0));
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 1);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 3);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 5);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 4);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 5);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 6);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 7);
efl_text_cursor_object_cluster_coord_set(cur_obj, EINA_POSITION2D(0, 0));
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 1);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 3);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 5);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_PREVIOUS));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 4);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 5);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CHARACTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 6);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_CLUSTER_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 7);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 13);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 13);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 22);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 22);
ck_assert(!efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LAST));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 22);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 13);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 22);
ck_assert(efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 13);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 13);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 22);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 22);
ck_assert(!efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LAST));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 22);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_START));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 13);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_END));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 22);
ck_assert(efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
#endif
Eo *nCur = efl_canvas_textblock_cursor_create(txt);
Eo *nCur2 = efl_canvas_textblock_cursor_create(txt);
Eo *nCur3 = efl_canvas_textblock_cursor_create(txt);
efl_text_markup_set(txt, "Hello World<ps/>This is EFL<br/>Enlightenment");
efl_text_cursor_position_set(cur_obj, 0);
efl_text_cursor_object_position_set(cur_obj, 0);
ck_assert_ptr_ne(nCur, NULL);
ck_assert_ptr_ne(nCur2, NULL);
ck_assert_ptr_ne(nCur3, NULL);
ck_assert(efl_text_cursor_equal(cur_obj, nCur));
ck_assert(efl_text_cursor_equal(cur_obj, nCur2));
ck_assert(efl_text_cursor_equal(cur_obj, nCur3));
ck_assert(efl_text_cursor_equal(nCur2, nCur3));
ck_assert(efl_text_cursor_object_equal(cur_obj, nCur));
ck_assert(efl_text_cursor_object_equal(cur_obj, nCur2));
ck_assert(efl_text_cursor_object_equal(cur_obj, nCur3));
ck_assert(efl_text_cursor_object_equal(nCur2, nCur3));
ck_assert_int_eq(efl_text_cursor_compare(cur_obj, nCur3), 0);
ck_assert_int_eq(efl_text_cursor_compare(nCur2, nCur3), 0);
ck_assert_int_eq(efl_text_cursor_compare(cur_obj, nCur), 0);
ck_assert_int_eq(efl_text_cursor_object_compare(cur_obj, nCur3), 0);
ck_assert_int_eq(efl_text_cursor_object_compare(nCur2, nCur3), 0);
ck_assert_int_eq(efl_text_cursor_object_compare(cur_obj, nCur), 0);
ck_assert(efl_text_cursor_move(nCur, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert_int_lt(efl_text_cursor_compare(cur_obj, nCur), 0);
ck_assert_int_gt(efl_text_cursor_compare(nCur, cur_obj), 0);
efl_text_cursor_position_set(nCur2, efl_text_cursor_position_get(nCur));
ck_assert_int_lt(efl_text_cursor_compare(cur_obj, nCur2), 0);
ck_assert_int_gt(efl_text_cursor_compare(nCur2, cur_obj), 0);
ck_assert(!efl_text_cursor_equal(nCur2, nCur3));
ck_assert(efl_text_cursor_object_move(nCur, EFL_TEXT_CURSOR_MOVE_TYPE_PARAGRAPH_NEXT));
ck_assert_int_lt(efl_text_cursor_object_compare(cur_obj, nCur), 0);
ck_assert_int_gt(efl_text_cursor_object_compare(nCur, cur_obj), 0);
efl_text_cursor_object_position_set(nCur2, efl_text_cursor_object_position_get(nCur));
ck_assert_int_lt(efl_text_cursor_object_compare(cur_obj, nCur2), 0);
ck_assert_int_gt(efl_text_cursor_object_compare(nCur2, cur_obj), 0);
ck_assert(!efl_text_cursor_object_equal(nCur2, nCur3));
efl_text_set(txt, "");
efl_text_cursor_text_insert(cur_obj, "Hello World");
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 11);
efl_text_cursor_text_insert(cur_obj, "Hello World");
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 22);
efl_text_cursor_object_text_insert(cur_obj, "Hello World");
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 11);
efl_text_cursor_object_text_insert(cur_obj, "Hello World");
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 22);
ck_assert_str_eq(efl_text_get(txt), "Hello WorldHello World");
efl_text_set(txt, "");
efl_text_cursor_markup_insert(cur_obj, "Hello World<ps/>Hello World");
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 23);
efl_text_cursor_object_markup_insert(cur_obj, "Hello World<ps/>Hello World");
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 23);
efl_text_cursor_char_coord_set(cur_obj, EINA_POSITION2D(0, 0));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
efl_text_cursor_char_coord_set(cur_obj, EINA_POSITION2D(500, 500));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 23);
efl_text_cursor_cluster_coord_set(cur_obj, EINA_POSITION2D(0, 0));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
efl_text_cursor_cluster_coord_set(cur_obj, EINA_POSITION2D(500, 500));
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 23);
efl_text_cursor_object_char_coord_set(cur_obj, EINA_POSITION2D(0, 0));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
efl_text_cursor_object_char_coord_set(cur_obj, EINA_POSITION2D(500, 500));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 23);
efl_text_cursor_object_cluster_coord_set(cur_obj, EINA_POSITION2D(0, 0));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
efl_text_cursor_object_cluster_coord_set(cur_obj, EINA_POSITION2D(500, 500));
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 23);
efl_text_cursor_position_set(nCur, 0);
efl_text_cursor_position_set(cur_obj, 5);
efl_text_cursor_object_position_set(nCur, 0);
efl_text_cursor_object_position_set(cur_obj, 5);
ck_assert_str_eq(efl_text_cursor_range_text_get(cur_obj, nCur), "Hello");
ck_assert_str_eq(efl_text_cursor_range_text_get(nCur, cur_obj), "Hello");
ck_assert_str_eq(efl_text_cursor_object_range_text_get(cur_obj, nCur), "Hello");
ck_assert_str_eq(efl_text_cursor_object_range_text_get(nCur, cur_obj), "Hello");
efl_text_cursor_position_set(nCur, 0);
efl_text_cursor_position_set(cur_obj, 17);
efl_text_cursor_object_position_set(nCur, 0);
efl_text_cursor_object_position_set(cur_obj, 17);
Eina_Iterator *iter = efl_text_cursor_range_geometry_get(cur_obj, nCur);
Eina_Iterator *iter = efl_text_cursor_object_range_geometry_get(cur_obj, nCur);
Eina_Rect *geoRect;
int x = 0;
@ -4706,7 +4706,7 @@ EFL_START_TEST(efl_canvas_textblock_cursor)
ck_assert_int_eq(x, 3);
iter = efl_text_cursor_range_precise_geometry_get(cur_obj, nCur);
iter = efl_text_cursor_object_range_precise_geometry_get(cur_obj, nCur);
x = 0;
EINA_ITERATOR_FOREACH(iter, geoRect)
@ -4718,46 +4718,46 @@ EFL_START_TEST(efl_canvas_textblock_cursor)
ck_assert_int_eq(x, 2);
ck_assert_str_eq(efl_text_cursor_range_markup_get(cur_obj, nCur), "Hello World<ps/>Hello");
ck_assert_str_eq(efl_text_cursor_range_markup_get(nCur, cur_obj), "Hello World<ps/>Hello");
ck_assert_str_eq(efl_text_cursor_object_range_markup_get(cur_obj, nCur), "Hello World<ps/>Hello");
ck_assert_str_eq(efl_text_cursor_object_range_markup_get(nCur, cur_obj), "Hello World<ps/>Hello");
efl_text_cursor_position_set(nCur, 0);
efl_text_cursor_position_set(cur_obj, 5);
efl_text_cursor_object_position_set(nCur, 0);
efl_text_cursor_object_position_set(cur_obj, 5);
efl_text_cursor_range_delete(nCur, cur_obj);
efl_text_cursor_object_range_delete(nCur, cur_obj);
ck_assert_str_eq(efl_text_markup_get(txt), " World<ps/>Hello World");
ck_assert_int_eq(efl_text_cursor_position_get(cur_obj), 0);
ck_assert_int_eq(efl_text_cursor_position_get(nCur), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(cur_obj), 0);
ck_assert_int_eq(efl_text_cursor_object_position_get(nCur), 0);
efl_text_markup_set(txt, "Hello World<ps/>Hello World");
efl_text_cursor_position_set(cur_obj, 6);
efl_text_cursor_object_position_set(cur_obj, 6);
Eina_Unicode str[2] = {0};
str[0] = efl_text_cursor_content_get(cur_obj);
str[0] = efl_text_cursor_object_content_get(cur_obj);
ck_assert_str_eq(eina_unicode_unicode_to_utf8(str, NULL), "W");
efl_text_cursor_char_delete(cur_obj);
efl_text_cursor_object_char_delete(cur_obj);
str[0] = efl_text_cursor_content_get(cur_obj);
str[0] = efl_text_cursor_object_content_get(cur_obj);
ck_assert_str_eq(eina_unicode_unicode_to_utf8(str, NULL), "o");
Eo *cur_txt = efl_text_cursor_text_object_get(cur_obj);
Eo *cur_txt2 = efl_text_cursor_text_object_get(nCur);
Eo *cur_txt = efl_text_cursor_object_text_object_get(cur_obj);
Eo *cur_txt2 = efl_text_cursor_object_text_object_get(nCur);
ck_assert_ptr_eq(cur_txt, txt);
ck_assert_ptr_eq(cur_txt2, txt);
efl_text_cursor_position_set(cur_obj, 1);
Eina_Rect rect = efl_text_cursor_content_geometry_get(cur_obj);
efl_text_cursor_object_position_set(cur_obj, 1);
Eina_Rect rect = efl_text_cursor_object_content_geometry_get(cur_obj);
ck_assert_int_ne(rect.w, 0);
ck_assert_int_ne(rect.h, 0);
ck_assert_int_ne(rect.x, 0);
rect = efl_text_cursor_geometry_get(cur_obj, EFL_TEXT_CURSOR_TYPE_BEFORE);
rect = efl_text_cursor_object_cursor_geometry_get(cur_obj, EFL_TEXT_CURSOR_TYPE_BEFORE);
ck_assert_int_eq(rect.w, 0);
ck_assert_int_ne(rect.h, 0);
ck_assert_int_ne(rect.x, 0);
Eina_Rect rect2 = efl_text_cursor_geometry_get(cur_obj, EFL_TEXT_CURSOR_TYPE_UNDER);
Eina_Rect rect2 = efl_text_cursor_object_cursor_geometry_get(cur_obj, EFL_TEXT_CURSOR_TYPE_UNDER);
ck_assert_int_ne(rect2.w, 0);
ck_assert_int_ne(rect2.h, 0);
ck_assert_int_ne(rect2.x, 0);
@ -4768,12 +4768,12 @@ EFL_START_TEST(efl_canvas_textblock_cursor)
ck_assert_int_eq(rect2.y, rect.y);
efl_text_markup_set(txt, "Hello World");
efl_text_cursor_position_set(cur_obj, 11);
ck_assert(!efl_text_cursor_lower_cursor_geometry_get(cur_obj, &rect2));
efl_text_cursor_object_position_set(cur_obj, 11);
ck_assert(!efl_text_cursor_object_lower_cursor_geometry_get(cur_obj, &rect2));
#ifdef HAVE_FRIBIDI
efl_text_cursor_text_insert(cur_obj, "مرحباً");
rect = efl_text_cursor_geometry_get(cur_obj, EFL_TEXT_CURSOR_TYPE_BEFORE);
ck_assert(efl_text_cursor_lower_cursor_geometry_get(cur_obj, &rect2));
efl_text_cursor_object_text_insert(cur_obj, "مرحباً");
rect = efl_text_cursor_object_cursor_geometry_get(cur_obj, EFL_TEXT_CURSOR_TYPE_BEFORE);
ck_assert(efl_text_cursor_object_lower_cursor_geometry_get(cur_obj, &rect2));
ck_assert_int_eq(rect2.w, 0);
ck_assert_int_ne(rect2.h, 0);
ck_assert_int_ne(rect2.x, 0);
@ -4786,9 +4786,9 @@ EFL_START_TEST(efl_canvas_textblock_cursor)
//Efl able to deal with br tab without closing tag "/"
efl_text_markup_set(txt, "a<br>a<tab>a");
efl_text_cursor_move(nCur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_range_delete(nCur, cur_obj);
efl_text_cursor_object_move(nCur, EFL_TEXT_CURSOR_MOVE_TYPE_FIRST);
efl_text_cursor_object_move(cur_obj, EFL_TEXT_CURSOR_MOVE_TYPE_LAST);
efl_text_cursor_object_range_delete(nCur, cur_obj);
ck_assert_str_eq(efl_text_markup_get(txt), "");
END_EFL_CANVAS_TEXTBLOCK_TEST();
@ -4799,7 +4799,7 @@ EFL_END_TEST
EFL_START_TEST(efl_canvas_textblock_markup)
{
START_EFL_CANVAS_TEXTBLOCK_TEST();
Efl_Text_Cursor *start, *end;
Efl_Text_Cursor_Object *start, *end;
char *res;
start = efl_canvas_textblock_cursor_create(txt);
@ -4807,16 +4807,16 @@ EFL_START_TEST(efl_canvas_textblock_markup)
efl_text_set(txt, "\n\n\n");
efl_text_cursor_position_set(start, 1);
efl_text_cursor_position_set(end, 2);
res = efl_text_cursor_range_markup_get(start, end);
efl_text_cursor_object_position_set(start, 1);
efl_text_cursor_object_position_set(end, 2);
res = efl_text_cursor_object_range_markup_get(start, end);
ck_assert_str_eq(res, "<br>");
free(res);
efl_text_set(txt, "a\u2029bc\ndef\n\u2029");
efl_text_cursor_position_set(start, 2);
efl_text_cursor_position_set(end, 5);
res = efl_text_cursor_range_markup_get(start, end);
efl_text_cursor_object_position_set(start, 2);
efl_text_cursor_object_position_set(end, 5);
res = efl_text_cursor_object_range_markup_get(start, end);
ck_assert_str_eq(res, "bc<br>");
free(res);