From dcb7ceaaf4200576cc96d42922d8cf1045215a0d Mon Sep 17 00:00:00 2001 From: raster Date: Sun, 25 Apr 2010 12:40:26 +0000 Subject: [PATCH] add api to get the item geometry itself. needed to put somethign there. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@48305 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/Evas.h | 1 + src/lib/canvas/evas_object_textblock.c | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/src/lib/Evas.h b/src/lib/Evas.h index 827f325..5ee2ccf 100644 --- a/src/lib/Evas.h +++ b/src/lib/Evas.h @@ -1366,6 +1366,7 @@ extern "C" { EAPI Eina_Bool evas_textblock_cursor_char_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord x, Evas_Coord y) EINA_ARG_NONNULL(1); EAPI int evas_textblock_cursor_line_coord_set(Evas_Textblock_Cursor *cur, Evas_Coord y) EINA_ARG_NONNULL(1); EAPI Eina_List *evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, const Evas_Textblock_Cursor *cur2) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1, 2) EINA_PURE; + EAPI Eina_Bool evas_textblock_cursor_format_item_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) EINA_ARG_NONNULL(1); EAPI Eina_Bool evas_textblock_cursor_eol_get(const Evas_Textblock_Cursor *cur) EINA_WARN_UNUSED_RESULT EINA_ARG_NONNULL(1) EINA_PURE; EAPI void evas_textblock_cursor_eol_set(Evas_Textblock_Cursor *cur, Eina_Bool eol) EINA_ARG_NONNULL(1); diff --git a/src/lib/canvas/evas_object_textblock.c b/src/lib/canvas/evas_object_textblock.c index f61f5ee..fdfbe9d 100644 --- a/src/lib/canvas/evas_object_textblock.c +++ b/src/lib/canvas/evas_object_textblock.c @@ -5158,6 +5158,39 @@ evas_textblock_cursor_range_geometry_get(const Evas_Textblock_Cursor *cur1, cons } /** + * to be documented. + * @param cur to be documented. + * @param cx to be documented. + * @param cy to be documented. + * @param cw to be documented. + * @param ch to be documented. + * @return to be documented. + */ +EAPI Eina_Bool +evas_textblock_cursor_format_item_geometry_get(const Evas_Textblock_Cursor *cur, Evas_Coord *cx, Evas_Coord *cy, Evas_Coord *cw, Evas_Coord *ch) +{ + Evas_Object_Textblock *o; + Evas_Object_Textblock_Line *ln = NULL; + Evas_Object_Textblock_Format_Item *fi = NULL; + Evas_Coord x, y, w, h; + + if (!cur) return 0; + o = (Evas_Object_Textblock *)(cur->obj->object_data); + if (!o->formatted.valid) _relayout(cur->obj); + _find_layout_format_item_line_match(cur->obj, cur->node, &ln, &fi); + if ((!ln) || (!fi)) return 0; + x = ln->x + fi->x; + y = ln->y + ln->baseline + fi->y; + w = fi->w; + h = fi->h; + if (cx) *cx = x; + if (cy) *cy = y; + if (cw) *cw = w; + if (ch) *ch = h; + return 1; +} + +/** * To be documented. * * FIXME: To be fixed. -- 2.7.4