~~Title: Efl.Text_Cursor~~
====== Efl.Text_Cursor (interface) ======
===== Description =====
%%Cursor API%%
{{page>:develop:api-include:efl:text_cursor:description&nouser&nolink&nodate}}
===== Members =====
**[[:develop:api:efl:text_cursor:method:cursor_char_delete|cursor_char_delete]]**\\
> %%Deletes a single character from position pointed by given cursor.%%
void efl_text_cursor_char_delete(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_char_next|cursor_char_next]]**\\
> %%Advances to the next character%%
void efl_text_cursor_char_next(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_char_prev|cursor_char_prev]]**\\
> %%Advances to the previous character%%
void efl_text_cursor_char_prev(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_cluster_coord_set|cursor_cluster_coord_set]]**\\
> %%Set cursor coordinates according to grapheme clusters. It does not allow to put a cursor to the middle of a grapheme cluster.%%
void efl_text_cursor_cluster_coord_set(Eo *obj, Efl_Text_Cursor_Cursor *cur, int x, int y);
\\
**[[:develop:api:efl:text_cursor:method:cursor_cluster_next|cursor_cluster_next]]**\\
> %%Advances to the next grapheme cluster%%
void efl_text_cursor_cluster_next(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_cluster_prev|cursor_cluster_prev]]**\\
> %%Advances to the previous grapheme cluster%%
void efl_text_cursor_cluster_prev(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_compare|cursor_compare]]**\\
> %%Compare two cursors%%
int efl_text_cursor_compare(Eo *obj, const Efl_Text_Cursor_Cursor *cur1, const Efl_Text_Cursor_Cursor *cur2);
\\
**[[:develop:api:efl:text_cursor:property:cursor_content|cursor_content]]** //**(get)**//\\
>
Eina_Unicode efl_text_cursor_content_get(const Eo *obj, const Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_coord_set|cursor_coord_set]]**\\
> %%Set cursor coordinates%%
void efl_text_cursor_coord_set(Eo *obj, Efl_Text_Cursor_Cursor *cur, int x, int y);
\\
**[[:develop:api:efl:text_cursor:method:cursor_copy|cursor_copy]]**\\
> %%Copy existing cursor%%
void efl_text_cursor_copy(Eo *obj, Efl_Text_Cursor_Cursor *dst, const Efl_Text_Cursor_Cursor *src);
\\
**[[:develop:api:efl:text_cursor:method:cursor_equal|cursor_equal]]**\\
> %%Check if two cursors are equal%%
Eina_Bool efl_text_cursor_equal(Eo *obj, const Efl_Text_Cursor_Cursor *cur1, const Efl_Text_Cursor_Cursor *cur2);
\\
**[[:develop:api:efl:text_cursor:method:cursor_free|cursor_free]]**\\
> %%Free existing cursor%%
void efl_text_cursor_free(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:property:cursor_geometry|cursor_geometry]]** //**(get)**//\\
>
Eina_Bool efl_text_cursor_geometry_get(const Eo *obj, const Efl_Text_Cursor_Cursor *cur, Efl_Text_Cursor_Type ctype, int *cx, int *cy, int *cw, int *ch, int *cx2, int *cy2, int *cw2, int *ch2);
\\
**[[:develop:api:efl:text_cursor:method:cursor_line_char_first|cursor_line_char_first]]**\\
> %%Advance to current line first character%%
void efl_text_cursor_line_char_first(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_line_char_last|cursor_line_char_last]]**\\
> %%Advance to current line last character%%
void efl_text_cursor_line_char_last(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_line_jump_by|cursor_line_jump_by]]**\\
> %%Jump the cursor by the given number of lines%%
void efl_text_cursor_line_jump_by(Eo *obj, Efl_Text_Cursor_Cursor *cur, int by);
\\
**[[:develop:api:efl:text_cursor:method:cursor_new|cursor_new]]**\\
> %%Create new cursor%%
Efl_Text_Cursor_Cursor *efl_text_cursor_new(Eo *obj);
\\
**[[:develop:api:efl:text_cursor:method:cursor_paragraph_char_first|cursor_paragraph_char_first]]**\\
> %%Advances to the first character in this paragraph%%
void efl_text_cursor_paragraph_char_first(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_paragraph_char_last|cursor_paragraph_char_last]]**\\
> %%Advances to the last character in this paragraph%%
void efl_text_cursor_paragraph_char_last(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_paragraph_first|cursor_paragraph_first]]**\\
> %%Advance to current paragraph first character%%
void efl_text_cursor_paragraph_first(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_paragraph_last|cursor_paragraph_last]]**\\
> %%Advance to current paragraph last character%%
void efl_text_cursor_paragraph_last(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_paragraph_next|cursor_paragraph_next]]**\\
> %%Advances to the start of the next text node%%
void efl_text_cursor_paragraph_next(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_paragraph_prev|cursor_paragraph_prev]]**\\
> %%Advances to the end of the previous text node%%
void efl_text_cursor_paragraph_prev(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:property:cursor_position|cursor_position]]** //**(get, set)**//\\
> %%Cursor position%%
int efl_text_cursor_position_get(const Eo *obj, Efl_Text_Cursor_Cursor *cur);
void efl_text_cursor_position_set(Eo *obj, Efl_Text_Cursor_Cursor *cur, int position);
\\
**[[:develop:api:efl:text_cursor:method:cursor_text_insert|cursor_text_insert]]**\\
> %%Adds text to the current cursor position and set the cursor to *after* the start of the text just added.%%
int efl_text_cursor_text_insert(Eo *obj, Efl_Text_Cursor_Cursor *cur, const char *text);
\\
**[[:develop:api:efl:text_cursor:method:cursor_word_end|cursor_word_end]]**\\
> %%Advance to current word end%%
void efl_text_cursor_word_end(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:method:cursor_word_start|cursor_word_start]]**\\
> %%Advance to current word start%%
void efl_text_cursor_word_start(Eo *obj, Efl_Text_Cursor_Cursor *cur);
\\
**[[:develop:api:efl:text_cursor:property:text_cursor|text_cursor]]** //**(get)**//\\
>
Efl_Text_Cursor_Cursor *efl_text_cursor_get(const Eo *obj, Efl_Text_Cursor_Get_Type get_type);
\\
===== Events =====