add function for cloning an e_order

SVN revision: 79683
This commit is contained in:
Mike Blumenkrantz 2012-11-26 09:36:11 +00:00
parent 4d92a1de3c
commit d8edcec5f1
2 changed files with 26 additions and 0 deletions

View File

@ -75,6 +75,31 @@ e_order_new(const char *path)
return eo;
}
EAPI E_Order *
e_order_clone(const E_Order *eo)
{
E_Order *eoc;
Eina_List *l;
Efreet_Desktop *desktop;
E_OBJECT_CHECK_RETURN(eo, NULL);
E_OBJECT_TYPE_CHECK_RETURN(eo, E_ORDER_TYPE, NULL);
eoc = E_OBJECT_ALLOC(E_Order, E_ORDER_TYPE, _e_order_free);
if (!eoc) return NULL;
eoc->path = eina_stringshare_ref(eo->path);
EINA_LIST_FOREACH(eo->desktops, l, desktop)
{
efreet_desktop_ref(desktop);
eoc->desktops = eina_list_append(eoc->desktops, desktop);
}
eoc->monitor = ecore_file_monitor_add(eoc->path, _e_order_cb_monitor, eoc);
orders = eina_list_append(orders, eoc);
return eoc;
}
EAPI void
e_order_update_callback_set(E_Order *eo, void (*cb)(void *data, E_Order *eo), void *data)
{

View File

@ -35,6 +35,7 @@ EAPI void e_order_prepend_relative(E_Order *eo, Efreet_Desktop *desktop, Efreet_
EAPI void e_order_files_append(E_Order *eo, Eina_List *files);
EAPI void e_order_files_prepend_relative(E_Order *eo, Eina_List *files, Efreet_Desktop *before);
EAPI void e_order_clear(E_Order *eo);
EAPI E_Order *e_order_clone(const E_Order *eo);
#endif
#endif