Evas textblock: Added evas_textblock_cursor_content_get.

SVN revision: 51898
This commit is contained in:
Tom Hacohen 2010-09-05 08:28:58 +00:00
parent 7258468265
commit 2d1d631b48
2 changed files with 35 additions and 0 deletions

View File

@ -1413,6 +1413,7 @@ typedef void (*Evas_Object_Image_Pixels_Get_Cb) (void *data, Evas_Object *o);
EAPI const char *evas_textblock_cursor_paragraph_text_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
EAPI int evas_textblock_cursor_paragraph_text_length_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE;
EAPI char *evas_textblock_cursor_range_text_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2, Evas_Textblock_Text_Type format) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE;
EAPI char *evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_MALLOC;
EAPI int evas_textblock_cursor_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch, Evas_Textblock_Cursor_Type ctype) EINA_ARG_NONNULL(1);
EAPI int evas_textblock_cursor_char_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1);

View File

@ -6185,6 +6185,40 @@ evas_textblock_cursor_range_delete(Evas_Textblock_Cursor *cur1, Evas_Textblock_C
_evas_textblock_changed(o, cur1->obj);
}
/**
* Return the content of the cursor.
*
* @param cur the cursor
* @return the text in the range
*/
EAPI char *
evas_textblock_cursor_content_get(const Evas_Textblock_Cursor *cur)
{
const Eina_Unicode *ustr;
Eina_Unicode buf[2];
char *s;
if (!cur || !cur->node) return NULL;
if (evas_textblock_cursor_format_is_visible_get(cur))
{
if (evas_textblock_cursor_format_is_visible_get(cur))
{
const char *tmp;
tmp = evas_textblock_node_format_text_get(
_evas_textblock_node_visible_at_pos_get(
evas_textblock_cursor_format_get(cur)));
return strdup(tmp);
}
}
ustr = eina_ustrbuf_string_get(cur->node->unicode);
buf[0] = ustr[cur->pos];
buf[1] = 0;
s = evas_common_encoding_unicode_to_utf8(buf, NULL);
return s;
}
/**
* Return the text in the range between cur1 and cur2
*