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

Reply via email to