Added new engine for universal event system.
Example:
gboolean mkdir_callback(const gchar *event_group, const gchar *event_name, gpointer init_data, gpointer event_data)
{
... /* some action for handle event */
return TRUE; /* got chance to run other callbacks for this event or */
return FALSE; /* break execution for other callbacks */
}
mc_event_add ("filesystem", "mkdir", mkdir_callback, "some init data", NULL);
mc_event_add ("filesystem", "mkdir", mkdir_log_callback, "some init data", NULL);
mc_event_add ("filesystem", "mkdir", third_callback, NULL, NULL);
/*
Last add - first run. In this case execution order is
* third_callback
* mkdir_log_callback
* mkdir_callback
if third_callback fuctions will return FALSE, then other callbacks
(mkdir_log_callback and mkdir_callback) never run!
*/
... /* some code */
/* for example, after pressing F7 */
mc_event_raise("filesystem", "mkdir", "some event_data... path to directory");
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2011-01-17 01:01:38 +03:00
|
|
|
#ifndef MC_EVENT_INTERNAL_H
|
|
|
|
#define MC_EVENT_INTERNAL_H
|
|
|
|
|
|
|
|
/*** typedefs(not structures) and defined constants ********************/
|
|
|
|
|
|
|
|
/*** enums *************************************************************/
|
|
|
|
|
|
|
|
/*** structures declarations (and typedefs of structures)***************/
|
|
|
|
|
|
|
|
typedef struct mc_event_callback_struct
|
|
|
|
{
|
|
|
|
gpointer init_data;
|
|
|
|
mc_event_callback_func_t callback;
|
|
|
|
} mc_event_callback_t;
|
|
|
|
|
|
|
|
|
|
|
|
/*** global variables defined in .c file *******************************/
|
|
|
|
|
|
|
|
extern GTree *mc_event_grouplist;
|
|
|
|
|
|
|
|
/*** declarations of public functions **********************************/
|
|
|
|
|
|
|
|
GTree *mc_event_get_event_group_by_name (const gchar * event_group_name, gboolean create_new,
|
|
|
|
GError ** mcerror);
|
|
|
|
GPtrArray *mc_event_get_event_by_name (GTree * event_group, const gchar * event_name,
|
|
|
|
gboolean create_new, GError ** mcerror);
|
|
|
|
mc_event_callback_t *mc_event_is_callback_in_array (GPtrArray * callbacks,
|
2012-07-06 15:20:18 +04:00
|
|
|
mc_event_callback_func_t event_callback,
|
|
|
|
gpointer event_init_data);
|
Added new engine for universal event system.
Example:
gboolean mkdir_callback(const gchar *event_group, const gchar *event_name, gpointer init_data, gpointer event_data)
{
... /* some action for handle event */
return TRUE; /* got chance to run other callbacks for this event or */
return FALSE; /* break execution for other callbacks */
}
mc_event_add ("filesystem", "mkdir", mkdir_callback, "some init data", NULL);
mc_event_add ("filesystem", "mkdir", mkdir_log_callback, "some init data", NULL);
mc_event_add ("filesystem", "mkdir", third_callback, NULL, NULL);
/*
Last add - first run. In this case execution order is
* third_callback
* mkdir_log_callback
* mkdir_callback
if third_callback fuctions will return FALSE, then other callbacks
(mkdir_log_callback and mkdir_callback) never run!
*/
... /* some code */
/* for example, after pressing F7 */
mc_event_raise("filesystem", "mkdir", "some event_data... path to directory");
Signed-off-by: Slava Zanko <slavazanko@gmail.com>
2011-01-17 01:01:38 +03:00
|
|
|
|
|
|
|
/*** inline functions ****************************************************************************/
|
|
|
|
#endif /* MC_EVENT_INTERNAL_H */
|