edje_message_queue.c File Reference

Functions

void _edje_message_cb_set (Edje *ed, void(*func)(void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg), void *data)
void _edje_message_del (Edje *ed)
void _edje_message_free (Edje_Message *em)
void _edje_message_init (void)
Edje_Message_edje_message_new (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id)
void _edje_message_parameters_push (Edje_Message *em)
void _edje_message_process (Edje_Message *em)
void _edje_message_propornot_send (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg, Eina_Bool prop)
void _edje_message_queue_clear (void)
void _edje_message_queue_process (void)
void _edje_message_send (Edje *ed, Edje_Queue queue, Edje_Message_Type type, int id, void *emsg)
void _edje_message_shutdown (void)
EAPI void edje_message_signal_process (void)
 Process all queued up edje messages.
EAPI void edje_object_message_handler_set (Evas_Object *obj, Edje_Message_Handler_Cb func, void *data)
 Set an Edje message handler function for a given Edje object.
EAPI void edje_object_message_send (Evas_Object *obj, Edje_Message_Type type, int id, void *msg)
 Send an (Edje) message to a given Edje object.
EAPI void edje_object_message_signal_process (Evas_Object *obj)
 Process an object's message queue.

Function Documentation

void _edje_message_cb_set ( Edje ed,
void(*)(void *data, Evas_Object *obj, Edje_Message_Type type, int id, void *msg)  func,
void *  data 
)
void _edje_message_del ( Edje ed)
void _edje_message_init ( void  )

Referenced by edje_init().

void _edje_message_queue_clear ( void  )
void _edje_message_send ( Edje ed,
Edje_Queue  queue,
Edje_Message_Type  type,
int  id,
void *  emsg 
)
void _edje_message_shutdown ( void  )

References _edje_message_queue_clear().

Referenced by edje_init().

EAPI void edje_message_signal_process ( void  )

Process all queued up edje messages.

This function triggers the processing of messages addressed to any (alive) edje objects.

References _edje_message_queue_process().

EAPI void edje_object_message_handler_set ( Evas_Object *  obj,
Edje_Message_Handler_Cb  func,
void *  data 
)

Set an Edje message handler function for a given Edje object.

Parameters
objA handle to an Edje object
funcThe function to handle messages coming from obj
dataAuxiliary data to be passed to func

Edje messages are one of the communication interfaces between code and a given Edje object's theme. With messages, one can communicate values beyond strings (which are the subject of Edje signals – see edje_object_signal_emit()), like float and integer numbers. Moreover, messages can be identified by integer numbers. See Edje_Message_Type for the full list of message types.

For scriptable programs on an Edje object's defining EDC file which send messages with the send_message() primitive, one can attach handler functions, to be called in the code which creates that object (see the syntax for EDC files).

This function associates a message handler function and the attached data pointer to the object obj.

See Also
edje_object_message_send()

References _edje_fetch(), and _edje_message_cb_set().

EAPI void edje_object_message_send ( Evas_Object *  obj,
Edje_Message_Type  type,
int  id,
void *  msg 
)

Send an (Edje) message to a given Edje object.

Parameters
objA handle to an Edje object
typeThe type of message to send to obj
idA identification number for the message to be sent
msgThe message's body, a struct depending on type

This function sends an Edje message to obj and to all of its child objects, if it has any (swallowed objects are one kind of child object). type and msg must be matched accordingly, as documented in Edje_Message_Type.

The id argument as a form of code and theme defining a common interface on message communication. One should define the same IDs on both code and EDC declaration (see the syntax for EDC files), to individualize messages (binding them to a given context).

The function to handle messages arriving from obj is set with edje_object_message_handler_set().

Referenced by _edje_emit_full().

EAPI void edje_object_message_signal_process ( Evas_Object *  obj)

Process an object's message queue.

Parameters
objA handle to an Edje object.

This function goes through the object message queue processing the pending messages for this specific Edje object. Normally they'd be processed only at idle time.

References _edje_del(), _edje_fetch(), _edje_message_free(), _edje_message_process(), _Edje::delete_me, _Edje_Message::edje, _Edje::processing_messages, and WRN.