From: <no-...@en...> - 2008-09-10 05:43:26
|
Author: raster Date: 2008-09-09 22:43:25 -0700 (Tue, 09 Sep 2008) New Revision: 35920 Modified: trunk/evas/src/lib/canvas/evas_object_text.c trunk/evas/src/lib/canvas/evas_object_textblock.c Log: promote scale to fp. Modified: trunk/evas/src/lib/canvas/evas_object_text.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_text.c 2008-09-10 05:13:29 UTC (rev 35919) +++ trunk/evas/src/lib/canvas/evas_object_text.c 2008-09-10 05:43:25 UTC (rev 35920) @@ -191,7 +191,7 @@ evas_font_free(obj->layer->evas, o->engine_data); o->engine_data = NULL; } - o->engine_data = evas_font_load(obj->layer->evas, font, o->cur.source, size * obj->cur.scale); + o->engine_data = evas_font_load(obj->layer->evas, font, o->cur.source, (int)(((double)size) * obj->cur.scale)); if (!same_font) { if (o->cur.font) evas_stringshare_del(o->cur.font); Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-09-10 05:13:29 UTC (rev 35919) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-09-10 05:43:25 UTC (rev 35920) @@ -1170,7 +1170,7 @@ buf = strdup(fmt->font.name); fmt->font.font = evas_font_load(obj->layer->evas, buf, fmt->font.source, - fmt->font.size * obj->cur.scale); + (int)(((double)fmt->font.size) * obj->cur.scale)); if (buf) free(buf); if (of) evas_font_free(obj->layer->evas, of); } @@ -1291,7 +1291,7 @@ buf = strdup(fmt2->font.name); fmt2->font.font = evas_font_load(obj->layer->evas, buf, fmt2->font.source, - fmt2->font.size * obj->cur.scale); + (int)(((double)fmt2->font.size) * obj->cur.scale)); if (buf) free(buf); return fmt2; } |
From: <no-...@en...> - 2008-09-10 06:40:54
|
Author: raster Date: 2008-09-09 23:40:54 -0700 (Tue, 09 Sep 2008) New Revision: 35924 Modified: trunk/evas/src/lib/canvas/evas_object_text.c trunk/evas/src/lib/canvas/evas_object_textblock.c Log: ensure scaling multiplies are promoted to fp. Modified: trunk/evas/src/lib/canvas/evas_object_text.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_text.c 2008-09-10 06:40:24 UTC (rev 35923) +++ trunk/evas/src/lib/canvas/evas_object_text.c 2008-09-10 06:40:54 UTC (rev 35924) @@ -191,7 +191,6 @@ evas_font_free(obj->layer->evas, o->engine_data); o->engine_data = NULL; } - o->engine_data = evas_font_load(obj->layer->evas, font, o->cur.source, (int)(((double)size) * obj->cur.scale)); if (!same_font) { if (o->cur.font) evas_stringshare_del(o->cur.font); @@ -200,6 +199,8 @@ o->prev.font = NULL; } o->cur.size = size; + o->engine_data = evas_font_load(obj->layer->evas, o->cur.font, o->cur.source, + (int)(((double)o->cur.size) * obj->cur.scale)); evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b); if ((o->engine_data) && (o->cur.text)) { Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-09-10 06:40:24 UTC (rev 35923) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-09-10 06:40:54 UTC (rev 35924) @@ -1168,6 +1168,7 @@ } else if (fmt->font.name) buf = strdup(fmt->font.name); + fmt->font.font = evas_font_load(obj->layer->evas, buf, fmt->font.source, (int)(((double)fmt->font.size) * obj->cur.scale)); @@ -1290,7 +1291,7 @@ else if (fmt2->font.name) buf = strdup(fmt2->font.name); fmt2->font.font = evas_font_load(obj->layer->evas, - buf, fmt2->font.source, + buf, fmt2->font.source, (int)(((double)fmt2->font.size) * obj->cur.scale)); if (buf) free(buf); return fmt2; |
From: Christopher M. <cpm...@co...> - 2008-09-10 07:14:53
|
fp...better for a scale...more precision dh no-...@en... wrote: > Author: raster > Date: 2008-09-09 23:40:54 -0700 (Tue, 09 Sep 2008) > New Revision: 35924 > > Modified: > trunk/evas/src/lib/canvas/evas_object_text.c trunk/evas/src/lib/canvas/evas_object_textblock.c > Log: > > ensure scaling multiplies are promoted to fp. > > > > Modified: trunk/evas/src/lib/canvas/evas_object_text.c > =================================================================== > --- trunk/evas/src/lib/canvas/evas_object_text.c 2008-09-10 06:40:24 UTC (rev 35923) > +++ trunk/evas/src/lib/canvas/evas_object_text.c 2008-09-10 06:40:54 UTC (rev 35924) > @@ -191,7 +191,6 @@ > evas_font_free(obj->layer->evas, o->engine_data); > o->engine_data = NULL; > } > - o->engine_data = evas_font_load(obj->layer->evas, font, o->cur.source, (int)(((double)size) * obj->cur.scale)); > if (!same_font) > { > if (o->cur.font) evas_stringshare_del(o->cur.font); > @@ -200,6 +199,8 @@ > o->prev.font = NULL; > } > o->cur.size = size; > + o->engine_data = evas_font_load(obj->layer->evas, o->cur.font, o->cur.source, > + (int)(((double)o->cur.size) * obj->cur.scale)); > evas_text_style_pad_get(o->cur.style, &l, &r, &t, &b); > if ((o->engine_data) && (o->cur.text)) > { > > Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c > =================================================================== > --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-09-10 06:40:24 UTC (rev 35923) > +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-09-10 06:40:54 UTC (rev 35924) > @@ -1168,6 +1168,7 @@ > } > else if (fmt->font.name) > buf = strdup(fmt->font.name); > + > fmt->font.font = evas_font_load(obj->layer->evas, > buf, fmt->font.source, > (int)(((double)fmt->font.size) * obj->cur.scale)); > @@ -1290,7 +1291,7 @@ > else if (fmt2->font.name) > buf = strdup(fmt2->font.name); > fmt2->font.font = evas_font_load(obj->layer->evas, > - buf, fmt2->font.source, > + buf, fmt2->font.source, > (int)(((double)fmt2->font.size) * obj->cur.scale)); > if (buf) free(buf); > return fmt2; > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > enlightenment-svn mailing list > enl...@li... > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > |
From: Enlightenment S. <no-...@en...> - 2008-10-04 16:12:53
|
Log: and have sane default values for weight and align. Author: raster Date: 2008-10-04 09:12:48 -0700 (Sat, 04 Oct 2008) New Revision: 36430 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:11:23 UTC (rev 36429) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:12:48 UTC (rev 36430) @@ -838,12 +838,12 @@ evas_object_size_hint_align_get(const Evas_Object *obj, double *x, double *y) { MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - if (x) *x = 0.0; if (y) *y = 0.0; + if (x) *x = 0.5; if (y) *y = 0.5; return; MAGIC_CHECK_END(); if ((!obj->size_hints) || obj->delete_me) { - if (x) *x = 0.0; if (y) *y = 0.0; + if (x) *x = 0.5; if (y) *y = 0.5; return; } if (x) *x = obj->size_hints->align.x; @@ -893,12 +893,12 @@ evas_object_size_hint_weight_get(const Evas_Object *obj, double *x, double *y) { MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - if (x) *x = 0.0; if (y) *y = 0.0; + if (x) *x = 1.0; if (y) *y = 1.0; return; MAGIC_CHECK_END(); if ((!obj->size_hints) || obj->delete_me) { - if (x) *x = 0.0; if (y) *y = 0.0; + if (x) *x = 1.0; if (y) *y = 1.0; return; } if (x) *x = obj->size_hints->weight.x; |
From: Enlightenment S. <no-...@en...> - 2008-10-04 16:53:52
|
Log: return a "default" max of -1 x -1 - 0x0 max isnt that sensible! (-1 == unlimited) Author: raster Date: 2008-10-04 09:53:47 -0700 (Sat, 04 Oct 2008) New Revision: 36432 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:42:04 UTC (rev 36431) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:53:47 UTC (rev 36432) @@ -661,12 +661,12 @@ evas_object_size_hint_max_get(const Evas_Object *obj, Evas_Coord *w, Evas_Coord *h) { MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - if (w) *w = 0; if (h) *h = 0; + if (w) *w = -1; if (h) *h = -1; return; MAGIC_CHECK_END(); if ((!obj->size_hints) || obj->delete_me) { - if (w) *w = 0; if (h) *h = 0; + if (w) *w = -1; if (h) *h = -1; return; } if (w) *w = obj->size_hints->max.w; |
From: Enlightenment S. <no-...@en...> - 2008-10-04 17:10:50
|
Log: fix typo and dont call chnages if no change on size hints. Author: raster Date: 2008-10-04 10:10:44 -0700 (Sat, 04 Oct 2008) New Revision: 36434 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:57:02 UTC (rev 36433) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 17:10:44 UTC (rev 36434) @@ -646,7 +646,7 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - + if ((obj->size_hints->min.w == w) && (obj->size_hints->min.h == h)) return; obj->size_hints->min.w = w; obj->size_hints->min.h = h; @@ -703,7 +703,7 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - + if ((obj->size_hints->max.w == w) && (obj->size_hints->max.h == h)) return; obj->size_hints->max.w = w; obj->size_hints->max.h = h; @@ -760,7 +760,7 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - + if ((obj->size_hints->request.w == w) && (obj->size_hints->request.h == h)) return; obj->size_hints->request.w = w; obj->size_hints->request.h = h; @@ -822,7 +822,7 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - + if ((obj->size_hints->aspect.mode == aspect) && (obj->size_hints->aspect.size.w == w) && (obj->size_hints->aspect.size.h == h)) return; obj->size_hints->aspect.mode = aspect; obj->size_hints->aspect.size.w = w; obj->size_hints->aspect.size.h = h; @@ -877,9 +877,9 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - + if ((obj->size_hints->align.x == x) && (obj->size_hints->align.y == y)) return; obj->size_hints->align.x = x; - obj->size_hints->align.x = y; + obj->size_hints->align.y = y; evas_object_inform_call_changed_size_hints(obj); } @@ -931,9 +931,9 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - + if ((obj->size_hints->weight.x == x) && (obj->size_hints->weight.y == y)) return; obj->size_hints->weight.x = x; - obj->size_hints->weight.x = y; + obj->size_hints->weight.y = y; evas_object_inform_call_changed_size_hints(obj); } @@ -989,8 +989,8 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); + if ((obj->size_hints->padding.l == l) && (obj->size_hints->padding.r == r) && (obj->size_hints->padding.t == t) && (obj->size_hints->padding.b == b)) return; - obj->size_hints->padding.l = l; obj->size_hints->padding.r = r; obj->size_hints->padding.t = t; obj->size_hints->padding.b = b; |
From: Enlightenment S. <no-...@en...> - 2008-10-04 17:28:52
|
Log: fix missed assignment Author: raster Date: 2008-10-04 10:28:43 -0700 (Sat, 04 Oct 2008) New Revision: 36435 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 17:10:44 UTC (rev 36434) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 17:28:43 UTC (rev 36435) @@ -990,7 +990,7 @@ return; _evas_object_size_hint_alloc(obj); if ((obj->size_hints->padding.l == l) && (obj->size_hints->padding.r == r) && (obj->size_hints->padding.t == t) && (obj->size_hints->padding.b == b)) return; - + obj->size_hints->padding.l = l; obj->size_hints->padding.r = r; obj->size_hints->padding.t = t; obj->size_hints->padding.b = b; |
From: Enlightenment S. <no-...@en...> - 2008-10-04 16:42:15
|
Log: ok weight default 0 Author: raster Date: 2008-10-04 09:42:04 -0700 (Sat, 04 Oct 2008) New Revision: 36431 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:12:48 UTC (rev 36430) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:42:04 UTC (rev 36431) @@ -893,12 +893,12 @@ evas_object_size_hint_weight_get(const Evas_Object *obj, double *x, double *y) { MAGIC_CHECK(obj, Evas_Object, MAGIC_OBJ); - if (x) *x = 1.0; if (y) *y = 1.0; + if (x) *x = 0.0; if (y) *y = 0.0; return; MAGIC_CHECK_END(); if ((!obj->size_hints) || obj->delete_me) { - if (x) *x = 1.0; if (y) *y = 1.0; + if (x) *x = 0.0; if (y) *y = 0.0; return; } if (x) *x = obj->size_hints->weight.x; |
From: Enlightenment S. <no-...@en...> - 2008-10-04 16:57:11
|
Log: and init size_hints struct with defaults on alloc. Author: raster Date: 2008-10-04 09:57:02 -0700 (Sat, 04 Oct 2008) New Revision: 36433 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:53:47 UTC (rev 36432) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-04 16:57:02 UTC (rev 36433) @@ -584,6 +584,17 @@ * * Functions that deals with hints about object size. */ +static void +_evas_object_size_hint_alloc(Evas_Object *obj) +{ + if (obj->size_hints) return; + + obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + obj->size_hints->max.w = -1; + obj->size_hints->max.h = -1; + obj->size_hints->align.x = 0.5; + obj->size_hints->align.y = 0.5; +} /** * Retrieves the size hint for the minimum size. @@ -634,8 +645,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->min.w = w; obj->size_hints->min.h = h; @@ -692,8 +702,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->max.w = w; obj->size_hints->max.h = h; @@ -750,8 +759,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->request.w = w; obj->size_hints->request.h = h; @@ -813,8 +821,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->aspect.mode = aspect; obj->size_hints->aspect.size.w = w; @@ -869,8 +876,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->align.x = x; obj->size_hints->align.x = y; @@ -924,8 +930,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->weight.x = x; obj->size_hints->weight.x = y; @@ -983,8 +988,7 @@ MAGIC_CHECK_END(); if (obj->delete_me) return; - if (!obj->size_hints) - obj->size_hints = calloc(1, sizeof(Evas_Size_Hints)); + _evas_object_size_hint_alloc(obj); obj->size_hints->padding.l = l; obj->size_hints->padding.r = r; |
From: Enlightenment S. <no-...@en...> - 2008-10-05 03:52:13
|
Log: formatting Author: raster Date: 2008-10-04 20:47:52 -0700 (Sat, 04 Oct 2008) New Revision: 36440 Modified: trunk/evas/src/lib/canvas/evas_object_main.c Modified: trunk/evas/src/lib/canvas/evas_object_main.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-05 03:37:37 UTC (rev 36439) +++ trunk/evas/src/lib/canvas/evas_object_main.c 2008-10-05 03:47:52 UTC (rev 36440) @@ -822,7 +822,7 @@ if (obj->delete_me) return; _evas_object_size_hint_alloc(obj); - if ((obj->size_hints->aspect.mode == aspect) && (obj->size_hints->aspect.size.w == w) && (obj->size_hints->aspect.size.h == h)) return; + if ((obj->size_hints->aspect.mode == aspect) && (obj->size_hints->aspect.size.w == w) && (obj->size_hints->aspect.size.h == h)) return; obj->size_hints->aspect.mode = aspect; obj->size_hints->aspect.size.w = w; obj->size_hints->aspect.size.h = h; |
From: Enlightenment S. <no-...@en...> - 2008-10-14 02:46:05
|
Log: fix some minor bugs in textblock with cursor pos's, text insertion etc. Author: raster Date: 2008-10-13 19:45:55 -0700 (Mon, 13 Oct 2008) New Revision: 36645 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-13 23:41:17 UTC (rev 36644) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-14 02:45:55 UTC (rev 36645) @@ -3212,7 +3212,7 @@ } cur->node = n; index = cur->pos; - if (cur->pos >= (n->len - 1)) + if (cur->pos > (n->len - 1)) n->text = _strbuf_append(n->text, (char *)text, &(n->len), &(n->alloc)); else n->text = _strbuf_insert(n->text, (char *)text, cur->pos, &(n->len), &(n->alloc)); @@ -3868,7 +3868,15 @@ it->text, pos, &x, &y, &w, &h); - if (ret <= 0) return -1; + if (ret <= 0) + { + if (it->format->font.font) + cur->ENFN->font_string_size_get(cur->ENDT, it->format->font.font, + it->text, &w, &h); + x = w; + y = 0; + w = 0; + } x = ln->x + it->x - it->inset + x; if (x < ln->x) { @@ -3885,8 +3893,7 @@ w = fi->w; h = ln->h; } - else - return -1; + else return -1; if (cx) *cx = x; if (cy) *cy = y; if (cw) *cw = w; |
From: Enlightenment S. <no-...@en...> - 2008-10-16 14:19:00
|
Log: als search for format items. Author: raster Date: 2008-10-16 07:18:50 -0700 (Thu, 16 Oct 2008) New Revision: 36720 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-16 14:09:43 UTC (rev 36719) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-16 14:18:50 UTC (rev 36720) @@ -301,8 +301,14 @@ { int text_len; - if ((!text) || (text[0] == '\0')) + if (!text) return strbuf; + if ((!strbuf) && (text[0] == '\0')) + { + *strbuf_len = 0; + *strbuf_alloc = 1; + return strdup(text); + } text_len = strlen(text); return _strbuf_append_int(strbuf, text, text_len, strbuf_len, strbuf_alloc); @@ -2065,7 +2071,6 @@ c->align = 0.0; _format_command_init(); - /* setup default base style */ if ((c->o->style) && (c->o->style->default_tag)) { @@ -2259,6 +2264,12 @@ Evas_Object_Textblock *o; o = (Evas_Object_Textblock *)(obj->object_data); + for (l = (Evas_Object_List *)o->nodes; l; l = l->next) + { + Evas_Object_Textblock_Node *nn; + + nn = l; + } for (l = (Evas_Object_List *)o->lines; l; l = l->next) { Evas_Object_Textblock_Line *ln; @@ -2279,6 +2290,18 @@ } } } + for (ll = (Evas_Object_List *)ln->format_items; ll; ll = ll->next) + { + Evas_Object_Textblock_Format_Item *it; + + it = (Evas_Object_Textblock_Format_Item *)ll; + if (it->source_node == n) + { + *lnr = ln; + *itr = it; + return; + } + } } } |
From: Enlightenment S. <no-...@en...> - 2008-10-17 00:04:22
|
Log: fix another booboo in textblock for editing multiline stuff Author: raster Date: 2008-10-16 17:04:17 -0700 (Thu, 16 Oct 2008) New Revision: 36732 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-16 21:47:52 UTC (rev 36731) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-17 00:04:17 UTC (rev 36732) @@ -3179,8 +3179,9 @@ if (cur->node->type == NODE_FORMAT) return 0; if (!cur->node->text) return 0; index = cur->pos; + if (index == 0) return 0; ch = evas_common_font_utf8_get_prev((unsigned char *)(cur->node->text), &index); - if ((ch == 0) || (index < 0)) return 0; + if (/*(ch == 0) || */(index < 0)) return 0; cur->pos = index; return 1; } |
From: Enlightenment S. <no-...@en...> - 2008-10-17 01:40:43
|
Log: more work to make it usable Author: raster Date: 2008-10-16 18:39:57 -0700 (Thu, 16 Oct 2008) New Revision: 36737 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-17 01:05:02 UTC (rev 36736) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-17 01:39:57 UTC (rev 36737) @@ -2966,6 +2966,7 @@ if (*s == '-') pop = 1; while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; if (pop) txt = _strbuf_append(txt, "/", &txt_len, &txt_alloc); + if (push) txt = _strbuf_append(txt, "+ ", &txt_len, &txt_alloc); txt = _strbuf_append(txt, s, &txt_len, &txt_alloc); } txt = _strbuf_append(txt, ">", &txt_len, &txt_alloc); @@ -3907,33 +3908,38 @@ if (chr == 0) return; if (n1 == n2) { - if (cur1->pos == cur2->pos) + if (n1->type == NODE_TEXT) { - evas_textblock_cursor_char_delete(cur1); - evas_textblock_cursor_copy(cur1, cur2); - return; - } - n1->text = _strbuf_remove(n1->text, cur1->pos, index, &(n1->len), &(n1->alloc)); - if (!n1->text) - { - evas_textblock_cursor_node_delete(cur1); - evas_textblock_cursor_copy(cur1, cur2); - return; - } - if (cur1->pos >= n1->len) - { - n2 = (Evas_Object_Textblock_Node *)(((Evas_Object_List *)n1)->next); - if (n2) + if (cur1->pos == cur2->pos) { - cur1->node = n2; - cur1->pos = 0; + evas_textblock_cursor_char_delete(cur1); + evas_textblock_cursor_copy(cur1, cur2); + return; } - else + n1->text = _strbuf_remove(n1->text, cur1->pos, index, &(n1->len), &(n1->alloc)); + if (!n1->text) { - cur1->pos = 0; - evas_textblock_cursor_char_last(cur1); + evas_textblock_cursor_node_delete(cur1); + evas_textblock_cursor_copy(cur1, cur2); + return; } + if (cur1->pos >= n1->len) + { + n2 = (Evas_Object_Textblock_Node *)(((Evas_Object_List *)n1)->next); + if (n2) + { + cur1->node = n2; + cur1->pos = 0; + } + else + { + cur1->pos = 0; + evas_textblock_cursor_char_last(cur1); + } + } } + else + evas_textblock_cursor_node_delete(cur1); evas_textblock_cursor_copy(cur1, cur2); } else @@ -4392,6 +4398,7 @@ if (*s == '-') pop = 1; while ((*s == ' ') || (*s == '+') || (*s == '-')) s++; if (pop) str = _strbuf_append(str, "/", &len, &alloc); + if (push) str = _strbuf_append(str, "+ ", &len, &alloc); str = _strbuf_append(str, s, &len, &alloc); } str = _strbuf_append(str, ">", &len, &alloc); |
From: Enlightenment S. <no-...@en...> - 2008-10-17 03:16:18
|
Log: put format info in pops too when feeding from markup. Author: raster Date: 2008-10-16 20:16:11 -0700 (Thu, 16 Oct 2008) New Revision: 36740 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-17 01:42:20 UTC (rev 36739) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-17 03:16:11 UTC (rev 36740) @@ -2719,20 +2719,23 @@ evas_textblock_cursor_format_append(o->cursor, match); else { - if (ttag[0] == '/') - evas_textblock_cursor_format_append(o->cursor, "-"); - else + char *ttag2; + + ttag2 = malloc(strlen(ttag) + 2 + 1); + if (ttag2) { - char *ttag2; - - ttag2 = malloc(strlen(ttag) + 2 + 1); - if (ttag2) + if (ttag[0] == '/') { + strcpy(ttag2, "- "); + strcat(ttag2, ttag + 1); + } + else + { strcpy(ttag2, "+ "); strcat(ttag2, ttag); - evas_textblock_cursor_format_append(o->cursor, ttag2); - free(ttag2); } + evas_textblock_cursor_format_append(o->cursor, ttag2); + free(ttag2); } } free(ttag); @@ -2852,20 +2855,24 @@ evas_textblock_cursor_format_prepend(cur, match); else { - if (ttag[0] == '/') - evas_textblock_cursor_format_prepend(cur, "-"); - else + char *ttag2; + + ttag2 = malloc(strlen(ttag) + 2 + 1); + if (ttag2) { - char *ttag2; - - ttag2 = malloc(strlen(ttag) + 2 + 1); - if (ttag2) + if (ttag[0] == '/') { + strcpy(ttag2, "- "); + strcat(ttag2, ttag + 1); + } + else + { strcpy(ttag2, "+ "); strcat(ttag2, ttag); - evas_textblock_cursor_format_prepend(cur, ttag2); - free(ttag2); } + strcat(ttag2, ttag); + evas_textblock_cursor_format_append(o->cursor, ttag2); + free(ttag2); } } free(ttag); |
From: Enlightenment S. <no-...@en...> - 2008-10-19 23:59:02
|
Log: 1. fix no propagate 2. fix segv in textblock. Author: raster Date: 2008-10-19 16:58:56 -0700 (Sun, 19 Oct 2008) New Revision: 36828 Modified: trunk/evas/src/lib/canvas/evas_callbacks.c trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_callbacks.c =================================================================== --- trunk/evas/src/lib/canvas/evas_callbacks.c 2008-10-19 23:46:07 UTC (rev 36827) +++ trunk/evas/src/lib/canvas/evas_callbacks.c 2008-10-19 23:58:56 UTC (rev 36828) @@ -143,9 +143,12 @@ if (!((obj->no_propagate) && (l_mod) && (*l_mod))) { - if ((obj->smart.parent) && (type != EVAS_CALLBACK_FREE) && - (type <= EVAS_CALLBACK_KEY_UP)) - evas_object_event_callback_call(obj->smart.parent, type, event_info); + if (!obj->no_propagate) + { + if ((obj->smart.parent) && (type != EVAS_CALLBACK_FREE) && + (type <= EVAS_CALLBACK_KEY_UP)) + evas_object_event_callback_call(obj->smart.parent, type, event_info); + } } _evas_unwalk(e); } Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-19 23:46:07 UTC (rev 36827) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-19 23:58:56 UTC (rev 36828) @@ -2493,7 +2493,16 @@ obj = l->data; o = (Evas_Object_Textblock *)(obj->object_data); if (o->markup_text) - evas_object_textblock_text_markup_set(obj, o->markup_text); + { + char *m; + + m = strdup(o->markup_text); + if (m) + { + evas_object_textblock_text_markup_set(obj, m); + free(m); + } + } } } |
From: Enlightenment S. <no-...@en...> - 2008-10-20 12:32:35
|
Log: remove debugging. Author: raster Date: 2008-10-20 05:15:07 -0700 (Mon, 20 Oct 2008) New Revision: 36850 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-20 12:08:16 UTC (rev 36849) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-20 12:15:07 UTC (rev 36850) @@ -2065,7 +2065,6 @@ c->align = 0.0; _format_command_init(); - printf("LAYOUT!\n"); /* setup default base style */ if ((c->o->style) && (c->o->style->default_tag)) { @@ -4963,22 +4962,6 @@ o = (Evas_Object_Textblock *)(obj->object_data); obj->layer->evas->engine.func->context_multiplier_unset(output, context); -#if 0 /* using for some debugging. will go soon */ - obj->layer->evas->engine.func->context_color_set(output, - context, - 230, 160, 30, 100); - obj->layer->evas->engine.func->rectangle_draw(output, - context, - surface, - obj->cur.geometry.x + x, - obj->cur.geometry.y + y, - obj->cur.geometry.w, - obj->cur.geometry.h); -//// obj->cur.cache.geometry.x + x, -//// obj->cur.cache.geometry.y + y, -//// obj->cur.cache.geometry.w, -//// obj->cur.cache.geometry.h); -#endif #define ITEM_WALK() \ EINA_INLIST_ITER_NEXT(o->lines, ln) \ { \ |
From: Enlightenment S. <no-...@en...> - 2008-10-20 13:07:11
|
Log: and drop rendering text out of bounds. Author: raster Date: 2008-10-20 06:07:05 -0700 (Mon, 20 Oct 2008) New Revision: 36853 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-20 12:36:48 UTC (rev 36852) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-20 13:07:05 UTC (rev 36853) @@ -5007,10 +5007,14 @@ obj->cur.cache.geometry.y + ln->y + yoff + y + (oy), \ it->w, it->h, it->w, it->h, it->text); #endif +#define ITEM_WALK_LINE_SKIP_DROP() \ + if ((ln->y + ln->h) <= 0) continue; \ + if (ln->y > obj->cur.geometry.h) break pback = 0; /* backing */ ITEM_WALK(); + ITEM_WALK_LINE_SKIP_DROP(); if ((it->format->backing) && (!pback) && ((EINA_INLIST_GET(it))->next)) { pback = 1; @@ -5070,6 +5074,7 @@ /* shadows */ ITEM_WALK(); + ITEM_WALK_LINE_SKIP_DROP(); if (it->format->style == EVAS_TEXT_STYLE_SHADOW) { COLOR_SET(shadow); @@ -5114,6 +5119,7 @@ /* glows */ ITEM_WALK(); + ITEM_WALK_LINE_SKIP_DROP(); if (it->format->style == EVAS_TEXT_STYLE_GLOW) { for (j = 0; j < 5; j++) @@ -5137,6 +5143,7 @@ /* outlines */ ITEM_WALK(); + ITEM_WALK_LINE_SKIP_DROP(); if ((it->format->style == EVAS_TEXT_STYLE_OUTLINE) || (it->format->style == EVAS_TEXT_STYLE_OUTLINE_SHADOW) || (it->format->style == EVAS_TEXT_STYLE_OUTLINE_SOFT_SHADOW)) @@ -5165,6 +5172,7 @@ /* normal text */ ITEM_WALK(); + ITEM_WALK_LINE_SKIP_DROP(); COLOR_SET(normal); DRAW_TEXT(0, 0); if ((it->format->strikethrough) && (!pstrike) && ((EINA_INLIST_GET(it))->next)) |
From: Enlightenment S. <no-...@en...> - 2008-10-26 05:37:48
|
Log: segs-- Author: raster Date: 2008-10-25 22:37:38 -0700 (Sat, 25 Oct 2008) New Revision: 37112 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-26 05:34:51 UTC (rev 37111) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-26 05:37:38 UTC (rev 37112) @@ -2909,7 +2909,6 @@ strcpy(ttag2, "+ "); strcat(ttag2, ttag); } - strcat(ttag2, ttag); evas_textblock_cursor_format_append(o->cursor, ttag2); free(ttag2); } |
From: Enlightenment S. <no-...@en...> - 2008-10-27 03:04:09
|
Log: less than map end! Author: raster Date: 2008-10-26 20:03:59 -0700 (Sun, 26 Oct 2008) New Revision: 37190 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-27 03:02:12 UTC (rev 37189) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-27 03:03:59 UTC (rev 37190) @@ -2647,7 +2647,7 @@ { if (_is_eq_and_advance(s, s_end, &map_itr, map_end)) return map_itr; - if (map_itr < map_itr) + if (map_itr < map_end) _advance_after_end_of_string(&map_itr); } return NULL; @@ -2695,7 +2695,7 @@ return; } - if (map_itr < map_itr) + if (map_itr < map_end) _advance_after_end_of_string(&map_itr); } } |
From: Enlightenment S. <no-...@en...> - 2008-10-27 03:13:04
|
Log: dont repeat code Author: raster Date: 2008-10-26 20:12:59 -0700 (Sun, 26 Oct 2008) New Revision: 37191 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-27 03:03:59 UTC (rev 37190) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-27 03:12:59 UTC (rev 37191) @@ -2682,22 +2682,11 @@ _prepend_escaped_char(Evas_Textblock_Cursor *cur, const char *s, const char *s_end) { - const char *map_itr, *map_end; - - map_itr = escape_strings; - map_end = map_itr + sizeof(escape_strings); - - while (map_itr < map_end) - { - if (_is_eq_and_advance(s, s_end, &map_itr, map_end)) - { - evas_textblock_cursor_text_prepend(cur, map_itr); - return; - } - - if (map_itr < map_end) - _advance_after_end_of_string(&map_itr); - } + const char *escape; + + escape = _escaped_char_get(s, s_end); + if (escape) + evas_textblock_cursor_text_prepend(cur, escape); } /** |
From: Enlightenment S. <no-...@en...> - 2008-10-28 04:01:13
|
Log: segv nuked thansk to scahiel and a leak plugged thansk to valgrind. Author: raster Date: 2008-10-27 21:01:10 -0700 (Mon, 27 Oct 2008) New Revision: 37261 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-28 02:54:34 UTC (rev 37260) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-28 04:01:10 UTC (rev 37261) @@ -4360,6 +4360,7 @@ ps = n->text; pe = ps + strlen(ps); } + p = ps; while (p < pe) { const char *escape; @@ -4715,6 +4716,7 @@ line = evas_textblock_cursor_char_geometry_get(cur2, &cx, &cy, &cw, &ch); if (line < 0) { + free(tr); while (rects) { free(rects->data); |
From: Enlightenment S. <no-...@en...> - 2008-10-28 05:22:52
|
Log: fix possible segv Author: raster Date: 2008-10-27 22:22:50 -0700 (Mon, 27 Oct 2008) New Revision: 37263 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-28 04:58:39 UTC (rev 37262) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-28 05:22:50 UTC (rev 37263) @@ -4026,13 +4026,14 @@ tcur.pos = evas_common_font_utf8_get_last((unsigned char *)tcur.node->text, tcur.node->len); else tcur.pos = 0; - } + } } } n1->text = _strbuf_remove(n1->text, cur1->pos, n1->len, &(n1->len), &(n1->alloc)); removes = NULL; for (l = (EINA_INLIST_GET(n1))->next; l != EINA_INLIST_GET(n2); l = l->next) removes = eina_list_append(removes, l); + format_hump = NULL; if (n1->type == NODE_TEXT) { if (!n1->text) @@ -4049,7 +4050,6 @@ free(n1); } } - format_hump = NULL; while (removes) { n = removes->data; @@ -4339,47 +4339,50 @@ if (format == EVAS_TEXTBLOCK_TEXT_MARKUP) { char *p, *ps, *pe; - - if ((n == n1) && (n == n2)) + + if (n->text) { - ps = n->text + cur1->pos; - pe = ps + index - cur1->pos + 1; - } - else if (n == n1) - { - ps = n->text + cur1->pos; - pe = ps + strlen(ps); - } - else if (n == n2) - { - ps = n->text; - pe = ps + cur1->pos + 1; - } - else - { - ps = n->text; - pe = ps + strlen(ps); - } - p = ps; - while (p < pe) - { - const char *escape; - int adv; - - escape = _escaped_char_match(p, &adv); - if (escape) + if ((n == n1) && (n == n2)) { - p += adv; - txt = _strbuf_append(txt, escape, &txt_len, &txt_alloc); + ps = n->text + cur1->pos; + pe = ps + index - cur1->pos + 1; } + else if (n == n1) + { + ps = n->text + cur1->pos; + pe = ps + strlen(ps); + } + else if (n == n2) + { + ps = n->text; + pe = ps + cur1->pos + 1; + } else { - char str[2]; + ps = n->text; + pe = ps + strlen(ps); + } + p = ps; + while (p < pe) + { + const char *escape; + int adv; - str[0] = *p; - str[1] = 0; - txt = _strbuf_append(txt, str, &txt_len, &txt_alloc); - p++; + escape = _escaped_char_match(p, &adv); + if (escape) + { + p += adv; + txt = _strbuf_append(txt, escape, &txt_len, &txt_alloc); + } + else + { + char str[2]; + + str[0] = *p; + str[1] = 0; + txt = _strbuf_append(txt, str, &txt_len, &txt_alloc); + p++; + } } } } @@ -4389,7 +4392,6 @@ { s += cur1->pos; txt = _strbuf_append_n(txt, s, index - cur1->pos, &txt_len, &txt_alloc); - } else if (n == n1) { @@ -4716,7 +4718,6 @@ line = evas_textblock_cursor_char_geometry_get(cur2, &cx, &cy, &cw, &ch); if (line < 0) { - free(tr); while (rects) { free(rects->data); |
From: Enlightenment S. <no-...@en...> - 2008-10-28 06:37:26
|
Log: sachiel patch! Author: raster Date: 2008-10-27 23:37:16 -0700 (Mon, 27 Oct 2008) New Revision: 37265 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-28 06:00:37 UTC (rev 37264) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-28 06:37:16 UTC (rev 37265) @@ -4345,7 +4345,7 @@ if ((n == n1) && (n == n2)) { ps = n->text + cur1->pos; - pe = ps + index - cur1->pos + 1; + pe = ps + index - cur1->pos; } else if (n == n1) { @@ -4355,7 +4355,7 @@ else if (n == n2) { ps = n->text; - pe = ps + cur1->pos + 1; + pe = ps + cur2->pos + 1; } else { |
From: Enlightenment S. <no-...@en...> - 2008-10-29 03:29:12
|
Log: another sachiel fix! :) Author: raster Date: 2008-10-28 20:29:10 -0700 (Tue, 28 Oct 2008) New Revision: 37292 Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c Modified: trunk/evas/src/lib/canvas/evas_object_textblock.c =================================================================== --- trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-29 01:51:45 UTC (rev 37291) +++ trunk/evas/src/lib/canvas/evas_object_textblock.c 2008-10-29 03:29:10 UTC (rev 37292) @@ -1788,12 +1788,16 @@ if ((repch) && (n->text)) { - int i, len = strlen(n->text), chlen; + int i = 0, len = 0, chlen; + char *ptr; + while (evas_common_font_utf8_get_next(n->text, &i)) + len++; chlen = strlen(repch); str = alloca((len * chlen) + 1); - for (i = 0; i < len; i += chlen) - strcpy(&(str[i]), repch); + for (i = 0, ptr = str; i < len; ptr += chlen, i++) + memcpy(ptr, repch, chlen); + *ptr = 0; } else str = n->text; |