diff options
author | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 14:58:28 +0300 |
---|---|---|
committer | Daniel Hirt <hirt.danny@gmail.com> | 2017-06-11 14:58:28 +0300 |
commit | 09737f8a4a2d7a4534427399c92c555dbc4b788f (patch) | |
tree | d4efb814adea0643253a7383a12d7627f0e2daa5 | |
parent | 9d0dbc1914c8c6ac104ebfcdd4c76637b960b50d (diff) | |
download | efl-09737f8a4a2d7a4534427399c92c555dbc4b788f.tar.gz |
edje part text: add cursor_copy
-rw-r--r-- | src/lib/edje/Edje_Legacy.h | 11 | ||||
-rw-r--r-- | src/lib/edje/edje_entry.c | 20 | ||||
-rw-r--r-- | src/lib/edje/edje_legacy.c | 9 | ||||
-rw-r--r-- | src/lib/edje/edje_object.eo | 9 | ||||
-rw-r--r-- | src/lib/edje/edje_part_text.c | 11 | ||||
-rw-r--r-- | src/lib/edje/edje_private.h | 1 | ||||
-rw-r--r-- | src/lib/edje/efl_canvas_layout_internal_text.eo | 1 |
7 files changed, 46 insertions, 16 deletions
diff --git a/src/lib/edje/Edje_Legacy.h b/src/lib/edje/Edje_Legacy.h index 354fe5bfad..fbac078a17 100644 --- a/src/lib/edje/Edje_Legacy.h +++ b/src/lib/edje/Edje_Legacy.h @@ -1513,6 +1513,17 @@ EAPI Eina_Bool edje_object_part_text_cursor_up(Edje_Object *obj, const char *par EAPI Eina_Bool edje_object_part_text_cursor_down(Edje_Object *obj, const char *part, Edje_Cursor cur); /** + * @brief Copies the cursor to another cursor. + * + * @param[in] part The part name + * @param[in] src The cursor to copy from + * @param[in] dst The cursor to copy to + * + * @ingroup Edje_Object + */ +EAPI void edje_object_part_text_cursor_copy(Edje_Object *obj, const char *part, Edje_Cursor src, Edje_Cursor dst); + +/** * @} */ #include "edje_object.eo.legacy.h" diff --git a/src/lib/edje/edje_entry.c b/src/lib/edje/edje_entry.c index 21225eb51b..c11155c71a 100644 --- a/src/lib/edje/edje_entry.c +++ b/src/lib/edje/edje_entry.c @@ -4223,20 +4223,14 @@ _edje_entry_cursor_end(Edje_Real_Part *rp, Edje_Cursor cur) } void -_edje_entry_cursor_copy(Edje_Real_Part *rp, Edje_Cursor cur, Edje_Cursor dst) +_edje_text_cursor_copy(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *d, Efl_Text_Cursor_Cursor_Data *c) { Entry *en; - Evas_Textblock_Cursor *c; - Evas_Textblock_Cursor *d; if ((rp->type != EDJE_RP_TYPE_TEXT) || (!rp->typedata.text)) return; en = rp->typedata.text->entry_data; if (!en) return; - c = _cursor_get(rp, cur); - if (!c) return; - d = _cursor_get(rp, dst); - if (!d) return; evas_textblock_cursor_copy(c, d); _sel_update(en->ed, c, rp->object, rp->typedata.text->entry_data); @@ -4247,6 +4241,18 @@ _edje_entry_cursor_copy(Edje_Real_Part *rp, Edje_Cursor cur, Edje_Cursor dst) } void +_edje_entry_cursor_copy(Edje_Real_Part *rp, Edje_Cursor cur, Edje_Cursor dst) +{ + Evas_Textblock_Cursor *c; + Evas_Textblock_Cursor *d; + c = _cursor_get(rp, cur); + if (!c) return; + d = _cursor_get(rp, dst); + if (!d) return; + _edje_text_cursor_copy(rp, d, c); +} + +void _edje_text_cursor_line_begin(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *c) { Entry *en; diff --git a/src/lib/edje/edje_legacy.c b/src/lib/edje/edje_legacy.c index b4c33c0f5c..6a96cdceed 100644 --- a/src/lib/edje/edje_legacy.c +++ b/src/lib/edje/edje_legacy.c @@ -277,3 +277,12 @@ edje_object_part_text_cursor_up(Edje_Object *obj, const char *part, Edje_Cursor efl_text_cursor_get(efl_part(obj, part), (int) cur), -1); return EINA_TRUE; } + +EAPI void +edje_object_part_text_cursor_copy(Edje_Object *obj, const char *part, Edje_Cursor cur, Edje_Cursor dst) +{ + efl_text_cursor_copy(efl_part(obj, part), + efl_text_cursor_get(efl_part(obj, part), (int) dst), + 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 1c9ff05996..ebce0bfac2 100644 --- a/src/lib/edje/edje_object.eo +++ b/src/lib/edje/edje_object.eo @@ -922,15 +922,6 @@ class Edje.Object (Efl.Canvas.Group.Clipped, Efl.File, Efl.Container, Efl.Part, h: int; [[Cursor height]] } } - part_text_cursor_copy { - [[Copies the cursor to another cursor.]] - - params { - @in part: string; [[The part name]] - @in src: Edje.Cursor; [[The cursor to copy from]] - @in dst: Edje.Cursor; [[The cursor to copy to]] - } - } @property part_text_cursor_content { get { [[Returns the content (char) at the cursor position. diff --git a/src/lib/edje/edje_part_text.c b/src/lib/edje/edje_part_text.c index 57b6290248..2cf9206ef2 100644 --- a/src/lib/edje/edje_part_text.c +++ b/src/lib/edje/edje_part_text.c @@ -127,5 +127,16 @@ _efl_canvas_layout_internal_text_efl_text_cursor_cursor_line_jump_by(Eo *obj, RETURN_VOID; } +EOLIAN static void +_efl_canvas_layout_internal_text_efl_text_cursor_cursor_copy(Eo *obj, + void *_pd EINA_UNUSED, + Efl_Text_Cursor_Cursor_Data *dst, + const Efl_Text_Cursor_Cursor_Data *cur) +{ + PROXY_DATA_GET(obj, pd); + _edje_text_cursor_copy(pd->rp, (Efl_Text_Cursor_Cursor_Data *) cur, dst); + 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 405b938eb0..b241eafae5 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -3160,6 +3160,7 @@ Eina_Bool _edje_text_cursor_next(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data 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_text_cursor_copy(Edje_Real_Part *rp, Efl_Text_Cursor_Cursor_Data *dst, 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 ba97a78dc9..caed7a30ea 100644 --- a/src/lib/edje/efl_canvas_layout_internal_text.eo +++ b/src/lib/edje/efl_canvas_layout_internal_text.eo @@ -19,5 +19,6 @@ class Efl.Canvas.Layout_Internal.Text (Efl.Canvas.Layout_Internal, Efl.Text, Efl.Text.Cursor.cursor_char_next; Efl.Text.Cursor.cursor_char_prev; Efl.Text.Cursor.cursor_line_jump_by; + Efl.Text.Cursor.cursor_copy; } } |