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

MTK

开发平台:

C/C++

  1.         if (!strncmp((PS8) attr_p[attrCount], "font", strlen("font")))
  2.         {
  3.             drop_down_control_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  4.             drop_down_control_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  5.             drop_down_control_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  6.             drop_down_control_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  7.             drop_down_control_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  8.             drop_down_control_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  9.             drop_down_control_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  10.             drop_down_control_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  11.             g_tc_theme_DLT.drop_down_control_font = (stFontAttribute*) & drop_down_control_font;
  12.         }
  13.         attrCount += 2;
  14.     }
  15. }
  16. /*****************************************************************************
  17.  * FUNCTION
  18.  *  mmi_tc_dialer_ip_box_tag_handler
  19.  * DESCRIPTION
  20.  *  (U8** attr_p)
  21.  *  fill the MMI theme structure for dialer input box screen
  22.  * PARAMETERS
  23.  *  attr_p      [IN]        
  24.  * RETURNS
  25.  *  void
  26.  *****************************************************************************/
  27. void mmi_tc_dialer_ip_box_tag_handler(U8 **attr_p)
  28. {
  29.     /*----------------------------------------------------------------*/
  30.     /* Local Variables                                                */
  31.     /*----------------------------------------------------------------*/
  32.     U8 attrCount = 0;
  33.     /*----------------------------------------------------------------*/
  34.     /* Code Body                                                      */
  35.     /*----------------------------------------------------------------*/
  36.     while (attr_p[attrCount])
  37.     {
  38.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  39.         {
  40.             dialer_inputbox_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  41.             dialer_inputbox_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  42.             dialer_inputbox_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  43.             dialer_inputbox_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  44.         }
  45.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  46.         {
  47.             dialer_inputbox_background_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  48.             g_tc_theme_DLT.dialer_inputbox_background_filler = (UI_filled_area*)&dialer_inputbox_background_filler;
  49.         }
  50.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  51.         {
  52.             dialer_inputbox_normal_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  53.             dialer_inputbox_normal_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  54.             dialer_inputbox_normal_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  55.             dialer_inputbox_normal_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  56.             g_tc_theme_DLT.dialer_inputbox_normal_text_color = (color*) & dialer_inputbox_normal_text_color_DLT;
  57.         }
  58.         if (!strncmp((PS8) attr_p[attrCount], "selection_col", strlen("selection_col")))
  59.         {
  60.             dialer_inputbox_selector_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  61.             dialer_inputbox_selector_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  62.             dialer_inputbox_selector_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  63.             dialer_inputbox_selector_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  64.             g_tc_theme_DLT.dialer_inputbox_selector_color = (color*) & dialer_inputbox_selector_color_DLT;
  65.         }
  66.         if (!strncmp((PS8) attr_p[attrCount], "sel_txt_col", strlen("sel_txt_col")))
  67.         {
  68.             dialer_inputbox_selected_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  69.             dialer_inputbox_selected_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  70.             dialer_inputbox_selected_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  71.             dialer_inputbox_selected_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  72.             g_tc_theme_DLT.dialer_inputbox_selected_text_color = (color*) & dialer_inputbox_selected_text_color_DLT;
  73.         }
  74.         if (!strncmp((PS8) attr_p[attrCount], "cursor_col", strlen("cursor_col")))
  75.         {
  76.             dialer_inputbox_cursor_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  77.             dialer_inputbox_cursor_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  78.             dialer_inputbox_cursor_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  79.             dialer_inputbox_cursor_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  80.             g_tc_theme_DLT.dialer_inputbox_cursor_color = (color*) & dialer_inputbox_cursor_color_DLT;
  81.         }
  82.         attrCount += 2;
  83.     }
  84. }
  85. /*****************************************************************************
  86.  * FUNCTION
  87.  *  mmi_tc_inline_edit_tag_handler
  88.  * DESCRIPTION
  89.  *  (U8** attr_p)
  90.  *  fill the MMI theme structure for inline edit screen
  91.  * PARAMETERS
  92.  *  attr_p      [IN]        
  93.  * RETURNS
  94.  *  void
  95.  *****************************************************************************/
  96. void mmi_tc_inline_edit_tag_handler(U8 **attr_p)
  97. {
  98.     /*----------------------------------------------------------------*/
  99.     /* Local Variables                                                */
  100.     /*----------------------------------------------------------------*/
  101.     U8 attrCount = 0;
  102.     U8 type = 0;
  103.     /*----------------------------------------------------------------*/
  104.     /* Code Body                                                      */
  105.     /*----------------------------------------------------------------*/
  106.     while (attr_p[attrCount])
  107.     {
  108.         if (!strncmp((PS8) attr_p[attrCount], "focussed_bk_col", strlen("focussed_bk_col")))
  109.         {
  110.             inline_edit_focussed_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  111.             inline_edit_focussed_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  112.             inline_edit_focussed_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  113.             inline_edit_focussed_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  114.         }
  115.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  116.         {
  117.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  118.         }
  119.         if (!strncmp((PS8) attr_p[attrCount], "focussed_bk_imgoffset", strlen("focussed_bk_imgoffset")))
  120.         {
  121.             inline_edit_focussed_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  122.         }
  123.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  124.         {
  125.             inline_edit_focussed_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  126.             inline_edit_focussed_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  127.             inline_edit_focussed_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  128.             inline_edit_focussed_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  129.         }
  130.         if (!strncmp((PS8) attr_p[attrCount], "sel_bk_col", strlen("sel_bk_col")))
  131.         {
  132.             inline_edit_focussed_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  133.             inline_edit_focussed_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  134.             inline_edit_focussed_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  135.             inline_edit_focussed_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  136.         }
  137.         if (!strncmp((PS8) attr_p[attrCount], "focussed_flag", strlen("focussed_flag")))
  138.         {
  139.             inline_edit_focussed_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  140.             g_tc_theme_DLT.inline_edit_focussed_filler = (UI_filled_area*)&inline_edit_focussed_filler;
  141.         }
  142.         if (!strncmp((PS8) attr_p[attrCount], "focussed_txt_col", strlen("focussed_txt_col")))
  143.         {
  144.             inline_edit_focussed_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  145.             inline_edit_focussed_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  146.             inline_edit_focussed_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  147.             inline_edit_focussed_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  148.             g_tc_theme_DLT.inline_edit_focussed_text_color = (color*) & inline_edit_focussed_text_color;
  149.         }
  150.         if (!strncmp((PS8) attr_p[attrCount], "selection_col", strlen("selection_col")))
  151.         {
  152.             inline_edit_selector_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  153.             inline_edit_selector_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  154.             inline_edit_selector_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  155.             inline_edit_selector_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  156.             g_tc_theme_DLT.inline_edit_selector_color = (color*) & inline_edit_selector_color;
  157.         }
  158.         if (!strncmp((PS8) attr_p[attrCount], "sel_txt_col", strlen("sel_txt_col")))
  159.         {
  160.             inline_edit_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  161.             inline_edit_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  162.             inline_edit_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  163.             inline_edit_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  164.             g_tc_theme_DLT.inline_edit_selected_text_color = (color*) & inline_edit_selected_text_color;
  165.         }
  166.         if (!strncmp((PS8) attr_p[attrCount], "cursor_col", strlen("cursor_col")))
  167.         {
  168.             inline_edit_cursor_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  169.             inline_edit_cursor_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  170.             inline_edit_cursor_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  171.             inline_edit_cursor_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  172.             g_tc_theme_DLT.inline_edit_cursor_color = (color*) & inline_edit_cursor_color;
  173.         }
  174.         if (!strncmp((PS8) attr_p[attrCount], "unfocussed_bk_col", strlen("unfocussed_bk_col")))
  175.         {
  176.             inline_edit_unfocussed_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  177.             inline_edit_unfocussed_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  178.             inline_edit_unfocussed_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  179.             inline_edit_unfocussed_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  180.         }
  181.         if (!strncmp((PS8) attr_p[attrCount], "unfocussed_bk_imgoffset", strlen("unfocussed_bk_imgoffset")))
  182.         {
  183.             inline_edit_unfocussed_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  184.         }
  185.         if (!strncmp((PS8) attr_p[attrCount], "unfocussed_flag", strlen("unfocussed_flag")))
  186.         {
  187.             inline_edit_unfocussed_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  188.             g_tc_theme_DLT.inline_edit_unfocussed_filler = (UI_filled_area*)&inline_edit_unfocussed_filler;
  189.         }
  190.         if (!strncmp((PS8) attr_p[attrCount], "unfocussed_txt_col", strlen("unfocussed_txt_col")))
  191.         {
  192.             inline_edit_unfocussed_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  193.             inline_edit_unfocussed_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  194.             inline_edit_unfocussed_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  195.             inline_edit_unfocussed_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  196.             g_tc_theme_DLT.inline_edit_unfocussed_text_color = (color*) & inline_edit_unfocussed_text_color;
  197.         }
  198.         if (!strncmp((PS8) attr_p[attrCount], "noboundary_bk_col", strlen("noboundary_bk_col")))
  199.         {
  200.             inline_edit_noboundary_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  201.             inline_edit_noboundary_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  202.             inline_edit_noboundary_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  203.             inline_edit_noboundary_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  204.         }
  205.         if (!strncmp((PS8) attr_p[attrCount], "noboundary_bk_imgoffset", strlen("noboundary_bk_imgoffset")))
  206.         {
  207.             inline_edit_noboundary_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  208.         }
  209.         if (!strncmp((PS8) attr_p[attrCount], "noboundary_flag", strlen("noboundary_flag")))
  210.         {
  211.             inline_edit_noboundary_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  212.             g_tc_theme_DLT.inline_edit_noboundary_filler = (UI_filled_area*)&inline_edit_noboundary_filler;
  213.         }
  214.         attrCount += 2;
  215.     }
  216. }
  217. /*****************************************************************************
  218.  * FUNCTION
  219.  *  mmi_tc_progress_scr_tag_handler
  220.  * DESCRIPTION
  221.  *  (U8** attr_p)
  222.  *  fill the MMI theme structure for progress screen position
  223.  * PARAMETERS
  224.  *  attr_p      [IN]        
  225.  * RETURNS
  226.  *  void
  227.  *****************************************************************************/
  228. void mmi_tc_progress_scr_tag_handler(U8 **attr_p)
  229. {
  230.     /*----------------------------------------------------------------*/
  231.     /* Local Variables                                                */
  232.     /*----------------------------------------------------------------*/
  233.     U8 attrCount = 0;
  234.     U8 type = 0;
  235.     /*----------------------------------------------------------------*/
  236.     /* Code Body                                                      */
  237.     /*----------------------------------------------------------------*/
  238.     while (attr_p[attrCount])
  239.     {
  240.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  241.         {
  242.             progress_screen_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  243.             progress_screen_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  244.             progress_screen_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  245.             progress_screen_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  246.         }
  247.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  248.         {
  249.             progress_screen_background_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  250.             progress_screen_background_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  251.             progress_screen_background_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  252.             progress_screen_background_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  253.         }
  254.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  255.         {
  256.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  257.         }
  258.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  259.         {
  260.             progress_screen_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  261.         }
  262.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  263.         {
  264.             progress_screen_background_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  265.         }
  266.         attrCount += 2;
  267.     }
  268.     g_tc_theme_DLT.progress_screen_background_filler = (UI_filled_area*)&progress_screen_background_filler;
  269. }
  270. /*****************************************************************************
  271.  * FUNCTION
  272.  *  mmi_tc_deviceinfo_tag_handler
  273.  * DESCRIPTION
  274.  *  (U8** attr_p)
  275.  *  Gives the information about the device structurewhich is downloading the theme
  276.  * PARAMETERS
  277.  *  attr_p      [IN]        
  278.  * RETURNS
  279.  *  void
  280.  *****************************************************************************/
  281. extern U16 mmi_check_theme_file_lcd_dimension_compatibiltiy(U32 lcd_width, U32 lcd_height);
  282. void mmi_tc_deviceinfo_tag_handler(U8 **attr_p)
  283. {
  284.     /*----------------------------------------------------------------*/
  285.     /* Local Variables                                                */
  286.     /*----------------------------------------------------------------*/
  287.     U8 attrCount = 0;
  288.     U8 nmodel = 0;
  289.     /*----------------------------------------------------------------*/
  290.     /* Code Body                                                      */
  291.     /*----------------------------------------------------------------*/
  292.     memset(g_tc_deviceInfo.model_ID, 0, sizeof(g_tc_deviceInfo.model_ID));
  293.     while (attr_p[attrCount])
  294.     {
  295.         if (!strncmp((PS8) attr_p[attrCount], "model_ID", strlen("model_ID")))
  296.         {
  297.             if (nmodel < MAX_PHONE_MODELS)
  298.             {
  299.                 strncpy((PS8) g_tc_deviceInfo.model_ID[nmodel], (PS8) attr_p[attrCount + 1], MAX_MODEL_ID_LEN);
  300.                 ++nmodel;
  301.             }
  302.         }
  303.         if (!strncmp((PS8) attr_p[attrCount], "am", strlen("am")))
  304.         {
  305.             if (nmodel < MAX_PHONE_MODELS)
  306.             {
  307.                 strncpy((PS8) g_tc_deviceInfo.model_ID[nmodel], (PS8) attr_p[attrCount + 1], MAX_MODEL_ID_LEN);
  308.                 ++nmodel;
  309.             }
  310.         }
  311.         if (!strncmp((PS8) attr_p[attrCount], "lcdwidth", strlen("lcdwidth")))
  312.         {
  313.             g_tc_deviceInfo.lcdwidth = (U32) atoi((PS8) attr_p[attrCount + 1]);
  314.         }
  315.         if (!strncmp((PS8) attr_p[attrCount], "lcdht", strlen("lcdht")))
  316.         {
  317.             g_tc_deviceInfo.lcdht = (U32) atoi((PS8) attr_p[attrCount + 1]);
  318.         }
  319.         if (!strncmp((PS8) attr_p[attrCount], "tctver", strlen("tctver")))
  320.         {
  321.             g_tc_newTheme=1;
  322.         }
  323.         attrCount += 2;
  324.     }
  325. }
  326. /*****************************************************************************
  327.  * FUNCTION
  328.  *  mmi_tc_main_menu_tag_handler
  329.  * DESCRIPTION
  330.  *  (U8** attr_p)
  331.  *  fill the MMI theme structure for main menu screen
  332.  * PARAMETERS
  333.  *  attr_p      [IN]        
  334.  * RETURNS
  335.  *  void
  336.  *****************************************************************************/
  337. void mmi_tc_main_menu_tag_handler(U8 **attr_p)
  338. {
  339.     /*----------------------------------------------------------------*/
  340.     /* Local Variables                                                */
  341.     /*----------------------------------------------------------------*/
  342.     U8 attrCount = 0;
  343.     U8 type = 0;
  344.     /*----------------------------------------------------------------*/
  345.     /* Code Body                                                      */
  346.     /*----------------------------------------------------------------*/
  347.     while (attr_p[attrCount])
  348.     {
  349.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  350.         {
  351.             main_menu_background_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  352.             main_menu_background_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  353.             main_menu_background_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  354.             main_menu_background_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  355.         }
  356.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  357.         {
  358.             main_menu_background_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);    /* |000|4096; */
  359.             g_tc_theme_DLT.main_menu_background_filler = (UI_filled_area*)&main_menu_background_filler_DLT;
  360.         }
  361.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  362.         {
  363.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  364.         }
  365.         if (!strncmp((PS8) attr_p[attrCount], "bk_image_offset", strlen("bk_image_offset")))
  366.         {
  367.             main_menu_background_filler_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  368.         }
  369.         if (!strncmp((PS8) attr_p[attrCount], "list_txt_col", strlen("list_txt_col")))
  370.         {
  371.             list_main_menu_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  372.             list_main_menu_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  373.             list_main_menu_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  374.             list_main_menu_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  375.             g_tc_theme_DLT.list_main_menu_normal_text_color = (color*) & list_main_menu_normal_text_color;
  376.         }
  377.         if (!strncmp((PS8) attr_p[attrCount], "list_sel_txt_col", strlen("list_sel_txt_col")))
  378.         {
  379.             list_main_menu_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  380.             list_main_menu_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  381.             list_main_menu_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  382.             list_main_menu_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  383.             g_tc_theme_DLT.list_main_menu_selected_text_color = (color*) & list_main_menu_selected_text_color;
  384.         }
  385.         if (!strncmp((PS8) attr_p[attrCount], "matrix_sel_txt_col", strlen("matrix_sel_txt_col")))
  386.         {
  387.             matrix_main_menu_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  388.             matrix_main_menu_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  389.             matrix_main_menu_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  390.             matrix_main_menu_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  391.             g_tc_theme_DLT.matrix_main_menu_selected_text_color = (color*) & matrix_main_menu_selected_text_color;
  392.         }
  393.         if (!strncmp((PS8) attr_p[attrCount], "matrix_txt_col", strlen("matrix_txt_col")))
  394.         {
  395.             matrix_main_menu_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  396.             matrix_main_menu_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  397.             matrix_main_menu_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  398.             matrix_main_menu_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  399.             g_tc_theme_DLT.matrix_main_menu_normal_text_color = (color*) & matrix_main_menu_normal_text_color;
  400.         }
  401.         if (!strncmp((PS8) attr_p[attrCount], "circ_sel_txt_col", strlen("circ_sel_txt_col")))
  402.         {
  403.             circular_main_menu_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  404.             circular_main_menu_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  405.             circular_main_menu_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  406.             circular_main_menu_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  407.             g_tc_theme_DLT.circular_main_menu_selected_text_color = (color*) & circular_main_menu_selected_text_color;
  408.         }
  409.         if (!strncmp((PS8) attr_p[attrCount], "circ_txt_col", strlen("circ_txt_col")))
  410.         {
  411.             circular_main_menu_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  412.             circular_main_menu_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  413.             circular_main_menu_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  414.             circular_main_menu_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  415.             g_tc_theme_DLT.circular_main_menu_normal_text_color = (color*) & circular_main_menu_normal_text_color;
  416.         }
  417.         if (!strncmp((PS8) attr_p[attrCount], "list_mm_font", strlen("list_mm_font")))
  418.         {
  419.             list_main_menu_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  420.             list_main_menu_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  421.             list_main_menu_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  422.             list_main_menu_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  423.             list_main_menu_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  424.             list_main_menu_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  425.             list_main_menu_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  426.             list_main_menu_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  427.             g_tc_theme_DLT.list_main_menu_font = (stFontAttribute*) & list_main_menu_font;
  428.         }
  429.         if (!strncmp((PS8) attr_p[attrCount], "matrix_mm_font", strlen("matrix_mm_font")))
  430.         {
  431.             matrix_main_menu_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  432.             matrix_main_menu_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  433.             matrix_main_menu_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  434.             matrix_main_menu_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  435.             matrix_main_menu_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  436.             matrix_main_menu_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  437.             matrix_main_menu_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  438.             matrix_main_menu_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  439.             g_tc_theme_DLT.matrix_main_menu_font = (stFontAttribute*) & matrix_main_menu_font;
  440.         }
  441.         attrCount += 2;
  442.     }
  443. }
  444. /*****************************************************************************
  445.  * FUNCTION
  446.  *  mmi_tc_tones_list_tag_handler
  447.  * DESCRIPTION
  448.  *  (U8** attr_p)
  449.  *  Function for handling the downloaded audio file
  450.  * PARAMETERS
  451.  *  attr_p      [IN]        
  452.  * RETURNS
  453.  *  void
  454.  *****************************************************************************/
  455. void mmi_tc_tones_list_tag_handler(U8 **attr_p)
  456. {
  457.     /*----------------------------------------------------------------*/
  458.     /* Local Variables                                                */
  459.     /*----------------------------------------------------------------*/
  460.     U8 attrCount = 0;
  461.     char audio_file_name[25];
  462.     /*----------------------------------------------------------------*/
  463.     /* Code Body                                                      */
  464.     /*----------------------------------------------------------------*/
  465.     if (!strncmp((PS8) attr_p[attrCount], "name", strlen("name")))
  466.     {
  467.         /* if(!strncmp((PS8)attr_p[attrCount+1],"inc_call",strlen("inc_call")))
  468.            { */
  469.         U32 offset = 0, size = 0;
  470.         strcpy(audio_file_name, (PS8) attr_p[attrCount + 1]);
  471.         offset = (U32) atoi((PS8) attr_p[attrCount + 3]);
  472.         size = (U32) atoi((PS8) attr_p[attrCount + 5]);
  473.         if ((strstr(audio_file_name, ".wav") != NULL) || (strstr(audio_file_name, ".WAV") != NULL))
  474.         {
  475.             g_tc_audiothmfileformat = THEME_AUDIO;
  476.         }
  477.         else if ((strstr(audio_file_name, ".mid") != NULL) || (strstr(audio_file_name, ".MID") != NULL))
  478.         {
  479.             g_tc_audiothmfileformat = THEME_MIDI;
  480.         }
  481.         else if ((strstr(audio_file_name, ".mp3") != NULL) || (strstr(audio_file_name, ".MP3") != NULL))
  482.         {
  483.             g_tc_audiothmfileformat = THEME_MP3;
  484.         }
  485.         mmi_tm_handle_audio(offset, size);
  486.         /* } */
  487.     }
  488. }
  489. /*****************************************************************************
  490.  * FUNCTION
  491.  *  mmi_tc_setting_pin_scr_tag_handler
  492.  * DESCRIPTION
  493.  *  (U8** attr_p)
  494.  *  fill the MMI theme structure for setting PIN screen handler
  495.  * PARAMETERS
  496.  *  attr_p      [IN]        
  497.  * RETURNS
  498.  *  void
  499.  *****************************************************************************/
  500. void mmi_tc_setting_pin_scr_tag_handler(U8 **attr_p)
  501. {
  502.     /*----------------------------------------------------------------*/
  503.     /* Local Variables                                                */
  504.     /*----------------------------------------------------------------*/
  505.     U8 attrCount = 0;
  506.     U8 type = 0;
  507.     /*----------------------------------------------------------------*/
  508.     /* Code Body                                                      */
  509.     /*----------------------------------------------------------------*/
  510.     while (attr_p[attrCount])
  511.     {
  512.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  513.         {
  514.             PIN_screen_background_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  515.             PIN_screen_background_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  516.             PIN_screen_background_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  517.             PIN_screen_background_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  518.         }
  519.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  520.         {
  521.             PIN_screen_background_filler_DLT.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  522.             PIN_screen_background_filler_DLT.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  523.             PIN_screen_background_filler_DLT.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  524.             PIN_screen_background_filler_DLT.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  525.         }
  526.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  527.         {
  528.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  529.         }
  530.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  531.         {
  532.             PIN_screen_background_filler_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  533.         }
  534.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  535.         {
  536.             PIN_screen_background_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  537.         }
  538.         attrCount += 2;
  539.     }
  540.     g_tc_theme_DLT.PIN_screen_background_filler = (UI_filled_area*)&PIN_screen_background_filler_DLT;
  541. }
  542. /*****************************************************************************
  543.  * FUNCTION
  544.  *  mmi_tc_setimagehandler
  545.  * DESCRIPTION
  546.  *  (U16 ImageID)
  547.  *  sets the image using the image ID provided
  548.  * PARAMETERS
  549.  *  ImageID     [IN]        
  550.  * RETURNS
  551.  *  void
  552.  *****************************************************************************/
  553. void mmi_tc_setimagehandler(U16 ImageID)
  554. {
  555.     /*----------------------------------------------------------------*/
  556.     /* Local Variables                                                */
  557.     /*----------------------------------------------------------------*/
  558.     /*----------------------------------------------------------------*/
  559.     /* Code Body                                                      */
  560.     /*----------------------------------------------------------------*/
  561. }
  562. /*****************************************************************************
  563.  * FUNCTION
  564.  *  mmi_tc_nw_scr_tag_handler
  565.  * DESCRIPTION
  566.  *  (U8** attr_p)
  567.  *  fill the MMI theme structure for network screen
  568.  * PARAMETERS
  569.  *  attr_p      [IN]        
  570.  * RETURNS
  571.  *  void
  572.  *****************************************************************************/
  573. void mmi_tc_nw_scr_tag_handler(U8 **attr_p)
  574. {
  575.     /*----------------------------------------------------------------*/
  576.     /* Local Variables                                                */
  577.     /*----------------------------------------------------------------*/
  578.     U8 attrCount = 0;
  579.     U8 type = 0;
  580.     /*----------------------------------------------------------------*/
  581.     /* Code Body                                                      */
  582.     /*----------------------------------------------------------------*/
  583.     while (attr_p[attrCount])
  584.     {
  585.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  586.         {
  587.             network_screen_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  588.             network_screen_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  589.             network_screen_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  590.             network_screen_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  591.         }
  592.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  593.         {
  594.             network_screen_background_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  595.             network_screen_background_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  596.             network_screen_background_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  597.             network_screen_background_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  598.         }
  599.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  600.         {
  601.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  602.         }
  603.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  604.         {
  605.             network_screen_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  606.         }
  607.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  608.         {
  609.             network_screen_background_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  610.         }
  611.         attrCount += 2;
  612.     }
  613.     g_tc_theme_DLT.network_screen_background_filler = (UI_filled_area*)&network_screen_background_filler;
  614. }
  615. /*****************************************************************************
  616.  * FUNCTION
  617.  *  mmi_tc_buttonbar_tag_handler
  618.  * DESCRIPTION
  619.  *  (U8** attr_p)
  620.  *  fill the MMI theme structure for buttonbar
  621.  * PARAMETERS
  622.  *  attr_p      [IN]        
  623.  * RETURNS
  624.  *  void
  625.  *****************************************************************************/
  626. void mmi_tc_buttonbar_tag_handler(U8 **attr_p)
  627. {
  628.     /*----------------------------------------------------------------*/
  629.     /* Local Variables                                                */
  630.     /*----------------------------------------------------------------*/
  631.     U8 attrCount = 0;
  632.     /*----------------------------------------------------------------*/
  633.     /* Code Body                                                      */
  634.     /*----------------------------------------------------------------*/
  635.     while (attr_p[attrCount])
  636.     {
  637.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  638.         {
  639.             button_bar_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  640.             button_bar_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  641.             button_bar_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  642.             button_bar_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  643.             g_tc_theme_DLT.button_bar_color = (color*) & button_bar_color;
  644.         }
  645.         if (!strncmp((PS8) attr_p[attrCount], "font", strlen("font")))
  646.         {
  647.             butt_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  648.             butt_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  649.             butt_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  650.             butt_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  651.             butt_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  652.             butt_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  653.             butt_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  654.             butt_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  655.             g_tc_theme_DLT.button_font = (stFontAttribute*) & butt_font;
  656.         }
  657.         attrCount += 2;
  658.     }
  659. }
  660. /*****************************************************************************
  661.  * FUNCTION
  662.  *  mmi_tc_popup_scr_tag_handler
  663.  * DESCRIPTION
  664.  *  (U8** attr_p)
  665.  *  fill the MMI theme structure for popup_scr
  666.  * PARAMETERS
  667.  *  attr_p      [IN]        
  668.  * RETURNS
  669.  *  void
  670.  *****************************************************************************/
  671. void mmi_tc_popup_scr_tag_handler(U8 **attr_p)
  672. {
  673.     /*----------------------------------------------------------------*/
  674.     /* Local Variables                                                */
  675.     /*----------------------------------------------------------------*/
  676.     U8 attrCount = 0;
  677.     /*----------------------------------------------------------------*/
  678.     /* Code Body                                                      */
  679.     /*----------------------------------------------------------------*/
  680.     while (attr_p[attrCount])
  681.     {
  682.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  683.         {
  684.             popup_screen_background_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  685.             popup_screen_background_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  686.             popup_screen_background_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  687.             popup_screen_background_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  688.             g_tc_theme_DLT.popup_screen_background_color = (color*) & popup_screen_background_color;
  689.         }
  690.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  691.         {
  692.             popup_screen_border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  693.             popup_screen_border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  694.             popup_screen_border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  695.             popup_screen_border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  696.             g_tc_theme_DLT.popup_screen_border_color = (color*) & popup_screen_border_color;
  697.         }
  698.         attrCount += 2;
  699.     }
  700. }
  701. /*****************************************************************************
  702.  * FUNCTION
  703.  *  mmi_tc_aphorism_scr_tag_handler
  704.  * DESCRIPTION
  705.  *  (U8** attr_p)
  706.  *  fill the MMI theme structure for aphorism_scr
  707.  * PARAMETERS
  708.  *  attr_p      [IN]        
  709.  * RETURNS
  710.  *  void
  711.  *****************************************************************************/
  712. void mmi_tc_aphorism_scr_tag_handler(U8 **attr_p)
  713. {
  714.     /*----------------------------------------------------------------*/
  715.     /* Local Variables                                                */
  716.     /*----------------------------------------------------------------*/
  717.     U8 attrCount = 0;
  718.     U8 type = 0;
  719.     /*----------------------------------------------------------------*/
  720.     /* Code Body                                                      */
  721.     /*----------------------------------------------------------------*/
  722.     while (attr_p[attrCount])
  723.     {
  724.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  725.         {
  726.             aphorism_screen_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  727.             aphorism_screen_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  728.             aphorism_screen_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  729.             aphorism_screen_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  730.         }
  731.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  732.         {
  733.             aphorism_screen_background_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  734.             aphorism_screen_background_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  735.             aphorism_screen_background_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  736.             aphorism_screen_background_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  737.         }
  738.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  739.         {
  740.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  741.         }
  742.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  743.         {
  744.             aphorism_screen_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  745.         }
  746.         attrCount += 2;
  747.     }
  748.     g_tc_theme_DLT.aphorism_screen_background_filler = (UI_filled_area*)&aphorism_screen_background_filler;
  749. }
  750. /*****************************************************************************
  751.  * FUNCTION
  752.  *  mmi_tc_popup_description_tag_handler
  753.  * DESCRIPTION
  754.  *  (U8** attr_p)
  755.  *  fill the MMI theme structure for popup_description
  756.  * PARAMETERS
  757.  *  attr_p      [IN]        
  758.  * RETURNS
  759.  *  void
  760.  *****************************************************************************/
  761. void mmi_tc_popup_description_tag_handler(U8 **attr_p)
  762. {
  763.     /*----------------------------------------------------------------*/
  764.     /* Local Variables                                                */
  765.     /*----------------------------------------------------------------*/
  766.     U8 attrCount = 0;
  767.     U8 type = 0;
  768.     /*----------------------------------------------------------------*/
  769.     /* Code Body                                                      */
  770.     /*----------------------------------------------------------------*/
  771.     while (attr_p[attrCount])
  772.     {
  773.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  774.         {
  775.             popup_description_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  776.             popup_description_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  777.             popup_description_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  778.             popup_description_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  779.         }
  780.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  781.         {
  782.             popup_description_background_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  783.             popup_description_background_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  784.             popup_description_background_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  785.             popup_description_background_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  786.         }
  787.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  788.         {
  789.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  790.         }
  791.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  792.         {
  793.             popup_description_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  794.         }
  795.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  796.         {
  797.             popup_description_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  798.             popup_description_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  799.             popup_description_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  800.             popup_description_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  801.             g_tc_theme_DLT.popup_description_text_color = (color*) & popup_description_text_color;
  802.         }
  803.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  804.         {
  805.             popup_description_background_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  806.             g_tc_theme_DLT.popup_description_background_filler = (UI_filled_area*)&popup_description_background_filler;
  807.         }
  808.         attrCount += 2;
  809.     }
  810. }
  811. /*****************************************************************************
  812.  * FUNCTION
  813.  *  mmi_tc_virtual_kb_tag_handler
  814.  * DESCRIPTION
  815.  *  (U8** attr_p)
  816.  *  fill the MMI theme structure for virtual_kb
  817.  * PARAMETERS
  818.  *  attr_p      [IN]        
  819.  * RETURNS
  820.  *  void
  821.  *****************************************************************************/
  822. void mmi_tc_virtual_kb_tag_handler(U8 **attr_p)
  823. {
  824.     /*----------------------------------------------------------------*/
  825.     /* Local Variables                                                */
  826.     /*----------------------------------------------------------------*/
  827.     U8 attrCount = 0;
  828.     U8 type = 0;
  829.     /*----------------------------------------------------------------*/
  830.     /* Code Body                                                      */
  831.     /*----------------------------------------------------------------*/
  832.     while (attr_p[attrCount])
  833.     {
  834.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  835.         {
  836.             virtual_keyboard_key_down_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  837.             virtual_keyboard_key_down_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  838.             virtual_keyboard_key_down_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  839.             virtual_keyboard_key_down_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  840.         }
  841.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  842.         {
  843.             virtual_keyboard_key_down_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  844.             virtual_keyboard_key_down_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  845.             virtual_keyboard_key_down_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  846.             virtual_keyboard_key_down_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  847.         }
  848.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  849.         {
  850.             virtual_keyboard_key_down_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  851.             g_tc_theme_DLT.virtual_keyboard_key_down_filler = (UI_filled_area*)&virtual_keyboard_key_down_filler;
  852.         }
  853.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  854.         {
  855.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  856.         }
  857.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  858.         {
  859.             virtual_keyboard_key_down_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  860.         }
  861.         if (!strncmp((PS8) attr_p[attrCount], "key_up_txt_col", strlen("key_up_txt_col")))
  862.         {
  863.             virtual_keyboard_key_up_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  864.             virtual_keyboard_key_up_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  865.             virtual_keyboard_key_up_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  866.             virtual_keyboard_key_up_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  867.             g_tc_theme_DLT.virtual_keyboard_key_up_text_color = (color*) & virtual_keyboard_key_up_text_color;
  868.         }
  869.         if (!strncmp((PS8) attr_p[attrCount], "key_down_txt_col", strlen("key_down_txt_col")))
  870.         {
  871.             virtual_keyboard_key_down_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  872.             virtual_keyboard_key_down_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  873.             virtual_keyboard_key_down_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  874.             virtual_keyboard_key_down_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  875.             g_tc_theme_DLT.virtual_keyboard_key_down_text_color = (color*) & virtual_keyboard_key_down_text_color;
  876.         }
  877.         if (!strncmp((PS8) attr_p[attrCount], "font", strlen("font")))
  878.         {
  879.             virtual_keyboard_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  880.             virtual_keyboard_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  881.             virtual_keyboard_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  882.             virtual_keyboard_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  883.             virtual_keyboard_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  884.             virtual_keyboard_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  885.             virtual_keyboard_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  886.             virtual_keyboard_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  887.             g_tc_theme_DLT.virtual_keyboard_font = (stFontAttribute*) & virtual_keyboard_font;
  888.         }
  889.         attrCount += 2;
  890.     }
  891. }
  892. /*****************************************************************************
  893.  * FUNCTION
  894.  *  mmi_tc_format_ipbox_tag_handler
  895.  * DESCRIPTION
  896.  *  (U8** attr_p)
  897.  *  fill the MMI theme structure for format_ipbox
  898.  * PARAMETERS
  899.  *  attr_p      [IN]        
  900.  * RETURNS
  901.  *  void
  902.  *****************************************************************************/
  903. void mmi_tc_format_ipbox_tag_handler(U8 **attr_p)
  904. {
  905.     /*----------------------------------------------------------------*/
  906.     /* Local Variables                                                */
  907.     /*----------------------------------------------------------------*/
  908.     U8 attrCount = 0;
  909.     /*----------------------------------------------------------------*/
  910.     /* Code Body                                                      */
  911.     /*----------------------------------------------------------------*/
  912.     while (attr_p[attrCount])
  913.     {
  914.         if (!strncmp((PS8) attr_p[attrCount], "normal_bk_col", strlen("normal_bk_col")))
  915.         {
  916.             formatted_inputbox_normal_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  917.             formatted_inputbox_normal_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  918.             formatted_inputbox_normal_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  919.             formatted_inputbox_normal_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  920.         }
  921.         if (!strncmp((PS8) attr_p[attrCount], "normal_flag", strlen("normal_flag")))
  922.         {
  923.             formatted_inputbox_normal_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  924.             g_tc_theme_DLT.formatted_inputbox_normal_filler = (UI_filled_area*)&formatted_inputbox_normal_filler;
  925.         }
  926.         if (!strncmp((PS8) attr_p[attrCount], "normal_txt_col", strlen("normal_txt_col")))
  927.         {
  928.             formatted_inputbox_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  929.             formatted_inputbox_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  930.             formatted_inputbox_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  931.             formatted_inputbox_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  932.         }
  933.         if (!strncmp((PS8) attr_p[attrCount], "selected_bk_col", strlen("selected_bk_col")))
  934.         {
  935.             formatted_inputbox_selected_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  936.             formatted_inputbox_selected_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  937.             formatted_inputbox_selected_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  938.             formatted_inputbox_selected_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  939.         }
  940.         if (!strncmp((PS8) attr_p[attrCount], "selected_flag", strlen("selected_flag")))
  941.         {
  942.             formatted_inputbox_selected_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  943.             g_tc_theme_DLT.formatted_inputbox_selected_filler = (UI_filled_area*)&formatted_inputbox_selected_filler;
  944.         }
  945.         if (!strncmp((PS8) attr_p[attrCount], "sel_txt_col", strlen("sel_txt_col")))
  946.         {
  947.             formatted_inputbox_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  948.             formatted_inputbox_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  949.             formatted_inputbox_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  950.             formatted_inputbox_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  951.             g_tc_theme_DLT.formatted_inputbox_selected_text_color = (color*) & formatted_inputbox_selected_text_color;
  952.         }
  953.         if (!strncmp((PS8) attr_p[attrCount], "cursor_col", strlen("cursor_col")))
  954.         {
  955.             formatted_inputbox_cursor_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  956.             formatted_inputbox_cursor_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  957.             formatted_inputbox_cursor_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  958.             formatted_inputbox_cursor_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  959.             g_tc_theme_DLT.formatted_inputbox_cursor_color = (color*) & formatted_inputbox_cursor_color;
  960.         }
  961.         if (!strncmp((PS8) attr_p[attrCount], "selection_col", strlen("selection_col")))
  962.         {
  963.             formatted_inputbox_selector_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  964.             formatted_inputbox_selector_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  965.             formatted_inputbox_selector_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  966.             formatted_inputbox_selector_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  967.             g_tc_theme_DLT.formatted_inputbox_selector_color = (color*) & formatted_inputbox_selector_color;
  968.         }
  969.         attrCount += 2;
  970.     }
  971. }
  972. /*****************************************************************************
  973.  * FUNCTION
  974.  *  mmi_tc_general_bkgrnd_tag_handler
  975.  * DESCRIPTION
  976.  *  (U8** attr_p)
  977.  *  fill the MMI theme structure for general_bkgrnd
  978.  * PARAMETERS
  979.  *  attr_p      [IN]        
  980.  * RETURNS
  981.  *  void
  982.  *****************************************************************************/
  983. void mmi_tc_general_bkgrnd_tag_handler(U8 **attr_p)
  984. {
  985.     /*----------------------------------------------------------------*/
  986.     /* Local Variables                                                */
  987.     /*----------------------------------------------------------------*/
  988.     U8 attrCount = 0;
  989.     U8 type = 0;
  990.     /*----------------------------------------------------------------*/
  991.     /* Code Body                                                      */
  992.     /*----------------------------------------------------------------*/
  993.     while (attr_p[attrCount])
  994.     {
  995.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  996.         {
  997.             general_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  998.             general_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  999.             general_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1000.             general_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1001.         }
  1002.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1003.         {
  1004.             general_background_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  1005.         }
  1006.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1007.         {
  1008.             general_background_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1009.             general_background_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1010.             general_background_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1011.             general_background_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1012.         }
  1013.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1014.         {
  1015.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1016.         }
  1017.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1018.         {
  1019.             general_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1020.         }
  1021.         attrCount += 2;
  1022.     }
  1023.     g_tc_theme_DLT.general_background_filler = (UI_filled_area*)&general_background_filler;
  1024. }
  1025. /*****************************************************************************
  1026.  * FUNCTION
  1027.  *  mmi_tc_infobar_tag_handler
  1028.  * DESCRIPTION
  1029.  *  (U8** attr_p)
  1030.  *  fill the MMI theme structure for infobar
  1031.  * PARAMETERS
  1032.  *  attr_p      [IN]        
  1033.  * RETURNS
  1034.  *  void
  1035.  *****************************************************************************/
  1036. void mmi_tc_infobar_tag_handler(U8 **attr_p)
  1037. {
  1038.     /*----------------------------------------------------------------*/
  1039.     /* Local Variables                                                */
  1040.     /*----------------------------------------------------------------*/
  1041.     U8 attrCount = 0;
  1042.     /*----------------------------------------------------------------*/
  1043.     /* Code Body                                                      */
  1044.     /*----------------------------------------------------------------*/
  1045.     while (attr_p[attrCount])
  1046.     {
  1047.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1048.         {
  1049.             information_bar_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1050.             information_bar_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1051.             information_bar_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1052.             information_bar_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1053.             g_tc_theme_DLT.information_bar_color = (color*) & information_bar_color;
  1054.         }
  1055.         if (!strncmp((PS8) attr_p[attrCount], "ipmethod_txt_col", strlen("ipmethod_txt_col")))
  1056.         {
  1057.             input_method_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1058.             input_method_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1059.             input_method_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1060.             input_method_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1061.             g_tc_theme_DLT.input_method_text_color = (color*) & input_method_text_color;
  1062.         }
  1063.         if (!strncmp((PS8) attr_p[attrCount], "remaining_len_txt_col", strlen("remaining_len_txt_col")))
  1064.         {
  1065.             remaining_length_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1066.             remaining_length_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1067.             remaining_length_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1068.             remaining_length_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1069.             g_tc_theme_DLT.remaining_length_text_color = (color*) & remaining_length_text_color;
  1070.         }
  1071.         attrCount += 2;
  1072.     }
  1073. }
  1074. /*****************************************************************************
  1075.  * FUNCTION
  1076.  *  mmi_tc_list_menu_tag_handler
  1077.  * DESCRIPTION
  1078.  *  (U8** attr_p)
  1079.  *  fill the MMI theme structure for list_menu
  1080.  * PARAMETERS
  1081.  *  attr_p      [IN]        
  1082.  * RETURNS
  1083.  *  void
  1084.  *****************************************************************************/
  1085. void mmi_tc_list_menu_tag_handler(U8 **attr_p)
  1086. {
  1087.     /*----------------------------------------------------------------*/
  1088.     /* Local Variables                                                */
  1089.     /*----------------------------------------------------------------*/
  1090.     U8 attrCount = 0;
  1091.     U8 type = 0;
  1092.     /*----------------------------------------------------------------*/
  1093.     /* Code Body                                                      */
  1094.     /*----------------------------------------------------------------*/
  1095.     while (attr_p[attrCount])
  1096.     {
  1097.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1098.         {
  1099.             list_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1100.             list_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1101.             list_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1102.             list_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1103.         }
  1104.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1105.         {
  1106.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1107.         }
  1108.         if (!strncmp((PS8) attr_p[attrCount], "bk_img_offset", strlen("bk_img_offset")))
  1109.         {
  1110.             list_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1111.         }
  1112.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1113.         {
  1114.             list_background_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  1115.             g_tc_theme_DLT.list_background_filler = (UI_filled_area*)&list_background_filler;
  1116.         }
  1117.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_col", strlen("normal_item_col")))
  1118.         {
  1119.             list_normal_item_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1120.             list_normal_item_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1121.             list_normal_item_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1122.             list_normal_item_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1123.             g_tc_theme_DLT.list_normal_item_filler = (UI_filled_area*)&list_normal_item_filler;
  1124.         }
  1125.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_img_offset", strlen("normal_item_img_offset")))
  1126.         {
  1127.             //resolve the types for normal item img offset & bk_img_offset
  1128.             list_normal_item_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1129.             g_tc_theme_DLT.list_normal_item_filler = (UI_filled_area*)&list_normal_item_filler;
  1130.         }
  1131.         if (!strncmp((PS8) attr_p[attrCount], "normal_txt_col", strlen("normal_txt_col")))
  1132.         {
  1133.             list_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1134.             list_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1135.             list_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1136.             list_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1137.             g_tc_theme_DLT.list_normal_text_color = (color*) & list_normal_text_color;
  1138.         }
  1139.         if (!strncmp((PS8) attr_p[attrCount], "selected_item_col", strlen("selected_item_col")))
  1140.         {
  1141.             list_selected_item_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1142.             list_selected_item_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1143.             list_selected_item_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1144.             list_selected_item_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1145.             g_tc_theme_DLT.list_selected_item_filler = (UI_filled_area*)&list_selected_item_filler;
  1146.         }
  1147.         if (!strncmp((PS8) attr_p[attrCount], "selected_item_img_offset", strlen("selected_item_img_offset")))
  1148.         {
  1149.             /* resolve the types for normal item img offset & bk_img_offset */
  1150.             list_selected_item_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1151.             g_tc_theme_DLT.list_selected_item_filler = (UI_filled_area*)&list_selected_item_filler;
  1152.         }
  1153.         if (!strncmp((PS8) attr_p[attrCount], "selected_txt_col", strlen("selected_txt_col")))
  1154.         {
  1155.             list_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1156.             list_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1157.             list_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1158.             list_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1159.             g_tc_theme_DLT.list_selected_text_color = (color*) & list_selected_text_color;
  1160.         }
  1161.         if (!strncmp((PS8) attr_p[attrCount], "list_font", strlen("list_font")))
  1162.         {
  1163.             list_menu_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1164.             list_menu_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1165.             list_menu_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1166.             list_menu_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1167.             list_menu_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1168.             list_menu_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1169.             list_menu_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1170.             list_menu_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1171.             g_tc_theme_DLT.list_menu_font = (stFontAttribute*) & list_menu_font;
  1172.         }
  1173.         attrCount += 2;
  1174.     }
  1175. }
  1176. /*****************************************************************************
  1177.  * FUNCTION
  1178.  *  mmi_tc_matrix_menu_tag_handler
  1179.  * DESCRIPTION
  1180.  *  (U8** attr_p)
  1181.  *  fill the MMI theme structure for matrix_menu
  1182.  * PARAMETERS
  1183.  *  attr_p      [IN]        
  1184.  * RETURNS
  1185.  *  void
  1186.  *****************************************************************************/
  1187. void mmi_tc_matrix_menu_tag_handler(U8 **attr_p)
  1188. {
  1189.     /*----------------------------------------------------------------*/
  1190.     /* Local Variables                                                */
  1191.     /*----------------------------------------------------------------*/
  1192.     U8 attrCount = 0;
  1193.     U8 type = 0;
  1194.     /*----------------------------------------------------------------*/
  1195.     /* Code Body                                                      */
  1196.     /*----------------------------------------------------------------*/
  1197.     while (attr_p[attrCount])
  1198.     {
  1199.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1200.         {
  1201.             matrix_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1202.             matrix_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1203.             matrix_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1204.             matrix_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1205.         }
  1206.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1207.         {
  1208.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1209.         }
  1210.         if (!strncmp((PS8) attr_p[attrCount], "bk_img_offset", strlen("bk_img_offset")))
  1211.         {
  1212.             matrix_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1213.         }
  1214.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1215.         {
  1216.             matrix_background_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  1217.             g_tc_theme_DLT.matrix_background_filler = (UI_filled_area*)&matrix_background_filler;
  1218.         }
  1219.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_col", strlen("normal_item_col")))
  1220.         {
  1221.             matrix_normal_item_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1222.             matrix_normal_item_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1223.             matrix_normal_item_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1224.             matrix_normal_item_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1225.             g_tc_theme_DLT.matrix_normal_item_filler = (UI_filled_area*)&matrix_normal_item_filler;
  1226.         }
  1227.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_img_offset", strlen("normal_item_img_offset")))
  1228.         {
  1229.             matrix_normal_item_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1230.             g_tc_theme_DLT.matrix_normal_item_filler = (UI_filled_area*)&matrix_normal_item_filler;
  1231.         }
  1232.         if (!strncmp((PS8) attr_p[attrCount], "normal_txt_col", strlen("normal_txt_col")))
  1233.         {
  1234.             matrix_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1235.             matrix_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1236.             matrix_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1237.             matrix_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1238.             g_tc_theme_DLT.matrix_normal_text_color = (color*) & matrix_normal_text_color;
  1239.         }
  1240.         if (!strncmp((PS8) attr_p[attrCount], "selected_item_col", strlen("selected_item_col")))
  1241.         {
  1242.             matrix_selected_item_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1243.             matrix_selected_item_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1244.             matrix_selected_item_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1245.             matrix_selected_item_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1246.             g_tc_theme_DLT.matrix_selected_item_filler = (UI_filled_area*)&matrix_selected_item_filler;
  1247.         }
  1248.         if (!strncmp((PS8) attr_p[attrCount], "selected_item_img_offset", strlen("selected_item_img_offset")))
  1249.         {
  1250.             matrix_selected_item_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1251.             g_tc_theme_DLT.matrix_selected_item_filler = (UI_filled_area*)&matrix_selected_item_filler;
  1252.         }
  1253.         if (!strncmp((PS8) attr_p[attrCount], "selected_txt_col", strlen("selected_txt_col")))
  1254.         {
  1255.             matrix_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1256.             matrix_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1257.             matrix_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1258.             matrix_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1259.             g_tc_theme_DLT.matrix_selected_text_color = (color*) & matrix_selected_text_color;
  1260.         }
  1261.         if (!strncmp((PS8) attr_p[attrCount], "matrix_font", strlen("matrix_font")))
  1262.         {
  1263.             matrix_menu_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1264.             matrix_menu_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1265.             matrix_menu_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1266.             matrix_menu_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1267.             matrix_menu_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1268.             matrix_menu_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1269.             matrix_menu_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1270.             matrix_menu_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1271.             g_tc_theme_DLT.matrix_menu_font = (stFontAttribute*) & matrix_menu_font;
  1272.         }
  1273.         attrCount += 2;
  1274.     }
  1275. }
  1276. /*****************************************************************************
  1277.  * FUNCTION
  1278.  *  mmi_tc_menubar_tag_handler
  1279.  * DESCRIPTION
  1280.  *  (U8** attr_p)
  1281.  *  fill the MMI theme structure for menubar
  1282.  * PARAMETERS
  1283.  *  attr_p      [IN]        
  1284.  * RETURNS
  1285.  *  void
  1286.  *****************************************************************************/
  1287. void mmi_tc_menubar_tag_handler(U8 **attr_p)
  1288. {
  1289.     /*----------------------------------------------------------------*/
  1290.     /* Local Variables                                                */
  1291.     /*----------------------------------------------------------------*/
  1292.     U8 attrCount = 0;
  1293.     /*----------------------------------------------------------------*/
  1294.     /* Code Body                                                      */
  1295.     /*----------------------------------------------------------------*/
  1296.     while (attr_p[attrCount])
  1297.     {
  1298.         if (!strncmp((PS8) attr_p[attrCount], "index_bk_col", strlen("index_bk_col")))
  1299.         {
  1300.             menubar_index_background_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1301.             menubar_index_background_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1302.             menubar_index_background_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1303.             menubar_index_background_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1304.             g_tc_theme_DLT.menubar_index_background_color = (color*) & menubar_index_background_color;
  1305.         }
  1306.         if (!strncmp((PS8) attr_p[attrCount], "indexfont", strlen("indexfont")))
  1307.         {
  1308.             menu_bar_index_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1309.             menu_bar_index_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1310.             menu_bar_index_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1311.             menu_bar_index_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1312.             menu_bar_index_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1313.             menu_bar_index_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1314.             menu_bar_index_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1315.             menu_bar_index_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1316.             g_tc_theme_DLT.menu_bar_index_font = (stFontAttribute*) & menu_bar_index_font;
  1317.         }
  1318.         if (!strncmp((PS8) attr_p[attrCount], "item_bk_col", strlen("item_bk_col")))
  1319.         {
  1320.             menubar_item_background_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1321.             menubar_item_background_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1322.             menubar_item_background_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1323.             menubar_item_background_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1324.             g_tc_theme_DLT.menubar_item_background_color = (color*) & menubar_item_background_color;
  1325.         }
  1326.         if (!strncmp((PS8) attr_p[attrCount], "itemfont", strlen("itemfont")))
  1327.         {
  1328.             menu_bar_item_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1329.             menu_bar_item_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1330.             menu_bar_item_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1331.             menu_bar_item_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1332.             menu_bar_item_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1333.             menu_bar_item_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1334.             menu_bar_item_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1335.             menu_bar_item_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1336.             g_tc_theme_DLT.menu_bar_item_font = (stFontAttribute*) & menu_bar_item_font;
  1337.         }
  1338.         if (!strncmp((PS8) attr_p[attrCount], "index_txt_col", strlen("index_txt_col")))
  1339.         {
  1340.             menubar_index_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1341.             menubar_index_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1342.             menubar_index_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1343.             menubar_index_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1344.             g_tc_theme_DLT.menubar_index_text_color = (color*) & menubar_index_text_color;
  1345.         }
  1346.         if (!strncmp((PS8) attr_p[attrCount], "item_txt_col", strlen("item_txt_col")))
  1347.         {
  1348.             menubar_item_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1349.             menubar_item_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1350.             menubar_item_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1351.             menubar_item_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1352.             g_tc_theme_DLT.menubar_item_text_color = (color*) & menubar_item_text_color;
  1353.         }
  1354.         attrCount += 2;
  1355.     }
  1356. }
  1357. /*****************************************************************************
  1358.  * FUNCTION
  1359.  *  mmi_tc_statusbar_tag_handler
  1360.  * DESCRIPTION
  1361.  *  (U8** attr_p)
  1362.  *  fill the MMI theme structure for statusbar
  1363.  * PARAMETERS
  1364.  *  attr_p      [IN]        
  1365.  * RETURNS
  1366.  *  void
  1367.  *****************************************************************************/
  1368. void mmi_tc_statusbar_tag_handler(U8 **attr_p)
  1369. {
  1370.     /*----------------------------------------------------------------*/
  1371.     /* Local Variables                                                */
  1372.     /*----------------------------------------------------------------*/
  1373.     U8 attrCount = 0;
  1374.     /*----------------------------------------------------------------*/
  1375.     /* Code Body                                                      */
  1376.     /*----------------------------------------------------------------*/
  1377.     while (attr_p[attrCount])
  1378.     {
  1379.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1380.         {
  1381.             statusbar0_background_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1382.             statusbar0_background_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1383.             statusbar0_background_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1384.             statusbar0_background_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1385.         }
  1386.         attrCount += 2;
  1387.     }
  1388.     g_tc_theme_DLT.statusbar0_background_color = (color*) & statusbar0_background_color;
  1389. }
  1390. /*****************************************************************************
  1391.  * FUNCTION
  1392.  *  mmi_tc_shortcut_ind_tag_handler
  1393.  * DESCRIPTION
  1394.  *  (U8** attr_p)
  1395.  *  fill the MMI theme structure for shortcut_ind
  1396.  * PARAMETERS
  1397.  *  attr_p      [IN]        
  1398.  * RETURNS
  1399.  *  void
  1400.  *****************************************************************************/
  1401. void mmi_tc_shortcut_ind_tag_handler(U8 **attr_p)
  1402. {
  1403.     /*----------------------------------------------------------------*/
  1404.     /* Local Variables                                                */
  1405.     /*----------------------------------------------------------------*/
  1406.     U8 attrCount = 0;
  1407.     /*----------------------------------------------------------------*/
  1408.     /* Code Body                                                      */
  1409.     /*----------------------------------------------------------------*/
  1410.     while (attr_p[attrCount])
  1411.     {
  1412.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1413.         {
  1414.             shortcut_indicator_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1415.             shortcut_indicator_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1416.             shortcut_indicator_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1417.             shortcut_indicator_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1418.             g_tc_theme_DLT.shortcut_indicator_background_filler =
  1419.                 (UI_filled_area*)&shortcut_indicator_background_filler;
  1420.         }
  1421.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1422.         {
  1423.             shortcut_indicator_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1424.             shortcut_indicator_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1425.             shortcut_indicator_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1426.             shortcut_indicator_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1427.             g_tc_theme_DLT.shortcut_indicator_text_color = (color*) & shortcut_indicator_text_color;
  1428.         }
  1429.         if (!strncmp((PS8) attr_p[attrCount], "cursor_col", strlen("cursor_col")))
  1430.         {
  1431.             shortcut_indicator_cursor_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1432.             shortcut_indicator_cursor_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1433.             shortcut_indicator_cursor_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1434.             shortcut_indicator_cursor_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1435.             g_tc_theme_DLT.shortcut_indicator_cursor_color = (color*) & shortcut_indicator_cursor_color;
  1436.         }
  1437.         if (!strncmp((PS8) attr_p[attrCount], "font", strlen("font")))
  1438.         {
  1439.             shortcut_indicator_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1440.             shortcut_indicator_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1441.             shortcut_indicator_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1442.             shortcut_indicator_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1443.             shortcut_indicator_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1444.             shortcut_indicator_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1445.             shortcut_indicator_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1446.             shortcut_indicator_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1447.             g_tc_theme_DLT.shortcut_indicator_font = (stFontAttribute*) & shortcut_indicator_font;
  1448.         }
  1449.         attrCount += 2;
  1450.     }
  1451. }
  1452. /*****************************************************************************
  1453.  * FUNCTION
  1454.  *  mmi_tc_ip_box_tag_handler
  1455.  * DESCRIPTION
  1456.  *  (U8** attr_p)
  1457.  *  fill the MMI theme structure for ip_box
  1458.  * PARAMETERS
  1459.  *  attr_p      [IN]        
  1460.  * RETURNS
  1461.  *  void
  1462.  *****************************************************************************/
  1463. void mmi_tc_ip_box_tag_handler(U8 **attr_p)
  1464. {
  1465.     /*----------------------------------------------------------------*/
  1466.     /* Local Variables                                                */
  1467.     /*----------------------------------------------------------------*/
  1468.     U8 attrCount = 0;
  1469.     U8 type = 0;
  1470.     /*----------------------------------------------------------------*/
  1471.     /* Code Body                                                      */
  1472.     /*----------------------------------------------------------------*/
  1473.     while (attr_p[attrCount])
  1474.     {
  1475.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1476.         {
  1477.             inputbox_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1478.             inputbox_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1479.             inputbox_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1480.             inputbox_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1481.         }
  1482.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1483.         {
  1484.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1485.         }
  1486.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1487.         {
  1488.             inputbox_filler_DLT.flags = atoi((PS8) attr_p[attrCount + 1]);
  1489.             g_tc_theme_DLT.inputbox_filler = (UI_filled_area*)&inputbox_filler_DLT;
  1490.         }
  1491.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1492.         {
  1493.             inputbox_normal_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1494.             inputbox_normal_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1495.             inputbox_normal_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1496.             inputbox_normal_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1497.             g_tc_theme_DLT.inputbox_normal_text_color = (color*) & inputbox_normal_text_color_DLT;
  1498.         }
  1499.         if (!strncmp((PS8) attr_p[attrCount], "selection_col", strlen("selection_col")))
  1500.         {
  1501.             inputbox_selector_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1502.             inputbox_selector_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1503.             inputbox_selector_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1504.             inputbox_selector_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1505.             g_tc_theme_DLT.inputbox_selector_color = (color*) & inputbox_selector_color_DLT;
  1506.         }
  1507.         if (!strncmp((PS8) attr_p[attrCount], "sel_txt_col", strlen("sel_txt_col")))
  1508.         {
  1509.             inputbox_selected_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1510.             inputbox_selected_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1511.             inputbox_selected_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1512.             inputbox_selected_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1513.             g_tc_theme_DLT.inputbox_selected_text_color = (color*) & inputbox_selected_text_color_DLT;
  1514.         }
  1515.         if (!strncmp((PS8) attr_p[attrCount], "cursor_col", strlen("cursor_col")))
  1516.         {
  1517.             inputbox_cursor_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1518.             inputbox_cursor_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1519.             inputbox_cursor_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1520.             inputbox_cursor_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1521.             g_tc_theme_DLT.inputbox_cursor_color = (color*) & inputbox_cursor_color_DLT;
  1522.         }
  1523.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1524.         {
  1525.              inputbox_filler_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1526.         }
  1527.         if (!strncmp((PS8) attr_p[attrCount], "font", strlen("font")))
  1528.         {
  1529.             inputbox_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1530.             inputbox_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1531.             inputbox_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1532.             inputbox_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1533.             inputbox_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1534.             inputbox_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1535.             inputbox_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1536.             inputbox_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1537.             g_tc_theme_DLT.inputbox_font = (stFontAttribute*) & inputbox_font;
  1538.         }
  1539.         attrCount += 2;
  1540.     }
  1541. }
  1542. /*****************************************************************************
  1543.  * FUNCTION
  1544.  *  mmi_tc_pin_ip_box_tag_handler
  1545.  * DESCRIPTION
  1546.  *  (U8** attr_p)
  1547.  *  fill the MMI theme structure for pin_ip_box
  1548.  * PARAMETERS
  1549.  *  attr_p      [IN]        
  1550.  * RETURNS
  1551.  *  void
  1552.  *****************************************************************************/
  1553. void mmi_tc_pin_ip_box_tag_handler(U8 **attr_p)
  1554. {
  1555.     /*----------------------------------------------------------------*/
  1556.     /* Local Variables                                                */
  1557.     /*----------------------------------------------------------------*/
  1558.     U8 attrCount = 0;
  1559.     U8 type = 0;
  1560.     /*----------------------------------------------------------------*/
  1561.     /* Code Body                                                      */
  1562.     /*----------------------------------------------------------------*/
  1563.     while (attr_p[attrCount])
  1564.     {
  1565.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1566.         {
  1567.             PIN_inputbox_background_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1568.             PIN_inputbox_background_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1569.             PIN_inputbox_background_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1570.             PIN_inputbox_background_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1571.         }
  1572.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1573.         {
  1574.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1575.         }
  1576.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1577.         {
  1578.             PIN_inputbox_background_filler_DLT.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1579.             PIN_inputbox_background_filler_DLT.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1580.             PIN_inputbox_background_filler_DLT.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1581.             PIN_inputbox_background_filler_DLT.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1582.         }
  1583.         if (!strncmp((PS8) attr_p[attrCount], "cursor_col", strlen("cursor_col")))
  1584.         {
  1585.             PIN_inputbox_cursor_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1586.             PIN_inputbox_cursor_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1587.             PIN_inputbox_cursor_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1588.             PIN_inputbox_cursor_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1589.             g_tc_theme_DLT.PIN_inputbox_cursor_color = (color*) & PIN_inputbox_cursor_color_DLT;
  1590.         }
  1591.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1592.         {
  1593.             PIN_inputbox_normal_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1594.             PIN_inputbox_normal_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1595.             PIN_inputbox_normal_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1596.             PIN_inputbox_normal_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1597.             g_tc_theme_DLT.PIN_inputbox_normal_text_color = (color*) & PIN_inputbox_normal_text_color_DLT;
  1598.         }
  1599.         if (!strncmp((PS8) attr_p[attrCount], "selection_col", strlen("selection_col")))
  1600.         {
  1601.             PIN_inputbox_selector_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1602.             PIN_inputbox_selector_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1603.             PIN_inputbox_selector_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1604.             PIN_inputbox_selector_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1605.             g_tc_theme_DLT.PIN_inputbox_selector_color = (color*) & PIN_inputbox_selector_color_DLT;
  1606.         }
  1607.         if (!strncmp((PS8) attr_p[attrCount], "sel_txt_col", strlen("sel_txt_col")))
  1608.         {
  1609.             PIN_inputbox_selected_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1610.             PIN_inputbox_selected_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1611.             PIN_inputbox_selected_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1612.             PIN_inputbox_selected_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1613.             g_tc_theme_DLT.PIN_inputbox_selected_text_color = (color*) & PIN_inputbox_selected_text_color_DLT;
  1614.         }
  1615.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1616.         {
  1617.             PIN_inputbox_background_filler_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1618.         }
  1619.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1620.         {
  1621.             PIN_inputbox_background_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1622.             g_tc_theme_DLT.PIN_inputbox_background_filler = (UI_filled_area*)&PIN_inputbox_background_filler_DLT;
  1623.         }
  1624.         attrCount += 2;
  1625.     }
  1626. }
  1627. extern U16 mmi_check_theme_file_version_compatibility(FLOAT theme_version);
  1628. /*****************************************************************************
  1629.  * FUNCTION
  1630.  *  mmi_tc_device_theme_ver_info
  1631.  * DESCRIPTION
  1632.  *  (U8** attr_p)
  1633.  *  fill the MMI theme structure for device_theme
  1634.  * PARAMETERS
  1635.  *  attr_p      [IN]        
  1636.  * RETURNS
  1637.  *  void
  1638.  *****************************************************************************/
  1639. void mmi_tc_device_theme_ver_info(U8 **attr_p)
  1640. {
  1641.     /*----------------------------------------------------------------*/
  1642.     /* Local Variables                                                */
  1643.     /*----------------------------------------------------------------*/
  1644.     U8 attrCount = 0;
  1645.     /*----------------------------------------------------------------*/
  1646.     /* Code Body                                                      */
  1647.     /*----------------------------------------------------------------*/
  1648.     while (attr_p[attrCount])
  1649.     {
  1650.         if (!strncmp((PS8) attr_p[attrCount], "name", strlen("name")))
  1651.         {
  1652.             g_tc_themeInfo.name_p = attr_p[attrCount + 1];
  1653.         }
  1654.         if (!strncmp((PS8) attr_p[attrCount], "version", strlen("version")))
  1655.         {
  1656.             g_tc_themeInfo.version = (FLOAT) atoi((PS8) attr_p[attrCount + 1]);
  1657.         }
  1658.         attrCount += 2;
  1659.     }
  1660.     if (g_tm_checkThemeVersion)
  1661.     {
  1662.         xml_free_parse(&g_tc_parser);
  1663.     }
  1664. }
  1665. /*****************************************************************************
  1666.  * FUNCTION
  1667.  *  mmi_tc_inline_list_menu_tag_handler
  1668.  * DESCRIPTION
  1669.  *  (U8** attr_p)
  1670.  *  fill the MMI theme structure for inline_list_menu
  1671.  * PARAMETERS
  1672.  *  attr_p      [IN]        
  1673.  * RETURNS
  1674.  *  void
  1675.  *****************************************************************************/
  1676. void mmi_tc_inline_list_menu_tag_handler(U8 **attr_p)
  1677. {
  1678.     /*----------------------------------------------------------------*/
  1679.     /* Local Variables                                                */
  1680.     /*----------------------------------------------------------------*/
  1681.     U8 attrCount = 0;
  1682.     U8 type = 0;
  1683.     /*----------------------------------------------------------------*/
  1684.     /* Code Body                                                      */
  1685.     /*----------------------------------------------------------------*/
  1686.     while (attr_p[attrCount])
  1687.     {
  1688.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1689.         {
  1690.             inline_list_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1691.             inline_list_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1692.             inline_list_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1693.             inline_list_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1694.         }
  1695.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1696.         {
  1697.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1698.         }
  1699.         if (!strncmp((PS8) attr_p[attrCount], "bk_imgoffset", strlen("bk_imgoffset")))
  1700.         {
  1701.             inline_list_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1702.         }
  1703.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1704.         {
  1705.             inline_list_background_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1706.             g_tc_theme_DLT.inline_list_background_filler = (UI_filled_area*)&inline_list_background_filler;
  1707.         }
  1708.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_col", strlen("normal_item_col")))
  1709.         {
  1710.             inline_list_normal_item_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1711.             inline_list_normal_item_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1712.             inline_list_normal_item_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1713.             inline_list_normal_item_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1714.             g_tc_theme_DLT.inline_list_normal_item_filler = (UI_filled_area*)&inline_list_normal_item_filler;
  1715.         }
  1716.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_imgoffset", strlen("normal_item_imgoffset")))
  1717.         {
  1718.             inline_list_normal_item_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1719.             g_tc_theme_DLT.inline_list_normal_item_filler = (UI_filled_area*)&inline_list_normal_item_filler;
  1720.         }
  1721.         if (!strncmp((PS8) attr_p[attrCount], "normal_txt_col", strlen("normal_txt_col")))
  1722.         {
  1723.             inline_list_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1724.             inline_list_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1725.             inline_list_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1726.             inline_list_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1727.             g_tc_theme_DLT.inline_list_normal_text_color = (color*) & inline_list_normal_text_color;
  1728.         }
  1729.         if (!strncmp((PS8) attr_p[attrCount], "selected_item_col", strlen("selected_item_col")))
  1730.         {
  1731.             inline_list_selected_item_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1732.             inline_list_selected_item_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1733.             inline_list_selected_item_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1734.             inline_list_selected_item_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1735.             g_tc_theme_DLT.inline_list_selected_item_filler = (UI_filled_area*)&inline_list_selected_item_filler;
  1736.         }
  1737.         if (!strncmp((PS8) attr_p[attrCount], "selected_item_imgoffset", strlen("selected_item_imgoffset")))
  1738.         {
  1739.             inline_list_selected_item_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1740.             g_tc_theme_DLT.inline_list_selected_item_filler = (UI_filled_area*)&inline_list_selected_item_filler;
  1741.         }
  1742.         if (!strncmp((PS8) attr_p[attrCount], "selected_txt_col", strlen("selected_txt_col")))
  1743.         {
  1744.             inline_list_selected_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1745.             inline_list_selected_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1746.             inline_list_selected_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1747.             inline_list_selected_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1748.             g_tc_theme_DLT.inline_list_selected_text_color = (color*) & inline_list_selected_text_color;
  1749.         }
  1750.         attrCount += 2;
  1751.     }
  1752. }
  1753. /*****************************************************************************
  1754.  * FUNCTION
  1755.  *  mmi_tc_font_col_tag_handler
  1756.  * DESCRIPTION
  1757.  *  (U8** attr_p)
  1758.  *  Handles the font color list
  1759.  * PARAMETERS
  1760.  *  attr_p      [IN]        
  1761.  * RETURNS
  1762.  *  void
  1763.  *****************************************************************************/
  1764. void mmi_tc_font_col_tag_handler(U8 **attr_p)
  1765. {
  1766.     /*----------------------------------------------------------------*/
  1767.     /* Local Variables                                                */
  1768.     /*----------------------------------------------------------------*/
  1769.     U8 attrCount = 0;
  1770.     /*----------------------------------------------------------------*/
  1771.     /* Code Body                                                      */
  1772.     /*----------------------------------------------------------------*/
  1773.     while (attr_p[attrCount])
  1774.     {
  1775.         if (!strncmp((PS8) attr_p[attrCount], "calc", strlen("calc")))
  1776.         {
  1777.             calculator_theme_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1778.             calculator_theme_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1779.             calculator_theme_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1780.             calculator_theme_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1781.             g_tc_theme_DLT.calculator_color = (color*) & calculator_theme_color;
  1782.         }
  1783. #ifdef __OLD_DLT_THEME_FILE_SUPPORT__
  1784.     if(!g_tc_newTheme)
  1785. {
  1786. if (!strncmp((PS8) attr_p[attrCount], "idle_scr_date_txt", strlen("idle_scr_date_txt")))
  1787. {
  1788. idle_scr_date_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1789. idle_scr_date_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1790. idle_scr_date_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1791. idle_scr_date_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1792. g_tc_theme_DLT.idle_scr_date_color = (color*) & idle_scr_date_color_DLT;
  1793. }
  1794. else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_time_txt", strlen("idle_scr_time_txt")))
  1795. {
  1796. idle_scr_time_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1797. idle_scr_time_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1798. idle_scr_time_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1799. idle_scr_time_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1800. g_tc_theme_DLT.idle_scr_time_color = (color*) & idle_scr_time_color_DLT;
  1801. }
  1802. }
  1803. #endif /* __OLD_DLT_THEME_FILE_SUPPORT__ */
  1804.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1805.         {
  1806.             alarm_background_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1807.             alarm_background_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1808.             alarm_background_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1809.             alarm_background_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1810.             g_tc_theme_DLT.alarm_background_filler = (UI_filled_area*)&alarm_background_filler_DLT;
  1811.         }
  1812.         if (!strncmp((PS8) attr_p[attrCount], "alarm_txt", strlen("alarm_txt")))
  1813.         {
  1814.             alarm_text_theme_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1815.             alarm_text_theme_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1816.             alarm_text_theme_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1817.             alarm_text_theme_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1818.             g_tc_theme_DLT.alarm_text_color = (color*) & alarm_text_theme_color;
  1819.         }
  1820.         attrCount += 2;
  1821.     }
  1822. }
  1823. /*****************************************************************************
  1824.  * FUNCTION
  1825.  *  mmi_tc_convert_theme_file_to_mmi_theme
  1826.  * DESCRIPTION
  1827.  *  (MMI_theme** theme, U32 file_handle)
  1828.  *  fills the MMI theme structure by parsing the downloaded theme file
  1829.  * PARAMETERS
  1830.  *  theme           [IN]        
  1831.  *  file_handle     [IN]        
  1832.  * RETURNS
  1833.  *  true if successfully converted otherwise false
  1834.  *****************************************************************************/
  1835. extern MMI_theme theme_Default;
  1836. BOOL mmi_tc_convert_theme_file_to_mmi_theme(MMI_theme **theme, U32 file_handle)
  1837. {
  1838.     /*----------------------------------------------------------------*/
  1839.     /* Local Variables                                                */
  1840.     /*----------------------------------------------------------------*/
  1841.     /*----------------------------------------------------------------*/
  1842.     /* Code Body                                                      */
  1843.     /*----------------------------------------------------------------*/
  1844.     memcpy(g_tc_theme_converter_p, &theme_Default, sizeof(MMI_theme));
  1845.     if (xml_new_parser(&g_tc_parser) == -1)
  1846.     {
  1847.         return FALSE;
  1848.     }
  1849.     xml_register_element_handler(&g_tc_parser, mmi_tc_my_xml_elem_start_hdlr, mmi_tc_my_xml_elem_end_hdlr);
  1850.     g_tc_parser.pos = THEME_FILE_SIZE_HEADER + THEME_CHECKSUM_HEADER_SIZE;
  1851.     xml_parse_file_from_offset(&g_tc_parser, file_handle);
  1852.     xml_close_parser_offset(&g_tc_parser);
  1853.     *theme = &g_tc_theme_DLT;
  1854.     return TRUE;
  1855. }
  1856. #endif /* __MMI_DOWNLOADABLE_THEMES_SUPPORT__ */ /* MMI theme downloadable support */