summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Hirt <hirt.danny@gmail.com>2017-06-11 14:31:37 +0300
committerDaniel Hirt <hirt.danny@gmail.com>2017-06-11 14:31:37 +0300
commit9d0dbc1914c8c6ac104ebfcdd4c76637b960b50d (patch)
tree926ae5051e12d884c744504b43613ee71c335cf4
parent2cfca0e13547abba72a14fd18cba13d52cd5df1e (diff)
downloadefl-9d0dbc1914c8c6ac104ebfcdd4c76637b960b50d.tar.gz
edje part text: add cursor_line_jump_by
-rw-r--r--src/lib/edje/Edje_Legacy.h24
-rw-r--r--src/lib/edje/edje_entry.c20
-rw-r--r--src/lib/edje/edje_legacy.c16
-rw-r--r--src/lib/edje/edje_object.eo18
-rw-r--r--src/lib/edje/edje_part_text.c16
-rw-r--r--src/lib/edje/edje_private.h2
-rw-r--r--src/lib/edje/efl_canvas_layout_internal_text.eo1
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;
}
}