[Accessibility] Manage menu options fix 72/148772/5
authorPawel Kurowski <p.kurowski2@samsung.com>
Sun, 10 Sep 2017 18:20:39 +0000 (20:20 +0200)
committerPawel Kurowski <p.kurowski2@samsung.com>
Mon, 18 Sep 2017 10:25:47 +0000 (12:25 +0200)
Moreover in all accessibility page descriptions can be multiline.
All changes made according to guide example.

Change-Id: Ia8561be5a5d8980f22fe6abffca03e4495d2ce4f

13 files changed:
setting-accessibility/include/setting-accessibility-universal-switch-settings-set-value.h
setting-accessibility/include/setting-accessibility-universal-switch-settings.h
setting-accessibility/include/setting-accessibility.h
setting-accessibility/src/setting-accessibility-main.c
setting-accessibility/src/setting-accessibility-screen-reader-settings.c
setting-accessibility/src/setting-accessibility-screen-reader.c
setting-accessibility/src/setting-accessibility-universal-switch-add-switch-camera.c
setting-accessibility/src/setting-accessibility-universal-switch-add-switch.c
setting-accessibility/src/setting-accessibility-universal-switch-remove-switch.c
setting-accessibility/src/setting-accessibility-universal-switch-settings-set-value.c
setting-accessibility/src/setting-accessibility-universal-switch-settings.c
setting-accessibility/src/setting-accessibility-universal-switch.c
setting-accessibility/src/setting-accessibility.c

index ccfbba36837d7173a89ff188d4ce721c3d475772..6e595479834151b31525fd304877da0a13cd50b1 100644 (file)
@@ -11,8 +11,8 @@ void setting_accessibility_universal_switch_settings_set_value_range_set(Setting
 void setting_accessibility_universal_switch_settings_set_value_value_set(SettingAccessibility *ad, double value, const char *units);
 void setting_accessibility_universal_switch_settings_set_value_switch_set(SettingAccessibility *ad, bool state);
 void setting_accessibility_universal_switch_settings_set_value_radio_item_add(SettingAccessibility *ad, const char *caption, int id, bool selected);
-void setting_accessibility_universal_switch_settings_set_value_switch_item_add(SettingAccessibility *ad, const char *caption, int id, bool state);
-void setting_accessibility_universal_switch_settings_set_value_switch_item_with_subtext_add(SettingAccessibility *ad, const char *caption, const char *subtext, int id, bool state);
+void setting_accessibility_universal_switch_settings_set_value_switch_item_add(SettingAccessibility *ad, const char *caption, const char *sub_desc, int id, bool state, setting_call_back_func gl_sel);
+void setting_accessibility_universal_switch_settings_set_value_remove_switch_item_add(SettingAccessibility *ad, const char *caption, const char *subtext, int id, bool state);
 Setting_GenGroupItem_Data* setting_accessibility_universal_switch_settings_set_value_radio_list_item_add(SettingAccessibility *ad, const char *main_text, const char *sub_text, int option_id);
 void setting_accessibility_universal_switch_settings_set_value_add_value_change_cb(SettingAccessibility *ad, change_value_cb cb);
 void setting_accessibility_universal_switch_settings_set_value_add_switch_change_cb(SettingAccessibility *ad, change_switch_cb cb);
index 5ec87629dc2ad048a8e0618c8873dd3983637a88..3f53ef042c5e0e2ae6691392b33f55fc12a6300d 100644 (file)
 #define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS VCONF_PROJECT_PREFIX "SHOW_SETTINGS_MENU_ITEM"
 #define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN VCONF_PROJECT_PREFIX "SHOW_HOME_SCREEN_MENU_ITEM"
 #define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS VCONF_PROJECT_PREFIX "SHOW_BUTTONS_AND_KEYS_MENU_ITEM"
-#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_EDITTEXT VCONF_PROJECT_PREFIX "MANAGE_EDITTEXT" //TODO: remove this key during, fix "manage menu options"
 #define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_CONTEXTUAL_MENU VCONF_PROJECT_PREFIX "SHOW_CONTEXTUAL_MENU"
 #define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_GESTURES VCONF_PROJECT_PREFIX "SHOW_GESTURES_MENU_ITEM"
 #define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_RECENT_APPS VCONF_PROJECT_PREFIX "SHOW_RECENT_APPS_MENU_ITEM"
+#define VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_BACK VCONF_PROJECT_PREFIX "SHOW_BACK_MENU_ITEM"
 
 void setting_accessibility_universal_switch_settings_page_create(SettingAccessibility *data);
 
index ae5a8c18120155f98404f4649ad8b5b4af92c1ff..bd7df7ab1d95d622d35c7121d5b37c830efb4042 100755 (executable)
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_FEEDBACK_OPTIONS "Options"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE "Manage menu options"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SUB "Select which menu options to show in Universal switch."
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_GESTURES "Gestures"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_ACTIONS "Actions"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SETTINGS "Settings"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOMESCREEN "Home screen"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_KEYS "Keys"
-#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_EDITTEXT "Edit text"
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_RECENT_APPS "Recent apps"
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOME_SCREEN "Home screen"
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BACK "Back"
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BUTTONS_AND_KEYS "Buttons and keys"
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU "Contextual menu"
+#define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU_DESC "Place contextual menu on the first row depending on the activity"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_SECONDS "seconds"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_ON "On"
 #define DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_OFF "Off"
 
 #define SETTING_ACCESSIBILITY_EDJEDIR _TZ_SYS_RO_APP"/org.tizen.setting-accessibility/res/edje"
 
-#define MANAGE_OPTIONS_COUNT 5
+#define MANAGE_OPTIONS_COUNT 8
 
 #define ACCESSIBILITY_UNIVERSAL_SWITCH_SCREEN_SWITCH_PROVIDER "ScreenSwitchProvider"
 #define ACCESSIBILITY_UNIVERSAL_SWITCH_ACCESSORIES_SWITCH_PROVIDER "AccessoriesSwitchProvider"
 
 typedef enum {SM_POINT = 0, SM_ROW} scan_method_t;
 typedef enum {SD_TOP_BOTTOM = 0, SD_BOTTOM_TOP} scan_dir_t;
-typedef enum {MANAGE_OPT_ACTIONS, MANAGE_OPT_SETTINGS, MANAGE_OPT_HOMESCREEN, MANAGE_OPT_KEYS, MANAGE_OPT_EDITTEXT} manage_options_type_t;
+typedef enum {MANAGE_GESTURES, MANAGE_ACTIONS, MANAGE_SETTINGS, MANAGE_RECENT_APPS,
+       MANAGE_HOME_SCREEN, MANAGE_BACK, MANAGE_BUTTONS_AND_KEYS, MANAGE_CONTEXTUAL_MENU} manage_options_type_t;
 
 typedef const char * switch_action_t;
 
@@ -246,6 +251,7 @@ typedef struct _SetValueLayout {
 struct _SettingAccessibility {
        MainData md;
        Elm_Genlist_Item_Class itc_1text;
+       Elm_Genlist_Item_Class itc_multiline_sub;
        Evas_Object *popup;
        Evas_Object *entry;
        Evas_Object *all_checkbox;
index 5b464de4925e8e0c2d1b8dfc5c1ecce21815e28f..3b4d92b860fe70c928554cd9245eb5cd480ea471 100644 (file)
@@ -126,7 +126,7 @@ int setting_accessibility_main_generate_genlist(void *data)
        }
 
        ad->universal_switch_item = setting_create_Gendial_field_def(
-                       scroller, &itc_2text,
+                       scroller, &ad->itc_multiline_sub,
                        setting_accessibility_universal_switch_mouse_up_Gendial_list_cb,
                        ad, SWALLOW_Type_INVALID, NULL,
                        NULL, 1, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH),
index bfa461eb51355d4b495df5b5a088d7497609d93f..77cd67d9b1e6fc611b1105e14b6e7a2f24339cd3 100755 (executable)
@@ -737,11 +737,12 @@ void setting_accessibility_screen_reader_settings_page_create(
        }
 
        ad->multiline_status_bar_information_description = setting_create_Gendial_field_def(
-                       genlist, &itc_multiline_text,
+                       genlist, &ad->itc_multiline_sub,
                        NULL, ad, SWALLOW_Type_INVALID, NULL,
                        NULL, 0,
+                       NULL,
                        _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_SETTINGS_STATUS_BAR_INFORMATION_DESCRIPTION),
-                       NULL, NULL);
+                       NULL);
 
        if (ad->multiline_status_bar_information_description) {
                ad->multiline_status_bar_information_description->userdata = ad;
index cfbb37c804682cfa8c29d4b7fd2dd83e273b123b..b4bf28e759c0c96b17bfb9140e3f935e65094525 100644 (file)
@@ -159,11 +159,12 @@ void setting_accessibility_screen_reader_page_create(
        }
 
        ad->multiline_screen_reader_comment = setting_create_Gendial_field_def(
-                       genlist, &itc_multiline_text,
+                       genlist, &ad->itc_multiline_sub,
                        NULL, ad, SWALLOW_Type_INVALID, NULL,
                        NULL, 0,
+                       NULL,
                        _(DEVOPTION_STR_ACCESSIBILITY_SCREEN_READER_DESCRIPTION),
-                       NULL, NULL);
+                       NULL);
        if (ad->multiline_screen_reader_comment) {
                ad->multiline_screen_reader_comment->userdata = ad;
                __BACK_POINTER_SET(ad->multiline_screen_reader_comment);
index bce612311397e2ba144a3d4bc5a86861118169ca..122a7c378c6e74b3ebec71deabea894a7d20a312 100755 (executable)
@@ -87,11 +87,12 @@ void setting_accessibility_universal_switch_add_switch_camera_page_create(Settin
        elm_genlist_clear(genlist);
 
        ad->universal_switch_camera_comment = setting_create_Gendial_field_def(
-                       genlist, &itc_multiline_text,
+                       genlist, &ad->itc_multiline_sub,
                        NULL, ad, SWALLOW_Type_INVALID, NULL,
                        NULL, 0,
+                       NULL,
                        _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_COMMENT),
-                       NULL, NULL);
+                       NULL);
 
        elm_genlist_item_select_mode_set(ad->universal_switch_camera_comment->item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
        setting_create_Gendial_field_titleItem(genlist, &itc_group_item, DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_ADD_SWITCH_CAMERA_GROUP_HEAD, NULL);
@@ -108,7 +109,7 @@ void setting_accessibility_universal_switch_add_switch_camera_page_create(Settin
                        if (strlen(description) == 0)
                                description = NULL;
 
-                       item = setting_create_Gendial_field_def(genlist, &itc_1text, __add_camera_switch_cb, camer_switch,
+                       item = setting_create_Gendial_field_def(genlist, &ad->itc_multiline_sub, __add_camera_switch_cb, camer_switch,
                                        SWALLOW_Type_INVALID, NULL, NULL, 0, camer_switch->name, description, NULL);
 
                        if (item) {
index 3dcde20c9cd8ef0bb0d5e8b794abd95c7d3d94ca..5e847a73372cf6863626fe1aefb08fda4cf38d1e 100755 (executable)
@@ -128,7 +128,7 @@ void setting_accessibility_universal_switch_add_switch_page_create(SettingAccess
                Setting_GenGroupItem_Data *item;
 
                item = setting_create_Gendial_field_def(
-                               genlist, &itc_2text,
+                               genlist, &ad->itc_multiline_sub,
                                __add_switch_cb, switch_provider->info->id,
                                SWALLOW_Type_INVALID, NULL, NULL, 0,
                                switch_provider->info->name,
index c10326024a22d0c5d076321eede8a3ce48c17bc4..0b5a7009aac9958369427f238497579a24f8bfed 100644 (file)
@@ -212,7 +212,7 @@ void setting_accessibility_universal_switch_remove_switch_page_create(SettingAcc
        int i;
        EINA_ARRAY_ITER_NEXT(ad->config.configuration_items, i, config_item, iterator) {
                const char *activity_name = setting_accessibility_universal_switch_dbus_config_get_activity_name(&ad->config, config_item->activity_type);
-               setting_accessibility_universal_switch_settings_set_value_switch_item_with_subtext_add(ad, config_item->user_name, activity_name, i, false);
+               setting_accessibility_universal_switch_settings_set_value_remove_switch_item_add(ad, config_item->user_name, activity_name, i, false);
        }
 
        SETTING_TRACE_END;
index ce042cd4320e31fad3df857b2d691e3aeb884865..1c6e56b7564c23e814efe9d0aaebb522dc753bc0 100755 (executable)
@@ -481,15 +481,16 @@ static void __gendial_remove_item_selected_cb(void *data, Evas_Object *obj, void
        SETTING_TRACE_END;
 }
 
-void setting_accessibility_universal_switch_settings_set_value_switch_item_add(SettingAccessibility *ad, const char *caption, int id, bool state)
+void setting_accessibility_universal_switch_settings_set_value_switch_item_add(SettingAccessibility *ad, const char *caption, const char *sub_desc,
+       int id, bool state, setting_call_back_func gl_sel)
 {
        SETTING_TRACE_BEGIN;
        retm_if(ad == NULL, "Input parameter is NULL");
 
-       Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(ad->set_value_layout.genlist, &itc_1text_1icon_3,
-                       NULL, NULL,
+       Setting_GenGroupItem_Data *item = setting_create_Gendial_field_def(ad->set_value_layout.genlist, &ad->itc_multiline_sub,
+                       gl_sel, NULL,
                        SWALLOW_Type_1ICON_1RADIO, NULL, NULL, (int)state,
-                       caption, NULL,
+                       caption, sub_desc,
                        __switch_item_checkbox_cb);
 
        if (item) {
@@ -547,7 +548,7 @@ void setting_accessibility_universal_switch_settings_set_value_radio_item_add(Se
        SETTING_TRACE_END;
 }
 
-void setting_accessibility_universal_switch_settings_set_value_switch_item_with_subtext_add(SettingAccessibility *ad, const char *caption,
+void setting_accessibility_universal_switch_settings_set_value_remove_switch_item_add(SettingAccessibility *ad, const char *caption,
                                                                                                                                                                                        const char *subtext, int id, bool state)
 {
        SETTING_TRACE_BEGIN;
index 0e24c2665596d4df935cc25584dc58f314f8da96..b723a9e23f1dbe5b41d68cbb156dbc4c36e97a25 100755 (executable)
 #define DEFAULT_FEEDBACK_VOICE_STATE false;
 #define DEFAULT_FEEDBACK_VOICE_SPEECH_RATE 50
 #define DEFAULT_FEEDBACK_VOICE_SPEECH_VOLUME 50
-#define DEFAULT_MANAGE_ACTIONS true
-#define DEFAULT_MANAGE_SETTINGS true
-#define DEFAULT_MANAGE_HOMESCREEN true
-#define DEFAULT_MANAGE_KEYS true
-#define DEFAULT_MANAGE_EDITTEXT true
+#define DEFAULT_MANAGE_OPTIONS_VALUE true
 
 typedef enum {VOICE_FEEDBACK_SPEECH_RATE, VOICE_FEEDBACK_VOLUME} voice_feedback_type_t;
 
@@ -116,11 +112,25 @@ static key_id_pair_t _media_level[MEDIA_LEVEL_COUNT] = {
 };
 
 static key_id_pair_t _manage_options[MANAGE_OPTIONS_COUNT] = {
-       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_ACTIONS, .id = MANAGE_OPT_ACTIONS, },
-       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SETTINGS, .id = MANAGE_OPT_SETTINGS, },
-       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOMESCREEN, .id = MANAGE_OPT_HOMESCREEN, },
-       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_KEYS, .id = MANAGE_OPT_KEYS, },
-       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_EDITTEXT, .id = MANAGE_OPT_EDITTEXT, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_GESTURES, .id = MANAGE_GESTURES, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_ACTIONS, .id = MANAGE_ACTIONS, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_SETTINGS, .id = MANAGE_SETTINGS, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_RECENT_APPS, .id = MANAGE_RECENT_APPS, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_HOME_SCREEN, .id = MANAGE_HOME_SCREEN, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BACK, .id = MANAGE_BACK, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_BUTTONS_AND_KEYS, .id = MANAGE_BUTTONS_AND_KEYS, },
+       { .key = DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU, .id = MANAGE_CONTEXTUAL_MENU, },
+};
+
+static const char *_manage_options_key_array[] = {
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_GESTURES,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_ACTIONS,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_RECENT_APPS,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_BACK,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS,
+               VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_CONTEXTUAL_MENU
 };
 
 static void __update_switches_count(SettingAccessibility *ad);
@@ -1123,29 +1133,27 @@ static void __manage_options_checkbox_cb(SettingAccessibility *ad, int item_id,
        SETTING_TRACE_BEGIN;
        retm_if(ad == NULL, "Input parameter is NULL");
        retm_if(item_id < 0 || item_id >= MANAGE_OPTIONS_COUNT, "Invalid item ID.");
+       ad->manage_options_state[item_id] = state;
+       __update_vconf_value(_manage_options_key_array[item_id], &state, NULL, NULL);
+       SETTING_TRACE_END;
+}
 
-       switch (item_id) {
-       case MANAGE_OPT_ACTIONS:
-               __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_ACTIONS, &state, NULL, NULL);
-               break;
-       case MANAGE_OPT_SETTINGS:
-               __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS, &state, NULL, NULL);
-               break;
-       case MANAGE_OPT_HOMESCREEN:
-               __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN, &state, NULL, NULL);
-               break;
-       case MANAGE_OPT_KEYS:
-               __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS, &state, NULL, NULL);
-               break;
-       case MANAGE_OPT_EDITTEXT:
-               __update_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_EDITTEXT, &state, NULL, NULL);
-               break;
-       default:
-               SETTING_TRACE_DEBUG("Undefined option id.");
-       }
+static void __manage_options_item_selected(void *data, Evas_Object *obj, void *event_info)
+{
+       SETTING_TRACE_BEGIN;
+       retm_if(event_info == NULL, "Invalid argument: event_info is NULL");
 
-       ad->manage_options_state[item_id] = state;
+       Elm_Object_Item *item = (Elm_Object_Item *)event_info;
+       elm_genlist_item_selected_set(item, EINA_FALSE);
+
+       Setting_GenGroupItem_Data *list_item = elm_object_item_data_get(item);
+       setting_retm_if(list_item == NULL, "Data parameter is NULL");
 
+       SettingAccessibility *ad = list_item->userdata;
+       list_item->chk_status = ad->manage_options_state[list_item->chk_id] ? 1 : 0;
+       setting_update_gl_item_chk_status(list_item, list_item->chk_status ? 0 : 1);
+
+       __manage_options_checkbox_cb(ad, list_item->chk_id, list_item->chk_status);
        SETTING_TRACE_END;
 }
 
@@ -1160,7 +1168,9 @@ static void __manage_options_cb(void *data, Evas_Object *obj, void *event_info)
        setting_accessibility_universal_switch_settings_set_value_page_create(ad, VT_SWITCHES, _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE));
 
        for (i = 0; i < MANAGE_OPTIONS_COUNT; i++)
-               setting_accessibility_universal_switch_settings_set_value_switch_item_add(ad, _manage_options[i].key, _manage_options[i].id, ad->manage_options_state[i]);
+               setting_accessibility_universal_switch_settings_set_value_switch_item_add(ad, _manage_options[i].key,
+                       (i == MANAGE_OPTIONS_COUNT - 1) ? DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_GROUP_MANAGE_CONTEXTUAL_MENU_DESC : NULL,
+                       _manage_options[i].id, ad->manage_options_state[i], __manage_options_item_selected);
 
        setting_accessibility_universal_switch_settings_set_value_add_switch_item_change_cb(ad, __manage_options_checkbox_cb);
 
@@ -1253,6 +1263,7 @@ static void __get_vconf_settings(SettingAccessibility *ad)
 {
        SETTING_TRACE_BEGIN;
        retm_if(ad == NULL, "Input argument is NULL");
+       int ii;
 
        /* Defaults setting */
        ad->auto_scan = DEFAULT_AUTO_SCAN;
@@ -1278,11 +1289,8 @@ static void __get_vconf_settings(SettingAccessibility *ad)
        ad->feedback_voice_state = DEFAULT_FEEDBACK_VOICE_STATE;
        ad->feedback_voice_speech_rate = DEFAULT_FEEDBACK_VOICE_SPEECH_RATE;
        ad->feedback_voice_speech_volume = DEFAULT_FEEDBACK_VOICE_SPEECH_VOLUME;
-       ad->manage_options_state[MANAGE_OPT_ACTIONS] = DEFAULT_MANAGE_ACTIONS;
-       ad->manage_options_state[MANAGE_OPT_SETTINGS] = DEFAULT_MANAGE_SETTINGS;
-       ad->manage_options_state[MANAGE_OPT_HOMESCREEN] = DEFAULT_MANAGE_HOMESCREEN;
-       ad->manage_options_state[MANAGE_OPT_KEYS] = DEFAULT_MANAGE_KEYS;
-       ad->manage_options_state[MANAGE_OPT_EDITTEXT] = DEFAULT_MANAGE_EDITTEXT;
+       for (ii = 0; ii < MANAGE_OPTIONS_COUNT; ++ii)
+               ad->manage_options_state[ii] = DEFAULT_MANAGE_OPTIONS_VALUE;
 
        __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_ENABLED, &ad->auto_scan, NULL, NULL);
        __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_SCAN_INT, NULL, NULL, &ad->auto_scan_interval);
@@ -1302,17 +1310,13 @@ static void __get_vconf_settings(SettingAccessibility *ad)
        __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_MOVE_INT_VALUE, NULL, NULL, &ad->auto_move_int_value);
        __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_AUTO_TAP_KBD_STATE, &ad->auto_tap_kbd_state, NULL, NULL);
        __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_CURSOR_COLOR, NULL, &ad->cursor_color, NULL);
+       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, &ad->feedback_voice_state, NULL, NULL);
        __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_STATE, &ad->feedback_sound_state, NULL, NULL);
        ad->feedback_sound_volume = __get_and_convert_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_SOUND_VOLUME);
-       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_STATE, &ad->feedback_voice_state, NULL, NULL);
        ad->feedback_voice_speech_rate = __get_and_convert_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_RATE);
        ad->feedback_voice_speech_volume = __get_and_convert_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_FEEDBACK_VOICE_SPEECH_VOLUME);
-       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_ACTIONS, &ad->manage_options_state[MANAGE_OPT_ACTIONS], NULL, NULL);
-       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_SETTINGS, &ad->manage_options_state[MANAGE_OPT_SETTINGS], NULL, NULL);
-       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_HOMESCREEN, &ad->manage_options_state[MANAGE_OPT_HOMESCREEN], NULL, NULL);
-       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_KEYS, &ad->manage_options_state[MANAGE_OPT_KEYS], NULL, NULL);
-       __get_vconf_value(VCONFKEY_SETAPPL_ACCESSIBILITY_UNIVERSAL_SWITCH_SETTINGS_MANAGE_EDITTEXT, &ad->manage_options_state[MANAGE_OPT_EDITTEXT], NULL, NULL);
-
+       for (ii = 0; ii < MANAGE_OPTIONS_COUNT; ++ii)
+               __get_vconf_value(_manage_options_key_array[ii], &ad->manage_options_state[ii], NULL, NULL);
        SETTING_TRACE_END;
 }
 
@@ -1328,7 +1332,7 @@ static Setting_GenGroupItem_Data *__add_menu_item(SettingAccessibility *ad, Evas
        if (chk)
                item_type = SWALLOW_Type_1ICON_1RADIO;
 
-       item =  setting_create_Gendial_field_def(genlist, &itc_2text_1icon_3,
+       item =  setting_create_Gendial_field_def(genlist, &ad->itc_multiline_sub,
                        item_cb, ad,
                        item_type, NULL, NULL, (int)chk_state,
                        main_text, sub_text,
index a14320c87b220535b27d5fbb019f9c733997f7eb..9158e4f5b2280ed4a157a2b2ef260592c5b5d382 100644 (file)
@@ -298,11 +298,12 @@ void setting_accessibility_universal_switch_page_create(SettingAccessibility *ad
        }
 
        ad->universal_switch_comment = setting_create_Gendial_field_def(
-                       genlist, &itc_multiline_text,
+                       genlist, &ad->itc_multiline_sub,
                        NULL, ad, SWALLOW_Type_INVALID, NULL,
                        NULL, 0,
+                       NULL,
                        _(DEVOPTION_STR_ACCESSIBILITY_UNIVERSAL_SWITCH_COMMENT),
-                       NULL, NULL);
+                       NULL);
 
        if (ad->universal_switch_comment) {
                ad->universal_switch_comment->userdata = ad;
index fc81a13962b30fe48894b342f5c9f25cec732591..e8e17b364c5c07f709f86428b1cba36718419226 100644 (file)
@@ -94,11 +94,42 @@ destroy_tts_handle(SettingAccessibility *ad)
                SETTING_TRACE_DEBUG("Fail to tts destroy");
 }
 
+static char *_universal_switch_gendial_new_text_get(void *data, Evas_Object *obj, const char *part)
+{
+       Setting_GenGroupItem_Data *item_data = data;
+       if (!safeStrCmp(item_data->itc, "multiline")) {
+               if (!safeStrCmp(part, "elm.text")) {
+                       if (item_data->keyStr) {
+                               return (char *)g_strdup(
+                                               _(item_data->keyStr));
+                       }
+               } else if (!safeStrCmp(part, "elm.text.multiline")) {
+                       if (item_data->sub_desc) {
+                               return (char *)g_strdup(
+                                               _(item_data->sub_desc));
+                       }
+               }
+       } else {
+               if (!safeStrCmp(part, "elm.text")) {
+                       if (item_data->keyStr) {
+                               return (char *)g_strdup(_(item_data->keyStr));
+                       }
+               } else if (!safeStrCmp(part, "elm.text.sub")) {
+                       if (item_data->sub_desc) {
+                               return (char *)g_strdup(_(item_data->sub_desc));
+                       }
+               }
+       }
+       return NULL;
+}
+
 static bool on_app_create(void *priv)
 {
        SETTING_TRACE_BEGIN;
        setting_retvm_if((NULL == priv), NULL, "NULL == priv");
        SettingAccessibility *ad = priv;
+       ad->itc_multiline_sub = itc_multiline_text;
+       ad->itc_multiline_sub.func.text_get = _universal_switch_gendial_new_text_get;
        int ret;
 
        setting_set_i18n(SETTING_PACKAGE, SETTING_LOCALEDIR);