forked from enlightenment/enlightenment
Add data pointers to test / action callbacks.
Add function to call a handler. SVN revision: 32061
This commit is contained in:
parent
3304ad77d4
commit
9ffb9ddab7
|
@ -122,7 +122,9 @@ static Evas_Hash *_glob_handlers = NULL;
|
|||
EAPI E_Fm_Mime_Handler *
|
||||
e_fm_mime_handler_new(const char *label, const char *icon_group,
|
||||
void (*action_func) (Evas_Object *obj, const char *path, void *data),
|
||||
int (test_func) (Evas_Object *obj, const char *path, void *data))
|
||||
void *action_data,
|
||||
int (test_func) (Evas_Object *obj, const char *path, void *data),
|
||||
void *test_data)
|
||||
{
|
||||
E_Fm_Mime_Handler *handler;
|
||||
|
||||
|
@ -134,9 +136,9 @@ e_fm_mime_handler_new(const char *label, const char *icon_group,
|
|||
handler->label = evas_stringshare_add(label);
|
||||
handler->icon_group = icon_group ? evas_stringshare_add(icon_group) : NULL;
|
||||
handler->action_func = action_func;
|
||||
handler->action_data = action_data;
|
||||
handler->test_func = test_func;
|
||||
|
||||
/* TODO: add data for both action_cb and test_cb */
|
||||
handler->test_data = test_data;
|
||||
|
||||
return handler;
|
||||
}
|
||||
|
@ -151,7 +153,7 @@ e_fm_mime_handler_free(E_Fm_Mime_Handler *handler)
|
|||
}
|
||||
|
||||
/* associate a certain mime type with a handler */
|
||||
EAPI int
|
||||
EAPI Evas_Bool
|
||||
e_fm_mime_handler_mime_add(E_Fm_Mime_Handler *handler, const char *mime)
|
||||
{
|
||||
Evas_List *handlers = NULL;
|
||||
|
@ -175,7 +177,7 @@ e_fm_mime_handler_mime_add(E_Fm_Mime_Handler *handler, const char *mime)
|
|||
}
|
||||
|
||||
/* associate a certain glob with a handler */
|
||||
EAPI int
|
||||
EAPI Evas_Bool
|
||||
e_fm_mime_handler_glob_add(E_Fm_Mime_Handler *handler, const char *glob)
|
||||
{
|
||||
Evas_List *handlers = NULL;
|
||||
|
@ -198,6 +200,28 @@ e_fm_mime_handler_glob_add(E_Fm_Mime_Handler *handler, const char *glob)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* call a certain handler */
|
||||
EAPI Evas_Bool
|
||||
e_fm_mime_handler_call(E_Fm_Mime_Handler *handler, Evas_Object *obj, const char *path)
|
||||
{
|
||||
if (!handler || !obj || !path || !handler->action_func)
|
||||
return 0;
|
||||
|
||||
if (handler->test_func)
|
||||
{
|
||||
if (handler->test_func(obj, path, handler->test_data))
|
||||
{
|
||||
handler->action_func(obj, path, handler->action_data);
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
return 0;
|
||||
}
|
||||
|
||||
handler->action_func(obj, path, handler->action_data);
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* local subsystem functions */
|
||||
static Evas_Bool
|
||||
_e_fm_mime_icon_foreach(Evas_Hash *hash, const char *key, void *data, void *fdata)
|
||||
|
|
|
@ -14,16 +14,20 @@ struct _E_Fm_Mime_Handler
|
|||
const char *label, *icon_group;
|
||||
void (*action_func) (Evas_Object *obj, const char *path, void *data);
|
||||
int (*test_func) (Evas_Object *obj, const char *path, void *data);
|
||||
void *action_data;
|
||||
void *test_data;
|
||||
};
|
||||
|
||||
EAPI const char *e_fm_mime_filename_get(const char *fname);
|
||||
EAPI const char *e_fm_mime_icon_get(const char *mime);
|
||||
EAPI void e_fm_mime_icon_cache_flush(void);
|
||||
|
||||
EAPI E_Fm_Mime_Handler *e_fm_mime_handler_new(const char *label, const char *icon_group, void (*action_func) (Evas_Object *obj, const char *path, void *data), int (test_func) (Evas_Object *obj, const char *path, void *data));
|
||||
EAPI E_Fm_Mime_Handler *e_fm_mime_handler_new(const char *label, const char *icon_group, void (*action_func) (Evas_Object *obj, const char *path, void *data), void *action_data, int (test_func) (Evas_Object *obj, const char *path, void *data), void *test_data);
|
||||
EAPI void e_fm_mime_handler_free(E_Fm_Mime_Handler *handler);
|
||||
EAPI int e_fm_mime_handler_mime_add(E_Fm_Mime_Handler *handler, const char *mime);
|
||||
EAPI int e_fm_mime_handler_glob_add(E_Fm_Mime_Handler *handler, const char *glob);
|
||||
EAPI Evas_Bool e_fm_mime_handler_mime_add(E_Fm_Mime_Handler *handler, const char *mime);
|
||||
EAPI Evas_Bool e_fm_mime_handler_glob_add(E_Fm_Mime_Handler *handler, const char *glob);
|
||||
EAPI Evas_Bool e_fm_mime_handler_call(E_Fm_Mime_Handler *handler, Evas_Object *obj, const char *path);
|
||||
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue