diff --git a/configure.in b/configure.in index c4339ac52..a1a33c016 100644 --- a/configure.in +++ b/configure.in @@ -280,6 +280,8 @@ src/modules/conf_imc/Makefile src/modules/conf_imc/module.desktop src/modules/conf_profiles/Makefile src/modules/conf_profiles/module.desktop +src/modules/conf_engine/Makefile +src/modules/conf_engine/module.desktop src/modules/conf_applications/Makefile src/modules/conf_applications/module.desktop src/modules/conf_desks/Makefile diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index 1a7db580b..c844769ff 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -23,6 +23,7 @@ conf_startup \ conf_intl \ conf_imc \ conf_profiles \ +conf_engine \ conf_applications \ conf_desks \ conf_desk \ diff --git a/src/modules/conf_engine/Makefile.am b/src/modules/conf_engine/Makefile.am new file mode 100644 index 000000000..48341f895 --- /dev/null +++ b/src/modules/conf_engine/Makefile.am @@ -0,0 +1,31 @@ +MAINTAINERCLEANFILES = Makefile.in +MODULE = conf_engine + +# data files for the module +filesdir = $(libdir)/enlightenment/modules/$(MODULE) +files_DATA = \ +e-module-$(MODULE).edj module.desktop + +EXTRA_DIST = $(files_DATA) + +# the module .so file +INCLUDES = -I. \ + -I$(top_srcdir) \ + -I$(top_srcdir)/src/modules/$(MODULE) \ + -I$(top_srcdir)/src/bin \ + -I$(top_srcdir)/src/lib \ + -I$(top_srcdir)/src/modules \ + @e_cflags@ +pkgdir = $(libdir)/enlightenment/modules/$(MODULE)/$(MODULE_ARCH) +pkg_LTLIBRARIES = module.la +module_la_SOURCES = e_mod_main.c \ + e_mod_main.h \ + e_int_config_engine.c \ + e_int_config_engine.h + +module_la_LIBADD = @e_libs@ @dlopen_libs@ +module_la_LDFLAGS = -module -avoid-version +module_la_DEPENDENCIES = $(top_builddir)/config.h + +uninstall: + rm -rf $(DESTDIR)$(libdir)/enlightenment/modules/$(MODULE) diff --git a/src/modules/conf_engine/e-module-conf_engine.edj b/src/modules/conf_engine/e-module-conf_engine.edj new file mode 100644 index 000000000..1f772625f Binary files /dev/null and b/src/modules/conf_engine/e-module-conf_engine.edj differ diff --git a/src/modules/conf_engine/e_int_config_engine.c b/src/modules/conf_engine/e_int_config_engine.c new file mode 100644 index 000000000..498de04df --- /dev/null +++ b/src/modules/conf_engine/e_int_config_engine.c @@ -0,0 +1,95 @@ +#include "e.h" + +EAPI E_Config_Dialog *e_int_config_engine(E_Container *con); +static void *_create_data(E_Config_Dialog *cfd); +static void _fill_data(E_Config_Dialog_Data *cfdata); +static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); +static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); +static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); + + +struct _E_Config_Dialog_Data +{ + E_Config_Dialog *cfd; + + int evas_engine_default; +}; + +EAPI E_Config_Dialog * +e_int_config_engine(E_Container *con) +{ + E_Config_Dialog *cfd; + E_Config_Dialog_View *v; + + if (e_config_dialog_find("E", "_config_engine_dialog")) return NULL; + v = E_NEW(E_Config_Dialog_View, 1); + if (!v) return NULL; + v->create_cfdata = _create_data; + v->free_cfdata = _free_data; + v->basic.apply_cfdata = _basic_apply_data; + v->basic.create_widgets = _basic_create_widgets; + + cfd = e_config_dialog_new(con, + _("Engine Settings"), + "E", "_config_engine_dialog", + "enlightenment/engine", 0, v, NULL); + return cfd; +} + +static void * +_create_data(E_Config_Dialog *cfd) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = E_NEW(E_Config_Dialog_Data, 1); + _fill_data(cfdata); + cfdata->cfd = cfd; + return cfdata; +} + +static void +_fill_data(E_Config_Dialog_Data *cfdata) +{ + cfdata->evas_engine_default = e_config->evas_engine_default; +} + +static void +_free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) +{ + E_FREE(cfdata); +} + +static int +_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) +{ + e_config->evas_engine_default = cfdata->evas_engine_default; + e_config_save_queue(); + return 1; +} + +static Evas_Object * +_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) +{ + Evas_Object *o, *ob, *of; + E_Radio_Group *rg; + Evas_List *l; + int engine; + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Default Engine"), 0); + rg = e_widget_radio_group_new(&(cfdata->evas_engine_default)); + for (l = e_config_engine_list(); l; l = l->next) + { + if (!strcmp("SOFTWARE", l->data)) engine = E_EVAS_ENGINE_SOFTWARE_X11; + else if (!strcmp("GL", l->data)) engine = E_EVAS_ENGINE_GL_X11; + else if (!strcmp("XRENDER", l->data)) engine = E_EVAS_ENGINE_XRENDER_X11; + else continue; + ob = e_widget_radio_add(evas, _(l->data), engine, rg); + e_widget_framelist_object_append(of, ob); + } + e_widget_list_object_append(o, of, 1, 1, 0.5); + + e_dialog_resizable_set(cfd->dia, 0); + return o; +} diff --git a/src/modules/conf_engine/e_int_config_engine.h b/src/modules/conf_engine/e_int_config_engine.h new file mode 100644 index 000000000..46a550dc3 --- /dev/null +++ b/src/modules/conf_engine/e_int_config_engine.h @@ -0,0 +1,9 @@ +#ifdef E_TYPEDEFS +#else +#ifndef E_INT_CONFIG_ENGINE_H +#define E_INT_CONFIG_ENGINE_H + +EAPI E_Config_Dialog *e_int_config_engine(E_Container *con); + +#endif +#endif diff --git a/src/modules/conf_engine/e_mod_main.c b/src/modules/conf_engine/e_mod_main.c new file mode 100644 index 000000000..cbdf226c4 --- /dev/null +++ b/src/modules/conf_engine/e_mod_main.c @@ -0,0 +1,65 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#include "e.h" +#include "e_mod_main.h" + +/***************************************************************************/ +/**/ +/* actual module specifics */ + +static E_Module *conf_module = NULL; + +/**/ +/***************************************************************************/ + +/***************************************************************************/ +/**/ + +/**/ +/***************************************************************************/ + +/***************************************************************************/ +/**/ +/* module setup */ +EAPI E_Module_Api e_modapi = +{ + E_MODULE_API_VERSION, + "Configuration - Engine" +}; + +EAPI void * +e_modapi_init(E_Module *m) +{ + e_configure_registry_category_add("advanced", 80, _("Advanced"), NULL, "enlightenment/advanced"); + e_configure_registry_item_add("advanced/engine", 50, _("Engine"), NULL, "enlightenment/engine", e_int_config_engine); + conf_module = m; + e_module_delayed_set(m, 1); + return m; +} + +EAPI int +e_modapi_shutdown(E_Module *m) +{ + E_Config_Dialog *cfd; + while ((cfd = e_config_dialog_get("E", "_config_engine_dialog"))) e_object_del(E_OBJECT(cfd)); + e_configure_registry_item_del("advanced/engine"); + e_configure_registry_category_del("advanced"); + conf_module = NULL; + return 1; +} + +EAPI int +e_modapi_save(E_Module *m) +{ + return 1; +} + +EAPI int +e_modapi_about(E_Module *m) +{ + e_module_dialog_show(m, + _("Enlightenment Configuration Module - Engine"), + _("Configuration dialog for engine.")); + return 1; +} diff --git a/src/modules/conf_engine/e_mod_main.h b/src/modules/conf_engine/e_mod_main.h new file mode 100644 index 000000000..9ebe19390 --- /dev/null +++ b/src/modules/conf_engine/e_mod_main.h @@ -0,0 +1,21 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#ifndef E_MOD_MAIN_H +#define E_MOD_MAIN_H + +#define E_TYPEDEFS 1 +#include "e_int_config_engine.h" + +#undef E_TYPEDEFS +#include "e_int_config_engine.h" + + +EAPI extern E_Module_Api e_modapi; + +EAPI void *e_modapi_init (E_Module *m); +EAPI int e_modapi_shutdown (E_Module *m); +EAPI int e_modapi_save (E_Module *m); +EAPI int e_modapi_about (E_Module *m); + +#endif diff --git a/src/modules/conf_engine/module.desktop.in b/src/modules/conf_engine/module.desktop.in new file mode 100644 index 000000000..7737484ff --- /dev/null +++ b/src/modules/conf_engine/module.desktop.in @@ -0,0 +1,4 @@ +[Desktop Entry] +Type=Link +Name=Configuration - Engine +Icon=e-module-conf_engine