From f80ee13e0a69f5d268170ff130a9ecd73c0c3eb0 Mon Sep 17 00:00:00 2001 From: Jing Yigang Date: Tue, 28 Aug 2012 11:26:11 +0800 Subject: [PATCH] Create sub-text of 'More connectivity' and 'More system' menu. Change-Id: I6eb546734c291448eb70d7df0454bc73a37374f0 --- include/setting.h | 11 ++++++++--- src/setting-main.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++--- src/setting.c | 30 ++++++++++++++++++++++++------ 3 files changed, 78 insertions(+), 12 deletions(-) diff --git a/include/setting.h b/include/setting.h index ca164c2..2f70de9 100755 --- a/include/setting.h +++ b/include/setting.h @@ -33,6 +33,7 @@ /* TAPI*/ #include #include + #include #define EDIT_PREFERRED_STR "IDS_ST_BUTTON2_EDIT_PREFERRED" @@ -42,8 +43,6 @@ #define SETTING_MAX_PID_LEN 128 #define NO_UG_FOUND_MSG _("Unsupported menu") -#define MORE_CONNECT_STR "IDS_ST_BODY_BLUETOOTH_USB_UTILITIES_ETC" -#define MORE_SYSTEM_STR "IDS_ST_BODY_DATE_AND_TIME_KEYBOARD_LICENCE_ETC" #define USB_NEED_OFF "Please turn USB tethering off first in Mobile hotspot" #define SETTING_NFC_DESC "IDS_ST_BODY_ALLOW_DATA_EXCHANGE_WHEN_DEVICE_TOUCHES_ANOTHER_DEVICE" @@ -100,6 +99,8 @@ typedef enum _FLIGHT_MODE_OPEARTION{ FM_LEAVE,//Some "flightmode leave" request is waiting for processing } FLIGHT_MODE_OPEARTION; + +#define MAX_MORE_MENU_NUM 6 /** * @brief main view context */ @@ -107,7 +108,7 @@ typedef struct _setting_main_appdata { ui_gadget_h ug; TapiHandle *handle; - + Eina_Bool bAppPause; Eina_Bool updateItems[GL_ITEM_MAX]; @@ -168,6 +169,10 @@ typedef struct _setting_main_appdata { Eina_List *listened_list; sensor_h sf_handle; + const char *more_connective_menus[MAX_MORE_MENU_NUM]; + const char *more_system_menus[MAX_MORE_MENU_NUM]; + + } setting_main_appdata; /* launch view */ diff --git a/src/setting-main.c b/src/setting-main.c index 05e6147..7241a60 100755 --- a/src/setting-main.c +++ b/src/setting-main.c @@ -574,6 +574,8 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_ KeyStr_Connectivity, NULL); } + int idx_second_menu = 0; + char *keyStr = NULL; char *icon_path = NULL; char *ug_args = NULL; @@ -591,7 +593,16 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_ ug_args = setting_cfg_get_ug_args_idx(i, j); icon_path = setting_cfg_get_icon_path_idx(i, j); /* SETTING_TRACE_DEBUG("Got an item[keyStr:%s, ug_args:%s, pos:%d]", */ - /* keyStr, ug_args, tmpPos); */ + /* keyStr, ug_args, tmpPos); */ + + if (idx_second_menu < MAX_MORE_MENU_NUM + && Cfg_Item_Pos_Level1 == tmpPos + && SETTING_VIEW_MAIN == ad->view_load + && MAIN_PROFILE_PREFERRED == ad->profile_type) { + + ad->more_connective_menus[idx_second_menu++] = keyStr; + } + if (Cfg_Item_Pos_Level_All == inputPos) { } else if (inputPos != tmpPos) { /* not in the inputPos level */ continue; @@ -639,6 +650,18 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_ #if SUPPORT_MORE_ITEM_FUNCTION if (SETTING_VIEW_MAIN == ad->view_load && MAIN_PROFILE_PREFERRED == ad->profile_type) { + char sub_text[MAX_COMMON_BUFFER_LEN] = {0, }; + int idx = 0; + while (idx < MAX_MORE_MENU_NUM && ad->more_connective_menus[idx]) + { + if (idx != 0) + { + safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN); + } + safeStrNCat(sub_text, _(ad->more_connective_menus[idx]), MAX_COMMON_BUFFER_LEN); + idx++; + } + ad->data_moreConnect = setting_create_Gendial_field_groupitem(ad->main_genlist, &(ad->itc[GENDIAL_Type_2text_3]), @@ -650,7 +673,7 @@ void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_ NULL, 0, KeyStr_MoreConnect, - _(MORE_CONNECT_STR), + sub_text, NULL); __BACK_POINTER_SET(ad->data_moreConnect); } @@ -684,6 +707,7 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object ELM_GENLIST_ITEM_NONE, KeyStr_System, NULL); } + int idx_second_menu = 0; char *keyStr = NULL; char *icon_path = NULL; @@ -707,6 +731,13 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object icon_path = setting_cfg_get_icon_path_idx(i, j); ug_args = setting_cfg_get_ug_args_idx(i, j); + if (idx_second_menu < MAX_MORE_MENU_NUM + && Cfg_Item_Pos_Level1 == tmpPos + && SETTING_VIEW_MAIN == ad->view_load + && MAIN_PROFILE_PREFERRED == ad->profile_type) { + ad->more_system_menus[idx_second_menu++] = keyStr; + } + //SETTING_TRACE("KeyString : %s , tmpPos : %d , inputPos : %d ", keyStr, tmpPos, inputPos ); if (Cfg_Item_Pos_Level_All == inputPos) { // do nothing @@ -780,6 +811,18 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object #if SUPPORT_MORE_ITEM_FUNCTION if (SETTING_VIEW_MAIN == ad->view_load && MAIN_PROFILE_PREFERRED == ad->profile_type) { + char sub_text[MAX_COMMON_BUFFER_LEN] = {0, }; + int idx = 0; + while (idx < MAX_MORE_MENU_NUM && ad->more_system_menus[idx]) + { + if (idx != 0) + { + safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN); + } + safeStrNCat(sub_text, _(ad->more_system_menus[idx]), MAX_COMMON_BUFFER_LEN); + idx++; + } + ad->data_moreSystem = setting_create_Gendial_field_groupitem(ad->main_genlist, &(ad->itc[GENDIAL_Type_2text_3]), @@ -791,7 +834,7 @@ void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object NULL, 0, KeyStr_MoreSystem, - _(MORE_SYSTEM_STR), + sub_text, NULL); __BACK_POINTER_SET(ad->data_moreSystem); } diff --git a/src/setting.c b/src/setting.c index f9e69a1..9aac66e 100755 --- a/src/setting.c +++ b/src/setting.c @@ -330,15 +330,33 @@ static int setting_main_lang_changed_cb(void *data) } if (ad->data_moreConnect) { - str = (char*)g_strdup(_(MORE_CONNECT_STR)); - if ( ! str) str = g_strdup("err"); - ad->data_moreConnect->sub_desc = str; + char sub_text[MAX_COMMON_BUFFER_LEN] = {0, }; + int idx = 0; + while (idx < MAX_MORE_MENU_NUM && ad->more_connective_menus[idx]) + { + if (idx != 0) + { + safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN); + } + safeStrNCat(sub_text, _(ad->more_connective_menus[idx]), MAX_COMMON_BUFFER_LEN); + idx++; + } + ad->data_moreConnect->sub_desc = g_strdup(sub_text); } if (ad->data_moreSystem) { - str = (char*)g_strdup(_(MORE_SYSTEM_STR)); - if ( ! str) str = g_strdup("err"); - ad->data_moreSystem->sub_desc = str; + char sub_text[MAX_COMMON_BUFFER_LEN] = {0, }; + int idx = 0; + while (idx < MAX_MORE_MENU_NUM && ad->more_system_menus[idx]) + { + if (idx != 0) + { + safeStrNCat(sub_text, ", ", MAX_COMMON_BUFFER_LEN); + } + safeStrNCat(sub_text, _(ad->more_system_menus[idx]), MAX_COMMON_BUFFER_LEN); + idx++; + } + ad->data_moreSystem->sub_desc = g_strdup(sub_text); } if (ad->main_genlist) elm_genlist_realized_items_update(ad->main_genlist); -- 2.7.4