diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 14:31:37 +0300 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 14:31:37 +0300 |
commit | 9d0dbc1914c8c6ac104ebfcdd4c76637b960b50d (patch) | |
tree | 926ae5051e12d884c744504b43613ee71c335cf4 | |
parent | 2cfca0e13547abba72a14fd18cba13d52cd5df1e (diff) | |
download | efl-9d0dbc1914c8c6ac104ebfcdd4c76637b960b50d.tar.gz |
edje part text: add cursor_line_jump_by
-rw-r--r-- | src/lib/edje/Edje_Legacy.h | 24 | ||||
-rw-r--r-- | src/lib/edje/edje_entry.c | 20 | ||||
-rw-r--r-- | src/lib/edje/edje_legacy.c | 16 | ||||
-rw-r--r-- | src/lib/edje/edje_object.eo | 18 | ||||
-rw-r--r-- | src/lib/edje/edje_part_text.c | 16 | ||||
-rw-r--r-- | src/lib/edje/edje_private.h | 2 | ||||
-rw-r--r-- | src/lib/edje/efl_canvas_layout_internal_text.eo | 1 |
7 files changed, 75 insertions, 22 deletions
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index da5f4bd01f..354fe5bfad 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -1489,6 +1489,30 @@ EAPI Eina_Bool edje_object_part_text_cursor_prev(Edje_Object *obj, const char *p EAPI Eina_Bool edje_object_part_text_cursor_next(Edje_Object *obj, const char *part, Edje_Cursor cur); /** + * @brief Moves the cursor to the char above the current cursor position. + * + * @param[in] part The part name + * @param[in] cur The edje cursor to work on + * + * @return @c true on success, @c false otherwise + * + * @ingroup Edje_Object + */ +EAPI Eina_Bool edje_object_part_text_cursor_up(Edje_Object *obj, const char *part, Edje_Cursor cur); + +/** + * @brief Moves the cursor to the char below the current cursor position. + * + * @param[in] part The part name + * @param[in] cur The edje cursor to work on + * + * @return @c true on success, @c false otherwise + * + * @ingroup Edje_Object + */ +EAPI Eina_Bool edje_object_part_text_cursor_down(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 13429ea718..21225eb51b 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -4075,10 +4075,9 @@ _edje_entry_cursor_prev(Edje_Real_Part *rp, Edje_Cursor cur) } Eina_Bool -_edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur) +_edje_text_cursor_up(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c) { Entry *en; - Evas_Textblock_Cursor *c = _cursor_get(rp, cur); Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch; int ln; @@ -4109,10 +4108,16 @@ _edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur) } Eina_Bool -_edje_entry_cursor_down(Edje_Real_Part *rp, Edje_Cursor cur) +_edje_entry_cursor_up(Edje_Real_Part *rp, Edje_Cursor cur) { - Entry *en; Evas_Textblock_Cursor *c = _cursor_get(rp, cur); + return _edje_text_cursor_up(rp, c); +} + +Eina_Bool +_edje_text_cursor_down(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c) +{ + Entry *en; Evas_Coord lx, ly, lw, lh, cx, cy, cw, ch; int ln; @@ -4141,6 +4146,13 @@ _edje_entry_cursor_down(Edje_Real_Part *rp, Edje_Cursor cur) return EINA_TRUE; } +Eina_Bool +_edje_entry_cursor_down(Edje_Real_Part *rp, Edje_Cursor cur) +{ + Evas_Textblock_Cursor *c = _cursor_get(rp, cur); + return _edje_text_cursor_down(rp, c); +} + void _edje_text_cursor_begin(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c) { diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index b86f8061d1..b4c33c0f5c 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -261,3 +261,19 @@ edje_object_part_text_cursor_next(Edje_Object *obj, const char *part, Edje_Curso efl_text_cursor_get(efl_part(obj, part), (int) cur)); return EINA_TRUE; } + +EAPI Eina_Bool +edje_object_part_text_cursor_down(Edje_Object *obj, const char *part, Edje_Cursor cur) +{ + efl_text_cursor_line_jump_by(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) cur), 1); + return EINA_TRUE; +} + +EAPI Eina_Bool +edje_object_part_text_cursor_up(Edje_Object *obj, const char *part, Edje_Cursor cur) +{ + efl_text_cursor_line_jump_by(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) cur), -1); + return EINA_TRUE; +} diff --git a/src/lib/edje/edje_object.eo b/src/lib/edje/edje_object.eo index 4788a26c7a..1c9ff05996 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -907,24 +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.]] } - part_text_cursor_up { - [[Moves the cursor to the char above the current cursor position.]] - - return: bool; [[$true on success, $false otherwise]] - params { - @in part: string; [[The part name]] - @in cur: Edje.Cursor; [[The edje cursor to work on]] - } - } - part_text_cursor_down { - [[Moves the cursor to the char below the current cursor position.]] - - return: bool; [[$true on success, $false otherwise]] - params { - @in part: string; [[The part name]] - @in cur: Edje.Cursor; [[The edje cursor to work on]] - } - } @property part_text_cursor_geometry { get { [[Returns the cursor geometry of the part relative to the edje diff --git a/src/lib/edje/edje_part_text.c b/src/lib/edje/edje_part_text.c index c673002d50..57b6290248 100644 --- a/src/lib/edje/edje_part_text.c +++ b/src/lib/edje/edje_part_text.c @@ -111,5 +111,21 @@ _efl_canvas_layout_internal_text_efl_text_cursor_cursor_char_next(Eo *obj, RETURN_VOID; } +EOLIAN static void +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_line_jump_by(Eo *obj, + void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Data *cur, int by) +{ + PROXY_DATA_GET(obj, pd); + if (by == 1) + { + _edje_text_cursor_down(pd->rp, cur); + } + else if (by == -1) + { + _edje_text_cursor_up(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 40f5210ba2..405b938eb0 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -3158,6 +3158,8 @@ void _edje_text_cursor_line_begin(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Dat void _edje_text_cursor_line_end(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); Eina_Bool _edje_text_cursor_next(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); Eina_Bool _edje_text_cursor_prev(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); +Eina_Bool _edje_text_cursor_up(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *cur); +Eina_Bool _edje_text_cursor_down(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 5420c5c597..ba97a78dc9 100644 --- a/src/lib/edje/efl_canvas_layout_internal_text.eo +++ b/src/lib/edje/efl_canvas_layout_internal_text.eo @@ -18,5 +18,6 @@ class Efl.Canvas.Layout_Internal.Text (Efl.Canvas.Layout_Internal, Efl.Text, Efl.Text.Cursor.cursor_line_char_last; Efl.Text.Cursor.cursor_char_next; Efl.Text.Cursor.cursor_char_prev; + Efl.Text.Cursor.cursor_line_jump_by; } } |