Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_config.c e_error.c e_font.c e_font.h Log Message: 1. better chinese font - it screws up japanese though. grrr. lets talk about language packsg where a lang pack can ship with/set up a font (add it to the list) and set up locale properly using ipc and a bit of code etc. - well eventually. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- e_config.c 19 Apr 2005 06:04:33 -0000 1.29 +++ e_config.c 28 Apr 2005 06:27:25 -0000 1.30 @@ -172,6 +172,11 @@ E_Font_Fallback* eff; eff = E_NEW(E_Font_Fallback, 1); + eff->name = strdup("New-Sung"); + e_config->font_fallbacks = evas_list_append(e_config->font_fallbacks, + eff); + + eff = E_NEW(E_Font_Fallback, 1); eff->name = strdup("Kochi-Gothic"); e_config->font_fallbacks = evas_list_append(e_config->font_fallbacks, eff); @@ -186,6 +191,12 @@ E_Font_Default* efd; efd = E_NEW(E_Font_Fallback, 1); + efd->text_class = strdup("default"); + efd->font = strdup("Vera"); + efd->size = 10; + e_config->font_defaults = evas_list_append(e_config->font_defaults, efd); + + efd = E_NEW(E_Font_Fallback, 1); efd->text_class = strdup("title_bar"); efd->font = strdup("Vera"); efd->size = 10; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_error.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -3 -r1.17 -r1.18 --- e_error.c 23 Apr 2005 05:16:24 -0000 1.17 +++ e_error.c 28 Apr 2005 06:27:25 -0000 1.18 @@ -126,8 +126,11 @@ { char *p; Evas_Coord y; - + char *fname; + int fsize; + y = 16 + 64 + 16; + fname = (char *)e_font_default_string_get("default", &fsize); for (p = newstr; p;) { char *pp; @@ -136,7 +139,7 @@ if (pp) *pp = 0; o = evas_object_text_add(e); evas_object_color_set(o, 255, 255, 255, 128); - evas_object_text_font_set(o, "Vera", 10); + evas_object_text_font_set(o, fname, fsize); evas_object_text_text_set(o, p); evas_object_geometry_get(o, NULL, NULL, &tw, &th); evas_object_move(o, 16 + 1, y + 1); @@ -145,7 +148,7 @@ o = evas_object_text_add(e); evas_object_color_set(o, 0, 0, 0, 255); - evas_object_text_font_set(o, "Vera", 10); + evas_object_text_font_set(o, fname, fsize); evas_object_text_text_set(o, p); evas_object_geometry_get(o, NULL, NULL, &tw, &th); evas_object_move(o, 16, y); @@ -244,7 +247,9 @@ char format[1024]; Evas_Object *text; int x, y, w, h, nw, nh; - + char *fname; + int fsize; + evas_object_move(o, 0, 0); evas_object_resize(o, error_w, error_h); edje_object_signal_callback_add(o, "close", "", @@ -253,10 +258,10 @@ edje_object_part_text_set(o, "title", title); + fname = (char *)e_font_default_string_get("default", &fsize); snprintf(format, sizeof(format), - "source='%s' font='%s' size=%d wrap=word", - e_theme_edje_file_get("base/theme/error", "error/main"), - "fonts/Edje Vera", 10); + "font='%s' size=%i wrap=word", + fname, fsize); text = evas_object_textblock_add(e); evas_object_color_set(text, 0, 0, 0, 255); evas_object_textblock_format_insert(text, format); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_font.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_font.c 22 Apr 2005 06:31:48 -0000 1.5 +++ e_font.c 28 Apr 2005 06:27:25 -0000 1.6 @@ -10,6 +10,8 @@ static Evas_List *_e_font_font_dir_available_get (Evas_List * available_fonts, const char *font_dir); +static char _fn_buf[1024]; + int e_font_init(void) { @@ -27,17 +29,25 @@ void e_font_apply(void) { - char buf[PATH_MAX]; + char buf[1024]; Evas_List *next; E_Font_Fallback *eff; E_Font_Default *efd; + int blen, len; /* setup edje fallback list */ + blen = sizeof(buf) - 1; + buf[blen] = 0; next = e_config->font_fallbacks; if (next) { eff = evas_list_data(next); - strncpy(buf, eff->name, PATH_MAX - 1); + len = strlen(eff->name); + if (len < blen) + { + strcpy(buf, eff->name); + blen -= len; + } next = evas_list_next(next); } else @@ -45,16 +55,27 @@ edje_fontset_append_set(NULL); } - buf[0] = 0; while (next) { eff = evas_list_data(next); - strcat(buf, ","); - strcat(buf, eff->name); + len = 1; + if (len < blen) + { + strcat(buf, ","); + blen -= len; + } + len = strlen(eff->name); + if (len < blen) + { + strcat(buf, eff->name); + blen -= len; + } next = evas_list_next(next); } if (buf[0] != 0) - edje_fontset_append_set(buf); + { + edje_fontset_append_set(buf); + } /* setup edje text classes */ for (next = e_config->font_defaults; next; next = next->next) @@ -196,7 +217,7 @@ E_Font_Default * e_font_default_get(const char *text_class) { - E_Font_Default *efd; + E_Font_Default *efd, *defd = NULL; Evas_List *next; /* search for the text class */ @@ -212,8 +233,12 @@ e_config->font_defaults, efd); return efd; } + if (!strcmp(efd->text_class, "default")) + defd = efd; } - return NULL; + if (!defd) + defd = efd; + return defd; } void @@ -244,6 +269,53 @@ return e_config->font_defaults; } +const char * +e_font_default_string_get(const char *text_class, int *size_ret) +{ + E_Font_Default *efd; + Evas_List *next; + E_Font_Fallback *eff; + int blen, len; + + _fn_buf[0] = 0; + efd = e_font_default_get(text_class); + if (!efd) + { + if (size_ret) *size_ret = 0; + return ""; + } + blen = sizeof(_fn_buf) - 1; + + len = strlen(efd->font); + if (len < blen) + { + strcpy(_fn_buf, efd->font); + blen -= len; + } + + next = e_config->font_fallbacks; + while (next) + { + eff = evas_list_data(next); + len = 1; + if (len < blen) + { + strcat(_fn_buf, ","); + blen -= len; + } + len = strlen(eff->name); + if (len < blen) + { + strcat(_fn_buf, eff->name); + blen -= len; + } + next = evas_list_next(next); + } + + if (size_ret) *size_ret = efd->size; + return _fn_buf; +} + static Evas_List * _e_font_font_dir_available_get(Evas_List * available_fonts, const char *font_dir) { =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_font.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -3 -r1.2 -r1.3 --- e_font.h 22 Apr 2005 04:25:51 -0000 1.2 +++ e_font.h 28 Apr 2005 06:27:25 -0000 1.3 @@ -46,6 +46,7 @@ EAPI E_Font_Default * e_font_default_get(const char * text_class); EAPI void e_font_default_remove(const char * text_class); EAPI Evas_List * e_font_default_list(void); - +EAPI const char *e_font_default_string_get(const char *text_class, int *size_ret); + #endif #endif ------------------------------------------------------- SF.Net email is sponsored by: Tell us your software development plans! Take this survey and enter to win a one-year sub to SourceForge.net Plus IDC's 2005 look-ahead and a copy of this survey Click here to start! http://www.idcswdc.com/cgi-bin/survey?id=105hix _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs