2016-10-28 11:26:28 -07:00
|
|
|
#include "luncher.h"
|
2017-02-27 18:57:18 -08:00
|
|
|
|
|
|
|
#define CONFIG_VERSION 2
|
|
|
|
|
2016-10-28 11:26:28 -07:00
|
|
|
static E_Config_DD *conf_edd = NULL;
|
|
|
|
static E_Config_DD *conf_item_edd = NULL;
|
|
|
|
Eina_List *luncher_instances = NULL;
|
|
|
|
Config *luncher_config = NULL;
|
|
|
|
|
|
|
|
EINTERN void
|
|
|
|
luncher_init(void)
|
|
|
|
{
|
2017-02-27 18:57:18 -08:00
|
|
|
Eina_List *l;
|
|
|
|
Config_Item *ci;
|
|
|
|
|
2016-10-28 11:26:28 -07:00
|
|
|
conf_item_edd = E_CONFIG_DD_NEW("Luncher_Config_Item", Config_Item);
|
|
|
|
#undef T
|
|
|
|
#undef D
|
|
|
|
#define T Config_Item
|
|
|
|
#define D conf_item_edd
|
|
|
|
E_CONFIG_VAL(D, T, id, INT);
|
2017-02-27 18:57:18 -08:00
|
|
|
E_CONFIG_VAL(D, T, version, INT);
|
2017-06-09 12:21:12 -07:00
|
|
|
E_CONFIG_VAL(D, T, preview_size, INT);
|
2016-10-28 11:26:28 -07:00
|
|
|
E_CONFIG_VAL(D, T, dir, STR);
|
2017-02-27 18:57:18 -08:00
|
|
|
E_CONFIG_VAL(D, T, type, INT);
|
2017-12-04 08:35:24 -08:00
|
|
|
E_CONFIG_VAL(D, T, hide_tooltips, INT);
|
2016-10-28 11:26:28 -07:00
|
|
|
|
|
|
|
conf_edd = E_CONFIG_DD_NEW("Luncher_Config", Config);
|
|
|
|
#undef T
|
|
|
|
#undef D
|
|
|
|
#define T Config
|
|
|
|
#define D conf_edd
|
|
|
|
E_CONFIG_LIST(D, T, items, conf_item_edd);
|
|
|
|
|
|
|
|
luncher_config = e_config_domain_load("module.luncher", conf_edd);
|
|
|
|
|
|
|
|
if (!luncher_config)
|
|
|
|
{
|
|
|
|
luncher_config = E_NEW(Config, 1);
|
|
|
|
ci = E_NEW(Config_Item, 1);
|
|
|
|
ci->id = 0;
|
2017-02-27 18:57:18 -08:00
|
|
|
ci->version = CONFIG_VERSION;
|
2017-06-09 12:21:12 -07:00
|
|
|
ci->preview_size = 64;
|
2016-10-28 11:26:28 -07:00
|
|
|
ci->dir = eina_stringshare_add("default");
|
2017-02-27 18:57:18 -08:00
|
|
|
ci->type = E_LUNCHER_MODULE_FULL;
|
2017-12-04 08:35:24 -08:00
|
|
|
ci->hide_tooltips = 0;
|
2016-10-28 11:26:28 -07:00
|
|
|
luncher_config->items = eina_list_append(luncher_config->items, ci);
|
|
|
|
}
|
2017-02-27 18:57:18 -08:00
|
|
|
EINA_LIST_FOREACH(luncher_config->items, l, ci)
|
|
|
|
{
|
|
|
|
if (ci->version < CONFIG_VERSION)
|
|
|
|
{
|
|
|
|
ci->version = CONFIG_VERSION;
|
|
|
|
ci->type = E_LUNCHER_MODULE_FULL;
|
|
|
|
}
|
|
|
|
}
|
2016-10-28 11:26:28 -07:00
|
|
|
e_gadget_type_add("Luncher Bar", bar_create, NULL);
|
2016-11-22 19:17:22 -08:00
|
|
|
e_gadget_type_add("Luncher Grid", grid_create, NULL);
|
2016-10-28 11:26:28 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
EINTERN void
|
|
|
|
luncher_shutdown(void)
|
|
|
|
{
|
|
|
|
if (luncher_config)
|
|
|
|
{
|
|
|
|
Config_Item *ci;
|
|
|
|
EINA_LIST_FREE(luncher_config->items, ci)
|
|
|
|
{
|
|
|
|
eina_stringshare_del(ci->dir);
|
|
|
|
free(ci);
|
|
|
|
}
|
|
|
|
E_FREE(luncher_config);
|
|
|
|
}
|
|
|
|
E_CONFIG_DD_FREE(conf_edd);
|
|
|
|
E_CONFIG_DD_FREE(conf_item_edd);
|
|
|
|
|
|
|
|
e_gadget_type_del("Luncher Bar");
|
2016-11-22 19:17:22 -08:00
|
|
|
e_gadget_type_del("Luncher Grid");
|
2016-10-28 11:26:28 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
E_API E_Module_Api e_modapi =
|
|
|
|
{
|
|
|
|
E_MODULE_API_VERSION,
|
|
|
|
"Luncher"
|
|
|
|
};
|
|
|
|
|
|
|
|
E_API void *
|
|
|
|
e_modapi_init(E_Module *m)
|
|
|
|
{
|
|
|
|
luncher_init();
|
|
|
|
|
2017-07-12 13:43:39 -07:00
|
|
|
luncher_config->module = m;
|
2016-10-28 11:26:28 -07:00
|
|
|
return m;
|
|
|
|
}
|
|
|
|
|
|
|
|
E_API int
|
|
|
|
e_modapi_shutdown(E_Module *m EINA_UNUSED)
|
|
|
|
{
|
|
|
|
luncher_shutdown();
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
E_API int
|
|
|
|
e_modapi_save(E_Module *m EINA_UNUSED)
|
|
|
|
{
|
|
|
|
e_config_domain_save("module.luncher", conf_edd, luncher_config);
|
|
|
|
return 1;
|
|
|
|
}
|