2 #include "e_mod_main.h"
3 #include "e_mod_config.h"
4 #include "e_mod_comp.h"
6 //static Ecore_Event_Handler *init_done_handler = NULL;
9 //_e_init_done(void *data, int type, void *event)
11 // ecore_event_handler_del(init_done_handler);
12 // init_done_handler = NULL;
13 // if (!e_mod_comp_init())
15 // // FIXME: handle if comp init fails
20 /* module private routines */
21 Mod *_comp_mod = NULL;
23 /* public module routines. all modules must have these */
24 EAPI E_Module_Api e_modapi =
31 e_modapi_init(E_Module *m)
36 mod = calloc(1, sizeof(Mod));
40 snprintf(buf, sizeof(buf), "%s/e-module-comp.edj", e_module_dir_get(m));
41 e_configure_registry_category_add("appearance", 10, _("Look"), NULL,
43 e_configure_registry_item_add("appearance/comp", 120, _("Composite"), NULL,
44 buf, e_int_config_comp_module);
46 e_mod_comp_cfdata_edd_init(&(mod->conf_edd),
47 &(mod->conf_match_edd));
49 mod->conf = e_config_domain_load("module.comp", mod->conf_edd);
50 if (!mod->conf) _e_mod_config_new(m);
52 if (!e_config->use_composite)
54 e_config->use_composite = 1;
55 e_config_save_queue();
58 /* XXX: disabled dropshadow module when comp is running */
62 EINA_LIST_FOREACH(e_module_list(), l, m2)
64 if (m2->enabled && (!strcmp(m2->name, "dropshadow")))
66 e_util_dialog_internal(_("Composite"),
67 _("Dropshadow module is incompatible<br>"
68 "with compositing. Disabling the<br>"
69 "Dropshadow module."));
75 /* XXX: update old configs. add config versioning */
76 if (mod->conf->first_draw_delay == 0)
77 mod->conf->first_draw_delay = 0.20;
81 if (!e_mod_comp_init())
83 // FIXME: handle if comp init fails
86 e_module_delayed_set(m, 0);
87 e_module_priority_set(m, -1000);
92 _e_mod_config_new(E_Module *m)
96 mod->conf = e_mod_comp_cfdata_config_new();
100 _e_mod_config_free(E_Module *m)
104 e_mod_cfdata_config_free(mod->conf);
109 e_modapi_shutdown(E_Module *m)
113 e_mod_comp_shutdown();
115 e_configure_registry_item_del("appearance/comp");
116 e_configure_registry_category_del("appearance");
118 if (mod->config_dialog)
120 e_object_del(E_OBJECT(mod->config_dialog));
121 mod->config_dialog = NULL;
123 _e_mod_config_free(m);
125 E_CONFIG_DD_FREE(mod->conf_match_edd);
126 E_CONFIG_DD_FREE(mod->conf_edd);
129 if (mod == _comp_mod) _comp_mod = NULL;
135 e_modapi_save(E_Module *m)
138 e_config_domain_save("module.comp", mod->conf_edd, mod->conf);