diff --git a/config/default/e.src b/config/default/e.src index 1554818af..1e347921d 100644 --- a/config/default/e.src +++ b/config/default/e.src @@ -1,5 +1,5 @@ group "E_Config" struct { - value "config_version" int: 65830; + value "config_version" int: 65831; value "show_splash" int: 1; value "init_default_theme" string: "default.edj"; value "desktop_default_name" string: "Desktop %i, %i"; @@ -31,7 +31,7 @@ group "E_Config" struct { value "evas_engine_drag" int: 0; value "evas_engine_win" int: 0; value "evas_engine_zone" int: 0; - value "use_composite" int: 0; + value "use_composite" int: 0; group "modules" list { group "E_Config_Module" struct { value "name" string: "conf_interaction"; @@ -1985,4 +1985,10 @@ group "E_Config" struct { value "border_keyboard.move.dy" uchar: 5; value "border_keyboard.resize.dx" uchar: 5; value "border_keyboard.resize.dy" uchar: 5; + value "scale.min" double: 1.0; + value "scale.max" double: 3.0; + value "scale.factor" double: 1.0; + value "scale.base_dpi" int: 142; + value "scale.use_dpi" uchar: 0; + value "scale.use_custom" uchar: 1; } diff --git a/configure.in b/configure.in index 04a4483e4..7f45c870a 100644 --- a/configure.in +++ b/configure.in @@ -430,6 +430,8 @@ src/modules/conf_mime/Makefile src/modules/conf_mime/module.desktop src/modules/conf_interaction/Makefile src/modules/conf_interaction/module.desktop +src/modules/conf_scale/Makefile +src/modules/conf_scale/module.desktop src/modules/gadman/Makefile src/modules/gadman/module.desktop src/modules/mixer/Makefile diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index cdbe5fb86..85fcb90f4 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -164,7 +164,8 @@ e_int_toolbar_config.h \ e_powersave.h \ e_slidesel.h \ e_slidecore.h \ -e_widget_flist.h +e_widget_flist.h \ +e_scale.h enlightenment_src = \ e_user.c \ @@ -300,6 +301,7 @@ e_powersave.c \ e_slidesel.c \ e_slidecore.c \ e_widget_flist.c \ +e_scale.c \ $(ENLIGHTENMENTHEADERS) enlightenment_SOURCES = \ diff --git a/src/bin/e_config.c b/src/bin/e_config.c index 1cd8eb047..b4accbe05 100644 --- a/src/bin/e_config.c +++ b/src/bin/e_config.c @@ -53,7 +53,7 @@ e_config_init(void) _e_config_profile = getenv("E_CONF_PROFILE"); if (_e_config_profile) /* if environment var set - use this profile name */ - _e_config_profile = strdup(_e_config_profile); + _e_config_profile = strdup(_e_config_profile); else { Eet_File *ef; @@ -622,6 +622,15 @@ e_config_init(void) E_CONFIG_VAL(D, T, border_keyboard.resize.dx, UCHAR); E_CONFIG_VAL(D, T, border_keyboard.resize.dy, UCHAR); + E_CONFIG_VAL(D, T, hal_desktop, INT); + + E_CONFIG_VAL(D, T, scale.min, DOUBLE); + E_CONFIG_VAL(D, T, scale.max, DOUBLE); + E_CONFIG_VAL(D, T, scale.factor, DOUBLE); + E_CONFIG_VAL(D, T, scale.base_dpi, INT); + E_CONFIG_VAL(D, T, scale.use_dpi, UCHAR); + E_CONFIG_VAL(D, T, scale.use_custom, UCHAR); + e_config = e_config_domain_load("e", _e_config_edd); if (e_config) { @@ -1556,7 +1565,15 @@ e_config_init(void) e_config->border_keyboard.resize.dx = 5; e_config->border_keyboard.resize.dy = 5; IFCFGEND; - + + IFCFG(0x0127); + e_config->scale.min = 1.0; + e_config->scale.max = 3.0; + e_config->scale.factor = 1.0; + e_config->scale.base_dpi = 142; + e_config->scale.use_dpi = 0; + e_config->scale.use_custom = 1; + IFCFGEND; e_config->config_version = E_CONFIG_FILE_VERSION; diff --git a/src/bin/e_config.h b/src/bin/e_config.h index 6adcc41d7..6e77c8a92 100644 --- a/src/bin/e_config.h +++ b/src/bin/e_config.h @@ -33,7 +33,7 @@ typedef struct _E_Event_Config_Icon_Theme E_Event_Config_Icon_Theme; /* increment this whenever a new set of config values are added but the users * config doesn't need to be wiped - simply new values need to be put in */ -#define E_CONFIG_FILE_GENERATION 0x0126 +#define E_CONFIG_FILE_GENERATION 0x0127 #define E_CONFIG_FILE_VERSION ((E_CONFIG_FILE_EPOCH << 16) | E_CONFIG_FILE_GENERATION) #define E_EVAS_ENGINE_DEFAULT 0 @@ -301,6 +301,15 @@ struct _E_Config unsigned char dy; } resize; } border_keyboard; + + struct { + double min; + double max; + double factor; + int base_dpi; + unsigned char use_dpi; + unsigned char use_custom; + } scale; }; struct _E_Config_Module diff --git a/src/bin/e_hints.c b/src/bin/e_hints.c index 01a8a9cd9..9e555207a 100644 --- a/src/bin/e_hints.c +++ b/src/bin/e_hints.c @@ -9,6 +9,7 @@ EAPI Ecore_X_Atom _QTOPIA_SOFT_MENUS = 0; static Ecore_X_Atom gnome_atom = 0; static Ecore_X_Atom enlightenment_comms = 0; static Ecore_X_Atom enlightenment_version = 0; +static Ecore_X_Atom enlightenment_scale = 0; EAPI void e_hints_init(void) @@ -21,15 +22,17 @@ e_hints_init(void) "GNOME_SM_PROXY", "ENLIGHTENMENT_COMMS", "ENLIGHTENMENT_VERSION", + "ENLIGHTENMENT_SCALE" }; - Ecore_X_Atom atoms[5]; + Ecore_X_Atom atoms[6]; - ecore_x_atoms_get(atom_names, 5, atoms); + ecore_x_atoms_get(atom_names, 6, atoms); _QTOPIA_SOFT_MENU = atoms[0]; _QTOPIA_SOFT_MENUS = atoms[1]; gnome_atom = atoms[2]; enlightenment_comms = atoms[3]; enlightenment_version = atoms[4]; + enlightenment_scale = atoms[5]; roots = ecore_x_window_root_list(&num); if (roots) @@ -176,6 +179,7 @@ e_hints_init(void) e_hints_openoffice_gnome_fake(roots[i]); ecore_x_netwm_supported_set(roots[i], supported, supported_num); + } free(roots); } @@ -525,7 +529,7 @@ e_hints_window_init(E_Border *bd) } if (bd->client.netwm.state.shaded) { - if (!bd->lock_client_shade) +if (!bd->lock_client_shade) e_border_shade(bd, e_hints_window_shade_direction_get(bd)); else e_hints_window_shaded_set(bd, 0); @@ -1414,3 +1418,18 @@ e_hints_openoffice_kde_fake(Ecore_X_Window root) ecore_x_netwm_wm_identify(root, win2, "KWin"); } +EAPI void e_hints_scale_update(void) +{ + Ecore_X_Window *roots = NULL; + int i, num; + int scale; + + roots = ecore_x_window_root_list(&num); + if (roots) + { + scale = e_scale * 1000; + for (i = 0; i < num; i++) + ecore_x_window_prop_card32_set(roots[i], enlightenment_scale, &scale, 1); + free(roots); + } +} diff --git a/src/bin/e_hints.h b/src/bin/e_hints.h index ad7c276a4..c3fedeb14 100644 --- a/src/bin/e_hints.h +++ b/src/bin/e_hints.h @@ -39,7 +39,6 @@ EAPI void e_hints_window_maximized_set(E_Border *bd, int horizontal, int vertica EAPI void e_hints_window_fullscreen_set(E_Border *bd, int on); EAPI void e_hints_window_sticky_set(E_Border *bd, int on); EAPI void e_hints_window_stacking_set(E_Border *bd, E_Stacking stacking); - EAPI void e_hints_window_desktop_set(E_Border *bd); EAPI void e_hints_window_e_state_set(E_Border *bd); @@ -54,6 +53,8 @@ EAPI void e_hints_window_virtual_keyboard_get(E_Border *bd); EAPI void e_hints_openoffice_gnome_fake(Ecore_X_Window root); EAPI void e_hints_openoffice_kde_fake(Ecore_X_Window root); +EAPI void e_hints_scale_update(void); + extern EAPI Ecore_X_Atom _QTOPIA_SOFT_MENU; extern EAPI Ecore_X_Atom _QTOPIA_SOFT_MENUS; diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 5d88184db..348c3294e 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -136,3 +136,4 @@ #include "e_slidecore.h" #include "e_widget_flist.h" #include "e_fm_op.h" +#include "e_scale.h" diff --git a/src/bin/e_init_main.c b/src/bin/e_init_main.c index 54ff2ec0a..b707114e8 100644 --- a/src/bin/e_init_main.c +++ b/src/bin/e_init_main.c @@ -59,6 +59,8 @@ int main(int argc, char **argv) { int i; + char *s; + double scale; for (i = 1; i < argc; i++) { @@ -88,7 +90,11 @@ main(int argc, char **argv) evas_init(); ecore_evas_init(); edje_init(); - edje_frametime_set(1.0 / 60.0); + edje_frametime_set(1.0 / 30.0); + s = getenv("E_SCALE"); + scale = 1.0; + if (s) scale = atof(s); + edje_scale_set(scale); ecore_file_init(); ecore_ipc_init(); diff --git a/src/bin/e_main.c b/src/bin/e_main.c index ee02e7acd..ed5b0e319 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -508,6 +508,15 @@ main(int argc, char **argv) } _e_main_shutdown_push(e_config_shutdown); + TS("scale"); + /* init config system */ + if (!e_scale_init()) + { + e_error_message_show(_("Enlightenment cannot set up its scale system.")); + _e_main_shutdown(-1); + } + _e_main_shutdown_push(e_scale_shutdown); + TS("pointer"); if (!e_pointer_init()) { @@ -534,21 +543,6 @@ main(int argc, char **argv) /* setup edje to animate @ e_config->framerate frames per sec. */ edje_frametime_set(1.0 / e_config->framerate); -// FIXME: just a hack. - { - static scale = -1.0; - - if (scale == -1.0) - { - char *s; - - s = getenv("E_SCALE"); - if (s) scale = atof(s); - else scale = 1.0; - } - edje_scale_set(scale); - } - TS("font"); /* init font system */ if (!e_font_init()) diff --git a/src/bin/e_scale.c b/src/bin/e_scale.c new file mode 100644 index 000000000..38bbf2e7c --- /dev/null +++ b/src/bin/e_scale.c @@ -0,0 +1,46 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#include "e.h" + +EAPI double e_scale = 1.0; + +EAPI int +e_scale_init(void) +{ + e_scale_update(); + return 1; +} + +EAPI int +e_scale_shutdown(void) +{ + return 1; +} + +EAPI void +e_scale_update(void) +{ + int dpi; + char buf[128]; + + if (e_config->scale.use_dpi) + { + dpi = ecore_x_dpi_get(); + e_scale = (double)dpi / (double)e_config->scale.base_dpi; + if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; + else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; + } + else if (e_config->scale.use_custom) + { + e_scale = e_config->scale.factor; + if (e_scale > e_config->scale.max) e_scale = e_config->scale.max; + else if (e_scale < e_config->scale.min) e_scale = e_config->scale.min; + } + + + edje_scale_set(e_scale); + snprintf(buf, sizeof(buf), "%1.3f", e_scale); + e_util_env_set("E_SCALE", buf); + e_hints_scale_update(); +} diff --git a/src/bin/e_scale.h b/src/bin/e_scale.h new file mode 100644 index 000000000..a27027884 --- /dev/null +++ b/src/bin/e_scale.h @@ -0,0 +1,16 @@ +/* + * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2 + */ +#ifdef E_TYPEDEFS +#else +#ifndef E_SCALE_H +#define E_SCALE_H + +EAPI int e_scale_init(void); +EAPI int e_scale_shutdown(void); +EAPI void e_scale_update(void); + +extern EAPI double e_scale; + +#endif +#endif diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index a4512a9ec..23e648d9b 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -53,6 +53,7 @@ conf_interaction \ gadman \ mixer \ conf_window_remembers \ +conf_scale \ connman if HAVE_TEMPERATURE diff --git a/src/modules/conf_scale/.cvsignore b/src/modules/conf_scale/.cvsignore new file mode 100644 index 000000000..06d064a84 --- /dev/null +++ b/src/modules/conf_scale/.cvsignore @@ -0,0 +1,7 @@ +.deps +.libs +Makefile +Makefile.in +*.lo +module.la +module.desktop diff --git a/src/modules/conf_scale/Makefile.am b/src/modules/conf_scale/Makefile.am new file mode 100644 index 000000000..a92a33912 --- /dev/null +++ b/src/modules/conf_scale/Makefile.am @@ -0,0 +1,31 @@ +MAINTAINERCLEANFILES = Makefile.in +MODULE = conf_scale + +# 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_scale.c \ + e_int_config_scale.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_scale/e-module-conf_scale.edj b/src/modules/conf_scale/e-module-conf_scale.edj new file mode 100644 index 000000000..0847166ac Binary files /dev/null and b/src/modules/conf_scale/e-module-conf_scale.edj differ diff --git a/src/modules/conf_scale/e_int_config_scale.c b/src/modules/conf_scale/e_int_config_scale.c new file mode 100644 index 000000000..9a42b3a9e --- /dev/null +++ b/src/modules/conf_scale/e_int_config_scale.c @@ -0,0 +1,193 @@ +#include "e.h" + +static void *_create_data(E_Config_Dialog *cfd); +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); +static int _advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); +static Evas_Object *_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); + +struct _E_Config_Dialog_Data +{ + int use_dpi; + + /* Advanced */ + double min; + double max; + double factor; + int use_mode; + + int base_dpi; + int use_custom; +}; + +EAPI E_Config_Dialog * +e_int_config_scale(E_Container *con, const char *params __UNUSED__) +{ + E_Config_Dialog *cfd; + E_Config_Dialog_View *v; + + if (e_config_dialog_find("E", "_config_scale_dialog")) return NULL; + v = E_NEW(E_Config_Dialog_View, 1); + + v->create_cfdata = _create_data; + v->free_cfdata = _free_data; + v->basic.apply_cfdata = _basic_apply_data; + v->basic.create_widgets = _basic_create_widgets; + v->advanced.apply_cfdata = _advanced_apply_data; + v->advanced.create_widgets = _advanced_create_widgets; + + cfd = e_config_dialog_new(con, + _("Scaling Settings"), + "E", "_config_scale_dialog", + "enlightenment/scale", 0, v, NULL); + return cfd; +} + +static void +_fill_data(E_Config_Dialog_Data *cfdata) +{ + cfdata->use_dpi = e_config->scale.use_dpi; + cfdata->use_custom = e_config->scale.use_custom; + cfdata->use_mode = 0; + if (cfdata->use_dpi) cfdata->use_mode = 1; + if (cfdata->use_custom) cfdata->use_mode = 2; + cfdata->min = e_config->scale.min; + cfdata->max = e_config->scale.max; + cfdata->factor = e_config->scale.factor; + cfdata->base_dpi = e_config->scale.base_dpi; +} + +static void * +_create_data(E_Config_Dialog *cfd) +{ + E_Config_Dialog_Data *cfdata; + + cfdata = E_NEW(E_Config_Dialog_Data, 1); + _fill_data(cfdata); + return cfdata; +} + +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) +{ + cfdata->use_custom = 0; + if (cfdata->use_dpi) cfdata->use_mode = 1; + else cfdata->use_mode = 0; + + e_config->scale.use_dpi = cfdata->use_dpi; + e_config->scale.use_custom = cfdata->use_custom; + e_config->scale.min = cfdata->min; + e_config->scale.max = cfdata->max; + e_config->scale.factor = cfdata->factor; + e_config->scale.base_dpi = cfdata->base_dpi; + + e_scale_update(); + e_canvas_recache(); + 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, *of, *ob; + char buf[256]; + + o = e_widget_list_add(evas, 0, 0); + + ob = e_widget_check_add(evas, _("Scale with DPI"), &(cfdata->use_dpi)); + e_widget_list_object_append(o, ob, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Relative"), 0); + ob = e_widget_label_add(evas, _("Base DPI to scale relative to")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f DPI"), 30, 1200, 1, 0, NULL, &(cfdata->base_dpi), 150); + e_widget_framelist_object_append(of, ob); + snprintf(buf, sizeof(buf), _("Currently %i DPI"), ecore_x_dpi_get()); + ob = e_widget_label_add(evas, buf); + e_widget_framelist_object_append(of, ob); + + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} + +static int +_advanced_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) +{ + if (cfdata->use_mode == 0) + { + cfdata->use_dpi = 0; + cfdata->use_custom = 0; + } + else if (cfdata->use_mode == 1) + { + cfdata->use_dpi = 1; + cfdata->use_custom = 0; + } + else if (cfdata->use_mode == 2) + { + cfdata->use_dpi = 0; + cfdata->use_custom = 1; + } + e_config->scale.use_dpi = cfdata->use_dpi; + e_config->scale.use_custom = cfdata->use_custom; + e_config->scale.min = cfdata->min; + e_config->scale.max = cfdata->max; + e_config->scale.factor = cfdata->factor; + e_config->scale.base_dpi = cfdata->base_dpi; + + e_scale_update(); + e_canvas_recache(); + e_config_save_queue(); + return 1; +} + +static Evas_Object * +_advanced_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata) +{ + Evas_Object *o, *ob, *of; + E_Radio_Group *rg; + char buf[256]; + + o = e_widget_list_add(evas, 0, 0); + + of = e_widget_framelist_add(evas, _("Policy"), 0); + rg = e_widget_radio_group_new(&(cfdata->use_mode)); + ob = e_widget_radio_add(evas, _("Don't Scale"), 0, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Scale relative to screen DPI"), 1, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_radio_add(evas, _("Custom scaling factor"), 2, rg); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Minimum")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.1f times"), 0.25, 8.0, 0.05, 0, &(cfdata->min), NULL, 150); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Maximum")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.1f times"), 0.25, 8.0, 0.05, 0, &(cfdata->max), NULL, 150); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + of = e_widget_framelist_add(evas, _("Scaling Factors"), 0); + snprintf(buf, sizeof(buf), _("Base DPI (Currently %i DPI)"), ecore_x_dpi_get()); + ob = e_widget_label_add(evas, buf); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f DPI"), 30, 1200, 1, 0, NULL, &(cfdata->base_dpi), 150); + e_widget_framelist_object_append(of, ob); + ob = e_widget_label_add(evas, _("Personal scaling factor")); + e_widget_framelist_object_append(of, ob); + ob = e_widget_slider_add(evas, 1, 0, _("%1.1f times"), 0.25, 8.0, 0.05, 0, &(cfdata->factor), NULL, 150); + e_widget_framelist_object_append(of, ob); + e_widget_list_object_append(o, of, 1, 1, 0.5); + + return o; +} diff --git a/src/modules/conf_scale/e_int_config_scale.h b/src/modules/conf_scale/e_int_config_scale.h new file mode 100644 index 000000000..e4096e57b --- /dev/null +++ b/src/modules/conf_scale/e_int_config_scale.h @@ -0,0 +1,9 @@ +#ifdef E_TYPEDEFS +#else +#ifndef E_INT_CONFIG_SCALE_H +#define E_INT_CONFIG_SCALE_H + +EAPI E_Config_Dialog *e_int_config_scale(E_Container *con, const char *params __UNUSED__); + +#endif +#endif diff --git a/src/modules/conf_scale/e_mod_main.c b/src/modules/conf_scale/e_mod_main.c new file mode 100644 index 000000000..f73619246 --- /dev/null +++ b/src/modules/conf_scale/e_mod_main.c @@ -0,0 +1,56 @@ +/* + * 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 - Scaling" +}; + +EAPI void * +e_modapi_init(E_Module *m) +{ + e_configure_registry_category_add("appearance", 10, _("Appearance"), NULL, "enlightenment/appearance"); + e_configure_registry_item_add("appearance/scale", 90, _("Scaling"), NULL, "enlightenment/scale", e_int_config_scale); + 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_scale_dialog"))) e_object_del(E_OBJECT(cfd)); + e_configure_registry_item_del("appearance/scale"); + e_configure_registry_category_del("appearance"); + conf_module = NULL; + return 1; +} + +EAPI int +e_modapi_save(E_Module *m) +{ + return 1; +} diff --git a/src/modules/conf_scale/e_mod_main.h b/src/modules/conf_scale/e_mod_main.h new file mode 100644 index 000000000..c60e441c9 --- /dev/null +++ b/src/modules/conf_scale/e_mod_main.h @@ -0,0 +1,19 @@ +/* + * 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_scale.h" + +#undef E_TYPEDEFS +#include "e_int_config_scale.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); + +#endif diff --git a/src/modules/conf_scale/module.desktop.in b/src/modules/conf_scale/module.desktop.in new file mode 100644 index 000000000..1c0845f31 --- /dev/null +++ b/src/modules/conf_scale/module.desktop.in @@ -0,0 +1,28 @@ +[Desktop Entry] +Type=Link +Name=Configuration - Scaling +Name[de]= +Name[eo]= +Name[es]= +Name[fr]= +Name[hu]= +Name[it]= +Name[ja]= +Name[pt]= +Name[pt_BR]= +Name[zh_CN]= +Name[zh_TW]= +Icon=e-module-conf_scale +Comment=E17 Configuration Applet
Used to configure certain how Display scaling is handled. +Comment[de]= +Comment[eo]= +Comment[es]= +Comment[fr]= +Comment[hu]= +Comment[it]= +Comment[ja]= +Comment[pt]= +Comment[pt_BR]= +Comment[zh_CN]= +Comment[zh_TW]= +X-Enlightenment-ModuleType=config