summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2017-06-11 13:21:11 +0300
committerDaniel Hirt <hirt.danny@gmail.com>2017-06-11 13:21:11 +0300
commit5b0d9863b5cdb634ad7f48639c20f23ae2537b82 (patch)
tree36c90d7c768e3251a0e8817a849ce5cb8fb881c1
parentf5a0db7db0fc4b94fb3dcfcc61ef72a5f29eb4f1 (diff)
downloadefl-5b0d9863b5cdb634ad7f48639c20f23ae2537b82.tar.gz
edje part text: add cursor_line
-rw-r--r--src/lib/edje/Edje_Legacy.h22
-rw-r--r--src/lib/edje/edje_entry.c20
-rw-r--r--src/lib/edje/edje_legacy.c14
-rw-r--r--src/lib/edje/edje_object.eo20
-rw-r--r--src/lib/edje/edje_part_text.c18
-rw-r--r--src/lib/edje/edje_private.h3
-rw-r--r--src/lib/edje/efl_canvas_layout_internal_text.eo2
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;
}
}