|
|
|
@ -121,8 +121,10 @@ static Evas_Hash *_glob_handlers = NULL; |
|
|
|
|
/* create (allocate), set properties, and return a new mime handler */ |
|
|
|
|
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_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,10 +136,10 @@ 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; |
|
|
|
@ -197,7 +199,29 @@ 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) |
|
|
|
|