Enlightenment CVS committal

Author  : raster
Project : e17
Module  : libs/evas

Dir     : e17/libs/evas/src/lib/canvas


Modified Files:
        evas_font_dir.c evas_object_text.c evas_object_textblock.c 


Log Message:


and in one foul swoop i merged font loading code betwene text block and text
objects... wherd!

===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_font_dir.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- evas_font_dir.c     8 Jan 2005 10:39:09 -0000       1.2
+++ evas_font_dir.c     31 Jan 2005 15:03:36 -0000      1.3
@@ -46,6 +46,70 @@
    return NULL;
 }
 
+void *
+evas_font_load(Evas *evas, char *name, char *source, int size)
+{
+   void *font = NULL;
+   
+#ifdef BUILD_FONT_LOADER_EET
+   if (source)
+     {
+       Eet_File *ef;
+       char *fake_name;
+       
+       fake_name = evas_file_path_join(source, name);
+       if (fake_name)
+         {
+            font = evas->engine.func->font_load(evas->engine.data.output, 
fake_name, size);
+            if (!font)
+              {
+                 /* read original!!! */
+                 ef = eet_open(source, EET_FILE_MODE_READ);
+                 if (ef)
+                   {
+                      void *fdata;
+                      int fsize = 0;
+                      
+                      fdata = eet_read(ef, name, &fsize);
+                      if ((fdata) && (fsize > 0))
+                        {
+                           font = 
evas->engine.func->font_memory_load(evas->engine.data.output, fake_name, size, 
fdata, fsize);
+                           free(fdata);
+                        }
+                      eet_close(ef);
+                   }
+              }
+            free(fake_name);
+         }
+     }
+   if (!font)
+     {
+#endif
+       if (evas_file_path_is_full_path((char *)name))
+         font = evas->engine.func->font_load(evas->engine.data.output, (char 
*)name, size);
+       else
+         {
+            Evas_List *l;
+            
+            for (l = evas->font_path; l; l = l->next)
+              {
+                 char *f_file;
+                 
+                 f_file = evas_font_dir_cache_find(l->data, (char *)name);
+                 if (f_file)
+                   {
+                      font = 
evas->engine.func->font_load(evas->engine.data.output, f_file, size);
+                      if (font) break;
+                   }
+              }
+#ifdef BUILD_FONT_LOADER_EET
+         }
+#endif
+     }
+   return font;
+}
+
+
 /* private stuff */
 static Evas_Bool
 font_cache_dir_free(Evas_Hash *hash, const char *key, void *data, void *fdata)
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_text.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -3 -r1.32 -r1.33
--- evas_object_text.c  8 Jan 2005 10:39:09 -0000       1.32
+++ evas_object_text.c  31 Jan 2005 15:03:37 -0000      1.33
@@ -1,9 +1,6 @@
 #include "evas_common.h"
 #include "evas_private.h"
 #include "Evas.h"
-#ifdef BUILD_FONT_LOADER_EET
-#include <Eet.h>
-#endif
 
 /* private magic number for text objects */
 static const char o_type[] = "text";
@@ -67,7 +64,7 @@
  *
  * FIXME: To be fixed.
  * 
-evas_font_load.c */
+ */
 Evas_Object *
 evas_object_text_add(Evas *e)
 {
@@ -167,69 +164,7 @@
                                                 o->engine_data);
        o->engine_data = NULL;
      }
-#ifdef BUILD_FONT_LOADER_EET
-   if (o->cur.source)
-     {
-       Eet_File *ef;
-       char *fake_name;
-       
-       fake_name = evas_file_path_join(o->cur.source, font);
-       if (fake_name)
-         {
-            o->engine_data = 
-              obj->layer->evas->engine.func->font_load
-              (obj->layer->evas->engine.data.output, fake_name, 
-               size);
-            if (!o->engine_data)
-              {
-                 /* read original!!! */
-                 ef = eet_open(o->cur.source, EET_FILE_MODE_READ);
-                 if (ef)
-                   {
-                      void *fdata;
-                      int fsize = 0;
-                      
-                      fdata = eet_read(ef, font, &fsize);
-                      if ((fdata) && (fsize > 0))
-                        {
-                           o->engine_data = 
-                             obj->layer->evas->engine.func->font_memory_load
-                             (obj->layer->evas->engine.data.output,
-                              fake_name, size, fdata, fsize);
-                           free(fdata);
-                        }
-                      eet_close(ef);
-                   }
-              }
-            free(fake_name);
-         }
-     }
-   if (!o->engine_data)
-     {
-#endif
-       if (evas_file_path_is_full_path((char *)font))
-         o->engine_data = 
obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output,
-                                                                   (char 
*)font, size);
-       else
-         {
-            Evas_List *l;
-            
-            for (l = obj->layer->evas->font_path; l; l = l->next)
-              {
-                 char *f_file;
-                 
-                 f_file = evas_font_dir_cache_find(l->data, (char *)font);
-                 if (f_file)
-                   {
-                      o->engine_data = 
obj->layer->evas->engine.func->font_load(obj->layer->evas->engine.data.output,
-                                                                               
 f_file, size);
-                      if (o->engine_data) break;
-                   }
-              }
-#ifdef BUILD_FONT_LOADER_EET
-         }
-#endif
-     } 
+   o->engine_data = evas_font_load(obj->layer->evas, font, o->cur.source, 
size);
    if (!same_font) 
      {
        if (o->cur.font) free(o->cur.font);
===================================================================
RCS file: 
/cvsroot/enlightenment/e17/libs/evas/src/lib/canvas/evas_object_textblock.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -3 -r1.12 -r1.13
--- evas_object_textblock.c     31 Jan 2005 09:32:31 -0000      1.12
+++ evas_object_textblock.c     31 Jan 2005 15:03:38 -0000      1.13
@@ -10,8 +10,6 @@
  * 
  * things to add:
  * 
- * * font path support
- * * font sources support
  * * word wrap
  * * underline support
  * * double underline support
@@ -162,8 +160,17 @@
      }
    else if (!strcmp(key, "font_source"))
      {
-       if (layout->font.source) free(layout->font.source);
-       layout->font.source = strdup(data);
+       if (layout->font.source)
+         {
+            free(layout->font.source);
+            layout->font.source = NULL;
+         }
+       if (!((data[0] == 0) ||
+             (!strcmp(data, "0")) ||
+             (!strcmp(data, "NULL")) ||
+             (!strcmp(data, "null")) ||
+             (!strcmp(data, "(null)"))))
+         layout->font.source = strdup(data);
      }
    else if (!strcmp(key, "size"))
      {
@@ -487,7 +494,7 @@
             lnode = calloc(1, sizeof(Layout_Node));
             evas_object_textblock_layout_copy(&layout, &(lnode->layout));
             if (lnode->layout.font.name)
-              font = ENFN->font_load(ENDT, lnode->layout.font.name, 
lnode->layout.font.size);
+              font = evas_font_load(obj->layer->evas, lnode->layout.font.name, 
lnode->layout.font.source, lnode->layout.font.size);
             lnode->layout.font.font = font;
             if (font) ascent = ENFN->font_max_ascent_get(ENDT, font);
             if (font) descent = ENFN->font_max_descent_get(ENDT, font);




-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to