diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 12:26:13 +0300 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 12:26:13 +0300 |
commit | f1a15cb5c5516dc40334e53f77aef77c9fe96987 (patch) | |
tree | 3a360be822ce1b70aeb53ca456f7f224ee1e4e22 | |
parent | 2ce4b6ef9200b08f312c2673b40dd35cb6d5fb3a (diff) | |
download | efl-f1a15cb5c5516dc40334e53f77aef77c9fe96987.tar.gz |
edje part cursor: add position
-rw-r--r-- | src/lib/edje/Edje_Legacy.h | 38 | ||||
-rw-r--r-- | src/lib/edje/edje_entry.c | 33 | ||||
-rw-r--r-- | src/lib/edje/edje_legacy.c | 22 | ||||
-rw-r--r-- | src/lib/edje/edje_object.eo | 29 | ||||
-rw-r--r-- | src/lib/edje/edje_part_text.c | 27 | ||||
-rw-r--r-- | src/lib/edje/edje_private.h | 4 | ||||
-rw-r--r-- | src/lib/edje/efl_canvas_layout_internal_text.eo | 2 |
7 files changed, 118 insertions, 37 deletions
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index 64ba13fe9f..5c6d57eed5 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -1387,6 +1387,44 @@ EAPI const char * edje_object_part_text_get(const Edje_Object *obj, const char * EAPI void edje_object_part_text_cursor_begin_set(Edje_Object *obj, const char *part, Edje_Cursor cur); /** + * @brief Moves the cursor to the end of the text part. @ref + * evas_textblock_cursor_paragraph_last + * + * @param[in] part The part name + * @param[in] cur The edje cursor to work on + * + * @ingroup Edje_Object + */ +EAPI void edje_object_part_text_cursor_end_set(Edje_Object *obj, const char *part, Edje_Cursor cur); + +/** + * @brief Sets the cursor position to the given value + * + * @param[in] part The part name + * @param[in] cur The cursor to move + * @param[in] pos The position of the cursor + * + * @since 1.1.0 + * + * @ingroup Edje_Object + */ +EAPI void edje_object_part_text_cursor_pos_set(Edje_Object *obj, const char * part, Edje_Cursor cur, int pos); + +/** + * @brief Retrieves the current position of the cursor + * + * @param[in] part The part name + * @param[in] cur The cursor to move + * + * @return The position of the cursor + * + * @since 1.1.0 + * + * @ingroup Edje_Object + */ +EAPI int edje_object_part_text_cursor_pos_get(const Edje_Object *obj, const char * part, Edje_Cursor cur); + +/** * @} */ #include "edje_object.eo.legacy.h" diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 958b2ffe02..61443982b3 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -4162,11 +4162,11 @@ _edje_entry_cursor_begin(Edje_Real_Part *rp, Edje_Cursor cur) _edje_text_cursor_begin(rp, c); } + void -_edje_entry_cursor_end(Edje_Real_Part *rp, Edje_Cursor cur) +_edje_text_cursor_end(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c) { Entry *en; - Evas_Textblock_Cursor *c = _cursor_get(rp, cur); int old_cur_pos; if ((rp->type != EDJE_RP_TYPE_TEXT) || @@ -4190,6 +4190,12 @@ _edje_entry_cursor_end(Edje_Real_Part *rp, Edje_Cursor cur) _edje_emit(en->ed, "cursor,changed", rp->part->name); _edje_entry_real_part_configure(en->ed, rp); } +void +_edje_entry_cursor_end(Edje_Real_Part *rp, Edje_Cursor cur) +{ + Evas_Textblock_Cursor *c = _cursor_get(rp, cur); + _edje_text_cursor_end(rp, c); +} void _edje_entry_cursor_copy(Edje_Real_Part *rp, Edje_Cursor cur, Edje_Cursor dst) @@ -4321,14 +4327,11 @@ _edje_entry_cursor_content_get(Edje_Real_Part *rp, Edje_Cursor cur) } void -_edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos) +_edje_text_cursor_pos_set(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c, int pos) { - Entry *en; - Evas_Textblock_Cursor *c = _cursor_get(rp, cur); - if ((rp->type != EDJE_RP_TYPE_TEXT) || (!rp->typedata.text)) return; - en = rp->typedata.text->entry_data; + Entry *en = rp->typedata.text->entry_data; if (!en) return; if (!c) return; /* Abort if cursor position didn't really change */ @@ -4344,12 +4347,26 @@ _edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos) _edje_entry_real_part_configure(en->ed, rp); } +void +_edje_entry_cursor_pos_set(Edje_Real_Part *rp, Edje_Cursor cur, int pos) +{ + Evas_Textblock_Cursor *c = _cursor_get(rp, cur); + + _edje_text_cursor_pos_set(rp, c, pos); +} + +int +_edje_text_cursor_pos_get(Edje_Real_Part *rp EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *c) +{ + return evas_textblock_cursor_pos_get(c); +} + int _edje_entry_cursor_pos_get(Edje_Real_Part *rp, Edje_Cursor cur) { Evas_Textblock_Cursor *c = _cursor_get(rp, cur); if (!c) return 0; - return evas_textblock_cursor_pos_get(c); + return _edje_text_cursor_pos_get(rp, c); } void diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index c71345da00..7605465861 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -201,3 +201,25 @@ edje_object_part_text_cursor_begin_set(Edje_Object *obj, const char *part, Edje_ efl_text_cursor_paragraph_first(efl_part(obj, part), efl_text_cursor_get(efl_part(obj, part), (int) cur)); } + +EAPI void +edje_object_part_text_cursor_end_set(Edje_Object *obj, const char *part, Edje_Cursor cur) +{ + efl_text_cursor_paragraph_last(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) cur)); +} + +EAPI void +edje_object_part_text_cursor_pos_set(Edje_Object *obj, const char * part, Edje_Cursor cur, int pos) +{ + efl_text_cursor_position_set(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) cur), pos); +} + +EAPI int +edje_object_part_text_cursor_pos_get(const Edje_Object *obj, const char * part, Edje_Cursor cur) +{ + return efl_text_cursor_position_get(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) cur)); + +} diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 1675b76212..22539950bf 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -907,16 +907,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part, } return: bool; [[$true if the visible character is hidden. $false if there is no visible character or the object is not set for password mode.]] } - @property part_text_cursor_end { - set { - [[Moves the cursor to the end of the text part. - \@ref evas_textblock_cursor_paragraph_last]] - } - values { - part: string; [[The part name]] - cur: Edje.Cursor; [[The edje cursor to work on]] - } - } @property part_text_cursor_line_begin { set { [[Moves the cursor to the beginning of the line. @@ -1005,25 +995,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part, y: int; [[Y Coordinate.]] } } - @property part_text_cursor_pos { - set { - [[Sets the cursor position to the given value - - @since 1.1.0]] - } - get { - [[Retrieves the current position of the cursor - - @since 1.1.0]] - } - keys { - part: string; [[The part name]] - cur: Edje.Cursor; [[The cursor to move]] - } - values { - pos: int; [[The position of the cursor]] - } - } part_text_cursor_copy { [[Copies the cursor to another cursor.]] diff --git a/src/lib/edje/edje_part_text.c b/src/lib/edje/edje_part_text.c index b4306d0674..99245eaa56 100644 --- a/src/lib/edje/edje_part_text.c +++ b/src/lib/edje/edje_part_text.c @@ -38,5 +38,32 @@ _efl_canvas_layout_internal_text_efl_text_cursor_cursor_paragraph_first(Eo *obj, _edje_text_cursor_begin(pd->rp, cur); RETURN_VOID; } + +EOLIAN static void +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_paragraph_last(Eo *obj, + void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *cur) +{ + PROXY_DATA_GET(obj, pd); + _edje_text_cursor_end(pd->rp, cur); + RETURN_VOID; +} + +EOLIAN static void +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_position_set(Eo *obj, + void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *cur, int pos) +{ + PROXY_DATA_GET(obj, pd); + _edje_text_cursor_pos_set(pd->rp, cur, pos); + RETURN_VOID; +} + +EOLIAN static int +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_position_get(Eo *obj, + void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *cur) +{ + PROXY_DATA_GET(obj, pd); + RETURN_VAL(_edje_text_cursor_pos_get(pd->rp, cur)); +} + #include "efl_canvas_layout_internal_text.eo.c" diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index b26cb36d49..7f2d954aa7 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -3150,6 +3150,10 @@ Eina_Bool _edje_efl_text_set(Eo *obj, Edje *ed, const char *part, const char * const char *_edje_efl_text_get(Eo *obj, Edje *ed, const char *part); Evas_Textblock_Cursor *_edje_text_cursor_get(Edje_Real_Part *rp, Edje_Cursor cur); void _edje_text_cursor_begin(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); +void _edje_text_cursor_end(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); +void _edje_text_cursor_end(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); +void _edje_text_cursor_pos_set(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur, int pos); +int _edje_text_cursor_pos_get(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); void _edje_internal_proxy_shutdown(void); diff --git a/src/lib/edje/efl_canvas_layout_internal_text.eo b/src/lib/edje/efl_canvas_layout_internal_text.eo index 6d14495b94..7e29a63244 100644 --- a/src/lib/edje/efl_canvas_layout_internal_text.eo +++ b/src/lib/edje/efl_canvas_layout_internal_text.eo @@ -11,5 +11,7 @@ class Efl.Canvas.Layout_Internal.Text (Efl.Canvas.Layout_Internal, Efl.Text, Efl.Text.text { set; get; } Efl.Text.Cursor.cursor { get; } Efl.Text.Cursor.cursor_paragraph_first; + Efl.Text.Cursor.cursor_paragraph_last; + Efl.Text.Cursor.cursor_position { set; get; } } } |