CommonScreens.c
上传用户:lqx1163
上传日期:2014-08-13
资源大小:9183k
文件大小:247k
源码类别:

MTK

开发平台:

C/C++

  1.             MMI_TRUE,
  2.             MMI_FALSE);
  3. #if !defined(__MMI_TOUCH_SCREEN__)
  4.     postHandleInputMethodLSKFuncPtrs[i] = UI_dummy_function;
  5.     preHandleInputMethodLSKFuncPtrs[i++] = EntrySymbolPickerScreenFromMenuList;
  6. #endif /* !defined(__MMI_TOUCH_SCREEN__) */ 
  7.     currPreFuncPtr = preHandleInputMethodLSKFuncPtrs[index];
  8.     currPostFuncPtr = postHandleInputMethodLSKFuncPtrs[index];
  9.     if (currPreFuncPtr != NULL)
  10.     {
  11.         (*currPreFuncPtr) ();
  12.     }
  13.     if (currPostFuncPtr != NULL)
  14.     {
  15.         (*currPostFuncPtr) ();
  16.     }
  17.     /* MTK end */
  18. }
  19. /*****************************************************************************
  20.  * FUNCTION
  21.  *  RegisterInputMethodScreenCloseFunction
  22.  * DESCRIPTION
  23.  *  
  24.  * PARAMETERS
  25.  *  f       [IN]        
  26.  * RETURNS
  27.  *  void
  28.  *****************************************************************************/
  29. void RegisterInputMethodScreenCloseFunction(void (*f) (void))
  30. {
  31.     /*----------------------------------------------------------------*/
  32.     /* Local Variables                                                */
  33.     /*----------------------------------------------------------------*/
  34.     /*----------------------------------------------------------------*/
  35.     /* Code Body                                                      */
  36.     /*----------------------------------------------------------------*/
  37.     if (f != NULL)
  38.     {
  39.         InputMethodScreenCloseFunction = f;
  40.     }
  41. }
  42. /*****************************************************************************
  43.  * FUNCTION
  44.  *  InputMethodScreenHandleRSK
  45.  * DESCRIPTION
  46.  *  
  47.  * PARAMETERS
  48.  *  void
  49.  * RETURNS
  50.  *  void
  51.  *****************************************************************************/
  52. void InputMethodScreenHandleRSK(void)
  53. {
  54.     /*----------------------------------------------------------------*/
  55.     /* Local Variables                                                */
  56.     /*----------------------------------------------------------------*/
  57.     //SetSavedInputType();
  58.     //MTK Elvis 20031217---it is not required to set them to UI_dummy_function
  59.     //Issue:
  60.     //if set them to UI_dummy_function, will cause following issue:
  61.     //user cannot select desired input mode while entering input method menu list, pressing RSK-Back,
  62.     //and entering input method menu again.
  63.     //pressing RSK will reset following function pointers to be UI_dummy_function.
  64.     //Solution:
  65.     //The xxxchange_inputbox_modexxxx will be re-initialized in different editing screen, so it
  66.     //not required to set them to UI_dummy_function while pressing RSK-Back
  67. #if 0
  68. /* under construction !*/
  69. /* under construction !*/
  70. /* under construction !*/
  71. /* under construction !*/
  72. /* under construction !*/
  73.        #if defined(__MMI_T9__) || defined(__MMI_ZI__)
  74. /* under construction !*/
  75. /* under construction !*/
  76. /* under construction !*/
  77. /* under construction !*/
  78. /* under construction !*/
  79. /* under construction !*/
  80. /* under construction !*/
  81. /* under construction !*/
  82. /* under construction !*/
  83. /* under construction !*/
  84.        #endif
  85. /* under construction !*/
  86. #endif /* 0 */ 
  87.     /*----------------------------------------------------------------*/
  88.     /* Code Body                                                      */
  89.     /*----------------------------------------------------------------*/
  90.     GoBackHistory();
  91. }
  92. extern void handle_inline_full_screen_edit_complete(void);
  93. extern void handle_inline_full_screen_edit_cancel(void);
  94. extern wgui_inline_item *current_wgui_inline_item;
  95. extern S32 wgui_n_inline_items;
  96. extern S32 wgui_inline_item_highlighted_index;
  97. /*****************************************************************************
  98.  * FUNCTION
  99.  *  ConfirmInlineFullScreenEdit
  100.  * DESCRIPTION
  101.  *  
  102.  * PARAMETERS
  103.  *  void
  104.  * RETURNS
  105.  *  void
  106.  *****************************************************************************/
  107. void ConfirmInlineFullScreenEdit(void)
  108. {
  109.     /*----------------------------------------------------------------*/
  110.     /* Local Variables                                                */
  111.     /*----------------------------------------------------------------*/
  112.     /*----------------------------------------------------------------*/
  113.     /* Code Body                                                      */
  114.     /*----------------------------------------------------------------*/
  115. #if(UI_DOUBLE_BUFFER_SUPPORT)
  116.     gui_lock_double_buffer();
  117. #endif 
  118.     if ((current_wgui_inline_item == NULL) || (wgui_n_inline_items <= 0))
  119.     {
  120.         GoBackHistory();
  121.     }
  122.     handle_inline_full_screen_edit_complete();
  123. #if(UI_DOUBLE_BUFFER_SUPPORT)
  124.     gui_unlock_double_buffer();
  125.     gui_BLT_double_buffer(0, 0, UI_device_width - 1, UI_device_height - 1);
  126. #endif /* (UI_DOUBLE_BUFFER_SUPPORT) */ 
  127. }
  128. /*****************************************************************************
  129.  * FUNCTION
  130.  *  CancelInlineFullScreenEdit
  131.  * DESCRIPTION
  132.  *  
  133.  * PARAMETERS
  134.  *  void
  135.  * RETURNS
  136.  *  void
  137.  *****************************************************************************/
  138. void CancelInlineFullScreenEdit(void)
  139. {
  140.     /*----------------------------------------------------------------*/
  141.     /* Local Variables                                                */
  142.     /*----------------------------------------------------------------*/
  143.     /*----------------------------------------------------------------*/
  144.     /* Code Body                                                      */
  145.     /*----------------------------------------------------------------*/
  146. #if(UI_DOUBLE_BUFFER_SUPPORT)
  147.     gui_lock_double_buffer();
  148. #endif 
  149.     if ((current_wgui_inline_item == NULL) || (wgui_n_inline_items <= 0))
  150.     {
  151.         GoBackHistory();
  152.     }
  153. #if(UI_DOUBLE_BUFFER_SUPPORT)
  154.     gui_unlock_double_buffer();
  155. #endif 
  156.     handle_inline_full_screen_edit_cancel();
  157. }
  158. /*****************************************************************************
  159.  * FUNCTION
  160.  *  EntryAPRequiredInputMethodScreen
  161.  * DESCRIPTION
  162.  *  
  163.  * PARAMETERS
  164.  *  void
  165.  * RETURNS
  166.  *  void
  167.  *****************************************************************************/
  168. void EntryAPRequiredInputMethodScreen(void)
  169. {
  170.     /*----------------------------------------------------------------*/
  171.     /* Local Variables                                                */
  172.     /*----------------------------------------------------------------*/
  173.     U8 *guiBuffer;
  174.     U16 nNumofItem = 0;
  175.     U16 p = 0, q = 0;
  176.     U16 nStrItemList[INPUT_MODE_MAX_NUM];
  177.     /*----------------------------------------------------------------*/
  178.     /* Code Body                                                      */
  179.     /*----------------------------------------------------------------*/
  180.     void (*LSK_handler) (void);
  181.     /* ExecuteCurrExitHandler(); */
  182.     EntryNewScreen(SCR_AP_REQUIRED_INPUT_METHOD_LIST, ExitAPRequiredInputMethodScreen, NULL, NULL);
  183.     while (1)
  184.     {
  185.         if (MMI_AP_required_input_mode_set[p] == gIMEModeArray[q].IME_Mode_ID)
  186.         {
  187.             nStrItemList[nNumofItem] = gIMEModeArray[q].Common_Screen_StringID;
  188.             nNumofItem++;
  189.             if (MMI_AP_required_input_mode_set[p + 1] == -1)
  190.             {
  191.                 break;
  192.             }
  193.             p++;
  194.             q = 0;
  195.         }
  196.         else
  197.         {
  198.             q++;
  199.             if (q > INPUT_MODE_MAX_NUM + 1)
  200.             {
  201.                 if (MMI_AP_required_input_mode_set[p] == -1 || MMI_AP_required_input_mode_set[p + 1] == -1)
  202.                 {
  203.                     break;
  204.                 }
  205.                 p++;
  206.                 q = 0;
  207.             }
  208.         }
  209.     }
  210. #if !defined(__MMI_TOUCH_SCREEN__)
  211.     nStrItemList[nNumofItem] = STR_INPUT_METHOD_MENU_INSERT_SYMBOLS;
  212.     nNumofItem++;
  213. #endif /* !defined(__MMI_TOUCH_SCREEN__) */ 
  214.     LSK_handler = APRequiredInputMethodScreenHandleLSK;
  215.     //MTK end
  216.     //START PMTFARHAD 20050224
  217.     //PMT START PERSIAN
  218. #if defined __MMI_LANG_HINDI__ && (defined __MMI_LANG_ARABIC__ || defined __MMI_LANG_PERSIAN__)
  219.     /* PMT END PERSIAN */
  220.     if (HINDI_PRESENT || ARABIC_PRESENT)
  221.     {
  222.         int Item_counter = 0;
  223.         int string_found = 0;
  224.         if (ARABIC_PRESENT)
  225.         {
  226.             while (Item_counter != nNumofItem)
  227.             {
  228.                 if (nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_MULTITAP_HINDI)
  229.                 {
  230.                     string_found = 1;
  231.                 }
  232.                 nStrItemList[Item_counter] = nStrItemList[Item_counter + string_found];
  233.                 Item_counter++;
  234.             }
  235.         }
  236.         else
  237.         {
  238.             while (Item_counter != nNumofItem)
  239.             {
  240.                 if (nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_SMART_ARABIC)
  241.                 {
  242.                     string_found = 1;
  243.                 }
  244.                 nStrItemList[Item_counter] = nStrItemList[Item_counter + string_found];
  245.                 Item_counter++;
  246.             }
  247.         }
  248.     }
  249. #endif /* defined __MMI_LANG_HINDI__ && (defined __MMI_LANG_ARABIC__ || defined __MMI_LANG_PERSIAN__) */ 
  250.     /* END PMTFARHAD  20050224 */
  251.     saved_MMI_current_input_type = MMI_current_input_type;
  252.     guiBuffer = GetCurrGuiBuffer(SCR_AP_REQUIRED_INPUT_METHOD_LIST);
  253.     if (guiBuffer != NULL)
  254.     {
  255.         InputMethodScreenCloseFunction = SavedInputMethodScreenCloseFunction;
  256.     }
  257.     ShowCategory15Screen(
  258.         STR_GLOBAL_INPUT_METHOD,
  259.         /* gInputMethodAndDoneCaptionIcon */ 0,
  260.         STR_GLOBAL_OK,
  261.         IMG_GLOBAL_OK,
  262.         STR_GLOBAL_BACK,
  263.         IMG_GLOBAL_BACK,
  264.         nNumofItem,
  265.         nStrItemList,
  266.         (PU16) gIndexIconsImageList,
  267.         LIST_MENU,
  268.         0,
  269.         guiBuffer);
  270.     SetLeftSoftkeyFunction(LSK_handler, KEY_EVENT_UP);
  271.     SetRightSoftkeyFunction(InputMethodScreenHandleRSK, KEY_EVENT_UP);
  272.     SetKeyHandler(LSK_handler, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
  273.     SetKeyHandler(InputMethodScreenHandleRSK, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
  274.     /* SetExitHandler(SCR_INPUT_METHOD_LIST, ExitInputMethodScreen); */
  275. }
  276. /*****************************************************************************
  277.  * FUNCTION
  278.  *  ExitAPRequiredInputMethodScreen
  279.  * DESCRIPTION
  280.  *  
  281.  * PARAMETERS
  282.  *  void
  283.  * RETURNS
  284.  *  void
  285.  *****************************************************************************/
  286. void ExitAPRequiredInputMethodScreen(void)
  287. {
  288.     /*----------------------------------------------------------------*/
  289.     /* Local Variables                                                */
  290.     /*----------------------------------------------------------------*/
  291.     history h;
  292.     S16 nHistory = 0;
  293.     /*----------------------------------------------------------------*/
  294.     /* Code Body                                                      */
  295.     /*----------------------------------------------------------------*/
  296.     SavedInputMethodScreenCloseFunction = InputMethodScreenCloseFunction;
  297.     //MTK Elvis 20031217---it is not required to set them to UI_dummy_function
  298.     //Issue:
  299.     //if set them to UI_dummy_function, will cause following issue:
  300.     //user cannot select desired input mode while entering input method menu list, pressing RSK-Back,
  301.     //and entering input method menu again.
  302.     //pressing RSK will reset following function pointers to be UI_dummy_function.
  303.     //Solution:
  304.     //The InputMethodScreenCloseFunction will be re-initialized in different editing screen, so it
  305.     //not required to set them to UI_dummy_function while pressing RSK-Back
  306. #if 0
  307. /* under construction !*/
  308. #endif /* 0 */ 
  309.     h.scrnID = SCR_AP_REQUIRED_INPUT_METHOD_LIST;
  310.     h.entryFuncPtr = EntryAPRequiredInputMethodScreen;
  311.     pfnUnicodeStrcpy((S8*) h.inputBuffer, (S8*) & nHistory);
  312.     GetCategoryHistory(h.guiBuffer);
  313.     AddHistory(h);
  314. }
  315. /*****************************************************************************
  316.  * FUNCTION
  317.  *  EntryInputMethodScreen
  318.  * DESCRIPTION
  319.  *  
  320.  * PARAMETERS
  321.  *  void
  322.  * RETURNS
  323.  *  void
  324.  *****************************************************************************/
  325. void EntryInputMethodScreen(void)
  326. {
  327.     /*----------------------------------------------------------------*/
  328.     /* Local Variables                                                */
  329.     /*----------------------------------------------------------------*/
  330.     U8 *guiBuffer;
  331.     U16 nNumofItem = 0, i = 0;
  332.     U16 nStrItemList[INPUT_MODE_MAX_NUM];
  333.     /*----------------------------------------------------------------*/
  334.     /* Code Body                                                      */
  335.     /*----------------------------------------------------------------*/
  336.     void (*LSK_handler) (void);
  337.     /* ExecuteCurrExitHandler(); */
  338.     EntryNewScreen(SCR_INPUT_METHOD_LIST, ExitInputMethodScreen, NULL, NULL);
  339.     if (MMI_english_input_mode_flag)    /* English only input methods menu     */
  340.     {
  341.         for (;;)
  342.         {
  343.             if (((0xff) != gIMEModeArray[i].IME_Mode_ID) && (0 != gIMEModeArray[i].Common_Screen_StringID))
  344.             {
  345.                 if (gIMEModeArray[i].English_Only_Flag)
  346.                 {
  347.                     if (!(mmi_is_alphanum_pass && 
  348.                          (gIMEModeArray[i].IME_Mode_ID == INPUT_MODE_SMART_UPPERCASE_ABC || 
  349.                           gIMEModeArray[i].IME_Mode_ID == INPUT_MODE_SMART_LOWERCASE_ABC))) /* smart ABC, abc is not allowed in INPUT_TYPE_ALPHANUMERIC_PASSWORD */
  350.                     {
  351.                         nStrItemList[nNumofItem] = gIMEModeArray[i].Common_Screen_StringID;
  352.                         nNumofItem++;
  353.                     }
  354.                     
  355.                 }
  356.             }
  357.             else
  358.             {
  359.                 break;
  360.             }
  361.             i++;
  362.         }
  363.     #if !defined(__MMI_TOUCH_SCREEN__)
  364.         nStrItemList[nNumofItem] = STR_INPUT_METHOD_MENU_INSERT_SYMBOLS;
  365.         nNumofItem++;
  366.     #endif /* !defined(__MMI_TOUCH_SCREEN__) */ 
  367.         LSK_handler = InputMethodScreenEnglishOnlyHandleLSK;
  368.     }
  369.     else    /* English-Chinese input methods menu  */
  370.     {
  371.         for (;;)
  372.         {
  373.             if ((0xff) != gIMEModeArray[i].IME_Mode_ID && (0 != gIMEModeArray[i].Common_Screen_StringID))
  374.             {
  375.                 if (!(mmi_is_alphanum_pass && 
  376.                       (gIMEModeArray[i].IME_Mode_ID == INPUT_MODE_SMART_UPPERCASE_ABC || 
  377.                        gIMEModeArray[i].IME_Mode_ID == INPUT_MODE_SMART_LOWERCASE_ABC))) /* smart ABC, abc is not allowed in INPUT_TYPE_ALPHANUMERIC_PASSWORD */
  378.                 {
  379.                     nStrItemList[nNumofItem] = gIMEModeArray[i].Common_Screen_StringID;
  380.                     nNumofItem++;    
  381.                 }
  382.             }
  383.             else
  384.             {
  385.                 break;
  386.             }
  387.             i++;
  388.         }
  389.     #if !defined(__MMI_TOUCH_SCREEN__)
  390.         nStrItemList[nNumofItem] = STR_INPUT_METHOD_MENU_INSERT_SYMBOLS;
  391.         nNumofItem++;
  392.     #endif /* !defined(__MMI_TOUCH_SCREEN__) */ 
  393.         LSK_handler = InputMethodScreenHandleLSK;
  394.     }
  395.     //MTK end
  396.     //PMT START PERSIAN
  397. #if defined (__MMI_LANG_HINDI__) && (defined (__MMI_LANG_ARABIC__) || defined (__MMI_LANG_PERSIAN__))
  398.     /* PMT END PERSIAN */
  399.     if (HINDI_PRESENT || ARABIC_PRESENT)
  400.     {
  401.         int Item_counter = 0;
  402.         int string_found = 0;
  403.         if (ARABIC_PRESENT)
  404.         {
  405.             while (Item_counter != nNumofItem)
  406.             {
  407.                 if (nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_MULTITAP_HINDI)
  408.                 {
  409.                     string_found = 1;
  410.                 }
  411.                 //PMT START PERSIAN
  412.                 else if ((nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_SMART_ARABIC) ||
  413.                          (nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_SMART_PERSIAN))
  414.                     /* PMT END PERSIAN */
  415.                 {
  416.                     string_found = 2;
  417.                 }
  418.                 /* PMT LANGUAGE END 20051221 */
  419.                 nStrItemList[Item_counter] = nStrItemList[Item_counter + string_found];
  420.                 Item_counter++;
  421.             }
  422.         }
  423.         /* PMT LANGUAGE START 20051221 */
  424.         else if (HINDI_PRESENT)
  425.         {
  426.             while (Item_counter != nNumofItem)
  427.             {
  428.                 /* PMT START PERSIAN */
  429.                 if ((nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_MULTITAP_ARABIC) ||
  430.                     (nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_MULTITAP_PERSIAN))
  431.                     /* PMT END PERSIAN */
  432.                 {
  433.                     string_found = 1;
  434.                 }
  435.                 else if (nStrItemList[Item_counter] == STR_INPUT_METHOD_MENU_MULTITAP_HINDI)
  436.                 {
  437.                     string_found = 2;
  438.                 }
  439.                 nStrItemList[Item_counter] = nStrItemList[Item_counter + string_found];
  440.                 Item_counter++;
  441.             }
  442.         }
  443.         /* PMT LANGUAGE END 20051221 */
  444.     }
  445. #endif /* defined (__MMI_LANG_HINDI__) && (defined (__MMI_LANG_ARABIC__) || defined (__MMI_LANG_PERSIAN__)) */ 
  446.     //PMT START PERSIAN
  447. #if defined (__MMI_LANG_HINDI__) && (defined (__MMI_LANG_ARABIC__) || defined (__MMI_LANG_PERSIAN__))
  448.     /* PMT END PERSIAN */
  449.     if (HINDI_PRESENT || ARABIC_PRESENT)
  450.     {
  451.         nNumofItem = nNumofItem - 2;
  452.     }
  453. #endif /* defined (__MMI_LANG_HINDI__) && (defined (__MMI_LANG_ARABIC__) || defined (__MMI_LANG_PERSIAN__)) */ 
  454.     /* PMT LANGUAGE END 20051221 */
  455.     saved_MMI_current_input_type = MMI_current_input_type;
  456.     guiBuffer = GetCurrGuiBuffer(SCR_INPUT_METHOD_LIST);
  457.     if (guiBuffer != NULL)
  458.     {
  459.         InputMethodScreenCloseFunction = SavedInputMethodScreenCloseFunction;
  460.     }
  461.     ShowCategory15Screen(
  462.         STR_GLOBAL_INPUT_METHOD,
  463.         /* gInputMethodAndDoneCaptionIcon */ 0,
  464.         STR_GLOBAL_OK,
  465.         IMG_GLOBAL_OK,
  466.         STR_GLOBAL_BACK,
  467.         IMG_GLOBAL_BACK,
  468.         nNumofItem,
  469.         nStrItemList,
  470.         (PU16) gIndexIconsImageList,
  471.         LIST_MENU,
  472.         0,
  473.         guiBuffer);
  474.     SetLeftSoftkeyFunction(LSK_handler, KEY_EVENT_UP);
  475.     SetRightSoftkeyFunction(InputMethodScreenHandleRSK, KEY_EVENT_UP);
  476.     SetKeyHandler(LSK_handler, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
  477.     SetKeyHandler(InputMethodScreenHandleRSK, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
  478.     /* SetExitHandler(SCR_INPUT_METHOD_LIST, ExitInputMethodScreen); */
  479. }
  480. /*****************************************************************************
  481.  * FUNCTION
  482.  *  ExitInputMethodScreen
  483.  * DESCRIPTION
  484.  *  
  485.  * PARAMETERS
  486.  *  void
  487.  * RETURNS
  488.  *  void
  489.  *****************************************************************************/
  490. void ExitInputMethodScreen(void)
  491. {
  492.     /*----------------------------------------------------------------*/
  493.     /* Local Variables                                                */
  494.     /*----------------------------------------------------------------*/
  495.     history h;
  496.     S16 nHistory = 0;
  497.     /*----------------------------------------------------------------*/
  498.     /* Code Body                                                      */
  499.     /*----------------------------------------------------------------*/
  500.     SavedInputMethodScreenCloseFunction = InputMethodScreenCloseFunction;
  501.     //MTK Elvis 20031217---it is not required to set them to UI_dummy_function
  502.     //Issue:
  503.     //if set them to UI_dummy_function, will cause following issue:
  504.     //user cannot select desired input mode while entering input method menu list, pressing RSK-Back,
  505.     //and entering input method menu again.
  506.     //pressing RSK will reset following function pointers to be UI_dummy_function.
  507.     //Solution:
  508.     //The InputMethodScreenCloseFunction will be re-initialized in different editing screen, so it
  509.     //not required to set them to UI_dummy_function while pressing RSK-Back
  510. #if 0
  511. /* under construction !*/
  512. #endif /* 0 */ 
  513.     h.scrnID = SCR_INPUT_METHOD_LIST;
  514.     h.entryFuncPtr = EntryInputMethodScreen;
  515.     pfnUnicodeStrcpy((S8*) h.inputBuffer, (S8*) & nHistory);
  516.     GetCategoryHistory(h.guiBuffer);
  517.     AddHistory(h);
  518. }
  519. /* __CUSTPACK_MULTIBIN     Terry   END */
  520. /* START VIJAY PMT 20050725 */
  521. #if defined(__MMI_MULTITAP_HINDI__)
  522. #define VOWEL_PICKER_MAX_HINDI_SYMBOLS       27
  523. #define VOWEL_PICKER_LF_INDEX             (VOWEL_PICKER_MAX_HINDI_SYMBOLS-1)
  524. #define VOWEL_PICKER_SPACE_INDEX          (VOWEL_PICKER_MAX_HINDI_SYMBOLS-2)
  525. #define IND_VOWEL_PICKER_MAX_HINDI_SYMBOL    15
  526. #define IND_VOWEL_PICKER_LF_INDEX            (IND_VOWEL_PICKER_MAX_HINDI_SYMBOL-1)
  527. #define IND_VOWEL_PICKER_SPACE_INDEX         (IND_VOWEL_PICKER_MAX_HINDI_SYMBOL-2)
  528. #endif /* defined(__MMI_MULTITAP_HINDI__) */ 
  529. /* END VIJAY PMT 20050725 */
  530. #define SYMBOL_PICKER_MAX_SYMBOLS            36
  531. #define SYMBOL_PICKER_LF_INDEX               35
  532. #define SYMBOL_PICKER_SPACE_INDEX            34
  533. #define SYMBOL_PICKER_MAX_CHINESE_SYMBOLS    28
  534. #define SYMBOL_PICKER_CHINESE_LF_INDEX       27
  535. #define SYMBOL_PICKER_CHINESE_SPACE_INDEX    26
  536. /* Begin AP Symbol table */
  537. U8 MMI_AP_No_Show_Symbol_List_flag = 0;
  538. U8 *MMI_AP_No_Show_Symbol_List[SYMBOL_PICKER_MAX_SYMBOLS];
  539. /* End AP Symbol table */
  540. const U8 *SymbolPickerSymbols[SYMBOL_PICKER_MAX_SYMBOLS] = 
  541. {
  542.     (U8 *) "x2e",
  543.     (U8 *) "x2c",
  544.     (U8 *) "?",
  545.     (U8 *) "!",
  546.     (U8 *) "'",
  547.     (U8 *) """,
  548.     (U8 *) "(",
  549.     (U8 *) ")",
  550.     (U8 *) "@",
  551.     (U8 *) "\",
  552.     (U8 *) "/",
  553.     (U8 *) ":",
  554.     (U8 *) "_",
  555.     (U8 *) ";",
  556.     (U8 *) "+",
  557.     (U8 *) "-",
  558.     (U8 *) "*",
  559.     (U8 *) "=",
  560.     (U8 *) "%",
  561.     (U8 *) "&",
  562.     (U8 *) "<",
  563.     (U8 *) ">",
  564.     (U8 *) "xa3",
  565.     (U8 *) "x24",
  566.     (U8 *) "xa5",
  567.     (U8 *) "xa7",
  568.     /* (U8*)"xa2", */
  569.     (U8 *) "xacx20",
  570.     (U8 *) "xa4",
  571.     (U8 *) "[",
  572.     (U8 *) "]",
  573.     (U8 *) "{",
  574.     (U8 *) "}",
  575.     (U8 *) "~",
  576.     (U8 *) "#",
  577.     (U8 *) " ",
  578.     (U8 *) "n",
  579.     /* (U8*)" ", */
  580. };
  581. /* START VIJAY PMT 20050725 */
  582. #if defined(__MMI_MULTITAP_HINDI__)
  583. const U8 *VowelPicker[VOWEL_PICKER_MAX_HINDI_SYMBOLS] = 
  584. {
  585.     (U8 *) "x05x09",
  586.     (U8 *) "x06x09",
  587.     (U8 *) "x07x09",
  588.     (U8 *) "x08x09",
  589.     (U8 *) "x09x09",
  590.     (U8 *) "x0Ax09",
  591.     (U8 *) "x0Bx09",
  592.     (U8 *) "x0Dx09",
  593.     (U8 *) "x0Fx09",
  594.     (U8 *) "x10x09",
  595.     (U8 *) "x11x09",
  596.     (U8 *) "x13x09",
  597.     (U8 *) "x14x09",
  598.     (U8 *) "x3Ex09",
  599.     (U8 *) "x3Fx09",
  600.     (U8 *) "x40x09",
  601.     (U8 *) "x41x09",
  602.     (U8 *) "x42x09",
  603.     (U8 *) "x43x09",
  604.     (U8 *) "x45x09",
  605.     (U8 *) "x47x09",
  606.     (U8 *) "x48x09",
  607.     (U8 *) "x49x09",
  608.     (U8 *) "x4Bx09",
  609.     (U8 *) "x4Cx09",
  610.     (U8 *) " ",
  611.     (U8 *) "n",
  612. };
  613. const U8 *IndVowelPicker[IND_VOWEL_PICKER_MAX_HINDI_SYMBOL] = 
  614. {
  615.     (U8 *) "x05x09",
  616.     (U8 *) "x06x09",
  617.     (U8 *) "x07x09",
  618.     (U8 *) "x08x09",
  619.     (U8 *) "x09x09",
  620.     (U8 *) "x0Ax09",
  621.     (U8 *) "x0Bx09",
  622.     (U8 *) "x0Dx09",
  623.     (U8 *) "x0Fx09",
  624.     (U8 *) "x10x09",
  625.     (U8 *) "x11x09",
  626.     (U8 *) "x13x09",
  627.     (U8 *) "x14x09",
  628.     (U8 *) " ",
  629.     (U8 *) "n",
  630. };
  631. #endif /* defined(__MMI_MULTITAP_HINDI__) */ 
  632. /* END VIJAY PMT 20050725 */
  633. //using full-width forms instead of CJK compatibility forms
  634. //#if defined(__MMI_FULLWIDTH_FORMS__)
  635. const U8 *SymbolPickerChineseSymbols[SYMBOL_PICKER_MAX_CHINESE_SYMBOLS] = 
  636. {
  637.     (U8 *) "x0cxff",
  638.     (U8 *) "x02x30",  /* using CJK defned value instead of full-width defined value(U8*)"x61xff", */
  639.     (U8 *) "x01x30",  /* using CJK defned value instead of full-width defined value(U8*)"x64xff", */
  640.     (U8 *) "x1axff",
  641.     (U8 *) "x1bxff",
  642.     (U8 *) "x1fxff",
  643.     (U8 *) "x26x20",
  644.     (U8 *) "x01xff",
  645.     (U8 *) "x0ax30",
  646.     (U8 *) "x0bx30",
  647.     (U8 *) "x0ex30",
  648.     (U8 *) "x0fx30",
  649.     (U8 *) "x1cx20",
  650.     (U8 *) "x1dx20",
  651.     (U8 *) "x08xff",
  652.     (U8 *) "x09xff",
  653.     (U8 *) "x0cx30",  /* using CJK defned value instead of full-width defined value(U8*)"x62xff", */
  654.     (U8 *) "x0dx30",  /* using CJK defned value instead of full-width defined value(U8*)"x63xff", */
  655.     (U8 *) "x18x20",
  656.     (U8 *) "x19x20",
  657.     (U8 *) "x0exff",
  658.     (U8 *) "x1cxff",
  659.     (U8 *) "x1exff",
  660.     (U8 *) "x5exff",
  661.     (U8 *) "x3bxff",
  662.     (U8 *) "x3dxff",
  663.     (U8 *) "x20x00",
  664.     (U8 *) "n",
  665. };
  666. // #else
  667. #if 0   /* using full-width forms instead of CJK compatibility forms */
  668. /* under construction !*/
  669. /* under construction !*/
  670. /* under construction !*/
  671. /* under construction !*/
  672. /* under construction !*/
  673. /* under construction !*/
  674. /* under construction !*/
  675. /* under construction !*/
  676. /* under construction !*/
  677. /* under construction !*/
  678. /* under construction !*/
  679. /* under construction !*/
  680. /* under construction !*/
  681. /* under construction !*/
  682. /* under construction !*/
  683. /* under construction !*/
  684. /* under construction !*/
  685. /* under construction !*/
  686. /* under construction !*/
  687. /* under construction !*/
  688. /* under construction !*/
  689. /* under construction !*/
  690. /* under construction !*/
  691. /* under construction !*/
  692. /* under construction !*/
  693. /* under construction !*/
  694. /* under construction !*/
  695. /* under construction !*/
  696. /* under construction !*/
  697. /* under construction !*/
  698. /* under construction !*/
  699. #endif /* 0 */ 
  700. // #endif
  701. const U8 SymbolPickerLFString[] = {0x85, 0, '', 0};
  702. const U8 SymbolPickerSpaceString[] = {0x86, 0, '', 0};
  703. #define SPACE_SYMBOL (0x20)
  704. #define NEWLINE_SYMBOL (0x0a)
  705. #define EURO_SYMBOL (0x20ac)
  706. const U8 *SymbolPickerDisplaySymbols[SYMBOL_PICKER_MAX_SYMBOLS];
  707. /* START VIJAY 20050725 */
  708. #if defined(__MMI_MULTITAP_HINDI__)
  709. const U8 *SymbolPickerDisplayHindiSymbols[VOWEL_PICKER_MAX_HINDI_SYMBOLS];
  710. #endif 
  711. /* END VIJAY PMT 20050725 */
  712. const U8 *SymbolPickerDisplayChineseSymbols[SYMBOL_PICKER_MAX_CHINESE_SYMBOLS];
  713. /* Begin AP Symbol table */
  714. /*****************************************************************************
  715.  * FUNCTION
  716.  *  Transform_LF_SPACE_Symbol
  717.  * DESCRIPTION
  718.  *  
  719.  * PARAMETERS
  720.  *  symbol      [IN]        
  721.  * RETURNS
  722.  *  
  723.  *****************************************************************************/
  724. UI_character_type Transform_LF_SPACE_Symbol(UI_character_type symbol)
  725. {
  726.     /*----------------------------------------------------------------*/
  727.     /* Local Variables                                                */
  728.     /*----------------------------------------------------------------*/
  729.     /*----------------------------------------------------------------*/
  730.     /* Code Body                                                      */
  731.     /*----------------------------------------------------------------*/
  732.     if (symbol == 0x0085)
  733.     {
  734.         return 0x000a;
  735.     }
  736.     else if (symbol == 0x0086)
  737.     {
  738.         return 0x0020;
  739.     }
  740.     else
  741.     {
  742.         return symbol;
  743.     }
  744. }
  745. /* End AP Symbol table */
  746. /*****************************************************************************
  747.  * FUNCTION
  748.  *  SymbolPickerHandleLSK
  749.  * DESCRIPTION
  750.  *  
  751.  * PARAMETERS
  752.  *  void
  753.  * RETURNS
  754.  *  void
  755.  *****************************************************************************/
  756. void SymbolPickerHandleLSK(void)
  757. {
  758. #if 0
  759. /* under construction !*/
  760. /* under construction !*/
  761. /* under construction !*/
  762. /* under construction !*/
  763. /* under construction !*/
  764. /* under construction !*/
  765. /* under construction !*/
  766. #if(UI_DOUBLE_BUFFER_SUPPORT)
  767. /* under construction !*/
  768. #endif
  769. /* under construction !*/
  770. #if(UI_DOUBLE_BUFFER_SUPPORT)
  771. /* under construction !*/
  772. #endif
  773. /* under construction !*/
  774. /* under construction !*/
  775. /* under construction !*/
  776. /* under construction !*/
  777. /* under construction !*/
  778. /* under construction !*/
  779. /* under construction !*/
  780. /* under construction !*/
  781. /* under construction !*/
  782. /* under construction !*/
  783. /* under construction !*/
  784. /* under construction !*/
  785. /* under construction !*/
  786. #if  defined(__MMI_T9_SPANISH__)||defined(__MMI_ZI_EU_SPANISH__)||defined(__MMI_ZI_SA_SPANISH__)
  787. /* under construction !*/
  788. /* under construction !*/
  789. #endif
  790. /* under construction !*/
  791. #if  defined(__MMI_T9_DANISH__)||defined(__MMI_ZI_DANISH__)
  792. /* under construction !*/
  793. /* under construction !*/
  794. #endif
  795. /* under construction !*/
  796. /* under construction !*/
  797. #if  defined(__MMI_T9_POLISH__)||defined(__MMI_ZI_POLISH__)
  798. /* under construction !*/
  799. /* under construction !*/
  800. #endif
  801. /* under construction !*/
  802. /* under construction !*/
  803. #if  defined(__MMI_T9_FRENCH__)||defined(__MMI_ZI_CA_FRENCH__)||defined(__MMI_ZI_EU_FRENCH__)
  804. /* under construction !*/
  805. /* under construction !*/
  806. #endif
  807. #if  defined(__MMI_T9_GERMAN__)||defined(__MMI_ZI_GERMAN__)
  808. /* under construction !*/
  809. /* under construction !*/
  810. #endif
  811. #if  defined(__MMI_T9_ITALIAN__)||defined(__MMI_ZI_ITALIAN__)
  812. /* under construction !*/
  813. /* under construction !*/
  814. #endif
  815. #if  defined(__MMI_ZI_RUSSIAN__)||defined(__MMI_ZI_RECOMMENDED_SIZE_RUSSIAN__)
  816. /* under construction !*/
  817. /* under construction !*/
  818. #endif
  819. /* under construction !*/
  820. #if defined(__MMI_ZI_TURKISH__)||defined(__MMI_T9_TURKISH__)
  821. /* under construction !*/
  822. /* under construction !*/
  823. /* under construction !*/
  824. #endif
  825. #if  defined(__MMI_ZI_SA_PORTUGUESE__)||defined(__MMI_ZI_EU_PORTUGUESE__)||defined(__MMI_ZI_BZ_PORTUGUESE__)
  826. /* under construction !*/
  827. /* under construction !*/
  828. #endif
  829. #if  defined(__MMI_ZI_THAI__)
  830. /* under construction !*/
  831. #endif
  832. /* under construction !*/
  833. #if  defined(__MMI_ZI_INDONESIAN__)
  834. /* under construction !*/
  835. /* under construction !*/
  836. #endif
  837. #if  defined(__MMI_ZI_MALAY__)
  838. /* under construction !*/
  839. /* under construction !*/
  840. #endif
  841. /* under construction !*/
  842. #if  defined(__MMI_ZI_VIETNAMESE__)||defined(__MMI_T9_VIETNAMESE__) 
  843. /* under construction !*/
  844. /* under construction !*/
  845. /* under construction !*/
  846. #endif
  847. /* under construction !*/
  848. /* under construction !*/
  849. /* under construction !*/
  850. #ifdef __MMI_T9__
  851. /* under construction !*/
  852. #elif defined __MMI_ZI__
  853. /* under construction !*/
  854. #elif defined __MMI_KA__
  855. /* under construction !*/
  856. #elif defined __MMI_ITAP__
  857. /* under construction !*/
  858. /* under construction !*/
  859. /* under construction !*/
  860. #endif
  861. /* under construction !*/
  862. /* under construction !*/
  863. #endif /* 0 */ 
  864.     UI_character_type selected_symbol;
  865.     S32 index = GetHighlightedItem();
  866.     //START VIJAY PMT 20050725
  867.     //PMT VIKAS GUPTA START 20051129
  868. #if defined (__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  869.     /* PMT VIKAS GUPTA END 20051129 */
  870.     UI_character_type previous_char;
  871. #endif /* defined (__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) */ //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  872.     /*----------------------------------------------------------------*/
  873.     /* Code Body                                                      */
  874.     /*----------------------------------------------------------------*/
  875.     /* END VIJAY PMT 20050725 */
  876.     switch (MMI_current_input_type & INPUT_TYPE_MASK)
  877.     {
  878. //KP Jerry modify on 2007-4-18 start
  879. #ifdef __MMI_LANG_TR_CHINESE__      //KP Jerry add on 2007-4-17
  880.         case INPUT_TYPE_TR_MULTITAP_BOPOMO:
  881.         case INPUT_TYPE_TR_BOPOMO:
  882.         case INPUT_TYPE_TR_STROKE:
  883. #endif/*__MMI_LANG_TR_CHINESE__*/      //KP Jerry add on 2007-4-17
  884. #ifdef __MMI_LANG_SM_CHINESE__      //KP Jerry add on 2007-4-17
  885.         case INPUT_TYPE_SM_MULTITAP_PINYIN:
  886.         case INPUT_TYPE_SM_PINYIN:
  887.         case INPUT_TYPE_SM_STROKE:
  888. #endif/*__MMI_LANG_SM_CHINESE__*/      //KP Jerry add on 2007-4-17
  889. //KP Jerry modify on 2007-4-18 end
  890.             /* Begin AP Symbol table */
  891.             selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  892.                                           (((UI_character_type) SymbolPickerDisplayChineseSymbols[index][0]) |
  893.                                            (((UI_character_type) SymbolPickerDisplayChineseSymbols[index][1]) << 8)));
  894.             /* End AP Symbol table */
  895.             break;
  896.             //START VIJAY PMT 20050725...ADDED HINDI SYMBOL SUPPORT
  897.             //PMT VIKAS GUPTA START 20051129
  898.     #if defined (__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  899.             /* PMT VIKAS GUPTA END 20051129 */
  900.         case INPUT_TYPE_MULTITAP_HINDI:
  901.             if (whether_use_multitap())
  902.             {
  903.                 previous_char = gui_multi_line_current_character(&MMI_multiline_inputbox);
  904.             }
  905.             else
  906.             {
  907.                 previous_char = gui_EMS_current_character(&MMI_EMS_inputbox);
  908.             }
  909.             /* Begin AP Symbol table */
  910.             if (HF_HINDI_RANGE(previous_char) && IdentifyCharacter(previous_char) == CON)
  911.             {
  912.                 selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  913.                                               (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][0]) |
  914.                                                (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][1]) << 8)));
  915.             }
  916.             else
  917.             {
  918.                 selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  919.                                               (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][0]) |
  920.                                                (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][1]) << 8)));
  921.             }
  922.             /* End AP Symbol table */
  923.             break;
  924.     #endif /* defined (__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) */  //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-1
  925.             /* END VIJAY PMT 20050725 */
  926.         default:
  927.             /* Begin AP Symbol table */
  928.             selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  929.                                           (((UI_character_type) SymbolPickerDisplaySymbols[index][0]) |
  930.                                            (((UI_character_type) SymbolPickerDisplaySymbols[index][1]) << 8)));
  931.             /* End AP Symbol table */
  932.             break;
  933.     }
  934.     gdi_layer_lock_frame_buffer();
  935.     GoBackHistory();
  936.     wgui_inputbox_insert_symbol(selected_symbol);
  937.     gdi_layer_unlock_frame_buffer();
  938.     gdi_layer_blt_previous(0,0,UI_device_width-1, UI_device_height-1);    
  939.     switch (MMI_current_input_type & INPUT_TYPE_MASK)
  940.     {
  941. //KP Jerry modify on 2007-4-18 start
  942. #ifdef __MMI_LANG_TR_CHINESE__      //KP Jerry add on 2007-4-17
  943.         case INPUT_TYPE_TR_MULTITAP_BOPOMO:
  944.         case INPUT_TYPE_TR_BOPOMO:
  945.         case INPUT_TYPE_TR_STROKE:
  946. #endif/*__MMI_LANG_TR_CHINESE__*/      //KP Jerry add on 2007-4-17
  947. #ifdef __MMI_LANG_SM_CHINESE__      //KP Jerry add on 2007-4-17
  948.         case INPUT_TYPE_SM_MULTITAP_PINYIN:
  949.         case INPUT_TYPE_SM_PINYIN:
  950.         case INPUT_TYPE_SM_STROKE:
  951. #endif/*__MMI_LANG_SM_CHINESE__*/      //KP Jerry add on 2007-4-17
  952.         case INPUT_TYPE_SMART_UPPERCASE_ABC:
  953.         case INPUT_TYPE_SMART_LOWERCASE_ABC:
  954. //KP Jerry modify on 2007-4-18 end
  955.             /* MTK Terry for Spanish French German Italian Russian Thai Turkish Portuguese Indonesian Malay Vietnamese */
  956.     #if defined(__MMI_T9_SPANISH__) || defined(__MMI_ZI_EU_SPANISH__) || defined(__MMI_ZI_SA_SPANISH__) || defined(__MMI_CSTAR_SPANISH__) //KP Jerry add "__MMI_CSTAR_SPANISH__" on 2007-4-13
  957.         case INPUT_TYPE_SMART_UPPERCASE_SPANISH:
  958.         case INPUT_TYPE_SMART_LOWERCASE_SPANISH:
  959.     #endif /* defined(__MMI_T9_SPANISH__) || defined(__MMI_ZI_EU_SPANISH__) || defined(__MMI_ZI_SA_SPANISH__) || defined(__MMI_CSTAR_SPANISH__) */  //KP Jerry add "__MMI_CSTAR_SPANISH__" on 2
  960.             /* PMT VIKASG START 20050729 */
  961.     #if defined(__MMI_T9_DANISH__) || defined(__MMI_ZI_DANISH__) || defined(__MMI_CSTAR_DANISH__) //KP Jerry add "__MMI_CSTAR_DANISH__" on 2007-4-13
  962.         case INPUT_TYPE_SMART_UPPERCASE_DANISH:
  963.         case INPUT_TYPE_SMART_LOWERCASE_DANISH:
  964.     #endif /* defined(__MMI_T9_DANISH__) || defined(__MMI_ZI_DANISH__) || defined(__MMI_CSTAR_DANISH__) */  //KP Jerry add "__MMI_CSTAR_DANISH__" on 2007-4-13
  965.             //PMT VIKASG END 20050729
  966.             //PMT CZ_PO_TU START 20050812
  967.     #if defined(__MMI_T9_POLISH__) || defined(__MMI_ZI_POLISH__) || defined(__MMI_CSTAR_POLISH__) //KP Jerry add "__MMI_CSTAR_POLISH__" on 2007-4-13
  968.         case INPUT_TYPE_SMART_UPPERCASE_POLISH:
  969.         case INPUT_TYPE_SMART_LOWERCASE_POLISH:
  970.     #endif /* defined(__MMI_T9_POLISH__) || defined(__MMI_ZI_POLISH__) || defined(__MMI_CSTAR_POLISH__) */  //KP Jerry add "__MMI_CSTAR_POLISH__" on 2007-4-13
  971.             /* PMT CZ_PO_TU END 20050812 */
  972.     #if defined(__MMI_T9_FRENCH__) || defined(__MMI_ZI_CA_FRENCH__) || defined(__MMI_ZI_EU_FRENCH__) || defined(__MMI_CSTAR_FRENCH__) //KP Jerry add "__MMI_CSTAR_FRENCH__" on 2007-4-13
  973.         case INPUT_TYPE_SMART_UPPERCASE_FRENCH:
  974.         case INPUT_TYPE_SMART_LOWERCASE_FRENCH:
  975.     #endif /* defined(__MMI_T9_FRENCH__) || defined(__MMI_ZI_CA_FRENCH__) || defined(__MMI_ZI_EU_FRENCH__) || defined(__MMI_CSTAR_FRENCH__) */  //KP Jerry add "__MMI_CSTAR_FRENCH__" on 2007-4-13
  976.     #if defined(__MMI_T9_GERMAN__) || defined(__MMI_ZI_GERMAN__) || defined(__MMI_CSTAR_GERMAN__) //KP Jerry add "__MMI_CSTAR_GERMAN__" on 2007-4-13
  977.         case INPUT_TYPE_SMART_UPPERCASE_GERMAN:
  978.         case INPUT_TYPE_SMART_LOWERCASE_GERMAN:
  979.     #endif /* defined(__MMI_T9_GERMAN__) || defined(__MMI_ZI_GERMAN__) || defined(__MMI_CSTAR_GERMAN__) */  //KP Jerry add "__MMI_CSTAR_GERMAN__" on 2007-4-13
  980.     #if defined(__MMI_T9_ITALIAN__) || defined(__MMI_ZI_ITALIAN__) || defined(__MMI_CSTAR_ITALIAN__) //KP Jerry add "__MMI_CSTAR_ITALIAN__" on 2007-4-13
  981.         case INPUT_TYPE_SMART_UPPERCASE_ITALIAN:
  982.         case INPUT_TYPE_SMART_LOWERCASE_ITALIAN:
  983.     #endif /* defined(__MMI_T9_ITALIAN__) || defined(__MMI_ZI_ITALIAN__) || defined(__MMI_CSTAR_ITALIAN__) */  //KP Jerry add "__MMI_CSTAR_ITALIAN__" on 2007-4-13
  984.             /* START PMT VANDANA 20051506 */
  985.     #if defined (__MMI_T9_RUSSIAN__) || defined(__MMI_ZI_RUSSIAN__) || defined(__MMI_ZI_RECOMMENDED_SIZE_RUSSIAN__) || defined(__MMI_CSTAR_RUSSIAN__) //KP Jerry add "__MMI_CSTAR_RUSSIAN__" on 2007-4-13
  986.             /* END PMT */
  987.         case INPUT_TYPE_SMART_UPPERCASE_RUSSIAN:
  988.         case INPUT_TYPE_SMART_LOWERCASE_RUSSIAN:
  989.     #endif /* defined (__MMI_T9_RUSSIAN__) || defined(__MMI_ZI_RUSSIAN__) || defined(__MMI_ZI_RECOMMENDED_SIZE_RUSSIAN__) || defined(__MMI_CSTAR_RUSSIAN__) */  //KP Jerry add "__MMI_CSTAR_RUSSIAN__" on 2007-4-13
  990.             /* PMT BULGARIAN START 20051201 */
  991.     #if defined (__MMI_T9_BULGARIAN__) || defined(__MMI_ZI_BULGARIAN__) || defined(__MMI_CSTAR_BULGARIAN__) //KP Jerry add "__MMI_CSTAR_BULGARIAN__" on 2007-4-13
  992.         case INPUT_TYPE_SMART_UPPERCASE_BULGARIAN:
  993.         case INPUT_TYPE_SMART_LOWERCASE_BULGARIAN:
  994.     #endif /* defined (__MMI_T9_BULGARIAN__) || defined(__MMI_ZI_BULGARIAN__) || defined(__MMI_CSTAR_BULGARIAN__) */  //KP Jerry add "__MMI_CSTAR_BULGARIAN__" on 2007-4-13
  995.             //PMT BULGARIAN END 20051201
  996.             //PMT dara added for T9 thai 
  997.     #if defined(__MMI_ZI_THAI__) || defined (__MMI_T9_THAI__) || defined(__MMI_CSTAR_THAI__) //KP Jerry add "__MMI_CSTAR_THAI__" on 2007-4-13
  998.         case INPUT_TYPE_SMART_THAI:
  999.     #endif 
  1000.         case INPUT_TYPE_SMART_ARABIC:
  1001.             /* PMT START PERSIAN */
  1002.     #ifdef __MMI_LANG_PERSIAN__
  1003.         case INPUT_TYPE_SMART_PERSIAN:
  1004.     #endif 
  1005.             /* PMT END PERSIAN */
  1006.         case INPUT_TYPE_SMART_HINDI:
  1007.             //PMT VIKAS GUPTA END 20051129
  1008.             //PMT START GR_HE_CZ_FI_DA_HU 20051007
  1009.         case INPUT_TYPE_SMART_HEBREW:
  1010.             //PMT END GR_HE_CZ_FI_DA_HU 20051007
  1011.             //PMT CZ_PO_TU START 20050812
  1012.     #if defined(__MMI_ZI_TURKISH__) || defined(__MMI_T9_TURKISH__) || defined(__MMI_CSTAR_TURKISH__) //KP Jerry add "__MMI_CSTAR_TURKISH__" on 2007-4-13
  1013.             /* PMT CZ_PO_TU END 20050812 */
  1014.         case INPUT_TYPE_SMART_UPPERCASE_TURKISH:
  1015.         case INPUT_TYPE_SMART_LOWERCASE_TURKISH:
  1016.     #endif /* defined(__MMI_ZI_TURKISH__) || defined(__MMI_T9_TURKISH__) ||defined(__MMI_CSTAR_TURKISH__) */  //KP Jerry add "__MMI_CSTAR_TURKISH__" on 2007-4-13
  1017.             /* PMT SHARIQ START 20050729 */
  1018.     #if defined(__MMI_T9_PORTUGUESE__) || defined(__MMI_ZI_EU_PORTUGUESE__) || defined(__MMI_ZI_SA_PORTUGUESE__) || defined(__MMI_ZI_BZ_PORTUGUESE__) || defined(__MMI_CSTAR_PORTUGUESE__) //KP Jerry add "__MMI_CSTAR_" on 2007-4-13
  1019.             /* PMT SHARIQ END 20050729 */
  1020.         case INPUT_TYPE_SMART_UPPERCASE_PORTUGUESE:
  1021.         case INPUT_TYPE_SMART_LOWERCASE_PORTUGUESE:
  1022.     #endif /* defined(__MMI_T9_PORTUGUESE__) || defined(__MMI_ZI_EU_PORTUGUESE__) || defined(__MMI_ZI_SA_PORTUGUESE__) || defined(__MMI_ZI_BZ_PORTUGUESE__) || defined(__MMI_CSTAR_PORTUGUESE__) */  //KP Jerry add "__MMI_CSTAR_" on 2007-4-13
  1023.             /* PMT Gurdev Start 20050729 */
  1024.     #if defined(__MMI_ZI_INDONESIAN__) || defined(__MMI_T9_INDONESIAN__) || defined(__MMI_CSTAR_INDONESIAN__) //KP Jerry add "__MMI_CSTAR_INDONESIAN__" on 2007-4-13
  1025.         case INPUT_TYPE_SMART_UPPERCASE_INDONESIAN:
  1026.         case INPUT_TYPE_SMART_LOWERCASE_INDONESIAN:
  1027.     #endif /* defined(__MMI_ZI_INDONESIAN__) || defined(__MMI_T9_INDONESIAN__) || defined(__MMI_CSTAR_INDONESIAN__) */  //KP Jerry add "__MMI_CSTAR_INDONESIAN__" on 2007-4-13
  1028.             //PMT Gurdev End 20050729
  1029.             //PMT CZ_PO_TU START 20050812
  1030.             //PMT START GR_HE_CZ_FI_DA_HU 20051007
  1031.     #if defined(__MMI_T9_CZECH__) || defined(__MMI_ZI_CZECH__) || defined(__MMI_CSTAR_CZECH__) //KP Jerry add "__MMI_CSTAR_CZECH__" on 2007-4-13
  1032.             /* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
  1033.         case INPUT_TYPE_SMART_UPPERCASE_CZECH:
  1034.         case INPUT_TYPE_SMART_LOWERCASE_CZECH:
  1035.     #endif /* defined(__MMI_T9_CZECH__) || defined(__MMI_ZI_CZECH__) || defined(__MMI_CSTAR_CZECH__) */  //KP Jerry add "__MMI_CSTAR_CZECH__" on 2007-4-13
  1036.             //PMT CZ_PO_TU END 20050812
  1037.             //PMT START LANGUAGE 20060104
  1038.     #if defined(__MMI_ZI_MALAY__) || defined(__MMI_T9_MALAY__) || defined(__MMI_CSTAR_MALAY__) //KP Jerry add "__MMI_CSTAR_MALAY__" on 2007-4-13
  1039.             /* PMT END LANGUAGE 20060104 */
  1040.         case INPUT_TYPE_SMART_UPPERCASE_MALAY:
  1041.         case INPUT_TYPE_SMART_LOWERCASE_MALAY:
  1042.     #endif /* defined(__MMI_ZI_MALAY__) || defined(__MMI_T9_MALAY__) || defined(__MMI_CSTAR_MALAY__) */  //KP Jerry add "__MMI_CSTAR_MALAY__" on 2007-4-13
  1043.             /* PMT BHASKAR START 20052907 */
  1044.     #if defined(__MMI_ZI_VIETNAMESE__) || defined(__MMI_T9_VIETNAMESE__) || defined(__MMI_CSTAR_VIETNAMESE__) //KP Jerry add "__MMI_CSTAR_VIETNAMESE__" on 2007-4-13
  1045.             /* PMT BHASKAR END 20052907 */
  1046.         case INPUT_TYPE_SMART_UPPERCASE_VIETNAMESE:
  1047.         case INPUT_TYPE_SMART_LOWERCASE_VIETNAMESE:
  1048.     #endif /* defined(__MMI_ZI_VIETNAMESE__) || defined(__MMI_T9_VIETNAMESE__) || defined(__MMI_CSTAR_VIETNAMESE__) */  //KP Jerry add "__MMI_CSTAR_VIETNAMESE__" on 2007-4-13
  1049.             /* PMT START HU_FI 20050825 */
  1050.     #if defined(__MMI_ZI_FINNISH__) || defined(__MMI_T9_FINNISH__) || defined(__MMI_CSTAR_FINNISH__) //KP Jerry add "__MMI_CSTAR_FINNISH__" on 2007-4-13
  1051.         case INPUT_TYPE_SMART_UPPERCASE_FINNISH:
  1052.         case INPUT_TYPE_SMART_LOWERCASE_FINNISH:
  1053.     #endif /* defined(__MMI_ZI_FINNISH__) || defined(__MMI_T9_FINNISH__) || defined(__MMI_CSTAR_FINNISH__) */  //KP Jerry add "__MMI_CSTAR_FINNISH__" on 2007-4-13
  1054.             /* PMT START GR_HE_CZ_FI_DA_HU 20051007 */
  1055.     #if defined(__MMI_T9_HUNGARIAN__) || defined(__MMI_ZI_HUNGARIAN__) || defined(__MMI_CSTAR_HUNGARIAN__) //KP Jerry add "__MMI_CSTAR_HUNGARIAN__" on 2007-4-13
  1056.             /* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
  1057.         case INPUT_TYPE_SMART_UPPERCASE_HUNGARIAN:
  1058.         case INPUT_TYPE_SMART_LOWERCASE_HUNGARIAN:
  1059.     #endif /* defined(__MMI_T9_HUNGARIAN__) || defined(__MMI_ZI_HUNGARIAN__) || defined(__MMI_CSTAR_HUNGARIAN__) */  //KP Jerry add "__MMI_CSTAR_HUNGARIAN__" on 2007-4-13
  1060.             //PMT END HU_FI 20050825
  1061.             //PMT NO_AR_SL_DU START 20050909
  1062.     #if defined(__MMI_ZI_SLOVAK__) || defined(__MMI_T9_SLOVAK__) || defined(__MMI_CSTAR_SLOVAK__) //KP Jerry add "__MMI_CSTAR_SLOVAK__" on 2007-4-13
  1063.         case INPUT_TYPE_SMART_UPPERCASE_SLOVAK:
  1064.         case INPUT_TYPE_SMART_LOWERCASE_SLOVAK:
  1065.     #endif /* defined(__MMI_ZI_SLOVAK__) || defined(__MMI_T9_SLOVAK__) */  //KP Jerry add "__MMI_CSTAR_SLOVAK__" on 2007-4-13
  1066.     #if defined(__MMI_ZI_DUTCH__) || defined(__MMI_T9_DUTCH__) || defined(__MMI_CSTAR_DUTCH__) //KP Jerry add "__MMI_CSTAR_DUTCH__" on 2007-4-13
  1067.         case INPUT_TYPE_SMART_UPPERCASE_DUTCH:
  1068.         case INPUT_TYPE_SMART_LOWERCASE_DUTCH:
  1069.     #endif /* defined(__MMI_ZI_DUTCH__) || defined(__MMI_T9_DUTCH__) || defined(__MMI_CSTAR_DUTCH__) */  //KP Jerry add "__MMI_CSTAR_DUTCH__" on 2007-4-13
  1070.             //Norwegian start
  1071.             //PMT VIKAS GUPTA START PO_NO_ZI 20050930
  1072.     #if defined(__MMI_T9_NORWEGIAN__) || defined(__MMI_ZI_NORWEGIAN__) || defined(__MMI_CSTAR_NORWEGIAN__) //KP Jerry add "__MMI_CSTAR_NORWEGIAN__" on 2007-4-13
  1073.             /* PMT VIKAS GUPTA END PO_NO_ZI 20050930 */
  1074.         case INPUT_TYPE_SMART_UPPERCASE_NORWEGIAN:
  1075.         case INPUT_TYPE_SMART_LOWERCASE_NORWEGIAN:
  1076.     #endif /* defined(__MMI_T9_NORWEGIAN__) || defined(__MMI_ZI_NORWEGIAN__) || defined(__MMI_CSTAR_NORWEGIAN__) */  //KP Jerry add "__MMI_CSTAR_NORWEGIAN__" on 2007-4-13
  1077.             //Norwegian end
  1078.             //PMT NO_AR_SL_DU END 20050909
  1079.             //PMT START SWEDISH 20050916
  1080.     #if defined(__MMI_ZI_SWEDISH__) || defined(__MMI_T9_SWEDISH__) || defined(__MMI_CSTAR_SWEDISH__) //KP Jerry add "__MMI_CSTAR_SWEDISH__" on 2007-4-13
  1081.         case INPUT_TYPE_SMART_UPPERCASE_SWEDISH:
  1082.         case INPUT_TYPE_SMART_LOWERCASE_SWEDISH:
  1083.     #endif /* defined(__MMI_ZI_SWEDISH__) || defined(__MMI_T9_SWEDISH__) || defined(__MMI_CSTAR_SWEDISH__) */  //KP Jerry add "__MMI_CSTAR_SWEDISH__" on 2007-4-13
  1084.             /* PMT END SWEDISH 20050916 */
  1085.             /* PMT START CR_ROM_SLO 20050923 */
  1086.     #if defined(__MMI_ZI_CROATIAN__) || defined(__MMI_T9_CROATIAN__) || defined(__MMI_CSTAR_CROATIAN__) //KP Jerry add "__MMI_CSTAR_CROATIAN__" on 2007-4-13
  1087.         case INPUT_TYPE_SMART_UPPERCASE_CROATIAN:
  1088.         case INPUT_TYPE_SMART_LOWERCASE_CROATIAN:
  1089.     #endif /* defined(__MMI_ZI_CROATIAN__) || defined(__MMI_T9_CROATIAN__) || defined(__MMI_CSTAR_CROATIAN__) */  //KP Jerry add "__MMI_CSTAR_CROATIAN__" on 2007-4-13
  1090.             /* PMT START LANGUAGE 20060104 */
  1091.     #if defined(__MMI_ZI_ROMANIAN__) || defined(__MMI_T9_ROMANIAN__) || defined(__MMI_CSTAR_ROMANIAN__) //KP Jerry add "__MMI_CSTAR_ROMANIAN__" on 2007-4-13
  1092.             /* PMT END LANGUAGE 20060104 */
  1093.         case INPUT_TYPE_SMART_UPPERCASE_ROMANIAN:
  1094.         case INPUT_TYPE_SMART_LOWERCASE_ROMANIAN:
  1095.     #endif /* defined(__MMI_ZI_ROMANIAN__) || defined(__MMI_T9_ROMANIAN__) || defined(__MMI_CSTAR_ROMANIAN__) */  //KP Jerry add "__MMI_CSTAR_ROMANIAN__" on 2007-4-13
  1096.             /* PMT LANGUAGE START 20051221 */
  1097.     #if defined(__MMI_ZI_SLOVENIAN__) || defined(__MMI_T9_SLOVENIAN__) || defined(__MMI_CSTAR_SLOVENIAN__) //KP Jerry add "__MMI_CSTAR_SLOVENIAN__" on 2007-4-13
  1098.             /* PMT LANGUAGE END 20051221 */
  1099.         case INPUT_TYPE_SMART_UPPERCASE_SLOVENIAN:
  1100.         case INPUT_TYPE_SMART_LOWERCASE_SLOVENIAN:
  1101.     #endif /* defined(__MMI_ZI_SLOVENIAN__) || defined(__MMI_T9_SLOVENIAN__) || defined(__MMI_CSTAR_SLOVENIAN__) */  //KP Jerry add "__MMI_CSTAR_SLOVENIAN__" on 2007-4-13
  1102.             /* PMT END CR_ROM_SLO 20050923 */
  1103.             /* PMT START GR_HE_CZ_FI_DA_HU 20051007 */
  1104.     #if defined(__MMI_ZI_GREEK__) || defined(__MMI_T9_GREEK__) || defined(__MMI_CSTAR_GREEK__) //KP Jerry add "__MMI_CSTAR_GREEK__" on 2007-4-13
  1105.         case INPUT_TYPE_SMART_UPPERCASE_GREEK:
  1106.         case INPUT_TYPE_SMART_LOWERCASE_GREEK:
  1107.     #endif /* defined(__MMI_ZI_GREEK__) || defined(__MMI_T9_GREEK__) || defined(__MMI_CSTAR_GREEK__) */  //KP Jerry add "__MMI_CSTAR_GREEK__" on 2007-4-13
  1108.             //PMT END GR_HE_CZ_FI_DA_HU 20051007
  1109.             //MTK end
  1110.             //W05.34 Fix Screen will be clear after inserting symbols
  1111.     #if !defined(__MMI_TOUCH_SCREEN__)
  1112.     #ifdef __MMI_T9__
  1113.             T9SynT9WithInputBox();
  1114.     #elif defined __MMI_ZI__
  1115.             ZiDisplay();
  1116. //KP Jerry add on 2007-3-8 start
  1117.     #elif defined __MMI_CSTAR__
  1118.             CstarDisplay();
  1119. //KP Jerry add on 2007-3-8 end
  1120.     #elif defined __MMI_KA__
  1121.             KonkaDisplay();
  1122.     #elif defined __MMI_ITAP__
  1123. /* under construction !*/
  1124.     #endif 
  1125.     #endif /* !defined(__MMI_TOUCH_SCREEN__) */ 
  1126.             break;
  1127.     }
  1128. }
  1129. /*****************************************************************************
  1130.  * FUNCTION
  1131.  *  SymbolPickerHandleRSK
  1132.  * DESCRIPTION
  1133.  *  
  1134.  * PARAMETERS
  1135.  *  void
  1136.  * RETURNS
  1137.  *  void
  1138.  *****************************************************************************/
  1139. void SymbolPickerHandleRSK(void)
  1140. {
  1141.     /*----------------------------------------------------------------*/
  1142.     /* Local Variables                                                */
  1143.     /*----------------------------------------------------------------*/
  1144.     /*----------------------------------------------------------------*/
  1145.     /* Code Body                                                      */
  1146.     /*----------------------------------------------------------------*/
  1147.     GoBackHistory();
  1148. }
  1149. extern S16 MMI_current_input_ext_type;
  1150. static S16 SymbolFilterFlag = 0;
  1151. static U8 SymbolEnglishOnlyFlag = 0;
  1152. /* Begin AP Symbol table */
  1153. static U8 APSetNoShowSymbolFlag = 0;
  1154. /* End AP Symbol table */
  1155. /*****************************************************************************
  1156.  * FUNCTION
  1157.  *  EntrySymbolPickerScreen
  1158.  * DESCRIPTION
  1159.  *  
  1160.  * PARAMETERS
  1161.  *  void
  1162.  * RETURNS
  1163.  *  void
  1164.  *****************************************************************************/
  1165. void EntrySymbolPickerScreen(void)
  1166. {
  1167.     /*----------------------------------------------------------------*/
  1168.     /* Local Variables                                                */
  1169.     /*----------------------------------------------------------------*/
  1170.     U8 *guiBuffer;
  1171.     /*----------------------------------------------------------------*/
  1172.     /* Code Body                                                      */
  1173.     /*----------------------------------------------------------------*/
  1174.     EntryNewScreen(SCR_SYMBOL_PICKER_SCREEN, ExitSymbolPickerScreen, NULL, NULL);
  1175.     guiBuffer = GetCurrGuiBuffer(SCR_SYMBOL_PICKER_SCREEN);
  1176.     /* Begin AP Symbol table */
  1177.     if (guiBuffer != NULL)
  1178.     {
  1179.         MMI_current_input_ext_type = SymbolFilterFlag;
  1180.         MMI_AP_No_Show_Symbol_List_flag = APSetNoShowSymbolFlag;
  1181.         MMI_english_input_mode_flag = SymbolEnglishOnlyFlag;
  1182.     }
  1183.     /* End AP Symbol table */
  1184.     PrepareSymbolTableAndShowCategory(guiBuffer);
  1185.     SetLeftSoftkeyFunction(SymbolPickerHandleLSK, KEY_EVENT_UP);
  1186.     SetRightSoftkeyFunction(SymbolPickerHandleRSK, KEY_EVENT_UP);
  1187. }
  1188. /* Begin AP Symbol table */
  1189. /*****************************************************************************
  1190.  * FUNCTION
  1191.  *  Is_No_Need_Show_Symbol
  1192.  * DESCRIPTION
  1193.  *  
  1194.  * PARAMETERS
  1195.  *  symbol      [IN]        
  1196.  * RETURNS
  1197.  *  
  1198.  *****************************************************************************/
  1199. MMI_BOOL Is_No_Need_Show_Symbol(const U8 *symbol)
  1200. {
  1201.     /*----------------------------------------------------------------*/
  1202.     /* Local Variables                                                */
  1203.     /*----------------------------------------------------------------*/
  1204.     U16 i = 0;
  1205.     /*----------------------------------------------------------------*/
  1206.     /* Code Body                                                      */
  1207.     /*----------------------------------------------------------------*/
  1208.     while (*MMI_AP_No_Show_Symbol_List[i] != (U8)(0x00))
  1209.     {
  1210.         if (*symbol == *MMI_AP_No_Show_Symbol_List[i])
  1211.         {
  1212.             return MMI_TRUE;
  1213.         }
  1214.         i++;
  1215.     }
  1216.     return MMI_FALSE;
  1217. }
  1218. /* End AP Symbol table */
  1219. /*****************************************************************************
  1220.  * FUNCTION
  1221.  *  PrepareSymbolTableAndShowCategory
  1222.  * DESCRIPTION
  1223.  *  
  1224.  * PARAMETERS
  1225.  *  guiBuffer       [?]     
  1226.  * RETURNS
  1227.  *  void
  1228.  *****************************************************************************/
  1229. void PrepareSymbolTableAndShowCategory(U8 *guiBuffer)
  1230. {
  1231.     /*----------------------------------------------------------------*/
  1232.     /* Local Variables                                                */
  1233.     /*----------------------------------------------------------------*/
  1234.     S32 i;
  1235.     /* Begin AP Symbol table */
  1236.     S32 num_of_no_show_symbols = 0;
  1237.     S32 j = 0;
  1238.     /* End AP Symbol table */
  1239. #if defined (__MMI_MULTITAP_HINDI__)
  1240.     UI_character_type previous_char;
  1241. #endif 
  1242.     /*----------------------------------------------------------------*/
  1243.     /* Code Body                                                      */
  1244.     /*----------------------------------------------------------------*/
  1245.     /* Begin AP Symbol table */
  1246.     switch (MMI_current_input_type & INPUT_TYPE_MASK)
  1247.     {
  1248. //KP Jerry modify on 2007-4-18 start
  1249. #ifdef __MMI_LANG_TR_CHINESE__      //KP Jerry add on 2007-4-17
  1250.         case INPUT_TYPE_TR_MULTITAP_BOPOMO:
  1251.         case INPUT_TYPE_TR_BOPOMO:
  1252.         case INPUT_TYPE_TR_STROKE:
  1253. #endif/*__MMI_LANG_TR_CHINESE__*/      //KP Jerry add on 2007-4-17
  1254. #ifdef __MMI_LANG_SM_CHINESE__      //KP Jerry add on 2007-4-17
  1255.         case INPUT_TYPE_SM_MULTITAP_PINYIN:
  1256.         case INPUT_TYPE_SM_PINYIN:
  1257.         case INPUT_TYPE_SM_STROKE:
  1258. #endif/*__MMI_LANG_SM_CHINESE__*/      //KP Jerry add on 2007-4-17
  1259. //KP Jerry modify on 2007-4-18 end
  1260.             j = 0;
  1261.             for (i = 0; i < SYMBOL_PICKER_MAX_CHINESE_SYMBOLS; i++)
  1262.             {
  1263.                 if (((MMI_current_input_ext_type & INPUT_TYPE_EXT_NO_SHOW_NEW_LINE_SYMBOL) &&
  1264.                      ((*SymbolPickerChineseSymbols[i] | ((*(SymbolPickerChineseSymbols[i]+1))<<8)) == (U16)NEWLINE_SYMBOL)) ||
  1265.                     (MMI_AP_No_Show_Symbol_List_flag && Is_No_Need_Show_Symbol(SymbolPickerChineseSymbols[i])))
  1266.                 {
  1267.                     num_of_no_show_symbols++;
  1268.                     continue;
  1269.                 }
  1270.                 else
  1271.                 {
  1272.                     if ((*SymbolPickerChineseSymbols[i] | ((*(SymbolPickerChineseSymbols[i]+1))<<8)) == ((U16)SPACE_SYMBOL))
  1273.                     {
  1274.                         SymbolPickerDisplayChineseSymbols[j] = SymbolPickerSpaceString;
  1275.                     }
  1276.                     else if ((*SymbolPickerChineseSymbols[i] | ((*(SymbolPickerChineseSymbols[i]+1))<<8)) == ((U16)NEWLINE_SYMBOL))
  1277.                     {
  1278.                         SymbolPickerDisplayChineseSymbols[j] = SymbolPickerLFString;
  1279.                     }
  1280.                     else
  1281.                     {
  1282.                         SymbolPickerDisplayChineseSymbols[j] = SymbolPickerChineseSymbols[i];
  1283.                     }
  1284.                 }
  1285.                 j++;
  1286.             }
  1287.             ShowCategory22Screen(
  1288.                 STR_INPUT_METHOD_MENU_SELECT_SYMBOL,
  1289.                 0,
  1290.                 STR_GLOBAL_OK,
  1291.                 0,
  1292.                 STR_GLOBAL_BACK,
  1293.                 0,
  1294.                 SYMBOL_PICKER_MAX_CHINESE_SYMBOLS - num_of_no_show_symbols,
  1295.                 (U8 **) SymbolPickerDisplayChineseSymbols,
  1296.                 0,
  1297.                 guiBuffer);
  1298.             break;
  1299.         #if defined(__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  1300.         case INPUT_TYPE_MULTITAP_HINDI:
  1301.             if (whether_use_multitap())
  1302.             {
  1303.                 previous_char = gui_multi_line_current_character(&MMI_multiline_inputbox);
  1304.             }
  1305.             else
  1306.             {
  1307.                 previous_char = gui_EMS_current_character(&MMI_EMS_inputbox);
  1308.             }
  1309.             if (HF_HINDI_RANGE(previous_char) && IdentifyCharacter(previous_char) == CON)
  1310.             {
  1311.                 j = 0;
  1312.                 for (i = 0; i < VOWEL_PICKER_MAX_HINDI_SYMBOLS; i++)
  1313.                 {
  1314.                     if (((MMI_current_input_ext_type & INPUT_TYPE_EXT_NO_SHOW_NEW_LINE_SYMBOL) &&
  1315.                          ((*VowelPicker[i] | ((*(VowelPicker[i]+1))<<8)) == (U16)NEWLINE_SYMBOL)) ||
  1316.                         (MMI_AP_No_Show_Symbol_List_flag && Is_No_Need_Show_Symbol(VowelPicker[i])))
  1317.                     {
  1318.                         num_of_no_show_symbols++;
  1319.                         continue;
  1320.                     }
  1321.                     else
  1322.                     {
  1323.                         if ((*VowelPicker[i] | ((*(VowelPicker[i]+1))<<8)) == ((U16)SPACE_SYMBOL))
  1324.                         {
  1325.                             SymbolPickerDisplayHindiSymbols[j] = SymbolPickerSpaceString;
  1326.                         }
  1327.                         else if ((*VowelPicker[i] | ((*(VowelPicker[i]+1))<<8)) == ((U16)NEWLINE_SYMBOL))
  1328.                         {
  1329.                             SymbolPickerDisplayHindiSymbols[j] = SymbolPickerLFString;
  1330.                         }
  1331.                         else
  1332.                         {
  1333.                             SymbolPickerDisplayHindiSymbols[j] = VowelPicker[i];
  1334.                         }
  1335.                     }
  1336.                     j++;
  1337.                 }
  1338.                 ShowCategory22Screen(
  1339.                     STR_INPUT_METHOD_MENU_SELECT_VOWEL,
  1340.                     0,
  1341.                     STR_GLOBAL_OK,
  1342.                     0,
  1343.                     STR_GLOBAL_BACK,
  1344.                     0,
  1345.                     VOWEL_PICKER_MAX_HINDI_SYMBOLS - num_of_no_show_symbols,
  1346.                     (U8 **) SymbolPickerDisplayHindiSymbols,
  1347.                     0,
  1348.                     guiBuffer);
  1349.             }
  1350.             else
  1351.             {
  1352.                 j = 0;
  1353.                 for (i = 0; i < IND_VOWEL_PICKER_MAX_HINDI_SYMBOL; i++)
  1354.                 {
  1355.                     if (((MMI_current_input_ext_type & INPUT_TYPE_EXT_NO_SHOW_NEW_LINE_SYMBOL) &&
  1356.                          ((*IndVowelPicker[i] | ((*(IndVowelPicker[i]+1))<<8)) == (U16)NEWLINE_SYMBOL)) ||
  1357.                         (MMI_AP_No_Show_Symbol_List_flag && Is_No_Need_Show_Symbol(IndVowelPicker[i])))
  1358.                     {
  1359.                         num_of_no_show_symbols++;
  1360.                         continue;
  1361.                     }
  1362.                     else
  1363.                     {
  1364.                         if ((*IndVowelPicker[i] | ((*(IndVowelPicker[i]+1))<<8)) == ((U16)SPACE_SYMBOL))
  1365.                         {
  1366.                             SymbolPickerDisplayHindiSymbols[j] = SymbolPickerSpaceString;
  1367.                         }
  1368.                         else if ((*IndVowelPicker[i] | ((*(IndVowelPicker[i]+1))<<8)) == ((U16)NEWLINE_SYMBOL))
  1369.                         {
  1370.                             SymbolPickerDisplayHindiSymbols[j] = SymbolPickerLFString;
  1371.                         }
  1372.                         else
  1373.                         {
  1374.                             SymbolPickerDisplayHindiSymbols[j] = IndVowelPicker[i];
  1375.                         }
  1376.                     }
  1377.                     j++;
  1378.                 }
  1379.                 ShowCategory22Screen(
  1380.                     STR_INPUT_METHOD_MENU_SELECT_VOWEL,
  1381.                     0,
  1382.                     STR_GLOBAL_OK,
  1383.                     0,
  1384.                     STR_GLOBAL_BACK,
  1385.                     0,
  1386.                     IND_VOWEL_PICKER_MAX_HINDI_SYMBOL - num_of_no_show_symbols,
  1387.                     (U8 **) SymbolPickerDisplayHindiSymbols,
  1388.                     0,
  1389.                     guiBuffer);
  1390.             }
  1391.             break;
  1392.         #endif /* defined(__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) */  //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  1393.         default:
  1394.             j = 0;
  1395.             for (i = 0; i < SYMBOL_PICKER_MAX_SYMBOLS; i++)
  1396.             {
  1397.                 if (((MMI_current_input_ext_type & INPUT_TYPE_EXT_NO_SHOW_NEW_LINE_SYMBOL) &&
  1398.                      ((*SymbolPickerSymbols[i] | ((*(SymbolPickerSymbols[i]+1))<<8)) == (U16)NEWLINE_SYMBOL)) ||
  1399.                     (MMI_english_input_mode_flag && ((*SymbolPickerSymbols[i] | ((*(SymbolPickerSymbols[i]+1))<<8)) == (U16)EURO_SYMBOL)) ||
  1400.                     (MMI_AP_No_Show_Symbol_List_flag && Is_No_Need_Show_Symbol(SymbolPickerSymbols[i])))
  1401.                 {
  1402.                     num_of_no_show_symbols++;
  1403.                     continue;
  1404.                 }
  1405.                 else
  1406.                 {
  1407.                     if ((*SymbolPickerSymbols[i] | ((*(SymbolPickerSymbols[i]+1))<<8)) == ((U16)SPACE_SYMBOL))
  1408.                     {
  1409.                         SymbolPickerDisplaySymbols[j] = SymbolPickerSpaceString;
  1410.                     }
  1411.                     else if ((*SymbolPickerSymbols[i] | ((*(SymbolPickerSymbols[i]+1))<<8)) == ((U16)NEWLINE_SYMBOL))
  1412.                     {
  1413.                         SymbolPickerDisplaySymbols[j] = SymbolPickerLFString;
  1414.                     }
  1415.                     else
  1416.                     {
  1417.                         SymbolPickerDisplaySymbols[j] = SymbolPickerSymbols[i];
  1418.                     }
  1419.                 }
  1420.                 j++;
  1421.             }
  1422.             ShowCategory22Screen(
  1423.                 STR_INPUT_METHOD_MENU_SELECT_SYMBOL,
  1424.                 0,
  1425.                 STR_GLOBAL_OK,
  1426.                 0,
  1427.                 STR_GLOBAL_BACK,
  1428.                 0,
  1429.                 SYMBOL_PICKER_MAX_SYMBOLS - num_of_no_show_symbols,
  1430.                 (U8 **) SymbolPickerDisplaySymbols,
  1431.                 0,
  1432.                 guiBuffer);
  1433.             break;
  1434.     }
  1435.     /* End AP Symbol table */
  1436. }
  1437. /*****************************************************************************
  1438.  * FUNCTION
  1439.  *  ExitSymbolPickerScreen
  1440.  * DESCRIPTION
  1441.  *  
  1442.  * PARAMETERS
  1443.  *  void
  1444.  * RETURNS
  1445.  *  void
  1446.  *****************************************************************************/
  1447. void ExitSymbolPickerScreen(void)
  1448. {
  1449.     /*----------------------------------------------------------------*/
  1450.     /* Local Variables                                                */
  1451.     /*----------------------------------------------------------------*/
  1452.     history h;
  1453.     S16 nHistory = 0;
  1454.     /*----------------------------------------------------------------*/
  1455.     /* Code Body                                                      */
  1456.     /*----------------------------------------------------------------*/
  1457.     h.scrnID = SCR_SYMBOL_PICKER_SCREEN;
  1458.     h.entryFuncPtr = EntrySymbolPickerScreen;
  1459.     SymbolFilterFlag = MMI_current_input_ext_type;
  1460.     SymbolEnglishOnlyFlag = MMI_english_input_mode_flag;
  1461.     /* Begin AP Symbol table */
  1462.     APSetNoShowSymbolFlag = MMI_AP_No_Show_Symbol_List_flag;
  1463.     /* End AP Symbol table */
  1464.     pfnUnicodeStrcpy((S8*) h.inputBuffer, (S8*) & nHistory);
  1465.     GetCategoryHistory(h.guiBuffer);
  1466.     AddHistory(h);
  1467. }
  1468. /*****************************************************************************
  1469.  * FUNCTION
  1470.  *  SymbolPickerHandleLSKFromMenuList
  1471.  * DESCRIPTION
  1472.  *  
  1473.  * PARAMETERS
  1474.  *  void
  1475.  * RETURNS
  1476.  *  void
  1477.  *****************************************************************************/
  1478. void SymbolPickerHandleLSKFromMenuList(void)
  1479. {
  1480.     /*----------------------------------------------------------------*/
  1481.     /* Local Variables                                                */
  1482.     /*----------------------------------------------------------------*/
  1483.     UI_character_type selected_symbol;
  1484.     S32 index = GetHighlightedItem();
  1485. #if defined (__MMI_MULTITAP_HINDI__)
  1486.     UI_character_type previous_char;
  1487. #endif 
  1488.     /*----------------------------------------------------------------*/
  1489.     /* Code Body                                                      */
  1490.     /*----------------------------------------------------------------*/
  1491.     switch (MMI_current_input_type & INPUT_TYPE_MASK)
  1492.     {
  1493.         case INPUT_TYPE_TR_BOPOMO:
  1494.         case INPUT_TYPE_SM_PINYIN:
  1495.         case INPUT_TYPE_TR_MULTITAP_BOPOMO:
  1496.         case INPUT_TYPE_SM_MULTITAP_PINYIN:
  1497.         case INPUT_TYPE_TR_STROKE:
  1498.         case INPUT_TYPE_SM_STROKE:
  1499.             /* Begin AP Symbol table */
  1500.             selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  1501.                                           (((UI_character_type) SymbolPickerDisplayChineseSymbols[index][0]) |
  1502.                                            (((UI_character_type) SymbolPickerDisplayChineseSymbols[index][1]) << 8)));
  1503.             /* End AP Symbol table */
  1504.             break;
  1505.             //ADDED HINDI SYMBOL SUPPORT
  1506.             //PMT LANGUAGE START 20051221
  1507.     #if defined (__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  1508.             /* PMT LANGUAGE END 20051221 */
  1509.         case INPUT_TYPE_MULTITAP_HINDI:
  1510.             if (whether_use_multitap())
  1511.             {
  1512.                 previous_char = gui_multi_line_current_character(&MMI_multiline_inputbox);
  1513.             }
  1514.             else
  1515.             {
  1516.                 previous_char = gui_EMS_current_character(&MMI_EMS_inputbox);
  1517.             }
  1518.             /* Begin AP Symbol table */
  1519.             if (HF_HINDI_RANGE(previous_char) && IdentifyCharacter(previous_char) == CON)
  1520.             {
  1521.                 selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  1522.                                               (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][0]) |
  1523.                                                (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][1]) << 8)));
  1524.             }
  1525.             else
  1526.             {
  1527.                 selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  1528.                                               (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][0]) |
  1529.                                                (((UI_character_type) SymbolPickerDisplayHindiSymbols[index][1]) << 8)));
  1530.             }
  1531.             /* End AP Symbol table */
  1532.             break;
  1533.     #endif /* defined (__MMI_MULTITAP_HINDI__) && !defined(__MMI_T9_HINDI__) && !defined(__MMI_ZI_HINDI__) && !defined(__MMI_CSTAR_HINDI__) */  //KP Jerry add "__MMI_CSTAR_HINDI__" on 2007-4-13
  1534.         default:
  1535.             /* Begin AP Symbol table */
  1536.             selected_symbol = Transform_LF_SPACE_Symbol((UI_character_type)
  1537.                                           (((UI_character_type) SymbolPickerDisplaySymbols[index][0]) |
  1538.                                            (((UI_character_type) SymbolPickerDisplaySymbols[index][1]) << 8)));
  1539.             /* End AP Symbol table */
  1540.     }
  1541.    
  1542.     gdi_layer_lock_frame_buffer();
  1543. #if(UI_DOUBLE_BUFFER_SUPPORT)
  1544.     gui_lock_double_buffer();
  1545. #endif 
  1546.     GoBackHistory();
  1547. #if(UI_DOUBLE_BUFFER_SUPPORT)
  1548.     gui_unlock_double_buffer();
  1549. #endif 
  1550.     InputMethodScreenCloseFunction();
  1551.     wgui_inputbox_insert_symbol(selected_symbol);
  1552.     gdi_layer_unlock_frame_buffer();
  1553.     gdi_layer_blt_previous(0,0,UI_device_width-1, UI_device_height-1);
  1554.     
  1555.     switch (MMI_current_input_type & INPUT_TYPE_MASK)
  1556.     {
  1557. //KP Jerry modify on 2007-4-18 start
  1558. #ifdef __MMI_LANG_TR_CHINESE__      //KP Jerry add on 2007-4-17
  1559.         case INPUT_TYPE_TR_MULTITAP_BOPOMO:
  1560.         case INPUT_TYPE_TR_BOPOMO:
  1561.         case INPUT_TYPE_TR_STROKE:
  1562. #endif/*__MMI_LANG_TR_CHINESE__*/      //KP Jerry add on 2007-4-17
  1563. #ifdef __MMI_LANG_SM_CHINESE__      //KP Jerry add on 2007-4-17
  1564.         case INPUT_TYPE_SM_MULTITAP_PINYIN:
  1565.         case INPUT_TYPE_SM_PINYIN:
  1566.         case INPUT_TYPE_SM_STROKE:
  1567. #endif/*__MMI_LANG_SM_CHINESE__*/      //KP Jerry add on 2007-4-17
  1568.         case INPUT_TYPE_SMART_UPPERCASE_ABC:
  1569.         case INPUT_TYPE_SMART_LOWERCASE_ABC:
  1570. //KP Jerry modify on 2007-4-18 end
  1571.             /* MTK Terry for Spanish French German Italian Russian Thai Turkish Portuguese Indonesian Malay Vietnamese */
  1572.     #if defined(__MMI_T9_SPANISH__) || defined(__MMI_ZI_EU_SPANISH__) || defined(__MMI_ZI_SA_SPANISH__) || defined(__MMI_CSTAR_SPANISH__) //KP Jerry add "__MMI_CSTAR_SPANISH__" on 2007-4-13
  1573.         case INPUT_TYPE_SMART_UPPERCASE_SPANISH:
  1574.         case INPUT_TYPE_SMART_LOWERCASE_SPANISH:
  1575.     #endif /* defined(__MMI_T9_SPANISH__) || defined(__MMI_ZI_EU_SPANISH__) || defined(__MMI_ZI_SA_SPANISH__) || defined(__MMI_CSTAR_SPANISH__) */  //KP Jerry add "__MMI_CSTAR_SPANISH__" on 2007-4-13
  1576.             /* PMT VIKASG START 20050729 */
  1577.     #if defined(__MMI_T9_DANISH__) || defined(__MMI_ZI_DANISH__) || defined(__MMI_CSTAR_DANISH__) //KP Jerry add "__MMI_CSTAR_DANISH__" on 2007-4-13
  1578.         case INPUT_TYPE_SMART_UPPERCASE_DANISH:
  1579.         case INPUT_TYPE_SMART_LOWERCASE_DANISH:
  1580.     #endif /* defined(__MMI_T9_DANISH__) || defined(__MMI_ZI_DANISH__) || defined(__MMI_CSTAR_DANISH__) */  //KP Jerry add "__MMI_CSTAR_DANISH__" on 2007-4-13
  1581.             //PMT VIKASG END 20050729
  1582.             //PMT CZ_PO_TU START 20050812
  1583.     #if defined(__MMI_T9_POLISH__) || defined(__MMI_ZI_POLISH__) || defined(__MMI_CSTAR_POLISH__) //KP Jerry add "__MMI_CSTAR_POLISH__" on 2007-4-13
  1584.         case INPUT_TYPE_SMART_UPPERCASE_POLISH:
  1585.         case INPUT_TYPE_SMART_LOWERCASE_POLISH:
  1586.     #endif /* defined(__MMI_T9_POLISH__) || defined(__MMI_ZI_POLISH__) || defined(__MMI_CSTAR_POLISH__) */  //KP Jerry add "__MMI_CSTAR_POLISH__" on 2007-4-13
  1587.             /* PMT CZ_PO_TU END 20050812 */
  1588.     #if defined(__MMI_T9_FRENCH__) || defined(__MMI_ZI_CA_FRENCH__) || defined(__MMI_ZI_EU_FRENCH__) || defined(__MMI_CSTAR_FRENCH__) //KP Jerry add "__MMI_CSTAR_FRENCH__" on 2007-4-13
  1589.         case INPUT_TYPE_SMART_UPPERCASE_FRENCH:
  1590.         case INPUT_TYPE_SMART_LOWERCASE_FRENCH:
  1591.     #endif /* defined(__MMI_T9_FRENCH__) || defined(__MMI_ZI_CA_FRENCH__) || defined(__MMI_ZI_EU_FRENCH__) || defined(__MMI_CSTAR_FRENCH__) */  //KP Jerry add "__MMI_CSTAR_FRENCH__" on 2007-4-13
  1592.     #if defined(__MMI_T9_GERMAN__) || defined(__MMI_ZI_GERMAN__) || defined(__MMI_CSTAR_GERMAN__) //KP Jerry add "__MMI_CSTAR_GERMAN__" on 2007-4-13
  1593.         case INPUT_TYPE_SMART_UPPERCASE_GERMAN:
  1594.         case INPUT_TYPE_SMART_LOWERCASE_GERMAN:
  1595.     #endif /* defined(__MMI_T9_GERMAN__) || defined(__MMI_ZI_GERMAN__) || defined(__MMI_CSTAR_GERMAN__) */  //KP Jerry add "__MMI_CSTAR_GERMAN__" on 2007-4-13
  1596.     #if defined(__MMI_T9_ITALIAN__) || defined(__MMI_ZI_ITALIAN__) || defined(__MMI_CSTAR_ITALIAN__) //KP Jerry add "__MMI_CSTAR_ITALIAN__" on 2007-4-13
  1597.         case INPUT_TYPE_SMART_UPPERCASE_ITALIAN:
  1598.         case INPUT_TYPE_SMART_LOWERCASE_ITALIAN:
  1599.     #endif /* defined(__MMI_T9_ITALIAN__) || defined(__MMI_ZI_ITALIAN__) || defined(__MMI_CSTAR_ITALIAN__) */  //KP Jerry add "__MMI_CSTAR_ITALIAN__" on 2007-4-13
  1600.             /* START PMT VANDANA 20051506 */
  1601.     #if defined (__MMI_T9_RUSSIAN__) || defined(__MMI_ZI_RUSSIAN__) || defined(__MMI_ZI_RECOMMENDED_SIZE_RUSSIAN__) || defined(__MMI_CSTAR_RUSSIAN__) //KP Jerry add "__MMI_CSTAR_RUSSIAN__" on 2007-4-13
  1602.             /* END PMT */
  1603.         case INPUT_TYPE_SMART_UPPERCASE_RUSSIAN:
  1604.         case INPUT_TYPE_SMART_LOWERCASE_RUSSIAN:
  1605.     #endif /* defined (__MMI_T9_RUSSIAN__) || defined(__MMI_ZI_RUSSIAN__) || defined(__MMI_ZI_RECOMMENDED_SIZE_RUSSIAN__) || defined(__MMI_CSTAR_RUSSIAN__) */  //KP Jerry add "__MMI_CSTAR_RUSSIAN__" on 2007-4-13
  1606.             /* PMT BULGARIAN START 20051201 */
  1607.     #if defined (__MMI_T9_BULGARIAN__) || defined(__MMI_ZI_BULGARIAN__) || defined(__MMI_CSTAR_BULGARIAN__) //KP Jerry add "__MMI_CSTAR_BULGARIAN__" on 2007-4-13
  1608.         case INPUT_TYPE_SMART_UPPERCASE_BULGARIAN:
  1609.         case INPUT_TYPE_SMART_LOWERCASE_BULGARIAN:
  1610.     #endif /* defined (__MMI_T9_BULGARIAN__) || defined(__MMI_ZI_BULGARIAN__) || defined(__MMI_CSTAR_BULGARIAN__) */  //KP Jerry add "__MMI_CSTAR_BULGARIAN__" on 2007-4-13
  1611.             //PMT BULGARIAN START 20051201
  1612.             //PMT dara added for T9 thai 
  1613.     #if defined(__MMI_ZI_THAI__) || defined (__MMI_T9_THAI__) || defined(__MMI_CSTAR_THAI__) //KP Jerry add "__MMI_CSTAR_THAI__" on 2007-4-13
  1614.         case INPUT_TYPE_SMART_THAI:
  1615.     #endif 
  1616.         case INPUT_TYPE_SMART_ARABIC:
  1617.             /* PMT VIKAS GUPTA START 20051129 */
  1618. //PMT START PERSIAN
  1619.     #ifdef __MMI_ZI_PERSIAN__
  1620.         case INPUT_TYPE_SMART_PERSIAN:
  1621.     #endif 
  1622.             //PMT END PERSIAN               
  1623. //PMT VIKAS GUPTA START 20051129
  1624.         case INPUT_TYPE_SMART_HINDI:
  1625.             //PMT VIKAS GUPTA END 20051129
  1626.             //PMT START GR_HE_CZ_FI_DA_HU 20051007
  1627.             //PMT LANGUAGE START 20051221
  1628.     #if defined(__MMI_ZI_HEBREW__) || defined (__MMI_T9_HEBREW__) || defined(__MMI_CSTAR_HEBREW__) //KP Jerry add "__MMI_CSTAR_HEBREW__" on 2007-4-13
  1629.         case INPUT_TYPE_SMART_HEBREW:
  1630.     #endif 
  1631.             //PMT LANGUAGE END 20051221
  1632.             //PMT END GR_HE_CZ_FI_DA_HU 20051007
  1633.             //PMT CZ_PO_TU START 20050812
  1634.     #if defined(__MMI_ZI_TURKISH__) || defined(__MMI_T9_TURKISH__) || defined(__MMI_CSTAR_TURKISH__) //KP Shahu add "__MMI_CSTAR_TURKISH__" on 2007-4-13
  1635.             /* PMT CZ_PO_TU END 20050812 */
  1636.         case INPUT_TYPE_SMART_UPPERCASE_TURKISH:
  1637.         case INPUT_TYPE_SMART_LOWERCASE_TURKISH:
  1638.     #endif /* defined(__MMI_ZI_TURKISH__) || defined(__MMI_T9_TURKISH__) || defined(__MMI_CSTAR_TURKISH__) */  //KP Shahu add "__MMI_CSTAR_TURKISH__" on 2007-4-13
  1639.             /* PMT SHARIQ START 20050729 */
  1640.     #if defined(__MMI_T9_PORTUGUESE__) || defined(__MMI_ZI_EU_PORTUGUESE__) || defined(__MMI_ZI_SA_PORTUGUESE__) || defined(__MMI_ZI_BZ_PORTUGUESE__) || defined(__MMI_CSTAR_PORTUGUESE__) //KP Jerry add "__MMI_CSTAR_PORTUGUESE__" on 2007-4-13
  1641.             /* PMT SHARIQ END 20050729 */
  1642.         case INPUT_TYPE_SMART_UPPERCASE_PORTUGUESE:
  1643.         case INPUT_TYPE_SMART_LOWERCASE_PORTUGUESE:
  1644.     #endif /* defined(__MMI_T9_PORTUGUESE__) || defined(__MMI_ZI_EU_PORTUGUESE__) || defined(__MMI_ZI_SA_PORTUGUESE__) || defined(__MMI_ZI_BZ_PORTUGUESE__) || defined(__MMI_CSTAR_PORTUGUESE__) */  //KP Jerry add "__MMI_CSTAR_PORTUGUESE__" on 2007-4-13
  1645.             /* PMT Gurdev Start 20050729 */
  1646.     #if defined(__MMI_ZI_INDONESIAN__) || defined(__MMI_T9_INDONESIAN__) || defined(__MMI_CSTAR_INDONESIAN__) //KP Jerry add "__MMI_CSTAR_INDONESIAN__" on 2007-4-13
  1647.         case INPUT_TYPE_SMART_UPPERCASE_INDONESIAN:
  1648.         case INPUT_TYPE_SMART_LOWERCASE_INDONESIAN:
  1649.     #endif /* defined(__MMI_ZI_INDONESIAN__) || defined(__MMI_T9_INDONESIAN__) || defined(__MMI_CSTAR_INDONESIAN__) */  //KP Jerry add "__MMI_CSTAR_INDONESIAN__" on 2007-4-13
  1650.             //PMT Gurdev End 20050729
  1651.             //PMT CZ_PO_TU START 20050812
  1652.             //PMT START GR_HE_CZ_FI_DA_HU 20051007
  1653.     #if defined(__MMI_T9_CZECH__) || defined(__MMI_ZI_CZECH__) || defined(__MMI_CSTAR_CZECH__) //KP Jerry add "__MMI_CSTAR_CZECH__" on 2007-4-13
  1654.             /* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
  1655.         case INPUT_TYPE_SMART_UPPERCASE_CZECH:
  1656.         case INPUT_TYPE_SMART_LOWERCASE_CZECH:
  1657.     #endif /* defined(__MMI_T9_CZECH__) || defined(__MMI_ZI_CZECH__) || defined(__MMI_CSTAR_CZECH__) */  //KP Jerry add "__MMI_CSTAR_CZECH__" on 2007-4-13
  1658.             //PMT CZ_PO_TU END 20050812
  1659.             //PMT START LANGUAGE 20060104
  1660.     #if defined(__MMI_ZI_MALAY__) || defined(__MMI_T9_MALAY__) || defined(__MMI_CSTAR_MALAY__) //KP Jerry add "__MMI_CSTAR_MALAY__" on 2007-4-13
  1661.             /* PMT END LANGUAGE 20060104 */
  1662.         case INPUT_TYPE_SMART_UPPERCASE_MALAY:
  1663.         case INPUT_TYPE_SMART_LOWERCASE_MALAY:
  1664.     #endif /* defined(__MMI_ZI_MALAY__) || defined(__MMI_T9_MALAY__) || defined(__MMI_CSTAR_MALAY__) */  //KP Jerry add "__MMI_CSTAR_MALAY__" on 2007-4-13
  1665.             /* PMT BHASKAR START 20052907 */
  1666.     #if defined(__MMI_ZI_VIETNAMESE__) || defined(__MMI_T9_VIETNAMESE__) || defined(__MMI_CSTAR_VIETNAMESE__) //KP Jerry add "__MMI_CSTAR_VIETNAMESE__" on 2007-4-13
  1667.             /* PMT BHASKAR END 20052907 */
  1668.         case INPUT_TYPE_SMART_UPPERCASE_VIETNAMESE:
  1669.         case INPUT_TYPE_SMART_LOWERCASE_VIETNAMESE:
  1670.     #endif /* defined(__MMI_ZI_VIETNAMESE__) || defined(__MMI_T9_VIETNAMESE__) || defined(__MMI_CSTAR_VIETNAMESE__) */  //KP Jerry add "__MMI_CSTAR_VIETNAMESE__" on 2007-4-13
  1671.             /* PMT START HU_FI 20050825 */
  1672.     #if defined(__MMI_ZI_FINNISH__) || defined(__MMI_T9_FINNISH__) || defined(__MMI_CSTAR_FINNISH__) //KP Jerry add "__MMI_CSTAR_FINNISH__" on 2007-4-13
  1673.         case INPUT_TYPE_SMART_UPPERCASE_FINNISH:
  1674.         case INPUT_TYPE_SMART_LOWERCASE_FINNISH:
  1675.     #endif /* defined(__MMI_ZI_FINNISH__) || defined(__MMI_T9_FINNISH__) || defined(__MMI_CSTAR_FINNISH__) */  //KP Jerry add "__MMI_CSTAR_FINNISH__" on 2007-4-13
  1676.             /* PMT START GR_HE_CZ_FI_DA_HU 20051007 */
  1677.     #if defined(__MMI_T9_HUNGARIAN__) || defined(__MMI_ZI_HUNGARIAN__) || defined(__MMI_CSTAR_HUNGARIAN__) //KP Jerry add "__MMI_CSTAR_HUNGARIAN__" on 2007-4-13
  1678.             /* PMT END GR_HE_CZ_FI_DA_HU 20051007 */
  1679.         case INPUT_TYPE_SMART_UPPERCASE_HUNGARIAN:
  1680.         case INPUT_TYPE_SMART_LOWERCASE_HUNGARIAN:
  1681.     #endif /* defined(__MMI_T9_HUNGARIAN__) || defined(__MMI_ZI_HUNGARIAN__) || defined(__MMI_CSTAR_HUNGARIAN__) */  //KP Jerry add "__MMI_CSTAR_HUNGARIAN__" on 2007-4-13
  1682.             //PMT END HU_FI 20050825
  1683.             //PMT NO_AR_SL_DU START 20050909
  1684.     #if defined(__MMI_ZI_SLOVAK__) || defined(__MMI_T9_SLOVAK__) || defined(__MMI_CSTAR_SLOVAK__) //KP Jerry add "__MMI_CSTAR_SLOVAK__" on 2007-4-13
  1685.         case INPUT_TYPE_SMART_UPPERCASE_SLOVAK:
  1686.         case INPUT_TYPE_SMART_LOWERCASE_SLOVAK:
  1687.     #endif /* defined(__MMI_ZI_SLOVAK__) || defined(__MMI_T9_SLOVAK__) || defined(__MMI_CSTAR_SLOVAK__) */  //KP Jerry add "__MMI_CSTAR_SLOVAK__" on 2007-4-13
  1688.     #if defined(__MMI_ZI_DUTCH__) || defined(__MMI_T9_DUTCH__) || defined(__MMI_CSTAR_DUTCH__) //KP Jerry add "__MMI_CSTAR_DUTCH__" on 2007-4-13
  1689.         case INPUT_TYPE_SMART_UPPERCASE_DUTCH:
  1690.         case INPUT_TYPE_SMART_LOWERCASE_DUTCH:
  1691.     #endif /* defined(__MMI_ZI_DUTCH__) || defined(__MMI_T9_DUTCH__) || defined(__MMI_CSTAR_DUTCH__) */  //KP Jerry add "__MMI_CSTAR_DUTCH__" on 2007-4-13
  1692.             //Norwegian start
  1693.             //PMT VIKAS GUPTA START PO_NO_ZI 20050930
  1694.     #if defined(__MMI_T9_NORWEGIAN__) || defined(__MMI_ZI_NORWEGIAN__) || defined(__MMI_CSTAR_NORWEGIAN__) //KP Jerry add "__MMI_CSTAR_NORWEGIAN__" on 2007-4-13
  1695.             /* PMT VIKAS GUPTA END PO_NO_ZI 20050930 */
  1696.         case INPUT_TYPE_SMART_UPPERCASE_NORWEGIAN:
  1697.         case INPUT_TYPE_SMART_LOWERCASE_NORWEGIAN:
  1698.     #endif /* defined(__MMI_T9_NORWEGIAN__) || defined(__MMI_ZI_NORWEGIAN__) || defined(__MMI_CSTAR_NORWEGIAN__) */  //KP Jerry add "__MMI_CSTAR_NORWEGIAN__" on 2007-4-13
  1699.             //Norwegian end
  1700.             //PMT NO_AR_SL_DU END 20050909
  1701.             //PMT START SWEDISH 20050916
  1702.     #if defined(__MMI_ZI_SWEDISH__) || defined(__MMI_T9_SWEDISH__) || defined(__MMI_CSTAR_SWEDISH__) //KP Jerry add "__MMI_CSTAR_SWEDISH__" on 2007-4-13
  1703.         case INPUT_TYPE_SMART_UPPERCASE_SWEDISH:
  1704.         case INPUT_TYPE_SMART_LOWERCASE_SWEDISH:
  1705.     #endif /* defined(__MMI_ZI_SWEDISH__) || defined(__MMI_T9_SWEDISH__) || defined(__MMI_CSTAR_SWEDISH__) */  //KP Jerry add "__MMI_CSTAR_SWEDISH__" on 2007-4-13
  1706.             //PMT END SWEDISH 20050916
  1707.             //MTK end
  1708.             /* PMT START CR_ROM_SLO 20050923 */
  1709.     #if defined(__MMI_ZI_CROATIAN__) || defined(__MMI_T9_CROATIAN__) || defined(__MMI_CSTAR_CROATIAN__) //KP Jerry add "__MMI_CSTAR_CROATIAN__" on 2007-4-13
  1710.         case INPUT_TYPE_SMART_UPPERCASE_CROATIAN:
  1711.         case INPUT_TYPE_SMART_LOWERCASE_CROATIAN:
  1712.     #endif /* defined(__MMI_ZI_CROATIAN__) || defined(__MMI_T9_CROATIAN__) || defined(__MMI_CSTAR_CROATIAN__) */  //KP Jerry add "__MMI_CSTAR_CROATIAN__" on 2007-4-13
  1713.             /* PMT START LANGUAGE 20060104 */
  1714.     #if defined(__MMI_ZI_ROMANIAN__) || defined(__MMI_T9_ROMANIAN__) || defined(__MMI_CSTAR_ROMANIAN__) //KP Jerry add "__MMI_CSTAR_ROMANIAN__" on 2007-4-13
  1715.             /* PMT END LANGUAGE 20060104 */
  1716.         case INPUT_TYPE_SMART_UPPERCASE_ROMANIAN:
  1717.         case INPUT_TYPE_SMART_LOWERCASE_ROMANIAN:
  1718.     #endif /* defined(__MMI_ZI_ROMANIAN__) || defined(__MMI_T9_ROMANIAN__) || defined(__MMI_CSTAR_ROMANIAN__) */  //KP Jerry add "__MMI_CSTAR_ROMANIAN__" on 2007-4-13
  1719.             /* PMT LANGUAGE START 20051221 */
  1720.     #if defined(__MMI_ZI_SLOVENIAN__) || defined(__MMI_T9_SLOVENIAN__) || defined(__MMI_CSTAR_SLOVENIAN__) //KP Jerry add "__MMI_CSTAR_SLOVENIAN__" on 2007-4-13
  1721.             /* PMT LANGUAGE END 20051221 */
  1722.         case INPUT_TYPE_SMART_UPPERCASE_SLOVENIAN:
  1723.         case INPUT_TYPE_SMART_LOWERCASE_SLOVENIAN:
  1724.     #endif /* defined(__MMI_ZI_SLOVENIAN__) || defined(__MMI_T9_SLOVENIAN__) || defined(__MMI_CSTAR_SLOVENIAN__) */  //KP Jerry add "__MMI_CSTAR_SLOVENIAN__" on 2007-4-13
  1725.             /* PMT END CR_ROM_SLO 20050923 */
  1726.             /* PMT START GR_HE_CZ_FI_DA_HU 20051007 */
  1727.     #if defined(__MMI_ZI_GREEK__) || defined(__MMI_T9_GREEK__) || defined(__MMI_CSTAR_GREEK__) //KP Jerry add "__MMI_CSTAR_GREEK__" on 2007-4-13
  1728.         case INPUT_TYPE_SMART_UPPERCASE_GREEK:
  1729.         case INPUT_TYPE_SMART_LOWERCASE_GREEK:
  1730.     #endif /* defined(__MMI_ZI_GREEK__) || defined(__MMI_T9_GREEK__) || defined(__MMI_CSTAR_GREEK__) */  //KP Jerry add "__MMI_CSTAR_GREEK__" on 2007-4-13
  1731.             //PMT END GR_HE_CZ_FI_DA_HU 20051007
  1732.             //W05.34 Fix Screen will be clear after inserting symbols
  1733.     #if !defined(__MMI_TOUCH_SCREEN__)
  1734.     #ifdef __MMI_T9__
  1735.             T9SynT9WithInputBox();
  1736.     #elif defined __MMI_ZI__
  1737.             ZiDisplay();
  1738. //KP Jerry add on 2007-3-8 start
  1739.  #elif defined __MMI_CSTAR__
  1740.             CstarDisplay();
  1741. //KP Jerry add on 2007-3-8 end
  1742.     #elif defined __MMI_KA__
  1743.             KonkaDisplay();
  1744.     #elif defined __MMI_ITAP__
  1745. /* under construction !*/
  1746. /* under construction !*/
  1747.     #endif 
  1748.     #endif /* !defined(__MMI_TOUCH_SCREEN__) */ 
  1749.             break;
  1750.     }
  1751. }
  1752. /*****************************************************************************
  1753.  * FUNCTION
  1754.  *  SymbolPickerHandleRSKFromMenuList
  1755.  * DESCRIPTION
  1756.  *  
  1757.  * PARAMETERS
  1758.  *  void
  1759.  * RETURNS
  1760.  *  void
  1761.  *****************************************************************************/
  1762. void SymbolPickerHandleRSKFromMenuList(void)
  1763. {
  1764.     /*----------------------------------------------------------------*/
  1765.     /* Local Variables                                                */
  1766.     /*----------------------------------------------------------------*/
  1767.     /*----------------------------------------------------------------*/
  1768.     /* Code Body                                                      */
  1769.     /*----------------------------------------------------------------*/
  1770.     GoBackHistory();
  1771. }
  1772. /*****************************************************************************
  1773.  * FUNCTION
  1774.  *  EntrySymbolPickerScreenFromMenuList
  1775.  * DESCRIPTION
  1776.  *  
  1777.  * PARAMETERS
  1778.  *  void
  1779.  * RETURNS
  1780.  *  void
  1781.  *****************************************************************************/
  1782. void EntrySymbolPickerScreenFromMenuList(void)
  1783. {
  1784.     /*----------------------------------------------------------------*/
  1785.     /* Local Variables                                                */
  1786.     /*----------------------------------------------------------------*/
  1787.     U8 *guiBuffer;
  1788.     /*----------------------------------------------------------------*/
  1789.     /* Code Body                                                      */
  1790.     /*----------------------------------------------------------------*/
  1791.     EntryNewScreen(SCR_SYMBOL_PICKER_SCREEN, ExitSymbolPickerScreenFromMenuList, NULL, NULL);
  1792.     guiBuffer = GetCurrGuiBuffer(SCR_SYMBOL_PICKER_SCREEN);
  1793.     if (guiBuffer != NULL)
  1794.     {
  1795.         MMI_current_input_ext_type = SymbolFilterFlag;
  1796.         MMI_AP_No_Show_Symbol_List_flag = APSetNoShowSymbolFlag;
  1797.         MMI_english_input_mode_flag = SymbolEnglishOnlyFlag;
  1798.     }
  1799.     PrepareSymbolTableAndShowCategory(guiBuffer);
  1800.     SetLeftSoftkeyFunction(SymbolPickerHandleLSKFromMenuList, KEY_EVENT_UP);
  1801.     SetRightSoftkeyFunction(SymbolPickerHandleRSKFromMenuList, KEY_EVENT_UP);
  1802. }
  1803. /*****************************************************************************
  1804.  * FUNCTION
  1805.  *  ExitSymbolPickerScreenFromMenuList
  1806.  * DESCRIPTION
  1807.  *  
  1808.  * PARAMETERS
  1809.  *  void
  1810.  * RETURNS
  1811.  *  void
  1812.  *****************************************************************************/
  1813. void ExitSymbolPickerScreenFromMenuList(void)
  1814. {
  1815.     /*----------------------------------------------------------------*/
  1816.     /* Local Variables                                                */
  1817.     /*----------------------------------------------------------------*/
  1818.     history h;
  1819.     S16 nHistory = 0;
  1820.     /*----------------------------------------------------------------*/
  1821.     /* Code Body                                                      */
  1822.     /*----------------------------------------------------------------*/
  1823.     h.scrnID = SCR_SYMBOL_PICKER_SCREEN;
  1824.     h.entryFuncPtr = EntrySymbolPickerScreenFromMenuList;
  1825.     SymbolFilterFlag = MMI_current_input_ext_type;
  1826.     SymbolEnglishOnlyFlag = MMI_english_input_mode_flag;
  1827.     /* Begin AP Symbol table */
  1828.     APSetNoShowSymbolFlag = MMI_AP_No_Show_Symbol_List_flag;
  1829.     /* End AP Symbol table */
  1830.     pfnUnicodeStrcpy((S8*) h.inputBuffer, (S8*) & nHistory);
  1831.     GetCategoryHistory(h.guiBuffer);
  1832.     AddHistory(h);
  1833. }
  1834. /*****************************************************************************
  1835.  * FUNCTION
  1836.  *  SetInputMethodAndDoneCaptionIcon
  1837.  * DESCRIPTION
  1838.  *  
  1839.  * PARAMETERS
  1840.  *  IconId      [IN]        
  1841.  * RETURNS
  1842.  *  void
  1843.  *****************************************************************************/
  1844. void SetInputMethodAndDoneCaptionIcon(U16 IconId)
  1845. {
  1846.     /*----------------------------------------------------------------*/
  1847.     /* Local Variables                                                */
  1848.     /*----------------------------------------------------------------*/
  1849.     /*----------------------------------------------------------------*/
  1850.     /* Code Body                                                      */
  1851.     /*----------------------------------------------------------------*/
  1852.     gInputMethodAndDoneCaptionIcon = IconId;
  1853. }
  1854. /*****************************************************************************
  1855.  * FUNCTION
  1856.  *  EntryScrForInputMethodAndDone
  1857.  * DESCRIPTION
  1858.  *  
  1859.  * PARAMETERS
  1860.  *  void
  1861.  * RETURNS
  1862.  *  void
  1863.  *****************************************************************************/
  1864. void EntryScrForInputMethodAndDone(void)
  1865. {
  1866.     /*----------------------------------------------------------------*/
  1867.     /* Local Variables                                                */
  1868.     /*----------------------------------------------------------------*/
  1869.     U8 *guiBuffer;
  1870.     U16 nStrItemList[10];
  1871.     U16 numItems;
  1872.     /*----------------------------------------------------------------*/
  1873.     /* Code Body                                                      */
  1874.     /*----------------------------------------------------------------*/
  1875.     /* ExecuteCurrExitHandler (); */
  1876.     EntryNewScreen(SCR_INPUT_METHOD_AND_DONE, ExitScrForInputMethodAndDone, NULL, NULL);
  1877.     guiBuffer = GetCurrGuiBuffer(SCR_INPUT_METHOD_AND_DONE);
  1878.     SetParentHandler(MENU_INPUT_METHOD_AND_DONE_OPTION_ID);
  1879.     RegisterHighlightHandler(ExecuteCurrHiliteHandler);
  1880.     numItems = GetNumOfChild(MENU_INPUT_METHOD_AND_DONE_OPTION_ID);
  1881.     GetSequenceStringIds(MENU_INPUT_METHOD_AND_DONE_OPTION_ID, nStrItemList);
  1882.     ShowCategory52Screen(
  1883.         STR_GLOBAL_OPTIONS,
  1884.         gInputMethodAndDoneCaptionIcon,
  1885.         STR_GLOBAL_OK,
  1886.         IMG_GLOBAL_OK,
  1887.         STR_GLOBAL_BACK,
  1888.         IMG_GLOBAL_BACK,
  1889.         numItems,
  1890.         nStrItemList,
  1891.         (PU16) gIndexIconsImageList,
  1892.         NULL,
  1893.         0,
  1894.         0,
  1895.         guiBuffer);
  1896.     /* SetExitHandler (SCR_INPUT_METHOD_AND_DONE, ExitScrForInputMethodAndDone); */
  1897. }
  1898. /*****************************************************************************
  1899.  * FUNCTION
  1900.  *  ExitScrForInputMethodAndDone
  1901.  * DESCRIPTION
  1902.  *  
  1903.  * PARAMETERS
  1904.  *  void
  1905.  * RETURNS
  1906.  *  void
  1907.  *****************************************************************************/
  1908. void ExitScrForInputMethodAndDone(void)
  1909. {
  1910.     /*----------------------------------------------------------------*/
  1911.     /* Local Variables                                                */
  1912.     /*----------------------------------------------------------------*/
  1913.     history currHistory;
  1914.     S16 ucs2InputBuffer = 0;
  1915.     /*----------------------------------------------------------------*/
  1916.     /* Code Body                                                      */
  1917.     /*----------------------------------------------------------------*/
  1918.     currHistory.scrnID = SCR_INPUT_METHOD_AND_DONE;
  1919.     currHistory.entryFuncPtr = EntryScrForInputMethodAndDone;
  1920.     pfnUnicodeStrcpy((S8*) currHistory.inputBuffer, (S8*) & ucs2InputBuffer);
  1921.     GetCategoryHistory(currHistory.guiBuffer);
  1922.     AddHistory(currHistory);
  1923.     /* gInputMethodAndDoneCaptionIcon = 0; */
  1924. }
  1925. /* Leo add, 0608 */
  1926. FuncPtr PopupFunc = NULL;
  1927. extern void ShowCategory65Screen(U8 *message, U16 message_icon, U8 *history_buffer);
  1928. /* MTK added by JL 040523, move from events.c */
  1929. /*****************************************************************
  1930.    FUNCTION NAME     : DisplayPopup()
  1931.    PURPOSE           : Displays the common pop-up screen used across all applications
  1932.    INPUT PARAMETERS  : U8 * string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId
  1933.    OUTPUT PARAMETERS : nil
  1934.    RETURNS           : nil
  1935.    REMARKS           : nil
  1936. *******************************************************************/
  1937. #ifdef IS_VSMJ_BASE_GAME  //jerson add 20070619
  1938. extern BOOL mmi_gx_vsmj_getplaystate(void);     //KP Jerry add for avoid screen-display-error when vsmj is playing on 2007-3-24
  1939. #endif
  1940. #ifdef __MMI_SCREEN_ROTATE__
  1941. void DisplayPopupRotated(U8 *string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId,
  1942.                          mmi_frm_screen_rotate_enum rotation)
  1943. #else /* __MMI_SCREEN_ROTATE__ */ 
  1944. void DisplayPopup(U8 *string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId)
  1945. #endif /* __MMI_SCREEN_ROTATE__ */ 
  1946. {
  1947.     /*----------------------------------------------------------------*/
  1948.     /* Local Variables                                                */
  1949.     /*----------------------------------------------------------------*/
  1950.     /*----------------------------------------------------------------*/
  1951.     /* Code Body                                                      */
  1952.     /*----------------------------------------------------------------*/
  1953. //KP Jerry add for avoid screen-display-error when vsmj is playing on 2007-3-24 start
  1954. #ifdef IS_VSMJ_BASE_GAME  //jerson add 20070619
  1955.     if(mmi_gx_vsmj_getplaystate())
  1956.     {
  1957.     GoBackHistory();
  1958.     }
  1959. #endif
  1960. //KP Jerry add for avoid screen-display-error when vsmj is playing on 2007-3-24 end
  1961.     TurnOnBacklight(TRUE);  /* 033005 Calvin added */
  1962.     /* ExecuteCurrExitHandler(); */
  1963.     EntryNewScreen(POPUP_SCREENID, ExitDisplayPopup, NULL, NULL);
  1964. #ifdef __MMI_SCREEN_ROTATE__
  1965.     mmi_frm_screen_rotate(rotation);
  1966. #endif 
  1967.     /* to sync popup screen display, imageOnBottom flag is no more used */
  1968.     // if(imageOnBottom) ShowCategory63Screen(string,imageId,NULL);
  1969.     // else
  1970.     ShowCategory65Screen(string, imageId, NULL);
  1971.     /* MTK Elvis to register the down key event to enable the */
  1972.     SetGroupKeyHandler(PopupTimerFlagEnable, (PU16) PresentAllKeys, TOTAL_KEYS, KEY_EVENT_DOWN);
  1973.     /* MTK end */
  1974.    /***** Moved By Deepali*********/
  1975.     SetGroupKeyHandler(PopupCloseByPressAnyKey, (PU16) PresentAllKeys, TOTAL_KEYS, KEY_EVENT_UP);
  1976.    /*******************************/
  1977.     /* SetExitHandler(POPUP_SCREENID, ExitDisplayPopup); */
  1978.     StartTimer(POPUP_TIMER, popupDuration, PopupTimerOver);
  1979.     popupToneId = toneId;
  1980.     if (popupToneId)
  1981.         playRequestedTone(popupToneId);
  1982. }
  1983. #ifdef __MMI_SCREEN_ROTATE__
  1984. void DisplayPopup(U8 *string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId)
  1985. {
  1986.     DisplayPopupRotated(string, imageId, imageOnBottom, popupDuration, toneId, MMI_FRM_SCREEN_ROTATE_0);
  1987. }
  1988. #endif /* __MMI_SCREEN_ROTATE__ */ 
  1989. /*****************************************************************************
  1990.  * FUNCTION
  1991.  *  ExitDisplayPopup
  1992.  * DESCRIPTION
  1993.  *  Exit function for DisplayPopup()
  1994.  * PARAMETERS
  1995.  *  void
  1996.  * RETURNS
  1997.  *  void
  1998.  *****************************************************************************/
  1999. void ExitDisplayPopup(void)
  2000. {
  2001.     /*----------------------------------------------------------------*/
  2002.     /* Local Variables                                                */
  2003.     /*----------------------------------------------------------------*/
  2004.     /*----------------------------------------------------------------*/
  2005.     /* Code Body                                                      */
  2006.     /*----------------------------------------------------------------*/
  2007.     StopTimer(POPUP_TIMER);
  2008.     /* 121605 popup tone Calvin Start */
  2009.     if (popupToneId)
  2010.     {
  2011.         stopRequestedTone(popupToneId);
  2012.         popupToneId = 0;
  2013.     }
  2014.     /* 121605 popup tone Calvin End */
  2015. }
  2016. /*****************************************************************************
  2017.  * FUNCTION
  2018.  *  DisplayPopupCallBack
  2019.  * DESCRIPTION
  2020.  *  
  2021.  * PARAMETERS
  2022.  *  string              [?]         
  2023.  *  imageId             [IN]        
  2024.  *  imageOnBottom       [IN]        
  2025.  *  popupDuration       [IN]        
  2026.  *  toneId              [IN]        
  2027.  *  f                   [IN]        
  2028.  * RETURNS
  2029.  *  void
  2030.  *****************************************************************************/
  2031. void DisplayPopupCallBack(U8 *string, U16 imageId, U8 imageOnBottom, U32 popupDuration, U8 toneId, FuncPtr f)
  2032. {
  2033.     /*----------------------------------------------------------------*/
  2034.     /* Local Variables                                                */
  2035.     /*----------------------------------------------------------------*/
  2036.     /*----------------------------------------------------------------*/
  2037.     /* Code Body                                                      */
  2038.     /*----------------------------------------------------------------*/
  2039.     /* ExecuteCurrExitHandler(); */
  2040.     EntryNewScreen(POPUP_SCREENID, ExitDisplayPopupCallBack, NULL, NULL);
  2041.     /* to sync popup screen display, imageOnBottom flag is no more used */
  2042.     // if(imageOnBottom) ShowCategory63Screen(string,imageId,NULL);
  2043.     // else
  2044.     ShowCategory65Screen(string, imageId, NULL);
  2045.     /* MTK Elvis to register the down key event to enable the */
  2046.     SetGroupKeyHandler(PopupTimerFlagEnable, (PU16) PresentAllKeys, TOTAL_KEYS, KEY_EVENT_DOWN);
  2047.     /* MTK end */
  2048.    /***** Moved By Deepali*********/
  2049.     //Removed by Leo, user should not be able to close the screen before call back function is executed.
  2050.     //    SetGroupKeyHandler(PopupCloseByPressAnyKey,(PU16)PresentAllKeys,TOTAL_KEYS,KEY_EVENT_UP);
  2051.    /*******************************/
  2052.     /* SetExitHandler(POPUP_SCREENID, ExitDisplayPopup); */
  2053.     StartTimer(POPUP_TIMER, popupDuration, PopupTimerOverCallBack);
  2054.     PopupFunc = f;
  2055.     popupToneId = toneId;
  2056.     if (popupToneId)
  2057.     {
  2058.         playRequestedTone(popupToneId);
  2059.     }
  2060. }
  2061. /*****************************************************************************
  2062.  * FUNCTION
  2063.  *  ExitDisplayPopupCallBack
  2064.  * DESCRIPTION
  2065.  *  Exit function for DisplayPopup()
  2066.  * PARAMETERS
  2067.  *  void
  2068.  * RETURNS
  2069.  *  void
  2070.  *****************************************************************************/
  2071. void ExitDisplayPopupCallBack(void)
  2072. {
  2073.     /*----------------------------------------------------------------*/
  2074.     /* Local Variables                                                */
  2075.     /*----------------------------------------------------------------*/
  2076.     /*----------------------------------------------------------------*/
  2077.     /* Code Body                                                      */
  2078.     /*----------------------------------------------------------------*/
  2079.     StopTimer(POPUP_TIMER);
  2080.     /* 121605 popup tone Calvin Start */
  2081.     if (popupToneId)
  2082.     {
  2083.         stopRequestedTone(popupToneId);
  2084.         popupToneId = 0;
  2085.     }
  2086.     /* 121605 popup tone Calvin End */
  2087.     PopupFunc = NULL;
  2088. }
  2089. /*****************************************************************************
  2090.  * FUNCTION
  2091.  *  PopupTimerFlagEnable
  2092.  * DESCRIPTION
  2093.  *  turn on popup timer flag
  2094.  * PARAMETERS
  2095.  *  void
  2096.  * RETURNS
  2097.  *  void
  2098.  *****************************************************************************/
  2099. BOOL popUpTimerFlag = FALSE;
  2100. void PopupTimerFlagEnable(void)
  2101. {
  2102.     /*----------------------------------------------------------------*/
  2103.     /* Local Variables                                                */
  2104.     /*----------------------------------------------------------------*/
  2105.     /*----------------------------------------------------------------*/
  2106.     /* Code Body                                                      */
  2107.     /*----------------------------------------------------------------*/
  2108.     popUpTimerFlag = TRUE;
  2109. }
  2110. /*****************************************************************************
  2111.  * FUNCTION
  2112.  *  PopupCloseByPressAnyKey
  2113.  * DESCRIPTION
  2114.  *  Stops the timer and goes back after pop-up timer over
  2115.  * PARAMETERS
  2116.  *  void
  2117.  * RETURNS
  2118.  *  void
  2119.  *****************************************************************************/
  2120. void PopupCloseByPressAnyKey(void)
  2121. {
  2122.     /*----------------------------------------------------------------*/
  2123.     /* Local Variables                                                */
  2124.     /*----------------------------------------------------------------*/
  2125.     /*----------------------------------------------------------------*/
  2126.     /* Code Body                                                      */
  2127.     /*----------------------------------------------------------------*/
  2128.     if (popUpTimerFlag == TRUE)
  2129.     {
  2130.         popUpTimerFlag = FALSE;
  2131.         /* 121605 popup tone Calvin Start */
  2132.         if (popupToneId)
  2133.         {
  2134.             stopRequestedTone(popupToneId);
  2135.             popupToneId = 0;
  2136.         }
  2137.         /* 121605 popup tone Calvin End */
  2138.     #ifdef __MMI_SUBLCD__
  2139.         if (IsMyTimerExist(POPUP_SUBLCD))
  2140.         {
  2141.             StopTimer(POPUP_SUBLCD);
  2142.             GoBackSubLCDHistory();
  2143.         }
  2144.     #endif /* __MMI_SUBLCD__ */ 
  2145.         StopTimer(POPUP_TIMER);
  2146.         GoBackHistory();
  2147.         /* Leo add, 0608 */
  2148.         if (PopupFunc != NULL)
  2149.         {
  2150.             PopupFunc();
  2151.         }
  2152.         PopupFunc = NULL;
  2153.     }
  2154. }
  2155. /*****************************************************************************
  2156.  * FUNCTION
  2157.  *  PopupTimerOver
  2158.  * DESCRIPTION
  2159.  *  Stops the timer and goes back after pop-up timer over
  2160.  * PARAMETERS
  2161.  *  void
  2162.  * RETURNS
  2163.  *  void
  2164.  *****************************************************************************/
  2165. void PopupTimerOver(void)
  2166. {
  2167.     /*----------------------------------------------------------------*/
  2168.     /* Local Variables                                                */
  2169.     /*----------------------------------------------------------------*/
  2170.     /*----------------------------------------------------------------*/
  2171.     /* Code Body                                                      */
  2172.     /*----------------------------------------------------------------*/
  2173.     StopTimer(POPUP_TIMER);
  2174.     /* 121605 popup tone Calvin Start */
  2175.     if (popupToneId)
  2176.     {
  2177.         stopRequestedTone(popupToneId);
  2178.         popupToneId = 0;
  2179.     }
  2180.     /* 121605 popup tone Calvin End */
  2181.     GoBackHistory();
  2182. }
  2183. /*****************************************************************************
  2184.  * FUNCTION
  2185.  *  PopupTimerOverCallBack
  2186.  * DESCRIPTION
  2187.  *  Stops the timer and Call Callback function after pop-up timer over
  2188.  * PARAMETERS
  2189.  *  void
  2190.  * RETURNS
  2191.  *  void
  2192.  *****************************************************************************/
  2193. void PopupTimerOverCallBack(void)
  2194. {
  2195.     /*----------------------------------------------------------------*/
  2196.     /* Local Variables                                                */
  2197.     /*----------------------------------------------------------------*/
  2198.     /*----------------------------------------------------------------*/
  2199.     /* Code Body                                                      */
  2200.     /*----------------------------------------------------------------*/
  2201.     StopTimer(POPUP_TIMER);
  2202.     /* 121605 popup tone Calvin Start */
  2203.     if (popupToneId)
  2204.     {
  2205.         stopRequestedTone(popupToneId);
  2206.         popupToneId = 0;
  2207.     }
  2208.     /* 121605 popup tone Calvin End */
  2209.     /* Leo add, 0608 */
  2210.     if (PopupFunc != NULL)
  2211.     {
  2212.         PopupFunc();
  2213.     }
  2214.     PopupFunc = NULL;
  2215. }
  2216. #if !defined(__MTK_TARGET__)
  2217. /*****************************************************************************
  2218.  * FUNCTION
  2219.  *  PopupNoSupport
  2220.  * DESCRIPTION
  2221.  *  Display the pop-up screen for PC Simulator limitation scenario
  2222.  * PARAMETERS
  2223.  *  void
  2224.  * RETURNS
  2225.  *  void
  2226.  *****************************************************************************/
  2227. void PopupNoSupport(void)
  2228. {
  2229.     /*----------------------------------------------------------------*/
  2230.     /* Local Variables                                                */
  2231.     /*----------------------------------------------------------------*/
  2232.     /*----------------------------------------------------------------*/
  2233.     /* Code Body                                                      */
  2234.     /*----------------------------------------------------------------*/
  2235.     DisplayPopup(
  2236.         (PU8) GetString(STR_GLOBAL_NOT_SUPPORT_AT_PC_SIMULATOR),
  2237.         IMG_GLOBAL_WARNING,
  2238.         1,
  2239.         UI_POPUP_NOTIFYDURATION_TIME,
  2240.         WARNING_TONE);
  2241.     return;
  2242. }
  2243. #endif /* !defined(__MTK_TARGET__) */ 
  2244. /*****************************************************************************
  2245.  * FUNCTION
  2246.  *  DisplayConfirmCountDown
  2247.  * DESCRIPTION
  2248.  *  Display Popup Confirm Screen
  2249.  * PARAMETERS
  2250.  *  LSK_str             [IN]        
  2251.  *  LSK_img             [IN]        
  2252.  *  RSK_str             [IN]        
  2253.  *  RSK_img             [IN]        
  2254.  *  message             [IN]        
  2255.  *  message_image       [IN]        
  2256.  *  toneId              [IN]        
  2257.  *  duration            [IN]        
  2258.  *  callback            [IN]        
  2259.  * RETURNS
  2260.  *  void
  2261.  *****************************************************************************/
  2262. void DisplayConfirmCountDown(
  2263.         U16 LSK_str,
  2264.         U16 LSK_img,
  2265.         U16 RSK_str,
  2266.         U16 RSK_img,
  2267.         UI_string_type message,
  2268.         MMI_ID_TYPE message_image,
  2269.         U8 toneId,
  2270.         U32 duration,
  2271.         FuncPtr callback)
  2272. {
  2273.     /*----------------------------------------------------------------*/
  2274.     /* Local Variables                                                */
  2275.     /*----------------------------------------------------------------*/
  2276.     U8 *guiBuffer;
  2277.     /*----------------------------------------------------------------*/
  2278.     /* Code Body                                                      */
  2279.     /*----------------------------------------------------------------*/
  2280.     guiBuffer = GetCurrGuiBuffer(SCR_CONFIRM_SCREEN);
  2281.     EntryNewScreen(SCR_CONFIRM_SCREEN, ExitDisplayPopupConfirm, NULL, NULL);
  2282.     ShowCategory165Screen_ext(LSK_str, LSK_img, RSK_str, RSK_img, message, (U16) message_image, duration, guiBuffer);
  2283.     SetCat165TimerExpireFunc(callback);
  2284.     popupToneId = toneId;
  2285.     if (popupToneId)
  2286.     {
  2287.         playRequestedTone(popupToneId);
  2288.     }
  2289. }
  2290. /*****************************************************************************
  2291.  * FUNCTION
  2292.  *  ExitDisplayPopupConfirm
  2293.  * DESCRIPTION
  2294.  *  Display Popup Confirm Screen
  2295.  * PARAMETERS
  2296.  *  void
  2297.  * RETURNS
  2298.  *  void
  2299.  *****************************************************************************/
  2300. #ifdef __MMI_SCREEN_ROTATE__
  2301. void DisplayConfirmRotated(U16 LSK_str, U16 LSK_img, U16 RSK_str, U16 RSK_img, UI_string_type message,
  2302.                            MMI_ID_TYPE message_image, U8 toneId, mmi_frm_screen_rotate_enum rotation)
  2303. #else /* __MMI_SCREEN_ROTATE__ */ 
  2304. void DisplayConfirm(U16 LSK_str, U16 LSK_img, U16 RSK_str, U16 RSK_img, UI_string_type message,
  2305.                     MMI_ID_TYPE message_image, U8 toneId)
  2306. #endif /* __MMI_SCREEN_ROTATE__ */ 
  2307. {
  2308.     /*----------------------------------------------------------------*/
  2309.     /* Local Variables                                                */
  2310.     /*----------------------------------------------------------------*/
  2311.     U8 *guiBuffer;
  2312.     /*----------------------------------------------------------------*/
  2313.     /* Code Body                                                      */
  2314.     /*----------------------------------------------------------------*/
  2315.     guiBuffer = GetCurrGuiBuffer(SCR_CONFIRM_SCREEN);
  2316.     EntryNewScreen(SCR_CONFIRM_SCREEN, ExitDisplayPopupConfirm, NULL, NULL);
  2317. #ifdef __MMI_SCREEN_ROTATE__
  2318.     mmi_frm_screen_rotate(rotation);
  2319. #endif 
  2320.     ShowCategory165Screen(LSK_str, LSK_img, RSK_str, RSK_img, message, (U16) message_image, guiBuffer);
  2321.     popupToneId = toneId;
  2322.     if (popupToneId)
  2323.         playRequestedTone(popupToneId);
  2324. }
  2325. #ifdef __MMI_SCREEN_ROTATE__
  2326. void DisplayConfirm(U16 LSK_str, U16 LSK_img, U16 RSK_str, U16 RSK_img, UI_string_type message,
  2327.                     MMI_ID_TYPE message_image, U8 toneId)
  2328. {
  2329.     DisplayConfirmRotated(LSK_str, LSK_img, RSK_str, RSK_img, message, message_image, toneId, MMI_FRM_SCREEN_ROTATE_0);
  2330. }
  2331. #endif /* __MMI_SCREEN_ROTATE__ */ 
  2332. #if (0)
  2333. /* under construction !*/
  2334. /* under construction !*/
  2335. /* under construction !*/
  2336. /* under construction !*/
  2337. /* under construction !*/
  2338. /* under construction !*/
  2339. /* under construction !*/
  2340. /* under construction !*/
  2341. /* under construction !*/
  2342. /* under construction !*/
  2343. /* under construction !*/
  2344. /* under construction !*/
  2345. /* under construction !*/
  2346. /* under construction !*/
  2347. /* under construction !*/
  2348. /* under construction !*/
  2349. /* under construction !*/
  2350. #endif /* (0) */ 
  2351. void ExitDisplayPopupConfirm(void)
  2352. {
  2353.     /*----------------------------------------------------------------*/
  2354.     /* Local Variables                                                */
  2355.     /*----------------------------------------------------------------*/
  2356.     /*----------------------------------------------------------------*/
  2357.     /* Code Body                                                      */
  2358.     /*----------------------------------------------------------------*/
  2359. #if defined(__MMI_MAINLCD_176X220__) || defined(__MMI_MAINLCD_240X320__)        /* 041205 Calvin modified */
  2360.     leave_full_screen();
  2361. #endif 
  2362.     /* 121605 popup tone Calvin Start */
  2363.     if (popupToneId)
  2364.     {
  2365.         stopRequestedTone(popupToneId);
  2366.         popupToneId = 0;
  2367.     }
  2368.     /* 121605 popup tone Calvin End */
  2369. }
  2370. /*****************************************************************************
  2371.  * FUNCTION
  2372.  *  mmi_frm_go_back_2_history
  2373.  * DESCRIPTION
  2374.  *  Go back 2 history
  2375.  * PARAMETERS
  2376.  *  void
  2377.  * RETURNS
  2378.  *  void
  2379.  *****************************************************************************/
  2380. void mmi_frm_go_back_2_history(void)
  2381. {
  2382.     /*----------------------------------------------------------------*/
  2383.     /* Local Variables                                                */
  2384.     /*----------------------------------------------------------------*/
  2385.     /*----------------------------------------------------------------*/
  2386.     /* Code Body                                                      */
  2387.     /*----------------------------------------------------------------*/
  2388.     GoBacknHistory(1);
  2389. }
  2390. /*****************************************************************************
  2391.  * FUNCTION
  2392.  *  mmi_frm_highlight_inline_generic_done
  2393.  * DESCRIPTION
  2394.  *  Highlight inline done handler
  2395.  * PARAMETERS
  2396.  *  void
  2397.  * RETURNS
  2398.  *  void
  2399.  *****************************************************************************/
  2400. void mmi_frm_highlight_inline_generic_done(void)
  2401. {
  2402.     /*----------------------------------------------------------------*/
  2403.     /* Local Variables                                                */
  2404.     /*----------------------------------------------------------------*/
  2405.     /*----------------------------------------------------------------*/
  2406.     /* Code Body                                                      */
  2407.     /*----------------------------------------------------------------*/
  2408.     ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
  2409.     ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
  2410.     SetLeftSoftkeyFunction(ConfirmInlineFullScreenEdit, KEY_EVENT_UP);
  2411.     SetKeyHandler(ConfirmInlineFullScreenEdit, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
  2412.     SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
  2413.     SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
  2414. }
  2415. /*****************************************************************************
  2416.  * FUNCTION
  2417.  *  mmi_frm_highlight_input_method_generic
  2418.  * DESCRIPTION
  2419.  *  Highlight input method generic handler
  2420.  * PARAMETERS
  2421.  *  void
  2422.  * RETURNS
  2423.  *  void
  2424.  *****************************************************************************/
  2425. void mmi_frm_highlight_input_method_generic(void)
  2426. {
  2427.     /*----------------------------------------------------------------*/
  2428.     /* Local Variables                                                */
  2429.     /*----------------------------------------------------------------*/
  2430.     /*----------------------------------------------------------------*/
  2431.     /* Code Body                                                      */
  2432.     /*----------------------------------------------------------------*/
  2433.     ChangeLeftSoftkey(STR_GLOBAL_OK, IMG_GLOBAL_OK);
  2434.     ChangeRightSoftkey(STR_GLOBAL_BACK, IMG_GLOBAL_BACK);
  2435.     SetLeftSoftkeyFunction(EntryInputMethodScreen, KEY_EVENT_UP);
  2436.     SetKeyHandler(EntryInputMethodScreen, KEY_RIGHT_ARROW, KEY_EVENT_DOWN);
  2437.     SetRightSoftkeyFunction(GoBackHistory, KEY_EVENT_UP);
  2438.     SetKeyHandler(GoBackHistory, KEY_LEFT_ARROW, KEY_EVENT_DOWN);
  2439.     RegisterInputMethodScreenCloseFunction(mmi_frm_go_back_2_history);
  2440. }
  2441. /*****************************************************************************
  2442.  * FUNCTION
  2443.  *  mmi_frm_set_highlight_handler
  2444.  * DESCRIPTION
  2445.  *  Register highlight generic handler
  2446.  * PARAMETERS
  2447.  *  void
  2448.  * RETURNS
  2449.  *  void
  2450.  *****************************************************************************/
  2451. void mmi_frm_set_highlight_handler(void)
  2452. {
  2453.     /*----------------------------------------------------------------*/
  2454.     /* Local Variables                                                */
  2455.     /*----------------------------------------------------------------*/
  2456.     /*----------------------------------------------------------------*/
  2457.     /* Code Body                                                      */
  2458.     /*----------------------------------------------------------------*/
  2459.     SetHiliteHandler(MENU_DONE_OPTION_ID, mmi_frm_highlight_inline_generic_done);
  2460.     SetHiliteHandler(MENU_INPUT_METHOD_OPTION_ID, mmi_frm_highlight_input_method_generic);
  2461. }
  2462. /*****************************************************************************
  2463.  * FUNCTION
  2464.  *  PopupSubLcdTimerOver
  2465.  * DESCRIPTION
  2466.  *  
  2467.  * PARAMETERS
  2468.  *  void
  2469.  * RETURNS
  2470.  *  void
  2471.  *****************************************************************************/
  2472. static void PopupSubLcdTimerOver(void)
  2473. {
  2474.     /*----------------------------------------------------------------*/
  2475.     /* Local Variables                                                */
  2476.     /*----------------------------------------------------------------*/
  2477.     /*----------------------------------------------------------------*/
  2478.     /* Code Body                                                      */
  2479.     /*----------------------------------------------------------------*/
  2480.     StopTimer(POPUP_SUBLCD);
  2481.     GoBackSubLCDHistory();
  2482. }
  2483. /*****************************************************************************
  2484.  * FUNCTION
  2485.  *  ExitSubLCDPopupScr
  2486.  * DESCRIPTION
  2487.  *  
  2488.  * PARAMETERS
  2489.  *  void
  2490.  * RETURNS
  2491.  *  void
  2492.  *****************************************************************************/
  2493. static void ExitSubLCDPopupScr(void)
  2494. {
  2495.     /*----------------------------------------------------------------*/
  2496.     /* Local Variables                                                */
  2497.     /*----------------------------------------------------------------*/
  2498.     /*----------------------------------------------------------------*/
  2499.     /* Code Body                                                      */
  2500.     /*----------------------------------------------------------------*/
  2501.     /* not to add into history */
  2502.     StopTimer(POPUP_SUBLCD);
  2503. }
  2504. /*****************************************************************************
  2505.  * FUNCTION
  2506.  *  DisplaySubLcdPopup
  2507.  * DESCRIPTION
  2508.  *  
  2509.  * PARAMETERS
  2510.  *  imageId     [IN]        
  2511.  * RETURNS
  2512.  *  void
  2513.  *****************************************************************************/
  2514. void DisplaySubLcdPopup(U16 imageId)
  2515. {
  2516.     /*----------------------------------------------------------------*/
  2517.     /* Local Variables                                                */
  2518.     /*----------------------------------------------------------------*/
  2519.     /*----------------------------------------------------------------*/
  2520.     /* Code Body                                                      */
  2521.     /*----------------------------------------------------------------*/
  2522.     ExecSubLCDCurrExitHandler();
  2523.     ShowCategory304Screen(imageId /* IMG_SUBLCD_CHARGER_POWER_ON */ , 0);
  2524.     SetSubLCDExitHandler(ExitSubLCDPopupScr);
  2525.     StartTimer(POPUP_SUBLCD, UI_POPUP_NOTIFYDURATION_TIME, PopupSubLcdTimerOver);
  2526. }
  2527. /*****************************************************************************
  2528.  * FUNCTION
  2529.  *  SetInterruptPopupDisplay
  2530.  * DESCRIPTION
  2531.  *  Set Interrupt popup screen is allowed to display or not.
  2532.  * PARAMETERS
  2533.  *  flag        [IN]        can be POPUP_ALL_OFF, POPUP_DSPL_ON, POPUP_TONE_ON
  2534.  * RETURNS
  2535.  *  void
  2536.  *****************************************************************************/
  2537. void SetInterruptPopupDisplay(U8 flag)
  2538. {
  2539.     /*----------------------------------------------------------------*/
  2540.     /* Local Variables                                                */
  2541.     /*----------------------------------------------------------------*/
  2542.     /*----------------------------------------------------------------*/
  2543.     /* Code Body                                                      */
  2544.     /*----------------------------------------------------------------*/
  2545.     /* The value can be POPUP_ALL_OFF, POPUP_DSPL_ON, POPUP_TONE_ON or POPUP_ALL_ON */
  2546.     is_popup_allow = flag;
  2547. }
  2548. /*****************************************************************************
  2549.  * FUNCTION
  2550.  *  GetInterruptPopupDisplay
  2551.  * DESCRIPTION
  2552.  *  Get if the interrupt popup screen is allowed to display or not.
  2553.  * PARAMETERS
  2554.  *  void
  2555.  * RETURNS
  2556.  *  U8 : can be POPUP_ALL_OFF, POPUP_DSPL_ON, POPUP_TONE_ON
  2557.  *****************************************************************************/
  2558. U8 GetInterruptPopupDisplay(void)
  2559. {
  2560.     /*----------------------------------------------------------------*/
  2561.     /* Local Variables                                                */
  2562.     /*----------------------------------------------------------------*/
  2563.     /*----------------------------------------------------------------*/
  2564.     /* Code Body                                                      */
  2565.     /*----------------------------------------------------------------*/
  2566.     /* The value can be POPUP_ALL_OFF, POPUP_DSPL_ON, POPUP_TONE_ON, or POPUP_ALL_ON */
  2567.     return is_popup_allow;
  2568. }
  2569. #ifndef __MTK_TARGET__
  2570. /* 
  2571.  * Functionality for MoDIS direct input 
  2572.  */
  2573. /* check the symbol is needed in the category */
  2574. /*****************************************************************************
  2575.  * FUNCTION
  2576.  *  mmi_is_no_need_symbol
  2577.  * DESCRIPTION
  2578.  *  
  2579.  * PARAMETERS
  2580.  *  c       [IN]        
  2581.  * RETURNS
  2582.  *  
  2583.  *****************************************************************************/
  2584. MMI_BOOL mmi_is_no_need_symbol(unsigned short c)
  2585. {
  2586.     /*----------------------------------------------------------------*/
  2587.     /* Local Variables                                                */
  2588.     /*----------------------------------------------------------------*/
  2589.     /*----------------------------------------------------------------*/
  2590.     /* Code Body                                                      */
  2591.     /*----------------------------------------------------------------*/
  2592.     if (MMI_AP_No_Show_Symbol_List_flag)
  2593.     {
  2594.         if (Is_No_Need_Show_Symbol((U8*) c))
  2595.         {
  2596.             return MMI_TRUE;
  2597.         }
  2598.     }
  2599.     return MMI_FALSE;
  2600. }
  2601. /* 
  2602.  * We want to check the symbol is valid in the category,
  2603.  * but we need to know the code set range of the symbols first.
  2604.  * It's not used now.
  2605.  */
  2606. /*****************************************************************************
  2607.  * FUNCTION
  2608.  *  mmi_is_vaild_symbol
  2609.  * DESCRIPTION
  2610.  *  
  2611.  * PARAMETERS
  2612.  *  c       [IN]        
  2613.  * RETURNS
  2614.  *  
  2615.  *****************************************************************************/
  2616. MMI_BOOL mmi_is_vaild_symbol(unsigned short c)
  2617. {
  2618.     /*----------------------------------------------------------------*/
  2619.     /* Local Variables                                                */
  2620.     /*----------------------------------------------------------------*/
  2621.     int i;
  2622.     /*----------------------------------------------------------------*/
  2623.     /* Code Body                                                      */
  2624.     /*----------------------------------------------------------------*/
  2625.     /* English symbol table */
  2626.     for (i = 0; i < SYMBOL_PICKER_MAX_SYMBOLS; i++)
  2627.     {
  2628.         if (c == *(unsigned short*)SymbolPickerSymbols[i])
  2629.         {
  2630.             return MMI_TRUE;
  2631.         }
  2632.     }
  2633.     /* Chinese symbol table */
  2634.     for (i = 0; i < SYMBOL_PICKER_MAX_CHINESE_SYMBOLS; i++)
  2635.     {
  2636.         if (c == *(unsigned short*)SymbolPickerChineseSymbols[i])
  2637.         {
  2638.             return MMI_TRUE;
  2639.         }
  2640.     }
  2641. #if defined(__MMI_MULTITAP_HINDI__)
  2642.     /* Hindi sumbol table */
  2643.     for (i = 0; i < VOWEL_PICKER_MAX_HINDI_SYMBOLS; i++)
  2644.     {
  2645.         if (c == *(unsigned short*)VowelPicker[i])
  2646.         {
  2647.             return MMI_TRUE;
  2648.         }
  2649.     }
  2650. #endif /* defined(__MMI_MULTITAP_HINDI__) */ 
  2651.     return MMI_FALSE;
  2652. }
  2653. #endif /* __MTK_TARGET__ */ /* #ifndef __MTK_TARGET_ */