diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 13:21:11 +0300 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 13:21:11 +0300 |
commit | 5b0d9863b5cdb634ad7f48639c20f23ae2537b82 (patch) | |
tree | 36c90d7c768e3251a0e8817a849ce5cb8fb881c1 | |
parent | f5a0db7db0fc4b94fb3dcfcc61ef72a5f29eb4f1 (diff) | |
download | efl-5b0d9863b5cdb634ad7f48639c20f23ae2537b82.tar.gz |
edje part text: add cursor_line
-rw-r--r-- | src/lib/edje/Edje_Legacy.h | 22 | ||||
-rw-r--r-- | src/lib/edje/edje_entry.c | 20 | ||||
-rw-r--r-- | src/lib/edje/edje_legacy.c | 14 | ||||
-rw-r--r-- | src/lib/edje/edje_object.eo | 20 | ||||
-rw-r--r-- | src/lib/edje/edje_part_text.c | 18 | ||||
-rw-r--r-- | src/lib/edje/edje_private.h | 3 | ||||
-rw-r--r-- | src/lib/edje/efl_canvas_layout_internal_text.eo | 2 |
7 files changed, 74 insertions, 25 deletions
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index 10917159af..660472dfa6 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -1441,6 +1441,28 @@ EAPI int edje_object_part_text_cursor_pos_get(const Edje_Object *obj, const char EAPI Eina_Bool edje_object_part_text_cursor_coord_set(Edje_Object *obj, const char *part, Edje_Cursor cur, int x, int y); /** + * @brief Moves the cursor to the beginning of the line. @ref + * evas_textblock_cursor_line_char_first + * + * @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_line_begin_set(Edje_Object *obj, const char *part, Edje_Cursor cur); + +/** + * @brief Moves the cursor to the end of the line. @ref + * evas_textblock_cursor_line_char_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_line_end_set(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 26e415fb49..4df7bcf8a0 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -4222,10 +4222,9 @@ _edje_entry_cursor_copy(Edje_Real_Part *rp, Edje_Cursor cur, Edje_Cursor dst) } void -_edje_entry_cursor_line_begin(Edje_Real_Part *rp, Edje_Cursor cur) +_edje_text_cursor_line_begin(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) || @@ -4250,10 +4249,16 @@ _edje_entry_cursor_line_begin(Edje_Real_Part *rp, Edje_Cursor cur) } void -_edje_entry_cursor_line_end(Edje_Real_Part *rp, Edje_Cursor cur) +_edje_entry_cursor_line_begin(Edje_Real_Part *rp, Edje_Cursor cur) { - Entry *en; Evas_Textblock_Cursor *c = _cursor_get(rp, cur); + _edje_text_cursor_line_begin(rp, c); +} + +void +_edje_text_cursor_line_end(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c) +{ + Entry *en; int old_cur_pos; if ((rp->type != EDJE_RP_TYPE_TEXT) || @@ -4276,6 +4281,13 @@ _edje_entry_cursor_line_end(Edje_Real_Part *rp, Edje_Cursor cur) _edje_entry_real_part_configure(en->ed, rp); } +void +_edje_entry_cursor_line_end(Edje_Real_Part *rp, Edje_Cursor cur) +{ + Evas_Textblock_Cursor *c = _cursor_get(rp, cur); + _edje_text_cursor_line_end(rp, c); +} + Eina_Bool _edje_text_cursor_coord_set(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c, Evas_Coord x, Evas_Coord y) diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index d35a9293ed..d7dcadb189 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -231,3 +231,17 @@ edje_object_part_text_cursor_coord_set(Edje_Object *obj, const char *part, Edje_ efl_text_cursor_get(efl_part(obj, part), (int) cur), x, y); return EINA_TRUE; } + +EAPI void +edje_object_part_text_cursor_line_begin_set(Edje_Object *obj, const char *part, Edje_Cursor cur) +{ + efl_text_cursor_line_char_first(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) cur)); +} + +EAPI void +edje_object_part_text_cursor_line_end_set(Edje_Object *obj, const char *part, Edje_Cursor cur) +{ + efl_text_cursor_line_char_last(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 d5f7513144..89e8198565 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -907,26 +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_line_begin { - set { - [[Moves the cursor to the beginning of the line. - \@ref evas_textblock_cursor_line_char_first]] - } - values { - part: string; [[The part name]] - cur: Edje.Cursor; [[The edje cursor to work on]] - } - } - @property part_text_cursor_line_end { - set { - [[Moves the cursor to the end of the line. - \@ref evas_textblock_cursor_line_char_last]] - } - values { - part: string; [[The part name]] - cur: Edje.Cursor; [[The edje cursor to work on]] - } - } part_text_cursor_prev { [[Moves the cursor to the previous char \@ref evas_textblock_cursor_char_prev]] diff --git a/src/lib/edje/edje_part_text.c b/src/lib/edje/edje_part_text.c index 77e43d4561..a087972871 100644 --- a/src/lib/edje/edje_part_text.c +++ b/src/lib/edje/edje_part_text.c @@ -75,5 +75,23 @@ _efl_canvas_layout_internal_text_efl_text_cursor_cursor_coord_set(Eo *obj, RETURN_VOID; } +EOLIAN static void +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_line_char_first(Eo *obj, + void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *cur) +{ + PROXY_DATA_GET(obj, pd); + _edje_text_cursor_line_begin(pd->rp, cur); + RETURN_VOID; +} + +EOLIAN static void +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_line_char_last(Eo *obj, + void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *cur) +{ + PROXY_DATA_GET(obj, pd); + _edje_text_cursor_line_end(pd->rp, cur); + RETURN_VOID; +} + #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 18722d0474..2a783692d8 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -3151,10 +3151,11 @@ 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); Eina_Bool _edje_text_cursor_coord_set(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur, int x, int y); +void _edje_text_cursor_line_begin(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); +void _edje_text_cursor_line_end(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 2a9ca9f146..e038a1d154 100644 --- a/src/lib/edje/efl_canvas_layout_internal_text.eo +++ b/src/lib/edje/efl_canvas_layout_internal_text.eo @@ -14,5 +14,7 @@ class Efl.Canvas.Layout_Internal.Text (Efl.Canvas.Layout_Internal, Efl.Text, Efl.Text.Cursor.cursor_paragraph_last; Efl.Text.Cursor.cursor_position { set; get; } Efl.Text.Cursor.cursor_coord_set; + Efl.Text.Cursor.cursor_line_char_first; + Efl.Text.Cursor.cursor_line_char_last; } } |