diff --git a/legacy/evas/configure.in b/legacy/evas/configure.in index 874592b272..d0fd9c50eb 100644 --- a/legacy/evas/configure.in +++ b/legacy/evas/configure.in @@ -374,7 +374,7 @@ if test "x$have_evas_gl_x11" = "xyes"; then x_cflags=${x_cflags:--I$x_dir/include} x_libs="${x_libs:--L$x_dir/lib -lX11 -lXext}" gl_cflags="-I/usr/include" - gl_libs="-L/usr/lib32 -lGL -lGLU -lpthread" + gl_libs="-lGL -lGLU -lpthread" gl_dir="" ENGINE_GL_X11_PRG="evas_gl_x11_test" ], [ diff --git a/legacy/evas/src/lib/Evas.h b/legacy/evas/src/lib/Evas.h index ab8f79bfd1..887e2eb8d0 100644 --- a/legacy/evas/src/lib/Evas.h +++ b/legacy/evas/src/lib/Evas.h @@ -451,6 +451,7 @@ extern "C" { EAPI void evas_object_textblock_format_del (Evas_Object *obj); EAPI void evas_object_textblock_format_direction_set (Evas_Object *obj, Evas_Format_Direction dir); EAPI Evas_Format_Direction evas_object_textblock_format_direction_get (Evas_Object *obj); + EAPI void evas_object_textblock_format_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); EAPI void evas_object_textblock_native_size_get (Evas_Object *obj, Evas_Coord *w, Evas_Coord *h); EAPI void evas_object_del (Evas_Object *obj); diff --git a/legacy/evas/src/lib/canvas/evas_object_textblock.c b/legacy/evas/src/lib/canvas/evas_object_textblock.c index 7f01fda9d9..ef1fafce61 100644 --- a/legacy/evas/src/lib/canvas/evas_object_textblock.c +++ b/legacy/evas/src/lib/canvas/evas_object_textblock.c @@ -17,8 +17,8 @@ * * get formatted extents * * get native extents * * finish off current api where it is unfinished - * * if a word (or char) doesnt fit at all do something sensible * * styles (outline, glow, etxra glow, shadow, soft shadow, etc.) + * * if a word (or char) doesnt fit at all do something sensible * * anchors (to query text extents) * * tabs (indents) * * left and right margins @@ -131,7 +131,7 @@ struct _Evas_Object_Textblock struct { unsigned char dirty : 1; Evas_Coord w, h; - } native; + } native, format; Evas_List *font_hold; void *engine_data; }; @@ -857,6 +857,16 @@ evas_object_textblock_layout(Evas_Object *obj) evas_object_textblock_layout_clear(obj, &layout); } +static void +evas_object_textblock_format_calc(Evas_Object *obj) +{ + Evas_Object_Textblock *o; + Layout layout; + + o = (Evas_Object_Textblock *)(obj->object_data); + /* FIXME: takes nodes and produce layotu nodes ignoring object size */ +} + static void evas_object_textblock_native_calc(Evas_Object *obj) { @@ -1426,6 +1436,31 @@ evas_object_textblock_format_direction_get(Evas_Object *obj) return o->format_dir; } +void +evas_object_textblock_format_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) +{ + Evas_Object_Textblock *o; + + MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + o = (Evas_Object_Textblock *)(obj->object_data); + MAGIC_CHECK(o, Evas_Object_Textblock, MAGIC_OBJ_TEXTBLOCK); + if (w) *w = 0; + if (h) *h = 0; + return; + MAGIC_CHECK_END(); + if (o->native.dirty) + { + evas_object_textblock_format_calc(obj); + o->native.dirty = 0; + } + if (w) *w = o->format.w; + if (h) *h = o->format.h; +} + void evas_object_textblock_native_size_get(Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) {