Enlightenment CVS committal
Author : rephorm
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/lib
Modified Files:
Edje_Edit.h edje_calc.c edje_data.c edje_load.c edje_private.h
Log Message:
Add a Font_Directory to Edje_File
Check fonts against directory entries.
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje_Edit.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- Edje_Edit.h 14 Jul 2004 09:59:29 -0000 1.15
+++ Edje_Edit.h 30 Aug 2004 05:39:24 -0000 1.16
@@ -18,6 +18,8 @@
typedef struct _Edje_File Edje_File;
typedef struct _Edje_Data Edje_Data;
+typedef struct _Edje_Font_Directory Edje_Font_Directory;
+typedef struct _Edje_Font_Directory_Entry Edje_Font_Directory_Entry;
typedef struct _Edje_Image_Directory Edje_Image_Directory;
typedef struct _Edje_Image_Directory_Entry Edje_Image_Directory_Entry;
typedef struct _Edje_Program Edje_Program;
@@ -144,6 +146,7 @@
{
char *path;
+ Edje_Font_Directory *font_dir;
Edje_Image_Directory *image_dir;
Edje_Part_Collection_Directory *collection_dir;
Evas_List *data;
@@ -163,6 +166,19 @@
/*----------*/
+struct _Edje_Font_Directory
+{
+ Evas_List *entries; /* a list of Edje_Font_Directory_Entry */
+};
+
+struct _Edje_Font_Directory_Entry
+{
+ char *entry; /* the name of the font */
+};
+
+
+/*----------*/
+
struct _Edje_Image_Directory
{
Evas_List *entries; /* a list of Edje_Image_Directory_Entry */
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_calc.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- edje_calc.c 25 Aug 2004 12:34:00 -0000 1.38
+++ edje_calc.c 30 Aug 2004 05:39:24 -0000 1.39
@@ -508,6 +508,7 @@
int size;
Evas_Coord tw, th;
char buf[4096];
+ Evas_List *l;
text = chosen_desc->text.text;
font = chosen_desc->text.font;
@@ -529,15 +530,24 @@
if (ep->text.text) text = ep->text.text;
if (ep->text.font) font = ep->text.font;
if (ep->text.size > 0) size = ep->text.size;
-
- strcpy(buf, "fonts/");
- strcat(buf, font);
-
- evas_object_text_font_set(ep->object, buf, 10);
-
- if (evas_object_text_ascent_get(ep->object) > 0) font = buf;
-// font = buf;
-
+
+ /* check if the font is embedded in the .eet */
+ /* FIXME: we should cache this result */
+ if (ed->file->font_dir)
+ {
+ for (l = ed->file->font_dir->entries; l; l = l->next)
+ {
+ Edje_Font_Directory_Entry *fnt = l->data;
+
+ if (!strcmp(fnt->entry, font))
+ {
+ strcpy(buf, "fonts/");
+ strcat(buf, font);
+ break;
+ }
+ }
+ }
+
evas_object_text_font_set(ep->object, font, size);
if ((chosen_desc->text.min_x) || (chosen_desc->text.min_y))
{
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_data.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- edje_data.c 24 May 2004 07:58:37 -0000 1.17
+++ edje_data.c 30 Aug 2004 05:39:24 -0000 1.18
@@ -3,6 +3,8 @@
Eet_Data_Descriptor *_edje_edd_edje_file = NULL;
Eet_Data_Descriptor *_edje_edd_edje_data = NULL;
+Eet_Data_Descriptor *_edje_edd_edje_font_directory = NULL;
+Eet_Data_Descriptor *_edje_edd_edje_font_directory_entry = NULL;
Eet_Data_Descriptor *_edje_edd_edje_image_directory = NULL;
Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry = NULL;
Eet_Data_Descriptor *_edje_edd_edje_program = NULL;
@@ -37,6 +39,8 @@
{
FREED(_edje_edd_edje_file);
FREED(_edje_edd_edje_data);
+ FREED(_edje_edd_edje_font_directory);
+ FREED(_edje_edd_edje_font_directory_entry);
FREED(_edje_edd_edje_image_directory);
FREED(_edje_edd_edje_image_directory_entry);
FREED(_edje_edd_edje_program);
@@ -53,6 +57,17 @@
void
_edje_edd_setup(void)
{
+ /* font directory */
+ _edje_edd_edje_font_directory_entry =
+ NEWD("Edje_Font_Directory_Entry",
+ Edje_Font_Directory_Entry);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_font_directory_entry,
Edje_Font_Directory_Entry, "entry", entry, EET_T_STRING);
+
+ _edje_edd_edje_font_directory =
+ NEWD("Edje_Font_Directory",
+ Edje_Font_Directory);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_font_directory, Edje_Font_Directory,
"entries", entries, _edje_edd_edje_font_directory_entry);
+
/* image directory */
_edje_edd_edje_image_directory_entry =
NEWD("Edje_Image_Directory_Entry",
@@ -91,6 +106,7 @@
NEWD("Edje_File",
Edje_File);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_file, Edje_File, "version", version,
EET_T_INT);
+ EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "font_dir", font_dir,
_edje_edd_edje_font_directory);
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "image_dir",
image_dir, _edje_edd_edje_image_directory);
EET_DATA_DESCRIPTOR_ADD_SUB(_edje_edd_edje_file, Edje_File, "collection_dir",
collection_dir, _edje_edd_edje_part_collection_directory);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_file, Edje_File, "data", data,
_edje_edd_edje_data);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -3 -r1.45 -r1.46
--- edje_load.c 14 Jul 2004 09:59:29 -0000 1.45
+++ edje_load.c 30 Aug 2004 05:39:24 -0000 1.46
@@ -647,6 +647,20 @@
_edje_file_hash = evas_hash_del(_edje_file_hash, edf->path, edf);
if (edf->path) free(edf->path);
+ if (edf->font_dir)
+ {
+ while (edf->font_dir->entries)
+ {
+ Edje_Font_Directory_Entry *fe;
+
+ fe = edf->font_dir->entries->data;
+ edf->font_dir->entries =
+ evas_list_remove(edf->font_dir->entries, fe);
+ if (fe->entry) free(fe->entry);
+ free(fe);
+ }
+ free(edf->font_dir);
+ }
if (edf->image_dir)
{
while (edf->image_dir->entries)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -3 -r1.69 -r1.70
--- edje_private.h 24 Aug 2004 10:06:32 -0000 1.69
+++ edje_private.h 30 Aug 2004 05:39:24 -0000 1.70
@@ -66,6 +66,8 @@
extern Eet_Data_Descriptor *_edje_edd_edje_file;
extern Eet_Data_Descriptor *_edje_edd_edje_data;
+extern Eet_Data_Descriptor *_edje_edd_edje_font_directory;
+extern Eet_Data_Descriptor *_edje_edd_edje_font_directory_entry;
extern Eet_Data_Descriptor *_edje_edd_edje_image_directory;
extern Eet_Data_Descriptor *_edje_edd_edje_image_directory_entry;
extern Eet_Data_Descriptor *_edje_edd_edje_program;
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs