tizen 2.3 release
[apps/home/settings.git] / include / setting.h
old mode 100755 (executable)
new mode 100644 (file)
index 29280ef..a6055b5
@@ -1,18 +1,22 @@
 /*
  * setting
- * Copyright (c) 2012 Samsung Electronics Co., Ltd.
  *
- * Licensed under the Flora License, Version 1.1 (the License);
+ * Copyright (c) 2000 - 2011 Samsung Electronics Co., Ltd.
+ *
+ * Contact: MyoungJune Park <mj2004.park@samsung.com>
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
  *
- *     http://floralicense.org/license/
+ * http://www.apache.org/licenses/LICENSE-2.0
  *
  * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an AS IS BASIS,
+ * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
+ *
  */
 /**
  *@defgroup setting-app
 #ifndef __SETTING_H__
 #define __SETTING_H__
 
-#include <setting-cfg.h>
-
-#include <setting-common-draw-widget.h>
 #include <setting-common-view.h>
+#include <setting-common-search.h>
+
+#define EXPORT_PUBLIC __attribute__ ((visibility ("default")))
 
 /*  TAPI*/
 #include <tapi_common.h>
 #include <ITapiModem.h>
 
-#include <sensors.h>
+#include <sensor.h>
+#include <notification.h>
+#include <account.h>
+#include <app_manager.h>
+#include <efl_assist.h>
+#include <dd-display.h>
+//#include <tethering.h>
+
+#define NETCONFIG_SERVICE                      "net.netconfig"
+#define NETCONFIG_WIFI_INTERFACE               NETCONFIG_SERVICE ".wifi"
+#define NETCONFIG_WIFI_PATH                    "/net/netconfig/wifi"
 
-#define EDIT_PREFERRED_STR "IDS_ST_BUTTON2_EDIT_PREFERRED"
-//#define PREFERRED_STR "IDS_ST_TAB_PREFERRED"
-#define PREFERRED_STR "IDS_ST_BODY_FREQUENTLY_USED"
-#define ALL_STR "IDS_ST_OPT_ALL"
-#define SETTING_MAX_PID_LEN 128
+#define FEATURE_UNAVALIABLE_WHILE_TTS_ON "IDS_SCR_POP_SCREEN_READER_IS_NOT_SUPPORTED_BY_PS_PRESS_THE_BACK_KEY_TO_RETURN_TO_THE_PREVIOUS_SCREEN"
 
-#define NO_UG_FOUND_MSG                        _("Unsupported menu")
+#define NO_UG_FOUND_MSG                        "IDS_MSGF_POP_UNSUPPORTED"
 #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"
-#define SETTING_WIFI_DIRECT_DESC "IDS_ST_BODY_SET_UP_PEER_TO_PEER_CONNECTIVITY_ABB"
+#define Kies_Caring_Str "IDS_KW_POP_BE_CAREFUL_WHEN_TRANSMITTING_INFORMATION_ON_AN_UNSECURED_WI_FI_NETWORK_MSG"
+#define Kies_Warrning_Str "IDS_USB_POP_UNABLE_TO_CONNECT_TO_KIES_VIA_WI_FI_WHEN_CONNECTED_TO_KIES_VIA_USB"
+
+#define _2_TAB_STR             Keystr_Connection
+#define _3_TAB_STR             KeyStr_Device
+#define _4_TAB_STR             KeyStr_MotionControl /**/
+#define _5_TAB_STR             "IDS_ST_BODY_GENERAL"
+#define _6_TAB_STR             KeyStr_DownloadedAPPs
+
+#define LIST_VIEW "IDS_CLD_BUTTON_LIST_VIEW"
+#define GRID_VIEW "IDS_ST_BODY_GRID_VIEW"
+#define TAB_VIEW "IDS_ST_OPT_TAB_VIEW"
+#define EDIT_VIEW "IDS_ST_OPT_EDIT_QUICK_SETTINGS"
+
+
+#define Keystr_Apps                    "IDS_ST_BODY_APPLICATION_SETTINGS"
+#define Keystr_All                     "IDS_ST_OPT_ALL"
+#define Keystr_MostUsed                "IDS_ST_TZTAB4_MOST_USED_M_APP"
+#define Keystr_Connection      "IDS_ST_BODY_CONNECTION"
+#define Keystr_Device          "IDS_ST_BODY_DEVICE"
+#define Keystr_General         "IDS_ST_BODY_GENERAL"
+
+
+#define USER_DEFINED_SETTING_STR "IDS_ST_HEADER_USER_SETTINGS_ABB"
+#define FREQUENTLY_SETTING_STR "IDS_ST_BODY_FREQUENTLY_USED"
+#define EMPTY_STR "IDS_ST_BODY_EMPTY"
+
+#define ENABLE_FLIGHT_MODE_MSG "IDS_ST_BODY_FLIGHT_MODE_MSG"
 
 /**
-* @brief
-*/
+ * @brief
+ */
+typedef enum _Setting_Tab_View_Type {
+       SETTING_TAB_VIEW_INVALID = -1,
+       SETTING_TAB_VIEW_QUICK_SETTINGS = 0,
+       SETTING_TAB_VIEW_CONNECTION = 1,
+       SETTING_TAB_VIEW_DEVICE = 2,
+       SETTING_TAB_VIEW_CONTROL = 3,
+       SETTING_TAB_VIEW_GENERAL = 4,
+       SETTING_TAB_VIEW_APPS = 5,
+       SETTING_TAB_VIEW_MAX,
+} Setting_Tab_View_Type;
+
 typedef enum _setting_view_type {
-       SETTING_VIEW_MAIN = 0,
-       SETTING_VIEW_CONNECTIVE_MORE,
-       SETTING_VIEW_SYSTEM_MORE,
-       SETTING_VIEW_ALL_CHECK = 9,
-} Setting_View_Type;
+       SETTING_INVALID_VIEW = -1,
+       SETTING_LIST_VIEW = 0,
+       SETTING_GRID_VIEW = 1,
+       SETTING_TAB_VIEW = 2,
+       SETTING_EDIT_VIEW = 3,
+       SETTING_MAX,
+} setting_view_type;
+
 
 typedef void (*menu_list_load_fn) (void *data);
 typedef void (*menu_list_load_fn2) (void *, Cfg_Item_Position, Evas_Object *);
 
-typedef enum _List_Load_Func_Type {
+#define MAX_GROUP_NUM_IN_VIEW 10
+
+#if 1
+/* 2 - order of Connection Tab list */
+typedef enum _List_Load_Connection_Func_Type {
        Func_Type_Connectivity = 0,
-       Func_Type_System = 1,
-       Func_Type_Apps = 2,
-       Func_Type_DownApp = 3,
-       Func_Type_MAX
-} List_Load_Func_Type;
-
-typedef enum _MAIN_PROFILE_Type {
-       MAIN_PROFILE_PREFERRED = 0,
-       MAIN_PROFILE_ALL = 1,
-       MAIN_PROFILE_MAX
-} MAIN_PROFILE_Type;
+       Func_Type_ShareAndTransfer,
+       Func_Type_Connection_MAX
+} List_Load_Connection_Func_Type;
+
+typedef enum _List_Load_Display_Func_Type {
+       Func_Type_Screen,
+       Func_Type_Others,
+       Func_Type_Display_MAX
+} List_Load_Display_Func_Type;
+
+typedef enum _List_Load_Device_Func_Type {
+       Func_Type_SoundDisplay,
+       Func_Type_Personal,
+       Func_Type_MotionControl,
+       Func_Type_Device_MAX
+} List_Load_Device_Func_Type;
+
+typedef enum _List_Load_General_Func_Type {
+       Func_Type_BackupOption,
+       Func_Type_System,
+       Func_Type_DownloadedApp,
+       Func_Type_General_MAX
+} List_Load_General_Func_Type;
+
+typedef enum _Top_Grid_Item_Type {
+       GRID_ITEM_WIFI = 0,
+       GRID_ITEM_DATAUSAGE,
+       GRID_ITEM_STORAGE,
+       GRID_ITEM_DISPLAY,
+       GRID_ITEM_SOUND,
+       GRID_ITEM_POWERSAVING,
+       GRID_ITEM_MAX
+} Top_Grid_Item_Type;
+#endif
 
 /**
  * enum for genlist item to be updated
@@ -79,93 +156,263 @@ typedef enum _Update_GL_Item_Type {
        GL_ITEM_WIFI = 0,
        GL_ITEM_BT,
        GL_ITEM_NFC,
+       GL_ITEM_SBEAM,
        GL_ITEM_MAP,
        GL_ITEM_USB,
 
        GL_ITEM_ROTATION,
        GL_ITEM_FLIGHT,
-
+       GL_ITEM_NETRESTRICTIONMODE,
+       GL_ITEM_DRIVING,
+       GL_ITEM_PWRSAVING,
+#if SUPPORT_BLOCKINGMODE
+       GL_ITEM_BLOCKING,
+#endif
+#if SUPPORT_GUESTMODE
+       GL_ITEM_GUEST,
+#endif
        GL_ITEM_MAX
 } Update_GL_Item_Type;
 
 typedef enum _FLIGHT_MODE_OPEARTION{
-       FM_INVALID = 0,//There is no request waiting for processing
-       FM_ENTER = 1,//Some "flightmode enter" request is waiting for processing
-       FM_LEAVE,//Some "flightmode leave" request is waiting for processing
+       FM_INVALID = 0, /*< There is no request waiting for processing */
+       FM_ENTER = 1,   /*< Some "flightmode enter" request is waiting for processing */
+       FM_LEAVE,               /*< Some "flightmode leave" request is waiting for processing */
 } FLIGHT_MODE_OPEARTION;
 
+#define IMG_CTRL_ICON_TOP                              SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_popular.png"
+#define IMG_CTRL_ICON_CONNECTION               SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_connection.png"
+#define IMG_CTRL_ICON_DISPLAY                  SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_device.png"
+#define IMG_CTRL_ICON_GENERAL                  SETTING_ICON_PATH_CFG"tap/A01-1_tap_icon_general.png"
+
+
+struct _GridItem
+{
+       const char* name;                               /**< name below the icon image  */
+       const char* icon_path;          /**< icon path (full path)              */
+       const char* ug_name;                    /**< UG name                                    */
+       void* data;                             /* app context pointer                  */
+       Elm_Object_Item *item;  /**< gengrid object item */
+};
+typedef struct _GridItem GridItem;
+
+#define MAX_GENGRID_TEXT_LEN 13
+#define MAX_GRID_NUM 12
+
+#define GRID_W_P 240
+#define GRID_H_P 208
+#define GRID_W_L 214
+#define GRID_H_L 195
+
+#define GRID_GROUP_H_P 81
+#define GRID_GROUP_H_L 56
 
 #define MAX_MORE_MENU_NUM      6
+extern const char *fixed_grid_pref_key[];
+#define WIFI_LAST_ON_OFF_STATE "PREFKEY_WIFI_ON_OFF"
+#define PREFKEY_VIEW_TYPE "PREFKEY_VIEW_TYPE"
+#define PREFKEY_TAB_VIEW_TAB "PREFKEY_TAB_VIEW_TAB"
+
+enum {
+       OP_WIFI_TURNING_INVALID = 0x00,
+       OP_WIFI_TURNING_OFF,
+       OP_WIFI_TURNING_ON,
+};
+
+//driving mode
+#define PREFKEY_SETTING_MAIN_DRIVING_MODE_ON_POPUP_REMINDER            "setting/main/driving_mode/on/popup_reminder"
+
+enum
+{
+       SC_All_List,
+       SC_All_Grid,
+       SC_Edit_List,
+       SC_Edit_Grid,
+
+       //to delete
+               SC_All,
+               SC_Top,
+       SC_Max
+}; //genlist or gengrid
+
+enum
+{
+       VIEW_All_List,
+       VIEW_All_List_Quick,
+       VIEW_All_Grid,//not used to access menus,just for groups(from GL_Group_QuickSettings to GL_Group_Apps)
+       VIEW_Common,
+       VIEW_Common_Quick,
+       VIEW_Max
+};
+
+
+enum
+{
+       GL_Joyn = 0,
+       GL_WiFi,
+       GL_BT,
+       GL_FlightMode,
+       GL_NetRestriction,
+       GL_MobileApp,
+       GL_Network,
+       GL_NearByDev,
+       GL_NFC,
+       GL_SBeam,
+       GL_Motion,
+       GL_PalmMotion,
+       GL_GuestMode,
+       GL_Bright,
+       GL_Backlight,
+       GL_Battery,
+       GL_MultiWin,
+       GL_BM,
+       GL_DM,
+       GL_PM,
+       GL_PersonalPage,
+       GL_TouchSens,
+       GL_TouchkeyLight,
+       GL_Landscape,
+       GL_BlockingMode,
+       GL_Screentone,
+       GL_Screenmode,
+
+       GL_Group_QuickSettings,
+       GL_Group_Connection,
+       //GL_Group_Share,
+       GL_Group_SoundDisplay,
+       GL_Group_Personal,
+       //GL_Group_MotionControl,
+       GL_Group_UserBackup,
+       GL_Group_System,
+       GL_Group_Apps,
+       GL_Max
+};
+
 /**
-* @brief main view context
-*/
+ * @brief main view context
+ */
 typedef struct _setting_main_appdata {
 
-       ui_gadget_h ug;
+       ui_gadget_h ug;                                         /**< ug */
+
        TapiHandle *handle;
        Evas_Object *popup;
-       Evas_Object *app_icon;
 
-       Eina_Bool bAppPause;
-       Eina_Bool updateItems[GL_ITEM_MAX];
+       Evas_Object* ly_editview;                       /**< Edit mode */
 
-       Ecore_Idler *refresh_idler;
+       Evas_Object *popup_kies_via_wifi;
+       Evas_Object *popup_wifi_mode;
+       Evas_Object *popup_flight_mode;
+       Evas_Object *popup_blocking_mode;
+       Evas_Object *popup_net_restriction_mode;
+       Evas_Object *popup_palmmotion_tts;
+       Evas_Object *popup_palmmotion_enable;
 
        Evas *evas;
        Evas_Object *win_main;
-       Evas_Object *controlbar;
-
-       //Evas_Object *controllbar_all_check;
-       Evas_Object *gl_sel_all;
 
-       menu_list_load_fn load_fns[Func_Type_MAX];
-       MAIN_PROFILE_Type profile_type;
+       menu_list_load_fn load_fns[SETTING_TAB_VIEW_MAX][MAX_GROUP_NUM_IN_VIEW]; /**< */
 
        Evas_Object *navibar_main;
+       Elm_Object_Item *main_navi_it;
 
        Evas_Object *ly_main;                   /**< seting view main */
-       Setting_View_Type view_load;
-       Evas_Object *genlist_load;
+       Evas_Object *gengrid;
+       Evas_Object *sc_gl[SC_Max];             /**< genlist array */
+       Evas_Object *sc_gg[SC_Max];             /**< gengrid array */
 
-       Elm_Object_Item *edit_item;
-       Elm_Object_Item *segment_all;
-       Elm_Object_Item *segment_preferred;
+       Setting_GenGroupItem_Data *gl_data_item[VIEW_Max][GL_Max];
+       Setting_GenGroupItem_Data *edit_group_item[GL_Max-GL_Group_QuickSettings];
 
-       bool isInUGMode;
+       bool isInUGMode;                                /**< set TRUE when UG is running */
 
-       /* vars for flightmode */
-       bool b_fm_requesting;//whether some request is processing. 1:yes, 0:no
+       /**
+        * vars for flightmode
+        */
+       bool b_fm_requesting; /**< whether some request is processing. 1:yes, 0:no */
        FLIGHT_MODE_OPEARTION fm_waiting_op;
 
-
        /* special layout */
+       Setting_GenGroupItem_Data *data_joyn;
        Setting_GenGroupItem_Data *data_flight;
+       Setting_GenGroupItem_Data *data_multi_window;
+       Setting_GenGroupItem_Data *data_netrestrictionmode;
        Setting_GenGroupItem_Data *data_wifi;
        Setting_GenGroupItem_Data *data_bt;
-       Setting_GenGroupItem_Data *data_rotationMode;
+       Setting_GenGroupItem_Data *data_mobileApp;
 
        Setting_GenGroupItem_Data *data_bright;
+       Setting_GenGroupItem_Data *data_backlight;
+       Setting_GenGroupItem_Data *data_battery;
+       Setting_GenGroupItem_Data *data_landscape;
+       Setting_GenGroupItem_Data *data_screentone;
+       Setting_GenGroupItem_Data *data_screenmode;
+       Setting_GenGroupItem_Data *data_touchkey_light_duration;
+       Setting_GenGroupItem_Data *data_powersaving;
+       Setting_GenGroupItem_Data *data_driving;
+       Setting_GenGroupItem_Data *data_blocking;
+       Setting_GenGroupItem_Data *data_personalpage;
+       Setting_GenGroupItem_Data *data_guest;
+       Setting_GenGroupItem_Data *data_high_touch_sensitivity;
 
        Setting_GenGroupItem_Data *data_moreSystem;
        Setting_GenGroupItem_Data *data_moreConnect;
        Setting_GenGroupItem_Data *data_nfc;
-
+       Setting_GenGroupItem_Data *data_sbeam;
+       Setting_GenGroupItem_Data *data_motion;
+       Setting_GenGroupItem_Data *data_palmmotion;
+       Setting_GenGroupItem_Data *data_nearby_devices;
        //following are not for update..
        Setting_GenGroupItem_Data *data_network;
 
-       Setting_View_Type view_type;
+       //top
+       Setting_GenGroupItem_Data *data_fixed_gengrid_portrait;
+
+       Setting_GenGroupItem_Data *data_fixed_gengrid_landscape;
+
+       Setting_GenGroupItem_Data *data_frequently_portrait;            // genlist item
+       Setting_GenGroupItem_Data *data_frequently_landscape;           // genlist item
+
+       Setting_GenGroupItem_Data *data_frequently_used_portrait;       // title
+       Setting_GenGroupItem_Data *data_frequently_used_landscape;      // title
+
+       Setting_GenGroupItem_Data *data_recently_portrait;
+       Setting_GenGroupItem_Data *data_recently_landscape;
+       Setting_GenGroupItem_Data *data_recently_used_portrait;
+       Setting_GenGroupItem_Data *data_recently_used_landscape;
+
+       ListItemObject *data_no_result;
+
+       //---------------------------------------------------------------
+
+       Setting_Tab_View_Type view_type;
+       Setting_Tab_View_Type select_tab_type;
+       setting_view_type list_type;
+       Evas_Object* ly_select_tab;
+       Evas_Object *select_sub_view[SETTING_TAB_VIEW_MAX];
+       GridItem* select_edit_mode_item;
+       Evas_Object* edit_genlist;
+       Evas_Object* edit_gengrid;
+       Eina_List *edit_sel_list;
+       Elm_Object_Item *edit_navi_it;
+       Elm_Object_Item *select_ctrl_item[3];
 
        Evas_Object *main_genlist;                              /**< 'Setting main' in main page */
-       Evas_Object *edit_preferred_genlist;    /**< 'Edit preferred' page */
 
        Elm_Genlist_Item_Class itc[GENDIAL_Type_MAX];
+       Elm_Genlist_Item_Class itc_no_reult;
 
-       Eina_List *item_check_list;                                /**< in preferred view, store the selected items in the list.  */
        Setting_GenGroupItem_Data *check_all_item; /**< genlist node for "Select all" */
 
-       Evas_Object *flight_popup;
        Evas_Object *data_roaming_popup;
 
+       //driving mode
+       Evas_Object *driving_mode_popup;
+       Evas_Object *driving_mode_popup_chk;
+
+       // Personal page
+       char *personal_data;
+
        // listen / unlisten code
        Eina_List *listened_list;
        sensor_h sf_handle;
@@ -173,21 +420,111 @@ typedef struct _setting_main_appdata {
        const char *more_connective_menus[MAX_MORE_MENU_NUM];
        const char *more_system_menus[MAX_MORE_MENU_NUM];
 
-       char* plugin_path;
-       void* plugin_node;
-       char* view_to_jump;
-       char cur_loaded_ug[MAX_DISPLAY_NAME_LEN_ON_UI];
-
+       Evas_Object *webkit;
        Evas_Object *conform;
 
+       // NEW UX ---------------------------------------------------
+       Elm_Object_Item *ctrl_item[SETTING_TAB_VIEW_MAX];  // 0:Grid, 1:General 2:Applications
+       Evas_Object *sub_view[SETTING_TAB_VIEW_MAX];       // 0:Grid, 1:General 2:Applications
+       Evas_Object* view_layout;       // view layout
+       Evas_Object *ctrl_bar;
+
+       Eina_Bool click_flag;
+       Elm_Gengrid_Item_Class *gic;
+       Elm_Gengrid_Item_Class groupic;
+       Elm_Gengrid_Item_Class editGic;
+       Ecore_Timer *save_idler;
+
+       Ecore_Timer *update_idler;
+
+       Ecore_Timer *bt_timer;
+       Ecore_Timer *nfc_timer;
+       Ecore_Timer *wifi_timer;
+       Ecore_Idler *update_font_idler;
+       Ecore_Timer *dashboard_timer;
        int current_rotation;
+       int noti_id;
+       int driving_noti_id;
+       int flight_noti_id;
+       // ----------------------------------------------------------
+
+       Ecore_Timer *event_freeze_timer;
+
+       // FEATURE : setting search
+       // ly_topview
+       // search app
+       Evas_Object* ly_topview;
+       Evas_Object *search_genlist;
+       int search_count;
+       int cur_count;
+       ListItemObject *search_selected_item_data;
+
+       account_subscribe_h account_subscribe_handle;
+       Evas_Object *search_bar;
+       char search_text[512 + 1];
+       char current_search_text[512+1];
+       Ecore_Idler *search_idler;
+       Eina_Bool nfc_try_activate_running;
+
+       Elm_Object_Item *grid_item[6];
+
+       bundle* b;
+       int wifi_op;
+
+       Cfg_Item_Type is_searchmode;
+
+       Setting_GenGroupItem_Data *data_temp;
+
+       //cis-panel
+       Evas_Object *cis_left_panel;
+       Evas_Object *cis_left_panel_list;
+
+       bool    cis_style_gengrid;
+       Evas_Object *current_gengrid;
+
+       Elm_Genlist_Item_Class itc_expand_grid;
+       int scrl_type;
+
+    Ea_Theme_Color_Table *theme_table;
+
+       Eina_Hash *main_list_hash;
+
 } setting_main_appdata;
+extern setting_main_appdata *g_main_ad;
+extern const char *menu_group[];
 
 /* launch view */
 extern setting_view setting_view_main;
-extern setting_view setting_view_more_menu;
-extern void __load_connectivity_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
-extern void __load_system_menu_list(void *data, Cfg_Item_Position inputPos, Evas_Object *genlist);
+extern setting_view setting_view_edit_mode;
+
 extern void __gl_realized(void *data, Evas_Object *obj, void *event_info);
+extern void setting_main_refresh_topview_list(void *data);
+
+extern Evas_Object *__get_top_list(void *data);
+extern void setting_main_click_list_ex_ug_cb(void *data, Evas_Object *obj, void *event_info);
+extern GridItem *__main_grid_item_append(Evas_Object *gengrid, const Elm_Genlist_Item_Class *itc,
+                                       setting_call_back_func gl_sel, const char *key_name,
+                                       const char *icon_path, const char *ug_name,
+                                       void *data);
+extern Eina_Bool __save_timer(void *data);
+
+typedef Setting_GenGroupItem_Data* (*UI_HANDLER)(void* data, char* title, char* iconpath, char* ugname, Evas_Object *genlist, Elm_Object_Item *parent);
+
+
+typedef enum
+{
+       ERROR_STATE =-1,
+       DEFAULT_UI=0,
+       UI_PROC,
+       UG_HANDLE,
+} mainlist_entry_action_type;
+
+typedef struct _mainlist_entry {
+       char* title;
+       UI_HANDLER ui_handler;
+       mainlist_entry_action_type type;
+       //--------------------------------------------------
+       void* item_data;
+} mainlist_entry;
 
 #endif                         /* __SETTING_H__ */