Enlightenment CVS committal
Author : raster
Project : e17
Module : libs/edje
Dir : e17/libs/edje/src/lib
Modified Files:
Edje.h edje_data.c edje_load.c edje_private.h edje_util.c
Log Message:
you can add arbitary key/value pair strings to either 1 the edje file .eet as
a whole and/or to each collection in the edje .eet file (different
namespoaces with each collection having its own namespace) :) this shoudl
make Rbdpngn happy :)
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/Edje.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- Edje.h 27 Jul 2003 13:16:51 -0000 1.16
+++ Edje.h 5 Aug 2003 14:33:35 -0000 1.17
@@ -13,13 +13,15 @@
void edje_freeze (void);
void edje_thaw (void);
- Evas_List *edje_file_collection_list (const char *file);
+ Evas_List *edje_file_collection_list (const char *file);
void edje_file_collection_list_free (Evas_List *lst);
+ char *edje_file_data_get (const char *file, const char *key);
void edje_extern_object_min_size_set (Evas_Object *obj, double minw,
double minh);
void edje_extern_object_max_size_set (Evas_Object *obj, double maxw,
double maxh);
Evas_Object *edje_object_add (Evas *evas);
+ const char *edje_object_data_get (Evas_Object *obj, const char *key);
void edje_object_file_set (Evas_Object *o, const char *file,
const char *part);
void edje_object_file_get (Evas_Object *o, const char **file,
const char **part);
void edje_object_signal_callback_add (Evas_Object *o, const char
*emission, const char *source, void (*func) (void *data, Evas_Object *o, const char
*emission, const char *source), void *data);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_data.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -3 -r1.8 -r1.9
--- edje_data.c 27 Jul 2003 13:16:51 -0000 1.8
+++ edje_data.c 5 Aug 2003 14:33:35 -0000 1.9
@@ -2,6 +2,7 @@
#include "edje_private.h"
Eet_Data_Descriptor *_edje_edd_edje_file = NULL;
+Eet_Data_Descriptor *_edje_edd_edje_data = 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;
@@ -51,6 +52,13 @@
NEWD("Edje_Part_Collection_Directory",
Edje_Part_Collection_Directory);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection_directory,
Edje_Part_Collection_Directory, "entries", entries,
_edje_edd_edje_part_collection_directory_entry);
+
+ /* generic data attachment */
+ _edje_edd_edje_data =
+ NEWD("Edje_Data",
+ Edje_Data);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_data, Edje_Data, "key", key,
EET_T_STRING);
+ EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_data, Edje_Data, "value", value,
EET_T_STRING);
/* the main file directory */
_edje_edd_edje_file =
@@ -58,6 +66,7 @@
Edje_File);
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);
/* parts & programs - loaded induvidually */
_edje_edd_edje_program_target =
@@ -177,6 +186,7 @@
Edje_Part_Collection);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection,
"programs", programs, _edje_edd_edje_program);
EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection,
"parts", parts, _edje_edd_edje_part);
+ EET_DATA_DESCRIPTOR_ADD_LIST(_edje_edd_edje_part_collection, Edje_Part_Collection,
"data", data, _edje_edd_edje_data);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection,
Edje_Part_Collection, "prop.min.w", prop.min.w, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection,
Edje_Part_Collection, "prop.min.h", prop.min.h, EET_T_INT);
EET_DATA_DESCRIPTOR_ADD_BASIC(_edje_edd_edje_part_collection,
Edje_Part_Collection, "prop.max.w", prop.max.w, EET_T_INT);
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_load.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- edje_load.c 3 Aug 2003 07:00:03 -0000 1.16
+++ edje_load.c 5 Aug 2003 14:33:35 -0000 1.17
@@ -235,6 +235,51 @@
}
}
+char *
+edje_file_data_get(const char *file, const char *key)
+{
+ Eet_File *ef = NULL;
+ Edje_File *ed_file;
+ Evas_List *l;
+ char *str = NULL;
+
+ ed_file = evas_hash_find(_edje_file_hash, file);
+ if (!ed_file)
+ {
+ ef = eet_open((char *)file, EET_FILE_MODE_READ);
+ if (!ef) return NULL;
+ ed_file = eet_data_read(ef, _edje_edd_edje_file, "edje_file");
+ if (!ed_file)
+ {
+ eet_close(ef);
+ return NULL;
+ }
+ eet_close(ef);
+ ed_file->path = strdup(file);
+ ed_file->collection_hash = NULL;
+ ed_file->references = 1;
+ _edje_file_hash = evas_hash_add(_edje_file_hash, ed_file->path, ed_file);
+ }
+ else
+ ed_file->references++;
+ printf("beh\n");
+ for (l = ed_file->data; l; l = l->next)
+ {
+ Edje_Data *di;
+
+ di = l->data;
+ if (!strcmp(di->key, key))
+ {
+ printf("STR: %s\n", di->key);
+ str = strdup(di->value);
+ break;
+ }
+ }
+ ed_file->references--;
+ if (ed_file->references <= 0) _edje_file_free(ed_file);
+ return str;
+}
+
void
_edje_file_add(Edje *ed)
{
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_private.h,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- edje_private.h 5 Aug 2003 13:38:44 -0000 1.38
+++ edje_private.h 5 Aug 2003 14:33:35 -0000 1.39
@@ -60,13 +60,13 @@
* or, STR "my_string" == "smelly";
* ...
*
- * ? key/value pair config values per colelction and per edje file
* ? add containering (hbox, vbox, table, wrapping multi-line hbox & vbox)
* ? text entry widget (single line only)
* ? reduce linked list walking and list_nth calls
*/
typedef struct _Edje_File Edje_File;
+typedef struct _Edje_Data Edje_Data;
typedef struct _Edje_Image_Directory Edje_Image_Directory;
typedef struct _Edje_Image_Directory_Entry Edje_Image_Directory_Entry;
typedef struct _Edje_Program Edje_Program;
@@ -123,6 +123,7 @@
Edje_Image_Directory *image_dir;
Edje_Part_Collection_Directory *collection_dir;
+ Evas_List *data;
Evas_Hash *collection_hash;
int references;
@@ -130,6 +131,14 @@
/*----------*/
+struct _Edje_Data
+{
+ char *key;
+ char *value;
+};
+
+/*----------*/
+
struct _Edje_Image_Directory
{
Evas_List *entries; /* a list of Edje_Image_Directory_Entry */
@@ -199,6 +208,7 @@
{
Evas_List *programs; /* a list of Edje_Program */
Evas_List *parts; /* a list of Edje_Part */
+ Evas_List *data;
int id; /* the collection id */
@@ -557,6 +567,7 @@
extern Eet_Data_Descriptor *_edje_edd_edje_file;
+extern Eet_Data_Descriptor *_edje_edd_edje_data;
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;
===================================================================
RCS file: /cvsroot/enlightenment/e17/libs/edje/src/lib/edje_util.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -3 -r1.16 -r1.17
--- edje_util.c 30 Jul 2003 02:58:22 -0000 1.16
+++ edje_util.c 5 Aug 2003 14:33:35 -0000 1.17
@@ -19,6 +19,26 @@
edje_object_thaw((Evas_Object *)(l->data));
}
+const char *
+edje_object_data_get(Evas_Object *obj, const char *key)
+{
+ Edje *ed;
+ Evas_List *l;
+
+ ed = _edje_fetch(obj);
+ if ((!ed) || (!key))
+ return NULL;
+ if (!ed->collection) return NULL;
+ for (l = ed->collection->data; l; l = l->next)
+ {
+ Edje_Data *di;
+
+ di = l->data;
+ if (!strcmp(di->key, key)) return (const char *)di->value;
+ }
+ return NULL;
+}
+
int
edje_object_freeze(Evas_Object *obj)
{
@@ -540,7 +560,6 @@
if (val_ret) *val_ret = 0;
return "";
}
-
-------------------------------------------------------
This SF.Net email sponsored by: Free pre-built ASP.NET sites including
Data Reports, E-commerce, Portals, and Forums are available now.
Download today and enter to win an XBOX or Visual Studio .NET.
http://aspnet.click-url.com/go/psa00100003ave/direct;at.aspnet_072303_01/01
_______________________________________________
enlightenment-cvs mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs