summaryrefslogtreecommitdiff
path: root/src/lib/eo
diff options
context:
space:
mode:
authorDaniel Kolesa <d.kolesa@samsung.com>2019-07-17 15:50:38 +0200
committerDaniel Kolesa <d.kolesa@samsung.com>2019-07-17 15:52:39 +0200
commitfbdbf6b132153503f056ac10e55d76422fc64dc0 (patch)
treed41fdedcb042dc0cd2897689776ea31d9b6a7685 /src/lib/eo
parentbaf1fcdb916d0142e1d0652549d658751486a534 (diff)
downloadefl-fbdbf6b132153503f056ac10e55d76422fc64dc0.tar.gz
eolian: add builtin binbuf and event types
Binbuf is like strbuf and allows not using the Eina opaque wrapper now, which will remove some ptr(). And event translates to Efl.Event because otherwise there would be no way to get rid of void_ptr.
Diffstat (limited to 'src/lib/eo')
-rw-r--r--src/lib/eo/Eo.h28
-rw-r--r--src/lib/eo/efl_object.eo2
2 files changed, 29 insertions, 1 deletions
diff --git a/src/lib/eo/Eo.h b/src/lib/eo/Eo.h
index 5390e61c8e..ddbad15de2 100644
--- a/src/lib/eo/Eo.h
+++ b/src/lib/eo/Eo.h
@@ -214,6 +214,34 @@ typedef void (*Efl_Del_Intercept) (Eo *obj_id);
#include "efl_object_override.eo.h"
#include "efl_object.eo.h"
+
+/**
+ * @brief A parameter passed in event callbacks holding extra event parameters.
+ *
+ * This is the full event information passed to callbacks in C.
+ *
+ * @since 1.22
+ *
+ * @ingroup Efl
+ */
+typedef struct _Efl_Event
+{
+ Efl_Object *object; /**< The object the callback was called on.
+ *
+ * @since 1.22 */
+ const Efl_Event_Description *desc; /**< The event description.
+ *
+ * @since 1.22 */
+ void *info; /**< Extra event information passed by the event caller. Must be
+ * cast to the event type declared in the EO file. Keep in mind
+ * that: 1) Objects are passed as a normal Eo*. Event subscribers
+ * can call functions on these objects. 2) Structs, built-in
+ * types and containers are passed as const pointers, with one
+ * level of indirection.
+ *
+ * @since 1.22 */
+} Efl_Event;
+
#define EO_CLASS EFL_OBJECT_CLASS
/** An event callback prototype. */
diff --git a/src/lib/eo/efl_object.eo b/src/lib/eo/efl_object.eo
index bea9a0e0f5..85cb664958 100644
--- a/src/lib/eo/efl_object.eo
+++ b/src/lib/eo/efl_object.eo
@@ -422,7 +422,7 @@ abstract Efl.Object
}
}
-struct Efl.Event {
+struct @extern Efl.Event {
[[A parameter passed in event callbacks holding extra event parameters.
This is the full event information passed to callbacks in C.