enlightenment_my/src/modules/pager/gadget/mod.c

109 lines
3.5 KiB
C

#include "pager.h"
static E_Config_DD *conf_edd = NULL;
EINTERN Config *pager_config;
EINTERN Evas_Object *cfg_dialog;
EINTERN Eina_List *ginstances, *ghandlers, *phandlers;
EINTERN void *
e_modapi_gadget_init(E_Module *m)
{
conf_edd = E_CONFIG_DD_NEW("Pager_Config", Config);
#undef T
#undef D
#define T Config
#define D conf_edd
E_CONFIG_VAL(D, T, popup, UINT);
E_CONFIG_VAL(D, T, popup_speed, DOUBLE);
E_CONFIG_VAL(D, T, popup_urgent, UINT);
E_CONFIG_VAL(D, T, popup_urgent_stick, UINT);
E_CONFIG_VAL(D, T, popup_urgent_speed, DOUBLE);
E_CONFIG_VAL(D, T, show_desk_names, UINT);
E_CONFIG_VAL(D, T, popup_height, INT);
E_CONFIG_VAL(D, T, popup_act_height, INT);
E_CONFIG_VAL(D, T, drag_resist, UINT);
E_CONFIG_VAL(D, T, btn_drag, UCHAR);
E_CONFIG_VAL(D, T, btn_noplace, UCHAR);
E_CONFIG_VAL(D, T, btn_desk, UCHAR);
E_CONFIG_VAL(D, T, flip_desk, UCHAR);
E_CONFIG_VAL(D, T, plain, UCHAR);
E_CONFIG_VAL(D, T, permanent_plain, UCHAR);
pager_config = e_config_domain_load("module.pager", conf_edd);
if (!pager_config)
{
pager_config = E_NEW(Config, 1);
pager_config->popup = 1;
pager_config->popup_speed = 1.0;
pager_config->popup_urgent = 0;
pager_config->popup_urgent_stick = 0;
pager_config->popup_urgent_speed = 1.5;
pager_config->show_desk_names = 0;
pager_config->popup_height = 60;
pager_config->popup_act_height = 60;
pager_config->drag_resist = 3;
pager_config->btn_drag = 1;
pager_config->btn_noplace = 2;
pager_config->btn_desk = 2;
pager_config->flip_desk = 0;
pager_config->plain = 0;
pager_config->permanent_plain = 0;
}
E_CONFIG_LIMIT(pager_config->popup, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_speed, 0.1, 10.0);
E_CONFIG_LIMIT(pager_config->popup_urgent, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_urgent_stick, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_urgent_speed, 0.1, 10.0);
E_CONFIG_LIMIT(pager_config->show_desk_names, 0, 1);
E_CONFIG_LIMIT(pager_config->popup_height, 20, 200);
E_CONFIG_LIMIT(pager_config->popup_act_height, 20, 200);
E_CONFIG_LIMIT(pager_config->drag_resist, 0, 50);
E_CONFIG_LIMIT(pager_config->flip_desk, 0, 1);
E_CONFIG_LIMIT(pager_config->btn_drag, 0, 32);
E_CONFIG_LIMIT(pager_config->btn_noplace, 0, 32);
E_CONFIG_LIMIT(pager_config->btn_desk, 0, 32);
E_CONFIG_LIMIT(pager_config->plain, 0, 1);
E_CONFIG_LIMIT(pager_config->permanent_plain, 0, 1);
pager_init();
e_gadget_type_add("Pager", pager_create, NULL);
return m;
}
EINTERN int
e_modapi_gadget_shutdown(E_Module *m EINA_UNUSED)
{
if (cfg_dialog)
e_object_del(E_OBJECT(cfg_dialog));
if (pager_config && ghandlers)
E_FREE_LIST(ghandlers, ecore_event_handler_del);
e_action_del("pager_gadget_show");
e_action_del("pager_gadget_switch");
e_action_predef_name_del("Pager Gadget", "Show Pager Popup");
e_action_predef_name_del("Pager Gadget", "Popup Desk Right");
e_action_predef_name_del("Pager Gadget", "Popup Desk Left");
e_action_predef_name_del("Pager Gadget", "Popup Desk Up");
e_action_predef_name_del("Pager Gadget", "Popup Desk Down");
e_action_predef_name_del("Pager Gadget", "Popup Desk Next");
e_action_predef_name_del("Pager Gadget", "Popup Desk Previous");
e_gadget_type_del("Pager");
E_FREE(pager_config);
E_CONFIG_DD_FREE(conf_edd);
return 1;
}
EINTERN int
e_modapi_gadget_save(E_Module *m EINA_UNUSED)
{
e_config_domain_save("module.pager", conf_edd, pager_config);
return 1;
}