*/
/* local subsystem functions */
-static void _e_module_free(E_Module *m);
-static void _e_module_dialog_disable_show(const char *title, const char *body, E_Module *m);
-static void _e_module_cb_dialog_disable(void *data, E_Dialog *dia);
-static void _e_module_event_update_free(void *data, void *event);
+static void _e_module_free(E_Module *m);
+static void _e_module_dialog_disable_show(const char *title, const char *body, E_Module *m);
+static void _e_module_cb_dialog_disable(void *data, E_Dialog *dia);
+static void _e_module_event_update_free(void *data, void *event);
static Eina_Bool _e_module_cb_idler(void *data);
-static int _e_module_sort_priority(const void *d1, const void *d2);
+static int _e_module_sort_priority(const void *d1, const void *d2);
/* local subsystem globals */
static Eina_List *_e_modules = NULL;
/* do not use EINA_LIST_FREE! e_object_del modifies list */
if (x_fatal)
- e_module_save_all();
+ e_module_save_all();
else
{
while (_e_modules)
EINA_LIST_FOREACH(e_config->modules, l, em)
{
- if (!em) continue;
- if ((em->delayed) && (em->enabled))
- {
- if (!_e_module_idler)
- _e_module_idler = ecore_idler_add(_e_module_cb_idler, NULL);
- _e_modules_delayed =
- eina_list_append(_e_modules_delayed,
- eina_stringshare_add(em->name));
- }
- else if (em->enabled)
- {
- E_Module *m;
-
- if (!em->name) continue;
-
- e_util_env_set("E_MODULE_LOAD", em->name);
- snprintf (buf, sizeof(buf), _("Loading Module: %s"), em->name);
- e_init_status_set(buf);
-
- m = e_module_new(em->name);
- if (m) e_module_enable(m);
- }
+ if (!em) continue;
+ if ((em->delayed) && (em->enabled))
+ {
+ if (!_e_module_idler)
+ _e_module_idler = ecore_idler_add(_e_module_cb_idler, NULL);
+ _e_modules_delayed =
+ eina_list_append(_e_modules_delayed,
+ eina_stringshare_add(em->name));
+ }
+ else if (em->enabled)
+ {
+ E_Module *m;
+
+ if (!em->name) continue;
+
+ e_util_env_set("E_MODULE_LOAD", em->name);
+ snprintf(buf, sizeof(buf), _("Loading Module: %s"), em->name);
+ e_init_status_set(buf);
+
+ m = e_module_new(em->name);
+ if (m) e_module_enable(m);
+ }
}
if (!_e_modules_delayed)
m = E_OBJECT_ALLOC(E_Module, E_MODULE_TYPE, _e_module_free);
if (name[0] != '/')
{
- snprintf(buf, sizeof(buf), "%s/%s/module.so", name, MODULE_ARCH);
- modpath = e_path_find(path_modules, buf);
+ snprintf(buf, sizeof(buf), "%s/%s/module.so", name, MODULE_ARCH);
+ modpath = e_path_find(path_modules, buf);
}
else
modpath = eina_stringshare_add(name);
if (!modpath)
{
- snprintf(body, sizeof(body),
- _("There was an error loading module named: %s<br>"
- "No module named %s could be found in the<br>"
- "module search directories.<br>"), name, buf);
- _e_module_dialog_disable_show(_("Error loading Module"), body, m);
- m->error = 1;
- goto init_done;
+ snprintf(body, sizeof(body),
+ _("There was an error loading module named: %s<br>"
+ "No module named %s could be found in the<br>"
+ "module search directories.<br>"), name, buf);
+ _e_module_dialog_disable_show(_("Error loading Module"), body, m);
+ m->error = 1;
+ goto init_done;
}
m->handle = dlopen(modpath, (RTLD_NOW | RTLD_GLOBAL));
if (!m->handle)
{
- snprintf(body, sizeof(body),
- _("There was an error loading module named: %s<br>"
- "The full path to this module is:<br>"
- "%s<br>"
- "The error reported was:<br>"
- "%s<br>"), name, buf, dlerror());
- _e_module_dialog_disable_show(_("Error loading Module"), body, m);
- m->error = 1;
- goto init_done;
+ snprintf(body, sizeof(body),
+ _("There was an error loading module named: %s<br>"
+ "The full path to this module is:<br>"
+ "%s<br>"
+ "The error reported was:<br>"
+ "%s<br>"), name, buf, dlerror());
+ _e_module_dialog_disable_show(_("Error loading Module"), body, m);
+ m->error = 1;
+ goto init_done;
}
m->api = dlsym(m->handle, "e_modapi");
m->func.init = dlsym(m->handle, "e_modapi_init");
if ((!m->func.init) || (!m->func.shutdown) || (!m->func.save) || (!m->api))
{
- snprintf(body, sizeof(body),
- _("There was an error loading module named: %s<br>"
- "The full path to this module is:<br>"
- "%s<br>"
- "The error reported was:<br>"
- "%s<br>"),
- name, buf, _("Module does not contain all needed functions"));
- _e_module_dialog_disable_show(_("Error loading Module"), body, m);
- m->api = NULL;
- m->func.init = NULL;
- m->func.shutdown = NULL;
- m->func.save = NULL;
-
- dlclose(m->handle);
- m->handle = NULL;
- m->error = 1;
- goto init_done;
+ snprintf(body, sizeof(body),
+ _("There was an error loading module named: %s<br>"
+ "The full path to this module is:<br>"
+ "%s<br>"
+ "The error reported was:<br>"
+ "%s<br>"),
+ name, buf, _("Module does not contain all needed functions"));
+ _e_module_dialog_disable_show(_("Error loading Module"), body, m);
+ m->api = NULL;
+ m->func.init = NULL;
+ m->func.shutdown = NULL;
+ m->func.save = NULL;
+
+ dlclose(m->handle);
+ m->handle = NULL;
+ m->error = 1;
+ goto init_done;
}
if (m->api->version < E_MODULE_API_VERSION)
{
- snprintf(body, sizeof(body),
- _("Module API Error<br>Error initializing Module: %s<br>"
- "It requires a minimum module API version of: %i.<br>"
- "The module API advertized by Enlightenment is: %i.<br>"),
- _(m->api->name), m->api->version, E_MODULE_API_VERSION);
-
- snprintf(title, sizeof(title), _("Enlightenment %s Module"),
- _(m->api->name));
-
- _e_module_dialog_disable_show(title, body, m);
- m->api = NULL;
- m->func.init = NULL;
- m->func.shutdown = NULL;
- m->func.save = NULL;
- dlclose(m->handle);
- m->handle = NULL;
- m->error = 1;
- goto init_done;
+ snprintf(body, sizeof(body),
+ _("Module API Error<br>Error initializing Module: %s<br>"
+ "It requires a minimum module API version of: %i.<br>"
+ "The module API advertized by Enlightenment is: %i.<br>"),
+ _(m->api->name), m->api->version, E_MODULE_API_VERSION);
+
+ snprintf(title, sizeof(title), _("Enlightenment %s Module"),
+ _(m->api->name));
+
+ _e_module_dialog_disable_show(title, body, m);
+ m->api = NULL;
+ m->func.init = NULL;
+ m->func.shutdown = NULL;
+ m->func.save = NULL;
+ dlclose(m->handle);
+ m->handle = NULL;
+ m->error = 1;
+ goto init_done;
}
init_done:
m->name = eina_stringshare_add(name);
if (modpath)
{
- s = ecore_file_dir_get(modpath);
- if (s)
- {
- char *s2;
-
- s2 = ecore_file_dir_get(s);
- free(s);
- if (s2)
- {
- m->dir = eina_stringshare_add(s2);
- free(s2);
- }
- }
+ s = ecore_file_dir_get(modpath);
+ if (s)
+ {
+ char *s2;
+
+ s2 = ecore_file_dir_get(s);
+ free(s);
+ if (s2)
+ {
+ m->dir = eina_stringshare_add(s2);
+ free(s2);
+ }
+ }
}
EINA_LIST_FOREACH(e_config->modules, l, em)
{
- if (!em) continue;
- if (!e_util_strcmp(em->name, m->name))
- {
- in_list = 1;
- break;
- }
+ if (!em) continue;
+ if (!e_util_strcmp(em->name, m->name))
+ {
+ in_list = 1;
+ break;
+ }
}
if (!in_list)
{
- E_Config_Module *module;
+ E_Config_Module *module;
- module = E_NEW(E_Config_Module, 1);
- module->name = eina_stringshare_add(m->name);
- module->enabled = 0;
- e_config->modules = eina_list_append(e_config->modules, module);
- e_config_save_queue();
+ module = E_NEW(E_Config_Module, 1);
+ module->name = eina_stringshare_add(m->name);
+ module->enabled = 0;
+ e_config->modules = eina_list_append(e_config->modules, module);
+ e_config_save_queue();
}
if (modpath) eina_stringshare_del(modpath);
return m;
m->data = m->func.init(m);
if (m->data)
{
- m->enabled = 1;
- EINA_LIST_FOREACH(e_config->modules, l, em)
- {
- if (!em) continue;
- if (!e_util_strcmp(em->name, m->name))
- {
- em->enabled = 1;
- e_config_save_queue();
-
- ev = E_NEW(E_Event_Module_Update, 1);
- ev->name = strdup(em->name);
- ev->enabled = 1;
- ecore_event_add(E_EVENT_MODULE_UPDATE, ev,
- _e_module_event_update_free, NULL);
- break;
- }
- }
- return 1;
+ m->enabled = 1;
+ EINA_LIST_FOREACH(e_config->modules, l, em)
+ {
+ if (!em) continue;
+ if (!e_util_strcmp(em->name, m->name))
+ {
+ em->enabled = 1;
+ e_config_save_queue();
+
+ ev = E_NEW(E_Event_Module_Update, 1);
+ ev->name = strdup(em->name);
+ ev->enabled = 1;
+ ecore_event_add(E_EVENT_MODULE_UPDATE, ev,
+ _e_module_event_update_free, NULL);
+ break;
+ }
+ }
+ return 1;
}
return 0;
}
m->enabled = 0;
EINA_LIST_FOREACH(e_config->modules, l, em)
{
- if (!em) continue;
- if (!e_util_strcmp(em->name, m->name))
- {
- em->enabled = 0;
- e_config_save_queue();
-
- ev = E_NEW(E_Event_Module_Update, 1);
- ev->name = strdup(em->name);
- ev->enabled = 0;
- ecore_event_add(E_EVENT_MODULE_UPDATE, ev,
- _e_module_event_update_free, NULL);
- break;
- }
+ if (!em) continue;
+ if (!e_util_strcmp(em->name, m->name))
+ {
+ em->enabled = 0;
+ e_config_save_queue();
+
+ ev = E_NEW(E_Event_Module_Update, 1);
+ ev->name = strdup(em->name);
+ ev->enabled = 0;
+ ecore_event_add(E_EVENT_MODULE_UPDATE, ev,
+ _e_module_event_update_free, NULL);
+ break;
+ }
}
return ret;
}
const char *icon = NULL;
dia = e_dialog_new(e_container_current_get(e_manager_current_get()),
- "E", "_module_dialog");
+ "E", "_module_dialog");
if (!dia) return;
e_dialog_title_set(dia, title);
if (m)
{
- Efreet_Desktop *desktop;
-
- snprintf(buf, sizeof(buf), "%s/module.desktop", e_module_dir_get(m));
-
- desktop = efreet_desktop_new(buf);
- if ((desktop) && (desktop->icon))
- {
- icon = efreet_icon_path_find(e_config->icon_theme, desktop->icon, 64);
- if (!icon)
- {
- snprintf(buf, sizeof(buf), "%s/%s.edj",
- e_module_dir_get(m), desktop->icon);
+ Efreet_Desktop *desktop;
+
+ snprintf(buf, sizeof(buf), "%s/module.desktop", e_module_dir_get(m));
+
+ desktop = efreet_desktop_new(buf);
+ if ((desktop) && (desktop->icon))
+ {
+ icon = efreet_icon_path_find(e_config->icon_theme, desktop->icon, 64);
+ if (!icon)
+ {
+ snprintf(buf, sizeof(buf), "%s/%s.edj",
+ e_module_dir_get(m), desktop->icon);
dia->icon_object = e_util_icon_add(buf, e_win_evas_get(dia->win));
- }
+ }
else
dia->icon_object = e_util_icon_add(icon, e_win_evas_get(dia->win));
- edje_extern_object_min_size_set(dia->icon_object, 64, 64);
- edje_object_part_swallow(dia->bg_object, "e.swallow.icon", dia->icon_object);
- evas_object_show(dia->icon_object);
- }
- if (desktop) efreet_desktop_free(desktop);
+ edje_extern_object_min_size_set(dia->icon_object, 64, 64);
+ edje_object_part_swallow(dia->bg_object, "e.swallow.icon", dia->icon_object);
+ evas_object_show(dia->icon_object);
+ }
+ if (desktop) efreet_desktop_free(desktop);
}
else
e_dialog_icon_set(dia, "preferences-plugin", 64);
EINA_LIST_FOREACH(e_config->modules, l, em)
{
- if (!em) continue;
- if (!e_util_strcmp(m->name, em->name))
- {
- if (em->delayed != delayed)
- {
- em->delayed = delayed;
- e_config_save_queue();
- }
- break;
- }
+ if (!em) continue;
+ if (!e_util_strcmp(m->name, em->name))
+ {
+ if (em->delayed != delayed)
+ {
+ em->delayed = delayed;
+ e_config_save_queue();
+ }
+ break;
+ }
}
}
EINA_LIST_FOREACH(e_config->modules, l, em)
{
- if (!em) continue;
- if (!e_util_strcmp(m->name, em->name))
- {
- if (em->priority != priority)
- {
- em->priority = priority;
- e_config_save_queue();
- }
- break;
- }
+ if (!em) continue;
+ if (!e_util_strcmp(m->name, em->name))
+ {
+ if (em->priority != priority)
+ {
+ em->priority = priority;
+ e_config_save_queue();
+ }
+ break;
+ }
}
}
EINA_LIST_FOREACH(e_config->modules, l, em)
{
- if (!em) continue;
- if (!e_util_strcmp(em->name, m->name))
- {
- e_config->modules = eina_list_remove(e_config->modules, em);
- if (em->name) eina_stringshare_del(em->name);
- E_FREE(em);
- break;
- }
+ if (!em) continue;
+ if (!e_util_strcmp(em->name, m->name))
+ {
+ e_config->modules = eina_list_remove(e_config->modules, em);
+ if (em->name) eina_stringshare_del(em->name);
+ E_FREE(em);
+ break;
+ }
}
if ((m->enabled) && (!m->error))
{
- m->func.save(m);
- m->func.shutdown(m);
+ m->func.save(m);
+ m->func.shutdown(m);
}
if (m->name) eina_stringshare_del(m->name);
if (m->dir) eina_stringshare_del(m->dir);
printf("MODULE ERR:\n%s\n", body);
dia = e_dialog_new(e_container_current_get(e_manager_current_get()),
- "E", "_module_unload_dialog");
+ "E", "_module_unload_dialog");
if (!dia) return;
snprintf(buf, sizeof(buf), "%s<br>%s", body,
- _("Would you like to unload this module?<br>"));
+ _("Would you like to unload this module?<br>"));
e_dialog_title_set(dia, title);
e_dialog_icon_set(dia, "enlightenment", 64);
{
if (_e_modules_delayed)
{
- const char *name;
- E_Module *m;
-
- name = eina_list_data_get(_e_modules_delayed);
- _e_modules_delayed =
- eina_list_remove_list(_e_modules_delayed, _e_modules_delayed);
- m = NULL;
- if (name) m = e_module_new(name);
- if (m) e_module_enable(m);
- eina_stringshare_del(name);
+ const char *name;
+ E_Module *m;
+
+ name = eina_list_data_get(_e_modules_delayed);
+ _e_modules_delayed =
+ eina_list_remove_list(_e_modules_delayed, _e_modules_delayed);
+ m = NULL;
+ if (name) m = e_module_new(name);
+ if (m) e_module_enable(m);
+ eina_stringshare_del(name);
}
if (_e_modules_delayed)
{
- e_util_wakeup();
- return ECORE_CALLBACK_RENEW;
+ e_util_wakeup();
+ return ECORE_CALLBACK_RENEW;
}
ecore_event_add(E_EVENT_MODULE_INIT_END, NULL, NULL, NULL);
m1 = d1;
m2 = d2;
- return (m2->priority - m1->priority);
+ return m2->priority - m1->priority;
}
static void
E_FREE(ev->name);
E_FREE(ev);
}
+