2017-05-30 00:31:19 -07:00
|
|
|
#include "edje_private.h"
|
|
|
|
#include "edje_part_helper.h"
|
|
|
|
#include "efl_canvas_layout_internal_text.eo.h"
|
|
|
|
#define MY_CLASS EFL_CANVAS_LAYOUT_INTERNAL_TEXT_CLASS
|
|
|
|
|
2017-06-21 17:05:41 -07:00
|
|
|
PROXY_IMPLEMENTATION(text, MY_CLASS, EINA_FALSE)
|
2017-05-30 00:31:19 -07:00
|
|
|
#undef PROXY_IMPLEMENTATION
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_text_set(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED, const char *text)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_efl_text_set(obj, pd->ed, pd->part, text);
|
2017-06-12 06:33:00 -07:00
|
|
|
RETURN_VOID;
|
2017-05-30 00:31:19 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static const char *
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_text_get(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
RETURN_VAL(_edje_efl_text_get(obj, pd->ed, pd->part));
|
|
|
|
}
|
|
|
|
|
2017-07-17 02:45:36 -07:00
|
|
|
EOLIAN static Efl_Text_Cursor_Cursor *
|
2017-06-09 07:55:40 -07:00
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_get(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor_Get_Type get_type)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
RETURN_VAL(_edje_text_cursor_get(pd->rp, (int) get_type));
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_paragraph_first(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_begin(pd->rp, cur);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_paragraph_last(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_end(pd->rp, cur);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_position_set(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur, int pos)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_pos_set(pd->rp, cur, pos);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static int
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_position_get(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
RETURN_VAL(_edje_text_cursor_pos_get(pd->rp, cur));
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_coord_set(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur,
|
2017-06-09 07:55:40 -07:00
|
|
|
int x, int y)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_coord_set(pd->rp, cur, x, y);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_line_char_first(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
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,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_line_end(pd->rp, cur);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_char_prev(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_prev(pd->rp, cur);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_char_next(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
_edje_text_cursor_next(pd->rp, cur);
|
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_line_jump_by(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur, int by)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static void
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_copy(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED,
|
2017-07-17 02:45:36 -07:00
|
|
|
Efl_Text_Cursor_Cursor *dst,
|
|
|
|
const Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2017-07-17 02:45:36 -07:00
|
|
|
_edje_text_cursor_copy(pd->rp, (Efl_Text_Cursor_Cursor *) cur, dst);
|
2017-06-09 07:55:40 -07:00
|
|
|
RETURN_VOID;
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static Eina_Unicode
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_content_get(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED,
|
2017-07-17 02:45:36 -07:00
|
|
|
const Efl_Text_Cursor_Cursor *cur)
|
2017-06-09 07:55:40 -07:00
|
|
|
{
|
|
|
|
Eina_Unicode *ustr;
|
2017-06-12 10:04:10 -07:00
|
|
|
Eina_Unicode uc = { 0 };
|
2017-06-09 07:55:40 -07:00
|
|
|
char *c;
|
|
|
|
int len;
|
|
|
|
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2017-07-17 02:45:36 -07:00
|
|
|
c = _edje_text_cursor_content_get(pd->rp, (Efl_Text_Cursor_Cursor *) cur);
|
2017-06-09 07:55:40 -07:00
|
|
|
ustr = eina_unicode_utf8_to_unicode(c, &len);
|
|
|
|
free(c);
|
|
|
|
if (ustr)
|
|
|
|
{
|
|
|
|
uc = *ustr;
|
|
|
|
free(ustr);
|
|
|
|
}
|
|
|
|
RETURN_VAL(uc);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static Eina_Bool
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_geometry_get(Eo *obj,
|
|
|
|
void *_pd EINA_UNUSED,
|
2017-07-17 02:45:36 -07:00
|
|
|
const Efl_Text_Cursor_Cursor *cur EINA_UNUSED,
|
2017-06-09 07:55:40 -07:00
|
|
|
Efl_Text_Cursor_Cursor_Type ctype EINA_UNUSED,
|
|
|
|
Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch,
|
|
|
|
Evas_Coord *cx2 EINA_UNUSED, Evas_Coord *cy2 EINA_UNUSED,
|
|
|
|
Evas_Coord *cw2 EINA_UNUSED, Evas_Coord *ch2 EINA_UNUSED)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
2017-06-21 00:47:08 -07:00
|
|
|
if (pd->rp->part->entry_mode > EDJE_ENTRY_EDIT_MODE_NONE)
|
|
|
|
{
|
|
|
|
_edje_entry_cursor_geometry_get(pd->rp, cx, cy, cw, ch, NULL);
|
|
|
|
if (cx) *cx -= pd->ed->x;
|
|
|
|
if (cy) *cy -= pd->ed->y;
|
|
|
|
}
|
2017-06-09 07:55:40 -07:00
|
|
|
RETURN_VAL(EINA_FALSE);
|
|
|
|
}
|
|
|
|
|
|
|
|
EOLIAN static int
|
|
|
|
_efl_canvas_layout_internal_text_efl_text_cursor_cursor_text_insert(Eo *obj,
|
2017-07-17 02:45:36 -07:00
|
|
|
void *_pd EINA_UNUSED, Efl_Text_Cursor_Cursor *cur EINA_UNUSED,
|
2017-06-09 07:55:40 -07:00
|
|
|
const char *text)
|
|
|
|
{
|
|
|
|
PROXY_DATA_GET(obj, pd);
|
|
|
|
// Ignoring cursor type and always inserting with main cursor
|
|
|
|
_edje_object_part_text_insert(pd->ed, pd->rp, text);
|
|
|
|
// FIXME: entry should report the length of inserted text (after filtering)
|
|
|
|
RETURN_VAL(0);
|
|
|
|
}
|
|
|
|
|
2017-05-30 00:31:19 -07:00
|
|
|
#include "efl_canvas_layout_internal_text.eo.c"
|
|
|
|
|