*/
/**
- * @def EO_CLASS
- * The class type for the Eo base class.
- */
-#define EO_CLASS eo_base_class_get()
-/**
- * @brief Use #EO_CLASS
- * @internal
- * */
-EAPI const Eo_Class *eo_base_class_get(void);
-
-/**
* @typedef eo_key_data_free_func
* Data free func prototype.
*/
typedef void (*eo_key_data_free_func)(void *);
/**
- * @brief Set generic data to object.
- * @param[in] key the key associated with the data
- * @param[in] data the data to set.
- * @param[in] free_func the func to free data with (NULL means "do nothing").
- *
- * @see #eo_key_data_get
- * @see #eo_key_data_del
- */
-EAPI void eo_key_data_set(const char *key, const void *data, eo_key_data_free_func free_func);
-
-/**
- * @brief Get generic data from object.
- * @param[in] key the key associated with the data
- * @return data the data for the key
- *
- * @see #eo_key_data_set
- * @see #eo_key_data_del
- */
-EAPI void *eo_key_data_get(const char *key);
-
-/**
- * @brief Get dbg information from the object.
- * @param[in] root node of the tree
- */
-EAPI void eo_dbg_info_get(Eo_Dbg_Info *root_node);
-
-/**
- * @brief Del generic data from object.
- * @param[in] key the key associated with the data
- *
- * @see #eo_key_data_set
- * @see #eo_key_data_get
- */
-EAPI void eo_key_data_del(const char *key);
-
-/**
- * @brief Set the parent of an object
- * @param[in] parent the new parent.
- *
- * Parents keep references to their children so in order to delete objects
- * that have parents you need to set parent to NULL or use eo_del() that
- * does that for you (and also unrefs the object).
- *
- * @see eo_del()
- * @see eo_parent_get()
- */
-EAPI void eo_parent_set(Eo *parent);
-
-/**
- * @brief Get the parent of an object
- * @return a pointer to the parent object.
- *
- * @see eo_parent_set()
- */
-EAPI Eo *eo_parent_get(void);
-
-/**
- * @brief Get an iterator on all childrens
- * @param obj the object to get the childrens from.
- * @return a pointer to an Eina_Iterator containing all the childrens.
- *
- * @see eo_parent_set()
- */
-EAPI Eina_Iterator *eo_children_iterator_new(void);
-
-/**
- * @brief Add a new weak reference to obj.
- * @param wref The pointer to use for the weak ref.
- *
- * This function registers the object handle pointed by wref to obj so when
- * obj is deleted it'll be updated to NULL. This functions should be used
- * when you want to keep track of an object in a safe way, but you don't want
- * to prevent it from being freed.
- *
- * @see #eo_wref_del
- */
-EAPI void eo_wref_add(Eo **wref);
-
-/**
- * @brief Delete the weak reference passed.
- * @param wref the weak reference to free.
- *
- * @see #eo_wref_add
- */
-EAPI void eo_wref_del(Eo **wref);
-
-/**
* @def eo_weak_ref
* @brief Reference a pointer to an Eo object
* @param wref the pointer to use for the weak ref
#define eo_wref_del_safe(wref) eo_weak_unref(wref)
/**
- * @brief Call the object's constructor.
- *
- * Should not be used with #eo_do. Only use it with #eo_do_super.
- *
- * @see #eo_destructor
- */
-EAPI void eo_constructor(void);
-
-/**
- * @brief Call the object's destructor.
- *
- * Should not be used with #eo_do. Only use it with #eo_do_super.
- *
- * @see #eo_constructor
- */
-EAPI void eo_destructor(void);
-
-/**
- * @brief Called at the end of #eo_add.
- *
- * Should not be called, just overridden.
- *
- * @see #eo_add
- */
-EAPI Eo *eo_finalize(void);
-
-/**
* @addtogroup Eo_Events Eo's Event Handling
* @{
*/
}
/**
- * @brief Add an event callback forwarder for an event and an object.
- * @param[in] desc The description of the event to listen to.
- * @param[in] new_obj The object to emit events from.
- *
- * @see eo_event_callback_forwarder_del()
- */
-EAPI void eo_event_callback_forwarder_add(const Eo_Event_Description *desc, Eo *new_obj);
-
-/**
- * @brief Remove an event callback forwarder for an event and an object.
- * @param[in] desc The description of the event to listen to.
- * @param[in] new_obj The object to emit events from.
- *
- * @see eo_event_callback_forwarder_add()
- */
-EAPI void eo_event_callback_forwarder_del(const Eo_Event_Description *desc, Eo *new_obj);
-
-/**
- * @brief freeze events of object.
- *
- * Prevents event callbacks from being called for the object.
- *
- * @see #eo_event_thaw
- */
-EAPI void eo_event_freeze(void);
-
-/**
- * @brief thaw events of object.
- *
- * Lets event callbacks be called for the object.
- *
- * @see #eo_event_freeze
- */
-EAPI void eo_event_thaw(void);
-
-/**
- * @brief return freeze events of object.
- *
- * @return fcount The event freeze count of the object.
- *
- * Return event freeze count.
- *
- * @see #eo_event_freeze
- * @see #eo_event_thaw
- */
-EAPI int eo_event_freeze_count_get(void);
-
-/**
- * @brief freeze events of object.
- *
- * Prevents event callbacks from being called for the object.
- *
- * @see #eo_event_freeze
- * @see #eo_event_global_thaw
- */
-EAPI void eo_event_global_freeze(void);
-
-/**
- * @brief thaw events of object.
- *
- * Lets event callbacks be called for the object.
- *
- * @see #eo_event_thaw
- * @see #eo_event_global_freeze
- */
-EAPI void eo_event_global_thaw(void);
-
-/**
- * @brief return freeze events of object.
- *
- * @return fcount The event freeze count of the object.
- *
- * Return event freeze count.
- *
- * @see #eo_event_freeze_count_get
- * @see #eo_event_global_freeze
- * @see #eo_event_global_thaw
- */
-EAPI int eo_event_global_freeze_count_get(void);
-
-/**
* @def eo_event_callback_add(obj, desc, cb, data)
* Add a callback for an event.
* @param[in] desc The description of the event to listen to.
EO_CALLBACK_PRIORITY_DEFAULT, cb, data)
/**
- * @brief Add a callback for an event with a specific priority.
- * @param[in] desc The description of the event to listen to.
- * @param[in] priority The priority of the callback.
- * @param[in] cb the callback to call.
- * @param[in] data additional data to pass to the callback.
- *
- * callbacks of the same priority are called in reverse order of creation.
- *
- * @see #eo_event_callback_add
- */
-EAPI void eo_event_callback_priority_add(const Eo_Event_Description *desc,
- Eo_Callback_Priority priority,
- Eo_Event_Cb func,
- const void *user_data);
-
-/**
- * @brief Del a callback with a specific data associated to it for an event.
- * @param[in] desc The description of the event to listen to.
- * @param[in] func the callback to delete.
- * @param[in] user_data The data to compare.
- *
- */
-EAPI void eo_event_callback_del(const Eo_Event_Description *desc,
- Eo_Event_Cb func,
- const void *user_data);
-
-/**
* @def eo_event_callback_array_add(obj, desc, cb, data)
* Add a callback array for an event.
* @param[in] array an #Eo_Callback_Array_Item of events to listen to.
EO_CALLBACK_PRIORITY_DEFAULT, data)
/**
- * @brief Add a callback array for an event with a specific priority.
- * @param[in] array an #Eo_Callback_Array_Item of events to listen to.
- * @param[in] priority The priority of the callback.
- * @param[in] data additional data to pass to the callback.
- *
- * callbacks of the same priority are called in reverse order of creation.
- *
- * @see #eo_event_callback_add
- */
-EAPI void eo_event_callback_array_priority_add(const Eo_Callback_Array_Item *array,
- Eo_Callback_Priority priority,
- const void *user_data);
-
-/**
- * @brief Del a callback array with a specific data associated to it for an event.
- * @param[in] array an #Eo_Callback_Array_Item of events to listen to.
- * @param[in] user_data The data to compare.
- *
- */
-EAPI void eo_event_callback_array_del(const Eo_Callback_Array_Item *array,
- const void *user_data);
-
-/**
- * @brief Call the callbacks for an event of an object.
- * @param[in] desc The description of the event to call.
- * @param[in] event_info Extra event info to pass to the callbacks.
- * @return aborted @c EINA_TRUE if one of the callbacks aborted the call, @c EINA_FALSE otherwise.
- */
-EAPI Eina_Bool eo_event_callback_call(const Eo_Event_Description *desc, void *event_info);
-
-/**
* @}
*/
-/**
- * @var _EO_EV_CALLBACK_ADD
- * see EO_EV_CALLBACK_ADD
- */
-EAPI extern const Eo_Event_Description _EO_EV_CALLBACK_ADD;
-
-/**
- * @def EO_EV_CALLBACK_ADD
- * The event description (of type #Eo_Event_Description) for
- * The "Callback listener added" event.
- */
-#define EO_EV_CALLBACK_ADD (&(_EO_EV_CALLBACK_ADD))
-
-/**
- * @var _EO_EV_CALLBACK_DEL
- * see EO_EV_CALLBACK_DEL
- */
-EAPI extern const Eo_Event_Description _EO_EV_CALLBACK_DEL;
-
-/**
- * @def EO_EV_CALLBACK_DEL
- * The event description (of type #Eo_Event_Description) for
- * The "Callback listener deleted" event.
- */
-#define EO_EV_CALLBACK_DEL (&(_EO_EV_CALLBACK_DEL))
-
-/**
- * @var _EO_EV_DEL
- * see #EO_EV_DEL
- */
-EAPI extern const Eo_Event_Description _EO_EV_DEL;
-
-/**
- * @def EO_EV_DEL
- * Object is being deleted.
- */
-#define EO_EV_DEL (&(_EO_EV_DEL))
+/* XXX: Remove, for compat with the old names. */
+#define EO_EV_CALLBACK_ADD EO_BASE_EVENT_CALLBACK_ADD
+#define EO_EV_CALLBACK_DEL EO_BASE_EVENT_CALLBACK_DEL
+#define EO_EV_DEL EO_BASE_EVENT_DEL
/**
* @}
*/
+#include "eo_base.eo.h"
+
+#define EO_CLASS EO_BASE_CLASS
#endif
unsigned short walking_list;
unsigned short event_freeze_count;
Eina_Bool deletions_waiting : 1;
-} Private_Data;
+} Eo_Base_Data;
typedef struct
{
}
static void
-_eo_generic_data_del_all(Private_Data *pd)
+_eo_generic_data_del_all(Eo_Base_Data *pd)
{
Eina_Inlist *nnode;
Eo_Generic_Data_Node *node = NULL;
}
}
-static void
-_data_set(Eo *obj, void *class_data,
+EOLIAN static void
+_eo_base_key_data_set(Eo *obj, Eo_Base_Data *pd,
const char *key, const void *data, eo_key_data_free_func free_func)
{
- Private_Data *pd = class_data;
-
Eo_Generic_Data_Node *node;
if (!key) return;
pd->generic_data = eina_inlist_prepend(pd->generic_data,
EINA_INLIST_GET(node));
}
-EAPI EO_VOID_FUNC_BODYV(eo_key_data_set, EO_FUNC_CALL(key, data, free_func),
- const char *key, const void *data, eo_key_data_free_func free_func);
-static void *
-_data_get(Eo *obj EINA_UNUSED, void *class_data, const char *key)
+EOLIAN static void *
+_eo_base_key_data_get(Eo *obj EINA_UNUSED, Eo_Base_Data *pd, const char *key)
{
/* We don't really change it... */
Eo_Generic_Data_Node *node;
- Private_Data *pd = (Private_Data *) class_data;
-
if (!key) return NULL;
EINA_INLIST_FOREACH(pd->generic_data, node)
return NULL;
}
-EAPI EO_FUNC_BODYV(eo_key_data_get, void*, NULL, EO_FUNC_CALL(key), const char *key);
-static void
-_parent_set(Eo *obj, void *class_data, Eo *parent_id)
+EOLIAN static void
+_eo_base_parent_set(Eo *obj, Eo_Base_Data *pd, Eo *parent_id)
{
- Private_Data *pd = (Private_Data *) class_data;
-
if (pd->parent == parent_id)
return;
if (pd->parent)
{
- Private_Data *old_parent_pd;
+ Eo_Base_Data *old_parent_pd;
- old_parent_pd = eo_data_scope_get(pd->parent, EO_CLASS);
+ old_parent_pd = eo_data_scope_get(pd->parent, EO_BASE_CLASS);
if (old_parent_pd)
{
old_parent_pd->children = eina_list_remove(old_parent_pd->children,
/* Set new parent */
if (parent_id)
{
- Private_Data *parent_pd = NULL;
- parent_pd = eo_data_scope_get(parent_id, EO_CLASS);
+ Eo_Base_Data *parent_pd = NULL;
+ parent_pd = eo_data_scope_get(parent_id, EO_BASE_CLASS);
if (EINA_LIKELY(parent_pd != NULL))
{
pd->parent = NULL;
}
}
-EAPI EO_VOID_FUNC_BODYV(eo_parent_set, EO_FUNC_CALL(parent_id), Eo *parent_id);
-static Eo *
-_parent_get(Eo *obj EINA_UNUSED, void *class_data)
+EOLIAN static Eo *
+_eo_base_parent_get(Eo *obj EINA_UNUSED, Eo_Base_Data *pd)
{
- Private_Data *pd = (Private_Data *) class_data;
-
return pd->parent;
}
-EAPI EO_FUNC_BODY(eo_parent_get, Eo *, NULL);
/* Children accessor */
typedef struct _Eo_Children_Iterator Eo_Children_Iterator;
_eo_unref(obj);
}
-static Eina_Iterator *
-_children_iterator_new(Eo *obj_id, void *class_data)
+EOLIAN static Eina_Iterator *
+_eo_base_children_iterator_new(Eo *obj_id, Eo_Base_Data *pd)
{
- Private_Data *pd = class_data;
_Eo_Class *klass;
Eo_Children_Iterator *it;
return (Eina_Iterator *)it;
}
-EAPI EO_FUNC_BODY(eo_children_iterator_new, Eina_Iterator *, NULL);
-static void
-_dbg_info_get(Eo *obj EINA_UNUSED, void *class_data EINA_UNUSED, Eo_Dbg_Info *root_node EINA_UNUSED)
+EOLIAN static void
+_eo_base_dbg_info_get(Eo *obj EINA_UNUSED, Eo_Base_Data *pd EINA_UNUSED, Eo_Dbg_Info *root_node EINA_UNUSED)
{ /* No info required in the meantime */
return;
}
-EAPI EO_VOID_FUNC_BODYV(eo_dbg_info_get, EO_FUNC_CALL(root_node), Eo_Dbg_Info *root_node);
-static void
-_data_del(Eo *obj EINA_UNUSED, void *class_data, const char *key)
+EOLIAN static void
+_eo_base_key_data_del(Eo *obj EINA_UNUSED, Eo_Base_Data *pd, const char *key)
{
Eo_Generic_Data_Node *node;
- Private_Data *pd = class_data;
if (!key) return;
}
}
}
-EAPI EO_VOID_FUNC_BODYV(eo_key_data_del, EO_FUNC_CALL(key), const char *key);
/* Weak reference. */
static inline size_t
-_wref_count(Private_Data *pd)
+_wref_count(Eo_Base_Data *pd)
{
size_t count = 0;
if (!pd->wrefs)
return count;
}
-static void
-_wref_add(Eo *obj, void *class_data, Eo **wref)
+EOLIAN static void
+_eo_base_wref_add(Eo *obj, Eo_Base_Data *pd, Eo **wref)
{
- Private_Data *pd = (Private_Data *) class_data;
size_t count;
Eo ***tmp;
pd->wrefs[count] = NULL;
*wref = obj;
}
-EAPI EO_VOID_FUNC_BODYV(eo_wref_add, EO_FUNC_CALL(wref), Eo **wref);
-static void
-_wref_del(Eo *obj, void *class_data, Eo **wref)
+EOLIAN void
+_eo_base_wref_del(Eo *obj, Eo_Base_Data *pd, Eo **wref)
{
- Private_Data *pd = (Private_Data *) class_data;
size_t count;
if (*wref != obj)
*wref = NULL;
}
-EAPI EO_VOID_FUNC_BODYV(eo_wref_del, EO_FUNC_CALL(wref), Eo **wref);
static inline void
-_wref_destruct(Private_Data *pd)
+_wref_destruct(Eo_Base_Data *pd)
{
Eo ***itr;
if (!pd->wrefs)
/* Actually remove, doesn't care about walking list, or delete_me */
static void
-_eo_callback_remove(Private_Data *pd, Eo_Callback_Description *cb)
+_eo_callback_remove(Eo_Base_Data *pd, Eo_Callback_Description *cb)
{
Eo_Callback_Description *itr, *pitr = NULL;
/* Actually remove, doesn't care about walking list, or delete_me */
static void
-_eo_callback_remove_all(Private_Data *pd)
+_eo_callback_remove_all(Eo_Base_Data *pd)
{
while (pd->callbacks)
{
}
static void
-_eo_callbacks_clear(Private_Data *pd)
+_eo_callbacks_clear(Eo_Base_Data *pd)
{
Eo_Callback_Description *cb = NULL;
}
static void
-_eo_callbacks_sorted_insert(Private_Data *pd, Eo_Callback_Description *cb)
+_eo_callbacks_sorted_insert(Eo_Base_Data *pd, Eo_Callback_Description *cb)
{
Eo_Callback_Description *itr, *itrp = NULL;
for (itr = pd->callbacks; itr && (itr->priority < cb->priority);
}
}
-static void
-_ev_cb_priority_add(Eo *obj, void *class_data,
+EOLIAN static void
+_eo_base_event_callback_priority_add(Eo *obj, Eo_Base_Data *pd,
const Eo_Event_Description *desc,
Eo_Callback_Priority priority,
Eo_Event_Cb func,
const void *user_data)
{
Eo_Callback_Description *cb;
- Private_Data *pd = (Private_Data *) class_data;
cb = calloc(1, sizeof(*cb));
if (!cb) return;
eo_do(obj, eo_event_callback_call(EO_EV_CALLBACK_ADD, (void *)arr));
}
}
-EAPI EO_VOID_FUNC_BODYV(eo_event_callback_priority_add,
- EO_FUNC_CALL(desc, priority, func, user_data),
- const Eo_Event_Description *desc,
- Eo_Callback_Priority priority,
- Eo_Event_Cb func,
- const void *user_data);
-static void
-_ev_cb_del(Eo *obj, void *class_data,
+EOLIAN static void
+_eo_base_event_callback_del(Eo *obj, Eo_Base_Data *pd,
const Eo_Event_Description *desc,
Eo_Event_Cb func,
- void *user_data)
+ const void *user_data)
{
Eo_Callback_Description *cb;
- Private_Data *pd = (Private_Data *) class_data;
for (cb = pd->callbacks; cb; cb = cb->next)
{
DBG("Callback of object %p with function %p and data %p not found.", obj, func, user_data);
}
-EAPI EO_VOID_FUNC_BODYV(eo_event_callback_del,
- EO_FUNC_CALL(desc, func, user_data),
- const Eo_Event_Description *desc,
- Eo_Event_Cb func,
- const void *user_data);
-static void
-_ev_cb_array_priority_add(Eo *obj, void *class_data,
+EOLIAN static void
+_eo_base_event_callback_array_priority_add(Eo *obj, Eo_Base_Data *pd,
const Eo_Callback_Array_Item *array,
Eo_Callback_Priority priority,
const void *user_data)
{
Eo_Callback_Description *cb;
- Private_Data *pd = (Private_Data *) class_data;
cb = calloc(1, sizeof(*cb));
if (!cb) return;
eo_do(obj, eo_event_callback_call(EO_EV_CALLBACK_ADD, (void *)array); );
}
}
-EAPI EO_VOID_FUNC_BODYV(eo_event_callback_array_priority_add,
- EO_FUNC_CALL(array, priority, user_data),
- const Eo_Callback_Array_Item *array,
- Eo_Callback_Priority priority,
- const void *user_data);
-static void
-_ev_cb_array_del(Eo *obj, void *class_data,
+EOLIAN static void
+_eo_base_event_callback_array_del(Eo *obj, Eo_Base_Data *pd,
const Eo_Callback_Array_Item *array,
- void *user_data)
+ const void *user_data)
{
Eo_Callback_Description *cb;
- Private_Data *pd = (Private_Data *) class_data;
for (cb = pd->callbacks; cb; cb = cb->next)
{
DBG("Callback of object %p with function array %p and data %p not found.", obj, array, user_data);
}
-EAPI EO_VOID_FUNC_BODYV(eo_event_callback_array_del,
- EO_FUNC_CALL(array, user_data),
- const Eo_Callback_Array_Item *array,
- const void *user_data);
static Eina_Bool
_cb_desc_match(const Eo_Event_Description *a, const Eo_Event_Description *b)
}
}
-static Eina_Bool
-_ev_cb_call(Eo *obj_id, void *class_data,
+EOLIAN static Eina_Bool
+_eo_base_event_callback_call(Eo *obj_id, Eo_Base_Data *pd,
const Eo_Event_Description *desc,
void *event_info)
{
Eina_Bool ret;
Eo_Callback_Description *cb;
- Private_Data *pd = (Private_Data *) class_data;
EO_OBJ_POINTER_RETURN_VAL(obj_id, obj, EINA_FALSE);
return ret;
}
-EAPI EO_FUNC_BODYV(eo_event_callback_call, Eina_Bool,
- EINA_FALSE,
- EO_FUNC_CALL(desc, event_info),
- const Eo_Event_Description *desc,
- void *event_info);
static Eina_Bool
_eo_event_forwarder_callback(void *data, Eo *obj, const Eo_Event_Description *desc, void *event_info)
}
/* FIXME: Change default priority? Maybe call later? */
-static void
-_ev_cb_forwarder_add(Eo *obj, void *class_data EINA_UNUSED,
+EOLIAN static void
+_eo_base_event_callback_forwarder_add(Eo *obj, Eo_Base_Data *pd EINA_UNUSED,
const Eo_Event_Description *desc,
Eo *new_obj)
{
eo_do(obj, eo_event_callback_add(desc, _eo_event_forwarder_callback, new_obj); );
}
-EAPI EO_VOID_FUNC_BODYV(eo_event_callback_forwarder_add,
- EO_FUNC_CALL(desc, new_obj),
- const Eo_Event_Description *desc,
- Eo *new_obj);
-static void
-_ev_cb_forwarder_del(Eo *obj, void *class_data EINA_UNUSED,
+EOLIAN static void
+_eo_base_event_callback_forwarder_del(Eo *obj, Eo_Base_Data *pd EINA_UNUSED,
const Eo_Event_Description *desc,
Eo *new_obj)
{
eo_do(obj, eo_event_callback_del(desc, _eo_event_forwarder_callback, new_obj); );
}
-EAPI EO_VOID_FUNC_BODYV(eo_event_callback_forwarder_del,
- EO_FUNC_CALL(desc, new_obj),
- const Eo_Event_Description *desc,
- Eo *new_obj);
-static void
-_ev_freeze(Eo *obj EINA_UNUSED, void *class_data)
+EOLIAN static void
+_eo_base_event_freeze(Eo *obj EINA_UNUSED, Eo_Base_Data *pd)
{
- Private_Data *pd = (Private_Data *) class_data;
pd->event_freeze_count++;
}
-EAPI EO_VOID_FUNC_BODY(eo_event_freeze);
-static void
-_ev_thaw(Eo *obj, void *class_data)
+EOLIAN static void
+_eo_base_event_thaw(Eo *obj, Eo_Base_Data *pd)
{
- Private_Data *pd = (Private_Data *) class_data;
if (pd->event_freeze_count > 0)
{
pd->event_freeze_count--;
ERR("Events for object %p have already been thawed.", obj);
}
}
-EAPI EO_VOID_FUNC_BODY(eo_event_thaw);
-static int
-_ev_freeze_get(Eo *obj EINA_UNUSED, void *class_data)
+EOLIAN static int
+_eo_base_event_freeze_count_get(Eo *obj EINA_UNUSED, Eo_Base_Data *pd)
{
- Private_Data *pd = (Private_Data *) class_data;
-
return pd->event_freeze_count;
}
-EAPI EO_FUNC_BODY(eo_event_freeze_count_get, int, 0);
-static void
-_ev_global_freeze(const Eo_Class *klass EINA_UNUSED, void *class_data EINA_UNUSED)
+EOLIAN static void
+_eo_base_event_global_freeze(Eo *klass EINA_UNUSED, Eo_Base_Data *pd EINA_UNUSED)
{
event_freeze_count++;
}
-EAPI EO_VOID_FUNC_BODY(eo_event_global_freeze);
-static void
-_ev_global_thaw(const Eo_Class *klass EINA_UNUSED, void *class_data EINA_UNUSED)
+EOLIAN static void
+_eo_base_event_global_thaw(Eo *klass EINA_UNUSED, Eo_Base_Data *pd EINA_UNUSED)
{
if (event_freeze_count > 0)
{
ERR("Global events have already been thawed.");
}
}
-EAPI EO_VOID_FUNC_BODY(eo_event_global_thaw);
-static int
-_ev_global_freeze_get(const Eo_Class *klass EINA_UNUSED, void *class_data EINA_UNUSED)
+EOLIAN static int
+_eo_base_event_global_freeze_count_get(Eo *klass EINA_UNUSED, Eo_Base_Data *pd EINA_UNUSED)
{
return event_freeze_count;
}
-EAPI EO_FUNC_BODY(eo_event_global_freeze_count_get, int, 0);
/* Eo_Dbg */
EAPI void
/* EOF event callbacks */
-/* EO_CLASS stuff */
-#define MY_CLASS EO_CLASS
+/* EO_BASE_CLASS stuff */
+#define MY_CLASS EO_BASE_CLASS
-EAPI const Eo_Event_Description _EO_EV_CALLBACK_ADD =
- EO_EVENT_DESCRIPTION("callback,add", "A callback was added.");
-EAPI const Eo_Event_Description _EO_EV_CALLBACK_DEL =
- EO_EVENT_DESCRIPTION("callback,del", "A callback was deleted.");
-EAPI const Eo_Event_Description _EO_EV_DEL =
- EO_HOT_EVENT_DESCRIPTION("del", "Obj is being deleted.");
-
-static void
-_constructor(Eo *obj, void *class_data EINA_UNUSED)
+EOLIAN static void
+_eo_base_constructor(Eo *obj, Eo_Base_Data *pd EINA_UNUSED)
{
DBG("%p - %s.", obj, eo_class_name_get(MY_CLASS));
_eo_condtor_done(obj);
}
-EAPI EO_VOID_FUNC_BODY(eo_constructor);
static void
-_destructor(Eo *obj, void *class_data)
+_eo_base_destructor(Eo *obj, Eo_Base_Data *pd)
{
- Private_Data *pd = class_data;
Eo *child;
DBG("%p - %s.", obj, eo_class_name_get(MY_CLASS));
EINA_LIST_FREE(pd->children, child)
eo_do(child, eo_parent_set(NULL));
- _eo_generic_data_del_all(class_data);
- _wref_destruct(class_data);
- _eo_callback_remove_all(class_data);
+ _eo_generic_data_del_all(pd);
+ _wref_destruct(pd);
+ _eo_callback_remove_all(pd);
_eo_condtor_done(obj);
}
-EAPI EO_VOID_FUNC_BODY(eo_destructor);
static Eo *
-_finalize(Eo *obj, void *class_data EINA_UNUSED)
+_eo_base_finalize(Eo *obj, Eo_Base_Data *pd EINA_UNUSED)
{
return _eo_add_internal_end(obj);
}
-EAPI EO_FUNC_BODY(eo_finalize, Eo *, NULL);
static void
-_class_constructor(Eo_Class *klass EINA_UNUSED)
+_eo_base_class_constructor(Eo_Class *klass EINA_UNUSED)
{
event_freeze_count = 0;
_legacy_events_hash = eina_hash_stringshared_new(_legacy_events_hash_free_cb);
}
static void
-_class_destructor(Eo_Class *klass EINA_UNUSED)
+_eo_base_class_destructor(Eo_Class *klass EINA_UNUSED)
{
eina_hash_free(_legacy_events_hash);
}
-static Eo_Op_Description op_descs [] = {
- EO_OP_FUNC(eo_constructor, _constructor, "Constructor."),
- EO_OP_FUNC(eo_destructor, _destructor, "Destructor."),
- EO_OP_FUNC(eo_finalize, _finalize, "Finalize object creation."),
- EO_OP_FUNC(eo_parent_set, _parent_set, "Set parent."),
- EO_OP_FUNC(eo_parent_get, _parent_get, "Get parent."),
- EO_OP_FUNC(eo_children_iterator_new, _children_iterator_new, "Get Children Iterator."),
- EO_OP_FUNC(eo_key_data_set, _data_set, "Set data for key."),
- EO_OP_FUNC(eo_key_data_get, _data_get, "Get data for key."),
- EO_OP_FUNC(eo_key_data_del, _data_del, "Del key."),
- EO_OP_FUNC(eo_wref_add, _wref_add, "Add a weak ref to the object."),
- EO_OP_FUNC(eo_wref_del, _wref_del, "Delete the weak ref."),
- EO_OP_FUNC(eo_event_callback_priority_add, _ev_cb_priority_add, "Add an event callback with a priority."),
- EO_OP_FUNC(eo_event_callback_del, _ev_cb_del, "Delete an event callback"),
- EO_OP_FUNC(eo_event_callback_array_priority_add, _ev_cb_array_priority_add, "Add an event callback array with a priority."),
- EO_OP_FUNC(eo_event_callback_array_del, _ev_cb_array_del, "Delete an event callback array"),
- EO_OP_FUNC(eo_event_callback_call, _ev_cb_call, "Call the event callbacks for an event."),
- EO_OP_FUNC(eo_event_callback_forwarder_add, _ev_cb_forwarder_add, "Add an event forwarder."),
- EO_OP_FUNC(eo_event_callback_forwarder_del, _ev_cb_forwarder_del, "Delete an event forwarder."),
- EO_OP_FUNC(eo_event_freeze, _ev_freeze, "Freezes events."),
- EO_OP_FUNC(eo_event_thaw, _ev_thaw, "Thaws events."),
- EO_OP_FUNC(eo_event_freeze_count_get, _ev_freeze_get, "Get event freeze counter."),
- EO_OP_CLASS_FUNC(eo_event_global_freeze, _ev_global_freeze, "Freezes events globally."),
- EO_OP_CLASS_FUNC(eo_event_global_thaw, _ev_global_thaw, "Thaws events globally."),
- EO_OP_CLASS_FUNC(eo_event_global_freeze_count_get, _ev_global_freeze_get, "Get global event freeze counter."),
- EO_OP_FUNC(eo_dbg_info_get, _dbg_info_get, "Get debug info list for obj."),
- EO_OP_SENTINEL
-};
-
-// FIXME: eo
-static const Eo_Event_Description *event_desc[] = {
- EO_EV_CALLBACK_ADD,
- EO_EV_CALLBACK_DEL,
- EO_EV_DEL,
- NULL
-};
-
-static const Eo_Class_Description class_desc = {
- EO_VERSION,
- "Eo_Base",
- EO_CLASS_TYPE_REGULAR_NO_INSTANT,
- EO_CLASS_DESCRIPTION_OPS(op_descs),
- event_desc,
- sizeof(Private_Data),
- _class_constructor,
- _class_destructor
-};
-
-EO_DEFINE_CLASS(eo_base_class_get, &class_desc, NULL, NULL)
+#include "eo_base.eo.c"