11 # define EAPI __declspec(dllexport)
14 # endif /* ! DLL_EXPORT */
16 # define EAPI __declspec(dllimport)
17 # endif /* ! EFL_EVAS_BUILD */
21 # define EAPI __attribute__ ((visibility("default")))
32 * @brief These routines are used for Evas data types.
35 typedef unsigned char Evas_Bool;
37 typedef struct _Evas_Array_Hash Evas_Array_Hash;
38 typedef struct _Evas_Hash Evas_Hash; /**< A Hash table handle */
39 typedef struct _Evas_List Evas_List; /**< A generic linked list node handle */
40 typedef struct _Evas_Object_List Evas_Object_List;
45 Evas_Object_List *buckets[256];
48 struct _Evas_List /** A linked list node */
50 void *data; /**< Pointer to list element payload */
51 Evas_List *next; /**< Next member in the list */
52 Evas_List *prev; /**< Previous member in the list */
53 struct _Evas_List_Accounting *accounting; /**< Private list accounting info - don't touch */
56 struct _Evas_Object_List
58 Evas_Object_List *next, *prev;
59 Evas_Object_List *last;
68 * Evas Array Hash functions
71 EAPI Evas_Array_Hash *evas_array_hash_new (void);
72 EAPI void evas_array_hash_free (Evas_Array_Hash *hash);
73 EAPI void evas_array_hash_add (Evas_Array_Hash *hash,
76 EAPI int evas_array_hash_search (Evas_Array_Hash *hash,
85 * api to add find, del members by data, size not just string and also
86 * provide hash generation functions settable by the app
88 * do we really need this? hmmm - let me think... there may be a better way
90 EAPI Evas_Hash *evas_hash_add (Evas_Hash *hash,
93 EAPI Evas_Hash *evas_hash_direct_add (Evas_Hash *hash,
96 EAPI Evas_Hash *evas_hash_del (Evas_Hash *hash,
99 EAPI void * evas_hash_find (const Evas_Hash *hash,
101 EAPI void * evas_hash_modify (Evas_Hash *hash,
104 EAPI int evas_hash_size (const Evas_Hash *hash);
105 EAPI void evas_hash_free (Evas_Hash *hash);
106 EAPI void evas_hash_foreach (const Evas_Hash *hash,
108 const Evas_Hash *hash,
114 EAPI int evas_hash_alloc_error (void);
118 * Evas List functions
121 EAPI Evas_List *evas_list_append (Evas_List *list,
123 EAPI Evas_List *evas_list_prepend (Evas_List *list,
125 EAPI Evas_List *evas_list_append_relative (Evas_List *list,
127 const void *relative);
128 EAPI Evas_List *evas_list_append_relative_list (Evas_List *list,
130 Evas_List *relative);
131 EAPI Evas_List *evas_list_prepend_relative (Evas_List *list,
133 const void *relative);
134 EAPI Evas_List *evas_list_prepend_relative_list (Evas_List *list,
136 Evas_List *relative);
137 EAPI Evas_List *evas_list_remove (Evas_List *list,
139 EAPI Evas_List *evas_list_remove_list (Evas_List *list,
140 Evas_List *remove_list);
141 EAPI Evas_List *evas_list_promote_list (Evas_List *list,
142 Evas_List *move_list);
143 EAPI void * evas_list_find (const Evas_List *list,
145 EAPI Evas_List *evas_list_find_list (const Evas_List *list,
147 EAPI Evas_List *evas_list_free (Evas_List *list);
148 EAPI Evas_List *evas_list_last (const Evas_List *list);
149 EAPI Evas_List *evas_list_next (const Evas_List *list);
150 EAPI Evas_List *evas_list_prev (const Evas_List *list);
151 EAPI void * evas_list_data (const Evas_List *list);
152 EAPI int evas_list_count (const Evas_List *list);
153 EAPI void * evas_list_nth (const Evas_List *list, int n);
154 EAPI Evas_List *evas_list_nth_list (const Evas_List *list, int n);
155 EAPI Evas_List *evas_list_reverse (Evas_List *list);
156 EAPI Evas_List *evas_list_sort (Evas_List *list,
158 int (*func)(void *,void *));
159 EAPI int evas_list_alloc_error (void);
163 * Evas Object List functions
166 EAPI void * evas_object_list_append (void *in_list,
168 EAPI void * evas_object_list_prepend (void *in_list,
170 EAPI void * evas_object_list_append_relative (void *in_list,
173 EAPI void * evas_object_list_prepend_relative (void *in_list,
176 EAPI void * evas_object_list_remove (void *in_list,
178 EAPI void * evas_object_list_find (void *in_list,
183 * Evas Stringshare functions
186 EAPI void evas_stringshare_init (void); /* not implemented */
187 EAPI void evas_stringshare_shutdown (void); /* not implemented */
188 EAPI const char *evas_stringshare_add (const char *str);
189 EAPI void evas_stringshare_del (const char *str);
195 #endif /* _EVAS_DATA_H */