diff --git a/configure.ac b/configure.ac index 9f4924092..c369d24e1 100644 --- a/configure.ac +++ b/configure.ac @@ -857,7 +857,6 @@ AC_E_OPTIONAL_MODULE([fileman], true) AC_E_OPTIONAL_MODULE([fileman_opinfo], true) AC_E_OPTIONAL_MODULE([wizard], true) AC_E_OPTIONAL_MODULE([conf], true) -AC_E_OPTIONAL_MODULE([conf2], true) AC_E_OPTIONAL_MODULE([conf_comp], true) AC_E_OPTIONAL_MODULE([conf_wallpaper2], true) AC_E_OPTIONAL_MODULE([conf_theme], true, true) @@ -971,7 +970,6 @@ src/modules/winlist/module.desktop src/modules/fileman/module.desktop src/modules/fileman_opinfo/module.desktop src/modules/conf/module.desktop -src/modules/conf2/module.desktop src/modules/conf_wallpaper2/module.desktop src/modules/conf_theme/module.desktop src/modules/conf_intl/module.desktop diff --git a/src/bin/Makefile.am b/src/bin/Makefile.am index 92110bdcf..273af0591 100644 --- a/src/bin/Makefile.am +++ b/src/bin/Makefile.am @@ -62,7 +62,6 @@ e_config_data.h \ e_config_dialog.h \ e_config.h \ e_configure.h \ -e_configure_option.h \ e_confirm_dialog.h \ e_container.h \ e_datastore.h \ @@ -233,7 +232,6 @@ e_config.c \ e_config_data.c \ e_config_dialog.c \ e_configure.c \ -e_configure_option.c \ e_confirm_dialog.c \ e_container.c \ e_datastore.c \ diff --git a/src/bin/e_comp.c b/src/bin/e_comp.c index 4fef776ff..132236010 100644 --- a/src/bin/e_comp.c +++ b/src/bin/e_comp.c @@ -4607,284 +4607,6 @@ _e_comp_sys_resume(void) _e_comp_sys_emit_cb_wait(E_SYS_SUSPEND, "e,state,sys,resume", NULL, EINA_FALSE); } -static Eina_List * -_e_comp_config_engine_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Software", NULL - }; - - if (gl_avail) name[1] = "OpenGL"; - for (x = E_COMP_ENGINE_SW; x <= E_COMP_ENGINE_SW + gl_avail; x++) - { - oi = e_configure_option_info_new(co, _(name[x - 1]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_Bool -_e_comp_config_style_thumb_timer_cb(void *data) -{ - Evas_Object *oo, *ofr = data; - int demo_state; - - demo_state = (long)(intptr_t)evas_object_data_get(data, "style_demo_state"); - demo_state = (demo_state + 1) % 4; - evas_object_data_set(data, "style_demo_state", (intptr_t *)(long)demo_state); - - oo = evas_object_data_get(ofr, "comp_preview"); - switch (demo_state) - { - case 0: - edje_object_signal_emit(oo, "e,state,visible,on", "e"); - edje_object_signal_emit(oo, "e,state,focus,on", "e"); - edje_object_part_text_set(ofr, "e.text.label", _("Visible")); - break; - - case 1: - edje_object_signal_emit(oo, "e,state,focus,off", "e"); - edje_object_part_text_set(ofr, "e.text.label", _("Focus-Out")); - break; - - case 2: - edje_object_signal_emit(oo, "e,state,focus,on", "e"); - edje_object_part_text_set(ofr, "e.text.label", _("Focus-In")); - break; - - case 3: - edje_object_signal_emit(oo, "e,state,visible,off", "e"); - edje_object_part_text_set(ofr, "e.text.label", _("Hidden")); - break; - - default: - break; - } - return ECORE_CALLBACK_RENEW; -} - -static void -_e_comp_config_style_thumb_del_cb(void *data, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - evas_object_del(edje_object_part_swallow_get(obj, "e.swallow.preview")); - ecore_timer_del(data); -} - -static Evas_Object * -_e_comp_config_style_thumb_cb(E_Configure_Option_Info *oi, Evas *evas) -{ - Evas_Object *ob, *oly, *oo, *obd, *ofr, *orec; - Ecore_Timer *timer; - char buf[4096]; - - ob = e_livethumb_add(evas); - e_livethumb_vsize_set(ob, 240, 240); - - oly = e_layout_add(e_livethumb_evas_get(ob)); - e_layout_virtual_size_set(oly, 240, 240); - e_livethumb_thumb_set(ob, oly); - evas_object_show(oly); - - oo = edje_object_add(e_livethumb_evas_get(ob)); - snprintf(buf, sizeof(buf), "e/comp/border/%s", oi->name); - e_theme_edje_object_set(oo, "base/theme/borders", buf); - e_layout_pack(oly, oo); - e_layout_child_move(oo, 39, 39); - e_layout_child_resize(oo, 162, 162); - edje_object_signal_emit(oo, "e,state,shadow,on", "e"); - edje_object_signal_emit(oo, "e,state,visible,on", "e"); - evas_object_show(oo); - - ofr = edje_object_add(evas); - e_theme_edje_object_set - (ofr, "base/theme/comp", "e/comp/preview"); - edje_object_part_swallow(ofr, "e.swallow.preview", ob); - evas_object_show(ofr); - - obd = edje_object_add(e_livethumb_evas_get(ob)); - e_theme_edje_object_set(obd, "base/theme/borders", "e/widgets/border/default/border"); - edje_object_part_text_set(obd, "e.text.title", _("Title")); - edje_object_signal_emit(obd, "e,state,focused", "e"); - edje_object_part_swallow(oo, "e.swallow.content", obd); - evas_object_show(obd); - - orec = evas_object_rectangle_add(e_livethumb_evas_get(ob)); - evas_object_color_set(orec, 0, 0, 0, 128); - edje_object_part_swallow(obd, "e.swallow.client", orec); - evas_object_show(orec); - - timer = ecore_timer_add(3.0, _e_comp_config_style_thumb_timer_cb, ofr); - evas_object_data_set(ofr, "style_demo_state", (void *)1); - evas_object_data_set(ofr, "comp_timer", timer); - evas_object_data_set(ofr, "comp_preview", oo); - evas_object_event_callback_add(ofr, EVAS_CALLBACK_DEL, _e_comp_config_style_thumb_del_cb, timer); - - return ofr; -} - -static Eina_List * -_e_comp_config_style_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL, *styles; - Eina_Stringshare *style; - E_Configure_Option_Info *oi; - - styles = e_theme_comp_border_list(); - EINA_LIST_FREE(styles, style) - { - oi = e_configure_option_info_new(co, style, style); - oi->current = (conf->shadow_style == style); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_comp_fps_corner_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Top left", "Top right", "Bottom left", "Bottom right", }; - - for (x = 0; x <= 3; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -#ifdef ECORE_EVAS_GL_X11_OPT_SWAP_MODE -static Eina_List * -_e_comp_swap_mode_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Auto", "Invalidate (full redraw)", "Copy from back to front", "Double-buffered", "Triple-buffered" - }; - - for (x = ECORE_EVAS_GL_X11_SWAP_MODE_AUTO; x <= ECORE_EVAS_GL_X11_SWAP_MODE_TRIPLE; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} -#endif -static void -_e_comp_cfg_init(void) -{ - E_Configure_Option *co; - - e_configure_option_domain_current_set("e_comp"); - - E_CONFIGURE_OPTION_ADD(co, BOOL, fast_borders, conf, _("Use fast composite effects for windows"), _("composite"), _("border"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, fast_menus, conf, _("Use fast composite effects for menus"), _("composite"), _("menu"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, fast_popups, conf, _("Use fast composite effects for popups"), _("composite"), _("popup"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, fast_objects, conf, _("Use fast composite effects for objects"), _("composite"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, fast_overrides, conf, _("Use fast composite effects for override-redirect windows (tooltips and such)"), _("composite"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - - E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_borders, conf, _("Disable composite effects for windows"), _("composite"), _("border"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_menus, conf, _("Disable composite effects for menus"), _("composite"), _("menu"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_popups, conf, _("Disable composite effects for popups"), _("composite"), _("popup"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_objects, conf, _("Disable composite effects for objects"), _("composite"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, match.disable_overrides, conf, _("Disable composite effects for override-redirect windows (tooltips and such)"), _("composite"), _("theme"), _("animate")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, disable_screen_effects, conf, _("Disable composite effects for the screen"), _("composite"), _("theme"), _("animate"), _("screen")); - E_CONFIGURE_OPTION_HELP(co, _("This option disables composite effects from themes, such as animating the screen fade when blanking")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - - E_CONFIGURE_OPTION_ADD(co, ENUM, engine, conf, _("Compositing engine"), _("composite"), _("border")); - E_CONFIGURE_OPTION_ICON(co, "preferences-engine"); - co->info_cb = _e_comp_config_engine_info_cb; - co->requires_restart = 1; - E_CONFIGURE_OPTION_ADD(co, STR, shadow_style, conf, _("Default window composite effect"), _("composite"), _("border"), _("theme")); - co->info_cb = _e_comp_config_style_info_cb; - co->thumb_cb = _e_comp_config_style_thumb_cb; - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - - E_CONFIGURE_OPTION_ADD(co, BOOL, smooth_windows, conf, _("Smooth scaling of composited window content"), _("composite"), _("border")); - /* FIXME: help text */ - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, efl_sync, conf, _("Sync composited windows"), _("composite"), _("border")); - /* FIXME: help text */ - co->requires_restart = 1; - E_CONFIGURE_OPTION_ADD(co, BOOL, loose_sync, conf, _("Loose sync composited windows"), _("composite"), _("border")); - /* FIXME: help text */ - co->requires_restart = 1; - E_CONFIGURE_OPTION_ADD(co, BOOL, grab, conf, _("Grab server during rendering of composited windows"), _("composite"), _("border")); - /* FIXME: help text */ - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, DOUBLE, first_draw_delay, conf, _("Initial draw timeout for newly-mapped composited windows"), _("composite"), _("border"), _("delay")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 0.01, 0.5, 0.01, _("%1.2f seconds")); - /* FIXME: help text */ - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - - if (gl_avail) - { - E_CONFIGURE_OPTION_ADD(co, BOOL, vsync, conf, _("Tear-free compositing (VSYNC)"), _("composite"), _("border")); - co->requires_restart = 1; - - E_CONFIGURE_OPTION_ADD(co, BOOL, texture_from_pixmap, conf, _("Texture from pixmap rendering for composite"), _("composite"), _("border")); - co->requires_restart = 1; -#ifdef ECORE_EVAS_GL_X11_OPT_SWAP_MODE - if ((evas_version->major >= 1) && - (evas_version->minor >= 7) && - (evas_version->micro >= 99)) - { - E_CONFIGURE_OPTION_ADD(co, ENUM, swap_mode, conf, _("Composite swapping method"), _("composite"), _("border")); - co->info_cb = _e_comp_swap_mode_info_cb; - co->requires_restart = 1; - } -#endif - } - - - E_CONFIGURE_OPTION_ADD(co, BOOL, nocomp_fs, conf, _("Don't composite fullscreen windows"), _("composite"), _("border")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, nofade, conf, _("Don't fade backlight"), _("composite"), _("backlight")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, send_flush, conf, _("Send flush when compositing windows"), _("composite"), _("border")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, BOOL, send_dump, conf, _("Send dump when compositing windows"), _("composite"), _("border")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - - E_CONFIGURE_OPTION_ADD(co, BOOL, fps_show, conf, _("Show framerate when compositing windows"), _("composite"), _("border")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, DOUBLE_INT, fps_average_range, conf, _("Rolling average for fps display when compositing"), _("composite"), _("border")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 1, 120, 1, _("%1.0f frames")); - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - E_CONFIGURE_OPTION_ADD(co, ENUM, fps_corner, conf, _("Composite framerate display corner"), _("composite"), _("border")); - co->info_cb = _e_comp_fps_corner_info_cb; - co->funcs[1].none = co->funcs[0].none = e_comp_shadows_reset; - - e_configure_option_category_tag_add(_("windows"), _("composite")); - e_configure_option_category_tag_add(_("composite"), _("composite")); - e_configure_option_category_icon_set(_("composite"), "preferences-composite"); -} - static Eina_Bool _e_comp_opacity_set_timer_cb(E_Comp_Win *cw) { @@ -5072,7 +4794,6 @@ e_comp_init(void) if (!e_comp_wl_init()) EINA_LOG_ERR("Failed to initialize Wayland Client Support !!"); #endif - _e_comp_cfg_init(); return EINA_TRUE; } @@ -5108,10 +4829,6 @@ e_comp_shutdown(void) e_comp_wl_shutdown(); #endif - e_configure_option_domain_clear("e_comp"); - e_configure_option_category_tag_del(_("composite"), _("composite")); - e_configure_option_category_tag_del(_("windows"), _("composite")); - gl_avail = EINA_FALSE; e_comp_cfdata_config_free(conf); E_CONFIG_DD_FREE(conf_match_edd); diff --git a/src/bin/e_configure_option.c b/src/bin/e_configure_option.c deleted file mode 100644 index b7431762c..000000000 --- a/src/bin/e_configure_option.c +++ /dev/null @@ -1,2857 +0,0 @@ -#include "e.h" -#include "e_fm_device.h" - -EAPI int E_EVENT_CONFIGURE_OPTION_CHANGED = -1; -EAPI int E_EVENT_CONFIGURE_OPTION_ADD = -1; -EAPI int E_EVENT_CONFIGURE_OPTION_DEL = -1; -EAPI int E_EVENT_CONFIGURE_OPTION_CATEGORY_ADD = -1; -EAPI int E_EVENT_CONFIGURE_OPTION_CATEGORY_DEL = -1; -EAPI int E_EVENT_CONFIGURE_OPTION_TAG_ADD = -1; -EAPI int E_EVENT_CONFIGURE_OPTION_TAG_DEL = -1; - -static Eio_File *theme_ls[2] = {NULL, NULL}; -static Eio_Monitor *theme_mon[2] = {NULL, NULL}; -static Eio_File *gtk_theme_ls = NULL; -static Eina_List *gtk_theme_dirs = NULL; //Eio_File -static Eio_Monitor *gtk_theme_mon = NULL; -static Eina_List *gtk_theme_mons = NULL; //Eio_Monitor -static Eio_File *bg_ls[2] = {NULL, NULL}; -static Eio_Monitor *bg_mon[2] = {NULL, NULL}; -static Eina_Hash *tags_name_hash = NULL; /* (const char*)tag:(Eina_Stringshare*)tag */ -static Eina_Hash *tags_hash = NULL; /* tag:item */ -static Eina_Hash *tags_alias_hash = NULL; /* alias:tag */ -static Eina_Hash *tags_tag_alias_hash = NULL; /* tag:Eina_List(aliases) */ -static Eina_Hash *tags_alias_name_hash = NULL; /* (const char*)alias:(Eina_Stringshare*)alias */ -static Eina_List *tags_alias_list = NULL; /* alias:tag */ -static Eina_List *tags_list = NULL; /* Eina_Stringshare */ -static Eina_List *opts_changed_list = NULL; //co->changed -static Eina_List *handlers = NULL; -static Eina_List *bgs = NULL; -static Eina_List *sbgs = NULL; -static Eina_List *themes = NULL; -static Eina_List *sthemes = NULL; -static Eina_List *gtk_themes = NULL; -static Eina_Bool event_block = EINA_TRUE; -static Eina_List *categories = NULL; -static Eina_Hash *category_hash = NULL; -static Eina_Hash *category_icon_hash = NULL; -static Eina_Hash *domain_hash = NULL; -static const char *domain_current = NULL; - -static void -_e_configure_option_event_str_end(void *d EINA_UNUSED, E_Event_Configure_Option_Category_Add *ev) -{ - eina_stringshare_del(ev->category); - free(ev); -} - -static void -_e_configure_option_event_category_add_del(Eina_Stringshare *cat, Eina_Bool del) -{ - E_Event_Configure_Option_Category_Add *ev; - - if (event_block) - { - if (del) eina_stringshare_del(cat); - return; - } - ev = E_NEW(E_Event_Configure_Option_Category_Add, 1); - ev->category = cat; - if (del) - ecore_event_add(E_EVENT_CONFIGURE_OPTION_CATEGORY_DEL, ev, (Ecore_End_Cb)_e_configure_option_event_str_end, NULL); - else - ecore_event_add(E_EVENT_CONFIGURE_OPTION_CATEGORY_ADD, ev, NULL, NULL); -} - -static void -_e_configure_option_event_tag_add_del(Eina_Stringshare *tag, Eina_Bool del) -{ - E_Event_Configure_Option_Tag_Add *ev; - - if (event_block) return; - ev = E_NEW(E_Event_Configure_Option_Tag_Add, 1); - ev->tag = tag; - if (del) - ecore_event_add(E_EVENT_CONFIGURE_OPTION_TAG_DEL, ev, (Ecore_End_Cb)_e_configure_option_event_str_end, NULL); - else - ecore_event_add(E_EVENT_CONFIGURE_OPTION_TAG_ADD, ev, NULL, NULL); -} - -static void -_e_configure_option_tag_alias_list_free(Eina_List *list) -{ - Eina_Stringshare *alias; - - EINA_LIST_FREE(list, alias) - { - eina_hash_del_by_key(tags_alias_name_hash, alias); - tags_alias_list = eina_list_remove(tags_alias_list, alias); - eina_hash_del_by_key(tags_alias_hash, alias); - } -} - -static void -_e_configure_option_tag_remove(E_Configure_Option *co, Eina_Stringshare *tag) -{ - Eina_List *items; - - items = eina_hash_find(tags_hash, tag); - if (!items) return; - items = eina_list_remove(items, co); - co->tags = eina_list_remove(co->tags, tag); - if (!items) - { - /* this seems dumb... */ - tags_list = eina_list_remove(tags_list, tag); - eina_hash_del_by_key(tags_name_hash, tag); - eina_hash_del_by_key(tags_tag_alias_hash, tag); - _e_configure_option_event_tag_add_del(tag, EINA_TRUE); - } - eina_hash_set(tags_hash, tag, items); -} - -static void -_e_configure_option_free(E_Configure_Option *co) -{ - if (co->changed) - { - eina_value_flush(&co->val); - if (opts_changed_list) - opts_changed_list = eina_list_remove(opts_changed_list, co); - } - if (co->data) - eina_stringshare_del(eina_hash_find(co->data, "icon")); - eina_hash_free(co->data); - E_FREE_LIST(co->tags, eina_stringshare_del); - eina_stringshare_del(co->name); - eina_stringshare_del(co->desc); - eina_stringshare_del(co->info); - eina_stringshare_del(co->changed_action); - free(co); -} - -static void -_e_configure_option_list_free(Eina_Inlist *l) -{ - while (l) - { - E_Configure_Option *co = (E_Configure_Option*)l; - - l = eina_inlist_remove(l, l); - e_configure_option_del(co); - } -} - -static void -_e_configure_option_event_del_end(void *d EINA_UNUSED, E_Event_Configure_Option_Del *ev) -{ - Eina_List *l, *ll; - Eina_Stringshare *tag; - - EINA_LIST_FOREACH_SAFE(ev->co->tags, l, ll, tag) - _e_configure_option_tag_remove(ev->co, tag); - _e_configure_option_free(ev->co); - free(ev); -} - -static void -_e_configure_option_event_del(E_Configure_Option *co) -{ - E_Event_Configure_Option_Del *ev; - - if (event_block) return; - ev = E_NEW(E_Event_Configure_Option_Del, 1); - ev->co = co; - ecore_event_add(E_EVENT_CONFIGURE_OPTION_CHANGED, ev, (Ecore_End_Cb)_e_configure_option_event_del_end, NULL); -} - -static void -_e_configure_option_event_changed(E_Configure_Option *co) -{ - E_Event_Configure_Option_Changed *ev; - - if (event_block) return; - ev = E_NEW(E_Event_Configure_Option_Changed, 1); - ev->co = co; - ecore_event_add(E_EVENT_CONFIGURE_OPTION_CHANGED, ev, NULL, NULL); -} - -static void -_e_configure_option_tag_append(E_Configure_Option *co, const char *tag) -{ - Eina_List *items; - - items = eina_hash_find(tags_hash, tag); - if (!items) - { - Eina_Stringshare *t; - - t = eina_stringshare_add(tag); - eina_hash_add(tags_name_hash, tag, t); - tags_list = eina_list_sorted_insert(tags_list, (Eina_Compare_Cb)strcmp, t); - _e_configure_option_event_tag_add_del(t, EINA_FALSE); - } - eina_hash_set(tags_hash, tag, eina_list_append(items, co)); - co->tags = eina_list_append(co->tags, eina_stringshare_add(tag)); -} - -static Eina_List * -_e_configure_option_ctx_list_prune(Eina_Stringshare *tag, Eina_List *opts, Eina_List *tags) -{ - Eina_List *l, *ll, *lll, *topts; - E_Configure_Option *co; - Eina_Stringshare *t; - - EINA_LIST_FOREACH_SAFE(opts, l, ll, co) - { - Eina_Bool found = EINA_FALSE; - - EINA_LIST_FOREACH(tags, lll, t) - { - if (t == tag) continue; - topts = eina_hash_find(tags_hash, t); - if (!topts) continue; - if (eina_list_data_find(topts, co)) - found = EINA_TRUE; - } - if (!found) - opts = eina_list_remove_list(opts, l); - } - - return opts; -} - -static void -_e_configure_option_value_reset(E_Configure_Option *co) -{ - if (co->type == E_CONFIGURE_OPTION_TYPE_CUSTOM) return; - if (co->changed) eina_value_flush(&co->val); - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_BOOL: - eina_value_setup(&co->val, EINA_VALUE_TYPE_UCHAR); - break; - - case E_CONFIGURE_OPTION_TYPE_INT: - case E_CONFIGURE_OPTION_TYPE_ENUM: - eina_value_setup(&co->val, EINA_VALUE_TYPE_INT); - break; - - case E_CONFIGURE_OPTION_TYPE_UINT: - eina_value_setup(&co->val, EINA_VALUE_TYPE_UINT); - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - eina_value_setup(&co->val, EINA_VALUE_TYPE_DOUBLE); - break; - - case E_CONFIGURE_OPTION_TYPE_STR: - eina_value_setup(&co->val, EINA_VALUE_TYPE_STRINGSHARE); - break; - - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - break; - } -} - -static Eina_Bool -_e_configure_option_apply(E_Configure_Option *co, Eina_List **events, Eina_List **funcs, Eina_List **acts) -{ - E_Action *act; - void (*none)(void) = NULL; - - if (!co->changed) return EINA_FALSE; - if ((co->type == E_CONFIGURE_OPTION_TYPE_DOUBLE_INT) || (co->type == E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT)) - { - double dbl; - long x; - - eina_value_get(&co->val, &dbl); - x = lround(dbl); - if (co->type == E_CONFIGURE_OPTION_TYPE_DOUBLE_INT) - *(int *)co->valptr = x; - else - *(unsigned int *)co->valptr = MAX(x, 0); - } - else if (co->type == E_CONFIGURE_OPTION_TYPE_STR) - { - eina_stringshare_replace(co->valptr, NULL); - eina_value_get(&co->val, co->valptr); - eina_stringshare_ref(*(Eina_Stringshare**)co->valptr); - } - else if (co->type != E_CONFIGURE_OPTION_TYPE_CUSTOM) - eina_value_get(&co->val, co->valptr); - _e_configure_option_value_reset(co); - - if (co->changed_action) - { - act = e_action_find(co->changed_action); - while (act && act->func.go) - { - if (!acts) - { - act->func.go((E_Object *)e_util_container_current_get(), NULL); - break; - } - if (*acts && eina_list_data_find(*acts, act)) break; - *acts = eina_list_append(*acts, act); - break; - } - } - while (co->event_type) - { - if (!events) - { - ecore_event_add(co->event_type, NULL, NULL, NULL); - break; - } - if (*events && eina_list_data_find(*events, (intptr_t *)(long)co->event_type)) break; - *events = eina_list_append(*events, (intptr_t *)(long)co->event_type); - break; - } - if (co->type == E_CONFIGURE_OPTION_TYPE_BOOL) - none = co->funcs[*(Eina_Bool *)co->valptr].none; - else if (co->funcs[0].none) - none = co->funcs[0].none; - while (none) - { - if (!funcs) - { - none(); - break; - } - if (*funcs && eina_list_data_find(*funcs, none)) break; - *funcs = eina_list_append(*funcs, none); - break; - } - if (co->funcs[0].one) - { - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_BOOL: - co->funcs[0].one(*(Eina_Bool *)co->valptr); - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - co->funcs[0].one(*(unsigned char *)co->valptr); - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: //lround(double) - case E_CONFIGURE_OPTION_TYPE_INT: - case E_CONFIGURE_OPTION_TYPE_ENUM: - co->funcs[0].one(*(int *)co->valptr); - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: //lround(double) - case E_CONFIGURE_OPTION_TYPE_UINT: - co->funcs[0].one(*(unsigned int *)co->valptr); - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - co->funcs[0].one(*(double *)co->valptr); - break; - - case E_CONFIGURE_OPTION_TYPE_STR: - co->funcs[0].one(*(Eina_Stringshare **)co->valptr); - break; - - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - break; - } - } - co->changed = EINA_FALSE; - _e_configure_option_event_changed(co); - - return co->requires_restart; -} - -/******************************************************** - * CHANGE CALLBACKS - */ - -static void -_e_configure_screensaver_changed(void) -{ - if ((e_config->backlight.idle_dim) && - (e_config->backlight.timer > (e_config->screensaver_timeout))) - { - e_config->screensaver_timeout = e_config->backlight.timer; - e_config->dpms_standby_timeout = e_config->screensaver_timeout; - e_config->dpms_suspend_timeout = e_config->screensaver_timeout; - e_config->dpms_off_timeout = e_config->screensaver_timeout; - } - e_screensaver_update(); - e_dpms_update(); -} - -static void -_e_configure_dpms_changed(void) -{ - e_backlight_mode_set(NULL, E_BACKLIGHT_MODE_NORMAL); - e_backlight_level_set(NULL, e_config->backlight.normal, -1.0); - - _e_configure_screensaver_changed(); - e_backlight_update(); -} - -static void -_e_configure_pointer_changed(void) -{ - const Eina_List *l; - E_Manager *man; - - EINA_LIST_FOREACH(e_manager_list(), l, man) - { - if (man->pointer && !e_config->show_cursor) - { - e_pointer_hide(man->pointer); - continue; - } - if (man->pointer) e_object_del(E_OBJECT(man->pointer)); - man->pointer = e_pointer_window_new(man->root, 1); - } -} - -static void -_e_configure_framerate_changed(void) -{ - edje_frametime_set(1.0 / e_config->framerate); - e_canvas_recache(); -} - -static void -_e_configure_zone_desks_count_changed(void) -{ - const Eina_List *l, *ll, *lll; - E_Manager *man; - E_Container *con; - E_Zone *zone; - - EINA_LIST_FOREACH(e_manager_list(), l, man) - EINA_LIST_FOREACH(man->containers, ll, con) - EINA_LIST_FOREACH(con->zones, lll, zone) - e_zone_desk_count_set(zone, e_config->zone_desks_x_count, e_config->zone_desks_x_count); -} - -/******************************************************** - * THUMB CALLBACKS - */ - -static Eina_Bool -_e_configure_transition_timer_cb(void *obj) -{ - Eina_Stringshare *file, *key; - Evas_Object *o, *oo; - - evas_object_data_del(obj, "conf_timer"); - o = edje_object_part_swallow_get(obj, "e.swallow.bg.new"); - edje_object_part_unswallow(obj, o); - oo = edje_object_part_swallow_get(obj, "e.swallow.bg.old"); - edje_object_part_unswallow(obj, oo); - edje_object_file_get(obj, &file, &key); - eina_stringshare_ref(file); - eina_stringshare_ref(key); - edje_object_file_set(obj, NULL, NULL); - edje_object_file_set(obj, file, key); - eina_stringshare_del(file); - eina_stringshare_del(key); - edje_object_part_swallow(obj, "e.swallow.bg.new", o); - edje_object_part_swallow(obj, "e.swallow.bg.old", oo); - edje_object_signal_emit(obj, "e,action,start", "e"); - return EINA_FALSE; -} - -static void -_e_configure_transition_done_cb(void *d EINA_UNUSED, Evas_Object *obj, const char *s EINA_UNUSED, const char *so EINA_UNUSED) -{ - Ecore_Timer *timer; - - timer = evas_object_data_get(obj, "conf_timer"); - if (timer) ecore_timer_reset(timer); - else evas_object_data_set(obj, "conf_timer", ecore_timer_add(1.0, _e_configure_transition_timer_cb, obj)); -} - -static void -_e_configure_transition_del_cb(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Ecore_Timer *timer; - - timer = evas_object_data_del(obj, "conf_timer"); - if (timer) ecore_timer_del(timer); -} - -static Evas_Object * -_e_configure_transition_thumb_cb(E_Configure_Option_Info *oi, Evas *evas) -{ - Evas_Object *oj = NULL, *obj, *o, *oa; - Evas *e; - E_Zone *zone; - - zone = e_util_zone_current_get(e_manager_current_get()); - - obj = e_widget_preview_add(evas, 150, (200 * zone->h) / zone->w); - oa = e_widget_aspect_add(evas, 150, (200 * zone->h) / zone->w); - e_widget_aspect_child_set(oa, obj); - - e = e_widget_preview_evas_get(obj); - - if (oi->thumb_key) - { - oj = edje_object_add(e); - edje_object_file_set(oj, oi->thumb_file, oi->thumb_key); - edje_object_signal_callback_add(oj, "e,state,done", "*", _e_configure_transition_done_cb, NULL); - evas_object_event_callback_add(oj, EVAS_CALLBACK_DEL, _e_configure_transition_del_cb, NULL); - e_widget_preview_extern_object_set(obj, oj); - - o = edje_object_add(e); - edje_object_file_set(o, oi->thumb_file, "e/transpreview/0"); - edje_object_part_swallow(oj, "e.swallow.bg.new", o); - } - - o = edje_object_add(e); - edje_object_file_set(o, oi->thumb_file, "e/transpreview/1"); - - if (oi->thumb_key) - { - edje_object_part_swallow(oj, "e.swallow.bg.old", o); - edje_object_signal_emit(oj, "e,action,start", "e"); - } - else - e_widget_preview_extern_object_set(obj, o); - - return obj; -} - -static Evas_Object * -_e_configure_border_style_thumb_cb(E_Configure_Option_Info *oi, Evas *evas) -{ - Evas_Object *ob, *orect, *oj = NULL; - - ob = e_livethumb_add(evas); - e_livethumb_vsize_set(ob, 150, 150); - if (oi->thumb_key) - { - oj = edje_object_add(e_livethumb_evas_get(ob)); - edje_object_file_set(oj, oi->thumb_file, oi->thumb_key); - e_livethumb_thumb_set(ob, oj); - } - orect = evas_object_rectangle_add(e_livethumb_evas_get(ob)); - evas_object_color_set(orect, 0, 0, 0, 128); - evas_object_show(orect); - if (oi->thumb_key) - edje_object_part_swallow(oj, "e.swallow.client", orect); - else - e_livethumb_thumb_set(ob, orect); - return ob; -} - -static Evas_Object * -_e_configure_icon_theme_thumb_cb(E_Configure_Option_Info *oi, Evas *evas) -{ - Evas_Object *of, *o; - unsigned int x, y; - const char **example_icon, *example_icons[] = - { - NULL, - "folder", - "user-home", - "text-x-generic", - "system-run", - "preferences-system", - NULL, - }; - if (oi->thumb_file) - { - example_icons[0] = oi->thumb_file; - example_icon = example_icons; - } - else - example_icon = example_icons + 1; - - of = e_widget_frametable_add(evas, _("Preview"), 1); - for (x = y = 0; (*example_icon); example_icon++) - { - const char *path; - - path = efreet_icon_path_find(oi->value, *example_icon, 48); - if (!path) continue; - o = e_icon_add(evas); - if (e_icon_file_set(o, path)) - e_icon_fill_inside_set(o, 1); - else - { - evas_object_del(o); - continue; - } - e_widget_frametable_object_append_full(of, o, x++, y, 1, 1, 1, 1, 0, 0, - 0.5, 0.5, 48, 48, 64, 64); - x %= 3; - if (!x) y++; - } - return of; -} - -static Evas_Object * -_e_configure_netwm_theme_thumb_cb(E_Configure_Option_Info *oi EINA_UNUSED, Evas *evas) -{ - Evas_Object *o; - -/* FIXME: uhhhhhhhhhhhhhhhhhhhhhh */ -//o = e_widget_label_add(evas, oi->name); - o = e_box_add(evas); - return o; -} - -/******************************************************** - * INFO CALLBACKS - */ - -/* FIXME - static Eina_List * - _e_configure_language_info_cb(E_Configure_Option *co) - { - Eina_List *l, *ret = NULL; - E_Configure_Option_Info *oi; - char *lang; - - l = e_intl_language_list(); - EINA_LIST_FREE(l, lang) - { - - //oi = e_configure_option_info_new(co, - free(lang); - } - - return ret; - } - */ - -static Eina_List * -_e_configure_border_shade_transition_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Linear"), - N_("Accelerate, then decelerate"), - N_("Accelerate"), - N_("Decelerate"), - N_("Pronounced accelerate"), - N_("Pronounced decelerate"), - N_("Pronounced accelerate, then decelerate"), - N_("Bounce"), - N_("Bounce more") - }; - - for (x = 0; x <= E_TRANSITION_BOUNCE_LOTS; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_window_placement_policy_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Try not to cover other windows"), - N_("Try not to cover gadgets"), - N_("Place at mouse pointer (automatic)"), - N_("Place at mouse pointer (interactive)") - }; - - for (x = 0; x <= E_WINDOW_PLACEMENT_MANUAL; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_focus_policy_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Click"), - N_("Pointer"), - N_("Sloppy") - }; - - for (x = 0; x <= E_FOCUS_SLOPPY; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_focus_setting_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Don't set focus on new windows"), - N_("Set focus on all new windows"), - N_("Set focus only on all new dialog windows"), - N_("Set focus only on new dialog windows if dialog's parent window has focus") - }; - - for (x = 0; x <= E_FOCUS_NEW_DIALOG_IF_OWNER_FOCUSED; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_window_activehint_policy_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Ignore application"), - N_("Animate application window"), - N_("Raise and set focus to application window") - }; - - for (x = 0; x <= E_ACTIVEHINT_POLICY_ACTIVATE; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_fullscreen_policy_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Resize window, do not resize screen"), - N_("Resize window and screen") - }; - - for (x = 0; x <= E_FULLSCREEN_ZOOM; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_maximize_policy_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Fullscreen"), /* 1 */ - N_("Expand to maximum size without covering shelves"), /* 2 */ - NULL, - N_("Expand to maximum size ignoring shelves") /* 4 */ - }; - - for (x = E_MAXIMIZE_FULLSCREEN; x <= E_MAXIMIZE_FILL; x++) - { - if (!name[x - 1]) continue; - oi = e_configure_option_info_new(co, _(name[x - 1]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_font_hinting_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("No hinting"), - N_("Automatic hinting"), - N_("Bytecode hinting") - }; - - for (x = 0; x <= EVAS_FONT_HINTING_BYTECODE; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_desklock_login_box_zone_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - int num = 0; - E_Manager *m; - Eina_List *ml; - const char *name[] = - { - N_("Show on all screens"), - N_("Show on screen of pointer"), - N_("Show on screen %d") - }; - - EINA_LIST_FOREACH(e_manager_list(), ml, m) - { - Eina_List *cl; - E_Container *con; - - EINA_LIST_FOREACH(m->containers, cl, con) - num += eina_list_count(con->zones); - } - - for (x = -2; x < num; x++) - { - char buf[128]; - - if (x < 0) - oi = e_configure_option_info_new(co, _(name[x + 2]), (intptr_t *)(long)x); - else - { - snprintf(buf, sizeof(buf), _(name[2]), x); - oi = e_configure_option_info_new(co, buf, (intptr_t *)(long)x); - } - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_clientlist_group_by_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("No grouping"), - N_("Virtual desktop"), - N_("Window class") - }; - - for (x = 0; x <= E_CLIENTLIST_GROUP_CLASS; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_clientlist_separate_with_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("No separation"), - N_("Separator bars"), - N_("Separate menus") - }; - - for (x = 0; x <= E_CLIENTLIST_GROUP_SEP_MENU; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_clientlist_sort_by_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("No sorting"), - N_("Alphabetical order"), - N_("Window stacking layer"), - N_("Recently used windows first") - }; - - for (x = 0; x <= E_CLIENTLIST_SORT_MOST_RECENT; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_clientlist_separate_iconified_apps_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Group by owner virtual desktop"), - N_("Group by current virtual desktop"), - N_("Separate group") - }; - - for (x = 0; x <= E_CLIENTLIST_GROUPICONS_SEP; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_desk_flip_animate_type_info_cb(E_Configure_Option *co) -{ - Eina_List *l, *ret = NULL; - E_Configure_Option_Info *oi; - Eina_Stringshare *grp; - - l = e_theme_collection_items_find("base/theme/borders", "e/comp/effects/auto"); - grp = eina_stringshare_add("none"); - oi = e_configure_option_info_new(co, _("none"), grp); - oi->current = (*(Eina_Stringshare **)co->valptr == grp); - ret = eina_list_append(ret, oi); - EINA_LIST_FREE(l, grp) - { - char buf[1024]; - Eina_Stringshare *s; - - /* usable desk flip animations must have auto/ prefix */ - snprintf(buf, sizeof(buf), "auto/%s", grp); - s = eina_stringshare_add(buf); - oi = e_configure_option_info_new(co, _(grp), s); - oi->current = (*(Eina_Stringshare **)co->valptr == s); - ret = eina_list_append(ret, oi); - eina_stringshare_del(grp); - } - return ret; -} - -static Eina_List * -_e_configure_screen_limits_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - N_("Allow windows partly out of the screen limits"), - N_("Allow windows completely out of the screen limits"), - N_("Keep windows completely within the screen limits") - }; - - for (x = 0; x <= E_SCREEN_LIMITS_WITHIN; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t *)(long)x); - oi->current = (*(int *)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static int -_e_configure_icon_theme_info_sort_cb(const void *data1, const void *data2) -{ - const Efreet_Icon_Theme *m1 = data1, *m2 = data2; - - if (!data2) return -1; - if (!m1->name.name) return 1; - if (!m2->name.name) return -1; - - return strcmp(m1->name.name, m2->name.name); -} - -static Eina_List * -_e_configure_icon_theme_info_cb(E_Configure_Option *co) -{ - Eina_List *l, *ret = NULL; - Efreet_Icon_Theme *theme; - E_Configure_Option_Info *oi; - - l = efreet_icon_theme_list_get(); - if (!l) return NULL; - l = eina_list_sort(l, 0, _e_configure_icon_theme_info_sort_cb); - EINA_LIST_FREE(l, theme) - { - if (!theme->directories) continue; //invalid - if (!e_util_strcasecmp(theme->name.internal, "hicolor")) continue; //default - oi = e_configure_option_info_new(co, theme->name.name, eina_stringshare_add(theme->name.internal)); - oi->current = !e_util_strcmp(e_config->icon_theme, theme->name.internal); - oi->thumb_file = eina_stringshare_add(theme->example_icon); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_netwm_theme_info_cb(E_Configure_Option *co) -{ - Eina_List *l, *ret = NULL; - E_Configure_Option_Info *oi; - Eina_Stringshare *dir; - Eina_Bool gtk2, gtk3; - - EINA_LIST_FOREACH(gtk_themes, l, dir) - { - char buf[PATH_MAX]; - const char *name; - - snprintf(buf, sizeof(buf), "%s/gtk-2.0", dir); - gtk2 = ecore_file_is_dir(buf); - snprintf(buf, sizeof(buf), "%s/gtk-3.0", dir); - gtk3 = ecore_file_is_dir(buf); - if ((!gtk2) && (!gtk3)) continue; - name = ecore_file_file_get(dir); - snprintf(buf, sizeof(buf), "%s (%s)%s%s%s", name, gtk2 ? "gtk2" : "gtk3", - (gtk2 && gtk3) ? " (" : "", (gtk2 && gtk3) ? "gtk3" : "", (gtk2 && gtk3) ? ")" : ""); - oi = e_configure_option_info_new(co, buf, eina_stringshare_add(name)); - oi->current = (e_config->xsettings.net_theme_name == oi->value); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_e_configure_transition_info_cb(E_Configure_Option *co) -{ - Eina_Stringshare *style; - Eina_List *l, *ret = NULL; - Eina_Stringshare *cur, *file; - char buf[4096]; - const char *key; - E_Configure_Option_Info *oi; - - file = e_theme_edje_file_get("base/theme/widgets", "e/transpreview/0"); - key = "e/transitions/%s"; - cur = *(Eina_Stringshare **)co->valptr; - - oi = e_configure_option_info_new(co, _("None"), NULL); - oi->thumb_file = eina_stringshare_ref(file); - oi->current = (!cur); - ret = eina_list_append(ret, oi); - - l = e_theme_transition_list(); - EINA_LIST_FREE(l, style) - { - oi = e_configure_option_info_new(co, style, style); - ret = eina_list_append(ret, oi); - oi->thumb_file = eina_stringshare_ref(file); - snprintf(buf, sizeof(buf), key, style); - oi->thumb_key = eina_stringshare_add(buf); - oi->current = (style == cur); - } - return ret; -} - -static Eina_List * -_e_configure_border_style_info_cb(E_Configure_Option *co) -{ - Eina_Stringshare *style; - Eina_List *l, *ret = NULL; - Eina_Stringshare *file; - char buf[4096]; - const char *key; - E_Configure_Option_Info *oi; - - file = e_theme_edje_file_get("base/theme/borders", "e/widgets/border/default/border"); - oi = e_configure_option_info_new(co, "borderless", eina_stringshare_add("borderless")); - ret = eina_list_append(ret, oi); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_add("e/widgets/border/borderless/border"); - oi->current = !e_util_strcmp(e_config->theme_default_border_style, "borderless"); - key = "e/widgets/border/%s/border"; - - l = e_theme_border_list(); - EINA_LIST_FREE(l, style) - { - oi = e_configure_option_info_new(co, style, style); - ret = eina_list_append(ret, oi); - oi->thumb_file = eina_stringshare_ref(file); - snprintf(buf, sizeof(buf), key, style); - oi->thumb_key = eina_stringshare_add(buf); - if (e_config->theme_default_border_style) - oi->current = (style == e_config->theme_default_border_style); - else if (!strcmp(style, "default")) - oi->current = EINA_TRUE; - } - return ret; -} - -static Eina_List * -_e_configure_init_default_theme_info_cb(E_Configure_Option *co) -{ - Eina_List *l, *ret = NULL; - Eina_Stringshare *file; - char buf[PATH_MAX], *p; - E_Configure_Option_Info *oi; - Eina_Stringshare *key; - - key = eina_stringshare_add("e/init/splash"); - EINA_LIST_FOREACH(themes, l, file) - { - if (!edje_file_group_exists(file, key)) continue; - p = strrchr(file, '.'); - strncpy(buf, ecore_file_file_get(file), p - file); - oi = e_configure_option_info_new(co, buf, eina_stringshare_add(buf)); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_ref(key); - ret = eina_list_append(ret, oi); - oi->current = (oi->name == *(Eina_Stringshare **)co->valptr); - } - if (ret && sthemes) - ret = eina_list_append(ret, e_configure_option_info_new(co, NULL, NULL)); - EINA_LIST_FOREACH(sthemes, l, file) - { - if (!edje_file_group_exists(file, key)) continue; - p = strrchr(file, '.'); - strncpy(buf, ecore_file_file_get(file), p - file); - oi = e_configure_option_info_new(co, buf, eina_stringshare_add(buf)); - ret = eina_list_append(ret, oi); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_ref(key); - oi->current = (oi->name == *(Eina_Stringshare **)co->valptr); - } - eina_stringshare_del(key); - return ret; -} - -static Eina_List * -_e_configure_background_info_cb(E_Configure_Option *co) -{ - Eina_List *l, *ret = NULL; - Eina_Stringshare *file; - const char *f; - Eina_Stringshare *cur; - char buf[PATH_MAX], *p; - E_Configure_Option_Info *oi; - Eina_Stringshare *key; - - key = eina_stringshare_add("e/desktop/background"); - cur = *(Eina_Stringshare **)co->valptr; - if (!cur) - { - cur = e_theme_edje_file_get(NULL, "e/desktop/background"); - } - EINA_LIST_FOREACH(themes, l, file) - { - if (!edje_file_group_exists(file, key)) continue; - p = strrchr(file, '.'); - f = ecore_file_file_get(file); - memcpy(buf, f, p - f); - buf[p - f] = 0; - oi = e_configure_option_info_new(co, buf, eina_stringshare_ref(file)); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_ref(key); - ret = eina_list_append(ret, oi); - oi->current = ((file == cur) || (!e_util_strcmp(f, cur))); - } - EINA_LIST_FOREACH(sthemes, l, file) - { - if (!edje_file_group_exists(file, key)) continue; - p = strrchr(file, '.'); - f = ecore_file_file_get(file); - memcpy(buf, f, p - f); - buf[p - f] = 0; - oi = e_configure_option_info_new(co, buf, eina_stringshare_ref(file)); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_ref(key); - ret = eina_list_append(ret, oi); - oi->current = ((file == cur) || (!e_util_strcmp(f, cur))); - } - EINA_LIST_FOREACH(bgs, l, file) - { - if (!edje_file_group_exists(file, key)) continue; - p = strrchr(file, '.'); - f = ecore_file_file_get(file); - memcpy(buf, f, p - f); - buf[p - f] = 0; - oi = e_configure_option_info_new(co, buf, eina_stringshare_ref(file)); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_ref(key); - ret = eina_list_append(ret, oi); - oi->current = ((file == cur) || (!e_util_strcmp(f, cur))); - } - if (ret && sthemes) - ret = eina_list_append(ret, e_configure_option_info_new(co, NULL, NULL)); - EINA_LIST_FOREACH(sbgs, l, file) - { - if (!edje_file_group_exists(file, key)) continue; - p = strrchr(file, '.'); - f = ecore_file_file_get(file); - memcpy(buf, f, p - f); - buf[p - f] = 0; - oi = e_configure_option_info_new(co, buf, eina_stringshare_ref(file)); - ret = eina_list_append(ret, oi); - oi->thumb_file = eina_stringshare_ref(file); - oi->thumb_key = eina_stringshare_ref(key); - oi->current = ((file == cur) || (!e_util_strcmp(f, cur))); - } - eina_stringshare_del(key); - return ret; -} - -static int -_sort_cb(const char *a, const char *b) -{ - const char *f1, *f2; - - f1 = ecore_file_file_get(a); - f2 = ecore_file_file_get(b); - return e_util_strcasecmp(f1, f2); -} - -static Eina_Bool -_gtk_theme_check(const char *file) -{ - Eina_Stringshare *dir; - Eina_List *l; - - EINA_LIST_FOREACH(gtk_themes, l, dir) - if (!strcasecmp(ecore_file_file_get(dir), ecore_file_file_get(file))) return EINA_FALSE; - return EINA_TRUE; -} - -static void -_init_main_cb(void *data __UNUSED__, Eio_File *handler, const char *file) -{ - if (handler == theme_ls[0]) - themes = eina_list_sorted_insert(themes, (Eina_Compare_Cb)_sort_cb, eina_stringshare_add(file)); - else if (handler == theme_ls[1]) - sthemes = eina_list_sorted_insert(sthemes, (Eina_Compare_Cb)_sort_cb, eina_stringshare_add(file)); - else if (handler == bg_ls[0]) - bgs = eina_list_sorted_insert(bgs, (Eina_Compare_Cb)_sort_cb, eina_stringshare_add(file)); - else if (handler == bg_ls[1]) - sbgs = eina_list_sorted_insert(sbgs, (Eina_Compare_Cb)_sort_cb, eina_stringshare_add(file)); - else if (_gtk_theme_check(file)) - gtk_themes = eina_list_sorted_insert(gtk_themes, (Eina_Compare_Cb)_sort_cb, eina_stringshare_add(file)); -} - -static void -_init_error_cb(void *data __UNUSED__, Eio_File *handler, int error __UNUSED__) -{ - if ((!theme_ls[0]) && (!theme_ls[1]) && (!bg_ls[0]) && (!bg_ls[1]) && - (!gtk_theme_ls) && (!gtk_theme_dirs)) goto out; - if (theme_ls[0] == handler) - { - theme_ls[0] = NULL; - E_FREE_LIST(themes, eina_stringshare_del); - } - else if (theme_ls[1] == handler) - { - theme_ls[1] = NULL; - E_FREE_LIST(sthemes, eina_stringshare_del); - } - else if (bg_ls[0] == handler) - { - bg_ls[0] = NULL; - E_FREE_LIST(bgs, eina_stringshare_del); - } - else if (bg_ls[1] == handler) - { - bg_ls[1] = NULL; - E_FREE_LIST(sbgs, eina_stringshare_del); - } - else if (gtk_theme_ls == handler) - gtk_theme_ls = NULL; - else - gtk_theme_dirs = eina_list_remove(gtk_theme_dirs, handler); - return; -out: - E_FREE_LIST(themes, eina_stringshare_del); - E_FREE_LIST(sthemes, eina_stringshare_del); - E_FREE_LIST(bgs, eina_stringshare_del); - E_FREE_LIST(sbgs, eina_stringshare_del); - E_FREE_LIST(gtk_themes, eina_stringshare_del); -} - -static void -_init_done_cb(void *data __UNUSED__, Eio_File *handler) -{ - if ((!theme_ls[0]) && (!theme_ls[1]) && (!bg_ls[0]) && (!bg_ls[1]) && - (!gtk_theme_ls) && (!gtk_theme_dirs)) goto out; - if (theme_ls[0] == handler) - theme_ls[0] = NULL; - else if (theme_ls[1] == handler) - theme_ls[1] = NULL; - else if (bg_ls[0] == handler) - bg_ls[0] = NULL; - else if (bg_ls[1] == handler) - bg_ls[1] = NULL; - else if (gtk_theme_ls == handler) - gtk_theme_ls = NULL; - else - gtk_theme_dirs = eina_list_remove(gtk_theme_dirs, handler); - - return; -out: - E_FREE_LIST(themes, eina_stringshare_del); - E_FREE_LIST(sthemes, eina_stringshare_del); - E_FREE_LIST(bgs, eina_stringshare_del); - E_FREE_LIST(sbgs, eina_stringshare_del); - E_FREE_LIST(gtk_themes, eina_stringshare_del); -} - -static Eina_Bool -_gtk_filter_cb(void *data __UNUSED__, Eio_File *handler __UNUSED__, const char *file) -{ - return ecore_file_is_dir(file); -} - -static Eina_Bool -_edj_filter_cb(void *data __UNUSED__, Eio_File *handler __UNUSED__, const char *file) -{ - return eina_str_has_extension(file, ".edj"); -} - -static Eina_Bool -_monitor_theme_rescan(void *d __UNUSED__, int type __UNUSED__, Eio_Monitor_Event *ev) -{ - char buf[PATH_MAX]; - - if (theme_mon[0] == ev->monitor) - { - if (theme_ls[0]) return ECORE_CALLBACK_RENEW; - E_FREE_LIST(themes, eina_stringshare_del); - e_user_dir_concat_static(buf, "themes"); - theme_ls[0] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - } - else if (theme_mon[1] == ev->monitor) - { - if (theme_ls[1]) return ECORE_CALLBACK_RENEW; - E_FREE_LIST(sthemes, eina_stringshare_del); - e_prefix_data_concat_static(buf, "data/themes"); - theme_ls[1] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - } - else if (bg_mon[0] == ev->monitor) - { - if (bg_ls[0]) return ECORE_CALLBACK_RENEW; - E_FREE_LIST(bgs, eina_stringshare_del); - e_user_dir_concat_static(buf, "backgrounds"); - bg_ls[0] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - } - else if (bg_mon[1] == ev->monitor) - { - if (bg_ls[1]) return ECORE_CALLBACK_RENEW; - E_FREE_LIST(sbgs, eina_stringshare_del); - e_prefix_data_concat_static(buf, "data/backgrounds"); - bg_ls[1] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - } - else - { - const char *dir; - Eina_List *l; - - if (gtk_theme_ls && (gtk_theme_mon == ev->monitor)) return ECORE_CALLBACK_RENEW; - if (gtk_theme_ls) eio_file_cancel(gtk_theme_ls); - E_FREE_LIST(gtk_themes, eina_stringshare_del); - E_FREE_LIST(gtk_theme_dirs, eio_file_cancel); - e_user_homedir_concat_static(buf, ".themes"); - gtk_theme_ls = eio_file_ls(buf, _gtk_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - EINA_LIST_FOREACH(efreet_data_dirs_get(), l, dir) - { - Eio_File *ls; - - snprintf(buf, sizeof(buf), "%s/themes", dir); - ls = eio_file_ls(buf, _gtk_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - if (!ls) continue; - gtk_theme_dirs = eina_list_append(gtk_theme_dirs, ls); - } - } - - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_monitor_error(void *d __UNUSED__, int type __UNUSED__, Eio_Monitor_Event *ev) -{ - if (theme_mon[0] == ev->monitor) - theme_mon[0] = NULL; - else if (theme_mon[1] == ev->monitor) - theme_mon[1] = NULL; - else if (bg_mon[0] == ev->monitor) - bg_mon[0] = NULL; - else if (bg_mon[1] == ev->monitor) - bg_mon[1] = NULL; - else if (gtk_theme_mon == ev->monitor) - gtk_theme_mon = NULL; - else - gtk_theme_mons = eina_list_remove(gtk_theme_mons, ev->monitor); - return ECORE_CALLBACK_RENEW; -} - -EINTERN int -e_configure_option_init(void) -{ - E_Configure_Option *co; - char buf[PATH_MAX]; - - E_EVENT_CONFIGURE_OPTION_CHANGED = ecore_event_type_new(); - E_EVENT_CONFIGURE_OPTION_ADD = ecore_event_type_new(); - E_EVENT_CONFIGURE_OPTION_DEL = ecore_event_type_new(); - E_EVENT_CONFIGURE_OPTION_CATEGORY_ADD = ecore_event_type_new(); - E_EVENT_CONFIGURE_OPTION_CATEGORY_DEL = ecore_event_type_new(); - E_EVENT_CONFIGURE_OPTION_TAG_ADD = ecore_event_type_new(); - E_EVENT_CONFIGURE_OPTION_TAG_DEL = ecore_event_type_new(); - - domain_hash = eina_hash_string_superfast_new((Eina_Free_Cb)_e_configure_option_list_free); - tags_name_hash = eina_hash_string_superfast_new(NULL); - tags_hash = eina_hash_string_superfast_new(NULL); - tags_tag_alias_hash = eina_hash_stringshared_new((Eina_Free_Cb)_e_configure_option_tag_alias_list_free); - tags_alias_hash = eina_hash_string_superfast_new(NULL); - tags_alias_name_hash = eina_hash_string_superfast_new(NULL); -#define OPT_ADD(TYPE, NAME, DESC, ...) \ - co = e_configure_option_add(E_CONFIGURE_OPTION_TYPE_##TYPE, DESC, #NAME, &e_config->NAME, NULL); \ - e_configure_option_tags_set(co, (const char *[]){__VA_ARGS__, NULL}, 0) -#define OPT_HELP(STR) \ - co->help = eina_stringshare_add(STR) -#define OPT_MINMAX_STEP_FMT(MIN, MAX, STEP, FMT) \ - co->minmax[0] = (MIN), co->minmax[1] = (MAX), co->step = (STEP), \ - co->info = eina_stringshare_add(FMT) -#define OPT_ICON(ICON) \ - e_configure_option_data_set(co, "icon", eina_stringshare_add(ICON)) - - e_configure_option_domain_current_set("internal"); - - OPT_ADD(BOOL, show_splash, _("Show splash screen on startup"), _("splash"), _("startup")); - OPT_ADD(STR, init_default_theme, _("Startup splash theme"), _("splash"), _("startup"), _("theme"), _("animate")); - co->info_cb = _e_configure_init_default_theme_info_cb; - OPT_ICON("preferences-startup"); - - OPT_ADD(STR, transition_start, _("Startup transition effect"), _("transition"), _("startup"), _("theme"), _("animate")); - co->info_cb = _e_configure_transition_info_cb; - co->thumb_cb = _e_configure_transition_thumb_cb; - OPT_ICON("preferences-transitions"); - OPT_ADD(STR, transition_desk, _("Desk change transition effect"), _("transition"), _("vdesk"), _("theme"), _("animate")); - co->info_cb = _e_configure_transition_info_cb; - co->thumb_cb = _e_configure_transition_thumb_cb; - OPT_ICON("preferences-transitions"); - OPT_ADD(STR, transition_change, _("Wallpaper change transition effect"), _("transition"), _("wallpaper"), _("theme"), _("animate")); - co->info_cb = _e_configure_transition_info_cb; - co->thumb_cb = _e_configure_transition_thumb_cb; - OPT_ICON("preferences-transitions"); - - OPT_ADD(STR, desktop_default_background, _("Default desktop wallpaper"), _("wallpaper")); - co->info_cb = _e_configure_background_info_cb; - co->funcs[0].none = co->funcs[1].none = e_bg_update; - OPT_ICON("preferences-desktop-wallpaper"); - OPT_ADD(STR, desktop_default_name, _("Default desktop name"), _("desktop"), _("name")); - OPT_HELP(_("Used in Pager displays")); - OPT_ICON("preferences-desktop"); - //OPT_ADD(STR, desktop_default_window_profile; - - OPT_ADD(DOUBLE, menus_scroll_speed, _("Menu scroll speed"), _("menu"), _("scroll"), _("speed")); - OPT_MINMAX_STEP_FMT(1.0, 20000.0, 100, _("%5.0f pixels/s")); - OPT_HELP(_("Speed at which the menus move onto screen if offscreen")); - OPT_ADD(DOUBLE, menus_fast_mouse_move_threshhold, _("Menu fast move threshold"), _("menu"), _("move"), _("speed")); - OPT_MINMAX_STEP_FMT(1.0, 2000.0, 10, _("%4.0f pixels/s")); - OPT_HELP(_("Moving the mouse faster than this speed over a menu causes menu items to not be selected")); - OPT_ADD(DOUBLE, menus_click_drag_timeout, _("Menu mouse deactivate delay"), _("menu"), _("drag"), _("delay")); - OPT_MINMAX_STEP_FMT(0.0, 10.0, 0.25, _("%2.2f seconds")); - OPT_HELP(_("The minimum time before a menu can be closed by clicking the mouse outside the menu")); - OPT_ADD(DOUBLE_INT, menu_autoscroll_margin, _("Menu autoscroll margin"), _("menu"), _("scroll")); - OPT_MINMAX_STEP_FMT(0, 50, 1, _("%2.0f pixels")); - OPT_HELP(_("The distance from the edge of the screen before menus begin to move away from the edge")); - OPT_ADD(DOUBLE_INT, menu_autoscroll_cursor_margin, _("Menu autoscroll cursor margin"), _("menu"), _("scroll"), _("mouse"), _("pointer")); - OPT_MINMAX_STEP_FMT(0, 50, 1, _("%2.0f pixels")); - OPT_HELP(_("The distance of the mouse pointer from the edge of the screen before menus begin to move away from the edge")); - - OPT_ADD(BOOL, border_shade_animate, _("Enable window shading animation"), _("border"), _("shade"), _("animate")); - OPT_ADD(ENUM, border_shade_transition, _("Window shade animation type"), _("border"), _("shade"), _("animate")); //enum - co->info_cb = _e_configure_border_shade_transition_info_cb; - OPT_ICON("preferences-system-windows"); - OPT_ADD(DOUBLE, border_shade_speed, _("Window shade animation speed"), _("border"), _("shade"), _("animate"), _("speed")); - OPT_MINMAX_STEP_FMT(100, 9900, 100, _("%4.0f pixels/s")); - - /* advanced */ - OPT_ADD(DOUBLE, framerate, _("Framerate"), _("speed"), _("animate")); - OPT_MINMAX_STEP_FMT(5.0, 200.0, 1, _("%1.0f frames/second")); - OPT_HELP(_("The framerate at which animations in Enlightenment occur")); - co->funcs[0].none = _e_configure_framerate_changed; - OPT_ADD(DOUBLE_INT, priority, _("Application exec priority"), _("application"), _("exec"), _("priority")); - OPT_MINMAX_STEP_FMT(0, 19, 1, _("%1.0f")); - co->funcs[0].one = ecore_exe_run_priority_set; - OPT_ADD(DOUBLE_INT, image_cache, _("Image cache size"), _("cache"), _("image"), _("size")); - OPT_MINMAX_STEP_FMT(0, 32 * 1024, 1024, _("%4.0f KiB")); - co->funcs[0].none = _e_configure_framerate_changed; - OPT_ADD(DOUBLE_INT, font_cache, _("Font cache size"), _("cache"), _("font"), _("size")); - OPT_MINMAX_STEP_FMT(0, 4 * 1024, 128, _("%3.0f KiB")); - co->funcs[0].none = _e_configure_framerate_changed; - OPT_ADD(DOUBLE_INT, edje_cache, _("Edje cache size"), _("cache"), _("edje"), _("size")); - OPT_MINMAX_STEP_FMT(0, 256, 1, _("%1.0f files")); - co->funcs[0].none = _e_configure_framerate_changed; - OPT_ADD(DOUBLE_INT, edje_collection_cache, _("Edje collection cache size"), _("cache"), _("edje"), _("size")); - OPT_MINMAX_STEP_FMT(0, 512, 2, _("%1.0f collections")); - co->funcs[0].none = _e_configure_framerate_changed; - OPT_ADD(DOUBLE_INT, cache_flush_poll_interval, _("Cache flushing interval"), _("cache"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(8, 4096, 8, _("%1.0f ticks")); - co->funcs[0].none = _e_configure_framerate_changed; - - OPT_ADD(DOUBLE_INT, zone_desks_x_count, _("Horizontal virtual desktop count"), _("vdesk"), _("desktop"), _("screen")); - co->funcs[0].none = _e_configure_zone_desks_count_changed; - OPT_ADD(DOUBLE_INT, zone_desks_y_count, _("Vertical virtual desktop count"), _("vdesk"), _("desktop"), _("screen")); - co->funcs[0].none = _e_configure_zone_desks_count_changed; - OPT_ADD(BOOL, edge_flip_dragging, _("Edge flip while dragging"), _("edge"), _("flip"), _("drag"), _("binding")); - OPT_HELP(_("Enable edge binding functionality while dragging objects to screen edge")); - OPT_ADD(BOOL, use_shaped_win, _("Use shaped windows instead of ARGB"), _("border")); - - OPT_ADD(CUSTOM, modules, _("Module settings"), _("module")); - co->info = eina_stringshare_add("extensions/modules"); - OPT_ICON("preferences-plugin"); - OPT_ADD(BOOL, no_module_delay, _("Disable module delay"), _("module"), _("delay")); - OPT_HELP(_("If enabled, this causes E to load all modules at once during startup " - "instead of loading them incrementally")); - - /* FIXME */ - //OPT_ADD(CUSTOM, language, _("Language"), _("language")); - //co->info = eina_stringshare_add("language/language_settings"); - //OPT_ICON("preferences-desktop-locale"); - //co->requires_restart = 1; - //co->funcs[0].one = e_intl_language_set; - //OPT_ADD(CUSTOM, desklock_language, _("Desklock language"), _("desklock"), _("language")); - //co->info = eina_stringshare_add("language/desklock_language_settings"); - //OPT_ICON("preferences-desklock-locale"); - - OPT_ADD(ENUM, window_placement_policy, _("Window placement policy"), _("border"), _("placement")); //enum - co->info_cb = _e_configure_window_placement_policy_info_cb; - OPT_ICON("preferences-system-windows"); - OPT_HELP(_("Determines where and how new windows are placed when created")); - OPT_ADD(BOOL, window_grouping, _("Group new windows from same application"), _("border"), _("placement")); - OPT_ADD(BOOL, desk_auto_switch, _("Switch to desk of new window"), _("border"), _("placement"), _("vdesk")); - - OPT_ADD(ENUM, focus_policy, _("Window focus policy"), _("focus"), _("border")); //enum - co->info_cb = _e_configure_focus_policy_info_cb; - OPT_ICON("preferences-focus"); - OPT_ADD(ENUM, focus_setting, _("New window focus policy"), _("focus"), _("border")); //enum - co->info_cb = _e_configure_focus_setting_info_cb; - OPT_ICON("preferences-focus"); - OPT_ADD(BOOL, pass_click_on, _("Pass click to unfocused windows"), _("focus"), _("border"), _("click")); - OPT_HELP(_("When clicking an unfocused window, pass this click through to the application instead of only using it to focus the window")); - OPT_ADD(ENUM, window_activehint_policy, _("Policy when applications request focus"), _("focus"), _("border")); //enum - co->info_cb = _e_configure_window_activehint_policy_info_cb; - OPT_ICON("preferences-focus"); - OPT_ADD(BOOL, always_click_to_raise, _("Always raise window when clicked"), _("focus"), _("border"), _("click"), _("raise")); - OPT_ADD(BOOL, always_click_to_focus, _("Always focus window when clicked"), _("focus"), _("border"), _("click")); - OPT_ADD(BOOL, use_auto_raise, _("Enable window autoraise"), _("focus"), _("border"), _("raise")); - OPT_ADD(DOUBLE, auto_raise_delay, _("Window autoraise delay"), _("focus"), _("border"), _("raise"), _("delay")); - OPT_MINMAX_STEP_FMT(0.0, 9.9, 0.1, _("%1.1f seconds")); - OPT_ADD(BOOL, focus_last_focused_per_desktop, _("Revert window focus on desk switch"), _("border"), _("focus"), _("vdesk")); - OPT_ADD(BOOL, focus_revert_on_hide_or_close, _("Revert window focus on window hide or close"), _("border"), _("focus")); - OPT_ADD(BOOL, pointer_slide, _("Warp pointer to new windows and away from closed windows"), _("border"), _("focus"), _("warp"), _("pointer")); - OPT_ADD(BOOL, disable_all_pointer_warps, _("Prevent all forms of pointer warping"), _("border"), _("focus"), _("warp"), _("pointer")); - OPT_ADD(DOUBLE, pointer_warp_speed, _("Speed to move pointer when warping between windows"), _("border"), _("focus"), _("warp"), _("pointer"), _("speed")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, _("%1.2f")); - OPT_ADD(BOOL, border_raise_on_mouse_action, _("Windows raise on mouse move/resize"), _("border"), _("raise"), _("focus"), _("mouse"), _("pointer"), _("move"), _("resize")); - - OPT_ADD(DOUBLE_INT, drag_resist, _("Shelf gadget resistance"), _("gadget"), _("resist"), _("drag"), _("shelf")); - OPT_MINMAX_STEP_FMT(0, 100, 2, _("%2.0f pixels")); - - OPT_ADD(BOOL, use_resist, _("Enable resistance when dragging windows"), _("border"), _("resist"), _("drag")); - OPT_ADD(DOUBLE_INT, desk_resist, _("Window resistance against screen edges"), _("border"), _("resist"), _("vdesk"), _("screen"), _("drag")); - OPT_MINMAX_STEP_FMT(0, 100, 2, _("%2.0f pixels")); - OPT_ADD(DOUBLE_INT, window_resist, _("Window resistance against other windows"), _("border"), _("resist"), _("drag")); - OPT_MINMAX_STEP_FMT(0, 100, 2, _("%2.0f pixels")); - OPT_ADD(DOUBLE_INT, gadget_resist, _("Window resistance against desktop gadgets"), _("gadget"), _("resist"), _("desktop"), _("drag")); - OPT_MINMAX_STEP_FMT(0, 100, 2, _("%2.0f pixels")); - - OPT_ADD(BOOL, geometry_auto_move, _("Ensure initial placement of windows inside useful geometry"), _("border"), _("placement")); - OPT_HELP(_("Useful geometry is calculated as the screen size minus the geometry of any shelves which do not allow windows to overlap them. " - "This option ensures that non-user placement of windows will be inside the useful geometry of the current screen")); - OPT_ADD(BOOL, geometry_auto_resize_limit, _("Limit window autoresizing to useful geometry"), _("border"), _("placement"), _("resize")); - OPT_HELP(_("Useful geometry is calculated as the screen size minus the geometry of any shelves which do not allow windows to overlap them")); - - OPT_ADD(BOOL, winlist_warp_while_selecting, _("Winlist moves pointer to currently selected window while selecting"), _("border"), _("winlist"), _("focus"), _("warp"), _("pointer")); - OPT_ADD(BOOL, winlist_warp_at_end, _("Winlist moves pointer to currently selected window after winlist closes"), _("border"), _("winlist"), _("focus"), _("warp"), _("pointer")); - OPT_ADD(BOOL, winlist_no_warp_on_direction, _("Disable pointer warping on winlist directional focus change"), _("border"), _("winlist"), _("focus"), _("warp"), _("pointer")); - OPT_HELP(_("This option, when enabled, disables pointer warping only when switching windows using a directional winlist action (up/down/left/right)")); - OPT_ADD(BOOL, winlist_scroll_animate, _("Enable winlist scroll animation"), _("border"), _("winlist"), _("animate")); - OPT_ADD(DOUBLE, winlist_scroll_speed, _("Winlist scroll speed"), _("border"), _("winlist"), _("animate"), _("speed")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); - OPT_ADD(BOOL, winlist_list_show_iconified, _("Winlist shows iconified windows"), _("border"), _("winlist"), _("minimize")); - OPT_ADD(BOOL, winlist_list_show_other_desk_iconified, _("Winlist shows iconified windows from other desks"), _("border"), _("winlist"), _("minimize"), _("vdesk")); - OPT_ADD(BOOL, winlist_list_show_other_screen_iconified, _("Winlist shows iconified windows from other screens"), _("border"), _("winlist"), _("minimize"), _("screen")); - OPT_ADD(BOOL, winlist_list_show_other_desk_windows, _("Winlist shows windows from other desks"), _("border"), _("winlist"), _("vdesk")); - OPT_ADD(BOOL, winlist_list_show_other_screen_windows, _("Winlist shows windows from other screens"), _("border"), _("winlist"), _("screen")); - OPT_ADD(BOOL, winlist_list_uncover_while_selecting, _("Winlist uniconifies and unshades windows while selecting"), _("border"), _("winlist"), _("raise")); - OPT_ADD(BOOL, winlist_list_move_after_select, _("Winlist moves window to current screen+desk after selection"), _("border"), _("winlist"), _("vdesk"), _("screen")); - OPT_ADD(BOOL, winlist_list_jump_desk_while_selecting, _("Winlist switches desks while selecting"), _("border"), _("winlist"), _("vdesk")); - OPT_ADD(BOOL, winlist_list_focus_while_selecting, _("Winlist focuses windows while selecting"), _("border"), _("winlist"), _("focus")); - OPT_ADD(BOOL, winlist_list_raise_while_selecting, _("Winlist raises windows while selecting"), _("border"), _("winlist"), _("raise"), _("focus")); - OPT_ADD(DOUBLE, winlist_pos_align_x, _("Winlist horizontal alignment"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); - OPT_ADD(DOUBLE, winlist_pos_align_y, _("Winlist vertical alignment"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); - OPT_ADD(DOUBLE, winlist_pos_size_w, _("Winlist width"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); - OPT_ADD(DOUBLE, winlist_pos_size_h, _("Winlist height"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0.0, 1.0, 0.01, "%1.2f"); - OPT_ADD(DOUBLE_INT, winlist_pos_min_w, _("Winlist minimum width"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0, 4000, 10, _("%4.0f pixels")); - OPT_ADD(DOUBLE_INT, winlist_pos_min_h, _("Winlist minimum height"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0, 4000, 10, _("%4.0f pixels")); - OPT_ADD(DOUBLE_INT, winlist_pos_max_w, _("Winlist maximum width"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0, 4000, 10, _("%4.0f pixels")); - OPT_ADD(DOUBLE_INT, winlist_pos_max_h, _("Winlist maximum height"), _("border"), _("winlist"), _("placement")); - OPT_MINMAX_STEP_FMT(0, 4000, 10, _("%4.0f pixels")); - - OPT_ADD(ENUM, fullscreen_policy, _("Fullscreen window policy"), _("fullscreen")); //enum - co->info_cb = _e_configure_fullscreen_policy_info_cb; - OPT_ICON("preferences-window-geometry"); - OPT_ADD(ENUM, maximize_policy, _("Window maximize policy"), _("border"), _("maximize")); //enum - co->info_cb = _e_configure_maximize_policy_info_cb; - OPT_ICON("preferences-window-geometry"); - OPT_ADD(BOOL, allow_manip, _("Allow moving of maximized windows"), _("border"), _("maximize")); - OPT_ADD(BOOL, border_fix_on_shelf_toggle, _("Adjust windows on shelf toggle"), _("border"), _("shelf"), _("placement")); - OPT_HELP(_("When using an autohiding shelf, this option causes maximized windows to expand and contract to fill the space that the shelf occupies when it hides")); - OPT_ADD(BOOL, allow_above_fullscreen, _("Allow windows above fullscreen windows"), _("border"), _("focus"), _("placement"), _("fullscreen")); - - OPT_ADD(BOOL, kill_if_close_not_possible, _("Kill window if process not responding to close"), _("border"), _("kill")); - OPT_ADD(BOOL, kill_process, _("Kill process instead of client"), _("border"), _("kill")); - OPT_ADD(DOUBLE, kill_timer_wait, _("Window kill delay"), _("border"), _("kill"), _("delay")); - OPT_MINMAX_STEP_FMT(1, 30, 1, _("%1.0f seconds")); - OPT_ADD(BOOL, ping_clients, _("Enable window client pinging"), _("border"), _("delay")); - OPT_ADD(DOUBLE_INT, ping_clients_interval, _("Window client ping interval (CPU ticks)"), _("border"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(1, 256, 1, _("%1.0f seconds")); - - /* FIXME */ - //OPT_ADD(CUSTOM, remembers, _("Window remember settings"), _("border"), _("remember")); - //co->info = eina_stringshare_add("windows/window_remembers"); - //OPT_ICON("preferences-desktop-window-remember"); - OPT_ADD(BOOL, remember_internal_windows, _("Remember internal window geometry"), _("border"), _("remember")); - OPT_HELP(_("This option causes E to remember the geometry of its internal dialogs and windows, NOT including filemanager windows")); - OPT_ADD(BOOL, remember_internal_fm_windows, _("Remember internal filemanager window geometry"), _("border"), _("remember"), _("files")); - OPT_HELP(_("This option causes E to remember the geometry of its internal filemanager windows, NOT including dialog windows, based on the directory the window is showing")); - OPT_ADD(BOOL, remember_internal_fm_windows_globally, _("Remember internal filemanager window geometry globally"), _("border"), _("remember"), _("files")); - OPT_HELP(_("This option causes E to remember the geometry of its internal filemanager windows globally instead of using the target directory")); - - OPT_ADD(BOOL, move_info_follows, _("Window position info follows window when moving"), _("border"), _("placement"), _("move")); - OPT_ADD(BOOL, resize_info_follows, _("Window geometry info follows window when resizing"), _("border"), _("placement"), _("resize")); - OPT_ADD(BOOL, move_info_visible, _("Window position info visible when moving"), _("border"), _("placement"), _("move")); - OPT_ADD(BOOL, resize_info_visible, _("Window geometry info visible when resizing"), _("border"), _("placement"), _("resize")); - - /* FIXME */ - //OPT_ADD(CUSTOM, input_method, _("Input method"), _("input"), _("language")); - //co->info = eina_stringshare_add("language/input_method_settings"); - //OPT_ICON("preferences-imc"); - //co->funcs[0].one = e_intl_input_method_set; - - OPT_ADD(BOOL, transient.move, _("Transient windows follow movement of their child"), _("border"), _("transient"), _("move"), _("placement")); - OPT_ADD(BOOL, transient.resize, _("Transient windows follow resize of their child"), _("border"), _("transient"), _("placement"), _("resize")); - OPT_ADD(BOOL, transient.raise, _("Transient windows follow raise of their child"), _("border"), _("transient"), _("raise"), _("placement")); - OPT_ADD(BOOL, transient.lower, _("Transient windows follow lower of their child"), _("border"), _("transient"), _("placement"), _("raise")); - OPT_ADD(BOOL, transient.layer, _("Transient windows follow layer change of their child"), _("border"), _("transient"), _("placement")); - OPT_ADD(BOOL, transient.desktop, _("Transient windows follow desk change of their child"), _("border"), _("transient"), _("placement"), _("vdesk")); - OPT_ADD(BOOL, transient.iconify, _("Transient windows follow iconification of their child"), _("border"), _("transient"), _("minimize")); - - OPT_ADD(BOOL, menu_icons_hide, _("Disable icons in menus"), _("menu"), _("image")); - OPT_ADD(BOOL, menu_eap_name_show, _("Application menus shows Name field"), _("menu")); - OPT_HELP(_("This information is taken from the related .desktop file")); - OPT_ADD(BOOL, menu_eap_generic_show, _("Application menus shows Generic field"), _("menu")); - OPT_HELP(_("This information is taken from the related .desktop file")); - OPT_ADD(BOOL, menu_eap_comment_show, _("Application menus shows Comment field"), _("menu")); - OPT_HELP(_("This information is taken from the related .desktop file")); - - OPT_ADD(BOOL, menu_favorites_show, _("Show Favorite Applications in the main menu"), _("menu"), _("application")); - OPT_ADD(BOOL, menu_apps_show, _("Show Applications in the main menu"), _("menu"), _("application")); - - OPT_ADD(BOOL, menu_gadcon_client_toplevel, _("Show gadget settings in top-level gadget menu"), _("menu"), _("gadget")); - - OPT_ADD(STR, exebuf_term_cmd, _("Launch commands with this command"), _("exec")); - OPT_ICON("modules-launcher"); - OPT_HELP(_("Command used to launch files and applications")); - - OPT_ADD(BOOL, use_app_icon, _("Window borders use application icon"), _("border"), _("image")); - OPT_HELP(_("Applications provide their own icons. If this option is not set, E will use internal theme icons instead of the application-provided icon")); - - /* FIXME */ - //OPT_ADD(CUSTOM, path_append_data, _("Enlightenment profile settings"), _("profile")); - //co->info = eina_stringshare_add("settings/profiles"); - //OPT_ICON("preferences-profiles"); - - OPT_ADD(BOOL, cnfmdlg_disabled, _("Disable confirmation dialogs"), _("confirm"), _("dialog")); - OPT_HELP(_("This option suppresses all confirmation dialogs and assumes that the user has clicked the confirm option")); - OPT_ADD(BOOL, cfgdlg_auto_apply, _("Configuration dialogs automatically apply their changes"), _("dialog"), _("settings")); - OPT_HELP(_("This option causes any configuration options to be applied immediately when changed instead of requiring the 'Apply' button to be clicked")); - OPT_ADD(BOOL, cfgdlg_default_mode, _("Configuration dialogs show advanced view by default"), _("dialog"), _("border"), _("settings")); - OPT_HELP(_("Configurations dialogs can have basic and advanced views; this option causes all configuration dialogs to show the advanced view by default")); - OPT_ADD(BOOL, cfgdlg_normal_wins, _("Configuration dialog windows are normal windows"), _("dialog"), _("border")); - OPT_HELP(_("This option causes configuration dialogs to be normal windows instead of dialog windows")); - - OPT_ADD(ENUM, font_hinting, _("Set font hinting mode"), _("font"), _("hinting")); //enum - co->info_cb = _e_configure_font_hinting_info_cb; - OPT_ICON("preferences-desktop-font"); - -/* seems to be disabled ? - OPT_ADD(STR, desklock_personal_passwd, _("Desklock custom password"), _("desklock")); //passwd - OPT_HELP(_("This option causes desklock to use a custom-provided password instead of the user's password")); - */ - OPT_ADD(BOOL, desklock_auth_method, _("Use custom command for desklock"), _("desklock"), _("exec")); - OPT_HELP(_("This option allows an external application to manage desklock")); - OPT_ADD(STR, desklock_custom_desklock_cmd, _("Custom desklock command"), _("desklock"), _("exec")); - OPT_ICON("preferences-system-lock-screen"); - OPT_ADD(ENUM, desklock_login_box_zone, _("Desklock login box shows on which screen?"), _("desklock"), _("screen")); //enum+slider - co->info_cb = _e_configure_desklock_login_box_zone_info_cb; - OPT_ICON("preferences-system-lock-screen"); - OPT_ADD(BOOL, desklock_start_locked, _("Desklock activates on login"), _("desklock")); - OPT_ADD(BOOL, desklock_on_suspend, _("Desklock activates on resume from suspend"), _("desklock")); - OPT_ADD(BOOL, desklock_autolock_screensaver, _("Desklock activates during screensaver"), _("desklock"), _("delay"), _("screensaver")); - OPT_ADD(DOUBLE, desklock_post_screensaver_time, _("Desklock activates X seconds after screensaver activates"), _("desklock"), _("delay"), _("screensaver")); - OPT_MINMAX_STEP_FMT(0.0, 300.0, 10, _("%2.0f seconds")); - OPT_ADD(BOOL, desklock_autolock_idle, _("Desklock activates when idle"), _("desklock"), _("delay")); - OPT_ADD(DOUBLE, desklock_autolock_idle_timeout, _("Desklock activates when idle for X seconds"), _("desklock"), _("delay")); - OPT_MINMAX_STEP_FMT(30, 5400.0, 60, _("%2.0f seconds")); - OPT_ADD(BOOL, desklock_use_custom_desklock, _("Use custom desklock wallpaper"), _("desklock"), _("wallpaper")); - OPT_ADD(BOOL, desklock_ask_presentation, _("Prompt for desklock timer delay if deactivated quickly"), _("desklock"), _("delay")); - OPT_ADD(DOUBLE, desklock_ask_presentation_timeout, _("Desklock quick deactivation timer delay"), _("desklock"), _("delay")); - OPT_MINMAX_STEP_FMT(1.0, 300.0, 10, _("%2.0f seconds")); - - OPT_ADD(BOOL, screensaver_enable, _("Enable screensaver"), _("screensaver")); - OPT_ADD(DOUBLE_INT, screensaver_timeout, _("Screensaver activates when idle for X seconds"), _("screensaver"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(30, 5400, 60, _("%2.0f seconds")); - - //OPT_ADD(INT, screensaver_interval, _("screensaver"), _("delay")); NOT USED? - //OPT_ADD(INT, screensaver_blanking, _("screensaver"), _("delay")); NOT USED? - //OPT_ADD(INT, screensaver_expose, _("screensaver"), _("delay")); NOT USED? - OPT_ADD(BOOL, screensaver_ask_presentation, _("Prompt for screensaver timer delay if deactivated quickly"), _("screensaver")); - co->funcs[0].none = co->funcs[1].none = _e_configure_screensaver_changed; - OPT_ADD(DOUBLE, screensaver_ask_presentation_timeout, _("Screensaver quick deactivation timer delay"), _("screensaver"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(1.0, 300.0, 10, _("%2.0f seconds")); - co->funcs[0].none = co->funcs[1].none = _e_configure_screensaver_changed; - OPT_ADD(BOOL, screensaver_suspend, _("Suspend when screensaver activates"), _("screensaver")); - co->funcs[0].none = co->funcs[1].none = _e_configure_screensaver_changed; - OPT_ADD(BOOL, screensaver_suspend_on_ac, _("Suspend when screensaver activates even if on AC"), _("screensaver")); - co->funcs[0].none = co->funcs[1].none = _e_configure_screensaver_changed; - OPT_ADD(DOUBLE, screensaver_suspend_delay, _("Screensaver suspend delay"), _("screensaver"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(1.0, 20.0, 1, _("%1.0f seconds")); - co->funcs[0].none = co->funcs[1].none = _e_configure_screensaver_changed; - -/* appears to use screensaver values - OPT_ADD(BOOL, dpms_enable, _("Enable DPMS"), _("dpms")); - OPT_ADD(BOOL, dpms_standby_enable, _("dpms")); - OPT_ADD(DOUBLE_INT, dpms_standby_timeout, _("dpms"), _("delay")); - OPT_MINMAX_STEP_FMT(30, 5400); - OPT_ADD(BOOL, dpms_suspend_enable, _("dpms")); - OPT_ADD(DOUBLE_INT, dpms_suspend_timeout, _("dpms"), _("delay")); - OPT_MINMAX_STEP_FMT(30, 5400); - OPT_ADD(BOOL, dpms_off_enable, _("dpms")); - OPT_ADD(DOUBLE_INT, dpms_off_timeout, _("dpms"), _("delay")); - OPT_MINMAX_STEP_FMT(30, 5400); - */ - OPT_ADD(ENUM, clientlist_group_by, _("Window list menu grouping policy"), _("menu"), _("border")); //enum - co->info_cb = _e_configure_clientlist_group_by_info_cb; - OPT_ICON("preferences-winlist"); - OPT_ADD(BOOL, clientlist_include_all_zones, _("Window list menu includes windows from all screens"), _("menu"), _("border"), _("screen")); - OPT_ADD(ENUM, clientlist_separate_with, _("Window list menu separator policy"), _("menu"), _("border")); //enum - co->info_cb = _e_configure_clientlist_separate_with_info_cb; - OPT_ICON("preferences-winlist"); - OPT_ADD(ENUM, clientlist_sort_by, _("Window list menu sort policy"), _("menu"), _("border")); //enum - co->info_cb = _e_configure_clientlist_sort_by_info_cb; - OPT_ICON("preferences-winlist"); - OPT_ADD(ENUM, clientlist_separate_iconified_apps, _("Window list menu iconified window grouping policy"), _("menu"), _("border"), _("minimize")); //enum - co->info_cb = _e_configure_clientlist_separate_iconified_apps_info_cb; - OPT_ICON("preferences-winlist"); - OPT_ADD(BOOL, clientlist_warp_to_iconified_desktop, _("Window list menu warps to desktop of selected iconified window"), _("menu"), _("border"), _("warp"), _("vdesk")); - OPT_ADD(BOOL, clientlist_limit_caption_len, _("Enable window list menu length limit"), _("menu"), _("border"), _("size")); - OPT_ADD(DOUBLE_INT, clientlist_max_caption_len, _("Window list menu length limit (characters)"), _("menu"), _("border"), _("size")); //slider - OPT_MINMAX_STEP_FMT(2, E_CLIENTLIST_MAX_CAPTION_LEN, 2, _("%1.0f characters")); - - OPT_ADD(BOOL, use_e_cursor, _("Use Enlightenment theme cursor"), _("pointer"), _("theme")); - co->funcs[0].none = co->funcs[1].none = _e_configure_pointer_changed; - OPT_ADD(DOUBLE_INT, cursor_size, _("Mouse cursor size"), _("pointer"), _("size"), _("theme")); - OPT_MINMAX_STEP_FMT(8, 128, 4, _("%1.0f pixels")); - co->funcs[0].none = co->funcs[1].none = _e_configure_pointer_changed; - OPT_ADD(BOOL, show_cursor, _("Show mouse cursor"), _("pointer")); - co->funcs[0].none = co->funcs[1].none = _e_configure_pointer_changed; - OPT_ADD(BOOL, idle_cursor, _("Enable idle effects for mouse cursor"), _("pointer"), _("animate")); - co->funcs[0].none = co->funcs[1].none = _e_configure_pointer_changed; - OPT_ADD(BOOL, mouse_hand, _("Enable left-handed mouse"), _("mouse")); - co->funcs[0].none = co->funcs[1].none = _e_configure_pointer_changed; - /* FIXME: need to group these two - OPT_ADD(DOUBLE_INT, mouse_accel_numerator, _("mouse"), _("speed")); //slider - OPT_MINMAX_STEP_FMT(1, 10); - OPT_ADD(DOUBLE_INT, mouse_accel_denominator, _("mouse"), _("speed")); //also slider - OPT_MINMAX_STEP_FMT(1, 10); - */ - OPT_ADD(DOUBLE_INT, mouse_accel_threshold, _("Mouse acceleration threshold"), _("mouse"), _("speed")); - OPT_MINMAX_STEP_FMT(1, 10, 1, "%1.0f"); - co->funcs[0].none = co->funcs[1].none = _e_configure_pointer_changed; - - OPT_ADD(BOOL, desk_flip_wrap, _("Enable desk flip between last and first desks"), _("vdesk"), _("flip"), _("edge")); - OPT_ADD(BOOL, fullscreen_flip, _("Enable desk flipping with fullscreen windows"), _("vdesk"), _("flip"), _("edge"), _("fullscreen")); - OPT_ADD(BOOL, multiscreen_flip, _("Enable desk flipping with multiple monitors (DANGEROUS)"), _("vdesk"), _("flip"), _("edge"), _("screen")); - - OPT_ADD(STR, desk_flip_animate_type, _("Desk flip animation type"), _("vdesk"), _("animate"), _("flip")); //str - co->info_cb = _e_configure_desk_flip_animate_type_info_cb; - OPT_ICON("preferences-desktop"); - //OPT_ADD(INT, desk_flip_animate_interpolation, _("vdesk"), _("animate"), _("flip")); //NOT USED? - - OPT_ADD(STR, theme_default_border_style, _("Default window border style"), _("border"), _("theme")); - co->info_cb = _e_configure_border_style_info_cb; - co->thumb_cb = _e_configure_border_style_thumb_cb; - OPT_ICON("preferences-system-windows"); - - OPT_ADD(ENUM, screen_limits, _("Window screen limit policy"), _("screen"), _("size"), _("border"), _("placement")); //enum - co->info_cb = _e_configure_screen_limits_info_cb; - OPT_ICON("preferences-system-windows"); - - OPT_ADD(DOUBLE_INT, thumb_nice, _("Thumbnailing process priority"), _("priority"), _("image")); //enum - OPT_MINMAX_STEP_FMT(0, 19, 1, "%1.0f"); - OPT_HELP(_("Enlightenment runs its own thumbnailing daemon in the background. This option configures the priority of that process")); - - OPT_ADD(BOOL, thumbscroll_enable, _("Enable click-to-drag scrolling (thumbscrolling)"), _("scroll")); - OPT_ADD(DOUBLE_INT, thumbscroll_threshhold, _("Thumbscroll threshold"), _("scroll"), _("speed")); //slider - OPT_MINMAX_STEP_FMT(0, 64, 4, _("%1.0f pixels")); - OPT_ADD(DOUBLE, thumbscroll_momentum_threshhold, _("Thumbscroll momentum threshold"), _("scroll"), _("speed")); //slider - OPT_MINMAX_STEP_FMT(0, 2000, 20, _("%1.0f pixels/second")); - OPT_ADD(DOUBLE, thumbscroll_friction, _("Thumbscroll resistance"), _("scroll"), _("resist")); //slider - OPT_MINMAX_STEP_FMT(0, 5.0, 0.1, "%1.0f"); - - OPT_ADD(BOOL, show_desktop_icons, _("Show files on desktop"), _("desktop"), _("files")); - co->changed_action = eina_stringshare_add("fileman_reset"); - OPT_ADD(BOOL, filemanager_single_click, _("Filemanager uses single click to activate"), _("click"), _("files")); - co->changed_action = eina_stringshare_add("fileman_reset"); - OPT_ADD(BOOL, device_desktop, _("Filemanager shows removable devices on desktop"), _("desktop"), _("files")); - co->funcs[0].none = e_fm2_device_hide_desktop_icons; - co->funcs[1].none = e_fm2_device_show_desktop_icons; - OPT_ADD(BOOL, device_auto_mount, _("Filemanager automatically mounts removable devices when attached"), _("files")); - OPT_ADD(BOOL, device_auto_open, _("Filemanager automatically opens removable devices when attached"), _("files")); - OPT_ADD(BOOL, filemanager_copy, _("Filemanager always performs `cp+rm` instead of `mv`"), _("files")); - OPT_ADD(BOOL, filemanager_secure_rm, _("Filemanager deletes files securely"), _("files")); - - OPT_ADD(BOOL, xkb.only_label, _("Only show label on keyboard gadgets instead of flags"), _("key"), _("gadget")); - /* FIXME: need to repop xkb gadgets? */ - OPT_ADD(BOOL, xkb.dont_touch_my_damn_keyboard, _("Do not apply any keyboard layout settings"), _("key"), _("settings")); - - OPT_ADD(DOUBLE, border_keyboard.timeout, _("Window change timeout when moving or resizing using keyboard"), _("border"), _("placement"), _("delay"), _("key")); //slider - OPT_MINMAX_STEP_FMT(1, 10, 1, _("%1.0f seconds")); - OPT_ADD(DOUBLE_UCHAR, border_keyboard.move.dx, _("Window horizontal movement speed when using keyboard"), _("border"), _("placement"), _("move"), _("key")); //slider - OPT_MINMAX_STEP_FMT(1, 255, 1, _("%1.0f pixels")); - OPT_ADD(DOUBLE_UCHAR, border_keyboard.move.dy, _("Window vertical movement speed when using keyboard"), _("border"), _("placement"), _("move"), _("key")); //slider - OPT_MINMAX_STEP_FMT(1, 255, 1, _("%1.0f pixels")); - OPT_ADD(DOUBLE_UCHAR, border_keyboard.resize.dx, _("Window horizontal resize speed when using keyboard"), _("border"), _("placement"), _("resize"), _("key")); //slider - OPT_MINMAX_STEP_FMT(1, 255, 1, _("%1.0f pixels")); - OPT_ADD(DOUBLE_UCHAR, border_keyboard.resize.dy, _("Window vertical movement speed when using keyboard"), _("border"), _("placement"), _("resize"), _("key")); //slider - OPT_MINMAX_STEP_FMT(1, 255, 1, _("%1.0f pixels")); - - //OPT_ADD(DOUBLE, scale.min, _("Minimum scaling"), _("scale"), _("size")); - //co->requires_restart = 1; - //OPT_ADD(DOUBLE, scale.max, _("Maximum scaling"), _("scale"), _("size")); - //co->requires_restart = 1; - OPT_ADD(DOUBLE, scale.factor, _("Overall scaling factor"), _("scale"), _("size")); - OPT_MINMAX_STEP_FMT(0.25, 8.0, 0.25, _("%1.2f pixels")); - co->requires_restart = 1; - OPT_ADD(BOOL, scale.use_dpi, _("Use screen DPI for scaling"), _("scale"), _("size")); - co->requires_restart = 1; - OPT_ADD(BOOL, scale.use_custom, _("Use custom DPI for scaling"), _("scale"), _("size")); - co->requires_restart = 1; - OPT_ADD(DOUBLE_INT, scale.base_dpi, _("Custom DPI to use when scaling"), _("scale"), _("size")); - OPT_MINMAX_STEP_FMT(30, 800, 1, _("%1.0f DPI")); - co->requires_restart = 1; - - OPT_ADD(DOUBLE_INT, syscon.main.icon_size, _("System Console primary action icon size"), _("syscon"), _("size"), _("image")); - OPT_MINMAX_STEP_FMT(16, 256, 4, _("%1.0f pixels")); - OPT_ADD(DOUBLE_INT, syscon.secondary.icon_size, _("System Console secondary action icon size"), _("syscon"), _("size"), _("image")); - OPT_MINMAX_STEP_FMT(16, 256, 4, _("%1.0f pixels")); - OPT_ADD(DOUBLE_INT, syscon.extra.icon_size, _("System Console extra action icon size"), _("syscon"), _("size"), _("image")); - OPT_MINMAX_STEP_FMT(16, 256, 4, _("%1.0f pixels")); - OPT_ADD(DOUBLE, syscon.timeout, _("System Console idle timeout"), _("syscon"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(0, 60, 1, _("%1.0f seconds")); - OPT_ADD(BOOL, syscon.do_input, _("System Console performs default action after idle timeout"), _("syscon"), _("input")); - //Eina_List *actions - - OPT_ADD(DOUBLE, backlight.normal, _("Backlight \"normal\" brightness"), _("backlight")); //slider - OPT_MINMAX_STEP_FMT(0, 1.0, 0.01, "%1.2f"); - co->funcs[0].none = _e_configure_dpms_changed; - OPT_ADD(DOUBLE, backlight.dim, _("Backlight \"dim\" brightness"), _("backlight")); //slider - OPT_MINMAX_STEP_FMT(0, 1.0, 0.01, "%1.2f"); - co->funcs[0].none = _e_configure_dpms_changed; - OPT_ADD(DOUBLE, backlight.transition, _("Backlight transition length"), _("backlight"), _("animate"), _("speed")); //slider - OPT_MINMAX_STEP_FMT(0, 5.0, 0.1, _("%1.1f seconds")); - co->funcs[0].none = _e_configure_dpms_changed; - OPT_ADD(BOOL, backlight.idle_dim, _("Backlight dims after idle"), _("backlight")); - co->funcs[0].none = co->funcs[1].none = _e_configure_dpms_changed; - OPT_ADD(DOUBLE, backlight.timer, _("Backlight idle delay"), _("backlight"), _("delay")); //slider - OPT_MINMAX_STEP_FMT(5, 300, 1, _("%1.0f seconds")); - co->funcs[0].none = _e_configure_dpms_changed; - - /* FIXME - OPT_ADD(DOUBLE, powersave.none, _("powersave")); - OPT_MINMAX_STEP_FMT(0.01, 5400.00); - OPT_ADD(DOUBLE, powersave.low, _("powersave")); - OPT_MINMAX_STEP_FMT(0.01, 5400.00); - OPT_ADD(DOUBLE, powersave.medium, _("powersave")); - OPT_MINMAX_STEP_FMT(0.01, 5400.00); - OPT_ADD(DOUBLE, powersave.high, _("powersave")); - OPT_MINMAX_STEP_FMT(0.01, 5400.00); - OPT_ADD(DOUBLE, powersave.extreme, _("powersave")); - OPT_MINMAX_STEP_FMT(0.01, 5400.00); - OPT_ADD(DOUBLE_UINT, powersave.min, _("powersave")); - OPT_MINMAX_STEP_FMT(E_POWERSAVE_MODE_NONE, E_POWERSAVE_MODE_EXTREME); - OPT_ADD(DOUBLE_UINT, powersave.max, _("powersave")); - OPT_MINMAX_STEP_FMT(E_POWERSAVE_MODE_NONE, E_POWERSAVE_MODE_EXTREME); - */ - OPT_ADD(BOOL, deskenv.load_xrdb, _("Load ~/.Xresources on startup"), _("environment")); - OPT_ADD(BOOL, deskenv.load_xmodmap, _("Load ~/.Xmodmap"), _("environment")); - OPT_ADD(BOOL, deskenv.load_gnome, _("Run gnome-settings-daemon"), _("environment")); - OPT_ADD(BOOL, deskenv.load_kde, _("Run kdeinit"), _("environment")); - - OPT_ADD(BOOL, xsettings.enabled, _("Enable GTK application settings"), _("environment"), _("theme"), _("xsettings")); - co->funcs[1].none = co->funcs[0].none = e_xsettings_config_update; - OPT_ADD(BOOL, xsettings.match_e17_theme, _("Try setting GTK theme to match E18 theme"), _("environment"), _("theme"), _("xsettings")); - co->funcs[1].none = co->funcs[0].none = e_xsettings_config_update; - OPT_ADD(STR, xsettings.net_theme_name, _("GTK theme name"), _("environment"), _("theme"), _("name"), _("xsettings")); - co->funcs[0].none = e_xsettings_config_update; - co->info_cb = _e_configure_netwm_theme_info_cb; - co->thumb_cb = _e_configure_netwm_theme_thumb_cb; - OPT_ICON("preferences-desktop-theme"); - - OPT_ADD(BOOL, xsettings.match_e17_icon_theme, _("Enable use of icon theme for applications"), _("environment"), _("theme"), _("image"), _("xsettings")); - co->funcs[0].none = e_xsettings_config_update; - OPT_ADD(STR, icon_theme, _("Icon theme"), _("environment"), _("image"), _("theme"), _("xsettings")); //enum - co->funcs[0].none = e_xsettings_config_update; - co->info_cb = _e_configure_icon_theme_info_cb; - co->thumb_cb = _e_configure_icon_theme_thumb_cb; - co->event_type = E_EVENT_CONFIG_ICON_THEME; - OPT_ICON("preferences-desktop-theme"); - OPT_ADD(BOOL, icon_theme_overrides, _("Icon theme overrides E18 internal theme icons"), _("environment"), _("image"), _("theme"), _("xsettings")); // - co->funcs[1].none = co->funcs[0].none = e_xsettings_config_update; - - OPT_ADD(BOOL, exe_always_single_instance, _("Always launch applications as single-instance"), _("exec")); - //OPT_ADD(INT, use_desktop_window_profile, - - e_user_dir_concat_static(buf, "themes"); - theme_ls[0] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - theme_mon[0] = eio_monitor_add(buf); - e_prefix_data_concat_static(buf, "data/themes"); - theme_ls[1] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - theme_mon[1] = eio_monitor_add(buf); - - e_user_homedir_concat_static(buf, ".themes"); - gtk_theme_ls = eio_file_ls(buf, _gtk_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - gtk_theme_mon = eio_monitor_add(buf); - { - const char *dir; - const Eina_List *l; - - EINA_LIST_FOREACH(efreet_data_dirs_get(), l, dir) - { - Eio_File *ls; - - snprintf(buf, sizeof(buf), "%s/themes", dir); - ls = eio_file_ls(buf, _gtk_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - if (!ls) continue; - gtk_theme_dirs = eina_list_append(gtk_theme_dirs, ls); - gtk_theme_mons = eina_list_append(gtk_theme_mons, eio_monitor_add(buf)); - } - } - - e_user_dir_concat_static(buf, "backgrounds"); - bg_ls[0] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - bg_mon[0] = eio_monitor_add(buf); - e_prefix_data_concat_static(buf, "data/backgrounds"); - bg_ls[1] = eio_file_ls(buf, _edj_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, NULL); - bg_mon[1] = eio_monitor_add(buf); - - E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_SELF_DELETED, _monitor_error, NULL); - E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_FILE_CREATED, _monitor_theme_rescan, NULL); - E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_FILE_DELETED, _monitor_theme_rescan, NULL); - E_LIST_HANDLER_APPEND(handlers, EIO_MONITOR_ERROR, _monitor_error, NULL); - - category_hash = eina_hash_string_superfast_new((Eina_Free_Cb)eina_list_free); - category_icon_hash = eina_hash_string_superfast_new((Eina_Free_Cb)eina_stringshare_del); - - e_configure_option_category_tag_add(_("appearance"), _("wallpaper")); - e_configure_option_category_tag_add(_("appearance"), _("splash")); - e_configure_option_category_tag_add(_("appearance"), _("font")); - e_configure_option_category_tag_add(_("appearance"), _("border")); - e_configure_option_category_tag_add(_("appearance"), _("transition")); - e_configure_option_category_tag_add(_("appearance"), _("scale")); - e_configure_option_category_tag_add(_("appearance"), _("xsettings")); - e_configure_option_category_icon_set(_("appearance"), "preferences-look"); - - e_configure_option_category_tag_add(_("applications"), _("application")); - e_configure_option_category_tag_add(_("applications"), _("files")); - e_configure_option_category_tag_add(_("applications"), _("xsettings")); - e_configure_option_category_icon_set(_("applications"), "preferences-applications"); - - e_configure_option_category_tag_add(_("screen"), _("desklock")); - e_configure_option_category_tag_add(_("screen"), _("screen")); - e_configure_option_category_tag_add(_("screen"), _("vdesk")); - e_configure_option_category_tag_add(_("screen"), _("desktop")); - e_configure_option_category_tag_add(_("screen"), _("shelf")); - e_configure_option_category_icon_set(_("screen"), "preferences-desktop-display"); - - e_configure_option_category_tag_add(_("windows"), _("border")); - e_configure_option_category_tag_add(_("windows"), _("focus")); - e_configure_option_category_tag_add(_("windows"), _("winlist")); - e_configure_option_category_tag_add(_("windows"), _("placement")); - e_configure_option_category_tag_add(_("windows"), _("resist")); - e_configure_option_category_tag_add(_("windows"), _("remember")); - e_configure_option_category_tag_add(_("windows"), _("minimize")); - e_configure_option_category_tag_add(_("windows"), _("kill")); - e_configure_option_category_tag_add(_("windows"), _("transient")); - e_configure_option_category_tag_add(_("windows"), _("move")); - e_configure_option_category_tag_add(_("windows"), _("resize")); - e_configure_option_category_icon_set(_("windows"), "preferences-system-windows"); - - e_configure_option_category_tag_add(_("menus"), _("menu")); - e_configure_option_category_icon_set(_("menus"), "preferences-menus"); - - e_configure_option_category_tag_add(_("input"), _("mouse")); - e_configure_option_category_tag_add(_("input"), _("pointer")); - e_configure_option_category_tag_add(_("input"), _("key")); - e_configure_option_category_tag_add(_("input"), _("binding")); - e_configure_option_category_icon_set(_("input"), "preferences-behavior"); - - e_configure_option_category_tag_add(_("advanced"), _("framerate")); - e_configure_option_category_tag_add(_("advanced"), _("cache")); - e_configure_option_category_tag_add(_("advanced"), _("priority")); - e_configure_option_category_icon_set(_("advanced"), "preferences-advanced"); - - e_configure_option_category_tag_add(_("settings"), _("dialog")); - e_configure_option_category_tag_add(_("settings"), _("profile")); - e_configure_option_category_tag_add(_("settings"), _("module")); - e_configure_option_category_icon_set(_("settings"), "preferences-preferences"); - - e_configure_option_tag_alias_add(_("border"), _("window")); - e_configure_option_tag_alias_add(_("exec"), _("launch")); - e_configure_option_tag_alias_add(_("image"), _("icon")); - e_configure_option_tag_alias_add(_("theme"), _("style")); - e_configure_option_tag_alias_add(_("pointer"), _("cursor")); - e_configure_option_tag_alias_add(_("minimize"), _("iconify")); - - event_block = EINA_FALSE; - - return 1; -} - -EINTERN int -e_configure_option_shutdown(void) -{ - opts_changed_list = eina_list_free(opts_changed_list); - event_block = EINA_TRUE; - E_FREE_LIST(tags_list, eina_stringshare_del); - domain_current = NULL; - E_FREE_FUNC(domain_hash, eina_hash_free); - E_FREE_FUNC(tags_hash, eina_hash_free); - E_FREE_FUNC(tags_tag_alias_hash, eina_hash_free); - E_FREE_FUNC(tags_name_hash, eina_hash_free); - E_FREE_FUNC(tags_alias_name_hash, eina_hash_free); - E_FREE_FUNC(tags_alias_hash, eina_hash_free); - E_FREE_LIST(tags_alias_list, eina_stringshare_del); - E_FREE_FUNC(theme_mon[0], eio_monitor_del); - E_FREE_FUNC(theme_mon[1], eio_monitor_del); - E_FREE_FUNC(theme_ls[0], eio_file_cancel); - E_FREE_FUNC(theme_ls[1], eio_file_cancel); - E_FREE_FUNC(gtk_theme_ls, eio_file_cancel); - E_FREE_LIST(gtk_theme_dirs, eio_file_cancel); - E_FREE_FUNC(gtk_theme_mon, eio_monitor_del); - E_FREE_LIST(gtk_theme_mons, eio_monitor_del); - E_FREE_LIST(gtk_themes, eina_stringshare_del); - E_FREE_LIST(themes, eina_stringshare_del); - E_FREE_LIST(sthemes, eina_stringshare_del); - E_FREE_FUNC(bg_mon[0], eio_monitor_del); - E_FREE_FUNC(bg_mon[1], eio_monitor_del); - E_FREE_FUNC(bg_ls[0], eio_file_cancel); - E_FREE_FUNC(bg_ls[1], eio_file_cancel); - E_FREE_LIST(bgs, eina_stringshare_del); - E_FREE_LIST(sbgs, eina_stringshare_del); - E_FREE_LIST(handlers, ecore_event_handler_del); - E_FREE_FUNC(category_hash, eina_hash_free); - E_FREE_FUNC(category_icon_hash, eina_hash_free); - categories = eina_list_free(categories); - return 1; -} - -EAPI E_Configure_Option * -e_configure_option_add(E_Configure_Option_Type type, const char *desc, const char *name, void *valptr, const void *data) -{ - E_Configure_Option *co; - Eina_Inlist *l; - - co = E_NEW(E_Configure_Option, 1); - l = eina_hash_find(domain_hash, domain_current); - eina_hash_set(domain_hash, domain_current, eina_inlist_append(l, EINA_INLIST_GET(co))); - co->type = type; - _e_configure_option_value_reset(co); - co->name = eina_stringshare_add(name); - co->desc = eina_stringshare_add(desc); - co->valptr = valptr; - co->data = (void *)data; - _e_configure_option_event_changed(co); - return co; -} - -EAPI void -e_configure_option_tags_set(E_Configure_Option *co, const char * const *tags, unsigned int num_tags) -{ - Eina_List *l, *ll; - Eina_Stringshare *tag; - unsigned int x; - const char * const *t; - - EINA_SAFETY_ON_NULL_RETURN(co); - EINA_LIST_FOREACH_SAFE(co->tags, l, ll, tag) - _e_configure_option_tag_remove(co, tag); - if (!tags) return; - if (num_tags) - { - for (x = 0; x < num_tags; x++) - _e_configure_option_tag_append(co, tags[x]); - } - else - { - for (t = tags; t && *t; t++) - _e_configure_option_tag_append(co, *t); - } -} - -EAPI E_Configure_Option_Info * -e_configure_option_info_new(E_Configure_Option *co, const char *name, const void *value) -{ - E_Configure_Option_Info *oi; - - oi = E_NEW(E_Configure_Option_Info, 1); - oi->co = co; - oi->name = eina_stringshare_add(name); - oi->value = (void *)value; - return oi; -} - -EAPI void -e_configure_option_info_free(E_Configure_Option_Info *oi) -{ - if (!oi) return; - eina_stringshare_del(oi->name); - eina_stringshare_del(oi->thumb_file); - eina_stringshare_del(oi->thumb_key); - free(oi); -} - -EAPI Eina_List * -e_configure_option_info_get(E_Configure_Option *co) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(co, NULL); - if (!co->info_cb) return NULL; - return co->info_cb(co); -} - -EAPI Evas_Object * -e_configure_option_info_thumb_get(E_Configure_Option_Info *oi, Evas *evas) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(oi, NULL); - EINA_SAFETY_ON_NULL_RETURN_VAL(evas, NULL); - if (!oi->co->thumb_cb) return NULL; - return oi->co->thumb_cb(oi, evas); -} - -EAPI void -e_configure_option_del(E_Configure_Option *co) -{ - Eina_List *l, *ll; - Eina_Stringshare *tag; - - if (!co) return; - if (!event_block) - { - _e_configure_option_event_del(co); - return; - } - EINA_LIST_FOREACH_SAFE(co->tags, l, ll, tag) - _e_configure_option_tag_remove(co, tag); - _e_configure_option_free(co); -} - -EAPI void * -e_configure_option_data_set(E_Configure_Option *co, const char *key, const void *data) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(co, NULL); - EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); - if ((!co->data) && (!data)) return NULL; - if (!co->data) co->data = eina_hash_string_small_new(NULL); - return eina_hash_set(co->data, key, data); -} - -EAPI void * -e_configure_option_data_get(E_Configure_Option *co, const char *key) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(co, NULL); - EINA_SAFETY_ON_NULL_RETURN_VAL(key, NULL); - if (!co->data) return NULL; - return eina_hash_find(co->data, key); -} - -EAPI void -e_configure_option_changed(E_Configure_Option *co) -{ - Eina_Bool e_restart; - unsigned char u; - int i; - unsigned int ui; - double d; - long long int l; - Eina_Stringshare *s; - Eina_Bool changed; - - EINA_SAFETY_ON_NULL_RETURN(co); - changed = co->changed; - co->changed = EINA_TRUE; - if (!e_config->cfgdlg_auto_apply) - { - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_BOOL: - eina_value_get(&co->val, &u); - if (*(unsigned char *)co->valptr != u) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - eina_value_get(&co->val, &d); - l = lround(d); - u = MAX(0, l); - if (*(unsigned char *)co->valptr != u) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: //lround(double) - eina_value_get(&co->val, &d); - if (*(int *)co->valptr != lround(d)) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_INT: - case E_CONFIGURE_OPTION_TYPE_ENUM: - eina_value_get(&co->val, &i); - if (*(int *)co->valptr != i) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: //lround(double) - eina_value_get(&co->val, &d); - l = lround(d); - ui = MAX(0, l); - if (*(unsigned int *)co->valptr != ui) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_UINT: - eina_value_get(&co->val, &ui); - if (*(unsigned int *)co->valptr != ui) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - eina_value_get(&co->val, &d); - if (fabs(*(double *)co->valptr - d) > DBL_EPSILON) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_STR: - eina_value_get(&co->val, &s); - if (*(Eina_Stringshare **)co->valptr != s) break; - co->changed = EINA_FALSE; - break; - - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - break; - } - if (changed && (!co->changed)) - { - _e_configure_option_value_reset(co); - opts_changed_list = eina_list_remove(opts_changed_list, co); - } - else if ((!changed) && (co->changed)) - opts_changed_list = eina_list_append(opts_changed_list, co); - } - else - { - e_restart = _e_configure_option_apply(co, NULL, NULL, NULL); - e_config_save_queue(); - if (e_restart) e_sys_action_do(E_SYS_RESTART, NULL); - } - _e_configure_option_event_changed(co); -} - -EAPI void -e_configure_option_reset(E_Configure_Option *co) -{ - EINA_SAFETY_ON_NULL_RETURN(co); - - if (!co->changed) return; - _e_configure_option_value_reset(co); - opts_changed_list = eina_list_remove(opts_changed_list, co); - co->changed = EINA_FALSE; - _e_configure_option_event_changed(co); -} - -EAPI void -e_configure_option_reset_all(void) -{ - E_Configure_Option *co; - - EINA_LIST_FREE(opts_changed_list, co) - { - _e_configure_option_value_reset(co); - co->changed = EINA_FALSE; - _e_configure_option_event_changed(co); - } -} - -EAPI void -e_configure_option_apply(E_Configure_Option *co) -{ - Eina_Bool e_restart; - - EINA_SAFETY_ON_NULL_RETURN(co); - - if (!co->changed) return; - - if (opts_changed_list) - opts_changed_list = eina_list_remove(opts_changed_list, co); - e_restart = _e_configure_option_apply(co, NULL, NULL, NULL); - e_config_save_queue(); - if (e_restart) e_sys_action_do(E_SYS_RESTART, NULL); -} - -EAPI void -e_configure_option_apply_all(void) -{ - E_Configure_Option *co; - Eina_Bool e_restart = EINA_FALSE; - Eina_List *events = NULL, *funcs = NULL, *acts = NULL; - E_Action *act; - void (*none)(void); - intptr_t *event; - - EINA_LIST_FREE(opts_changed_list, co) - e_restart |= _e_configure_option_apply(co, &events, &funcs, &acts); - EINA_LIST_FREE(events, event) - ecore_event_add((long)event, NULL, NULL, NULL); - EINA_LIST_FREE(funcs, none) - none(); - EINA_LIST_FREE(acts, act) - act->func.go((E_Object *)e_util_container_current_get(), NULL); - e_config_save_queue(); - if (e_restart) e_sys_action_do(E_SYS_RESTART, NULL); -} - -EAPI const void * -e_configure_option_value_get(E_Configure_Option *co) -{ - static unsigned char u; - static double d; - static long l; - static unsigned int i; - static Eina_Stringshare *s; - - EINA_SAFETY_ON_NULL_RETURN_VAL(co, NULL); - if (e_config->cfgdlg_auto_apply || (!co->changed)) return co->valptr; - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_BOOL: - eina_value_get(&co->val, &u); - return &u; - - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: //lround(double) - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: //lround(double) - case E_CONFIGURE_OPTION_TYPE_ENUM: //lround(double) - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - eina_value_get(&co->val, &d); - return &d; - - case E_CONFIGURE_OPTION_TYPE_INT: - eina_value_get(&co->val, &l); - return &l; - - case E_CONFIGURE_OPTION_TYPE_UINT: - eina_value_get(&co->val, &i); - return &i; - - case E_CONFIGURE_OPTION_TYPE_STR: - eina_value_get(&co->val, &s); - return &s; - - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - break; - } - return NULL; -} - -EAPI const Eina_List * -e_configure_option_tags_list(void) -{ - return tags_list; -} - -EAPI const Eina_List * -e_configure_option_changed_list(void) -{ - return opts_changed_list; -} - -EAPI const Eina_List * -e_configure_option_tag_list_options(const char *tag) -{ - if (!tags_hash) return NULL; - return eina_hash_find(tags_hash, tag); -} - -EAPI const Eina_List * -e_configure_option_category_list_tags(const char *cat) -{ - if (!categories) return NULL; - return eina_hash_find(category_hash, cat); -} - -EAPI const Eina_List * -e_configure_option_category_list(void) -{ - return categories; -} - -EAPI void -e_configure_option_category_tag_add(const char *cat, const char *tag) -{ - Eina_Stringshare *t, *c; - Eina_List *l; - - if (!tags_name_hash) return; - EINA_SAFETY_ON_NULL_RETURN(cat); - EINA_SAFETY_ON_NULL_RETURN(tag); - t = eina_hash_find(tags_name_hash, tag); - if (!t) return; - if (!categories) - { - c = eina_stringshare_add(cat); - eina_hash_add(category_hash, cat, eina_list_append(NULL, t)); - categories = eina_list_append(categories, c); - _e_configure_option_event_category_add_del(c, EINA_FALSE); - return; - } - l = eina_hash_find(category_hash, cat); - if (l) - { - if (!eina_list_data_find(l, t)) - eina_hash_set(category_hash, cat, eina_list_append(l, t)); - } - else - { - c = eina_stringshare_add(cat); - categories = eina_list_append(categories, c); - eina_hash_add(category_hash, cat, eina_list_append(NULL, t)); - _e_configure_option_event_category_add_del(c, EINA_FALSE); - } -} - -EAPI void -e_configure_option_category_tag_del(const char *cat, const char *tag) -{ - Eina_List *l; - Eina_Stringshare *t, *c; - - if (!cat) return; - if (!tag) return; - if (!categories) return; - if (!tags_list) return; - - l = eina_hash_find(category_hash, cat); - if (!l) return; - t = eina_hash_find(tags_name_hash, tag); - l = eina_list_remove(l, t); - eina_hash_set(category_hash, cat, l); - if (l) return; - c = eina_stringshare_add(cat); - categories = eina_list_remove(categories, c); - _e_configure_option_event_category_add_del(c, EINA_TRUE); - eina_stringshare_del(c); -} - -EAPI Eina_Stringshare * -e_configure_option_category_icon_get(const char *cat) -{ - if (!category_icon_hash) return NULL; - EINA_SAFETY_ON_NULL_RETURN_VAL(cat, NULL); - return eina_hash_find(category_icon_hash, cat); -} - -EAPI void -e_configure_option_category_icon_set(const char *cat, const char *icon) -{ - if (!category_icon_hash) return; - EINA_SAFETY_ON_NULL_RETURN(cat); - eina_stringshare_del(eina_hash_set(category_icon_hash, cat, eina_stringshare_add(icon))); -} - -EAPI void -e_configure_option_tag_alias_add(const char *tag, const char *alias) -{ - Eina_Stringshare *t, *o; - Eina_List *l; - - if (!tags_name_hash) return; - EINA_SAFETY_ON_NULL_RETURN(tag); - EINA_SAFETY_ON_NULL_RETURN(alias); - - t = eina_hash_find(tags_name_hash, tag); - if (!t) return; - o = eina_hash_set(tags_alias_hash, alias, t); - if (o) return; //alias already in list - o = eina_stringshare_add(alias); - tags_alias_list = eina_list_append(tags_alias_list, o); - l = eina_hash_find(tags_tag_alias_hash, t); - eina_hash_set(tags_tag_alias_hash, t, eina_list_append(l, o)); -} - -EAPI void -e_configure_option_tag_alias_del(const char *tag, const char *alias) -{ - Eina_Stringshare *t, *a; - Eina_List *l; - - if (!tags_alias_hash) return; - EINA_SAFETY_ON_NULL_RETURN(tag); - EINA_SAFETY_ON_NULL_RETURN(alias); - - t = eina_hash_set(tags_alias_hash, alias, NULL); - if (!t) return; //alias doesn't exist - a = eina_hash_find(tags_alias_name_hash, alias); - tags_alias_list = eina_list_remove(tags_alias_list, a); - l = eina_hash_find(tags_tag_alias_hash, t); - eina_hash_set(tags_tag_alias_hash, t, eina_list_remove(l, a)); - eina_stringshare_del(a); -} - -EAPI E_Configure_Option_Ctx * -e_configure_option_ctx_new(void) -{ - return E_NEW(E_Configure_Option_Ctx, 1); -} - -EAPI Eina_Bool -e_configure_option_ctx_update(E_Configure_Option_Ctx *ctx, const char *str) -{ - Eina_List *l, *ll, *alist, *tlist, *tmp = NULL, *clist = NULL; - Eina_Stringshare *tag, *alias; - char *s, *e, *update; - Eina_Bool skip; - - if ((!str) || (!str[0])) - { - if ((!ctx->tags) && (ctx->opts)) return EINA_FALSE; - ctx->tags = eina_list_free(ctx->tags); - ctx->opts = eina_list_free(ctx->opts); - E_FREE(ctx->text); - return ctx->changed = EINA_TRUE; - } - update = strdup(str); - eina_str_tolower(&update); - if (!e_util_strcmp(ctx->text, update)) - { - free(update); - return EINA_FALSE; - } - free(ctx->text); - ctx->text = update; - alist = eina_list_clone(tags_alias_list); - tlist = eina_list_clone(tags_list); - for (s = e = strdupa(update); e[0]; e++) - { - if (isalnum(e[0])) continue; - e[0] = 0; - if (e - s <= 1) goto end; - tmp = NULL; - skip = EINA_FALSE; - EINA_LIST_FOREACH_SAFE(alist, l, ll, alias) - { - if ((!strstr(s, alias)) && (!strstr(alias, s))) continue; - tag = eina_hash_find(tags_alias_hash, alias); - if (clist && eina_list_data_find(clist, tag)) - { - if (strncmp(s, alias, e - s)) continue; - tmp = eina_list_free(tmp); - skip = EINA_TRUE; - break; - } - alist = eina_list_remove_list(alist, l); - if (strncmp(s, alias, e - s)) - { - tmp = eina_list_append(tmp, tag); - tlist = eina_list_remove(tlist, tag); - continue; - } - tmp = eina_list_free(tmp); - tmp = eina_list_append(tmp, tag); - tlist = eina_list_remove(tlist, tag); - skip = EINA_TRUE; - break; - } - if (skip) goto end; - EINA_LIST_FOREACH_SAFE(tlist, l, ll, tag) - { - if ((!strstr(s, tag)) && (!strstr(tag, s))) continue; - if (clist && eina_list_data_find(clist, tag)) - { - if (strncmp(s, tag, e - s)) continue; - tmp = eina_list_free(tmp); - break; - } - tlist = eina_list_remove_list(tlist, l); - if (strncmp(s, tag, e - s)) - { - tmp = eina_list_append(tmp, tag); - continue; - } - tmp = eina_list_free(tmp); - tmp = eina_list_append(tmp, tag); - break; - } -end: - if (tmp) clist = eina_list_merge(clist, tmp); - tmp = NULL; - s = e + 1; - } - while (e - s > 1) - { - tmp = NULL; - skip = EINA_FALSE; - EINA_LIST_FOREACH_SAFE(alist, l, ll, alias) - { - if ((!strstr(s, alias)) && (!strstr(alias, s))) continue; - tag = eina_hash_find(tags_alias_hash, alias); - if (clist && eina_list_data_find(clist, tag)) - { - if (strncmp(s, alias, e - s)) continue; - tmp = eina_list_free(tmp); - skip = EINA_TRUE; - break; - } - alist = eina_list_remove_list(alist, l); - if (strncmp(s, alias, e - s)) - { - tmp = eina_list_append(tmp, tag); - tlist = eina_list_remove(tlist, tag); - continue; - } - tmp = eina_list_free(tmp); - tmp = eina_list_append(tmp, tag); - tlist = eina_list_remove(tlist, tag); - skip = EINA_TRUE; - break; - } - if (skip) break; - EINA_LIST_FOREACH_SAFE(tlist, l, ll, tag) - { - if ((!strstr(s, tag)) && (!strstr(tag, s))) continue; - if (clist && eina_list_data_find(clist, tag)) - { - if (strncmp(s, tag, e - s)) continue; - tmp = eina_list_free(tmp); - break; - } - tlist = eina_list_remove_list(tlist, l); - if (strncmp(s, tag, e - s)) - { - tmp = eina_list_append(tmp, tag); - continue; - } - tmp = eina_list_free(tmp); - tmp = eina_list_append(tmp, tag); - break; - } - break; - } - if (tmp) clist = eina_list_merge(clist, tmp); - eina_list_free(alist); - eina_list_free(tlist); - if (eina_list_count(clist) != eina_list_count(ctx->tags)) - goto update; - for (l = ctx->tags, ll = clist; l && ll; l = eina_list_next(l), ll = eina_list_next(ll)) - if (l->data != ll->data) goto update; - - eina_list_free(clist); - return EINA_FALSE; -update: - eina_list_free(ctx->tags); - ctx->tags = clist; - return ctx->changed = EINA_TRUE; -} - -EAPI Eina_Bool -e_configure_option_ctx_tag_add(E_Configure_Option_Ctx *ctx, Eina_Stringshare *tag) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_FALSE); - EINA_SAFETY_ON_NULL_RETURN_VAL(tag, EINA_FALSE); - - if (ctx->tags && eina_list_data_find(ctx->tags, tag)) return EINA_FALSE; - ctx->tags = eina_list_append(ctx->tags, tag); - return ctx->changed = EINA_TRUE; -} - -EAPI Eina_Bool -e_configure_option_ctx_tag_pop(E_Configure_Option_Ctx *ctx) -{ - EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, EINA_FALSE); - if (!ctx->tags) return EINA_FALSE; - ctx->tags = eina_list_remove_list(ctx->tags, eina_list_last(ctx->tags)); - return ctx->changed = EINA_TRUE; -} - -EAPI const Eina_List * -e_configure_option_ctx_match_tag_list(E_Configure_Option_Ctx *ctx) -{ - const Eina_List *l; - E_Configure_Option *co; - - EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, NULL); - - ctx->match_tags = eina_list_free(ctx->match_tags); - e_configure_option_ctx_option_list(ctx); - if (eina_list_count(ctx->opts) < 2) return NULL; - EINA_LIST_FOREACH(e_configure_option_ctx_option_list(ctx), l, co) - { - Eina_List *ll; - Eina_Stringshare *tag; - - EINA_LIST_FOREACH(co->tags, ll, tag) - { - if ((!ctx->match_tags) || ((!eina_list_data_find(ctx->match_tags, tag)) && (!eina_list_data_find(ctx->tags, tag)))) - ctx->match_tags = eina_list_append(ctx->match_tags, tag); - } - } - return ctx->match_tags; -} - -EAPI const Eina_List * -e_configure_option_ctx_option_list(E_Configure_Option_Ctx *ctx) -{ - Eina_List *l; - E_Configure_Option *co; - Eina_Stringshare *tag; - - EINA_SAFETY_ON_NULL_RETURN_VAL(ctx, NULL); - - if ((!ctx->changed) && (ctx->opts)) return ctx->opts; - ctx->opts = eina_list_free(ctx->opts); - EINA_LIST_FOREACH(ctx->tags, l, tag) - { - Eina_List *ll, *lll, *opts = NULL; - - ll = eina_hash_find(tags_hash, tag); - if (!ll) continue; - opts = eina_list_clone(ll); - if (ctx->opts) - { - /* prune duplicates */ - EINA_LIST_FOREACH_SAFE(opts, ll, lll, co) - { - if (eina_list_data_find_list(ctx->opts, co)) - opts = eina_list_remove_list(opts, ll); - } - } - if (eina_list_count(ctx->tags) > 1) - /* reduce to matches */ - opts = _e_configure_option_ctx_list_prune(tag, opts, ctx->tags); - if (opts) - ctx->opts = eina_list_merge(ctx->opts, opts); - } - ctx->changed = EINA_FALSE; - return ctx->opts; -} - -EAPI void -e_configure_option_ctx_free(E_Configure_Option_Ctx *ctx) -{ - if (!ctx) return; - eina_list_free(ctx->tags); - eina_list_free(ctx->opts); - eina_list_free(ctx->match_tags); - free(ctx->text); - free(ctx); -} - -EAPI void -e_configure_option_domain_current_set(const char *domain) -{ - domain_current = domain; -} - -EAPI Eina_Inlist * -e_configure_option_domain_list(const char *domain) -{ - if (!domain_hash) return NULL; - EINA_SAFETY_ON_NULL_RETURN_VAL(domain, NULL); - return eina_hash_find(domain_hash, domain); -} - -EAPI void -e_configure_option_domain_clear(const char *domain) -{ - if (!domain_hash) return; - EINA_SAFETY_ON_NULL_RETURN(domain); - eina_hash_del_by_key(domain_hash, domain); -} - -EAPI const Eina_List * -e_configure_option_util_themes_get(void) -{ - return themes; -} - -EAPI const Eina_List * -e_configure_option_util_themes_system_get(void) -{ - return sthemes; -} - -EAPI const Eina_List * -e_configure_option_util_themes_gtk_get(void) -{ - return gtk_themes; -} diff --git a/src/bin/e_configure_option.h b/src/bin/e_configure_option.h deleted file mode 100644 index 36558a12f..000000000 --- a/src/bin/e_configure_option.h +++ /dev/null @@ -1,176 +0,0 @@ -#ifdef E_TYPEDEFS - -typedef struct E_Event_Configure_Option E_Event_Configure_Option_Changed; -typedef struct E_Event_Configure_Option E_Event_Configure_Option_Add; -typedef struct E_Event_Configure_Option E_Event_Configure_Option_Del; -typedef struct E_Event_Configure_Category E_Event_Configure_Option_Category_Add; -typedef struct E_Event_Configure_Category E_Event_Configure_Option_Category_Del; -typedef struct E_Event_Configure_Tag E_Event_Configure_Option_Tag_Add; -typedef struct E_Event_Configure_Tag E_Event_Configure_Option_Tag_Del; -typedef struct E_Configure_Option_Info E_Configure_Option_Info; -typedef struct E_Configure_Option E_Configure_Option; -typedef struct E_Configure_Option_Ctx E_Configure_Option_Ctx; -typedef void (*E_Configure_Option_Set_Cb)(); -typedef Eina_List *(*E_Configure_Option_Info_Cb)(E_Configure_Option *); -typedef Evas_Object *(*E_Configure_Option_Info_Thumb_Cb)(E_Configure_Option_Info *, Evas *); - -#else -# ifndef E_CONFIGURE_OPTION_H -# define E_CONFIGURE_OPTION_H - -#define E_CONFIGURE_OPTION_TAG_LENGTH 128 - -#define E_CONFIGURE_OPTION_ADD(OPT, TYPE, NAME, CFGPTR, DESC, ...) \ - OPT = e_configure_option_add(E_CONFIGURE_OPTION_TYPE_##TYPE, DESC, #NAME, &CFGPTR->NAME, NULL);\ - e_configure_option_tags_set(OPT, (const char*[]){__VA_ARGS__, NULL}, 0) -#define E_CONFIGURE_OPTION_ADD_CUSTOM(OPT, NAME, DESC, ...) \ - OPT = e_configure_option_add(E_CONFIGURE_OPTION_TYPE_CUSTOM, DESC, NAME, NULL, NULL);\ - e_configure_option_tags_set(OPT, (const char*[]){__VA_ARGS__, NULL}, 0) -#define E_CONFIGURE_OPTION_HELP(OPT, STR) \ - OPT->help = eina_stringshare_add(STR) -#define E_CONFIGURE_OPTION_MINMAX_STEP_FMT(OPT, MIN, MAX, STEP, FMT) \ - OPT->minmax[0] = (MIN), OPT->minmax[1] = (MAX), OPT->step = (STEP),\ - OPT->info = eina_stringshare_add(FMT) -#define E_CONFIGURE_OPTION_ICON(OPT, ICON) \ - e_configure_option_data_set(OPT, "icon", eina_stringshare_add(ICON)) - - -EAPI extern int E_EVENT_CONFIGURE_OPTION_CHANGED; -EAPI extern int E_EVENT_CONFIGURE_OPTION_ADD; -EAPI extern int E_EVENT_CONFIGURE_OPTION_DEL; -EAPI extern int E_EVENT_CONFIGURE_OPTION_CATEGORY_ADD; -EAPI extern int E_EVENT_CONFIGURE_OPTION_CATEGORY_DEL; -EAPI extern int E_EVENT_CONFIGURE_OPTION_TAG_ADD; -EAPI extern int E_EVENT_CONFIGURE_OPTION_TAG_DEL; - -typedef enum -{ - E_CONFIGURE_OPTION_TYPE_BOOL, - E_CONFIGURE_OPTION_TYPE_INT, - E_CONFIGURE_OPTION_TYPE_UINT, - E_CONFIGURE_OPTION_TYPE_ENUM, - E_CONFIGURE_OPTION_TYPE_DOUBLE, - E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR, //lround(double) - E_CONFIGURE_OPTION_TYPE_DOUBLE_INT, //lround(double) - E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT, //lround(double) - E_CONFIGURE_OPTION_TYPE_STR, - E_CONFIGURE_OPTION_TYPE_CUSTOM, -} E_Configure_Option_Type; - -struct E_Configure_Option -{ - EINA_INLIST; - Eina_Value val; - E_Configure_Option_Type type; - void *valptr; - Eina_Hash *data; - - double minmax[2]; //for sliders - double step; //for sliders - Eina_Stringshare *info; //for sliders, custom - E_Configure_Option_Info_Cb info_cb; //for enums - E_Configure_Option_Info_Thumb_Cb thumb_cb; //for custom thumbs - - Eina_Stringshare *name; - Eina_Stringshare *desc; - Eina_Stringshare *help; - Eina_List *tags; //Eina_Stringshare - - int event_type; //event to emit if changed - Eina_Stringshare *changed_action; //action to call if changed - struct - { - void (*none)(void); - void (*one)(); - void (*two)(); - } funcs[2]; //disable, enable - Eina_Bool requires_restart : 1; - Eina_Bool changed : 1; -}; - -struct E_Configure_Option_Info -{ - E_Configure_Option *co; - Eina_Stringshare *name; - void *value; - Eina_Stringshare *thumb_file; - Eina_Stringshare *thumb_key; - Eina_Bool current : 1; -}; - -struct E_Event_Configure_Option -{ - E_Configure_Option *co; -}; - -struct E_Event_Configure_Category -{ - Eina_Stringshare *category; -}; - -struct E_Event_Configure_Tag -{ - Eina_Stringshare *tag; -}; - -struct E_Configure_Option_Ctx -{ - Eina_List *tags; // Eina_Stringshare - Eina_List *match_tags; // Eina_Stringshare - Eina_List *opts; // E_Configure_Option - Eina_Stringshare *category; - char *text; - Eina_Bool changed : 1; -}; - -EAPI const Eina_List *e_configure_option_tags_list(void); -EAPI const Eina_List *e_configure_option_changed_list(void); -EAPI void e_configure_option_apply_all(void); -EAPI void e_configure_option_reset_all(void); - -EAPI E_Configure_Option *e_configure_option_add(E_Configure_Option_Type type, const char *desc, const char *name, void *valptr, const void *data); -EAPI void e_configure_option_tags_set(E_Configure_Option *co, const char * const *tags, unsigned int num_tags); -EAPI void e_configure_option_del(E_Configure_Option *eci); -EAPI const Eina_List *e_configure_option_tag_list_options(const char *tag); -EAPI void e_configure_option_changed(E_Configure_Option *co); -EAPI void e_configure_option_apply(E_Configure_Option *co); -EAPI void e_configure_option_reset(E_Configure_Option *co); -EAPI void *e_configure_option_data_set(E_Configure_Option *co, const char *key, const void *data); -EAPI void *e_configure_option_data_get(E_Configure_Option *co, const char *key); -EAPI const void *e_configure_option_value_get(E_Configure_Option *co); - -EAPI E_Configure_Option_Info *e_configure_option_info_new(E_Configure_Option *co, const char *name, const void *value); -EAPI void e_configure_option_info_free(E_Configure_Option_Info *oi); -EAPI Eina_List *e_configure_option_info_get(E_Configure_Option *co); -EAPI Evas_Object *e_configure_option_info_thumb_get(E_Configure_Option_Info *oi, Evas *evas); - -EAPI void e_configure_option_tag_alias_add(const char *tag, const char *alias); -EAPI void e_configure_option_tag_alias_del(const char *tag, const char *alias); - -EAPI const Eina_List *e_configure_option_category_list(void); -EAPI const Eina_List *e_configure_option_category_list_tags(const char *cat); -EAPI void e_configure_option_category_tag_add(const char *cat, const char *tag); -EAPI void e_configure_option_category_tag_del(const char *cat, const char *tag); -EAPI Eina_Stringshare *e_configure_option_category_icon_get(const char *cat); -EAPI void e_configure_option_category_icon_set(const char *cat, const char *icon); - -EAPI E_Configure_Option_Ctx *e_configure_option_ctx_new(void); -EAPI void e_configure_option_ctx_free(E_Configure_Option_Ctx *ctx); -EAPI Eina_Bool e_configure_option_ctx_update(E_Configure_Option_Ctx *ctx, const char *str); -EAPI const Eina_List *e_configure_option_ctx_option_list(E_Configure_Option_Ctx *ctx); -EAPI const Eina_List *e_configure_option_ctx_match_tag_list(E_Configure_Option_Ctx *ctx); -EAPI Eina_Bool e_configure_option_ctx_tag_add(E_Configure_Option_Ctx *ctx, Eina_Stringshare *tag); -EAPI Eina_Bool e_configure_option_ctx_tag_pop(E_Configure_Option_Ctx *ctx); - -EAPI void e_configure_option_domain_current_set(const char *domain); -EAPI Eina_Inlist *e_configure_option_domain_list(const char *domain); -EAPI void e_configure_option_domain_clear(const char *domain); - -EAPI const Eina_List *e_configure_option_util_themes_get(void); -EAPI const Eina_List *e_configure_option_util_themes_system_get(void); -EAPI const Eina_List *e_configure_option_util_themes_gtk_get(void); - -EINTERN int e_configure_option_init(void); -EINTERN int e_configure_option_shutdown(void); -# endif -#endif diff --git a/src/bin/e_includes.h b/src/bin/e_includes.h index 68b72783d..8cb36ee5b 100644 --- a/src/bin/e_includes.h +++ b/src/bin/e_includes.h @@ -58,7 +58,6 @@ #include "e_zoomap.h" #include "e_dialog.h" #include "e_configure.h" -#include "e_configure_option.h" #include "e_about.h" #include "e_theme_about.h" #include "e_widget.h" diff --git a/src/bin/e_main.c b/src/bin/e_main.c index b4af65abd..5ffdace03 100644 --- a/src/bin/e_main.c +++ b/src/bin/e_main.c @@ -609,10 +609,6 @@ main(int argc, char **argv) TS("E_Intl Post Init Done"); _e_main_shutdown_push(e_intl_post_shutdown); - TS("E_Configure Option Init"); - e_configure_option_init(); - TS("E_Configure Option Init Done"); - e_screensaver_preinit(); if (e_config->show_splash) @@ -656,8 +652,6 @@ main(int argc, char **argv) e_init_show(); } - //configure_option_shutdown needs to be first - if (!really_know) { TS("Test File Format Support"); @@ -1109,8 +1103,6 @@ _e_main_shutdown(int errcode) if (_idle_flush) ecore_idle_enterer_del(_idle_flush); _idle_flush = NULL; - e_configure_option_shutdown(); - for (i = (_e_main_lvl - 1); i >= 0; i--) (*_e_main_shutdown_func[i])(); if (errcode < 0) exit(errcode); diff --git a/src/modules/Makefile.am b/src/modules/Makefile.am index 768e5cee8..af7a270f0 100644 --- a/src/modules/Makefile.am +++ b/src/modules/Makefile.am @@ -91,10 +91,6 @@ if USE_MODULE_CONF include Makefile_conf.am endif -if USE_MODULE_CONF2 -include Makefile_conf2.am -endif - if USE_MODULE_CONF_COMP include Makefile_conf_comp.am endif diff --git a/src/modules/Makefile_conf2.am b/src/modules/Makefile_conf2.am deleted file mode 100644 index 60e8caf4c..000000000 --- a/src/modules/Makefile_conf2.am +++ /dev/null @@ -1,46 +0,0 @@ -conf2dir = $(MDIR)/conf2 -conf2_DATA = conf2/e-module-conf2.edj \ - conf2/module.desktop -CLEANFILES += conf2/e-module-conf2.edj -EXTRA_DIST += $(conf2_DATA) \ -conf2/e-module-conf2.edc \ -conf2/module.desktop.in \ -conf2/images/sym_check_alum.png \ -conf2/images/bevel_curved_horiz_out.png \ -conf2/images/sym_radio_alum.png \ -conf2/images/volume_knob.png \ -conf2/images/vgrad_med_dark.png \ -conf2/images/bevel_in.png \ -conf2/images/inset_shadow_tiny.png \ -conf2/images/bevel_horiz_out.png \ -conf2/images/white_bar_vert_glow.png \ -conf2/images/vgrad_med_curved.png \ -conf2/images/shine.png \ -conf2/images/volume_knob_ledsoff.png \ -conf2/images/inset_circle_tiny.png \ -conf2/images/volume_knob_move.png \ -conf2/images/shadow_rounded_horiz.png \ -conf2/images/inset_shadow_circle_tiny.png \ -conf2/images/volume_led_01.png \ -conf2/images/button_normal.png \ -conf2/images/button_clicked.png - -conf2pkgdir = $(MDIR)/conf2/$(MODULE_ARCH) -conf2pkg_LTLIBRARIES = conf2/module.la - -conf2_module_la_SOURCES = conf2/e_mod_main.c \ - conf2/e_mod_main.h \ - conf2/e_conf2.c - -conf2_module_la_CFLAGS = $(AM_CFLAGS) -conf2_module_la_LIBADD = - -CONF2_EDJE_FLAGS = $(EDJE_FLAGS) -id $(srcdir)/conf2/images -id $(top_srcdir)/data/themes/img - -conf2/%.edj: $(srcdir)/conf2/%.edc Makefile - $(EDJE_CC) $(CONF2_EDJE_FLAGS) $< $@ - -.PHONY: conf2 install-conf2 -conf2: $(conf2pkg_LTLIBRARIES) $(conf2_DATA) -install-conf2: install-conf2DATA install-conf2pkgLTLIBRARIES - diff --git a/src/modules/conf2/.gitignore b/src/modules/conf2/.gitignore deleted file mode 100644 index bda70fc9d..000000000 --- a/src/modules/conf2/.gitignore +++ /dev/null @@ -1 +0,0 @@ -e-module-conf2.edj diff --git a/src/modules/conf2/e-module-conf2.edc b/src/modules/conf2/e-module-conf2.edc deleted file mode 100644 index bbcdee42f..000000000 --- a/src/modules/conf2/e-module-conf2.edc +++ /dev/null @@ -1,2208 +0,0 @@ -#define ASPECT_FILL(_ASPECT) \ - aspect: _ASPECT _ASPECT; aspect_preference: NONE; -#define TILED_PATTERN(_WIDTH, _HEIGHT) \ - fill { size { relative: 0.0 0.0; offset: _WIDTH _HEIGHT; } } -#define TILED_HORIZ(_WIDTH) \ - fill { size { relative: 0.0 1.0; offset: _WIDTH 0; } } -#define FIXED_SIZE(_WIDTH, _HEIGHT) \ - min: _WIDTH _HEIGHT; max: _WIDTH _HEIGHT; fixed: 1 1; - -collections { - group { - name: "elm/conf2/option/overlay"; - images.image: "vgrad_med_curved.png" COMP; - parts { - part { name: "base"; - mouse_events: 0; - description { state: "default" 0.0; - image.normal: "vgrad_med_curved.png"; - fill { - smooth: 0; - size { - relative: 0.0 1.0; - offset: 64 0; - } - } - } - description { state: "hide" 0.0; - inherit: "default"; - visible: 0; - } - } - part { - name: "e.text.label"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default"; - fixed: 0 1; - rel1.offset: 2 -30; - rel2.offset: -3 -15; - rel2.to_y: "e.swallow.content"; - rel2.relative: 1 0; - color: 51 153 255 255; - color2: 51 153 255 24; - color3: 51 153 255 18; - text { font: "Sans"; size: 10; - min: 1 1; - ellipsis: 0.8; - align: 0.5 0.5; - text_class: "ilist_item"; - } - } - } - part { - name: "e.swallow.content"; - type: SWALLOW; - scale: 1; - description { - state: "default"; - min: 170 170; - rel1.offset: 2 3; - rel2.offset: -3 -3; - } - } - part { - name: "e.text.value"; - type: TEXT; - mouse_events: 0; - scale: 1; - description { state: "default"; - fixed: 0 1; - rel1.relative: 0 1; - rel1.offset: 2 5; - rel2.offset: -3 25; - color: 51 153 255 255; - color2: 51 153 255 24; - color3: 51 153 255 18; - text { font: "Sans"; size: 10; - min: 1 1; - ellipsis: 0.8; - align: 0.5 0.5; - text_class: "ilist_item"; - } - } - } - } - programs { - program { - signal: "e,state,bg_hide"; - source: "e"; - action: STATE_SET "hide" 0; - target: "base"; - } - } - } - - group { - name: "elm/conf2/tag/list"; - parts { - part { - name: "base"; - type: RECT; - mouse_events: 0; - description { - state: "default"; - color: 0 0 0 0; - visible: 0; - } - description { - state: "show"; - color: 0 0 0 255; - visible: 1; - } - } - part { - name: "e.swallow.options"; - type: SWALLOW; - repeat_events: 1; - scale: 1; - clip_to: "clip"; - description { - state: "default"; - rel2.relative: 1 0; - minmul: 1 0; - } - description { - state: "show"; - rel2.relative: 1 0.5; - } - } - part { - name: "e.swallow.tags"; - type: SWALLOW; - repeat_events: 1; - scale: 1; - clip_to: "clip"; - description { - state: "default"; - rel1.to_y: "e.swallow.options"; - rel1.relative: 0 1; - } - } - part { - name: "clip"; - type: RECT; - scale: 1; - mouse_events: 0; - description { - state: "default"; - rel1.to: "e.swallow.options"; - color: 255 255 255 255; - } - description { - state: "show"; - color: 0 0 0 255; - } - } - part { - name: "clip_events"; - type: RECT; - scale: 1; - mouse_events: 1; - description { - state: "default"; - color: 0 0 0 0; - visible: 0; - } - description { - state: "show"; - color: 0 0 0 0; - visible: 1; - } - } - part { - name: "e.swallow.discard"; - type: SWALLOW; - scale: 1; - description { - state: "default"; - fixed: 1 1; - max: 60 30; - rel1.to_y: "e.swallow.tags"; - rel1.relative: 1 0; - rel1.offset: -180 30; - } - description { - state: "hidden"; - inherit: "default"; - rel1.to_x: "e.swallow.tags"; - rel1.offset: 150 30; - } - } - part { - name: "e.swallow.apply"; - type: SWALLOW; - scale: 1; - description { - state: "default"; - fixed: 1 1; - max: 60 30; - rel1.to_y: "e.swallow.discard"; - rel1.relative: 1 1; - rel1.offset: -180 20; - } - description { - state: "hidden"; - inherit: "default"; - rel1.to_x: "e.swallow.tags"; - rel1.offset: 150 20; - } - } - part { - name: "e.swallow.overlay"; - type: SWALLOW; - scale: 1; - description { - state: "default"; - rel1.relative: 0.25 0.25; - rel2.relative: 0.75 0.75; - visible: 0; - } - description { - state: "show"; - inherit: "default"; - visible: 1; - } - } - } - programs { - program { name: "collapse"; - signal: "e,action,collapse"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.swallow.options"; - transition: DECELERATE 0.3; - } - program { name: "expand"; - signal: "e,action,expand"; - source: "e"; - action: STATE_SET "show" 0.0; - target: "e.swallow.options"; - transition: DECELERATE 0.3; - } - program { name: "apply_show"; - signal: "e,action,apply_show"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.swallow.apply"; - transition: DECELERATE 0.3; - } - program { name: "apply_hide"; - signal: "e,action,apply_hide"; - source: "e"; - action: STATE_SET "hidden" 0.0; - target: "e.swallow.apply"; - transition: DECELERATE 0.3; - } - program { name: "discard_show"; - signal: "e,action,discard_show"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.swallow.discard"; - transition: DECELERATE 0.3; - } - program { name: "discard_hide"; - signal: "e,action,discard_hide"; - source: "e"; - action: STATE_SET "hidden" 0.0; - target: "e.swallow.discard"; - transition: DECELERATE 0.3; - } - program { name: "overlay_show"; - signal: "e,action,overlay_show"; - source: "e"; - action: STATE_SET "show" 0.0; - target: "e.swallow.overlay"; - target: "clip"; - target: "base"; - target: "clip_events"; - transition: DECELERATE 0.3; - } - program { name: "overlay_hide"; - signal: "e,action,overlay_hide"; - source: "e"; - action: STATE_SET "default" 0.0; - target: "e.swallow.overlay"; - target: "clip"; - target: "base"; - target: "clip_events"; - transition: DECELERATE 0.3; - } - program { name: "overlay_dismiss"; - signal: "mouse,up,1"; - source: "clip_events"; - action: SIGNAL_EMIT "e,action,overlay_dismiss" "e"; - } - } - } - - group { name: "elm/label/base/conf2"; - parts { - part { name: "elm.text"; type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.offset: 2 2; - rel2.offset: -3 -3; - color: 255 255 255 255; - color3: 0 0 0 128; - color_class: "label_text"; - text { font: "Sans"; size: 10; - min: 1 1; - align: 0.0 0.5; - text_class: "label"; - } - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 21 21 21 255; - color3: 255 255 255 25; - } - } - } - } - - group { name: "elm/entry/base-single/conf2"; - styles - { - style { name: "entry_textblock_style"; - base: "font=Sans font_size=10 color=#ffffff wrap=none style=shadow,bottom shadow_color=#00000080 text_class=entry color_class=entry_text"; - } - style { name: "entry_textblock_disabled_style"; - base: "font=Sans font_size=10 color=#151515 wrap=none style=shadow,bottom shadow_color=#ffffff19 text_class=entry color_class=entry_text_disabled"; - } - /* FIXME */ - style { name: "entry_textblock_guide_style"; - base: "font=Sans font_size=10 color=#00000080 wrap=none text_class=entry left_margin=2 right_margin=2 ellipsis=0.0"; - tag: "em" "+ font_style=Oblique"; - tag: "hilight" "+ font_weight=Bold"; - } - } - parts { - part { name: "elm.guide"; - type: TEXTBLOCK; - mouse_events: 0; - scale: 1; - description { state: "default" 0.0; - rel1.to: "elm.text"; - rel2.to: "elm.text"; - text { - style: "entry_textblock_guide_style"; - min: 0 1; - align: 0.0 0.0; - } - } - description { state: "hidden" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "elm.text"; - type: TEXTBLOCK; - mouse_events: 1; - scale: 1; - entry_mode: EDITABLE; - select_mode: DEFAULT; - cursor_mode: BEFORE; - multiline: 0; - source: "elm/entry/selection/conf2"; // selection under - // source2: "X"; // selection over - // source3: "X"; // cursor under - source4: "elm/entry/cursor/conf2"; // cursorover - //source5: "elm/entry/anchor/conf2"; // anchor under - // source6: "X"; // anchor over - description { state: "default" 0.0; - /* we gotta use 0 0 here, because of scrolled entries */ - fixed: 0 0; - text { - style: "entry_textblock_style"; - min: 1 1; - max: 0 0; - align: 0.0 0.5; - } - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - text { - style: "entry_textblock_disabled_style"; - min: 0 1; - } - } - } - } - programs { - program { name: "focus"; - signal: "load"; - source: ""; - action: FOCUS_SET; - target: "elm.text"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "elm.text"; - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.text"; - } - program { name: "gdisable"; - signal: "elm,guide,disabled"; - source: "elm"; - action: STATE_SET "hidden" 0.0; - target: "elm.guide"; - } - program { name: "genable"; - signal: "elm,guide,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "elm.guide"; - } - } - } - - - group { name: "elm/entry/cursor/conf2"; - min: 1 0; - images.image: "white_bar_vert_glow.png" COMP; - parts { - part { name: "cursor"; mouse_events: 0; - description { state: "default" 0.0; - rel1.offset: -4 -4; - rel2.offset: 3 3; - image.normal: "white_bar_vert_glow.png"; - image.border: 4 4 4 4; - fill.smooth: 0; - color: 255 255 255 0; - min: 9 10; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - color: 255 255 255 255; - } - } - } - programs { - program { - signal: "elm,action,focus"; source: "elm"; - action: ACTION_STOP; - target: "cursor_show"; - target: "cursor_hide"; - target: "cursor_show_timer"; - target: "cursor_hide_timer"; - after: "cursor_show"; - } - program { - name: "on_cursor_hide"; - signal: "elm,action,unfocus"; source: "elm"; - action: ACTION_STOP; - target: "cursor_show"; - target: "cursor_hide"; - target: "cursor_show_timer"; - target: "cursor_hide_timer"; - after: "cursor_hide_stop"; - } - program { - name: "cursor_hide_stop"; - action: STATE_SET "default" 0.0; - target: "cursor"; - } - program { name: "cursor_show"; - action: STATE_SET "visible" 0.0; - target: "cursor"; - after: "cursor_show_timer"; - } - program { name: "cursor_hide"; - action: STATE_SET "default" 0.0; - target: "cursor"; - transition: SINUSOIDAL 0.2; - after: "cursor_hide_timer"; - } - program { name: "cursor_show_timer"; - in: 0.5 0.0; - after: "cursor_hide"; - } - program { name: "cursor_hide_timer"; - in: 0.2 0.0; - after: "cursor_show"; - } - } - } - - - - group { name: "elm/entry/selection/conf2"; - parts { - part { name: "selection"; type: RECT; mouse_events: 0; - description { state: "default" 0.0; - color: 51 153 255 255; - } - } - } - } - - group { name: "elm/button/base/conf2"; - images.image: "button_normal.png" COMP; - images.image: "button_clicked.png" COMP; - parts { - part { name: "base"; - description { state: "default" 0.0; - image.normal: "button_normal.png"; - image.border: 4 4 3 5; - image.middle: SOLID; - rel1.offset: -1 0; - rel2.offset: 0 1; - fill.smooth: 0; - } - description { state: "clicked" 0.0; - inherit: "default" 0.0; - image.normal: "button_clicked.png"; - image.border: 5 5 4 6; - } - } - part { name: "icon_clip"; type: RECT; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 255 255 255 64; - } - } - part { name: "elm.swallow.content"; type: SWALLOW; mouse_events: 0; - clip_to: "icon_clip"; - description { state: "default" 0.0; - min: 17 17; - align: 0.0 0.5; - fixed: 1 0; - rel1.offset: 6 5; - rel1.to: "base"; - rel2.offset: 6 -8; - rel2.relative: 0 1; - rel2.to: "base"; - } - description { state: "icon" 0.0; - inherit: "default" 0.0; - fixed: 0 0; - align: 0.5 0.5; - rel2.relative: 1.0 1.0; - rel2.offset: -7 -8; - } - } - part { name: "label_clip"; type: RECT; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "elm.text"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - clip_to: "label_clip"; - description { state: "default" 0.0; - rel1.offset: 2 5; - rel1.to_x: "elm.swallow.content"; - rel1.relative: 1 0; - rel1.to_y: "base"; - rel2.offset: -7 -9; - rel2.to: "base"; - color: 255 255 255 255; - color3: 0 0 0 128; - color_class: "button_text"; - text { font: "Sans"; size: 10; - min: 1 1; - align: 0.5 0.5; - text_class: "button"; - } - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 21 21 21 255; - color3: 255 255 255 25; - color_class: "button_text_disabled"; - } - description { state: "icon" 0.0; - inherit: "default" 0.0; - visible: 0; - minmul: 0 1; - } - } - part { name: "label2"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.to: "elm.text"; - rel2.to: "elm.text"; - color: 21 21 21 255; - color3: 255 255 255 25; - color_class: "button_text_disabled"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.5 0.5; - min: 1 1; - text_class: "button"; - } - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "event"; type: RECT; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - programs { - program { - signal: "mouse,down,1"; source: "event"; - action: SIGNAL_EMIT "elm,action,press" ""; - after: "down_anim"; - } - program { - name: "down_anim"; - action: STATE_SET "clicked" 0.0; - target: "base"; - } - program { - signal: "mouse,up,1"; source: "event"; - action: SIGNAL_EMIT "elm,action,unpress" ""; - after: "up_anim"; - } - program { - name: "up_anim"; - action: STATE_SET "default" 0.0; - target: "base"; - } - program { - name: "button_pressed_anim"; - signal: "elm,anim,activate"; - source: "elm"; - action: STATE_SET "clicked" 0.0; - target: "base"; - } - program { - signal: "mouse,clicked,1*"; source: "event"; - action: SIGNAL_EMIT "elm,action,click" ""; - } - program { - signal: "elm,state,text,hidden"; source: "elm"; - action: STATE_SET "icon" 0.0; - target: "elm.swallow.content"; - target: "elm.text"; - - } - program { - signal: "elm,state,disabled"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "event"; - target: "icon_clip"; - target: "label_clip"; - target: "label2"; - transition: DECELERATE 0.3; - } - program { - signal: "elm,state,enabled"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "event"; - target: "icon_clip"; - target: "label_clip"; - target: "label2"; - transition: DECELERATE 0.3; - } - } - } - - group { name: "elm/radio/base/conf2"; - images.image: "inset_shadow_circle_tiny.png" COMP; - images.image: "inset_circle_tiny.png" COMP; - images.image: "sym_radio_alum.png" COMP; - parts { - part { name: "inset"; mouse_events: 0; - description { state: "default" 0.0; - rel1.offset: 2 2; - rel2.relative: 0.0 1.0; - rel2.offset: 2 -3; - image.normal: "inset_shadow_circle_tiny.png"; - align: 0.0 0.5; - min: 13 13; - max: 13 13; - fixed: 1 1; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - image.normal: "inset_circle_tiny.png"; - } - } - part { name: "clip"; type: RECT; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 255 255 255 64; - } - } - part { name: "indicator"; mouse_events: 0; - clip_to: "clip"; - description { state: "default" 0.0; - rel1.to: "inset"; - rel2.to: "inset"; - image.normal: "sym_radio_alum.png"; - min: 11 11; - max: 11 11; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "elm.text"; type: TEXT; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.offset: 2 2; - rel1.to_x: "inset"; - rel1.relative: 1.0 0.0; - rel2.offset: -3 -3; - color: 255 255 255 255; - color3: 0 0 0 128; - color_class: "radio_text"; - text { font: "Sans"; size: 10; - min: 1 1; - align: 0.0 0.5; - text_class: "radio_button"; - } - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 21 21 21 255; - color3: 255 255 255 25; - } - } - part { name: "event"; type: RECT; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - programs { - program { name: "click"; - signal: "mouse,up,1"; - source: "event"; - action: SIGNAL_EMIT "elm,action,radio,toggle" ""; - } - program { name: "radio_on"; - signal: "elm,state,radio,on"; - source: "elm"; - action: STATE_SET "selected" 0.0; - target: "indicator"; - } - program { name: "radio_off"; - signal: "elm,state,radio,off"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "indicator"; - } - program { name: "disable"; - signal: "elm,state,disabled"; - source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "inset"; - target: "clip"; - target: "elm.text"; - target: "event"; - } - program { name: "enable"; - signal: "elm,state,enabled"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "inset"; - target: "clip"; - target: "elm.text"; - target: "event"; - } - } - } - - group { name: "elm/bg/base/conf2"; - images.image: "vgrad_med_curved.png" COMP; - parts { - part { name: "base"; - mouse_events: 0; - description { state: "default" 0.0; - image.normal: "vgrad_med_curved.png"; - fill { - smooth: 0; - size { - relative: 0.0 1.0; - offset: 64 0; - } - } - } - } - part { name: "elm.swallow.rectangle"; - type: SWALLOW; - description { state: "default" 0.0; - } - } - part { name: "elm.swallow.background"; - type: SWALLOW; - description { state: "default" 0.0; - } - } - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; - } - } - } - } - - group { name: "elm/genlist/item/conf2_tag/default"; - alias: "elm/genlist/item_compress/conf2_tag/default"; - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "contents" "elm.swallow.icon elm.swallow.end"; - data.item: "treesize" "20"; - images.image: "bevel_curved_horiz_out.png" COMP; - images.image: "shadow_rounded_horiz.png" COMP; - images.image: "vgrad_med_dark.png" COMP; - images.image: "bevel_horiz_out.png" COMP; - images.image: "shine.png" COMP; - parts { - part { name: "base"; type: RECT; mouse_events: 0; - description { state: "default" 0.0; - color: 64 64 64 255; - color_class: "ilist_item_base"; - } - } - part { name: "bevel"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "bevel_curved_horiz_out.png"; - image.border: 0 0 2 2; - image.middle: 0; - fill.smooth: 0; - } - } - part { name: "sel_shadow"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "shadow_rounded_horiz.png"; - image.border: 0 0 9 9; - rel1.offset: 0 -4; - rel2.offset: -1 5; - fill.smooth: 0; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "sel_base"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "vgrad_med_dark.png"; - fill.smooth: 0; - TILED_HORIZ(120) - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "sel_bevel"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "bevel_horiz_out.png"; - image.border: 0 0 2 2; - image.middle: 0; - fill.smooth: 0; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "elm.swallow.pad"; - type: SWALLOW; - description { state: "default" 0.0; - fixed: 1 0; - align: 0.0 0.5; - rel1 { - relative: 0.0 0.0; - offset: 4 4; - } - rel2 { - relative: 0.0 1.0; - offset: 4 -5; - } - } - } - part { name: "elm.swallow.icon"; type: SWALLOW; - description { state: "default" 0.0; - align: 0.0 0.5; - aspect: 1.0 1.0; aspect_preference: VERTICAL; - rel1.offset: 2 2; - rel2.relative: 0.0 1.0; - rel2.offset: 2 -3; - } - } - part { name: "elm.text"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.offset: 2 3; - rel1.relative: 1.0 0.0; - rel1.to_x: "elm.swallow.icon"; - rel2.offset: -3 -3; - rel2.relative: 0.0 1.0; - rel2.to_x: "elm.swallow.end"; - color: 255 255 255 255; - color3: 0 0 0 128; - color_class: "ilist_item"; - text { font: "Sans"; size: 10; - min: 1 1; - ellipsis: 0.8; - align: 0.0 0.5; - text_class: "ilist_item"; - } - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "label2"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.to: "elm.text"; - rel2.to: "elm.text"; - color: 21 21 21 255; - color3: 255 255 255 25; - color_class: "ilist_item_disabled"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.0 0.5; - text_class: "ilist_item"; - } - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "label3"; type: TEXT; mouse_events: 0; - effect: GLOW; - scale: 1; - description { state: "default" 0.0; - rel1.offset: -2 -3; - rel1.to: "elm.text"; - rel2.offset: 2 1; - rel2.to: "elm.text"; - color: 51 153 255 255; - color2: 51 153 255 24; - color3: 51 153 255 18; - color_class: "ilist_item_selected"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.0 0.5; - text_class: "ilist_item"; - } - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "elm.swallow.end"; type: SWALLOW; - description { state: "default" 0.0; - align: 1.0 0.5; - aspect: 1.0 1.0; aspect_preference: VERTICAL; - rel1.offset: -3 2; - rel1.relative: 1.0 0.0; - rel2.offset: -3 -3; - } - } - part { name: "sel_shine"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "shine.png"; - rel1.offset: 0 -2; - rel1.to: "sel_base"; - rel2.relative: 1.0 0.0; - rel2.offset: -1 2; - rel2.to: "sel_base"; - FIXED_SIZE(69, 5) - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "event"; type: RECT; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - programs { - program { - signal: "elm,state,selected"; source: "elm"; - action: STATE_SET "selected" 0.0; - target: "sel_shadow"; - target: "sel_base"; - target: "sel_bevel"; - target: "sel_shine"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,unselected"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "sel_shadow"; - target: "sel_base"; - target: "sel_bevel"; - target: "sel_shine"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,disabled"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "event"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,enabled"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "event"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - } - } - - group { name: "elm/genlist/item/conf2_double_label/default"; - alias: "elm/genlist/item_compress/conf2_double_label/default"; - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text elm.text.sub"; - data.item: "contents" "elm.swallow.icon elm.swallow.end"; - data.item: "treesize" "20"; - images.image: "bevel_curved_horiz_out.png" COMP; - images.image: "shadow_rounded_horiz.png" COMP; - images.image: "vgrad_med_dark.png" COMP; - images.image: "bevel_horiz_out.png" COMP; - images.image: "shine.png" COMP; - parts { - part { name: "base"; type: RECT; mouse_events: 0; - description { state: "default" 0.0; - color: 64 64 64 255; - color_class: "ilist_item_base"; - } - } - part { name: "bevel"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "bevel_curved_horiz_out.png"; - image.border: 0 0 2 2; - image.middle: 0; - fill.smooth: 0; - } - } - part { name: "sel_shadow"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "shadow_rounded_horiz.png"; - image.border: 0 0 9 9; - rel1.offset: 0 -4; - rel2.offset: -1 5; - fill.smooth: 0; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "sel_base"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "vgrad_med_dark.png"; - fill.smooth: 0; - TILED_HORIZ(120) - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "sel_bevel"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "bevel_horiz_out.png"; - image.border: 0 0 2 2; - image.middle: 0; - fill.smooth: 0; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "elm.swallow.pad"; - type: SWALLOW; - description { state: "default" 0.0; - fixed: 1 0; - align: 0.0 0.5; - rel1 { - relative: 0.0 0.0; - offset: 4 4; - } - rel2 { - relative: 0.0 1.0; - offset: 4 -5; - } - } - } - part { name: "elm.swallow.icon"; type: SWALLOW; - description { state: "default" 0.0; - align: 0.0 0.5; - aspect: 1.0 1.0; aspect_preference: VERTICAL; - rel1.offset: 2 2; - rel2.relative: 0.0 1.0; - rel2.offset: 2 -3; - } - } - part { name: "elm.text"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.offset: 2 3; - rel1.relative: 1.0 0.0; - rel1.to_x: "elm.swallow.icon"; - rel2.offset: -3 -3; - rel2.relative: 0.0 1.0; - rel2.to_x: "elm.swallow.end"; - color: 255 255 255 255; - color3: 0 0 0 128; - color_class: "ilist_item"; - text { font: "Sans"; size: 10; - min: 1 1; - ellipsis: 0.8; - align: 0.0 0.5; - text_class: "ilist_item"; - } - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "label2"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.to: "elm.text"; - rel2.to: "elm.text"; - color: 21 21 21 255; - color3: 255 255 255 25; - color_class: "ilist_item_disabled"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.0 0.5; - text_class: "ilist_item"; - } - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "label3"; type: TEXT; mouse_events: 0; - effect: GLOW; - scale: 1; - description { state: "default" 0.0; - rel1.offset: -2 -3; - rel1.to: "elm.text"; - rel2.offset: 2 1; - rel2.to: "elm.text"; - color: 51 153 255 255; - color2: 51 153 255 24; - color3: 51 153 255 18; - color_class: "ilist_item_selected"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.0 0.5; - text_class: "ilist_item"; - } - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "elm.text.sub"; type: TEXT; mouse_events: 0; - scale: 1; - description { - state: "default" 0.0; - rel1.offset: 2 3; - rel1.relative: 1.0 0.5; - rel1.to_x: "elm.swallow.icon"; - rel2.offset: -3 -3; - rel2.relative: 0.0 1.0; - rel2.to_x: "elm.swallow.end"; - color: 255 255 255 255; - color3: 0 0 0 128; - text { - font: "Sans"; - size: 8; - min: 1 1; - align: 0.0 0.5; - text_class: "list_item"; - } - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - color: 51 153 255 255; - color2: 51 153 255 24; - color3: 51 153 255 18; - } - } - part { name: "elm.swallow.end"; type: SWALLOW; - description { state: "default" 0.0; - align: 1.0 0.5; - aspect: 1.0 1.0; aspect_preference: VERTICAL; - rel1.offset: -3 2; - rel1.relative: 1.0 0.0; - rel2.offset: -3 -3; - } - } - part { name: "sel_shine"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "shine.png"; - rel1.offset: 0 -2; - rel1.to: "sel_base"; - rel2.relative: 1.0 0.0; - rel2.offset: -1 2; - rel2.to: "sel_base"; - FIXED_SIZE(69, 5) - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "event"; type: RECT; - repeat_events: 1; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - programs { - program { - signal: "elm,state,selected"; source: "elm"; - action: STATE_SET "selected" 0.0; - target: "sel_shadow"; - target: "sel_base"; - target: "sel_bevel"; - target: "sel_shine"; - target: "elm.text"; - target: "elm.text.sub"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,unselected"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "sel_shadow"; - target: "sel_base"; - target: "sel_bevel"; - target: "sel_shine"; - target: "elm.text"; - target: "elm.text.sub"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,disabled"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "event"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,enabled"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "event"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - } - } - - group { name: "elm/genlist/item/conf2_thumb/default"; - data.item: "stacking" "above"; - data.item: "selectraise" "on"; - data.item: "texts" "elm.text"; - data.item: "contents" "elm.swallow.icon"; - data.item: "treesize" "20"; - images.image: "bevel_curved_horiz_out.png" COMP; - images.image: "shadow_rounded_horiz.png" COMP; - images.image: "vgrad_med_dark.png" COMP; - images.image: "bevel_horiz_out.png" COMP; - images.image: "shine.png" COMP; - parts { - part { name: "base"; type: RECT; mouse_events: 0; - description { state: "default" 0.0; - color: 64 64 64 255; - color_class: "ilist_item_base"; - } - } - part { name: "bevel"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "bevel_curved_horiz_out.png"; - image.border: 0 0 2 2; - image.middle: 0; - fill.smooth: 0; - } - } - part { name: "sel_shadow"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "shadow_rounded_horiz.png"; - image.border: 0 0 9 9; - rel1.offset: 0 -4; - rel2.offset: -1 5; - fill.smooth: 0; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "sel_base"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "vgrad_med_dark.png"; - fill.smooth: 0; - TILED_HORIZ(120) - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "sel_bevel"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "bevel_horiz_out.png"; - image.border: 0 0 2 2; - image.middle: 0; - fill.smooth: 0; - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "elm.swallow.icon"; type: SWALLOW; mouse_events: 0; - description { state: "default" 0.0; - min: 150 150; - max: 170 150; - align: 0.5 0.0; - aspect: 1.0 1.0; aspect_preference: VERTICAL; - rel1.offset: 2 2; - rel2.offset: 2 -3; - } - } - part { name: "elm.text"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.offset: 2 3; - rel1.relative: 0.0 1.0; - rel1.to_y: "elm.swallow.icon"; - rel2.offset: -3 -3; - color: 255 255 255 255; - color3: 0 0 0 128; - color_class: "ilist_item"; - text { font: "Sans"; size: 10; - min: 1 1; - ellipsis: 0.8; - align: 0.5 0.5; - text_class: "ilist_item"; - } - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "label2"; type: TEXT; mouse_events: 0; - effect: SHADOW BOTTOM; - scale: 1; - description { state: "default" 0.0; - rel1.to: "elm.text"; - rel2.to: "elm.text"; - color: 21 21 21 255; - color3: 255 255 255 25; - color_class: "ilist_item_disabled"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.5 0.5; - text_class: "ilist_item"; - } - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "label3"; type: TEXT; mouse_events: 0; - effect: GLOW; - scale: 1; - description { state: "default" 0.0; - rel1.offset: -2 -3; - rel1.to: "elm.text"; - rel2.offset: 2 1; - rel2.to: "elm.text"; - color: 51 153 255 255; - color2: 51 153 255 24; - color3: 51 153 255 18; - color_class: "ilist_item_selected"; - text { font: "Sans"; size: 10; - text_source: "elm.text"; - align: 0.5 0.5; - text_class: "ilist_item"; - } - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "sel_shine"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "shine.png"; - rel1.offset: 0 -2; - rel1.to: "sel_base"; - rel2.relative: 1.0 0.0; - rel2.offset: -1 2; - rel2.to: "sel_base"; - FIXED_SIZE(69, 5) - visible: 0; - } - description { state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "event"; type: RECT; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - programs { - program { - signal: "elm,state,selected"; source: "elm"; - action: STATE_SET "selected" 0.0; - target: "sel_shadow"; - target: "sel_base"; - target: "sel_bevel"; - target: "sel_shine"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,unselected"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "sel_shadow"; - target: "sel_base"; - target: "sel_bevel"; - target: "sel_shine"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,disabled"; source: "elm"; - action: STATE_SET "disabled" 0.0; - target: "event"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - program { - signal: "elm,state,enabled"; source: "elm"; - action: STATE_SET "default" 0.0; - target: "event"; - target: "elm.text"; - target: "label2"; - target: "label3"; - } - } - } - - group { name: "elm/check/base/conf2"; - images.image: "inset_shadow_tiny.png" COMP; - images.image: "bevel_in.png" COMP; - images.image: "sym_check_alum.png" COMP; - parts { - part { name: "base"; type: RECT; - description { state: "default" 0.0; - rel1.offset: 1 1; - rel1.to: "inset"; - rel2.offset: -2 -2; - rel2.to: "inset"; - color: 24 24 24 255; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 64 64 64 255; - } - } - part { name: "shadow"; mouse_events: 0; - description { state: "default" 0.0; - image.normal: "inset_shadow_tiny.png"; - rel1.to: "base"; - rel2.to: "base"; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - part { name: "inset"; mouse_events: 0; - description { state: "default" 0.0; - rel1.offset: 1 2; - rel2.offset: 1 -3; - image.normal: "bevel_in.png"; - image.border: 1 1 1 1; - image.middle: 0; - fill.smooth: 0; - min: 18 18; - max: 18 18; - fixed: 1 1; - } - } - part { name: "clip"; type: RECT; - description { state: "default" 0.0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - color: 255 255 255 64; - } - } - part { name: "check"; mouse_events: 0; - clip_to: "clip"; - description { state: "default" 0.0; - rel1.to: "base"; - rel2.to: "base"; - image.normal: "sym_check_alum.png"; - min: 16 16; - max: 16 16; - visible: 0; - } - description { state: "visible" 0.0; - inherit: "default" 0.0; - visible: 1; - } - } - part { name: "event"; type: RECT; - ignore_flags: ON_HOLD; - description { state: "default" 0.0; - color: 0 0 0 0; - } - description { state: "disabled" 0.0; - inherit: "default" 0.0; - visible: 0; - } - } - } - programs { - program { name: "click"; - signal: "mouse,clicked,1"; - source: "event"; - action: SIGNAL_EMIT "elm,action,check,toggle" ""; - } - program { name: "check_on"; - signal: "elm,state,check,on"; - source: "elm"; - action: STATE_SET "visible" 0.0; - target: "check"; - } - program { name: "check_off"; - signal: "elm,state,check,off"; - source: "elm"; - action: STATE_SET "default" 0.0; - target: "check"; - } - program { - signal: "elm,state,disabled"; source: "e"; - action: STATE_SET "disabled" 0.0; - target: "base"; - target: "shadow"; - target: "clip"; - target: "event"; - } - program { - signal: "e,state,enabled"; source: "e"; - action: STATE_SET "default" 0.0; - target: "base"; - target: "shadow"; - target: "clip"; - target: "event"; - } - } - } - - group { name: "elm/tooltip/base/conf2"; - min: 30 30; - data { - item: "pad_x" "20"; - item: "pad_y" "20"; - item: "pad_border_x" "10"; - item: "pad_border_y" "10"; - item: "hide_timeout" "0.3"; - } - images.image: "vgrad_med_curved.png" COMP; - - parts { - part { name: "pop"; - mouse_events: 0; - description { state: "default" 0.0; - min: 30 30; - rel1 { - to: "elm.swallow.content"; - offset: -15 -15; - } - rel2 { - to: "elm.swallow.content"; - offset: 14 14; - } - image { - normal: "vgrad_med_curved.png"; - border: 14 14 14 14; - } - image.middle: SOLID; - } - } - - part { name: "elm.swallow.content"; - type: SWALLOW; - description { state: "default" 0.0; } - } - } - } - -/////////////////////////////////////////////////////////////////////////////// - - - /* - Round volume knob. - 2012 - Raoul Hecky - - It's a new custom style for an elm_slider. - It uses embryo and hidden dragable part to set/get the position - of the volume knob. Another hidden dragable is used to move the - knob using the mouse/finger. All math are done using embryo. - */ - - group - { - name: "base/knob_volume"; - - images - { - image: "volume_knob.png" COMP; - image: "volume_knob_move.png" COMP; - image: "volume_knob_ledsoff.png" COMP; - - image: "volume_led_01.png" COMP; - } - - script - { - #define VOLUME_MIN_ANGLE 0.0 - #define VOLUME_MAX_ANGLE 264.0 - #define VOLUME_MAX_LEDS 45 - - public knob_angle; - public knob_offset; - public leds_on; - - public led_status; //edje list to keep track of each led status - - public Float:calc_angle(mx, my) - { - new px, py, pw, ph; - get_geometry(PART:"bg", px, py, pw, ph); - - new center_x, center_y; - center_x = px + pw / 2; - center_y = py + ph / 2; - - new dx, dy; - dx = center_x - mx; - dy = center_y - my; - - new Float:angle; - angle = atan2(-dx, dy) * 180.0 / PI + 180.0; - - return angle; - } - - public rotate_knob(Float:val) - { - custom_state(PART:"knob", "default", 0.0); - set_state_val(PART:"knob", STATE_MAP_ROT_Z, val); - set_state(PART:"knob", "custom", 0.0); - - //set needed leds on or off from current value - set_int(leds_on, round(val * VOLUME_MAX_LEDS / VOLUME_MAX_ANGLE)); - emit("leds,changed", "volume"); - } - } - - parts - { - part - { - name: "bg"; - type: RECT; - scale: 1; - description - { - state: "default" 0.0; - visible: 0; - rel1.to: "leds_off"; - rel2.to: "leds_off"; - } - } - - part - { - name: "knob_back"; - mouse_events: 0; - scale: 1; - description - { - state: "default" 0.0; - image.normal: "volume_knob.png"; - } - } - - part - { - name: "knob"; - mouse_events: 0; - scale: 1; - description - { - state: "default" 0.0; - image.normal: "volume_knob_move.png"; - map.on: 1; - } - } - - part - { - name: "leds_off"; - mouse_events: 0; - scale: 1; - description - { - state: "default" 0.0; - image.normal: "volume_knob_ledsoff.png"; - color: 255 255 255 50; - } - } - - #define VOLUME_LED_ON(num, inum) \ - part \ - { \ - name: "led_"num; \ - mouse_events: 0; \ - scale: 1; \ - description \ - { \ - state: "default" 0.0; \ - rel1.to: "leds_off"; \ - rel2.to: "leds_off"; \ - image.normal: "volume_led_01.png"; \ - map { \ - on: 1; \ - rotation { \ - center: "bg"; \ - z: (((inum-1)*VOLUME_MAX_ANGLE)/45); \ - } \ - } \ - visible: 0; \ - color: 255 255 255 0; \ - } \ - description \ - { \ - state: "visible" 0.0; \ - inherit: "default" 0.0; \ - visible: 1; \ - color: 255 255 255 255; \ - } \ - } \ - program \ - { \ - name: "show_led_"num; \ - action: STATE_SET "visible" 0.0; \ - transition: DECELERATE 0.6 CURRENT; \ - target: "led_"num; \ - } \ - program \ - { \ - name: "hide_led_"num; \ - action: STATE_SET "default" 0.0; \ - transition: DECELERATE 0.6 CURRENT; \ - target: "led_"num; \ - } \ - program \ - { \ - name: "sig_led_changed_"num; \ - signal: "leds,changed"; \ - source: "volume"; \ - script \ - { \ - new current_status = fetch_int(led_status, inum - 1); \ - new new_status; \ - if (get_int(leds_on) >= inum) \ - new_status = 1; \ - else \ - new_status = 0; \ - \ - if (current_status != new_status) \ - { \ - if (new_status == 1) \ - run_program(PROGRAM:"show_led_"num); \ - else if (new_status == 0) \ - run_program(PROGRAM:"hide_led_"num); \ - \ - replace_int(led_status, inum - 1, new_status); \ - } \ - } \ - } - - VOLUME_LED_ON("01", 1) - VOLUME_LED_ON("02", 2) - VOLUME_LED_ON("03", 3) - VOLUME_LED_ON("04", 4) - VOLUME_LED_ON("05", 5) - VOLUME_LED_ON("06", 6) - VOLUME_LED_ON("07", 7) - VOLUME_LED_ON("08", 8) - VOLUME_LED_ON("09", 9) - VOLUME_LED_ON("10", 10) - - VOLUME_LED_ON("11", 11) - VOLUME_LED_ON("12", 12) - VOLUME_LED_ON("13", 13) - VOLUME_LED_ON("14", 14) - VOLUME_LED_ON("15", 15) - VOLUME_LED_ON("16", 16) - VOLUME_LED_ON("17", 17) - VOLUME_LED_ON("18", 18) - VOLUME_LED_ON("19", 19) - VOLUME_LED_ON("20", 20) - - VOLUME_LED_ON("21", 21) - VOLUME_LED_ON("22", 22) - VOLUME_LED_ON("23", 23) - VOLUME_LED_ON("24", 24) - VOLUME_LED_ON("25", 25) - VOLUME_LED_ON("26", 26) - VOLUME_LED_ON("27", 27) - VOLUME_LED_ON("28", 28) - VOLUME_LED_ON("29", 29) - VOLUME_LED_ON("30", 30) - - VOLUME_LED_ON("31", 31) - VOLUME_LED_ON("32", 32) - VOLUME_LED_ON("33", 33) - VOLUME_LED_ON("34", 34) - VOLUME_LED_ON("35", 35) - VOLUME_LED_ON("36", 36) - VOLUME_LED_ON("37", 37) - VOLUME_LED_ON("38", 38) - VOLUME_LED_ON("39", 39) - VOLUME_LED_ON("40", 40) - - VOLUME_LED_ON("41", 41) - VOLUME_LED_ON("42", 42) - VOLUME_LED_ON("43", 43) - VOLUME_LED_ON("44", 44) - VOLUME_LED_ON("45", 45) - - part - { - name: "event"; - type: RECT; - description - { - state: "default" 0.0; - rel1.to: "knob"; - rel2.to: "knob"; - color: 0 0 0 0; - - } - dragable - { - x: 1 1 0; - y: 1 1 0; - } - } - - part - { - //The real slider for elm_slider - name: "elm.dragable.slider"; - type: RECT; - description - { - state: "default" 0.0; - visible: 0; - - } - dragable - { - x: 1 1 0; - y: 0 0 0; - } - } - - } - - programs - { - program - { - name: "on_drag_start"; - signal: "drag,start"; - source: "event"; - script - { - new mx, my; - get_mouse(mx, my); - - set_float(knob_offset, calc_angle(mx, my) - get_float(knob_angle)); - } - } - - program - { - name: "on_drag_move"; - signal: "drag"; - source: "event"; - script - { - new mx, my; - get_mouse(mx, my); - - new Float:angle = calc_angle(mx, my) - get_float(knob_offset); - - //Limits the button range - if (angle < VOLUME_MIN_ANGLE) angle = VOLUME_MIN_ANGLE; - if (angle > VOLUME_MAX_ANGLE) angle = VOLUME_MAX_ANGLE; - - set_float(knob_angle, angle); - - rotate_knob(angle); - set_drag(PART:"elm.dragable.slider", - get_float(knob_angle) / VOLUME_MAX_ANGLE, 0.0); - } - } - - - program - { - name: "on_drag_stop"; - signal: "drag,stop"; - source: "event"; - script - { - set_drag(PART:"event", 0.0, 0.0); - } - } - - program - { - name: "on_slider_set"; - signal: "drag,set"; - source: "elm.dragable.slider"; - script - { - new Float:dx, Float:dy; - get_drag(PART:"elm.dragable.slider", dx, dy); - - new Float:angle = dx * VOLUME_MAX_ANGLE; - set_float(knob_angle, angle); - - rotate_knob(angle); - } - } - - program - { - name: "on_init"; - signal: "show"; - script - { - while (count(led_status) < VOLUME_MAX_LEDS) - append_int(led_status, 0); - } - } - program - { - name: "on_wheel"; - signal: "mouse,wheel*"; - source: "event"; - after: "on_slider_set"; - } - } - } - - group - { - name: "elm/slider/horizontal/knob_volume"; - inherit: "base/knob_volume"; - parts - { - part - { - name: "knob_back"; - description - { - state: "default" 0.0; - rel1.to: "knob"; - rel2.to: "knob"; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - - part - { - name: "knob"; - description - { - state: "default" 0.0; - min: 24 24; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - rel1.offset: 1 1; - rel2.relative: 0.0 1.0; - rel2.offset: 1 -2; - align: 0.0 0.5; - } - } - - part - { - name: "leds_off"; - description - { - state: "default" 0.0; - rel1.to: "knob"; - rel2.to: "knob"; - aspect: 1.0 1.0; - aspect_preference: VERTICAL; - } - } - } - } - - -/* aaaaaaaaaand because the volume knob doesn't resize we need another group here */ - group - { - name: "elm/slider/horizontal/knob_volume_big"; - inherit: "base/knob_volume"; - min: 200 200; - - parts - { - part - { - name: "knob_back"; - description - { - state: "default" 0.0; - rel1 { relative: 0.5 0.5; offset: -100 -100; } - rel2 { relative: 0.5 0.5; offset: 99 99; } - } - } - - part - { - name: "knob"; - description - { - state: "default" 0.0; - rel1 { relative: 0.5 0.5; offset: -100 -100; } - rel2 { relative: 0.5 0.5; offset: 99 99; } - } - } - - part - { - name: "leds_off"; - description - { - state: "default" 0.0; - rel1 { relative: 0.5 0.5; offset: -100 -100; } - rel2 { relative: 0.5 0.5; offset: 99 99; } - } - } - } - } -} diff --git a/src/modules/conf2/e_conf2.c b/src/modules/conf2/e_conf2.c deleted file mode 100644 index cd4110972..000000000 --- a/src/modules/conf2/e_conf2.c +++ /dev/null @@ -1,1319 +0,0 @@ -#include "e.h" - -#include "e_mod_main.h" - -static Elm_Genlist_Item_Class *itc_cats = NULL; -static Elm_Genlist_Item_Class *itc_tags = NULL; -static Elm_Genlist_Item_Class *itc_opts = NULL; -static Elm_Genlist_Item_Class *itc_thumb = NULL; -static E_Configure_Option_Ctx *ctx_entry = NULL; -static E_Configure_Option_Ctx *ctx_click = NULL; -static E_Configure_Option_Ctx *ctx_active = NULL; -static Evas_Object *list[2] = {NULL, NULL}; -static Evas_Object *layout = NULL; -static Evas_Object *overlay = NULL; -static Evas_Object *back = NULL; -static Evas_Object *entry = NULL; -static Ecore_Timer *reset_timer = NULL; -static Eina_List *handlers = NULL; -static Eina_Bool overlay_locked = EINA_FALSE; - -static Eina_Bool buttons_visible = EINA_TRUE; - -static Eina_Bool _event_opt_changed(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Changed *ev); -static void _tag_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED); -static void _opt_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info); - -static void -_buttons_toggle(E_Configure_Option *co, Eina_Bool global) -{ - Eina_Bool show; - - if (global) - show = !!e_configure_option_changed_list(); - else - show = co->changed; - if (show) - { - if (!buttons_visible) - { - elm_layout_signal_emit(layout, "e,action,apply_show", "e"); - elm_layout_signal_emit(layout, "e,action,discard_show", "e"); - } - buttons_visible = EINA_TRUE; - } - else - { - if (buttons_visible) - { - elm_layout_signal_emit(layout, "e,action,apply_hide", "e"); - elm_layout_signal_emit(layout, "e,action,discard_hide", "e"); - } - buttons_visible = EINA_FALSE; - } -} - -static double -_opt_overlay_value_update(E_Configure_Option *co, Evas_Object *obj) -{ - char buf[256]; - double d; - Elm_Object_Item *it; - Evas_Object *o; - - it = e_configure_option_data_get(co, "conf_item"); - if (overlay_locked) - o = elm_object_part_content_get(overlay, "e.swallow.content"); - else - o = elm_object_item_part_content_get(it, "elm.swallow.icon"); - d = elm_slider_value_get(obj); - - - elm_slider_value_set(o, d); - snprintf(buf, sizeof(buf), co->info, d); - elm_object_part_text_set(overlay, "e.text.value", buf); - return d; -} - -static void -_opt_item_update(E_Configure_Option *co) -{ - Elm_Object_Item *it; - Evas_Object *o, *o2 = NULL; - void *val; - - it = e_configure_option_data_get(co, "conf_item"); - if (!it) return; - o = elm_object_item_part_content_get(it, "elm.swallow.icon"); - if (overlay && (!overlay_locked) && (co == evas_object_data_get(overlay, "config_option"))) - o2 = elm_object_part_content_get(overlay, "e.swallow.content"); - val = (void*)e_configure_option_value_get(co); - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_BOOL: - elm_check_state_pointer_set(o, val); - elm_check_state_pointer_set(o, NULL); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - elm_slider_value_set(o, *(unsigned char*)val); - if (o2) - { - elm_slider_value_set(o2, *(unsigned char*)val); - _opt_overlay_value_update(co, o2); - } - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - elm_slider_value_set(o, *(double*)val); - if (o2) - { - elm_slider_value_set(o2, *(double*)val); - _opt_overlay_value_update(co, o2); - } - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: - elm_slider_value_set(o, *(int*)val); - if (o2) - { - elm_slider_value_set(o2, *(int*)val); - _opt_overlay_value_update(co, o2); - } - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: - elm_slider_value_set(o, *(unsigned int*)val); - if (o2) - { - elm_slider_value_set(o2, *(unsigned int*)val); - _opt_overlay_value_update(co, o2); - } - break; - case E_CONFIGURE_OPTION_TYPE_ENUM: - if (o2) evas_object_smart_callback_call(o2, "changed", NULL); - break; - case E_CONFIGURE_OPTION_TYPE_STR: - if (o2) evas_object_smart_callback_call(o2, "activated", NULL); - break; - case E_CONFIGURE_OPTION_TYPE_INT: - case E_CONFIGURE_OPTION_TYPE_UINT: - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - break; //not applicable - } - -} - -static Eina_Bool -_button_icon_set(Evas_Object *o, const char *name) -{ - Evas_Object *ob; - - ob = elm_icon_add(o); - if (!elm_icon_standard_set(ob, name)) - { - char buf[4096]; - const char *file; - - snprintf(buf, sizeof(buf), "e/icons/%s", name); - file = e_theme_edje_icon_fallback_file_get(buf); - if ((!file) || (!file[0])) return EINA_FALSE; - if (!elm_image_file_set(ob, file, buf)) - { - evas_object_del(ob); - return EINA_FALSE; - } - } - elm_object_content_set(o, ob); - elm_object_style_set(o, "conf2"); - return EINA_TRUE; -} - -static Evas_Object * -_e_conf2_opt_tooltip_cb(void *data, Evas_Object *owner EINA_UNUSED, Evas_Object *tt, void *item EINA_UNUSED) -{ - Evas_Object *o; - - /* FIXME: tooltip theme seems to be broken for sizing */ - //e = elm_layout_add(tt); - //elm_layout_theme_set(e, "tooltip", "base", "conf2"); - o = elm_label_add(tt); - elm_object_style_set(o, "conf2"); - elm_object_text_set(o, data); - evas_object_show(o); - //elm_object_part_content_set(e, "elm.swallow.content", o); - return o; -} - -static void -_e_conf2_opt_realize(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *it) -{ - E_Configure_Option *co; - - co = elm_object_item_data_get(it); - if (!co->help) return; - elm_object_item_tooltip_content_cb_set(it, _e_conf2_opt_tooltip_cb, co->help, NULL); - elm_object_item_tooltip_style_set(it, "conf2"); - elm_object_item_tooltip_window_mode_set(it, EINA_TRUE); -} - -static void -_e_conf2_opts_list(E_Configure_Option_Ctx *ctx) -{ - Eina_List *l; - E_Configure_Option *co; - Elm_Object_Item *it; - - elm_genlist_clear(list[1]); - EINA_LIST_FOREACH(ctx->opts, l, co) - { - it = elm_genlist_item_append(list[1], itc_opts, co, NULL, 0, _opt_sel, co); - e_configure_option_data_set(co, "conf_item", it); - } -} - -static void -_ctx_active_update(void) -{ - Eina_List *l; - Eina_Stringshare *tag; - - ctx_active->tags = eina_list_free(ctx_active->tags); - ctx_active->changed = EINA_TRUE; - if (ctx_entry && ctx_entry->tags) - ctx_active->tags = eina_list_clone(ctx_entry->tags); - else - { - if (ctx_click && ctx_click->tags) - ctx_active->tags = eina_list_clone(ctx_click->tags); - return; - } - if ((!ctx_click) || (!ctx_click->tags)) return; - EINA_LIST_FOREACH(ctx_click->tags, l, tag) - e_configure_option_ctx_tag_add(ctx_active, tag); -} - -static void -_tag_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - const Eina_List *l; - Eina_Stringshare *tag; - - E_FREE_FUNC(reset_timer, ecore_timer_del); - if (!ctx_click) ctx_click = e_configure_option_ctx_new(); - if (!e_configure_option_ctx_tag_add(ctx_click, data)) return; - _ctx_active_update(); - e_configure_option_ctx_option_list(ctx_active); - elm_object_disabled_set(back, 0); - if (!elm_genlist_items_count(list[1])) - elm_layout_signal_emit(layout, "e,action,expand", "e"); - _e_conf2_opts_list(ctx_active); - elm_genlist_clear(list[0]); - e_configure_option_ctx_match_tag_list(ctx_active); - EINA_LIST_FOREACH(ctx_active->match_tags, l, tag) - elm_genlist_item_append(list[0], itc_tags, tag, NULL, 0, _tag_sel, tag); -} - -static void -_cat_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Eina_Stringshare *tag; - const Eina_List *l; - Eina_List *ll, *lll, *opts = NULL; - E_Configure_Option *co; - - elm_object_disabled_set(back, 0); - if (!ctx_click) ctx_click = e_configure_option_ctx_new(); - ctx_click->category = ctx_active->category = data; - E_FREE_FUNC(reset_timer, ecore_timer_del); - elm_genlist_clear(list[0]); - EINA_LIST_FOREACH(e_configure_option_category_list_tags(data), l, tag) - { - elm_genlist_item_append(list[0], itc_tags, tag, NULL, 0, _tag_sel, tag); - opts = eina_list_merge(opts, eina_list_clone(e_configure_option_tag_list_options(tag))); - } - EINA_LIST_FOREACH_SAFE(opts, ll, lll, co) - { - Eina_List *lc; - - while (1) - { - if (!lll) break; - lc = eina_list_data_find_list(lll, co); - if (!lc) break; - if (lc == lll) lll = eina_list_next(lll); - opts = eina_list_remove_list(opts, lc); - } - } - ctx_active->opts = opts; - if (!elm_genlist_items_count(list[1])) - elm_layout_signal_emit(layout, "e,action,expand", "e"); - _e_conf2_opts_list(ctx_active); -} - -static Eina_Bool -_reset_cb(void *d EINA_UNUSED) -{ - const Eina_List *l; - Eina_Stringshare *cat; - - elm_layout_signal_emit(layout, "e,action,collapse", "e"); - elm_genlist_clear(list[0]); - elm_genlist_clear(list[1]); - ctx_active->match_tags = eina_list_free(ctx_active->match_tags); - ctx_active->tags = eina_list_free(ctx_active->tags); - ctx_active->opts = eina_list_free(ctx_active->opts); - E_FREE_FUNC(ctx_entry, e_configure_option_ctx_free); - E_FREE_FUNC(ctx_click, e_configure_option_ctx_free); - EINA_LIST_FOREACH(e_configure_option_category_list(), l, cat) - elm_genlist_item_append(list[0], itc_cats, cat, NULL, 0, _cat_sel, cat); - elm_object_disabled_set(back, 1); - _buttons_toggle(NULL, EINA_TRUE); - ctx_active->category = NULL; - reset_timer = NULL; - return EINA_FALSE; -} - -static void -_entry_change_cb(void *data EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Eina_Stringshare *txt, *tag; - Eina_List *l; - - E_FREE_FUNC(reset_timer, ecore_timer_del); - txt = elm_entry_entry_get(obj); - E_FREE_FUNC(overlay, evas_object_del); - if (!ctx_entry) ctx_entry = e_configure_option_ctx_new(); - if (!e_configure_option_ctx_update(ctx_entry, txt)) return; - _ctx_active_update(); - if (!e_configure_option_ctx_option_list(ctx_active)) - { - if (!ctx_active->tags) _reset_cb(NULL); - else elm_genlist_clear(list[1]); - return; - } - if ((ctx_click && ctx_click->tags) || ctx_active->category) - elm_object_disabled_set(back, 0); - if (!elm_genlist_items_count(list[1])) - elm_layout_signal_emit(layout, "e,action,expand", "e"); - _e_conf2_opts_list(ctx_active); - elm_genlist_clear(list[0]); - e_configure_option_ctx_match_tag_list(ctx_active); - EINA_LIST_FOREACH(ctx_active->match_tags, l, tag) - elm_genlist_item_append(list[0], itc_tags, tag, NULL, 0, _tag_sel, tag); -} - -static void -_apply_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - e_configure_option_apply_all(); - _buttons_toggle(NULL, EINA_TRUE); -} - -static void -_discard_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - /* buttons hidden in event callback */ - if (overlay) - { - E_Configure_Option *co; - - co = evas_object_data_get(overlay, "config_option"); - if (co) - { - e_configure_option_reset(co); - return; - } - - } - e_configure_option_reset_all(); -} - -static Eina_Bool -_cat_back_cb(void *data EINA_UNUSED) -{ - ctx_active->tags = eina_list_free(ctx_active->tags); - ctx_active->opts = eina_list_free(ctx_active->opts); - _cat_sel((void*)ctx_active->category, NULL, NULL); - reset_timer = NULL; - return EINA_FALSE; -} - -static void -_back_cb(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - Elm_Object_Item *it; - const Eina_List *l; - Eina_Stringshare *tag; - Eina_Bool cat = EINA_FALSE; - - E_FREE_FUNC(reset_timer, ecore_timer_del); - if (overlay) - { - evas_object_del(overlay); - return; - } - if (!ctx_click) return; - E_FREE_FUNC(overlay, evas_object_del); - if (ctx_click->tags) - { - cat = EINA_TRUE; - if (!e_configure_option_ctx_tag_pop(ctx_click)) return; - _ctx_active_update(); - } - if ((!ctx_click->tags) && (!ctx_active->tags)) - { - if (cat) - reset_timer = ecore_timer_add(0.1, _cat_back_cb, NULL); - else - reset_timer = ecore_timer_add(0.01, _reset_cb, NULL); - return; - } - e_configure_option_ctx_option_list(ctx_active); - _e_conf2_opts_list(ctx_active); - e_configure_option_ctx_match_tag_list(ctx_active); - EINA_LIST_FOREACH(ctx_active->match_tags, l, tag) - elm_genlist_item_append(list[0], itc_tags, tag, NULL, 0, _tag_sel, tag); - it = elm_genlist_selected_item_get(list[0]); - if (it) elm_genlist_item_selected_set(it, EINA_FALSE); -} - -static void -_e_conf2_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - E_FREE_FUNC(itc_cats, elm_genlist_item_class_free); - E_FREE_FUNC(itc_tags, elm_genlist_item_class_free); - E_FREE_FUNC(itc_opts, elm_genlist_item_class_free); - E_FREE_FUNC(itc_thumb, elm_genlist_item_class_free); - E_FREE_FUNC(ctx_entry, e_configure_option_ctx_free); - E_FREE_FUNC(ctx_click, e_configure_option_ctx_free); - E_FREE_FUNC(ctx_active, e_configure_option_ctx_free); - E_FREE_FUNC(reset_timer, ecore_timer_del); - list[0] = list[1] = layout = overlay = back = entry = NULL; - E_FREE_LIST(handlers, ecore_event_handler_del); - e_configure_option_reset_all(); - buttons_visible = EINA_TRUE; - overlay_locked = EINA_FALSE; -} - -static char * -_e_conf2_text_get_opts(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) -{ - E_Configure_Option *co = data; - char *txt = NULL; - - if (!strcmp(part, "elm.text")) - txt = strdup(co->desc); - else if (!strcmp(part, "elm.text.sub")) - txt = strdup(co->name); - - return txt; -} - -static void -_e_conf2_opt_change_double_int(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - E_Configure_Option *co = data; - int x; - - x = lround(elm_slider_value_get(obj)); - - if (e_config->cfgdlg_auto_apply) - *(int*)co->valptr = x; - else - eina_value_set(&co->val, x); - e_configure_option_changed(co); -} - -static void -_e_conf2_opt_change_double(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - E_Configure_Option *co = data; - - if (e_config->cfgdlg_auto_apply) - *(double*)co->valptr = elm_slider_value_get(obj); - else - eina_value_set(&co->val, elm_slider_value_get(obj)); - e_configure_option_changed(co); -} - -static void -_e_conf2_opt_change_double_uchar(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - E_Configure_Option *co = data; - int x; - unsigned char u; - - x = lround(elm_slider_value_get(obj)); - u = MAX(0, x); - - if (e_config->cfgdlg_auto_apply) - *(unsigned char*)co->valptr = u; - else - eina_value_set(&co->val, u); - e_configure_option_changed(co); -} - -static void -_e_conf2_opt_change_bool(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - E_Configure_Option *co = data; - - if (e_config->cfgdlg_auto_apply) - *(Eina_Bool*)co->valptr = elm_check_state_get(obj); - else - eina_value_set(&co->val, elm_check_state_get(obj)); - e_configure_option_changed(co); -} - -static void -_opt_overlay_slider_change(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - E_Configure_Option *co = data; - - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - _opt_overlay_value_update(co, obj); - _e_conf2_opt_change_double(co, obj, NULL); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: - _opt_overlay_value_update(co, obj); - _e_conf2_opt_change_double_int(co, obj, NULL); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - _opt_overlay_value_update(co, obj); - _e_conf2_opt_change_double_uchar(co, obj, NULL); - default: - break; - } -} - -static void -_opt_overlay_del(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - Elm_Object_Item *it; - E_Event_Configure_Option_Changed ev; - - if (!e_configure_option_tags_list()) return; - overlay = NULL; - it = elm_genlist_selected_item_get(list[1]); - if (it) elm_genlist_item_selected_set(it, EINA_FALSE); - elm_layout_signal_emit(layout, "e,action,overlay_hide", "e"); - elm_object_disabled_set(list[0], EINA_FALSE); - elm_object_disabled_set(list[1], EINA_FALSE); - elm_object_focus_allow_set(entry, EINA_TRUE); - elm_object_focus_allow_set(list[0], EINA_TRUE); - elm_object_focus_allow_set(list[1], EINA_TRUE); - elm_object_focus_set(list[1], EINA_TRUE); - ev.co = evas_object_data_get(obj, "config_option"); - _event_opt_changed(NULL, E_EVENT_CONFIGURE_OPTION_CHANGED, &ev); -} - -static void -_opt_overlay_list_change(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - E_Configure_Option_Info *oi = data; - - elm_object_part_text_set(overlay, "e.text.value", oi->name); - if (oi->co->type == E_CONFIGURE_OPTION_TYPE_STR) - { - if (e_config->cfgdlg_auto_apply) - eina_stringshare_replace(oi->co->valptr, oi->value); - else - eina_value_set(&oi->co->val, oi->value); - } - else - { - if (e_config->cfgdlg_auto_apply) - *(int*)oi->co->valptr = *(int*)oi->value; - else - eina_value_set(&oi->co->val, *(int*)oi->value); - } - - e_configure_option_changed(oi->co); -} - -static void -_opt_overlay_dismiss(void *d EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *sig EINA_UNUSED, const char *source EINA_UNUSED) -{ - evas_object_del(overlay); -} - -static void -_opt_overlay_create(void) -{ - Evas_Object *o; - - overlay = o = elm_layout_add(layout); - evas_object_event_callback_add(o, EVAS_CALLBACK_DEL, _opt_overlay_del, NULL); - elm_layout_theme_set(o, "conf2", "option", "overlay"); -} - -static void -_e_conf2_item_del_thumb(void *data, Evas_Object *obj EINA_UNUSED) -{ - E_Configure_Option_Info *oi = data; - - eina_stringshare_del(oi->value); - e_configure_option_info_free(oi); -} - -static Evas_Object * -_e_conf2_content_get_thumb(void *data, Evas_Object *obj, const char *part EINA_UNUSED) -{ - E_Configure_Option_Info *oi = data; - Evas_Object *o; - Evas *e; - E_Zone *zone; - - e = evas_object_evas_get(obj); - o = e_configure_option_info_thumb_get(oi, e); - if (o) return o; - - if (!oi->thumb_file) return NULL; - zone = e_util_zone_current_get(e_manager_current_get()); - /* viva la revolucion de livethumb!!! */ - o = e_widget_preview_add(e, 170, (170 * zone->h) / zone->w); - if (oi->thumb_key) - e_widget_preview_edje_set(o, oi->thumb_file, oi->thumb_key); - else - e_widget_preview_file_set(o, oi->thumb_file, oi->thumb_key); - -/* I guess elm_image sucks, this looks like shit :/ - o = elm_image_add(obj); - elm_image_file_set(o, oi->thumb_file, oi->thumb_key); - if (elm_image_animated_available_get(o)) - { - elm_image_animated_set(o, EINA_TRUE); - elm_image_animated_play_set(o, EINA_TRUE); - } - elm_image_aspect_fixed_set(o, EINA_TRUE); - elm_image_prescale_set(o, 300); -*/ - return o; -} - -static char * -_e_conf2_text_get_thumb(void *data, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) -{ - E_Configure_Option_Info *oi = data; - - return oi->name ? strdup(oi->name) : NULL; -} - -static void -_opt_overlay_entry_change(void *data, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - E_Configure_Option *co = data; - Eina_Stringshare *str; - - str = elm_entry_entry_get(obj); - if (str == *(Eina_Stringshare**)co->valptr) return; - if (e_config->cfgdlg_auto_apply) - eina_stringshare_replace(co->valptr, str); - else - eina_value_set(&co->val, str); - e_configure_option_changed(co); -} - -static void -_opt_overlay_radio_del(void *data, Evas *e EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - e_configure_option_info_free(data); -} - -static void -_opt_overlay_radio_change(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - E_Configure_Option_Info *oi = data; - - elm_object_part_text_set(overlay, "e.text.value", oi->name); - if (e_config->cfgdlg_auto_apply) - *(int*)oi->co->valptr = (long)(intptr_t)oi->value; - else - eina_value_set(&oi->co->val, (long)(intptr_t)oi->value); - - e_configure_option_changed(oi->co); -} - -static void -_opt_overlay_show(E_Configure_Option *co, Elm_Object_Item *it) -{ - Evas_Object *o, *sl; - Eina_Bool global = EINA_FALSE, show = EINA_TRUE; - Eina_List *l; - double d; - char buf[256]; - - if (!it) it = e_configure_option_data_get(co, "conf_item"); - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - EINA_SAFETY_ON_NULL_RETURN(co->info); - e_configure_registry_call(co->info, NULL, NULL); - if (it) elm_genlist_item_selected_set(it, EINA_FALSE); - break; - case E_CONFIGURE_OPTION_TYPE_ENUM: - if (!overlay) _opt_overlay_create(); - else show = EINA_FALSE; - o = overlay; - evas_object_data_set(overlay, "config_option", co); - elm_object_part_text_set(o, "e.text.label", co->desc); - l = e_configure_option_info_get(co); - if (l) - { - E_Configure_Option_Info *oi; - Evas_Object *bx, *g, *r; - - sl = elm_scroller_add(overlay); - EXPAND(sl); - FILL(sl); - elm_scroller_bounce_set(sl, 0, 0); - elm_scroller_policy_set(sl, ELM_SCROLLER_POLICY_AUTO, ELM_SCROLLER_POLICY_AUTO); - bx = elm_box_add(o); - EXPAND(bx); - FILL(bx); - elm_object_content_set(sl, bx); - elm_box_homogeneous_set(bx, 1); - g = elm_radio_add(overlay); - elm_object_focus_allow_set(list[0], EINA_FALSE); - elm_object_focus_allow_set(list[1], EINA_FALSE); - elm_object_focus_allow_set(entry, EINA_FALSE); - EINA_LIST_FREE(l, oi) - { - if (!oi->name) continue; //FIXME sep - r = elm_radio_add(overlay); - elm_object_style_set(r, "conf2"); - EXPAND(r); - FILL(r); - elm_radio_group_add(r, g); - elm_object_text_set(r, oi->name); - elm_radio_state_value_set(r, (long)(intptr_t)oi->value); - evas_object_event_callback_add(r, EVAS_CALLBACK_DEL, _opt_overlay_radio_del, oi); - evas_object_smart_callback_add(r, "changed", _opt_overlay_radio_change, oi); - if (oi->current) - { - elm_radio_value_set(g, (long)(intptr_t)oi->value); - elm_object_part_text_set(overlay, "e.text.value", oi->name); - } - evas_object_show(r); - elm_object_focus_set(r, EINA_TRUE); - elm_box_pack_end(bx, r); - } - evas_object_show(bx); - } - else - { - /* FIXME? */ - evas_object_del(overlay); - return; - } - elm_object_part_content_set(o, "e.swallow.content", sl); - evas_object_show(sl); - evas_object_show(o); - elm_object_part_content_set(layout, "e.swallow.overlay", o); - if (show) - elm_layout_signal_emit(layout, "e,action,overlay_show", "e"); - elm_object_disabled_set(list[0], EINA_TRUE); - elm_object_disabled_set(list[1], EINA_TRUE); - break; - case E_CONFIGURE_OPTION_TYPE_STR: - if (!overlay) _opt_overlay_create(); - else show = EINA_FALSE; - o = overlay; - evas_object_data_set(overlay, "config_option", co); - elm_object_part_text_set(o, "e.text.label", co->desc); - l = e_configure_option_info_get(co); - if (l) - { - E_Configure_Option_Info *oi; - Elm_Object_Item *iit; - - sl = elm_genlist_add(overlay); - elm_genlist_homogeneous_set(sl, EINA_TRUE); - elm_scroller_bounce_set(sl, 0, 0); - elm_scroller_policy_set(sl, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO); - EINA_LIST_FREE(l, oi) - { - if (!oi->name) continue; //FIXME sep - iit = elm_genlist_item_append(sl, itc_thumb, oi, NULL, 0, _opt_overlay_list_change, oi); - elm_genlist_item_selected_set(iit, oi->current); - if (oi->current) elm_genlist_item_show(iit, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE); - } - } - else - { - Eina_Stringshare **s; - - sl = elm_entry_add(overlay); - s = (Eina_Stringshare**)e_configure_option_value_get(co); - if (s) - { - elm_entry_entry_set(sl, *s); - elm_entry_select_all(sl); - } - elm_entry_single_line_set(sl, EINA_TRUE); - elm_entry_scrollable_set(sl, EINA_TRUE); - elm_entry_cursor_begin_set(sl); - evas_object_smart_callback_add(sl, "activated", _opt_overlay_entry_change, co); - edje_extern_object_min_size_set(sl, 170, 20); - elm_object_part_text_set(overlay, "e.text.value", NULL); - } - elm_object_part_content_set(o, "e.swallow.content", sl); - evas_object_show(sl); - elm_object_focus_allow_set(list[0], EINA_FALSE); - elm_object_focus_allow_set(list[1], EINA_FALSE); - elm_object_focus_allow_set(entry, EINA_FALSE); - elm_object_focus_set(sl, EINA_TRUE); - evas_object_show(o); - elm_object_part_content_set(layout, "e.swallow.overlay", o); - if (show) - elm_layout_signal_emit(layout, "e,action,overlay_show", "e"); - elm_object_disabled_set(list[0], EINA_TRUE); - elm_object_disabled_set(list[1], EINA_TRUE); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - sl = elm_object_item_part_content_get(it, "elm.swallow.icon"); - if (!overlay) _opt_overlay_create(); - else show = EINA_FALSE; - o = overlay; - evas_object_data_set(overlay, "config_option", co); - elm_layout_signal_emit(overlay, "e,state,bg_hide", "e"); - elm_object_part_text_set(o, "e.text.label", co->desc); - d = elm_slider_value_get(sl); - snprintf(buf, sizeof(buf), co->info, d); - elm_object_part_text_set(overlay, "e.text.value", buf); - sl = elm_slider_add(layout); - elm_slider_min_max_set(sl, co->minmax[0], co->minmax[1]); - /* raoulh! :) */ - elm_slider_value_set(sl, d); - elm_object_style_set(sl, "knob_volume_big"); - evas_object_smart_callback_add(sl, "changed", _opt_overlay_slider_change, co); - evas_object_show(sl); - elm_object_part_content_set(o, "e.swallow.content", sl); - evas_object_show(o); - elm_object_part_content_set(layout, "e.swallow.overlay", o); - if (show) - elm_layout_signal_emit(layout, "e,action,overlay_show", "e"); - elm_object_disabled_set(list[0], EINA_TRUE); - elm_object_disabled_set(list[1], EINA_TRUE); - break; - default: - if (overlay) evas_object_del(overlay); - global = EINA_TRUE; - } - _buttons_toggle(co, global); -} - -static void -_opt_sel(void *data, Evas_Object *obj EINA_UNUSED, void *event_info) -{ - _opt_overlay_show(data, event_info); -} - -static void -_e_conf2_slider_drag_start(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - overlay_locked = EINA_TRUE; - _opt_overlay_show(data, NULL); -} - -static void -_e_conf2_slider_drag_stop(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - evas_object_del(overlay); - overlay_locked = EINA_FALSE; -} - -static Evas_Object * -_e_conf2_content_get_opts_slider_helper(E_Configure_Option *co) -{ - Evas_Object *o; - - o = elm_slider_add(layout); - /* raoulh! :) */ - elm_object_style_set(o, "knob_volume"); - elm_slider_min_max_set(o, co->minmax[0], co->minmax[1]); - evas_object_smart_callback_add(o, "changed", _opt_overlay_slider_change, co); - evas_object_smart_callback_add(o, "slider,drag,start", _e_conf2_slider_drag_start, co); - evas_object_smart_callback_add(o, "slider,drag,stop", _e_conf2_slider_drag_stop, co); - return o; -} - -static Evas_Object * -_e_conf2_content_get_opts(void *data, Evas_Object *obj, const char *part EINA_UNUSED) -{ - E_Configure_Option *co = data; - Evas_Object *o = NULL; - const void *val; - //char buf[PATH_MAX]; - - if (!strcmp(part, "elm.swallow.icon")) - { - switch (co->type) - { - case E_CONFIGURE_OPTION_TYPE_BOOL: - o = elm_check_add(obj); - elm_object_style_set(o, "conf2"); - val = e_configure_option_value_get(co); - elm_check_state_set(o, *(Eina_Bool*)val); - evas_object_smart_callback_add(o, "changed", _e_conf2_opt_change_bool, co); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UCHAR: - o = _e_conf2_content_get_opts_slider_helper(co); - val = e_configure_option_value_get(co); - elm_slider_value_set(o, *(unsigned char*)val); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE: - o = _e_conf2_content_get_opts_slider_helper(co); - val = e_configure_option_value_get(co); - elm_slider_value_set(o, *(double*)val); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_INT: - o = _e_conf2_content_get_opts_slider_helper(co); - val = e_configure_option_value_get(co); - elm_slider_value_set(o, *(int*)val); - break; - case E_CONFIGURE_OPTION_TYPE_DOUBLE_UINT: - o = _e_conf2_content_get_opts_slider_helper(co); - val = e_configure_option_value_get(co); - elm_slider_value_set(o, *(unsigned int*)val); - break; - case E_CONFIGURE_OPTION_TYPE_CUSTOM: - case E_CONFIGURE_OPTION_TYPE_STR: - case E_CONFIGURE_OPTION_TYPE_ENUM: - case E_CONFIGURE_OPTION_TYPE_INT: - case E_CONFIGURE_OPTION_TYPE_UINT: - { - Eina_Stringshare *icon; - char buf[4096]; - - icon = e_configure_option_data_get(co, "icon"); - if (!icon) break; - if (eina_str_has_extension(icon, ".edj")) - o = e_util_icon_add(icon, evas_object_evas_get(obj)); - else - { - snprintf(buf, sizeof(buf), "e/icons/%s", icon); - - o = e_icon_add(evas_object_evas_get(obj)); - e_util_icon_theme_set(o, icon); - } - } - break; - } - } - else if (!strcmp(part, "elm.swallow.end")) - { - if (!co->changed) return NULL; - o = edje_object_add(evas_object_evas_get(obj)); - e_theme_edje_object_set(o, "base/theme/widgets", "e/widgets/ilist/toggle_end"); - } - return o; -} - -static void -_e_conf2_item_del_opts(void *data, Evas_Object *obj EINA_UNUSED) -{ - if (e_configure_option_tags_list()) //if this is false, e is shutting down and the next call will crash - e_configure_option_data_set(data, "conf_item", NULL); -} - -static char * -_e_conf2_text_get_tags(void *data, Evas_Object *obj EINA_UNUSED, const char *part) -{ - char *txt; - - if (strcmp(part, "elm.text")) return NULL; - txt = strdup(data); - txt[0] = toupper(txt[0]); - return txt; -} - -static Evas_Object * -_e_conf2_content_get_cats(void *data, Evas_Object *obj, const char *part) -{ - char buf[4096]; - Eina_Stringshare *icon; - Evas_Object *o; - - if (!strcmp(part, "elm.swallow.end")) return NULL; - icon = e_configure_option_category_icon_get(data); - if (!icon) return NULL; - if (eina_str_has_extension(icon, ".edj")) - o = e_util_icon_add(icon, evas_object_evas_get(obj)); - else - { - snprintf(buf, sizeof(buf), "e/icons/%s", icon); - - o = e_icon_add(evas_object_evas_get(obj)); - e_util_icon_theme_set(o, icon); - } - return o; -} - -static Evas_Object * -_e_conf2_content_get_tags(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, const char *part EINA_UNUSED) -{ - /* FIXME */ - return NULL; -} - -static void -_e_conf2_key(void *data EINA_UNUSED, Evas *e EINA_UNUSED, Evas_Object *obj, void *event_info EINA_UNUSED) -{ - if (overlay) evas_object_del(overlay); - else evas_object_del(obj); -} - -static Eina_Bool -_event_tag_del(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Tag_Del *ev EINA_UNUSED) -{ - /* not even gonna fuck with this */ - _reset_cb(NULL); - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_event_tag_add(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Tag_Add *ev) -{ - Eina_List *l; - Eina_Stringshare *tag; - - e_configure_option_ctx_match_tag_list(ctx_active); - if ((!ctx_active->match_tags) || (!eina_list_data_find(ctx_active->match_tags, ev->tag))) - return ECORE_CALLBACK_RENEW; - elm_genlist_clear(list[0]); - EINA_LIST_FOREACH(ctx_active->match_tags, l, tag) - elm_genlist_item_append(list[0], itc_tags, tag, NULL, 0, _tag_sel, tag); - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_event_cat_del(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Category_Add *ev) -{ - Elm_Object_Item *it; - Eina_Stringshare *cat; - - if (ctx_active->category == ev->category) - { - _reset_cb(NULL); - return ECORE_CALLBACK_RENEW; - } - if (ctx_active->tags || ctx_active->opts) return ECORE_CALLBACK_RENEW; //not showing categories at present - //new categories are added at end, so go backward - for (it = elm_genlist_last_item_get(list[0]); it; it = elm_genlist_item_prev_get(it)) - { - cat = elm_object_item_data_get(it); - if (cat != ev->category) continue; - elm_object_item_del(it); - break; - } - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_event_cat_add(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Category_Add *ev) -{ - if (ctx_active->category || ctx_active->tags || ctx_active->opts) return ECORE_CALLBACK_RENEW; //not showing categories at present - elm_genlist_item_append(list[0], itc_cats, ev->category, NULL, 0, _cat_sel, ev->category); - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_event_opt_del(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Del *ev) -{ - Elm_Object_Item *it; - Eina_List *l; - - if (!ctx_active->opts) return ECORE_CALLBACK_RENEW; - l = eina_list_data_find(ctx_active->opts, ev->co); - if (!l) return ECORE_CALLBACK_RENEW; - ctx_active->opts = eina_list_remove_list(ctx_active->opts, l); - - if (ctx_click && ctx_click->opts) - ctx_click->opts = eina_list_remove(ctx_click->opts, ev->co); - if (ctx_entry && ctx_entry->opts) - ctx_entry->opts = eina_list_remove(ctx_entry->opts, ev->co); - - for (it = elm_genlist_last_item_get(list[1]); it; it = elm_genlist_item_prev_get(it)) - { - if (ev->co != elm_object_item_data_get(it)) continue; - elm_object_item_del(it); - break; - } - - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_event_opt_add(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Add *ev) -{ - Eina_List *l; - Eina_Stringshare *tag; - - if (!ctx_active->opts) return ECORE_CALLBACK_RENEW; - /* FIXME: this will only add the item if we are NOT directly viewing a category */ - if (!ctx_active->tags) return ECORE_CALLBACK_RENEW; - EINA_LIST_FOREACH(ev->co->tags, l, tag) - if (eina_list_data_find(ctx_active->tags, tag)) - { - ctx_active->changed = EINA_TRUE; - break; - } - if (!ctx_active->changed) return ECORE_CALLBACK_RENEW; - e_configure_option_ctx_option_list(ctx_active); - _e_conf2_opts_list(ctx_active); - return ECORE_CALLBACK_RENEW; -} - -static Eina_Bool -_event_opt_changed(void *d EINA_UNUSED, int type EINA_UNUSED, E_Event_Configure_Option_Changed *ev) -{ - E_Configure_Option *co; - Elm_Object_Item *it; - - it = e_configure_option_data_get(ev->co, "conf_item"); - if (it) - elm_genlist_item_fields_update(it, "elm.swallow.end", ELM_GENLIST_ITEM_FIELD_CONTENT); - if (overlay) - { - co = evas_object_data_get(overlay, "config_option"); - if (ev->co != co) return ECORE_CALLBACK_RENEW; - _buttons_toggle(co, EINA_FALSE); - if (!co->changed) _opt_item_update(co); - return ECORE_CALLBACK_RENEW; - } - _buttons_toggle(NULL, EINA_TRUE); - if (buttons_visible) return ECORE_CALLBACK_RENEW; - _opt_item_update(ev->co); - return ECORE_CALLBACK_RENEW; -} - -static void -_theme_change(void *data EINA_UNUSED, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UNUSED) -{ - _reset_cb(NULL); - _entry_change_cb(NULL, entry, NULL); -} - -EINTERN void -e_conf2_show(E_Container *con EINA_UNUSED, const char *params) -{ - Evas_Object *box, *box2, *o, *win; - - if (list[0]) - { - elm_win_activate(elm_object_top_widget_get(list[0])); - return; - } - - win = elm_win_add(NULL, "conf2", ELM_WIN_DIALOG_BASIC); - elm_win_title_set(win, _("Control Panel")); - o = elm_bg_add(win); - elm_object_style_set(o, "conf2"); - EXPAND(o); - elm_win_resize_object_add(win, o); - evas_object_show(o); - if (!evas_object_key_grab(win, "Escape", 0, 0, 1)) ERR("Grabbing Escape failed"); - evas_object_event_callback_add(win, EVAS_CALLBACK_KEY_DOWN, _e_conf2_key, NULL); - /* FIXME this is insane */ - ecore_evas_name_class_set(ecore_evas_ecore_evas_get(evas_object_evas_get(win)), "conf2", "_configure"); - elm_win_autodel_set(win, EINA_TRUE); - evas_object_event_callback_add(win, EVAS_CALLBACK_DEL, _e_conf2_del, NULL); - box = elm_box_add(win); - EXPAND(box); - FILL(box); - elm_win_resize_object_add(win, box); - evas_object_show(box); - - box2 = elm_box_add(win); - elm_box_horizontal_set(box2, EINA_TRUE); - WEIGHT(box2, EVAS_HINT_EXPAND, 0); - ALIGN(box2, EVAS_HINT_FILL, 0); - elm_box_pack_end(box, box2); - evas_object_show(box2); - - back = o = elm_button_add(win); - elm_object_focus_allow_set(back, EINA_FALSE); - evas_object_smart_callback_add(o, "clicked", _back_cb, NULL); - //elm_object_text_set(o, _("Back")); - if (!_button_icon_set(o, "back")) - _button_icon_set(o, "go-previous"); - WEIGHT(o, 0, 0); - FILL(o); - elm_object_disabled_set(o, (params && params[0])); - elm_box_pack_end(box2, o); - evas_object_show(o); - - o = elm_label_add(win); - elm_object_style_set(o, "conf2"); - elm_object_text_set(o, _("Search: ")); - WEIGHT(o, 0, EVAS_HINT_EXPAND); - ALIGN(o, 0, EVAS_HINT_FILL); - elm_box_pack_end(box2, o); - evas_object_show(o); - - entry = o = elm_entry_add(win); - elm_entry_single_line_set(o, EINA_TRUE); - elm_entry_scrollable_set(o, EINA_TRUE); - elm_object_style_set(o, "conf2"); - if (params && params[0]) - { - elm_entry_entry_set(o, params); - _entry_change_cb(NULL, o, NULL); - } - else - reset_timer = ecore_timer_add(0.01, _reset_cb, NULL); - EXPAND(o); - FILL(o); - evas_object_smart_callback_add(o, "changed", _entry_change_cb, NULL); - evas_object_smart_callback_add(o, "activated", _entry_change_cb, NULL); - elm_box_pack_end(box2, o); - evas_object_show(o); - elm_object_focus_set(o, EINA_TRUE); - - o = layout = elm_layout_add(win); - EXPAND(o); - FILL(o); - elm_layout_freeze(o); - elm_layout_theme_set(o, "conf2", "tag", "list"); - evas_object_smart_callback_add(o, "theme,changed", _theme_change, NULL); - elm_layout_signal_callback_add(layout, "e,action,overlay_dismiss", "e", _opt_overlay_dismiss, NULL); - - o = list[0] = elm_genlist_add(win); - elm_genlist_homogeneous_set(o, EINA_TRUE); - elm_genlist_mode_set(o, ELM_LIST_COMPRESS); - EXPAND(o); - FILL(o); - - itc_cats = elm_genlist_item_class_new(); - itc_cats->item_style = "conf2_double_label"; - itc_cats->func.text_get = _e_conf2_text_get_tags; - itc_cats->func.content_get = _e_conf2_content_get_cats; - itc_cats->func.state_get = NULL; - itc_cats->func.del = NULL; - - itc_tags = elm_genlist_item_class_new(); - itc_tags->item_style = "conf2_tag"; - itc_tags->func.text_get = _e_conf2_text_get_tags; - itc_tags->func.content_get = _e_conf2_content_get_tags; - itc_tags->func.state_get = NULL; - itc_tags->func.del = NULL; - elm_object_part_content_set(layout, "e.swallow.tags", o); - evas_object_show(o); - - o = list[1] = elm_genlist_add(win); - evas_object_smart_callback_add(o, "realized", _e_conf2_opt_realize, NULL); - elm_genlist_homogeneous_set(o, EINA_TRUE); - EXPAND(o); - FILL(o); - itc_opts = elm_genlist_item_class_new(); - itc_opts->item_style = "conf2_double_label"; - itc_opts->func.text_get = _e_conf2_text_get_opts; - itc_opts->func.content_get = _e_conf2_content_get_opts; - itc_opts->func.state_get = NULL; - itc_opts->func.del = _e_conf2_item_del_opts; - elm_object_part_content_set(layout, "e.swallow.options", o); - evas_object_show(o); - - itc_thumb = elm_genlist_item_class_new(); - itc_thumb->item_style = "conf2_thumb"; - itc_thumb->func.text_get = _e_conf2_text_get_thumb; - itc_thumb->func.content_get = _e_conf2_content_get_thumb; - itc_thumb->func.state_get = NULL; - itc_thumb->func.del = _e_conf2_item_del_thumb; - - o = elm_button_add(win); - evas_object_smart_callback_add(o, "clicked", _discard_cb, NULL); - elm_object_text_set(o, _("Discard")); - if (!_button_icon_set(o, "dialog-cancel")) - _button_icon_set(o, "view-refresh"); - WEIGHT(o, 0, 0); - FILL(o); - elm_object_part_content_set(layout, "e.swallow.discard", o); - evas_object_show(o); - - o = elm_button_add(win); - evas_object_smart_callback_add(o, "clicked", _apply_cb, NULL); - elm_object_text_set(o, _("Apply")); - _button_icon_set(o, "dialog-ok-apply"); - WEIGHT(o, 0, 0); - FILL(o); - elm_object_part_content_set(layout, "e.swallow.apply", o); - evas_object_show(o); - - elm_layout_thaw(layout); - evas_object_show(layout); - elm_box_pack_end(box, layout); - - evas_object_show(win); - { - E_Border *bd; - - bd = evas_object_data_get(win, "E_Border"); - if (bd) - { - bd->client.icccm.min_w = 360; - bd->client.icccm.min_h = 360; - } - } - elm_win_size_base_set(win, 360, 360); - evas_object_resize(win, 480, 480); - - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_CHANGED, _event_opt_changed, NULL); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_ADD, _event_opt_add, NULL); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_DEL, _event_opt_del, NULL); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_CATEGORY_ADD, _event_cat_add, NULL); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_CATEGORY_DEL, _event_cat_del, NULL); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_TAG_ADD, _event_tag_add, NULL); - E_LIST_HANDLER_APPEND(handlers, E_EVENT_CONFIGURE_OPTION_TAG_DEL, _event_tag_del, NULL); - ctx_active = e_configure_option_ctx_new(); -} - -EINTERN void -e_conf2_hide(void) -{ - if (!back) return; - evas_object_del(elm_object_top_widget_get(back)); -} diff --git a/src/modules/conf2/e_mod_main.c b/src/modules/conf2/e_mod_main.c deleted file mode 100644 index fc85c42d8..000000000 --- a/src/modules/conf2/e_mod_main.c +++ /dev/null @@ -1,381 +0,0 @@ -#include "e.h" -#include "e_mod_main.h" - -typedef struct _Instance Instance; -struct _Instance -{ - E_Gadcon_Client *gcc; - Evas_Object *o_toggle; -}; - -/* actual module specifics */ - -//static void _e_mod_conf_cb(void *data, E_Menu *m, E_Menu_Item *mi); -//static void _e_mod_run_cb(void *data, E_Menu *m, E_Menu_Item *mi); -//static void _config_pre_activate_cb(void *data, E_Menu *m); - -/* gadcon requirements */ -static E_Gadcon_Client *_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style); -static void _gc_shutdown(E_Gadcon_Client *gcc); -static void _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient); -static const char *_gc_label(const E_Gadcon_Client_Class *client_class); -static Evas_Object *_gc_icon(const E_Gadcon_Client_Class *client_class, Evas *evas); -static const char *_gc_id_new(const E_Gadcon_Client_Class *client_class); -static void _cb_action_conf(void *data, Evas_Object *obj, const char *emission, const char *source); - -static E_Module *conf_module = NULL; -static E_Action *act = NULL; -static E_Int_Menu_Augmentation *maug = NULL; -static Eina_List *instances = NULL; - -EAPI E_Module_Api e_modapi = { E_MODULE_API_VERSION, "Conf2" }; - -/* and actually define the gadcon class that this module provides (just 1) */ -static const E_Gadcon_Client_Class _gadcon_class = -{ - GADCON_CLIENT_CLASS_VERSION, "configuration", - { - _gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon, _gc_id_new, NULL, - e_gadcon_site_is_not_toolbar - }, - E_GADCON_CLIENT_STYLE_PLAIN -}; - -static E_Gadcon_Client * -_gc_init(E_Gadcon *gc, const char *name, const char *id, const char *style) -{ - Instance *inst; - - inst = E_NEW(Instance, 1); - inst->o_toggle = edje_object_add(gc->evas); - e_theme_edje_object_set(inst->o_toggle, - "base/theme/modules/conf2", - "e/modules/conf2/main"); - - inst->gcc = e_gadcon_client_new(gc, name, id, style, inst->o_toggle); - inst->gcc->data = inst; - - edje_object_signal_callback_add(inst->o_toggle, "e,action,conf2", "", - _cb_action_conf, inst); - - instances = eina_list_append(instances, inst); - e_gadcon_client_util_menu_attach(inst->gcc); - - return inst->gcc; -} - -static void -_gc_shutdown(E_Gadcon_Client *gcc) -{ - Instance *inst; - - if (!(inst = gcc->data)) return; - instances = eina_list_remove(instances, inst); - if (inst->o_toggle) evas_object_del(inst->o_toggle); - E_FREE(inst); -} - -static void -_gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient orient EINA_UNUSED) -{ - Evas_Coord mw, mh; - - edje_object_size_min_get(gcc->o_base, &mw, &mh); - if ((mw < 1) || (mh < 1)) - edje_object_size_min_calc(gcc->o_base, &mw, &mh); - if (mw < 4) mw = 4; - if (mh < 4) mh = 4; - e_gadcon_client_aspect_set(gcc, mw, mh); - e_gadcon_client_min_size_set(gcc, mw, mh); -} - -static const char * -_gc_label(const E_Gadcon_Client_Class *client_class EINA_UNUSED) -{ - return _("Settings"); -} - -static Evas_Object * -_gc_icon(const E_Gadcon_Client_Class *client_class EINA_UNUSED, Evas *evas) -{ - Evas_Object *o; - char buf[PATH_MAX]; - - o = edje_object_add(evas); - snprintf(buf, sizeof(buf), "%s/e-module-conf.edj", - e_module_dir_get(conf_module)); - edje_object_file_set(o, buf, "icon"); - return o; -} - -static const char * -_gc_id_new(const E_Gadcon_Client_Class *client_class EINA_UNUSED) -{ - return _gadcon_class.name; -} - -/* - static void - _cb_button_click(void *data EINA_UNUSED, void *data2 EINA_UNUSED) - { - E_Action *a; - - a = e_action_find("configuration"); - if ((a) && (a->func.go)) a->func.go(NULL, NULL); - } - */ - -static void -_cb_action_conf(void *data, Evas_Object *obj EINA_UNUSED, const char *emission EINA_UNUSED, const char *source EINA_UNUSED) -{ - Instance *inst; - E_Action *a; - - if (!(inst = data)) return; - a = e_action_find("configuration"); - if ((a) && (a->func.go)) a->func.go(NULL, NULL); -} - -#if 0 -static void -_e_mod_run_cb(void *data, E_Menu *m, E_Menu_Item *mi EINA_UNUSED) -{ - Eina_List *l; - E_Configure_Cat *ecat; - - EINA_LIST_FOREACH(e_configure_registry, l, ecat) - { - if ((ecat->pri >= 0) && (ecat->items)) - { - E_Configure_It *eci; - Eina_List *ll; - - EINA_LIST_FOREACH(ecat->items, ll, eci) - { - char buf[1024]; - - if ((eci->pri >= 0) && (eci == data)) - { - snprintf(buf, sizeof(buf), "%s/%s", ecat->cat, eci->item); - e_configure_registry_call(buf, m->zone->container, NULL); - } - } - } - } -} - -static void -_config_pre_activate_cb(void *data, E_Menu *m) -{ - E_Configure_Cat *ecat = data; - E_Configure_It *eci; - Eina_List *l; - E_Menu_Item *mi; - - e_menu_pre_activate_callback_set(m, NULL, NULL); - - EINA_LIST_FOREACH(ecat->items, l, eci) - { - if (eci->pri >= 0) - { - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, eci->label); - if (eci->icon) - { - if (eci->icon_file) - e_menu_item_icon_edje_set(mi, eci->icon_file, eci->icon); - else - e_util_menu_item_theme_icon_set(mi, eci->icon); - } - e_menu_item_callback_set(mi, _e_mod_run_cb, eci); - } - } -} - -static void -_config_item_activate_cb(void *data, E_Menu *m, E_Menu_Item *mi EINA_UNUSED) -{ - E_Configure_Cat *ecat = data; - e_configure_show(m->zone->container, ecat->cat); -} - -static void -_config_all_pre_activate_cb(void *data EINA_UNUSED, E_Menu *m) -{ - const Eina_List *l; - E_Configure_Cat *ecat; - - e_menu_pre_activate_callback_set(m, NULL, NULL); - - EINA_LIST_FOREACH(e_configure_registry, l, ecat) - { - E_Menu_Item *mi; - E_Menu *sub; - - if ((ecat->pri < 0) || (!ecat->items)) continue; - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, ecat->label); - if (ecat->icon) - { - if (ecat->icon_file) - e_menu_item_icon_edje_set(mi, ecat->icon_file, ecat->icon); - else - e_util_menu_item_theme_icon_set(mi, ecat->icon); - } - e_menu_item_callback_set(mi, _config_item_activate_cb, ecat); - sub = e_menu_new(); - e_menu_item_submenu_set(mi, sub); - e_object_unref(E_OBJECT(sub)); - e_menu_pre_activate_callback_set(sub, _config_pre_activate_cb, ecat); - } -} - -/* menu item add hook */ -void -e_mod_config_menu_add(void *data EINA_UNUSED, E_Menu *m) -{ - E_Menu_Item *mi; - E_Menu *sub; - - e_menu_pre_activate_callback_set(m, NULL, NULL); - - sub = e_menu_new(); - e_menu_pre_activate_callback_set(sub, _config_all_pre_activate_cb, NULL); - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("All")); - e_menu_item_submenu_set(mi, sub); - e_object_unref(E_OBJECT(sub)); -} -#endif -static void -_e_mod_action_conf_cb(E_Object *obj, const char *params) -{ - E_Zone *zone = NULL; - - if (obj) - { - if (obj->type == E_MANAGER_TYPE) - zone = e_util_zone_current_get((E_Manager *)obj); - else if (obj->type == E_CONTAINER_TYPE) - zone = e_util_zone_current_get(((E_Container *)obj)->manager); - else if (obj->type == E_ZONE_TYPE) - zone = ((E_Zone *)obj); - else - zone = e_util_zone_current_get(e_manager_current_get()); - } - if (!zone) zone = e_util_zone_current_get(e_manager_current_get()); - if ((zone) && (params)) - e_configure_registry_call(params, zone->container, params); - else if (zone) - e_conf2_show(zone->container, params); -} - -static void -_e_mod_menu_cb(void *data EINA_UNUSED, E_Menu *m EINA_UNUSED, E_Menu_Item *mi EINA_UNUSED) -{ - e_conf2_show(NULL, NULL); -} - -static void -_e_mod_menu_add(void *data EINA_UNUSED, E_Menu *m) -{ - E_Menu_Item *mi; - - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, _("Configuration")); - e_util_menu_item_theme_icon_set(mi, "preferences-system"); - e_menu_item_callback_set(mi, _e_mod_menu_cb, NULL); -} - -EAPI void * -e_modapi_init(E_Module *m) -{ - char buf[PATH_MAX]; - - if (!e_win_elm_available()) return NULL; - if (e_action_find("configuration")) - { - e_util_dialog_show(_("Error"), _("conf2 module cannot be loaded when conf module is already loaded!")); - return NULL; - } - conf_module = m; - - /* add module supplied action */ - act = e_action_add("configuration"); - if (act) - { - act->func.go = _e_mod_action_conf_cb; - e_action_predef_name_set(N_("Launch"), N_("Control Panel"), - "configuration", NULL, NULL, 0); - } - maug = - e_int_menus_menu_augmentation_add_sorted("config/0", _("Configuration"), - _e_mod_menu_add, NULL, NULL, NULL); - e_module_delayed_set(m, 1); - - snprintf(buf, sizeof(buf), "%s/e-module-conf2.edj", e_module_dir_get(conf_module)); - elm_theme_extension_add(NULL, buf); - - //e_configure_registry_category_add("settings", 80, _("Settings"), - //NULL, "preferences-settings"); - //e_configure_registry_item_add("settings/conf2", 110, _("Control Panel"), - //NULL, buf, e_int_config_conf2); -/* - if (conf->menu_augmentation) - { - conf->aug = - e_int_menus_menu_augmentation_add - ("config/2", e_mod_config_menu_add, NULL, NULL, NULL); - } -*/ - e_gadcon_provider_register(&_gadcon_class); - return m; -} - -EAPI int -e_modapi_shutdown(E_Module *m EINA_UNUSED) -{ - char buf[PATH_MAX]; - - e_conf2_hide(); - - snprintf(buf, sizeof(buf), "%s/e-module-conf2.edj", e_module_dir_get(conf_module)); - elm_theme_extension_del(NULL, buf); - - e_configure_registry_item_del("advanced/conf2"); - e_configure_registry_category_del("advanced"); - - e_gadcon_provider_unregister(&_gadcon_class); - - /* remove module-supplied menu additions */ - if (maug) - { - e_int_menus_menu_augmentation_del("config/0", maug); - maug = NULL; - } -/* - if (conf->aug) - { - e_int_menus_menu_augmentation_del("config/2", conf->aug); - conf->aug = NULL; - } -*/ - /* remove module-supplied action */ - if (act) - { - e_action_predef_name_del("Launch", "Control Panel"); - e_action_del("configuration"); - act = NULL; - } - conf_module = NULL; - - return 1; -} - -EAPI int -e_modapi_save(E_Module *m EINA_UNUSED) -{ - return 1; -} diff --git a/src/modules/conf2/e_mod_main.h b/src/modules/conf2/e_mod_main.h deleted file mode 100644 index c76b8d88c..000000000 --- a/src/modules/conf2/e_mod_main.h +++ /dev/null @@ -1,28 +0,0 @@ -#ifndef E_MOD_MAIN_H -#define E_MOD_MAIN_H - -#define WEIGHT evas_object_size_hint_weight_set -#define ALIGN evas_object_size_hint_align_set -#define EXPAND(X) WEIGHT((X), EVAS_HINT_EXPAND, EVAS_HINT_EXPAND) -#define FILL(X) ALIGN((X), EVAS_HINT_FILL, EVAS_HINT_FILL) - -/** - * @addtogroup Optional_Conf - * @{ - * - * @defgroup Module_Conf2 Improved Configuration Dialog - * - * Show the main configuration dialog used to access other - * configuration. - * - * @} - */ - -typedef struct Config -{ -} Config; - -EINTERN void e_conf2_show(E_Container *con, const char *params); -EINTERN void e_conf2_hide(void); - -#endif diff --git a/src/modules/conf2/images/bevel_curved_horiz_out.png b/src/modules/conf2/images/bevel_curved_horiz_out.png deleted file mode 100644 index 75426a29d..000000000 Binary files a/src/modules/conf2/images/bevel_curved_horiz_out.png and /dev/null differ diff --git a/src/modules/conf2/images/bevel_horiz_out.png b/src/modules/conf2/images/bevel_horiz_out.png deleted file mode 100644 index 38784d769..000000000 Binary files a/src/modules/conf2/images/bevel_horiz_out.png and /dev/null differ diff --git a/src/modules/conf2/images/bevel_in.png b/src/modules/conf2/images/bevel_in.png deleted file mode 100644 index 152e5acd0..000000000 Binary files a/src/modules/conf2/images/bevel_in.png and /dev/null differ diff --git a/src/modules/conf2/images/button_clicked.png b/src/modules/conf2/images/button_clicked.png deleted file mode 100644 index fd76490bc..000000000 Binary files a/src/modules/conf2/images/button_clicked.png and /dev/null differ diff --git a/src/modules/conf2/images/button_normal.png b/src/modules/conf2/images/button_normal.png deleted file mode 100644 index a7feada45..000000000 Binary files a/src/modules/conf2/images/button_normal.png and /dev/null differ diff --git a/src/modules/conf2/images/inset_circle_tiny.png b/src/modules/conf2/images/inset_circle_tiny.png deleted file mode 100644 index 9ed6af9e3..000000000 Binary files a/src/modules/conf2/images/inset_circle_tiny.png and /dev/null differ diff --git a/src/modules/conf2/images/inset_shadow_circle_tiny.png b/src/modules/conf2/images/inset_shadow_circle_tiny.png deleted file mode 100644 index db416a960..000000000 Binary files a/src/modules/conf2/images/inset_shadow_circle_tiny.png and /dev/null differ diff --git a/src/modules/conf2/images/inset_shadow_tiny.png b/src/modules/conf2/images/inset_shadow_tiny.png deleted file mode 100644 index 773237cb8..000000000 Binary files a/src/modules/conf2/images/inset_shadow_tiny.png and /dev/null differ diff --git a/src/modules/conf2/images/shadow_rounded_horiz.png b/src/modules/conf2/images/shadow_rounded_horiz.png deleted file mode 100644 index 5030a0840..000000000 Binary files a/src/modules/conf2/images/shadow_rounded_horiz.png and /dev/null differ diff --git a/src/modules/conf2/images/shine.png b/src/modules/conf2/images/shine.png deleted file mode 100644 index e433c0236..000000000 Binary files a/src/modules/conf2/images/shine.png and /dev/null differ diff --git a/src/modules/conf2/images/sym_check_alum.png b/src/modules/conf2/images/sym_check_alum.png deleted file mode 100644 index fa9e2fc78..000000000 Binary files a/src/modules/conf2/images/sym_check_alum.png and /dev/null differ diff --git a/src/modules/conf2/images/sym_radio_alum.png b/src/modules/conf2/images/sym_radio_alum.png deleted file mode 100644 index 3f46d9399..000000000 Binary files a/src/modules/conf2/images/sym_radio_alum.png and /dev/null differ diff --git a/src/modules/conf2/images/vgrad_med_curved.png b/src/modules/conf2/images/vgrad_med_curved.png deleted file mode 100644 index 7ad247641..000000000 Binary files a/src/modules/conf2/images/vgrad_med_curved.png and /dev/null differ diff --git a/src/modules/conf2/images/vgrad_med_dark.png b/src/modules/conf2/images/vgrad_med_dark.png deleted file mode 100644 index 85430449e..000000000 Binary files a/src/modules/conf2/images/vgrad_med_dark.png and /dev/null differ diff --git a/src/modules/conf2/images/volume_knob.png b/src/modules/conf2/images/volume_knob.png deleted file mode 100644 index 4a2dc8d49..000000000 Binary files a/src/modules/conf2/images/volume_knob.png and /dev/null differ diff --git a/src/modules/conf2/images/volume_knob_ledsoff.png b/src/modules/conf2/images/volume_knob_ledsoff.png deleted file mode 100644 index a721abddf..000000000 Binary files a/src/modules/conf2/images/volume_knob_ledsoff.png and /dev/null differ diff --git a/src/modules/conf2/images/volume_knob_move.png b/src/modules/conf2/images/volume_knob_move.png deleted file mode 100644 index c13e93ef3..000000000 Binary files a/src/modules/conf2/images/volume_knob_move.png and /dev/null differ diff --git a/src/modules/conf2/images/volume_led_01.png b/src/modules/conf2/images/volume_led_01.png deleted file mode 100644 index d62ed27e1..000000000 Binary files a/src/modules/conf2/images/volume_led_01.png and /dev/null differ diff --git a/src/modules/conf2/images/white_bar_vert_glow.png b/src/modules/conf2/images/white_bar_vert_glow.png deleted file mode 100644 index 49c673550..000000000 Binary files a/src/modules/conf2/images/white_bar_vert_glow.png and /dev/null differ diff --git a/src/modules/conf2/module.desktop.in b/src/modules/conf2/module.desktop.in deleted file mode 100644 index e0352c325..000000000 --- a/src/modules/conf2/module.desktop.in +++ /dev/null @@ -1,17 +0,0 @@ -[Desktop Entry] -Encoding=UTF-8 -Type=Link -Name=Configuration -Name[ca]=Configuració -Name[eo]=Agordoj -Name[fr]=Configuration -Name[ru]=Настройки -Name[sr]=Подешавања -Comment=Improved Enlightenment configuration panel. -Comment[ca]=El nou panell de configuració millorat d'Enlightenment. -Comment[eo]=Plibonigata panelo de agordoj de Enlightenment -Comment[it]=Il nuovo pannello di configurazione potenziato di Enlightenment. -Comment[ru]=Улучшенная панель настройки Enlightenment. -Comment[sr]=Побошана плоча поставки Просвећења. -Icon=e-module-conf2 -X-Enlightenment-ModuleType=core diff --git a/src/modules/conf_applications/e_mod_main.c b/src/modules/conf_applications/e_mod_main.c index fe927fd61..b4376a352 100644 --- a/src/modules/conf_applications/e_mod_main.c +++ b/src/modules/conf_applications/e_mod_main.c @@ -63,40 +63,6 @@ e_modapi_init(E_Module *m) NULL, "preferences-system-windows", e_int_config_apps_ibar_other); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_applications"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "new app launcher", _("Create a new application launcher"), _("application"), _("exec")); - co->info = eina_stringshare_add("applications/new_application"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-add"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "apps", _("Application launchers"), _("application"), _("exec")); - co->info = eina_stringshare_add("applications/personal_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-personal"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "favorite apps", _("Favorite applications"), _("application"), _("exec")); - co->info = eina_stringshare_add("applications/favorite_applications"); - E_CONFIGURE_OPTION_ICON(co, "user-bookmarks"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "ibar apps", _("Ibar applications"), _("application"), _("exec")); - co->info = eina_stringshare_add("applications/ibar_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-ibar"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "desklock apps", _("Desk lock applications"), _("application"), _("exec"), _("desklock")); - co->info = eina_stringshare_add("applications/screen_lock_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-screen-lock"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "deskunlock apps", _("Desk unlock applications"), _("application"), _("exec"), _("desklock")); - co->info = eina_stringshare_add("applications/screen_unlock_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-screen-unlock"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "restart apps", _("Enlightenment restart applications"), _("application"), _("exec")); - co->info = eina_stringshare_add("applications/restart_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-restart"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "startup apps", _("Enlightenment start applications"), _("application"), _("exec"), _("startup")); - co->info = eina_stringshare_add("applications/startup_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-applications-startup"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "default apps", _("Enlightenment default applications"), _("application"), _("exec")); - co->info = eina_stringshare_add("applications/default_applications"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-default-applications"); - } - conf_module = m; e_module_delayed_set(m, 1); return m; @@ -121,7 +87,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("applications/desktop_environments"); e_configure_registry_category_del("applications"); - e_configure_option_domain_clear("conf_applications"); conf_module = NULL; return 1; } diff --git a/src/modules/conf_bindings/e_mod_main.c b/src/modules/conf_bindings/e_mod_main.c index cb397a74f..e370c36a8 100644 --- a/src/modules/conf_bindings/e_mod_main.c +++ b/src/modules/conf_bindings/e_mod_main.c @@ -42,30 +42,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_bindings"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "key bindings", _("Key binding settings"), _("input"), _("key"), _("binding")); - co->info = eina_stringshare_add("keyboard_and_mouse/key_bindings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-keyboard-shortcuts"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "mouse bindings", _("Mouse binding settings"), _("input"), _("mouse"), _("binding")); - co->info = eina_stringshare_add("keyboard_and_mouse/mouse_bindings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-mouse"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "ACPI bindings", _("ACPI binding settings"), _("input"), _("acpi"), _("binding")); - co->info = eina_stringshare_add("keyboard_and_mouse/acpi_bindings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-system-power-management"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "edge bindings", _("Screen edge binding settings"), _("input"), _("edge"), _("screen"), _("binding")); - co->info = eina_stringshare_add("keyboard_and_mouse/edge_bindings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-edge-bindings"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "signal bindings", _("Edje signal binding settings"), _("input"), _("edje"), _("mouse"), _("binding")); - co->info = eina_stringshare_add("advanced/signal_bindings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-signal-bindings"); - } - - return m; } @@ -93,8 +69,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_category_del("keyboard_and_mouse"); e_configure_registry_category_del("advanced"); - e_configure_option_domain_clear("conf_bindings"); - conf_module = NULL; return 1; } diff --git a/src/modules/conf_comp/e_mod_main.c b/src/modules/conf_comp/e_mod_main.c index 2044749fd..9a5630493 100644 --- a/src/modules/conf_comp/e_mod_main.c +++ b/src/modules/conf_comp/e_mod_main.c @@ -252,14 +252,6 @@ e_modapi_init(E_Module *m) mod->conf->first_draw_delay = 0.20; _comp_mod = mod; - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_comp"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "comp_settings", _("Advanced composite settings panel"), _("composite"), _("border")); - co->info = eina_stringshare_add("internal/comp_matches"); - E_CONFIGURE_OPTION_ICON(co, "preferences-composite"); - } e_module_delayed_set(m, 0); e_module_priority_set(m, -1000); @@ -285,7 +277,6 @@ e_modapi_shutdown(E_Module *m) } free(mod); - e_configure_option_domain_clear("conf_comp"); if (maug) { diff --git a/src/modules/conf_dialogs/e_mod_main.c b/src/modules/conf_dialogs/e_mod_main.c index 4acba4a99..dd02242bb 100644 --- a/src/modules/conf_dialogs/e_mod_main.c +++ b/src/modules/conf_dialogs/e_mod_main.c @@ -20,16 +20,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_dialogs"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "profiles", _("Enlightenment profile settings"), _("profile")); - co->info = eina_stringshare_add("settings/profiles"); - E_CONFIGURE_OPTION_ICON(co, "preferences-profiles"); - } - return m; } diff --git a/src/modules/conf_intl/e_mod_main.c b/src/modules/conf_intl/e_mod_main.c index 53dee5f92..517447db0 100644 --- a/src/modules/conf_intl/e_mod_main.c +++ b/src/modules/conf_intl/e_mod_main.c @@ -30,23 +30,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_intl"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "language", _("Language settings"), _("language")); - co->info = eina_stringshare_add("language/language_settings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-locale"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "desklock language", _("Desklock language settings"), _("desklock"), _("language")); - co->info = eina_stringshare_add("language/desklock_language_settings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desklock-locale"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "input method", _("Input method settings"), _("input"), _("language")); - co->info = eina_stringshare_add("language/input_method_settings"); - E_CONFIGURE_OPTION_ICON(co, "preferences-imc"); - } - return m; } @@ -66,7 +49,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("language/language_settings"); e_configure_registry_category_del("language"); - e_configure_option_domain_clear("conf_intl"); conf_module = NULL; return 1; } diff --git a/src/modules/conf_paths/e_mod_main.c b/src/modules/conf_paths/e_mod_main.c index aa4b8a1f5..395f00afc 100644 --- a/src/modules/conf_paths/e_mod_main.c +++ b/src/modules/conf_paths/e_mod_main.c @@ -27,19 +27,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_paths"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "search directories", _("Search directory settings"), _("environment")); - co->info = eina_stringshare_add("advanced/search_directories"); - E_CONFIGURE_OPTION_ICON(co, "preferences-directories"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "environment variables", _("Environment variable settings"), _("environment")); - co->info = eina_stringshare_add("advanced/environment_variables"); - E_CONFIGURE_OPTION_ICON(co, "preferences-variables"); - } - return m; } @@ -56,7 +43,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("advanced/search_directories"); e_configure_registry_category_del("advanced"); - e_configure_option_domain_clear("conf_paths"); conf_module = NULL; return 1; } diff --git a/src/modules/conf_randr/e_mod_main.c b/src/modules/conf_randr/e_mod_main.c index 23eee6f51..9f0c32c09 100644 --- a/src/modules/conf_randr/e_mod_main.c +++ b/src/modules/conf_randr/e_mod_main.c @@ -23,16 +23,6 @@ e_modapi_init(E_Module *m) "preferences-system-screen-resolution", e_int_config_randr); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_randr"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "randr", _("Screen resolution and orientation settings"), _("screen"), _("size")); - co->info = eina_stringshare_add("screen/screen_setup"); - E_CONFIGURE_OPTION_ICON(co, "preferences-system-screen-resolution"); - } - /* return the module */ return m; @@ -55,8 +45,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) * NB: If there are other items in 'screen' then this function is a no-op */ e_configure_registry_category_del("screen"); - e_configure_option_domain_clear("conf_randr"); - /* return 1 for shutdown success */ return 1; } diff --git a/src/modules/conf_shelves/e_mod_main.c b/src/modules/conf_shelves/e_mod_main.c index 50f5ed545..ee87f0a3f 100644 --- a/src/modules/conf_shelves/e_mod_main.c +++ b/src/modules/conf_shelves/e_mod_main.c @@ -30,16 +30,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_shelves"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "shelves", _("Shelf settings"), _("shelf"), _("desktop")); - co->info = eina_stringshare_add("extensions/shelves"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-shelf"); - } - return m; } @@ -59,8 +49,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("extensions/shelves"); e_configure_registry_category_del("extensions"); - e_configure_option_domain_clear("conf_shelves"); - conf_module = NULL; return 1; } diff --git a/src/modules/conf_theme/e_int_config_theme.c b/src/modules/conf_theme/e_int_config_theme.c index 0be76e4ba..fa95b7fdc 100644 --- a/src/modules/conf_theme/e_int_config_theme.c +++ b/src/modules/conf_theme/e_int_config_theme.c @@ -608,19 +608,16 @@ static void * _create_data(E_Config_Dialog *cfd) { E_Config_Dialog_Data *cfdata; - char theme_dir[PATH_MAX]; cfdata = E_NEW(E_Config_Dialog_Data, 1); cfd->cfdata = cfdata; cfdata->cfd = cfd; _fill_data(cfdata); /* Grab the "Personal" themes. */ - snprintf(theme_dir, sizeof(theme_dir), "%s", elm_theme_user_dir_get()); - cfdata->init[0] = eio_file_ls(theme_dir, _eio_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, cfdata); + cfdata->init[0] = eio_file_ls(elm_theme_user_dir_get(), _eio_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, cfdata); /* Grab the "System" themes. */ - snprintf(theme_dir, sizeof(theme_dir), "%s", elm_theme_system_dir_get()); - cfdata->init[1] = eio_file_ls(theme_dir, _eio_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, cfdata); + cfdata->init[1] = eio_file_ls(elm_theme_system_dir_get(), _eio_filter_cb, _init_main_cb, _init_done_cb, _init_error_cb, cfdata); return cfdata; } diff --git a/src/modules/conf_theme/e_int_config_xsettings.c b/src/modules/conf_theme/e_int_config_xsettings.c index dc549fd50..291f7cee5 100644 --- a/src/modules/conf_theme/e_int_config_xsettings.c +++ b/src/modules/conf_theme/e_int_config_xsettings.c @@ -5,11 +5,13 @@ static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdat static int _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static int _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); static Evas_Object *_basic_create(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); +//static int _sort_widget_themes(const void *data1, const void *data2); //static Evas_Object *_icon_new(Evas *evas, const char *theme, const char *icon, unsigned int size); struct _E_Config_Dialog_Data { E_Config_Dialog *cfd; + Eina_List *widget_themes; const char *widget_theme; int enable_xsettings; int match_e17_theme; @@ -171,6 +173,19 @@ _basic_apply(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) return 1; } +static int +_sort_widget_themes(const void *data1, const void *data2) +{ + const char *d1, *d2; + + d1 = data1; + d2 = data2; + if (!d1) return 1; + if (!d2) return -1; + + return strcmp(d1, d2); +} + static int _sort_icon_themes(const void *data1, const void *data2) { @@ -187,65 +202,111 @@ _sort_icon_themes(const void *data1, const void *data2) return strcmp(m1->name.name, m2->name.name); } +static void +_ilist_files_add(E_Config_Dialog_Data *cfdata, const char *dir) +{ + Eina_Iterator *it; + const char *file; + + it = eina_file_ls(dir); + if (!it) return; + + EINA_ITERATOR_FOREACH(it, file) + { + if ((ecore_file_is_dir(file)) && + (!eina_list_data_find(cfdata->widget_themes, file))) + { + cfdata->widget_themes = eina_list_append(cfdata->widget_themes, file); + } + else + eina_stringshare_del(file); + } + + eina_iterator_free(it); +} + static Eina_Bool _fill_files_ilist(void *data) { Evas *evas; Evas_Object *o; + char theme_dir[4096]; E_Config_Dialog_Data *cfdata = data; - const Eina_List *l; - Eina_Stringshare *dir; - int cnt = 0; + Eina_List *xdg_dirs, *l; + const char *dir; if (!(o = cfdata->gui.widget_list)) return ECORE_CALLBACK_CANCEL; + e_user_homedir_concat_static(theme_dir, ".themes"); + _ilist_files_add(cfdata, theme_dir); + + xdg_dirs = efreet_data_dirs_get(); + EINA_LIST_FOREACH(xdg_dirs, l, dir) + { + snprintf(theme_dir, sizeof(theme_dir), "%s/themes", dir); + _ilist_files_add(cfdata, theme_dir); + } + evas = evas_object_evas_get(o); evas_event_freeze(evas); edje_freeze(); e_widget_ilist_freeze(o); e_widget_ilist_clear(o); - EINA_LIST_FOREACH(e_configure_option_util_themes_gtk_get(), l, dir) + if (cfdata->widget_themes) { - const char *tmp; - char buf[PATH_MAX]; - Eina_Bool gtk2 = EINA_FALSE; - Eina_Bool gtk3 = EINA_FALSE; - char label[256]; - const char *value; - ssize_t len = sizeof(label); + const char *theme; + int cnt = 0; - snprintf(buf, sizeof(buf), "%s/gtk-2.0", dir); - gtk2 = ecore_file_is_dir(buf); - snprintf(buf, sizeof(buf), "%s/gtk-3.0", dir); - gtk3 = ecore_file_is_dir(buf); - if ((!gtk2) && (!gtk3)) continue; + cfdata->widget_themes = eina_list_sort(cfdata->widget_themes, -1, _sort_widget_themes); - tmp = ecore_file_file_get(dir); - if (!tmp) continue; - value = eina_stringshare_add(tmp); - label[0] = 0; - strncpy(label, value, len); - len -= strlen(label); - if (gtk2 && (len > 5)) + EINA_LIST_FREE(cfdata->widget_themes, theme) { - strcat(label, " (v2)"); - len -= 5; + const char *tmp; + char buf[PATH_MAX]; + Eina_Bool gtk2 = EINA_FALSE; + Eina_Bool gtk3 = EINA_FALSE; + snprintf(buf, sizeof(buf), "%s/gtk-2.0", theme); + gtk2 = ecore_file_is_dir(buf); + snprintf(buf, sizeof(buf), "%s/gtk-3.0", theme); + gtk3 = ecore_file_is_dir(buf); + if ((!gtk2) && (!gtk3)) continue; + + tmp = strrchr(theme, '/'); + if (tmp) + { + char label[256]; + const char *value; + ssize_t len = sizeof(label); + + tmp += 1; + value = eina_stringshare_add(tmp); + label[0] = 0; + strncpy(label, value, len); + len -= strlen(label); + if (gtk2 && (len > 5)) + { + strcat(label, " (v2)"); + len -= 5; + } + if (gtk3 && (len > 5)) + { + strcat(label, " (v3)"); + len -= 5; + } + + /* value pointer will exist as long as ilist item + so val remains valid */ + e_widget_ilist_append(o, NULL, label, NULL, NULL, value); + if ((e_config->xsettings.net_theme_name_detected == value) || (cfdata->widget_theme == value)) + e_widget_ilist_selected_set(cfdata->gui.widget_list, cnt); + eina_stringshare_del(value); + cnt++; + } + + eina_stringshare_del(theme); } - if (gtk3 && (len > 5)) - { - strcat(label, " (v3)"); - len -= 5; - } - - /* value pointer will exist as long as ilist item - so val remains valid */ - e_widget_ilist_append(o, NULL, label, NULL, NULL, value); - if ((e_config->xsettings.net_theme_name_detected == value) || (cfdata->widget_theme == value)) - e_widget_ilist_selected_set(cfdata->gui.widget_list, cnt); - eina_stringshare_del(value); - cnt++; } e_widget_ilist_go(o); diff --git a/src/modules/conf_theme/e_mod_main.c b/src/modules/conf_theme/e_mod_main.c index 168dc4c8f..d8083c879 100644 --- a/src/modules/conf_theme/e_mod_main.c +++ b/src/modules/conf_theme/e_mod_main.c @@ -1,7 +1,6 @@ #include "e.h" #include "e_mod_main.h" -static const char *cur_theme = NULL; static E_Module *conf_module = NULL; static E_Int_Menu_Augmentation *maug[8] = {0}; @@ -37,87 +36,15 @@ _e_mod_run_theme_cb(void *data __UNUSED__, E_Menu *m, E_Menu_Item *mi __UNUSED__ e_configure_registry_call("appearance/theme", m->zone->container, NULL); } -static void -_theme_set(void *data, E_Menu *m __UNUSED__, E_Menu_Item *mi __UNUSED__) -{ - E_Action *a; - const char *file; - char *name; - - file = ecore_file_file_get(data); - name = ecore_file_strip_ext(file); - if (name) - { - elm_theme_set(NULL, name); - elm_config_all_flush(); - elm_config_save(); - free(name); - a = e_action_find("restart"); - if ((a) && (a->func.go)) a->func.go(NULL, NULL); - } -} - -static void -_item_new(Eina_Stringshare *file, E_Menu *m) -{ - E_Menu_Item *mi; - char *name, *sfx; - Eina_Bool used; - - name = (char*)ecore_file_file_get(file); - if (!name) return; - used = (!e_util_strcmp(name, cur_theme)); - sfx = strrchr(name, '.'); - name = strndupa(name, sfx - name); - mi = e_menu_item_new(m); - e_menu_item_label_set(mi, name); - if (used) - e_menu_item_disabled_set(mi, 1); - else - e_menu_item_callback_set(mi, _theme_set, file); - e_menu_item_radio_group_set(mi, 1); - e_menu_item_radio_set(mi, 1); - e_menu_item_toggle_set(mi, used); -} - -static void -_e_mod_menu_theme_del(void *d __UNUSED__) -{ - cur_theme = NULL; -} - static void _e_mod_menu_theme_add(void *data __UNUSED__, E_Menu *m) { E_Menu_Item *mi; - Eina_Stringshare *file; - const Eina_List *themes, *sthemes, *l; - const char *theme; - static char buf[PATH_MAX]; mi = e_menu_item_new(m); e_menu_item_label_set(mi, _("Theme")); e_util_menu_item_theme_icon_set(mi, "preferences-desktop-theme"); e_menu_item_callback_set(mi, _e_mod_run_theme_cb, NULL); - theme = elm_theme_get(NULL); - if (!theme) return; - - snprintf(buf, sizeof(buf), "%s.edj", theme); - cur_theme = buf; - m = e_menu_new(); - e_object_del_attach_func_set(E_OBJECT(m), _e_mod_menu_theme_del); - e_menu_title_set(m, _("Themes")); - e_menu_item_submenu_set(mi, m); - e_object_unref(E_OBJECT(m)); - - themes = e_configure_option_util_themes_get(); - sthemes = e_configure_option_util_themes_system_get(); - EINA_LIST_FOREACH(themes, l, file) - _item_new(file, m); - if (themes && sthemes) - e_menu_item_separator_set(e_menu_item_new(m), 1); - EINA_LIST_FOREACH(sthemes, l, file) - _item_new(file, m); } EAPI void * @@ -167,28 +94,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_theme"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "themes", _("Enlightenment theme settings"), _("theme")); - co->info = eina_stringshare_add("appearance/theme"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-theme"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "wallpaper", _("Desktop wallpaper settings"), _("wallpaper")); - co->info = eina_stringshare_add("appearance/wallpaper"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-wallpaper"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "colors", _("Enlightenment color settings"), _("theme"), _("color")); - co->info = eina_stringshare_add("appearance/colors"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-color"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "fonts", _("Enlightenment font settings"), _("font")); - co->info = eina_stringshare_add("appearance/fonts"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-font"); - } - return m; } @@ -209,8 +114,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) maug[1] = NULL; } - cur_theme = NULL; - while ((cfd = e_config_dialog_get("E", "appearance/scale"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "appearance/transitions"))) @@ -246,8 +149,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("internal/wallpaper_desk"); e_configure_registry_category_del("internal"); - e_configure_option_domain_clear("conf_theme"); - conf_module = NULL; return 1; } diff --git a/src/modules/conf_window_remembers/e_mod_main.c b/src/modules/conf_window_remembers/e_mod_main.c index 43fc479d9..c8377cd37 100644 --- a/src/modules/conf_window_remembers/e_mod_main.c +++ b/src/modules/conf_window_remembers/e_mod_main.c @@ -20,16 +20,6 @@ e_modapi_init(E_Module *m) conf_module = m; e_module_delayed_set(m, 1); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("conf_window_remembers"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "window remembers", _("Window remember settings"), _("border"), _("remember")); - co->info = eina_stringshare_add("windows/window_remembers"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-window-remember"); - } - return m; } @@ -43,7 +33,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("windows/window_remembers"); e_configure_registry_category_del("windows"); - e_configure_option_domain_clear("conf_window_remembers"); conf_module = NULL; return 1; } diff --git a/src/modules/everything/e_mod_main.c b/src/modules/everything/e_mod_main.c index 6f3a7b0ed..b41f5e551 100644 --- a/src/modules/everything/e_mod_main.c +++ b/src/modules/everything/e_mod_main.c @@ -63,16 +63,6 @@ e_modapi_init(E_Module *m) e_configure_registry_item_add ("launcher/run_everything", 40, _("Everything Configuration"), NULL, module_icon, evry_config_dialog); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("everything"); - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "settings", _("Everything launcher settings"), _("exec"), _("everything")); - E_CONFIGURE_OPTION_ICON(co, module_icon); - co->info = eina_stringshare_add("launcher/run_everything"); - e_configure_option_category_tag_add(_("everything"), _("everything")); - e_configure_option_category_icon_set(_("everything"), module_icon);; - } evry_init(); _evry_type_init("NONE"); @@ -172,8 +162,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) em->active = EINA_FALSE; } - e_configure_option_category_tag_del(_("everything"), _("everything")); - e_configure_option_domain_clear("everything"); evry_plug_apps_shutdown(); evry_plug_files_shutdown(); diff --git a/src/modules/fileman/e_mod_main.c b/src/modules/fileman/e_mod_main.c index ae963031a..296678c1f 100644 --- a/src/modules/fileman/e_mod_main.c +++ b/src/modules/fileman/e_mod_main.c @@ -48,8 +48,6 @@ e_modapi_init(E_Module *m) e_int_config_mime); /* Setup Config edd */ _e_mod_fileman_config_load(); - e_configure_option_category_tag_add(_("files"), _("files")); - e_configure_option_category_icon_set(_("files"), "system-file-manager"); /* add module supplied action */ act = e_action_add("fileman"); @@ -158,11 +156,7 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_category_del("fileman"); e_config_domain_save("module.fileman", conf_edd, fileman_config); - e_configure_option_category_tag_del(_("files"), _("files")); - e_configure_option_tag_alias_del(_("files"), _("filemanager")); - e_configure_option_tag_alias_del(_("files"), _("file manager")); - - e_configure_option_domain_clear("fileman"); + _e_mod_fileman_config_free(); E_CONFIG_DD_FREE(conf_edd); E_CONFIG_DD_FREE(paths_edd); @@ -232,52 +226,6 @@ _e_mod_menu_add(void *data __UNUSED__, E_Menu *m) e_mod_menu_add(m, NULL); } -static Eina_List * -_cfg_view_mode_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Grid-placed icons", //1 - "Custom-placed icons", //2 - NULL, //3 - NULL, //4 - "List icons"//5 - }; - - for (x = E_FM2_VIEW_MODE_GRID_ICONS; x <= E_FM2_VIEW_MODE_LIST; x++) - { - if (!name[x - 1]) continue; - oi = e_configure_option_info_new(co, _(name[x - 1]), (intptr_t*)(long)x); - oi->current = (*(int*)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_cfg_toolbar_orient_cb_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Top", - "Bottom" - }; - - for (x = E_GADCON_ORIENT_TOP; x <= E_GADCON_ORIENT_BOTTOM; x++) - { - oi = e_configure_option_info_new(co, _(name[x - E_GADCON_ORIENT_TOP]), (intptr_t*)(long)x); - oi->current = (*(int*)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - /* Abstract fileman config load/create to one function for maintainability */ static void _e_mod_fileman_config_load(void) @@ -381,78 +329,6 @@ _e_mod_fileman_config_load(void) fileman_config->view.menu_shows_files = 0; - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("fileman"); - - E_CONFIGURE_OPTION_ADD(co, ENUM, view.mode, fileman_config, _("Default view mode"), _("files")); - co->info_cb = _cfg_view_mode_info_cb; - E_CONFIGURE_OPTION_ICON(co, "system-file-manager"); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, DOUBLE_INT, icon.icon.w, fileman_config, _("Icon size"), _("files"), _("image")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 16, 256, 1, _("%1.0f pixels")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - E_CONFIGURE_OPTION_ADD(co, BOOL, icon.extension.show, fileman_config, _("Show file extensions"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, view.show_full_path, fileman_config, _("Show full path in filemanager window titles"), _("files"), _("border")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, view.show_toolbar, fileman_config, _("Show path toolbar in filemanager windows"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, ENUM, view.toolbar_orient, fileman_config, _("Filemanager path toolbar position"), _("files")); - co->info_cb = _cfg_toolbar_orient_cb_info_cb; - E_CONFIGURE_OPTION_ICON(co, "system-file-manager"); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, view.show_sidebar, fileman_config, _("Show favorites sidebar in filemanager windows"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - E_CONFIGURE_OPTION_ADD(co, BOOL, list.sort.no_case, fileman_config, _("Ignore letter case when sorting files"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, list.sort.extension, fileman_config, _("Group files by extension"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, list.sort.mtime, fileman_config, _("Sort files by modification time"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, list.sort.size, fileman_config, _("Sort files by size"), _("files"), _("size")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - /* FIXME: exclusive */ - E_CONFIGURE_OPTION_ADD(co, BOOL, list.sort.dirs.first, fileman_config, _("Sort directories first"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, list.sort.dirs.last, fileman_config, _("Sort directories last"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - - E_CONFIGURE_OPTION_ADD(co, BOOL, view.open_dirs_in_place, fileman_config, _("Open directories in place"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, view.single_click, fileman_config, _("Use single click to open files"), _("files")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, selection.windows_modifiers, fileman_config, _("Use alternate (Mac-style) selection modifiers"), _("files"), _("key")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - E_CONFIGURE_OPTION_ADD(co, BOOL, view.desktop_navigation, fileman_config, _("Allow navigation on desktop"), _("files")); - E_CONFIGURE_OPTION_HELP(co, _("Normally, icons on the desktop come from $XDG_HOME_DIR/Desktop[-$SCREEN]. " - "With this option enabled, the desktop can freely change directories using the Navigate " - "menu or type buffer.")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - E_CONFIGURE_OPTION_ADD(co, DOUBLE_UINT, icon.max_thumb_size, fileman_config, _("Maximum file size for which thumbnails should be generated"), _("files"), _("size"), _("image")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 0, 512, 1, _("%1.0f MiB")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - E_CONFIGURE_OPTION_ADD(co, DOUBLE, view.spring_delay, fileman_config, _("Spring folder delay"), _("files"), _("delay")); - E_CONFIGURE_OPTION_HELP(co, _("A \"spring folder\" is the action that occurs when dragging a file onto a folder: " - "the folder will \"spring\" open and create a new window to continue the drag operation in.")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 1, 10, 1, _("%1.0f seconds")); - co->funcs[1].none = co->funcs[0].none = e_fwin_reload_all; - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "settings", _("File icons"), _("files"), _("image")); - co->info = eina_stringshare_add("fileman/file_icons"); - E_CONFIGURE_OPTION_ICON(co, "preferences-file-icons"); - - e_configure_option_tag_alias_add(_("files"), _("filemanager")); - e_configure_option_tag_alias_add(_("files"), _("file manager")); - } - e_config_save_queue(); } diff --git a/src/modules/notification/e_mod_main.c b/src/modules/notification/e_mod_main.c index 1ba09fcf8..bdea94910 100644 --- a/src/modules/notification/e_mod_main.c +++ b/src/modules/notification/e_mod_main.c @@ -117,52 +117,6 @@ _notification_cb_initial_mode_timer(Config *m_cfg) return EINA_FALSE; } -static Eina_List * -_notification_corner_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Top left corner", - "Top right corner", - "Bottom left corner", - "Bottom right corner", - }; - - for (x = 0; x <= CORNER_BR; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t*)(long)x); - oi->current = (*(int*)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - -static Eina_List * -_notification_screen_info_cb(E_Configure_Option *co) -{ - Eina_List *ret = NULL; - E_Configure_Option_Info *oi; - int x; - const char *name[] = - { - "Primary screen", - "Current screen", - "All screens", - "Xinerama", - }; - - for (x = 0; x <= POPUP_DISPLAY_POLICY_MULTI; x++) - { - oi = e_configure_option_info_new(co, _(name[x]), (intptr_t*)(long)x); - oi->current = (*(int*)co->valptr == x); - ret = eina_list_append(ret, oi); - } - return ret; -} - /* Module Api Functions */ EAPI E_Module_Api e_modapi = {E_MODULE_API_VERSION, "Notification"}; @@ -191,7 +145,6 @@ EAPI void * e_modapi_init(E_Module *m) { char buf[PATH_MAX]; - E_Configure_Option *co; snprintf(buf, sizeof(buf), "%s/e-module-notification.edj", m->dir); /* register config panel entry */ @@ -257,24 +210,6 @@ e_modapi_init(E_Module *m) notification_mod = m; - e_configure_option_domain_current_set("notification"); - E_CONFIGURE_OPTION_ADD(co, BOOL, show_low, notification_cfg, _("Display low urgency notifications"), _("notification")); - E_CONFIGURE_OPTION_ADD(co, BOOL, show_normal, notification_cfg, _("Display normal urgency notifications"), _("notification")); - E_CONFIGURE_OPTION_ADD(co, BOOL, show_critical, notification_cfg, _("Display high urgency notifications"), _("notification")); - E_CONFIGURE_OPTION_ADD(co, BOOL, force_timeout, notification_cfg, _("Force a specified timeout on all notifications"), _("notification"), _("delay")); - E_CONFIGURE_OPTION_ADD(co, DOUBLE, timeout, notification_cfg, _("Timeout to force on notifications"), _("notification"), _("delay")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 0.0, 15.0, 0.1, _("%.1f seconds")); - E_CONFIGURE_OPTION_ADD(co, ENUM, dual_screen, notification_cfg, _("Screen(s) on which to display notifications"), _("notification"), _("screen")); - co->info_cb = _notification_screen_info_cb; - E_CONFIGURE_OPTION_ICON(co, buf); - E_CONFIGURE_OPTION_ADD(co, ENUM, corner, notification_cfg, _("Corner in which to display notifications"), _("notification"), _("screen")); - co->info_cb = _notification_corner_info_cb; - E_CONFIGURE_OPTION_ICON(co, buf); - - e_configure_option_category_tag_add(_("screen"), _("notification")); - e_configure_option_category_tag_add(_("notification"), _("notification")); - e_configure_option_category_icon_set(_("notification"), buf); - return m; } @@ -295,9 +230,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_notification_server_unregister(); - e_configure_option_domain_clear("notification"); - e_configure_option_category_tag_del(_("screen"), _("notification")); - e_configure_option_category_tag_del(_("notification"), _("notification")); _notification_cfg_free(notification_cfg); E_CONFIG_DD_FREE(conf_edd); notification_mod = NULL; diff --git a/src/modules/quickaccess/e_mod_main.c b/src/modules/quickaccess/e_mod_main.c index a08cf5ec7..105495ebc 100644 --- a/src/modules/quickaccess/e_mod_main.c +++ b/src/modules/quickaccess/e_mod_main.c @@ -29,7 +29,6 @@ EAPI void * e_modapi_init(E_Module *m) { char buf[PATH_MAX]; - E_Configure_Option *co; snprintf(buf, sizeof(buf), "%s/e-module-quickaccess.edj", e_module_dir_get(m)); e_configure_registry_category_add("launcher", 80, _("Launcher"), NULL, @@ -64,25 +63,6 @@ e_modapi_init(E_Module *m) return NULL; } - e_configure_option_domain_current_set("quickaccess"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "settings", _("Quickaccess settings panel"), _("quickaccess"), _("border")); - co->info = eina_stringshare_add("launcher/quickaccess"); - E_CONFIGURE_OPTION_ICON(co, buf); - E_CONFIGURE_OPTION_ADD(co, BOOL, hide_when_behind, qa_config, _("Hide windows on activate instead of raising"), _("quickaccess"), _("border")); - E_CONFIGURE_OPTION_HELP(co, _("By default, activating a Quickaccess binding when the window is behind other windows will raise the window. " - "This option changes that behavior to hide the window instead.")); - E_CONFIGURE_OPTION_ADD(co, BOOL, autohide, qa_config, _("Hide windows when focus is lost"), _("quickaccess"), _("border"), _("focus")); - E_CONFIGURE_OPTION_HELP(co, _("This option causes Quickaccess windows to automatically hide when they lose focus")); - E_CONFIGURE_OPTION_ADD(co, BOOL, skip_taskbar, qa_config, _("Skip taskbar"), _("quickaccess"), _("border")); - E_CONFIGURE_OPTION_HELP(co, _("This option causes Quickaccess windows to not show up in taskbars")); - E_CONFIGURE_OPTION_ADD(co, BOOL, skip_pager, qa_config, _("Skip pager"), _("quickaccess"), _("border")); - E_CONFIGURE_OPTION_HELP(co, _("This option causes Quickaccess windows to not show up in pagers")); - - e_configure_option_category_tag_add(_("windows"), _("quickaccess")); - e_configure_option_category_tag_add(_("quickaccess"), _("quickaccess")); - e_configure_option_category_icon_set(_("quickaccess"), buf); - return m; } @@ -98,10 +78,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("launcher/quickaccess"); e_configure_registry_category_del("launcher"); - e_configure_option_domain_clear("quickaccess"); - e_configure_option_category_tag_del(_("quickaccess"), _("quickaccess")); - e_configure_option_category_tag_del(_("windows"), _("quickaccess")); - e_qa_config_free(qa_config); E_FREE(qa_mod); qa_config = NULL; diff --git a/src/modules/teamwork/e_mod_main.c b/src/modules/teamwork/e_mod_main.c index 4b874e5b3..26f4729bf 100644 --- a/src/modules/teamwork/e_mod_main.c +++ b/src/modules/teamwork/e_mod_main.c @@ -113,7 +113,6 @@ EAPI void * e_modapi_init(E_Module *m) { char buf[PATH_MAX]; - E_Configure_Option *co; snprintf(buf, sizeof(buf), "%s/e-module-teamwork.edj", e_module_dir_get(m)); e_configure_registry_category_add("applications", 20, _("Apps"), NULL, @@ -156,35 +155,6 @@ e_modapi_init(E_Module *m) e_tw_toggle->func.go = e_tw_act_toggle_cb; e_action_predef_name_set(_e_tw_name, _lbl_toggle, _act_toggle, NULL, NULL, 1); - e_configure_option_domain_current_set("teamwork"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "teamwork-settings", _("Teamwork settings panel"), _("teamwork"), _("applications")); - co->info = eina_stringshare_add("applications/teamwork"); - E_CONFIGURE_OPTION_ICON(co, buf); - E_CONFIGURE_OPTION_ADD(co, BOOL, disable_media_fetch, tw_config, _("Disable Teamwork remote media fetching"), _("teamwork")); - E_CONFIGURE_OPTION_ADD(co, BOOL, disable_video, tw_config, _("Disable Teamwork video popups"), _("teamwork")); - E_CONFIGURE_OPTION_ADD(co, DOUBLE, allowed_media_size, tw_config, _("Maximum total size of Teamwork media to keep in RAM"), _("teamwork"), _("cache")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 0, 1024, 16, _("%4.0f MiB")); - E_CONFIGURE_OPTION_ADD(co, DOUBLE, allowed_media_size, tw_config, _("Maximum size of remote media items to fetch with Teamwork"), _("teamwork"), _("cache")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 1, 50, 1, _("%2.0f MiB")); - E_CONFIGURE_OPTION_HELP(co, _("This option determines how much memory will be used to cache recent media for faster loading.")); - E_CONFIGURE_OPTION_ADD(co, DOUBLE, allowed_media_age, tw_config, _("Maximum age for a disk-cached Teamwork media item"), _("teamwork"), _("cache")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, -1, 180, 1, _("%3.0f Days")); - E_CONFIGURE_OPTION_HELP(co, _("This option determines how long media will remain in the disk cache before it is pruned." - "Set to -1 to never delete media, or to 0 to never cache media on disk.")); - - E_CONFIGURE_OPTION_ADD(co, DOUBLE, mouse_out_delay, tw_config, _("Delay before closing a Teamwork popup on mouse-out"), _("teamwork"), _("mouse")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 0, 5, 0.5, _("%1.1f seconds")); - E_CONFIGURE_OPTION_ADD(co, DOUBLE, popup_size, tw_config, _("Maximum percentage of screen to use for Teamwork popups"), _("teamwork"), _("screen")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 10, 100, 1, _("%3.0f")); - E_CONFIGURE_OPTION_ADD(co, DOUBLE, popup_opacity, tw_config, _("Opacity to use for Teamwork popups"), _("teamwork")); - E_CONFIGURE_OPTION_MINMAX_STEP_FMT(co, 10, 100, 1, _("%3.0f")); - co->funcs[0].none = tw_popup_opacity_set; - - e_configure_option_category_tag_add(_("applications"), _("teamwork")); - e_configure_option_category_tag_add(_("teamwork"), _("teamwork")); - e_configure_option_category_icon_set(_("teamwork"), buf); - return m; } @@ -200,10 +170,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("applications/teamwork"); e_configure_registry_category_del("applications"); - e_configure_option_domain_clear("teamwork"); - e_configure_option_category_tag_del(_("teamwork"), _("teamwork")); - e_configure_option_category_tag_del(_("applications"), _("teamwork")); - e_action_predef_name_del(_e_tw_name, _lbl_toggle); e_action_del(_act_toggle); e_tw_toggle = NULL; diff --git a/src/modules/tiling/e_mod_tiling.c b/src/modules/tiling/e_mod_tiling.c index cab27b9e1..4e0c02a02 100644 --- a/src/modules/tiling/e_mod_tiling.c +++ b/src/modules/tiling/e_mod_tiling.c @@ -3908,29 +3908,6 @@ e_modapi_init(E_Module *m) _G.currently_switching_desktop = 0; _G.action_cb = NULL; - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("tiling"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "tiling", _("Tiling settings"), _("tiling"), _("border")); - co->info = eina_stringshare_add("windows/tiling"); - E_CONFIGURE_OPTION_ICON(co, _G.edj_path); - co->funcs[0].one = co->funcs[0].none = e_tiling_update_conf; - - E_CONFIGURE_OPTION_ADD(co, BOOL, tile_dialogs, tiling_g.config, _("Tile dialog windows"), _("dialog"), _("tiling"), _("border"), _("placement")); - co->funcs[0].one = co->funcs[0].none = e_tiling_update_conf; - E_CONFIGURE_OPTION_ADD(co, BOOL, show_titles, tiling_g.config, _("Show window titles when tiling"), _("tiling"), _("border")); - co->funcs[0].one = co->funcs[0].none = e_tiling_update_conf; - E_CONFIGURE_OPTION_ADD(co, STR, keyhints, tiling_g.config, _("Tiling key hints"), _("key"), _("tiling")); - co->funcs[0].one = co->funcs[0].none = e_tiling_update_conf; - E_CONFIGURE_OPTION_ICON(co, _G.edj_path); - - e_configure_option_category_tag_add(_("windows"), _("tiling")); - e_configure_option_category_tag_add(_("tiling"), _("tiling")); - e_configure_option_category_icon_set(_("tiling"), _G.edj_path); - } - return m; } @@ -4051,12 +4028,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) end_special_input(); - e_configure_option_domain_clear("tiling"); - - e_configure_option_category_icon_set(_("tiling"), _G.edj_path); - e_configure_option_category_tag_del(_("border"), _("tiling")); - e_configure_option_category_tag_del(_("tiling"), _("tiling")); - free(tiling_g.config->keyhints); E_FREE(tiling_g.config); E_CONFIG_DD_FREE(_G.config_edd); diff --git a/src/modules/xkbswitch/e_mod_main.c b/src/modules/xkbswitch/e_mod_main.c index 7b207406d..ddcbb3599 100644 --- a/src/modules/xkbswitch/e_mod_main.c +++ b/src/modules/xkbswitch/e_mod_main.c @@ -75,16 +75,6 @@ e_modapi_init(E_Module *m) "preferences-desktop-keyboard", _xkb_cfg_dialog); - { - E_Configure_Option *co; - - e_configure_option_domain_current_set("xkbswitch"); - - E_CONFIGURE_OPTION_ADD_CUSTOM(co, "xkb layouts", _("Keyboard layout settings"), _("input"), _("key"), _("language")); - co->info = eina_stringshare_add("keyboard_and_mouse/xkbswitch"); - E_CONFIGURE_OPTION_ICON(co, "preferences-desktop-keyboard"); - } - _xkb.module = m; ecore_event_handler_add(ECORE_X_EVENT_XKB_STATE_NOTIFY, _xkb_changed_state, NULL); @@ -103,8 +93,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("keyboard_and_mouse/xkbswitch"); e_configure_registry_category_del("keyboard_and_mouse"); - e_configure_option_domain_clear("xkbswitch"); - if (_xkb.evh) ecore_event_handler_del(_xkb.evh); if (_xkb.cfd) e_object_del(E_OBJECT(_xkb.cfd)); _xkb.cfd = NULL;