Reorder
authorSebastian Dransfeld <sd@tango.flipp.net>
Fri, 5 Nov 2010 15:36:41 +0000 (15:36 +0000)
committerSebastian Dransfeld <sd@tango.flipp.net>
Fri, 5 Nov 2010 15:36:41 +0000 (15:36 +0000)
SVN revision: 54183

src/bin/e_configure.c

index 45a6f50..b47398f 100644 (file)
 #include "e.h"
 
+static void _e_configure_menu_module_item_cb(void *data, E_Menu *m, E_Menu_Item *mi);
+static void _e_configure_menu_add(void *data, E_Menu *m);
 static void _e_configure_efreet_desktop_cleanup(void);
 static void _e_configure_efreet_desktop_update(void);
 static Eina_Bool _e_configure_cb_efreet_desktop_cache_update(void *data, int type, void *event);
 static void _e_configure_registry_item_full_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params), void (*generic_func) (E_Container *con, const char *params), Efreet_Desktop *desktop);
 
+static void _configure_job(void *data);
+static Eina_Bool _configure_init_timer(void *data);
+
 EAPI Eina_List *e_configure_registry = NULL;
 
 static Eina_List *handlers = NULL;
 static E_Int_Menu_Augmentation *maug = NULL;
 static Ecore_Job *update_job = NULL;
 
+static struct {
+   void (*func) (const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop);
+   const char *data;
+} custom_desktop_exec = { NULL, NULL };
+
+EAPI void
+e_configure_init(void)
+{
+   e_configure_registry_category_add("extensions", 90, _("Extensions"), NULL, "preferences-extensions");
+   e_configure_registry_item_add("extensions/modules", 10, _("Modules"), NULL, "preferences-plugin", e_int_config_modules);
+
+   maug = e_int_menus_menu_augmentation_add_sorted
+     ("config/1", _("Modules"), _e_configure_menu_add, NULL, NULL, NULL);
+
+   handlers = eina_list_append
+     (handlers, ecore_event_handler_add
+         (EFREET_EVENT_DESKTOP_CACHE_UPDATE, _e_configure_cb_efreet_desktop_cache_update, NULL));
+   if (update_job)
+      {
+         ecore_job_del(update_job);
+         update_job = NULL;
+      }
+   ecore_timer_add(0.0, _configure_init_timer, NULL);
+}
+
+EAPI void
+e_configure_registry_call(const char *path, E_Container *con, const char *params)
+{
+   E_Configure_Cat *ecat;
+   Eina_List *l;
+   char *cat;
+   const char *item;
+
+   /* path is "category/item" */
+   cat = ecore_file_dir_get(path);
+   if (!cat) return;
+   item = ecore_file_file_get(path);
+   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
+     if (!strcmp(cat, ecat->cat))
+       {
+         E_Configure_It *eci;
+         Eina_List *ll;
+
+         EINA_LIST_FOREACH(ecat->items, ll, eci)
+           if (!strcmp(item, eci->item))
+             {
+                if (eci->func) eci->func(con, params);
+                else if (eci->generic_func) eci->generic_func(con, params);
+                else if (eci->desktop)
+                  {
+                     if (custom_desktop_exec.func)
+                       custom_desktop_exec.func(custom_desktop_exec.data,
+                                                con, params, eci->desktop);
+                     else
+                       e_exec(e_util_zone_current_get(con->manager),
+                              eci->desktop, NULL, NULL, "config");
+                  }
+                break;
+             }
+         break;
+       }
+   free(cat);
+}
+
+EAPI void
+e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params))
+{
+   _e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL);
+}
+
+EAPI void
+e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Container *con, const char *params))
+{
+   _e_configure_registry_item_full_add(path, pri, label, icon_file, icon, NULL, generic_func, NULL);
+}
+
+EAPI void
+e_configure_registry_item_del(const char *path)
+{
+   E_Configure_Cat *ecat;
+   Eina_List *l;
+   const char *item;
+   char *cat;
+
+   /* path is "category/item" */
+   cat = ecore_file_dir_get(path);
+   if (!cat) return;
+   item = ecore_file_file_get(path);
+
+   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
+     if (!strcmp(cat, ecat->cat))
+       {
+         E_Configure_It *eci;
+         Eina_List *ll;
+
+         EINA_LIST_FOREACH(ecat->items, ll, eci)
+           if (!strcmp(item, eci->item))
+             {
+                ecat->items = eina_list_remove_list(ecat->items, ll);
+
+                eina_stringshare_del(eci->item);
+                eina_stringshare_del(eci->label);
+                eina_stringshare_del(eci->icon);
+                if (eci->icon_file) eina_stringshare_del(eci->icon_file);
+                if (eci->desktop) efreet_desktop_free(eci->desktop);
+                free(eci);
+                break;
+             }
+         break;
+       }
+   free(cat);
+}
+
+EAPI void
+e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon)
+{
+   E_Configure_Cat *ecat2;
+   E_Configure_Cat *ecat;
+   Eina_List *l;
+
+   /* if it exists - ignore this */
+   EINA_LIST_FOREACH(e_configure_registry, l, ecat2)
+     if (!strcmp(ecat2->cat, path)) return;
+
+   ecat = E_NEW(E_Configure_Cat, 1);
+   if (!ecat) return;
+
+   ecat->cat = eina_stringshare_add(path);
+   ecat->pri = pri;
+   ecat->label = eina_stringshare_add(label);
+   if (icon_file) ecat->icon_file = eina_stringshare_add(icon_file);
+   if (icon) ecat->icon = eina_stringshare_add(icon);
+   EINA_LIST_FOREACH(e_configure_registry, l, ecat2)
+     if (ecat2->pri > ecat->pri)
+       {
+         e_configure_registry = 
+            eina_list_prepend_relative_list(e_configure_registry, ecat, l);
+         return;
+       }
+   e_configure_registry = eina_list_append(e_configure_registry, ecat);
+}
+
+EAPI void
+e_configure_registry_category_del(const char *path)
+{
+   E_Configure_Cat *ecat;
+   Eina_List *l;
+   char *cat;
+
+   cat = ecore_file_dir_get(path);
+   if (!cat) return;
+   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
+     if (!strcmp(cat, ecat->cat))
+       {
+         if (ecat->items) break;
+         e_configure_registry = eina_list_remove_list(e_configure_registry, l);
+         eina_stringshare_del(ecat->cat);
+         eina_stringshare_del(ecat->label);
+         if (ecat->icon) eina_stringshare_del(ecat->icon);
+         if (ecat->icon_file) eina_stringshare_del(ecat->icon_file);
+         free(ecat);
+         break;
+       }
+   free(cat);
+}
+
+EAPI void
+e_configure_registry_custom_desktop_exec_callback_set(void (*func) (const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop), const void *data)
+{
+   custom_desktop_exec.func = func;
+   custom_desktop_exec.data = data;
+}
+
+EAPI int
+e_configure_registry_exists(const char *path)
+{
+   E_Configure_Cat *ecat;
+   Eina_List *l;
+   char *cat;
+   const char *item;
+   int ret = 0;
+
+   /* path is "category/item" */
+   cat = ecore_file_dir_get(path);
+   if (!cat) return 0;
+   item = ecore_file_file_get(path);
+   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
+     if (!strcmp(cat, ecat->cat))
+       {
+         E_Configure_It *eci;
+         Eina_List *ll;
+
+         if (!item)
+           {
+              ret = 1;
+              break;
+           }
+         EINA_LIST_FOREACH(ecat->items, ll, eci)
+           if (!strcmp(item, eci->item))
+             {
+                ret = 1;
+                break;
+             }
+         break;
+       }
+
+   free(cat);
+   return ret;
+}
+
 static void
 _e_configure_menu_module_item_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__)
 {
@@ -43,26 +258,6 @@ _configure_init_timer(void *data __UNUSED__)
    return EINA_FALSE;
 }
 
-EAPI void
-e_configure_init(void)
-{
-   e_configure_registry_category_add("extensions", 90, _("Extensions"), NULL, "preferences-extensions");
-   e_configure_registry_item_add("extensions/modules", 10, _("Modules"), NULL, "preferences-plugin", e_int_config_modules);
-
-   maug = e_int_menus_menu_augmentation_add_sorted
-     ("config/1", _("Modules"), _e_configure_menu_add, NULL, NULL, NULL);
-
-   handlers = eina_list_append
-     (handlers, ecore_event_handler_add
-         (EFREET_EVENT_DESKTOP_CACHE_UPDATE, _e_configure_cb_efreet_desktop_cache_update, NULL));
-   if (update_job)
-      {
-         ecore_job_del(update_job);
-         update_job = NULL;
-      }
-   ecore_timer_add(0.0, _configure_init_timer, NULL);
-}
-
 static void
 _e_configure_efreet_desktop_cleanup(void)
 {
@@ -258,193 +453,3 @@ _e_configure_registry_item_full_add(const char *path, int pri, const char *label
    free(cat);
 }
 
-EAPI void
-e_configure_registry_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, E_Config_Dialog *(*func) (E_Container *con, const char *params))
-{
-   _e_configure_registry_item_full_add(path, pri, label, icon_file, icon, func, NULL, NULL);
-}
-
-EAPI void
-e_configure_registry_generic_item_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon, void (*generic_func) (E_Container *con, const char *params))
-{
-   _e_configure_registry_item_full_add(path, pri, label, icon_file, icon, NULL, generic_func, NULL);
-}
-
-EAPI void
-e_configure_registry_item_del(const char *path)
-{
-   E_Configure_Cat *ecat;
-   Eina_List *l;
-   const char *item;
-   char *cat;
-
-   /* path is "category/item" */
-   cat = ecore_file_dir_get(path);
-   if (!cat) return;
-   item = ecore_file_file_get(path);
-
-   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
-     if (!strcmp(cat, ecat->cat))
-       {
-         E_Configure_It *eci;
-         Eina_List *ll;
-
-         EINA_LIST_FOREACH(ecat->items, ll, eci)
-           if (!strcmp(item, eci->item))
-             {
-                ecat->items = eina_list_remove_list(ecat->items, ll);
-
-                eina_stringshare_del(eci->item);
-                eina_stringshare_del(eci->label);
-                eina_stringshare_del(eci->icon);
-                if (eci->icon_file) eina_stringshare_del(eci->icon_file);
-                if (eci->desktop) efreet_desktop_free(eci->desktop);
-                free(eci);
-                break;
-             }
-         break;
-       }
-   free(cat);
-}
-
-EAPI void
-e_configure_registry_category_add(const char *path, int pri, const char *label, const char *icon_file, const char *icon)
-{
-   E_Configure_Cat *ecat2;
-   E_Configure_Cat *ecat;
-   Eina_List *l;
-
-   /* if it exists - ignore this */
-   EINA_LIST_FOREACH(e_configure_registry, l, ecat2)
-     if (!strcmp(ecat2->cat, path)) return;
-
-   ecat = E_NEW(E_Configure_Cat, 1);
-   if (!ecat) return;
-
-   ecat->cat = eina_stringshare_add(path);
-   ecat->pri = pri;
-   ecat->label = eina_stringshare_add(label);
-   if (icon_file) ecat->icon_file = eina_stringshare_add(icon_file);
-   if (icon) ecat->icon = eina_stringshare_add(icon);
-   EINA_LIST_FOREACH(e_configure_registry, l, ecat2)
-     if (ecat2->pri > ecat->pri)
-       {
-         e_configure_registry = 
-            eina_list_prepend_relative_list(e_configure_registry, ecat, l);
-         return;
-       }
-   e_configure_registry = eina_list_append(e_configure_registry, ecat);
-}
-
-EAPI void
-e_configure_registry_category_del(const char *path)
-{
-   E_Configure_Cat *ecat;
-   Eina_List *l;
-   char *cat;
-
-   cat = ecore_file_dir_get(path);
-   if (!cat) return;
-   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
-     if (!strcmp(cat, ecat->cat))
-       {
-         if (ecat->items) break;
-         e_configure_registry = eina_list_remove_list(e_configure_registry, l);
-         eina_stringshare_del(ecat->cat);
-         eina_stringshare_del(ecat->label);
-         if (ecat->icon) eina_stringshare_del(ecat->icon);
-         if (ecat->icon_file) eina_stringshare_del(ecat->icon_file);
-         free(ecat);
-         break;
-       }
-   free(cat);
-}
-
-static struct {
-   void (*func) (const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop);
-   const char *data;
-} custom_desktop_exec = { NULL, NULL };
-
-EAPI void
-e_configure_registry_call(const char *path, E_Container *con, const char *params)
-{
-   E_Configure_Cat *ecat;
-   Eina_List *l;
-   char *cat;
-   const char *item;
-
-   /* path is "category/item" */
-   cat = ecore_file_dir_get(path);
-   if (!cat) return;
-   item = ecore_file_file_get(path);
-   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
-     if (!strcmp(cat, ecat->cat))
-       {
-         E_Configure_It *eci;
-         Eina_List *ll;
-
-         EINA_LIST_FOREACH(ecat->items, ll, eci)
-           if (!strcmp(item, eci->item))
-             {
-                if (eci->func) eci->func(con, params);
-                else if (eci->generic_func) eci->generic_func(con, params);
-                else if (eci->desktop)
-                  {
-                     if (custom_desktop_exec.func)
-                       custom_desktop_exec.func(custom_desktop_exec.data,
-                                                con, params, eci->desktop);
-                     else
-                       e_exec(e_util_zone_current_get(con->manager),
-                              eci->desktop, NULL, NULL, "config");
-                  }
-                break;
-             }
-         break;
-       }
-   free(cat);
-}
-
-
-EAPI void
-e_configure_registry_custom_desktop_exec_callback_set(void (*func) (const void *data, E_Container *con, const char *params, Efreet_Desktop *desktop), const void *data)
-{
-   custom_desktop_exec.func = func;
-   custom_desktop_exec.data = data;
-}
-
-EAPI int
-e_configure_registry_exists(const char *path)
-{
-   E_Configure_Cat *ecat;
-   Eina_List *l;
-   char *cat;
-   const char *item;
-   int ret = 0;
-
-   /* path is "category/item" */
-   cat = ecore_file_dir_get(path);
-   if (!cat) return 0;
-   item = ecore_file_file_get(path);
-   EINA_LIST_FOREACH(e_configure_registry, l, ecat)
-     if (!strcmp(cat, ecat->cat))
-       {
-         E_Configure_It *eci;
-         Eina_List *ll;
-
-         if (!item)
-           {
-              ret = 1;
-              break;
-           }
-         EINA_LIST_FOREACH(ecat->items, ll, eci)
-           if (!strcmp(item, eci->item))
-             {
-                ret = 1;
-                break;
-             }
-         break;
-       }
-
-   free(cat);
-   return ret;
-}