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

MTK

开发平台:

C/C++

  1. /*****************************************************************************
  2. *  Copyright Statement:
  3. *  --------------------
  4. *  This software is protected by Copyright and the information contained
  5. *  herein is confidential. The software may not be copied and the information
  6. *  contained herein may not be used or disclosed except with the written
  7. *  permission of MediaTek Inc. (C) 2005
  8. *
  9. *  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
  10. *  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
  11. *  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
  12. *  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
  13. *  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
  14. *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
  15. *  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
  16. *  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
  17. *  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
  18. *  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
  19. *  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
  20. *  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
  21. *
  22. *  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
  23. *  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
  24. *  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
  25. *  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
  26. *  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
  27. *
  28. *  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
  29. *  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
  30. *  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
  31. *  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
  32. *  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
  33. *
  34. *****************************************************************************/
  35. /*****************************************************************************
  36.  *
  37.  * Filename:
  38.  * ---------
  39.  *   ThemeConverterUI.c
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   MAUI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  * Contains function fort he filling of the MMI_theme structure
  48.  *
  49.  * Author:
  50.  * -------
  51.  * -------
  52.  *  Vikas Gupta(PMT)
  53.  *   
  54.  *==============================================================================
  55.  *             HISTORY
  56.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  57.  *------------------------------------------------------------------------------
  58.  * removed!
  59.  *
  60.  * removed!
  61.  * removed!
  62.  * removed!
  63.  *
  64.  * removed!
  65.  * removed!
  66.  * removed!
  67.  *
  68.  * removed!
  69.  * removed!
  70.  * removed!
  71.  *
  72.  * removed!
  73.  * removed!
  74.  * removed!
  75.  *
  76.  * removed!
  77.  * removed!
  78.  * removed!
  79.  *
  80.  * removed!
  81.  * removed!
  82.  * removed!
  83.  *
  84.  * removed!
  85.  * removed!
  86.  * removed!
  87.  *
  88.  * removed!
  89.  * removed!
  90.  * removed!
  91.  *
  92.  * removed!
  93.  * removed!
  94.  * removed!
  95.  *
  96.  * removed!
  97.  * removed!
  98.  * removed!
  99.  *
  100.  * removed!
  101.  * removed!
  102.  * removed!
  103.  *
  104.  * removed!
  105.  * removed!
  106.  * removed!
  107.  *
  108.  * removed!
  109.  * removed!
  110.  * removed!
  111.  *
  112.  * removed!
  113.  * removed!
  114.  * removed!
  115.  * removed!
  116.  *
  117.  *------------------------------------------------------------------------------
  118.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!! 
  119.  *==============================================================================
  120.  *******************************************************************************/
  121. #include "MMI_features.h"
  122. #include "stdC.h"
  123. #include "L4Dr1.h"
  124. #include "Fat_fs.h"
  125. #include "SettingProfile.h"
  126. #include "gui_data_types.h"
  127. #include "PixtelDataTypes.h"
  128. #include "PixcomFontEngine.h"
  129. #include "CustThemesRes.h"
  130. #include "ThemeConverter.h"
  131. #include "ThemeManager.h"
  132. #include "xml_def.h"
  133. #include "stdlib.h"
  134. #include "MainMenuDef.h"
  135. #include "GlobalDefs.h"
  136. #ifdef __MMI_DOWNLOADABLE_THEMES_SUPPORT__
  137. /* Support original Theme V2 */
  138. #define __OLD_DLT_THEME_FILE_SUPPORT__
  139. extern MMI_theme **MMI_themes;
  140. extern XML_PARSER_STRUCT g_tc_parser;
  141. /* ... Add More MMI header */
  142. extern U16 g_tm_checkThemeVersion;
  143. U8 g_tc_audiothmfileformat; /* ritesh */
  144. U8 g_tc_newTheme=0;
  145. /*************************************************************/
  146. /* Theme Versioning Structures */
  147. tc_deviceinfo_struct g_tc_deviceInfo;
  148. tc_theme_download_info_struct g_tc_themeInfo;
  149. /**************************************************************/
  150. /*************************************color objects********************************/
  151. color UI_black_color = {0, 0, 0, 100};
  152. color UI_white_color = {255, 255, 255, 100};
  153. color lite_disp_scr_bg_color_DLT = {255, 255, 255, 100};
  154. color LSK_up_txt_col_DLT = {0, 0, 0, 100};
  155. color LSK_down_txt_col_DLT = {255, 255, 255, 100};
  156. color LSK_disabled_text_color = {128, 128, 128, 100};
  157. color RSK_up_txt_col_DLT = {0, 0, 0, 100};
  158. color RSK_down_txt_col_DLT = {255, 255, 255, 100};
  159. color RSK_disabled_text_color = {128, 128, 128, 100};
  160. color multitap_selector_color_DLT = {51, 88, 171, 100};
  161. color multitap_normal_text_color_DLT = {0, 0, 0, 100};
  162. color multitap_selected_text_color_DLT = {255, 255, 255, 100};
  163. color inputbox_normal_text_color_DLT = {0, 0, 0, 100};
  164. color inputbox_selected_text_color_DLT = {255, 255, 255, 100};
  165. color inputbox_selector_color_DLT = {51, 88, 171, 100};
  166. color inputbox_cursor_color_DLT = {255, 0, 0, 100};
  167. color title_text_color = {255, 255, 255, 100};
  168. color title_text_border_color = {0, 0, 0, 100};
  169. color title_shortcut_text_color = {0, 0, 0, 100};
  170. color list_normal_text_color = {0, 46, 114, 100};
  171. color list_selected_text_color = {255, 255, 255, 100};
  172. color list_disabled_text_color = {0, 0, 0, 100};
  173. color matrix_normal_text_color = {0, 0, 0, 100};
  174. color matrix_selected_text_color = {255, 255, 255, 100};
  175. color matrix_disabled_text_color = {0, 0, 0, 100};
  176. color menubar_index_background_color = {50, 90, 140, 100};
  177. color menubar_item_background_color = {149, 207, 247, 100};
  178. color menubar_index_text_color = {255, 255, 255, 100};
  179. color menubar_item_text_color = {0, 0, 0, 100};
  180. color shortcut_indicator_text_color = {0, 0, 0, 100};
  181. color shortcut_indicator_cursor_color = {255, 0, 0, 100};
  182. color drop_down_normal_text_color = {0, 0, 0, 100};
  183. color drop_down_disabled_text_color = {64, 64, 64, 100};
  184. color drop_down_focussed_text_color = {0, 0, 0, 100};
  185. color formatted_inputbox_selector_color = {51, 88, 171, 100};
  186. color formatted_inputbox_normal_text_color = {0, 0, 0, 100};
  187. color formatted_inputbox_disabled_text_color = {128, 128, 128, 100};
  188. color formatted_inputbox_selected_text_color = {255, 255, 255, 100};
  189. color formatted_inputbox_cursor_color = {255, 0, 0, 100};
  190. color list_main_menu_normal_text_color = {0, 46, 114, 100};
  191. color list_main_menu_selected_text_color = {255, 255, 255, 100};
  192. color list_main_menu_disabled_text_color = {0, 0, 0, 100};
  193. color matrix_main_menu_normal_text_color = {0, 0, 0, 100};
  194. color matrix_main_menu_selected_text_color = {255, 255, 255, 100};
  195. color matrix_main_menu_disabled_text_color = {0, 0, 0, 100};
  196. color circular_main_menu_normal_text_color = {0, 0, 0, 100};
  197. color circular_main_menu_selected_text_color = {255, 255, 255, 100};
  198. color circular_main_menu_disabled_text_color = {0, 0, 0, 100};
  199. color popup_screen_background_color = {246, 255, 171, 100};
  200. color popup_screen_border_color = {142, 204, 145, 100};
  201. color popup_description_text_color = {0, 0, 0, 100};
  202. color CM_screen_text_color = {0, 0, 255, 100};
  203. color datetime_bar_background_color = {176, 223, 141, 100};
  204. color datetime_bar_duration_background_color = {255, 255, 255, 100};
  205. color datetime_bar_date_text_color = {0, 0, 0, 100};
  206. color datetime_bar_time_text_color = {0, 0, 0, 100};
  207. color datetime_bar_duration_text_color = {224, 0, 0, 100};
  208. color datetime_bar_AOC_text_color = {0, 0, 0, 100};
  209. color button_bar_color = {216, 212, 212, 100};
  210. color information_bar_color = {255, 231, 93, 100};
  211. color input_method_text_color = {255, 0, 0, 100};
  212. color remaining_length_text_color = {0, 0, 0, 100};
  213. color statusbar0_background_color = {255, 255, 255, 100};
  214. color inline_edit_focussed_text_color = {0, 0, 0, 100};
  215. color inline_edit_unfocussed_text_color = {0, 0, 0, 100};
  216. color inline_edit_selected_text_color = {255, 255, 255, 100};
  217. color inline_edit_selector_color = {51, 88, 171, 100};
  218. color inline_edit_cursor_color = {255, 0, 0, 100};
  219. color inline_list_normal_text_color = {0, 0, 0, 100};
  220. color inline_list_selected_text_color = {0, 0, 0, 100};
  221. color inline_list_disabled_text_color = {0, 0, 0, 100};
  222. color PIN_inputbox_normal_text_color_DLT = {0, 0, 0, 100};
  223. color PIN_inputbox_selected_text_color_DLT = {255, 255, 255, 100};
  224. color PIN_inputbox_selector_color_DLT = {51, 88, 171, 100};
  225. color PIN_inputbox_cursor_color_DLT = {255, 0, 0, 100};
  226. color dialer_inputbox_normal_text_color_DLT = {0, 0, 0, 100};
  227. color dialer_inputbox_selected_text_color_DLT = {255, 255, 255, 100};
  228. color dialer_inputbox_selector_color_DLT = {51, 88, 171, 100};
  229. color dialer_inputbox_cursor_color_DLT = {255, 0, 0, 100};
  230. color virtual_keyboard_key_down_text_color = {255, 255, 255, 100};
  231. color virtual_keyboard_key_up_text_color = {0, 0, 0, 100};
  232. color virtual_keyboard_disp_area_text_color = {0, 0, 0, 100};
  233. /* Added for calculator color changes */
  234. color calculator_theme_color = {0, 0, 0, 100};
  235. color alarm_text_theme_color = {0, 0, 0, 100};
  236. color idle_scr_date_color_DLT = {234, 123, 45, 100}; 
  237. color idle_scr_date_border_color_DLT = {0,0,0,100};
  238. color idle_scr_time_color_DLT = {234, 123, 45, 100};
  239. color idle_scr_time_border_color_DLT = {0,0,0,100};
  240. color idle_scr_network_name_color_DLT = {255,255,255,100};
  241. color idle_scr_network_name_border_color_DLT = {0,0,0,100};
  242. color idle_scr_network_status_color_DLT = {0,255,255,100};
  243. color idle_scr_network_status_border_color_DLT = {0,0,0,100};
  244. color idle_scr_network_extra_color_DLT = {255,255,0,100};
  245. color idle_scr_network_extra_border_color_DLT = {0,0,0,100};
  246. /******************************************************************************/
  247. /**************************UI_filled_area objects******************************/
  248. UI_filled_area list_main_menu_normal_item_filler_DLT;
  249. UI_filled_area list_main_menu_selected_item_filler_DLT;
  250. UI_filled_area list_main_menu_disabled_item_filler_DLT;
  251. UI_filled_area matrix_main_menu_normal_item_filler_DLT;
  252. UI_filled_area matrix_main_menu_selected_item_filler_DLT;
  253. UI_filled_area matrix_main_menu_disabled_item_filler_DLT;
  254. UI_filled_area LSK_up_DLT = 
  255. {
  256.     UI_FILLED_AREA_TYPE_COLOR,
  257.     UI_NULL_IMAGE,
  258.     NULL,
  259.     {118, 224, 15, 100},
  260.     {0, 0, 0, 0},
  261.     {0, 0, 0, 0},
  262.     {0, 0, 0, 0},
  263.     0
  264. };
  265. UI_filled_area LSK_down_DLT = 
  266. {
  267.     UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SHADOW,
  268.     UI_NULL_IMAGE,
  269.     NULL,
  270.     {118, 224, 15, 100},
  271.     {0, 0, 0, 0},
  272.     {0, 0, 0, 0},
  273.     {0, 0, 0, 0},
  274.     0
  275. };
  276. UI_filled_area LSK_disabled_filler = 
  277. {
  278.     UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SHADOW,
  279.     UI_NULL_IMAGE,
  280.     NULL,
  281.     {118, 224, 15, 100},
  282.     {0, 0, 0, 0},
  283.     {0, 0, 0, 0},
  284.     {0, 0, 0, 0},
  285.     0
  286. };
  287. UI_filled_area RSK_up_DLT = 
  288. {
  289.     UI_FILLED_AREA_TYPE_COLOR,
  290.     UI_NULL_IMAGE,
  291.     NULL,
  292.     {118, 224, 15, 100},
  293.     {0, 0, 0, 0},
  294.     {0, 0, 0, 0},
  295.     {0, 0, 0, 0},
  296.     0
  297. };
  298. UI_filled_area RSK_down_DLT = 
  299. {
  300.     UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SHADOW,
  301.     UI_NULL_IMAGE,
  302.     NULL,
  303.     {118, 224, 15, 100},
  304.     {0, 0, 0, 0},
  305.     {0, 0, 0, 0},
  306.     {0, 0, 0, 0},
  307.     0
  308. };
  309. UI_filled_area RSK_disabled_filler = 
  310. {
  311.     UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SHADOW,
  312.     UI_NULL_IMAGE,
  313.     NULL,
  314.     {118, 224, 15, 100},
  315.     {0, 0, 0, 0},
  316.     {0, 0, 0, 0},
  317.     {0, 0, 0, 0},
  318.     0
  319. };
  320. UI_filled_area multitap_filler = 
  321. {
  322.     UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER | UI_FILLED_AREA_SHADOW |
  323.         UI_FILLED_AREA_SHADOW_DOUBLE_LINE,
  324.     UI_NULL_IMAGE,
  325.     NULL,
  326.     {196, 228, 251, 100},
  327.     {0, 0, 0, 0},
  328.     {0, 0, 0, 100},
  329.     {128, 128, 128, 100},
  330.     0
  331. };
  332. UI_filled_area inputbox_filler_DLT;
  333. UI_filled_area scrollbar_background_filler_DLT;
  334. UI_filled_area scrollbar_indicator_filler;
  335. UI_filled_area Title_DLT = 
  336. {
  337.     UI_FILLED_AREA_TYPE_COLOR,
  338.     UI_IMAGE_ID_NULL,
  339.     NULL,
  340.     {66, 96, 215, 100},
  341.     {0, 0, 0, 100},
  342.     {0, 0, 0, 100},
  343.     {0, 0, 0, 100},
  344.     0
  345. };
  346. UI_filled_area list_background_filler = 
  347. {
  348.     UI_FILLED_AREA_TYPE_COLOR,
  349.     UI_NULL_IMAGE,
  350.     NULL,
  351.     {255, 255, 255, 100},
  352.     {0, 0, 0, 0},
  353.     {0, 0, 0, 100},
  354.     {0, 0, 0, 0},
  355.     0
  356. };
  357. UI_filled_area list_normal_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  358.     UI_NULL_IMAGE,
  359.     NULL,
  360.     {190, 220, 255, 100},
  361.     {0, 0, 0, 0},
  362.     {0, 0, 0, 0},
  363.     {0, 0, 0, 0},
  364.     0
  365. };
  366. UI_filled_area list_selected_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  367.     UI_NULL_IMAGE,
  368.     NULL,
  369.     {0, 240, 255, 100},
  370.     {0, 0, 0, 0},
  371.     {0, 0, 0, 0},
  372.     {0, 0, 0, 0},
  373.     0
  374. };
  375. UI_filled_area list_disabled_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  376.     UI_NULL_IMAGE,
  377.     NULL,
  378.     {141, 167, 191, 100},
  379.     {0, 0, 0, 0},
  380.     {0, 0, 0, 0},
  381.     {0, 0, 0, 0},
  382.     0
  383. };
  384. UI_filled_area matrix_background_filler = {UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  385.     UI_NULL_IMAGE,
  386.     NULL,
  387.     {255, 255, 255, 100},
  388.     {0, 0, 0, 0},
  389.     {0, 0, 0, 100},
  390.     {0, 0, 0, 0},
  391.     255
  392. };
  393. UI_filled_area matrix_normal_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  394.     UI_NULL_IMAGE,
  395.     NULL,
  396.     {255, 255, 255, 100},
  397.     {0, 0, 0, 0},
  398.     {0, 0, 0, 0},
  399.     {0, 0, 0, 0},
  400.     0
  401. };
  402. UI_filled_area matrix_selected_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  403.     UI_NULL_IMAGE,
  404.     NULL,
  405.     {51, 88, 171, 100},
  406.     {0, 0, 0, 0},
  407.     {0, 0, 0, 0},
  408.     {0, 0, 0, 0},
  409.     0
  410. };
  411. UI_filled_area matrix_disabled_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  412.     UI_NULL_IMAGE,
  413.     NULL,
  414.     {200, 200, 200, 100},
  415.     {0, 0, 0, 0},
  416.     {0, 0, 0, 0},
  417.     {0, 0, 0, 0},
  418.     0
  419. };
  420. UI_filled_area shortcut_indicator_background_filler = {UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  421.     UI_NULL_IMAGE,
  422.     NULL,
  423.     {224, 224, 224, 100},
  424.     {0, 0, 0, 0},
  425.     {0, 0, 0, 100},
  426.     {0, 0, 0, 0},
  427.     0
  428. };
  429. UI_filled_area formatted_inputbox_normal_filler = {UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  430.     UI_NULL_IMAGE,
  431.     NULL,
  432.     {200, 200, 200, 100},
  433.     {0, 0, 0, 0},
  434.     {0, 0, 0, 100},
  435.     {0, 0, 0, 0},
  436.     0
  437. };
  438. UI_filled_area formatted_inputbox_selected_filler = {UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  439.     UI_NULL_IMAGE,
  440.     NULL,
  441.     {255, 255, 255, 100},
  442.     {0, 0, 0, 0},
  443.     {0, 0, 0, 100},
  444.     {0, 0, 0, 0},
  445.     0
  446. };
  447. UI_filled_area main_menu_background_filler_DLT = {UI_FILLED_AREA_TYPE_COLOR,
  448.     UI_NULL_IMAGE,
  449.     NULL,
  450.     {255, 255, 255, 100},
  451.     {0, 0, 0, 0},
  452.     {0, 0, 0, 0},
  453.     {0, 0, 0, 0},
  454.     0
  455. };
  456. UI_filled_area general_background_filler = {UI_FILLED_AREA_TYPE_COLOR,
  457.     UI_NULL_IMAGE,
  458.     NULL,
  459.     {255, 255, 255, 100},
  460.     {0, 0, 0, 0},
  461.     {0, 0, 0, 0},
  462.     {0, 0, 0, 0},
  463.     0
  464. };
  465. UI_filled_area popup_description_background_filler = {UI_FILLED_AREA_TYPE_COLOR,
  466.     UI_NULL_IMAGE,
  467.     NULL,
  468.     {245, 247, 115, 100},
  469.     {0, 0, 0, 0},
  470.     {0, 0, 0, 0},
  471.     {0, 0, 0, 0},
  472.     0
  473. };
  474. UI_filled_area inline_list_background_filler = 
  475. {
  476.     UI_FILLED_AREA_TYPE_COLOR,
  477.     UI_NULL_IMAGE,
  478.     NULL,
  479.     {240, 240, 240, 100},
  480.     {0, 0, 0, 0},
  481.     {0, 0, 0, 100},
  482.     {0, 0, 0, 0},
  483.     0
  484. };
  485. UI_filled_area inline_list_normal_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  486.     UI_NULL_IMAGE,
  487.     NULL,
  488.     {240, 240, 240, 100},
  489.     {0, 0, 0, 0},
  490.     {0, 0, 0, 0},
  491.     {0, 0, 0, 0},
  492.     0
  493. };
  494. UI_filled_area inline_list_selected_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  495.     UI_NULL_IMAGE,
  496.     NULL,
  497.     {167, 232, 93, 100},
  498.     {0, 0, 0, 0},
  499.     {0, 0, 0, 0},
  500.     {0, 0, 0, 0},
  501.     0
  502. };
  503. UI_filled_area inline_list_disabled_item_filler = {UI_FILLED_AREA_TYPE_COLOR,
  504.     UI_NULL_IMAGE,
  505.     NULL,
  506.     {192, 192, 192, 100},
  507.     {0, 0, 0, 0},
  508.     {0, 0, 0, 0},
  509.     {0, 0, 0, 0},
  510.     0
  511. };
  512. UI_filled_area inline_edit_focussed_filler = {UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  513.     NULL,
  514.     NULL,
  515.     {167, 232, 93, 100},
  516.     {0, 0, 0, 0},
  517.     {0, 0, 0, 100},
  518.     {0, 0, 0, 0},
  519.     0
  520. };
  521. UI_filled_area inline_edit_unfocussed_filler = {UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  522.     NULL,
  523.     NULL,
  524.     {255, 255, 255, 100},
  525.     {0, 0, 0, 0},
  526.     {0, 0, 0, 100},
  527.     {0, 0, 0, 0},
  528.     0
  529. };
  530. UI_filled_area inline_edit_noboundary_filler = {UI_FILLED_AREA_TYPE_COLOR,
  531.     NULL,
  532.     NULL,
  533.     {167, 232, 93, 100},
  534.     {0, 0, 0, 0},
  535.     {0, 0, 0, 100},
  536.     {0, 0, 0, 0},
  537.     0
  538. };
  539. UI_filled_area PIN_inputbox_background_filler_DLT = 
  540. {
  541.     UI_FILLED_AREA_TYPE_COLOR | UI_FILLED_AREA_SINGLE_BORDER,
  542.     UI_NULL_IMAGE,
  543.     NULL,
  544.     {255, 222, 255, 100},
  545.     {0, 0, 0, 0},
  546.     {255, 0, 0, 100},
  547.     {255, 0, 0, 100},
  548.     0
  549. };
  550. UI_filled_area PIN_screen_background_filler_DLT = {UI_FILLED_AREA_TYPE_COLOR,
  551.     UI_NULL_IMAGE,
  552.     NULL,
  553.     {255, 255, 255, 100},
  554.     {0, 0, 0, 0},
  555.     {0, 0, 0, 0},
  556.     {0, 0, 0, 0},
  557.     0
  558. };
  559. UI_filled_area network_screen_background_filler = {UI_FILLED_AREA_TYPE_COLOR,
  560.     UI_NULL_IMAGE,
  561.     NULL,
  562.     {255, 255, 255, 100},
  563.     {0, 0, 0, 0},
  564.     {0, 0, 0, 0},
  565.     {0, 0, 0, 0},
  566.     0
  567. };
  568. UI_filled_area aphorism_screen_background_filler = {UI_FILLED_AREA_TYPE_COLOR,
  569.     UI_NULL_IMAGE,
  570.     NULL,
  571.     {255, 255, 255, 100},
  572.     {0, 0, 0, 0},
  573.     {0, 0, 0, 0},
  574.     {0, 0, 0, 0},
  575.     0
  576. };
  577. UI_filled_area CM_screen_background_filler = {UI_FILLED_AREA_TYPE_COLOR,
  578.     UI_NULL_IMAGE,
  579.     NULL,
  580.     {255, 255, 255, 100},
  581.     {0, 0, 0, 0},
  582.     {0, 0, 0, 0},
  583.     {0, 0, 0, 0},
  584.     0
  585. };
  586. UI_filled_area progress_screen_background_filler = {UI_FILLED_AREA_TYPE_COLOR,
  587.     UI_NULL_IMAGE,
  588.     NULL,
  589.     {255, 255, 255, 100},
  590.     {0, 0, 0, 0},
  591.     {0, 0, 0, 0},
  592.     {0, 0, 0, 0},
  593.     0
  594. };
  595. UI_filled_area dialer_inputbox_background_filler = 
  596. {
  597.     UI_FILLED_AREA_TYPE_COLOR,
  598.     UI_NULL_IMAGE,
  599.     NULL,
  600.     {255, 255, 255, 100},
  601.     {0, 0, 0, 0},
  602.     {0, 0, 0, 100},
  603.     {0, 0, 0, 0},
  604.     0
  605. };
  606. UI_filled_area virtual_keyboard_key_down_filler = 
  607. {
  608.     UI_FILLED_AREA_TYPE_COLOR,
  609.     UI_NULL_IMAGE,
  610.     NULL,
  611.     {0, 0, 0, 100},
  612.     {0, 0, 0, 100},
  613.     {0, 0, 0, 100},
  614.     {128, 128, 128, 100},
  615.     0
  616. };
  617. UI_filled_area alarm_background_filler_DLT = 
  618. {
  619.     UI_FILLED_AREA_TYPE_COLOR,
  620.     UI_NULL_IMAGE,
  621.     NULL,
  622.     {255, 00, 255, 100},
  623.     {0, 0, 0, 100},
  624.     {0, 0, 0, 100},
  625.     {128, 128, 128, 100},
  626.     0
  627. };
  628. /******************************************************************************/
  629. /****************************button fonts objects*********************************/
  630. stFontAttribute butt_font;
  631. /* UI_font_type         button_font = &butt_font;//=(stFontAttribute*)malloc(sizeof(stFontAttribute)); */
  632. stFontAttribute matrix_menu_font;   /* =(stFontAttribute*)malloc(sizeof(stFontAttribute));; */
  633. stFontAttribute multitap_font;
  634. stFontAttribute inputbox_font;
  635. stFontAttribute window_title_font;
  636. stFontAttribute list_menu_font;
  637. stFontAttribute menu_bar_index_font;
  638. stFontAttribute menu_bar_item_font;
  639. stFontAttribute shortcut_indicator_font;
  640. stFontAttribute title_text_font;
  641. stFontAttribute drop_down_control_font;
  642. stFontAttribute list_main_menu_font;
  643. stFontAttribute matrix_main_menu_font;
  644. stFontAttribute virtual_keyboard_font;
  645. S32 scrollbar_size;
  646. S32 bg_opacity_full_DLT;
  647. /********************************************************************************/
  648. /****************************************************************************
  649. MMI theme structure filled using the Downloaded theme file 
  650. *****************************************************************************/
  651. MMI_theme g_tc_theme_DLT = 
  652. {
  653.     (UI_filled_area *)&LSK_up_DLT,
  654.     (UI_filled_area *)&LSK_down_DLT,
  655.     (UI_filled_area *)&LSK_disabled_filler,
  656.     (UI_filled_area *)&RSK_up_DLT,
  657.     (UI_filled_area *)&RSK_down_DLT,
  658.     (UI_filled_area *)&RSK_disabled_filler,
  659.     (UI_filled_area *)&multitap_filler,
  660.     (UI_filled_area *)&inputbox_filler_DLT,
  661.     (UI_filled_area *)&scrollbar_background_filler_DLT,
  662.     (UI_filled_area *)&scrollbar_indicator_filler,
  663.     (UI_filled_area *)&Title_DLT,
  664.     (UI_filled_area *)&list_background_filler,
  665.     (UI_filled_area *)&list_normal_item_filler,
  666.     (UI_filled_area *)&list_selected_item_filler,
  667.     (UI_filled_area *)&list_disabled_item_filler,
  668.     (UI_filled_area *)&matrix_background_filler,
  669.     (UI_filled_area *)&matrix_normal_item_filler,
  670.     (UI_filled_area *)&matrix_selected_item_filler,
  671.     (UI_filled_area *)&matrix_disabled_item_filler,
  672.     (UI_filled_area *)&shortcut_indicator_background_filler,
  673.     (UI_filled_area *)&formatted_inputbox_normal_filler,
  674.     (UI_filled_area *)&formatted_inputbox_selected_filler,
  675.     (UI_filled_area *)&main_menu_background_filler_DLT,
  676.     (UI_filled_area *)&list_main_menu_normal_item_filler_DLT,
  677.     (UI_filled_area *)&list_main_menu_selected_item_filler_DLT,
  678.     (UI_filled_area *)&list_main_menu_disabled_item_filler_DLT,
  679.     (UI_filled_area *)&matrix_main_menu_normal_item_filler_DLT,
  680.     (UI_filled_area *)&matrix_main_menu_selected_item_filler_DLT,
  681.     (UI_filled_area *)&matrix_main_menu_disabled_item_filler_DLT,
  682.     (UI_filled_area *)&general_background_filler,
  683.     (UI_filled_area *)&popup_description_background_filler,
  684.     (UI_filled_area *)&inline_list_background_filler,
  685.     (UI_filled_area *)&inline_list_normal_item_filler,
  686.     (UI_filled_area *)&inline_list_selected_item_filler,
  687.     (UI_filled_area *)&inline_list_disabled_item_filler,
  688.     (UI_filled_area *)&inline_edit_focussed_filler,
  689.     (UI_filled_area *)&inline_edit_unfocussed_filler,
  690.     (UI_filled_area *)&inline_edit_noboundary_filler,
  691.     (UI_filled_area *)&PIN_inputbox_background_filler_DLT,
  692.     (UI_filled_area *)&PIN_screen_background_filler_DLT,
  693.     (UI_filled_area *)&network_screen_background_filler,
  694.     (UI_filled_area *)&aphorism_screen_background_filler,
  695.     (UI_filled_area *)&CM_screen_background_filler,
  696.     (UI_filled_area *)&progress_screen_background_filler,
  697.     (UI_filled_area *)&dialer_inputbox_background_filler,
  698.     (UI_filled_area *)&virtual_keyboard_key_down_filler,
  699.     (UI_filled_area *)&alarm_background_filler_DLT,
  700. #ifdef UI_SMALL_LIST_SCREEN
  701.     NULL,
  702.     NULL,
  703. #endif /* UI_SMALL_LIST_SCREEN */ 
  704.     (color *) & UI_black_color,
  705.     (color *) & UI_white_color,
  706.     (color *) & lite_disp_scr_bg_color_DLT,
  707.     (color *) & LSK_up_txt_col_DLT,
  708.     (color *) & LSK_down_txt_col_DLT,
  709.     (color *) & LSK_disabled_text_color,
  710.     (color *) & RSK_up_txt_col_DLT,
  711.     (color *) & RSK_down_txt_col_DLT,
  712.     (color *) & RSK_disabled_text_color,
  713.     (color *) & multitap_selector_color_DLT,
  714.     (color *) & multitap_normal_text_color_DLT,
  715.     (color *) & multitap_selected_text_color_DLT,
  716.     (color *) & inputbox_normal_text_color_DLT,
  717.     (color *) & inputbox_selected_text_color_DLT,
  718.     (color *) & inputbox_selector_color_DLT,
  719.     (color *) & inputbox_cursor_color_DLT,
  720.     (color *) & title_text_color,
  721.     (color *) & title_text_border_color,
  722.     (color *) & title_shortcut_text_color,
  723.     (color *) & list_normal_text_color,
  724.     (color *) & list_selected_text_color,
  725.     (color *) & list_disabled_text_color,
  726.     (color *) & matrix_normal_text_color,
  727.     (color *) & matrix_selected_text_color,
  728.     (color *) & matrix_disabled_text_color,
  729.     (color *) & menubar_index_background_color,
  730.     (color *) & menubar_item_background_color,
  731.     (color *) & menubar_index_text_color,
  732.     (color *) & menubar_item_text_color,
  733.     (color *) & shortcut_indicator_text_color,
  734.     (color *) & shortcut_indicator_cursor_color,
  735.     (color *) & drop_down_normal_text_color,
  736.     (color *) & drop_down_disabled_text_color,
  737.     (color *) & drop_down_focussed_text_color,
  738.     (color *) & formatted_inputbox_selector_color,
  739.     (color *) & formatted_inputbox_normal_text_color,
  740.     (color *) & formatted_inputbox_disabled_text_color,
  741.     (color *) & formatted_inputbox_selected_text_color,
  742.     (color *) & formatted_inputbox_cursor_color,
  743.     (color *) & list_main_menu_normal_text_color,
  744.     (color *) & list_main_menu_selected_text_color,
  745.     (color *) & list_main_menu_disabled_text_color,
  746.     (color *) & matrix_main_menu_normal_text_color,
  747.     (color *) & matrix_main_menu_selected_text_color,
  748.     (color *) & matrix_main_menu_disabled_text_color,
  749.     (color *) & circular_main_menu_normal_text_color,
  750.     (color *) & circular_main_menu_selected_text_color,
  751.     (color *) & circular_main_menu_disabled_text_color,
  752.     (color *) & popup_screen_background_color,
  753.     (color *) & popup_screen_border_color,
  754.     (color *) & CM_screen_text_color,
  755.     (color *) & popup_description_text_color,
  756.     (color *) & datetime_bar_background_color,
  757.     (color *) & datetime_bar_duration_background_color,
  758.     (color *) & datetime_bar_date_text_color,
  759.     (color *) & datetime_bar_time_text_color,
  760.     (color *) & datetime_bar_duration_text_color,
  761.     (color *) & datetime_bar_AOC_text_color,
  762.     (color *) & button_bar_color,
  763.     (color *) & information_bar_color,
  764.     (color *) & input_method_text_color,
  765.     (color *) & remaining_length_text_color,
  766.     (color *) & statusbar0_background_color,
  767.     (color *) & inline_edit_focussed_text_color,
  768.     (color *) & inline_edit_unfocussed_text_color,
  769.     (color *) & inline_edit_selected_text_color,
  770.     (color *) & inline_edit_selector_color,
  771.     (color *) & inline_edit_cursor_color,
  772.     (color *) & inline_list_normal_text_color,
  773.     (color *) & inline_list_selected_text_color,
  774.     (color *) & inline_list_disabled_text_color,
  775.     (color *) & PIN_inputbox_normal_text_color_DLT,
  776.     (color *) & PIN_inputbox_selected_text_color_DLT,
  777.     (color *) & PIN_inputbox_selector_color_DLT,
  778.     (color *) & PIN_inputbox_cursor_color_DLT,
  779.     (color *) & dialer_inputbox_normal_text_color_DLT,
  780.     (color *) & dialer_inputbox_selected_text_color_DLT,
  781.     (color *) & dialer_inputbox_selector_color_DLT,
  782.     (color *) & dialer_inputbox_cursor_color_DLT,
  783.     (color *) & virtual_keyboard_key_down_text_color,
  784.     (color *) & virtual_keyboard_key_up_text_color,
  785.     (color *) & virtual_keyboard_key_down_text_color,
  786.     (color *) & virtual_keyboard_key_up_text_color,
  787.     (color *) & virtual_keyboard_disp_area_text_color,
  788.     (color *) & calculator_theme_color,
  789.     (color *) & alarm_text_theme_color,
  790.     (color *) & idle_scr_date_color_DLT, 
  791.     (color *) & idle_scr_time_color_DLT,
  792.     (color *) & idle_scr_date_border_color_DLT,
  793.     (color *) & idle_scr_time_border_color_DLT,
  794.     (color *) & idle_scr_network_name_color_DLT,
  795.     (color *) & idle_scr_network_name_border_color_DLT,
  796.     (color *) & idle_scr_network_status_color_DLT,
  797.     (color *) & idle_scr_network_status_border_color_DLT,
  798.     (color *) & idle_scr_network_extra_color_DLT,
  799.     (color *) & idle_scr_network_extra_border_color_DLT,
  800.     &butt_font,
  801.     &multitap_font,
  802.     &inputbox_font,
  803.     &window_title_font,
  804.     &list_menu_font,
  805.     &matrix_menu_font,
  806.     &menu_bar_index_font,
  807.     &menu_bar_item_font,
  808.     &shortcut_indicator_font,
  809.     &title_text_font,
  810.     &drop_down_control_font,
  811.     &list_main_menu_font,
  812.     &matrix_main_menu_font,
  813.     &virtual_keyboard_font,
  814.     10,
  815.     255,    /*UI_BG_OPACITY_FULL_DEFAULT*/
  816.     90,     /*UI_BG_OPACITY_HIGH_DEFAULT*/
  817.     70,     /*UI_BG_OPACITY_MEDIUM_DEFAULT*/
  818.     40      /*UI_BG_OPACITY_LOW_DEFAULT*/
  819. };
  820. MMI_theme *g_tc_theme_converter_p = &g_tc_theme_DLT;
  821. /*****************************************************************************
  822.  * FUNCTION
  823.  *  mmi_tc_ascii_to_hex_convert
  824.  * DESCRIPTION
  825.  *  (S8  character)
  826.  *  converts a given character from ascii to hex value
  827.  * PARAMETERS
  828.  *  character       [IN]        Value
  829.  * RETURNS
  830.  *  hex equivalent of the ascii character
  831.  *****************************************************************************/
  832. U8 mmi_tc_ascii_to_hex_convert(S8 character)
  833. {
  834.     /*----------------------------------------------------------------*/
  835.     /* Local Variables                                                */
  836.     /*----------------------------------------------------------------*/
  837.     /*----------------------------------------------------------------*/
  838.     /* Code Body                                                      */
  839.     /*----------------------------------------------------------------*/
  840.     if (character > 47 && character < 58)   /* Digits 0..9 */
  841.     {
  842.         return (character - 48);
  843.     }
  844.     else if (character > 64 && character < 71)  /* Characters A..F */
  845.     {
  846.         return (character - 55);
  847.     }
  848.     else if (character > 96 && character < 103) /* Characters a..f */
  849.     {
  850.         return (character - 87);
  851.     }
  852.     else
  853.     {
  854.         return (0xFF);
  855.     }
  856. }
  857. /*****************************************************************************
  858.  * FUNCTION
  859.  *  mmi_tc_convert_ascii_hex_to_dec
  860.  * DESCRIPTION
  861.  *  Converts Ascii value to Decimal value
  862.  * PARAMETERS
  863.  *  character       [IN]        Ascii value
  864.  * RETURNS
  865.  *  decimal equivalent of the ascii character
  866.  *****************************************************************************/
  867. U8 mmi_tc_convert_ascii_hex_to_dec(S8 character)
  868. {
  869.     /*----------------------------------------------------------------*/
  870.     /* Local Variables                                                */
  871.     /*----------------------------------------------------------------*/
  872.     /*----------------------------------------------------------------*/
  873.     /* Code Body                                                      */
  874.     /*----------------------------------------------------------------*/
  875.     if (character > 47 && character < 58)   /* Digits 0..9 */
  876.     {
  877.         return (character - 48);
  878.     }
  879.     else if (character > 64 && character < 71)  /* Characters A..F */
  880.     {
  881.         return (character - 55);
  882.     }
  883.     else if (character > 96 && character < 103) /* Characters a..f */
  884.     {
  885.         return (character - 87);
  886.     }
  887.     else
  888.     {
  889.         return (0xFF);
  890.     }
  891. }
  892. /*****************************************************************************
  893.  * FUNCTION
  894.  *  mmi_tc_extract_no_of_bits
  895.  * DESCRIPTION
  896.  *  (U8  *Data,U16  Offset, U16  Bits)
  897.  *  This function extracts given no of bits form the string provided
  898.  * PARAMETERS
  899.  *  Data_p      [?]         
  900.  *  Offset      [IN]        
  901.  *  Bits        [IN]        
  902.  *  character(?)
  903.  * RETURNS
  904.  *  extracted number of bits
  905.  *****************************************************************************/
  906. U8 mmi_tc_extract_no_of_bits(U8 *Data_p, U16 Offset, U16 Bits)
  907. {
  908.     /*----------------------------------------------------------------*/
  909.     /* Local Variables                                                */
  910.     /*----------------------------------------------------------------*/
  911.     const U16 BITSPERVAL = 4;
  912.     U8 ClearBits[] = {0x0, 0x1, 0x3, 0x7, 0xf};
  913.     U8 val1 = 0;
  914.     U8 val2 = 0;
  915.     U8 returnval = 0;
  916.     U16 index = Offset / BITSPERVAL;
  917.     U8 BitsfromFirstIndex = BITSPERVAL - (Offset % BITSPERVAL);
  918.     /*----------------------------------------------------------------*/
  919.     /* Code Body                                                      */
  920.     /*----------------------------------------------------------------*/
  921.     if (Bits > 2 * BITSPERVAL)
  922.     {
  923.         return 0;
  924.     }
  925.     val1 = mmi_tc_ascii_to_hex_convert(Data_p[index]);
  926.     val1 &= ClearBits[BitsfromFirstIndex];
  927.     if (BitsfromFirstIndex < Bits)
  928.     {
  929.         /* Do nothing  */
  930.     }
  931.     else if (BitsfromFirstIndex == Bits)
  932.     {
  933.         return val1;
  934.     }
  935.     else    /* (BitsfromFirstIndex > Bits) */
  936.     {
  937.         return (val1 >> (BitsfromFirstIndex - Bits));
  938.     }
  939.     val2 = mmi_tc_convert_ascii_hex_to_dec(Data_p[index + 1]);
  940.     returnval = val1 << BITSPERVAL | val2;
  941.     if ((BitsfromFirstIndex + BITSPERVAL) >= Bits)
  942.     {
  943.         returnval >>= (BITSPERVAL - Bits + BitsfromFirstIndex);
  944.     }
  945.     else
  946.     {
  947.         returnval <<= (Bits - BitsfromFirstIndex - BITSPERVAL);
  948.         val1 = mmi_tc_convert_ascii_hex_to_dec(Data_p[index + 2]);
  949.         val1 >>= ((2 * BITSPERVAL) + BitsfromFirstIndex - Bits);
  950.         returnval |= val1;
  951.     }
  952.     return returnval;
  953. }
  954. /*****************************************************************************
  955.  * FUNCTION
  956.  *  mmi_tc_list_main_menu_tag_handler
  957.  * DESCRIPTION
  958.  *  (U8** attr_p)
  959.  *  fill the MMI theme structure's list main menu filler
  960.  * PARAMETERS
  961.  *  attr_p      [IN]        
  962.  * RETURNS
  963.  *  void
  964.  *****************************************************************************/
  965. void mmi_tc_list_main_menu_tag_handler(U8 **attr_p)
  966. {
  967.     /*----------------------------------------------------------------*/
  968.     /* Local Variables                                                */
  969.     /*----------------------------------------------------------------*/
  970.     U8 attrCount = 0;
  971.     U8 type = 0;
  972.     /*----------------------------------------------------------------*/
  973.     /* Code Body                                                      */
  974.     /*----------------------------------------------------------------*/
  975.     while (attr_p[attrCount])
  976.     {
  977.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_col", strlen("normal_item_col")))
  978.         {
  979.             list_main_menu_normal_item_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  980.             list_main_menu_normal_item_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  981.             list_main_menu_normal_item_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  982.             list_main_menu_normal_item_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  983.             g_tc_theme_DLT.list_main_menu_normal_item_filler = (UI_filled_area*)&list_main_menu_normal_item_filler_DLT;
  984.         }
  985.         else if (!strncmp((PS8) attr_p[attrCount], "normal_item_flag", strlen("normal_item_flag")))
  986.         {
  987.             list_main_menu_normal_item_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  988.             g_tc_theme_DLT.list_main_menu_normal_item_filler = (UI_filled_area*)&list_main_menu_normal_item_filler_DLT;
  989.         }
  990.         else  if (!strncmp((PS8) attr_p[attrCount], "selected_item_col", strlen("selected_item_col")))
  991.         {
  992.             list_main_menu_selected_item_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  993.             list_main_menu_selected_item_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  994.             list_main_menu_selected_item_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  995.             list_main_menu_selected_item_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  996.             g_tc_theme_DLT.list_main_menu_selected_item_filler = (UI_filled_area*)&list_main_menu_selected_item_filler_DLT;
  997.         }
  998.         else if (!strncmp((PS8) attr_p[attrCount], "selected_item_flag", strlen("selected_item_flag")))
  999.         {
  1000.             list_main_menu_selected_item_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1001.             g_tc_theme_DLT.list_main_menu_selected_item_filler = (UI_filled_area*)&list_main_menu_selected_item_filler_DLT;
  1002.         }
  1003.         else if (!strncmp((PS8) attr_p[attrCount], "disabled_item_col", strlen("disabled_item_col")))
  1004.         {
  1005.             list_main_menu_disabled_item_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1006.             list_main_menu_disabled_item_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1007.             list_main_menu_disabled_item_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1008.             list_main_menu_disabled_item_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1009.             g_tc_theme_DLT.list_main_menu_disabled_item_filler = (UI_filled_area*)&list_main_menu_disabled_item_filler_DLT;
  1010.         }
  1011.         else if (!strncmp((PS8) attr_p[attrCount], "disabled_item_flag", strlen("disabled_item_flag")))
  1012.         {
  1013.             list_main_menu_disabled_item_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1014.             g_tc_theme_DLT.list_main_menu_disabled_item_filler = (UI_filled_area*)&list_main_menu_disabled_item_filler_DLT;
  1015.         }
  1016.         attrCount += 2;
  1017.     }
  1018. }
  1019. /*****************************************************************************
  1020.  * FUNCTION
  1021.  *  mmi_tc_matrix_main_menu_tag_handler
  1022.  * DESCRIPTION
  1023.  *  (U8** attr_p)
  1024.  *  fill the MMI theme structure's matrix main menu filler
  1025.  * PARAMETERS
  1026.  *  attr_p      [IN]        
  1027.  * RETURNS
  1028.  *  void
  1029.  *****************************************************************************/
  1030. void mmi_tc_matrix_main_menu_tag_handler(U8 **attr_p)
  1031. {
  1032.     /*----------------------------------------------------------------*/
  1033.     /* Local Variables                                                */
  1034.     /*----------------------------------------------------------------*/
  1035.     U8 attrCount = 0;
  1036.     U8 type = 0;
  1037.     /*----------------------------------------------------------------*/
  1038.     /* Code Body                                                      */
  1039.     /*----------------------------------------------------------------*/
  1040.     while (attr_p[attrCount])
  1041.     {
  1042.         if (!strncmp((PS8) attr_p[attrCount], "normal_item_col", strlen("normal_item_col")))
  1043.         {
  1044.             matrix_main_menu_normal_item_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1045.             matrix_main_menu_normal_item_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1046.             matrix_main_menu_normal_item_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1047.             matrix_main_menu_normal_item_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1048.             g_tc_theme_DLT.matrix_main_menu_normal_item_filler = (UI_filled_area*)&matrix_main_menu_normal_item_filler_DLT;
  1049.         }
  1050.         else if (!strncmp((PS8) attr_p[attrCount], "normal_item_flag", strlen("normal_item_flag")))
  1051.         {
  1052.             matrix_main_menu_normal_item_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1053.             g_tc_theme_DLT.matrix_main_menu_normal_item_filler = (UI_filled_area*)&matrix_main_menu_normal_item_filler_DLT;
  1054.         }
  1055.         else  if (!strncmp((PS8) attr_p[attrCount], "selected_item_col", strlen("selected_item_col")))
  1056.         {
  1057.             matrix_main_menu_selected_item_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1058.             matrix_main_menu_selected_item_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1059.             matrix_main_menu_selected_item_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1060.             matrix_main_menu_selected_item_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1061.             g_tc_theme_DLT.matrix_main_menu_selected_item_filler = (UI_filled_area*)&matrix_main_menu_selected_item_filler_DLT;
  1062.         }
  1063.         else if (!strncmp((PS8) attr_p[attrCount], "selected_item_flag", strlen("selected_item_flag")))
  1064.         {
  1065.             matrix_main_menu_selected_item_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1066.             g_tc_theme_DLT.matrix_main_menu_selected_item_filler = (UI_filled_area*)&matrix_main_menu_selected_item_filler_DLT;
  1067.         }
  1068.         else if (!strncmp((PS8) attr_p[attrCount], "disabled_item_col", strlen("disabled_item_col")))
  1069.         {
  1070.             matrix_main_menu_disabled_item_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1071.             matrix_main_menu_disabled_item_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1072.             matrix_main_menu_disabled_item_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1073.             matrix_main_menu_disabled_item_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1074.             g_tc_theme_DLT.matrix_main_menu_disabled_item_filler = (UI_filled_area*)&matrix_main_menu_disabled_item_filler_DLT;
  1075.         }
  1076.         else if (!strncmp((PS8) attr_p[attrCount], "disabled_item_flag", strlen("disabled_item_flag")))
  1077.         {
  1078.             matrix_main_menu_disabled_item_filler_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1079.             g_tc_theme_DLT.matrix_main_menu_disabled_item_filler = (UI_filled_area*)&matrix_main_menu_disabled_item_filler_DLT;
  1080.         }
  1081.         attrCount += 2;
  1082.     }
  1083. }
  1084. /*****************************************************************************
  1085.  * FUNCTION
  1086.  *  mmi_tc_opacity_tag_handler
  1087.  * DESCRIPTION
  1088.  *  (U8** attr_p)
  1089.  *  fill the MMI theme structure's opacity values
  1090.  * PARAMETERS
  1091.  *  attr_p      [IN]        
  1092.  * RETURNS
  1093.  *  void
  1094.  *****************************************************************************/
  1095. void mmi_tc_opacity_tag_handler(U8 **attr_p)
  1096. {
  1097.     /*----------------------------------------------------------------*/
  1098.     /* Local Variables                                                */
  1099.     /*----------------------------------------------------------------*/
  1100.     U8 attrCount = 0;
  1101.     U8 type = 0;
  1102.     /*----------------------------------------------------------------*/
  1103.     /* Code Body                                                      */
  1104.     /*----------------------------------------------------------------*/
  1105.     while (attr_p[attrCount])
  1106.     {
  1107.         if (!strncmp((PS8) attr_p[attrCount], "full", strlen("full")))
  1108.         {
  1109.             g_tc_theme_DLT.bg_opacity_full = (S32) atoi((PS8)attr_p[attrCount + 1]);
  1110.         }
  1111.         else if (!strncmp((PS8) attr_p[attrCount], "high", strlen("high")))
  1112.         {
  1113.             g_tc_theme_DLT.bg_opacity_high = (S32) atoi((PS8) attr_p[attrCount + 1]);
  1114.         }
  1115.         else if (!strncmp((PS8) attr_p[attrCount], "medium", strlen("medium")))
  1116.         {
  1117.              g_tc_theme_DLT.bg_opacity_medium = (S32) atoi((PS8) attr_p[attrCount + 1]);
  1118.         }
  1119.         else if (!strncmp((PS8) attr_p[attrCount], "low", strlen("low")))
  1120.         {
  1121.              g_tc_theme_DLT.bg_opacity_low = (S32) atoi((PS8) attr_p[attrCount + 1]);
  1122.         }
  1123.         attrCount += 2;
  1124.     }
  1125. }
  1126. /*****************************************************************************
  1127.  * FUNCTION
  1128.  *  mmi_tc_idle_scr_font_col_tag_handler
  1129.  * DESCRIPTION
  1130.  *  (U8** attr_p)
  1131.  *  fill the MMI theme structure's idle scr font color values
  1132.  * PARAMETERS
  1133.  *  attr_p      [IN]        
  1134.  * RETURNS
  1135.  *  void
  1136.  *****************************************************************************/
  1137. void mmi_tc_idle_scr_font_col_tag_handler(U8**attr_p)
  1138. {
  1139.     /*----------------------------------------------------------------*/
  1140.     /* Local Variables                                                */
  1141.     /*----------------------------------------------------------------*/
  1142.     U8 attrCount = 0;
  1143.     U8 type = 0;
  1144.     /*----------------------------------------------------------------*/
  1145.     /* Code Body                                                      */
  1146.     /*----------------------------------------------------------------*/
  1147.     while (attr_p[attrCount])
  1148.     {
  1149.         if (!strncmp((PS8) attr_p[attrCount], "idle_scr_date_txt", strlen("idle_scr_date_txt")))
  1150.         {
  1151.             idle_scr_date_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1152.             idle_scr_date_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1153.             idle_scr_date_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1154.             idle_scr_date_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1155.             g_tc_theme_DLT.idle_scr_date_color = (color*) & idle_scr_date_color_DLT;
  1156.         }
  1157.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_date_border_txt", strlen("idle_scr_date_border_txt")))
  1158.         {
  1159.             idle_scr_date_border_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1160.             idle_scr_date_border_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1161.             idle_scr_date_border_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1162.             idle_scr_date_border_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1163.             g_tc_theme_DLT.idle_scr_date_border_color = (color*) & idle_scr_date_border_color_DLT;
  1164.         }
  1165.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_time_txt", strlen("idle_scr_time_txt")))
  1166.         {
  1167.             idle_scr_time_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1168.             idle_scr_time_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1169.             idle_scr_time_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1170.             idle_scr_time_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1171.             g_tc_theme_DLT.idle_scr_time_color = (color*) & idle_scr_time_color_DLT;
  1172.         }
  1173.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_time_border_txt", strlen("idle_scr_time_border_txt")))
  1174.         {
  1175.             idle_scr_time_border_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1176.             idle_scr_time_border_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1177.             idle_scr_time_border_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1178.             idle_scr_time_border_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1179.             g_tc_theme_DLT.idle_scr_time_border_color = (color*) & idle_scr_time_border_color_DLT;
  1180.         }
  1181.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_network_name_txt", strlen("idle_scr_network_name_txt")))
  1182.         {
  1183.             idle_scr_network_name_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1184.             idle_scr_network_name_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1185.             idle_scr_network_name_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1186.             idle_scr_network_name_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1187.             g_tc_theme_DLT.idle_scr_network_name_color = (color*) & idle_scr_network_name_color_DLT;
  1188.         }
  1189.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_network_name_border_txt", strlen("idle_scr_network_name_border_txt")))
  1190.         {
  1191.             idle_scr_network_name_border_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1192.             idle_scr_network_name_border_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1193.             idle_scr_network_name_border_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1194.             idle_scr_network_name_border_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1195.             g_tc_theme_DLT.idle_scr_network_name_border_color = (color*) & idle_scr_network_name_border_color_DLT;
  1196.         }
  1197.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_network_status_txt", strlen("idle_scr_network_status_txt")))
  1198.         {
  1199.             idle_scr_network_status_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1200.             idle_scr_network_status_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1201.             idle_scr_network_status_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1202.             idle_scr_network_status_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1203.             g_tc_theme_DLT.idle_scr_network_status_color = (color*) & idle_scr_network_status_color_DLT;
  1204.         }
  1205.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_network_status_border_txt", strlen("idle_scr_network_status_border_txt")))
  1206.         {
  1207.             idle_scr_network_status_border_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1208.             idle_scr_network_status_border_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1209.             idle_scr_network_status_border_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1210.             idle_scr_network_status_border_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1211.             g_tc_theme_DLT.idle_scr_network_status_border_color = (color*) & idle_scr_network_status_border_color_DLT;
  1212.         }
  1213.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_network_extra_txt", strlen("idle_scr_network_extra_txt")))
  1214.         {
  1215.             idle_scr_network_extra_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1216.             idle_scr_network_extra_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1217.             idle_scr_network_extra_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1218.             idle_scr_network_extra_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1219.             g_tc_theme_DLT.idle_scr_network_extra_color = (color*) & idle_scr_network_extra_color_DLT;
  1220.         }
  1221.         else if (!strncmp((PS8) attr_p[attrCount], "idle_scr_network_extra_border_txt", strlen("idle_scr_network_extra_border_txt")))
  1222.         {
  1223.             idle_scr_network_extra_border_color_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1224.             idle_scr_network_extra_border_color_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1225.             idle_scr_network_extra_border_color_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1226.             idle_scr_network_extra_border_color_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1227.             g_tc_theme_DLT.idle_scr_network_extra_border_color = (color*) & idle_scr_network_extra_border_color_DLT;
  1228.         }
  1229.     
  1230.         attrCount += 2;
  1231.     }
  1232. }
  1233. /*****************************************************************************
  1234.  * FUNCTION
  1235.  *  mmi_tc_lsk_up_tag_handler
  1236.  * DESCRIPTION
  1237.  *  (U8** attr_p)
  1238.  *  fill the MMI theme structure for lsk up position
  1239.  * PARAMETERS
  1240.  *  attr_p      [IN]        
  1241.  * RETURNS
  1242.  *  void
  1243.  *****************************************************************************/
  1244. void mmi_tc_lsk_up_tag_handler(U8 **attr_p)
  1245. {
  1246.     /*----------------------------------------------------------------*/
  1247.     /* Local Variables                                                */
  1248.     /*----------------------------------------------------------------*/
  1249.     U8 attrCount = 0;
  1250.     U8 type = 0;
  1251.     /*----------------------------------------------------------------*/
  1252.     /* Code Body                                                      */
  1253.     /*----------------------------------------------------------------*/
  1254.     while (attr_p[attrCount])
  1255.     {
  1256.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1257.         {
  1258.             LSK_up_DLT.c.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1259.             LSK_up_DLT.c.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1260.             LSK_up_DLT.c.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1261.             LSK_up_DLT.c.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1262.         }
  1263.         else if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1264.         {
  1265.             LSK_up_DLT.border_color.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1266.             LSK_up_DLT.border_color.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1267.             LSK_up_DLT.border_color.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1268.             LSK_up_DLT.border_color.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1269.         }
  1270.         else if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1271.         {
  1272.             LSK_up_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1273.             g_tc_theme_DLT.LSK_up_filler = (UI_filled_area*)&LSK_up_DLT;
  1274.         }
  1275.         else if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1276.         {
  1277.             LSK_up_txt_col_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1278.             LSK_up_txt_col_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1279.             LSK_up_txt_col_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1280.             LSK_up_txt_col_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1281.             g_tc_theme_DLT.LSK_up_text_color = (color*) & LSK_up_txt_col_DLT;
  1282.         }
  1283.         else if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1284.         {
  1285.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1286.         }
  1287.         else if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1288.         {
  1289.             LSK_up_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1290.         }
  1291.         attrCount += 2;
  1292.     }
  1293. }
  1294. /*****************************************************************************
  1295.  * FUNCTION
  1296.  *  mmi_tc_lsk_down_tag_handler
  1297.  * DESCRIPTION
  1298.  *  (U8** attr_p)
  1299.  *  fill the MMI theme structure for lsk down position
  1300.  * PARAMETERS
  1301.  *  attr_p      [IN]        
  1302.  * RETURNS
  1303.  *  void
  1304.  *****************************************************************************/
  1305. void mmi_tc_lsk_down_tag_handler(U8 **attr_p)
  1306. {
  1307.     /*----------------------------------------------------------------*/
  1308.     /* Local Variables                                                */
  1309.     /*----------------------------------------------------------------*/
  1310.     U8 attrCount = 0;
  1311.     U8 type = 0;
  1312.     /*----------------------------------------------------------------*/
  1313.     /* Code Body                                                      */
  1314.     /*----------------------------------------------------------------*/
  1315.     while (attr_p[attrCount])
  1316.     {
  1317.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1318.         {
  1319.             LSK_down_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1320.             LSK_down_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1321.             LSK_down_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1322.             LSK_down_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1323.         }
  1324.         else if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1325.         {
  1326.             LSK_down_DLT.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1327.             LSK_down_DLT.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1328.             LSK_down_DLT.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1329.             LSK_down_DLT.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1330.         }
  1331.         else if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1332.         {
  1333.             LSK_down_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1334.             g_tc_theme_DLT.LSK_down_filler = (UI_filled_area*)&LSK_down_DLT;
  1335.         }
  1336.         else if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1337.         {
  1338.             LSK_down_txt_col_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1339.             LSK_down_txt_col_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1340.             LSK_down_txt_col_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1341.             LSK_down_txt_col_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1342.             g_tc_theme_DLT.LSK_down_text_color = (color*) & LSK_down_txt_col_DLT;
  1343.         }
  1344.         else if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1345.         {
  1346.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1347.         }
  1348.         else if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1349.         {
  1350.             LSK_down_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1351.         }
  1352.         attrCount += 2;
  1353.     }
  1354. }
  1355. /*****************************************************************************
  1356.  * FUNCTION
  1357.  *  mmi_tc_rsk_up_tag_handler
  1358.  * DESCRIPTION
  1359.  *  (U8** attr_p)
  1360.  *  fill the MMI theme structure for rsk up position
  1361.  * PARAMETERS
  1362.  *  attr_p      [IN]        
  1363.  * RETURNS
  1364.  *  void
  1365.  *****************************************************************************/
  1366. void mmi_tc_rsk_up_tag_handler(U8 **attr_p)
  1367. {
  1368.     /*----------------------------------------------------------------*/
  1369.     /* Local Variables                                                */
  1370.     /*----------------------------------------------------------------*/
  1371.     U8 attrCount = 0;
  1372.     U8 type = 0;
  1373.     /*----------------------------------------------------------------*/
  1374.     /* Code Body                                                      */
  1375.     /*----------------------------------------------------------------*/
  1376.     while (attr_p[attrCount])
  1377.     {
  1378.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1379.         {
  1380.             RSK_up_DLT.c.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1381.             RSK_up_DLT.c.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1382.             RSK_up_DLT.c.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1383.             RSK_up_DLT.c.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1384.         }
  1385.         else if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1386.         {
  1387.             RSK_up_DLT.border_color.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1388.             RSK_up_DLT.border_color.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1389.             RSK_up_DLT.border_color.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1390.             RSK_up_DLT.border_color.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1391.         }
  1392.         else if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1393.         {
  1394.             RSK_up_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1395.             g_tc_theme_DLT.RSK_up_filler = (UI_filled_area*)&RSK_up_DLT;
  1396.         }
  1397.         else if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1398.         {
  1399.             RSK_up_txt_col_DLT.r = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 0, 8);
  1400.             RSK_up_txt_col_DLT.g = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 8, 8);
  1401.             RSK_up_txt_col_DLT.b = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 16, 8);
  1402.             RSK_up_txt_col_DLT.alpha = mmi_tc_extract_no_of_bits((PU8) attr_p[attrCount + 1], 24, 8);
  1403.             g_tc_theme_DLT.RSK_up_text_color = (color*) & RSK_up_txt_col_DLT;
  1404.         }
  1405.         else if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1406.         {
  1407.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1408.         }
  1409.         else if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1410.         {
  1411.             RSK_up_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1412.         }
  1413.         attrCount += 2;
  1414.     }
  1415. }
  1416. /*****************************************************************************
  1417.  * FUNCTION
  1418.  *  mmi_tc_rsk_down_tag_handler
  1419.  * DESCRIPTION
  1420.  *  (U8** attr_p)
  1421.  *  fill the MMI theme structure for rsk down position
  1422.  * PARAMETERS
  1423.  *  attr_p      [IN]        
  1424.  * RETURNS
  1425.  *  void
  1426.  *****************************************************************************/
  1427. void mmi_tc_rsk_down_tag_handler(U8 **attr_p)
  1428. {
  1429.     /*----------------------------------------------------------------*/
  1430.     /* Local Variables                                                */
  1431.     /*----------------------------------------------------------------*/
  1432.     U8 attrCount = 0;
  1433.     U8 type = 0;
  1434.     /*----------------------------------------------------------------*/
  1435.     /* Code Body                                                      */
  1436.     /*----------------------------------------------------------------*/
  1437.     while (attr_p[attrCount])
  1438.     {
  1439.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1440.         {
  1441.             RSK_down_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1442.             RSK_down_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1443.             RSK_down_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1444.             RSK_down_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1445.         }
  1446.         else if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1447.         {
  1448.             RSK_down_DLT.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1449.             RSK_down_DLT.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1450.             RSK_down_DLT.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1451.             RSK_down_DLT.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1452.         }
  1453.         else if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1454.         {
  1455.             RSK_down_DLT.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1456.             g_tc_theme_DLT.RSK_down_filler = (UI_filled_area*)&RSK_down_DLT;
  1457.         }
  1458.         else if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1459.         {
  1460.             RSK_down_txt_col_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1461.             RSK_down_txt_col_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1462.             RSK_down_txt_col_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1463.             RSK_down_txt_col_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1464.             g_tc_theme_DLT.RSK_down_text_color = (color*) & RSK_down_txt_col_DLT;
  1465.         }
  1466.         else if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1467.         {
  1468.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1469.         }
  1470.         else if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1471.         {
  1472.             RSK_down_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1473.         }
  1474.         attrCount += 2;
  1475.     }
  1476. }
  1477. /* Title_TAG handler */
  1478. /*****************************************************************************
  1479.  * FUNCTION
  1480.  *  mmi_tc_title_tag_handler
  1481.  * DESCRIPTION
  1482.  *  (U8** attr_p)
  1483.  *  fill the MMI theme structure for Title Tag
  1484.  * PARAMETERS
  1485.  *  attr_p      [IN]        
  1486.  * RETURNS
  1487.  *  void
  1488.  *****************************************************************************/
  1489. void mmi_tc_title_tag_handler(U8 **attr_p)
  1490. {
  1491.     /*----------------------------------------------------------------*/
  1492.     /* Local Variables                                                */
  1493.     /*----------------------------------------------------------------*/
  1494.     U8 attrCount = 0;
  1495.     U8 type = 0;
  1496.     /*----------------------------------------------------------------*/
  1497.     /* Code Body                                                      */
  1498.     /*----------------------------------------------------------------*/
  1499.     while (attr_p[attrCount])
  1500.     {
  1501.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1502.         {
  1503.             Title_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1504.             Title_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1505.             Title_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1506.             Title_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1507.         }
  1508.         else if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1509.         {
  1510.             Title_DLT.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1511.             Title_DLT.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1512.             Title_DLT.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1513.             Title_DLT.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1514.         }
  1515.         else if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1516.         {
  1517.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1518.         }
  1519.         else if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1520.         {
  1521.             Title_DLT.flags = atoi((PS8) attr_p[attrCount + 1]);
  1522.             g_tc_theme_DLT.title_filler = (UI_filled_area*)&Title_DLT;
  1523.         }
  1524.         else if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1525.         {
  1526.             title_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1527.             title_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1528.             title_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1529.             title_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1530.             g_tc_theme_DLT.title_text_color = (color*) & title_text_color;
  1531.         }
  1532.         else if (!strncmp((PS8) attr_p[attrCount], "txt_border_col", strlen("txt_border_col")))
  1533.         {
  1534.             title_text_border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1535.             title_text_border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1536.             title_text_border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1537.             title_text_border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1538.             g_tc_theme_DLT.title_text_border_color = (color*) & title_text_border_color;
  1539.         }
  1540.         else if (!strncmp((PS8) attr_p[attrCount], "shortcut_txt_col", strlen("shortcut_txt_col")))
  1541.         {
  1542.             title_shortcut_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1543.             title_shortcut_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1544.             title_shortcut_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1545.             title_shortcut_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1546.             g_tc_theme_DLT.title_shortcut_text_color = (color*) & title_shortcut_text_color;
  1547.         }
  1548.         else if (!strncmp((PS8) attr_p[attrCount], "bk_img_offset", strlen("bk_img_offset")))
  1549.         {
  1550.             Title_DLT.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1551.         }
  1552.         else if (!strncmp((PS8) attr_p[attrCount], "txtfont", strlen("txtfont")))
  1553.         {
  1554.             title_text_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1555.             title_text_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1556.             title_text_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1557.             title_text_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1558.             title_text_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1559.             title_text_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1560.             title_text_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1561.             title_text_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1562.             g_tc_theme_DLT.title_text_font = (stFontAttribute*) & title_text_font;
  1563.         }
  1564.         else if (!strncmp((PS8) attr_p[attrCount], "windowtitlefont", strlen("windowtitlefont")))
  1565.         {
  1566.             window_title_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1567.             window_title_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1568.             window_title_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1569.             window_title_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1570.             window_title_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1571.             window_title_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1572.             window_title_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1573.             window_title_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1574.             g_tc_theme_DLT.window_title_font = (stFontAttribute*) & window_title_font;
  1575.         }
  1576.         attrCount += 2;
  1577.     }
  1578. }
  1579. /*****************************************************************************
  1580.  * FUNCTION
  1581.  *  mmi_tc_scroll_bar_tag_handler
  1582.  * DESCRIPTION
  1583.  *  (U8** attr_p)
  1584.  *  fill the MMI theme structure for scroll bar
  1585.  * PARAMETERS
  1586.  *  attr_p      [IN]        
  1587.  * RETURNS
  1588.  *  void
  1589.  *****************************************************************************/
  1590. void mmi_tc_scroll_bar_tag_handler(U8 **attr_p)
  1591. {
  1592.     /*----------------------------------------------------------------*/
  1593.     /* Local Variables                                                */
  1594.     /*----------------------------------------------------------------*/
  1595.     U8 attrCount = 0;
  1596.     /*----------------------------------------------------------------*/
  1597.     /* Code Body                                                      */
  1598.     /*----------------------------------------------------------------*/
  1599.     while (attr_p[attrCount])
  1600.     {
  1601.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1602.         {
  1603.             scrollbar_background_filler_DLT.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1604.             scrollbar_background_filler_DLT.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1605.             scrollbar_background_filler_DLT.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1606.             scrollbar_background_filler_DLT.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1607.             g_tc_theme_DLT.scrollbar_background_filler = (UI_filled_area*)&scrollbar_background_filler_DLT;
  1608.         }
  1609.         if (!strncmp((PS8) attr_p[attrCount], "indicator_col", strlen("indicator_col")))
  1610.         {
  1611.             scrollbar_indicator_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1612.             scrollbar_indicator_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1613.             scrollbar_indicator_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1614.             scrollbar_indicator_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1615.             g_tc_theme_DLT.scrollbar_indicator_filler = (UI_filled_area*)&scrollbar_indicator_filler;
  1616.         }
  1617.         if (!strncmp((PS8) attr_p[attrCount], "size", strlen("size")))
  1618.         {
  1619.             scrollbar_size = (S32) atoi((const char*)attr_p[attrCount + 1]);
  1620.             g_tc_theme_DLT.scrollbar_size = (S32) scrollbar_size;
  1621.         }
  1622.         attrCount += 2;
  1623.     }
  1624. }
  1625. /*****************************************************************************
  1626.  * FUNCTION
  1627.  *  mmi_tc_multi_tap_tag_handler
  1628.  * DESCRIPTION
  1629.  *  (U8** attr_p)
  1630.  *  fill the MMI theme structure for multi tap structure
  1631.  * PARAMETERS
  1632.  *  attr_p      [IN]        
  1633.  * RETURNS
  1634.  *  void
  1635.  *****************************************************************************/
  1636. void mmi_tc_multi_tap_tag_handler(U8 **attr_p)
  1637. {
  1638.     /*----------------------------------------------------------------*/
  1639.     /* Local Variables                                                */
  1640.     /*----------------------------------------------------------------*/
  1641.     U8 attrCount = 0;
  1642.     U8 type = 0;
  1643.     /*----------------------------------------------------------------*/
  1644.     /* Code Body                                                      */
  1645.     /*----------------------------------------------------------------*/
  1646.     while (attr_p[attrCount])
  1647.     {
  1648.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1649.         {
  1650.             multitap_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1651.             multitap_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1652.             multitap_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1653.             multitap_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1654.         }
  1655.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1656.         {
  1657.             multitap_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1658.             multitap_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1659.             multitap_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1660.             multitap_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1661.         }
  1662.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1663.         {
  1664.             multitap_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1665.         }
  1666.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1667.         {
  1668.             multitap_filler.flags = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1669.             g_tc_theme_DLT.multitap_filler = (UI_filled_area*)&multitap_filler;
  1670.         }
  1671.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1672.         {
  1673.             multitap_normal_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1674.             multitap_normal_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1675.             multitap_normal_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1676.             multitap_normal_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1677.             g_tc_theme_DLT.multitap_normal_text_color = (color*) & multitap_normal_text_color_DLT;
  1678.         }
  1679.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1680.         {
  1681.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1682.         }
  1683.         if (!strncmp((PS8) attr_p[attrCount], "selection_col", strlen("selection_col")))
  1684.         {
  1685.             multitap_selector_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1686.             multitap_selector_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1687.             multitap_selector_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1688.             multitap_selector_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1689.             g_tc_theme_DLT.multitap_selector_color = (color*) & multitap_selector_color_DLT;
  1690.         }
  1691.         if (!strncmp((PS8) attr_p[attrCount], "sel_txt_col", strlen("sel_txt_col")))
  1692.         {
  1693.             multitap_selected_text_color_DLT.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1694.             multitap_selected_text_color_DLT.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1695.             multitap_selected_text_color_DLT.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1696.             multitap_selected_text_color_DLT.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1697.             g_tc_theme_DLT.multitap_selected_text_color = (color*) & multitap_selected_text_color_DLT;
  1698.         }
  1699.         if (!strncmp((PS8) attr_p[attrCount], "font", strlen("font")))
  1700.         {
  1701.             multitap_font.bold = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 4);
  1702.             multitap_font.italic = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 4, 4);
  1703.             multitap_font.underline = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 4);
  1704.             multitap_font.size = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 12, 4);
  1705.             multitap_font.color = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 4);
  1706.             multitap_font.type = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 20, 4);
  1707.             multitap_font.oblique = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 4);
  1708.             multitap_font.smallCaps = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 28, 4);
  1709.             g_tc_theme_DLT.multitap_font = (stFontAttribute*) & multitap_font;
  1710.         }
  1711.         attrCount += 2;
  1712.     }
  1713. }
  1714. /*****************************************************************************
  1715.  * FUNCTION
  1716.  *  mmi_tc_call_scr_tag_handler
  1717.  * DESCRIPTION
  1718.  *  (U8** attr_p)
  1719.  *  fill the MMI theme structure for caller screen
  1720.  * PARAMETERS
  1721.  *  attr_p      [IN]        
  1722.  * RETURNS
  1723.  *  void
  1724.  *****************************************************************************/
  1725. void mmi_tc_call_scr_tag_handler(U8 **attr_p)
  1726. {
  1727.     /*----------------------------------------------------------------*/
  1728.     /* Local Variables                                                */
  1729.     /*----------------------------------------------------------------*/
  1730.     U8 attrCount = 0;
  1731.     U8 type = 0;
  1732.     /*----------------------------------------------------------------*/
  1733.     /* Code Body                                                      */
  1734.     /*----------------------------------------------------------------*/
  1735.     while (attr_p[attrCount])
  1736.     {
  1737.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1738.         {
  1739.             CM_screen_background_filler.c.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1740.             CM_screen_background_filler.c.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1741.             CM_screen_background_filler.c.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1742.             CM_screen_background_filler.c.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1743.         }
  1744.         if (!strncmp((PS8) attr_p[attrCount], "border_col", strlen("border_col")))
  1745.         {
  1746.             CM_screen_background_filler.border_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1747.             CM_screen_background_filler.border_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1748.             CM_screen_background_filler.border_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1749.             CM_screen_background_filler.border_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1750.         }
  1751.         if (!strncmp((PS8) attr_p[attrCount], "txt_col", strlen("txt_col")))
  1752.         {
  1753.             CM_screen_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1754.             CM_screen_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1755.             CM_screen_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1756.             CM_screen_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1757.             g_tc_theme_DLT.CM_screen_text_color = (color*) & CM_screen_text_color;
  1758.         }
  1759.         if (!strncmp((PS8) attr_p[attrCount], "img_offset", strlen("img_offset")))
  1760.         {
  1761.             CM_screen_background_filler.b = mmi_tm_create_non_imageid_image((U32) atoi((PS8) attr_p[attrCount + 1]), type);
  1762.         }
  1763.         if (!strncmp((PS8) attr_p[attrCount], "type", strlen("type")))
  1764.         {
  1765.             type = (U32) atoi((PS8) attr_p[attrCount + 1]);
  1766.         }
  1767.         if (!strncmp((PS8) attr_p[attrCount], "flag", strlen("flag")))
  1768.         {
  1769.             CM_screen_background_filler.flags = atoi((PS8) attr_p[attrCount + 1]);
  1770.             g_tc_theme_DLT.CM_screen_background_filler = (UI_filled_area*)&CM_screen_background_filler;
  1771.         }
  1772.         attrCount += 2;
  1773.     }
  1774. }
  1775. /*****************************************************************************
  1776.  * FUNCTION
  1777.  *  mmi_tc_datetimebar_tag_handler
  1778.  * DESCRIPTION
  1779.  *  (U8** attr_p)
  1780.  *  fill the MMI theme structure for datetimebar
  1781.  * PARAMETERS
  1782.  *  attr_p      [IN]        
  1783.  * RETURNS
  1784.  *  void
  1785.  *****************************************************************************/
  1786. void mmi_tc_datetimebar_tag_handler(U8 **attr_p)
  1787. {
  1788.     /*----------------------------------------------------------------*/
  1789.     /* Local Variables                                                */
  1790.     /*----------------------------------------------------------------*/
  1791.     U8 attrCount = 0;
  1792.     /*----------------------------------------------------------------*/
  1793.     /* Code Body                                                      */
  1794.     /*----------------------------------------------------------------*/
  1795.     while (attr_p[attrCount])
  1796.     {
  1797.         if (!strncmp((PS8) attr_p[attrCount], "bk_col", strlen("bk_col")))
  1798.         {
  1799.             datetime_bar_background_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1800.             datetime_bar_background_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1801.             datetime_bar_background_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1802.             datetime_bar_background_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1803.             g_tc_theme_DLT.datetime_bar_background_color = (color*) & datetime_bar_background_color;
  1804.         }
  1805.         if (!strncmp((PS8) attr_p[attrCount], "duration_bk_col", strlen("duration_bk_col")))
  1806.         {
  1807.             datetime_bar_duration_background_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1808.             datetime_bar_duration_background_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1809.             datetime_bar_duration_background_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1810.             datetime_bar_duration_background_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1811.             g_tc_theme_DLT.datetime_bar_duration_background_color = (color*) & datetime_bar_duration_background_color;
  1812.         }
  1813.         if (!strncmp((PS8) attr_p[attrCount], "duration_txt_col", strlen("duration_txt_col")))
  1814.         {
  1815.             datetime_bar_duration_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1816.             datetime_bar_duration_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1817.             datetime_bar_duration_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1818.             datetime_bar_duration_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1819.             g_tc_theme_DLT.datetime_bar_duration_text_color = (color*) & datetime_bar_duration_text_color;
  1820.         }
  1821.         if (!strncmp((PS8) attr_p[attrCount], "aoc_txt_col", strlen("aoc_txt_col")))
  1822.         {
  1823.             datetime_bar_AOC_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1824.             datetime_bar_AOC_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1825.             datetime_bar_AOC_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1826.             datetime_bar_AOC_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1827.             g_tc_theme_DLT.datetime_bar_AOC_text_color = (color*) & datetime_bar_AOC_text_color;
  1828.         }
  1829.         if (!strncmp((PS8) attr_p[attrCount], "dt_txt_col", strlen("dt_txt_col")))
  1830.         {
  1831.             datetime_bar_date_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1832.             datetime_bar_date_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1833.             datetime_bar_date_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1834.             datetime_bar_date_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1835.             g_tc_theme_DLT.datetime_bar_date_text_color = (color*) & datetime_bar_date_text_color;
  1836.         }
  1837.         if (!strncmp((PS8) attr_p[attrCount], "tm_txt_col", strlen("tm_txt_col")))
  1838.         {
  1839.             datetime_bar_time_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1840.             datetime_bar_time_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1841.             datetime_bar_time_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1842.             datetime_bar_time_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1843.             g_tc_theme_DLT.datetime_bar_time_text_color = (color*) & datetime_bar_time_text_color;
  1844.         }
  1845.         attrCount += 2;
  1846.     }
  1847. }
  1848. /*****************************************************************************
  1849.  * FUNCTION
  1850.  *  mmi_tc_drop_dn_tag_handler
  1851.  * DESCRIPTION
  1852.  *  (U8** attr_p)
  1853.  *  fill the MMI theme structure for drop_dn
  1854.  * PARAMETERS
  1855.  *  attr_p      [IN]        
  1856.  * RETURNS
  1857.  *  void
  1858.  *****************************************************************************/
  1859. void mmi_tc_drop_dn_tag_handler(U8 **attr_p)
  1860. {
  1861.     /*----------------------------------------------------------------*/
  1862.     /* Local Variables                                                */
  1863.     /*----------------------------------------------------------------*/
  1864.     U8 attrCount = 0;
  1865.     /*----------------------------------------------------------------*/
  1866.     /* Code Body                                                      */
  1867.     /*----------------------------------------------------------------*/
  1868.     while (attr_p[attrCount])
  1869.     {
  1870.         if (!strncmp((PS8) attr_p[attrCount], "normal_txt_col", strlen("normal_txt_col")))
  1871.         {
  1872.             drop_down_normal_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1873.             drop_down_normal_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1874.             drop_down_normal_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1875.             drop_down_normal_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1876.             g_tc_theme_DLT.drop_down_normal_text_color = (color*) & drop_down_normal_text_color;
  1877.         }
  1878.         if (!strncmp((PS8) attr_p[attrCount], "disabled_txt_col", strlen("disabled_txt_col")))
  1879.         {
  1880.             drop_down_disabled_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1881.             drop_down_disabled_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1882.             drop_down_disabled_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1883.             drop_down_disabled_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1884.             g_tc_theme_DLT.drop_down_disabled_text_color = (color*) & drop_down_disabled_text_color;
  1885.         }
  1886.         if (!strncmp((PS8) attr_p[attrCount], "focussed_txt_col", strlen("focussed_txt_col")))
  1887.         {
  1888.             drop_down_focussed_text_color.r = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 0, 8);
  1889.             drop_down_focussed_text_color.g = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 8, 8);
  1890.             drop_down_focussed_text_color.b = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 16, 8);
  1891.             drop_down_focussed_text_color.alpha = mmi_tc_extract_no_of_bits(attr_p[attrCount + 1], 24, 8);
  1892.             g_tc_theme_DLT.drop_down_focussed_text_color = (color*) & drop_down_focussed_text_color;
  1893.         }