summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2017-06-11 14:58:28 +0300
committerDaniel Hirt <hirt.danny@gmail.com>2017-06-11 14:58:28 +0300
commit09737f8a4a2d7a4534427399c92c555dbc4b788f (patch)
treed4efb814adea0643253a7383a12d7627f0e2daa5
parent9d0dbc1914c8c6ac104ebfcdd4c76637b960b50d (diff)
downloadefl-09737f8a4a2d7a4534427399c92c555dbc4b788f.tar.gz
edje part text: add cursor_copy
-rw-r--r--src/lib/edje/Edje_Legacy.h11
-rw-r--r--src/lib/edje/edje_entry.c20
-rw-r--r--src/lib/edje/edje_legacy.c9
-rw-r--r--src/lib/edje/edje_object.eo9
-rw-r--r--src/lib/edje/edje_part_text.c11
-rw-r--r--src/lib/edje/edje_private.h1
-rw-r--r--src/lib/edje/efl_canvas_layout_internal_text.eo1
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;
}
}