From 8b7ce4923da260e4c8e716f64dae83175c36ea06 Mon Sep 17 00:00:00 2001 From: Chidambar Zinnoury Date: Sun, 8 Jul 2012 12:18:32 +0000 Subject: [PATCH] e settings: merge cursor and mouse settings. Bonus: add some i18n lovin' to xsettings. SVN revision: 73471 --- po/POTFILES.in | 2 +- .../conf_interaction/e_int_config_mouse.c | 125 ++++++++++++- src/modules/conf_theme/Makefile.am | 2 - src/modules/conf_theme/e_int_config_cursor.c | 172 ------------------ src/modules/conf_theme/e_int_config_cursor.h | 9 - src/modules/conf_theme/e_mod_main.c | 10 +- src/modules/conf_theme/e_mod_main.h | 2 - 7 files changed, 121 insertions(+), 201 deletions(-) delete mode 100644 src/modules/conf_theme/e_int_config_cursor.c delete mode 100644 src/modules/conf_theme/e_int_config_cursor.h diff --git a/po/POTFILES.in b/po/POTFILES.in index a5edb008c..9580026e0 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -174,13 +174,13 @@ src/modules/conf_theme/e_int_config_borders.c src/modules/conf_theme/e_int_config_color_classes.c src/modules/conf_theme/e_int_config_fonts.c src/modules/conf_theme/e_int_config_icon_themes.c -src/modules/conf_theme/e_int_config_cursor.c src/modules/conf_theme/e_int_config_scale.c src/modules/conf_theme/e_int_config_startup.c src/modules/conf_theme/e_int_config_transitions.c src/modules/conf_theme/e_int_config_theme.c src/modules/conf_theme/e_int_config_theme_import.c src/modules/conf_theme/e_int_config_theme_web.c +src/modules/conf_theme/e_int_config_xsettings.c src/modules/conf_theme/e_mod_main.c src/modules/conf_window_manipulation/e_int_config_clientlist.c src/modules/conf_window_manipulation/e_int_config_window_display.c diff --git a/src/modules/conf_interaction/e_int_config_mouse.c b/src/modules/conf_interaction/e_int_config_mouse.c index 7f1177183..3fc1e7c0a 100644 --- a/src/modules/conf_interaction/e_int_config_mouse.c +++ b/src/modules/conf_interaction/e_int_config_mouse.c @@ -10,6 +10,17 @@ struct _E_Config_Dialog_Data { E_Config_Dialog *cfd; + int show_cursor; + int idle_cursor; + int use_e_cursor; + int cursor_size; + + Eina_List *disable_list; + struct + { + Evas_Object *idle_cursor; + } gui; + int mouse_hand; double numerator; double denominator; @@ -42,6 +53,11 @@ e_int_config_mouse(E_Container *con, const char *params __UNUSED__) static void _fill_data(E_Config_Dialog_Data *cfdata) { + cfdata->show_cursor = e_config->show_cursor; + cfdata->idle_cursor = e_config->idle_cursor; + cfdata->use_e_cursor = e_config->use_e_cursor; + cfdata->cursor_size = e_config->cursor_size; + cfdata->mouse_hand = e_config->mouse_hand; cfdata->numerator = e_config->mouse_accel_numerator; cfdata->denominator = e_config->mouse_accel_denominator; @@ -63,7 +79,11 @@ _create_data(E_Config_Dialog *cfd) static int _basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) { - return !((cfdata->mouse_hand == e_config->mouse_hand) && + return !((cfdata->show_cursor == e_config->show_cursor) && + (cfdata->idle_cursor == e_config->idle_cursor) && + (cfdata->use_e_cursor == e_config->use_e_cursor) && + (cfdata->cursor_size == e_config->cursor_size) && + (cfdata->mouse_hand == e_config->mouse_hand) && (cfdata->numerator == e_config->mouse_accel_numerator) && (cfdata->denominator == e_config->mouse_accel_denominator) && (cfdata->threshold == e_config->mouse_accel_threshold)); @@ -79,25 +99,113 @@ _free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) static int _basic_apply_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) { + Eina_List *l; + E_Manager *man; + + e_config->use_e_cursor = cfdata->use_e_cursor; + e_config->show_cursor = cfdata->show_cursor; + e_config->idle_cursor = cfdata->idle_cursor; + e_config->cursor_size = cfdata->cursor_size; + e_config->mouse_hand = cfdata->mouse_hand; e_config->mouse_accel_numerator = cfdata->numerator; e_config->mouse_accel_denominator = cfdata->denominator; e_config->mouse_accel_threshold = cfdata->threshold; + e_config_save_queue(); /* Apply the above settings */ + 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); + } + e_mouse_update(); - e_config_save_queue(); return 1; } + +static void +_use_e_cursor_cb_change(void *data, Evas_Object *obj __UNUSED__) +{ + E_Config_Dialog_Data *cfdata = data; + Eina_Bool disabled = ((!cfdata->use_e_cursor) || (!cfdata->show_cursor)); + e_widget_disabled_set(cfdata->gui.idle_cursor, disabled); +} + +static void +_show_cursor_cb_change(void *data, Evas_Object *obj __UNUSED__) +{ + E_Config_Dialog_Data *cfdata = data; + const Eina_List *l; + Evas_Object *o; + + EINA_LIST_FOREACH(cfdata->disable_list, l, o) + e_widget_disabled_set(o, !cfdata->show_cursor); + + _use_e_cursor_cb_change(cfdata, NULL); +} + static Evas_Object * _basic_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata) { - Evas_Object *o, *of, *ob; + Evas_Object *otb, *ol, *of, *ob; E_Radio_Group *rg; - o = e_widget_list_add(evas, 0, 0); + otb = e_widget_toolbook_add(evas, (24 * e_scale), (24 * e_scale)); + + /* Cursor */ + ol = e_widget_list_add(evas, 0, 0); + + ob = e_widget_check_add(evas, _("Show Cursor"), &(cfdata->show_cursor)); + e_widget_on_change_hook_set(ob, _show_cursor_cb_change, cfdata); + e_widget_list_object_append(ol, ob, 1, 0, 0.5); + + of = e_widget_framelist_add(evas, _("Settings"), 0); + rg = e_widget_radio_group_new(&cfdata->use_e_cursor); + cfdata->disable_list = eina_list_append(cfdata->disable_list, of); + + ob = e_widget_label_add(evas, _("Size")); + e_widget_framelist_object_append(of, ob); + cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); + + ob = e_widget_slider_add(evas, 1, 0, _("%1.0f pixels"), + 8, 128, 4, 0, NULL, &(cfdata->cursor_size), 100); + e_widget_framelist_object_append(of, ob); + cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); + + ob = e_widget_label_add(evas, _("Theme")); + e_widget_framelist_object_append(of, ob); + cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); + + ob = e_widget_radio_add(evas, _("X"), 0, rg); + e_widget_on_change_hook_set(ob, _use_e_cursor_cb_change, cfdata); + e_widget_framelist_object_append(of, ob); + cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); + + ob = e_widget_radio_add(evas, _("Enlightenment"), 1, rg); + e_widget_on_change_hook_set(ob, _use_e_cursor_cb_change, cfdata); + e_widget_framelist_object_append(of, ob); + cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); + + ob = e_widget_check_add(evas, _("Idle effects"), + &(cfdata->idle_cursor)); + e_widget_framelist_object_append(of, ob); + cfdata->gui.idle_cursor = ob; + + e_widget_list_object_append(ol, of, 1, 0, 0.5); + e_widget_toolbook_page_append(otb, NULL, _("Cursor"), ol, + 1, 0, 1, 0, 0.5, 0.0); + + /* Mouse */ + /* TODO: Get all inputs and hide this tab if none is relative. */ + ol = e_widget_list_add(evas, 0, 0); of = e_widget_frametable_add(evas, _("Mouse Hand"), 0); rg = e_widget_radio_group_new(&(cfdata->mouse_hand)); @@ -105,7 +213,7 @@ _basic_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dial e_widget_frametable_object_append(of, ob, 0, 0, 1, 1, 1, 1, 1, 1); ob = e_widget_radio_icon_add(evas, NULL, "preferences-desktop-mouse-left", 48, 48, E_MOUSE_HAND_RIGHT, rg); e_widget_frametable_object_append(of, ob, 1, 0, 1, 1, 1, 1, 1, 1); - e_widget_list_object_append(o, of, 1, 0, 0.5); + e_widget_list_object_append(ol, of, 1, 0, 0.5); of = e_widget_framelist_add(evas, _("Mouse Acceleration"), 0); @@ -121,7 +229,10 @@ _basic_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dial &(cfdata->threshold), NULL, 100); e_widget_framelist_object_append(of, ob); - e_widget_list_object_append(o, of, 1, 0, 0.5); + e_widget_list_object_append(ol, of, 1, 0, 0.5); + e_widget_toolbook_page_append(otb, NULL, _("Mouse"), ol, + 1, 0, 1, 0, 0.5, 0.0); - return o; + e_widget_toolbook_page_show(otb, 0); + return otb; } diff --git a/src/modules/conf_theme/Makefile.am b/src/modules/conf_theme/Makefile.am index f2de49087..6e68ad1f2 100644 --- a/src/modules/conf_theme/Makefile.am +++ b/src/modules/conf_theme/Makefile.am @@ -26,8 +26,6 @@ module_la_SOURCES = e_mod_main.c \ e_int_config_borders.h \ e_int_config_color_classes.c \ e_int_config_color_classes.h \ - e_int_config_cursor.c \ - e_int_config_cursor.h \ e_int_config_fonts.c \ e_int_config_fonts.h \ e_int_config_icon_themes.c \ diff --git a/src/modules/conf_theme/e_int_config_cursor.c b/src/modules/conf_theme/e_int_config_cursor.c deleted file mode 100644 index 136d97510..000000000 --- a/src/modules/conf_theme/e_int_config_cursor.c +++ /dev/null @@ -1,172 +0,0 @@ -#include "e.h" - -static void *_create_data(E_Config_Dialog *cfd); -static void _free_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static int _basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static int _basic_check_changed(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata); -static Evas_Object *_basic_create_widgets(E_Config_Dialog *cfd, Evas *evas, E_Config_Dialog_Data *cfdata); - -struct _E_Config_Dialog_Data -{ - int show_cursor; - int idle_cursor; - int use_e_cursor; - int cursor_size; - - Eina_List *disable_list; - struct - { - Evas_Object *idle_cursor; - } gui; -}; - -E_Config_Dialog * -e_int_config_cursor(E_Container *con, const char *params __UNUSED__) -{ - E_Config_Dialog *cfd; - E_Config_Dialog_View *v; - - if (e_config_dialog_find("E", "appearance/mouse_cursor")) return NULL; - v = E_NEW(E_Config_Dialog_View, 1); - - v->create_cfdata = _create_data; - v->free_cfdata = _free_data; - v->basic.apply_cfdata = _basic_apply_data; - v->basic.create_widgets = _basic_create_widgets; - v->basic.check_changed = _basic_check_changed; - - cfd = e_config_dialog_new(con, - _("Cursor Settings"), - "E", "appearance/mouse_cursor", - "preferences-desktop-pointer", 0, v, NULL); - return cfd; -} - -static void * -_create_data(E_Config_Dialog *cfd __UNUSED__) -{ - E_Config_Dialog_Data *cfdata = E_NEW(E_Config_Dialog_Data, 1); - if (!cfdata) return NULL; - cfdata->show_cursor = e_config->show_cursor; - cfdata->idle_cursor = e_config->idle_cursor; - cfdata->use_e_cursor = e_config->use_e_cursor; - cfdata->cursor_size = e_config->cursor_size; - return cfdata; -} - -static void -_free_data(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - E_FREE(cfdata); -} - -static int -_basic_apply_data(E_Config_Dialog *cfd, E_Config_Dialog_Data *cfdata) -{ - int changed = _basic_check_changed(cfd, cfdata); - Eina_List *l; - E_Manager *man; - - if (!changed) return 1; - - e_config->use_e_cursor = cfdata->use_e_cursor; - e_config->show_cursor = cfdata->show_cursor; - e_config->idle_cursor = cfdata->idle_cursor; - e_config->cursor_size = cfdata->cursor_size; - e_config_save_queue(); - - 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); - } - - return 1; -} - -static int -_basic_check_changed(E_Config_Dialog *cfd __UNUSED__, E_Config_Dialog_Data *cfdata) -{ - return (e_config->show_cursor != cfdata->show_cursor) || - (e_config->idle_cursor != cfdata->idle_cursor) || - (e_config->use_e_cursor != cfdata->use_e_cursor) || - (e_config->cursor_size != cfdata->cursor_size); -} - -static void -_use_e_cursor_cb_change(void *data, Evas_Object *obj __UNUSED__) -{ - E_Config_Dialog_Data *cfdata = data; - Eina_Bool disabled = ((!cfdata->use_e_cursor) || (!cfdata->show_cursor)); - e_widget_disabled_set(cfdata->gui.idle_cursor, disabled); -} - -static void -_show_cursor_cb_change(void *data, Evas_Object *obj __UNUSED__) -{ - E_Config_Dialog_Data *cfdata = data; - const Eina_List *l; - Evas_Object *o; - - EINA_LIST_FOREACH(cfdata->disable_list, l, o) - e_widget_disabled_set(o, !cfdata->show_cursor); - - _use_e_cursor_cb_change(cfdata, NULL); -} - -static Evas_Object * -_basic_create_widgets(E_Config_Dialog *cfd __UNUSED__, Evas *evas, E_Config_Dialog_Data *cfdata) -{ - Evas_Object *o, *ob, *of; - E_Radio_Group *rg; - - o = e_widget_list_add(evas, 0, 0); - - ob = e_widget_check_add(evas, _("Show Cursor"), &(cfdata->show_cursor)); - e_widget_on_change_hook_set(ob, _show_cursor_cb_change, cfdata); - e_widget_list_object_append(o, ob, 1, 0, 0.5); - - of = e_widget_framelist_add(evas, _("Settings"), 0); - rg = e_widget_radio_group_new(&cfdata->use_e_cursor); - cfdata->disable_list = eina_list_append(cfdata->disable_list, of); - - ob = e_widget_label_add(evas, _("Size")); - e_widget_framelist_object_append(of, ob); - cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); - - ob = e_widget_slider_add(evas, 1, 0, _("%1.0f pixels"), - 8, 128, 4, 0, NULL, &(cfdata->cursor_size), 100); - e_widget_framelist_object_append(of, ob); - cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); - - ob = e_widget_label_add(evas, _("Theme")); - e_widget_framelist_object_append(of, ob); - cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); - - ob = e_widget_radio_add(evas, _("X"), 0, rg); - e_widget_on_change_hook_set(ob, _use_e_cursor_cb_change, cfdata); - e_widget_framelist_object_append(of, ob); - cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); - - ob = e_widget_radio_add(evas, _("Enlightenment"), 1, rg); - e_widget_on_change_hook_set(ob, _use_e_cursor_cb_change, cfdata); - e_widget_framelist_object_append(of, ob); - cfdata->disable_list = eina_list_append(cfdata->disable_list, ob); - - ob = e_widget_check_add(evas, _("Idle effects"), - &(cfdata->idle_cursor)); - e_widget_framelist_object_append(of, ob); - cfdata->gui.idle_cursor = ob; - - e_widget_list_object_append(o, of, 1, 0, 0.5); - - _show_cursor_cb_change(cfdata, NULL); - - return o; -} - diff --git a/src/modules/conf_theme/e_int_config_cursor.h b/src/modules/conf_theme/e_int_config_cursor.h deleted file mode 100644 index ddfb9811a..000000000 --- a/src/modules/conf_theme/e_int_config_cursor.h +++ /dev/null @@ -1,9 +0,0 @@ -#ifdef E_TYPEDEFS -#else -#ifndef E_INT_CONFIG_CURSOR_H -#define E_INT_CONFIG_CURSOR_H - -E_Config_Dialog *e_int_config_cursor(E_Container *con, const char *params __UNUSED__); - -#endif -#endif diff --git a/src/modules/conf_theme/e_mod_main.c b/src/modules/conf_theme/e_mod_main.c index 765b6b3bf..3e8fea4db 100644 --- a/src/modules/conf_theme/e_mod_main.c +++ b/src/modules/conf_theme/e_mod_main.c @@ -50,13 +50,10 @@ e_modapi_init(E_Module *m) e_configure_registry_item_add("appearance/icon_theme", 60, _("Icon Theme"), NULL, "preferences-icon-theme", e_int_config_icon_themes); - e_configure_registry_item_add("appearance/mouse_cursor", 70, _("Mouse Cursor"), NULL, - "preferences-desktop-pointer", - e_int_config_cursor); - e_configure_registry_item_add("appearance/transitions", 80, _("Transitions"), NULL, + e_configure_registry_item_add("appearance/transitions", 70, _("Transitions"), NULL, "preferences-transitions", e_int_config_transitions); - e_configure_registry_item_add("appearance/scale", 90, _("Scaling"), NULL, + e_configure_registry_item_add("appearance/scale", 80, _("Scaling"), NULL, "preferences-scale", e_int_config_scale); e_configure_registry_item_add("appearance/startup", 90, _("Startup"), NULL, @@ -98,8 +95,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "appearance/transitions"))) e_object_del(E_OBJECT(cfd)); - while ((cfd = e_config_dialog_get("E", "appearance/mouse_cursor"))) - e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "appearance/icon_theme"))) e_object_del(E_OBJECT(cfd)); while ((cfd = e_config_dialog_get("E", "appearance/borders"))) @@ -118,7 +113,6 @@ e_modapi_shutdown(E_Module *m __UNUSED__) e_configure_registry_item_del("appearance/startup"); e_configure_registry_item_del("appearance/scale"); e_configure_registry_item_del("appearance/transitions"); - e_configure_registry_item_del("appearance/mouse_cursor"); e_configure_registry_item_del("appearance/icon_theme"); e_configure_registry_item_del("appearance/borders"); e_configure_registry_item_del("appearance/fonts"); diff --git a/src/modules/conf_theme/e_mod_main.h b/src/modules/conf_theme/e_mod_main.h index fc1ce6143..f0aba97c8 100644 --- a/src/modules/conf_theme/e_mod_main.h +++ b/src/modules/conf_theme/e_mod_main.h @@ -4,7 +4,6 @@ #define E_TYPEDEFS 1 #include "e_int_config_borders.h" #include "e_int_config_color_classes.h" -#include "e_int_config_cursor.h" #include "e_int_config_fonts.h" #include "e_int_config_icon_themes.h" #include "e_int_config_scale.h" @@ -20,7 +19,6 @@ #undef E_TYPEDEFS #include "e_int_config_borders.h" #include "e_int_config_color_classes.h" -#include "e_int_config_cursor.h" #include "e_int_config_fonts.h" #include "e_int_config_icon_themes.h" #include "e_int_config_scale.h"