enlightenment/src/modules/quickaccess/e_mod_main.c

96 lines
2.4 KiB
C

#include "e_mod_main.h"
EINTERN int _e_quick_access_log_dom = -1;
static E_Config_DD *conf_edd = NULL;
Mod *qa_mod = NULL;
Config *qa_config = NULL;
/**
* in priority order:
*
* @todo config (see e_mod_config.c)
*
* @todo custom border based on E_Quick_Access_Entry_Mode/E_Gadcon_Orient
*
* @todo show/hide effects:
* - fullscreen
* - centered
* - slide from top, bottom, left or right
*
* @todo match more than one, doing tabs (my idea is to do another
* tabbing module first, experiment with that, maybe use/reuse
* it here)
*/
E_API E_Module_Api e_modapi = {E_MODULE_API_VERSION, "Quickaccess"};
//////////////////////////////
static void
_e_modapi_shutdown(void)
{
e_qa_shutdown();
conf_edd = e_qa_config_dd_free();
eina_log_domain_unregister(_e_quick_access_log_dom);
_e_quick_access_log_dom = -1;
e_configure_registry_item_del("launcher/quickaccess");
e_configure_registry_category_del("launcher");
e_qa_config_free(qa_config);
E_FREE(qa_mod);
qa_config = NULL;
}
E_API void *
e_modapi_init(E_Module *m)
{
e_configure_registry_category_add("launcher", 80, _("Launcher"), NULL,
"modules-launcher");
e_configure_registry_item_add("launcher/quickaccess", 1, _("Quickaccess"), NULL,
"preferences-applications-personal", e_int_config_qa_module);
qa_mod = E_NEW(Mod, 1);
qa_mod->module = m;
m->data = qa_mod;
conf_edd = e_qa_config_dd_new();
qa_config = e_config_domain_load("module.quickaccess", conf_edd);
if (qa_config)
{
if (!e_util_module_config_check(_("Quickaccess"), qa_config->config_version, MOD_CONFIG_FILE_VERSION))
{
e_qa_config_free(qa_config);
qa_config = NULL;
}
}
if (!qa_config) qa_config = e_qa_config_new();
qa_config->config_version = MOD_CONFIG_FILE_VERSION;
_e_quick_access_log_dom = eina_log_domain_register("quickaccess", EINA_COLOR_ORANGE);
eina_log_domain_level_set("quickaccess", EINA_LOG_LEVEL_ERR);
if (!e_qa_init())
{
_e_modapi_shutdown();
return NULL;
}
return m;
}
E_API int
e_modapi_shutdown(E_Module *m EINA_UNUSED)
{
_e_modapi_shutdown();
return 1;
}
E_API int
e_modapi_save(E_Module *m EINA_UNUSED)
{
e_config_domain_save("module.quickaccess", conf_edd, qa_config);
return 1;
}