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

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.  *   gui_inputs.h
  40.  *
  41.  * Project:
  42.  * --------
  43.  *   MAUI
  44.  *
  45.  * Description:
  46.  * ------------
  47.  *   Input box - UI component
  48.  *
  49.  * Author:
  50.  * -------
  51.  *   
  52.  *
  53.  *============================================================================
  54.  *             HISTORY
  55.  * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  56.  *------------------------------------------------------------------------------
  57.  * removed!
  58.  *
  59.  * removed!
  60.  * removed!
  61.  * removed!
  62.  *
  63.  * removed!
  64.  * removed!
  65.  * removed!
  66.  *
  67.  * removed!
  68.  * removed!
  69.  * removed!
  70.  *
  71.  * removed!
  72.  * removed!
  73.  * removed!
  74.  *
  75.  * removed!
  76.  * removed!
  77.  * removed!
  78.  *
  79.  * removed!
  80.  * removed!
  81.  * removed!
  82.  *
  83.  * removed!
  84.  * removed!
  85.  * removed!
  86.  *
  87.  * removed!
  88.  * removed!
  89.  * removed!
  90.  *
  91.  * removed!
  92.  * removed!
  93.  * removed!
  94.  *
  95.  * removed!
  96.  * removed!
  97.  * removed!
  98.  *
  99.  * removed!
  100.  * removed!
  101.  * removed!
  102.  *
  103.  * removed!
  104.  * removed!
  105.  * removed!
  106.  *
  107.  * removed!
  108.  * removed!
  109.  * removed!
  110.  *
  111.  * removed!
  112.  * removed!
  113.  * removed!
  114.  *
  115.  * removed!
  116.  * removed!
  117.  * removed!
  118.  *
  119.  *------------------------------------------------------------------------------
  120.  * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
  121.  *============================================================================
  122.  ****************************************************************************/
  123. /**
  124.  * Copyright Notice
  125.  * (c) 2002 - 2003, Pixtel Communications, Inc., 1489 43rd Ave. W.,
  126.  * Vancouver, B.C. V6M 4K8 Canada. All Rights Reserved.
  127.  *  (It is illegal to remove this copyright notice from this software or any
  128.  *  portion of it)
  129.  */
  130. /**********************************************************************************
  131.    Filename:      gui_inputs.h
  132.    Author:        manju
  133.    Date Created:  August-13-2002
  134.    Contains:      PixTel UI routines header for Input related objects
  135. **********************************************************************************/
  136. #ifndef __GUI_INPUTS_H__
  137. #define __GUI_INPUTS_H__
  138. #include "MMI_features.h"
  139. #include "gui.h"
  140. #include "gui_scrollbars.h"
  141. /* MTK Leo add,20040318, for new simulator */
  142. #include "gui_theme_struct.h"
  143. /* MTK Leo end */
  144. #ifdef __MMI_TOUCH_DIAL_SCREEN__
  145. /* start vijay 20050221, for Touch Dialing Screen */
  146. #include "gdi_datatype.h"
  147. #include "gdi_image_bmp.h"
  148. #include "wgui.h"
  149. #include "wgui_categories_defs.h"
  150. #include "TouchScreenGprot.h"
  151. #include "gui_fixed_menus.h"
  152. #include "PixtelDataTypes.h"
  153. /* end vijay */
  154. #endif /* __MMI_TOUCH_DIAL_SCREEN__ */ 
  155. #if defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__)
  156. #include "kal_non_specific_general_types.h"
  157. #include "TouchScreenGprot.h"
  158. typedef enum
  159. {
  160.     GUI_SINGLE_LINE_INPUT_BOX_PEN_NONE,
  161.     GUI_SINGLE_LINE_INPUT_BOX_PEN_LEFT_DOWN,
  162.     GUI_SINGLE_LINE_INPUT_BOX_PEN_LEFT_UP,
  163.     GUI_SINGLE_LINE_INPUT_BOX_PEN_RIGHT_DOWN,
  164.     GUI_SINGLE_LINE_INPUT_BOX_PEN_RIGHT_UP,
  165.     GUI_SINGLE_LINE_INPUT_BOX_PEN_TEXT_DOWN,
  166.     GUI_SINGLE_LINE_INPUT_BOX_PEN_TEXT_UP
  167. } gui_single_line_input_box_pen_enum;
  168. typedef struct
  169. {
  170.     U8 pen_inside;
  171. } gui_single_line_input_box_pen_state_struct;
  172. typedef enum
  173. {
  174.     GUI_MULTI_LINE_INPUT_BOX_PEN_NONE,
  175.     GUI_MULTI_LINE_INPUT_BOX_PEN_TEXT_DOWN,
  176.     GUI_MULTI_LINE_INPUT_BOX_PEN_TEXT_UP,
  177.     GUI_MULTI_LINE_INPUT_BOX_PEN_SCROLL_BAR,
  178.     GUI_MULTI_LINE_INPUT_BOX_PEN_MAX
  179. } gui_multi_line_input_box_pen_enum;
  180. typedef struct
  181. {
  182.     U8 pen_inside;
  183.     U8 pen_on_scroll_bar;
  184. } gui_multi_line_input_box_pen_state_struct;
  185. #endif /* defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__) */ 
  186. #ifdef __cplusplus
  187. extern "C"
  188. {
  189. #endif /* __cplusplus */ 
  190.     extern UI_information_bar_theme *current_information_bar_theme;
  191.     /* UI multitap_input structure                  */
  192. #define UI_MULTITAP_INPUT_CENTER_X                 0x00000010
  193. #define UI_MULTITAP_INPUT_CENTER_Y                 0x00000020
  194.     extern UI_multitap_input_theme *current_multitap_input_theme;
  195. #ifdef __MMI_TOUCH_DIAL_SCREEN__
  196.     /* start vijay 20050224, for Touch Dialing Screen */
  197.     typedef enum
  198.     {
  199.         GUI_DIALING_PEN_NONE,
  200.         GUI_DIALING_KEYPAD_HIGHLIGHT_CHANGED,
  201.         GUI_DIALING_KEYPAD_PEN_INSERT_DIG_I,
  202.         GUI_DIALING_KEYPAD_PEN_INSERT_STAR,
  203.         GUI_DIALING_KEYPAD_PEN_INSERT_HASH
  204.             /* 053005 Calvin added for function key */
  205.     #if defined (__MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__)
  206.             , GUI_DIALING_KEYPAD_PEN_INSERT_FUNC,
  207.         GUI_DIALING_KEYPAD_PEN_INSERT_PHB = GUI_DIALING_KEYPAD_PEN_INSERT_FUNC,
  208.         GUI_DIALING_KEYPAD_PEN_INSERT_CALL,
  209.  GUI_DIALING_KEYPAD_PEN_INSERT_IPCALL,      //KP Jerry add on 2006-11-12
  210.     #endif /* defined (__MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__) */ 
  211.             /* Calvin end */
  212.     } gui_dialing_key_pen_enum;
  213.     /* end vijay */
  214. #endif /* __MMI_TOUCH_DIAL_SCREEN__ */ 
  215.     typedef struct _multitap_input
  216.     {
  217.         S32 x, y;
  218.         S32 width, height;
  219.         UI_filled_area *f;
  220.         color selector_color;
  221.         UI_string_type text;
  222.         S32 text_x, text_y;
  223.         color normal_text_color;
  224.         color selected_text_color;
  225.         S32 length;
  226.         S32 current_position;
  227.         UI_font_type text_font;
  228.         S8 text_gap;
  229.         U32 flags;
  230.         void (*input_complete_callback) (void);
  231.         void (*input_callback) (UI_character_type);
  232.     } multitap_input;
  233.     typedef enum
  234.     {
  235.         GUI_MULTI_LINE_INPUT_BOX_INSERT_CHAR,
  236.         GUI_MULTI_LINE_INPUT_BOX_DELETE_CHAR,
  237.         GUI_MULTI_LINE_INPUT_BOX_DELETEALL
  238.     } gui_multi_line_input_box_change_event_enum;
  239.     /* MTK Elvis for color dialling font */
  240.     typedef struct _color_dialing_font
  241.     {
  242.         UI_character_type ch;
  243.         color c;
  244.     } color_dialing_font;
  245.     /* MTK end */
  246.     extern void gui_set_multitap_input_current_theme(multitap_input *m);
  247.     extern void gui_set_multitap_input_theme(multitap_input *m, UI_multitap_input_theme *t);
  248.     extern void gui_create_multitap_input(multitap_input *b, S32 x, S32 y, S32 width, S32 height, UI_string_type text);
  249.     void gui_set_multitap_input_callbacks(multitap_input *b, void (*input_callback) (UI_character_type),
  250.                                           void (*input_complete_callback) (void));
  251.     extern void gui_change_multitap_input_state(multitap_input *b);
  252.     extern void gui_show_multitap_input(multitap_input *b);
  253.     extern void gui_multitap_input_complete(multitap_input *b);
  254.     extern void gui_resize_multitap_input(multitap_input *b, S32 width, S32 height);
  255.     extern void gui_move_multitap_input(multitap_input *b, S32 x, S32 y);
  256. #if defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__)
  257.     extern BOOL gui_multitap_input_translate_pen_position(multitap_input *b, S32 x, S32 y, S32 *char_index);
  258. #endif 
  259.     /* UI Single line Input box structure              */
  260. #define  UI_SINGLE_LINE_INPUT_BOX_STATE_NORMAL           0x00000000
  261. #define UI_SINGLE_LINE_INPUT_BOX_STATE_DISABLED          0x00000001
  262. #define UI_SINGLE_LINE_INPUT_BOX_STATE_SELECTED          0x00000002
  263. #define UI_SINGLE_LINE_INPUT_BOX_STATE_MULTITAP          0x00000004
  264. #define UI_SINGLE_LINE_INPUT_BOX_CENTER_Y             0x00000008
  265. #define UI_SINGLE_LINE_INPUT_BOX_MASK_CHARACTERS         0x00000010
  266. #define UI_SINGLE_LINE_INPUT_BOX_DISABLE_DRAW            0x00000020
  267. #define UI_SINGLE_LINE_INPUT_BOX_DISABLE_BACKGROUND         0x00000040
  268. #define UI_SINGLE_LINE_INPUT_BOX_DISABLE_CURSOR_DRAW     0x00000080
  269. #define UI_SINGLE_LINE_INPUT_BOX_CENTER_JUSTIFY          0x00000100
  270. #define UI_SINGLE_LINE_INPUT_BOX_OVERWRITE_MODE          0x00000200
  271. #define UI_SINGLE_LINE_INPUT_BOX_RIGHT_JUSTIFY           0x00000400
  272. #define UI_SINGLE_LINE_INPUT_BOX_DISABLE_SCROLLING       0x00000800
  273. #define UI_SINGLE_LINE_INPUT_BOX_SHOW_BLOCK_CURSOR       0x00001000
  274. #define UI_SINGLE_LINE_INPUT_BOX_NO_BORDER               0x00002000
  275. #define UI_SINGLE_LINE_INPUT_BOX_USE_ENCODING_BASED_LENGTH  0x00004000
  276. #define UI_SINGLE_LINE_INPUT_BOX_WORD_HIGHLIGHT          0x00008000
  277. #define UI_SINGLE_LINE_INPUT_BOX_ONE_LESS_CHARACTER         0x00010000
  278. #define UI_SINGLE_LINE_INPUT_BOX_DISABLE_TONES           0x00020000
  279. #define UI_SINGLE_LINE_INPUT_BOX_PLUS_CHARACTER_HANDLING 0x00040000
  280. #define UI_SINGLE_LINE_INPUT_BOX_CHARACTER_HIGHLIGHT     0x00080000
  281. #define UI_SINGLE_LINE_INPUT_BOX_FULL_HEIGHT_BLOCK_CURSOR   0x00100000
  282. #define UI_SINGLE_LINE_INPUT_BOX_VIEW_FULL_CHARACTERS    0x00200000
  283. #define UI_SINGLE_LINE_INPUT_BOX_CHECK_GSM_EXTENDED         0x00400000
  284.     /* MTK Leo add 1125, trucate too long number/name with "..." in call list. */
  285. #define UI_SINGLE_LINE_INPUT_BOX_TRUNCATE_CONTENT        0x00800000
  286. #define UI_SINGLE_LINE_INPUT_BOX_SECOND_WORD_HIGHLIGHT              0x01000000
  287. #define UI_SINGLE_LINE_INPUT_BOX_SWITCH_WORD_HIGHLIGHT_COLOR        0x02000000
  288. #define UI_SINGLE_LINE_INPUT_BOX_FORCE_BORDER_DISPLAY             0x04000000
  289.     /* 022405 Calvin added to trucate too long number/name without */
  290. #define UI_SINGLE_LINE_INPUT_BOX_TRUNCATE_CONTENT_NO_BRIEF  0x08000000
  291.     /* Calvin end */
  292.     /* TODO: remove the following line */
  293. #define UI_MULTI_LINE_INPUT_BOX_LINE_HEIGHT_WITH_UNDERLINE  20
  294. #define UI_SINGLE_LINE_INPUT_BOX_EXT_FIXED_GRID          (1<<0)
  295. #define UI_SINGLE_LINE_INPUT_BOX_EXT_ENABLE_ARROW     (1<<1)
  296.     extern UI_single_line_input_box_theme *current_single_line_input_box_theme;
  297.     typedef struct _single_line_input_box
  298.     {
  299.         S32 x, y;
  300.         S32 width, height;
  301.         UI_filled_area *normal_filler;
  302.         UI_filled_area *disabled_filler;
  303.         UI_filled_area *selected_filler;
  304.         U32 flags;
  305.         U32 ext_flags;
  306.         S32 grid_width;
  307.         UI_buffer_type text;
  308.         S32 text_length;
  309.         S32 allocated_length;
  310.         S32 available_length;
  311.         UI_buffer_type current_text_p;
  312.         UI_buffer_type last_position_p;
  313.         S32 text_x;
  314.         S32 text_y;
  315.         S32 text_offset_x;
  316.         S32 cursor_x;
  317.         S32 text_width;
  318.         color normal_text_color;
  319.         color disabled_text_color;
  320.         color selected_text_color;
  321.         color selection_text_color;
  322.         color selection_color;
  323.         color cursor_color;
  324.         UI_font_type text_font;
  325.         S8 text_gap;
  326.         U8 mask_character;
  327.         S32 UCS2_count;
  328.         S32 GSM_ext_count;
  329.         void (*overflow_callback) (void);
  330.         void (*change_callback) (void);
  331.         void (*validation_callback) (UI_buffer_type text, UI_buffer_type cursor_p, S32 text_length);
  332.         UI_buffer_type highlight_start_position;
  333.         UI_buffer_type highlight_end_position;
  334.         /* Elvis for second word highlight */
  335.         UI_buffer_type second_highlight_start_position;
  336.         UI_buffer_type second_highlight_end_position;
  337.         /* MTK end */
  338.     #if defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__)
  339.         gui_single_line_input_box_pen_state_struct pen_state;
  340.     #endif 
  341.     } single_line_input_box;
  342.     extern void gui_set_single_line_input_box_current_theme(single_line_input_box *b);
  343.     extern void gui_set_single_line_input_box_theme(single_line_input_box *b, UI_single_line_input_box_theme *t);
  344.     extern void gui_create_single_line_input_box(
  345.                     single_line_input_box *b,
  346.                     S32 x,
  347.                     S32 y,
  348.                     S32 width,
  349.                     S32 height,
  350.                     S32 length);
  351.     extern void gui_create_single_line_input_box_use_buffer(
  352.                     single_line_input_box *b,
  353.                     S32 x,
  354.                     S32 y,
  355.                     S32 width,
  356.                     S32 height,
  357.                     UI_string_type buffer,
  358.                     S32 length);
  359.     extern void gui_create_single_line_input_box_set_buffer(
  360.                     single_line_input_box *b,
  361.                     S32 x,
  362.                     S32 y,
  363.                     S32 width,
  364.                     S32 height,
  365.                     UI_string_type buffer,
  366.                     S32 length,
  367.                     S32 text_length,
  368.                     S32 edit_position);
  369.     extern void gui_single_line_input_box_show_cursor(single_line_input_box *b, S32 x, S32 y, S32 height);
  370.     extern void gui_show_single_line_input_box(single_line_input_box *b);
  371.     extern void gui_destroy_single_line_input_box(single_line_input_box *b);
  372.     extern void gui_single_line_input_box_delete_character(single_line_input_box *b);
  373.     extern void gui_single_line_input_box_insert_character(single_line_input_box *b, UI_character_type c);
  374.     extern void gui_single_line_input_box_insert_multitap_character(single_line_input_box *b, UI_character_type c);
  375.     extern void gui_single_line_input_box_confirm_multitap_character(single_line_input_box *b);
  376.     /* PMT dara added for Multitap thai */
  377. #ifdef __MMI_MULTITAP_THAI__
  378.     extern U8 gui_single_line_input_box_get_previous_character(single_line_input_box *b, UI_character_type *c);
  379. #endif 
  380.     extern void gui_single_line_input_box_previous(single_line_input_box *b);
  381.     extern void gui_single_line_input_box_next(single_line_input_box *b);
  382.     extern void gui_resize_single_line_input_box(single_line_input_box *b, S32 width, S32 height);
  383.     extern void gui_move_single_line_input_box(single_line_input_box *b, S32 x, S32 y);
  384.     extern void gui_single_line_input_box_delete_all(single_line_input_box *b);
  385.     extern void gui_single_line_input_box_delete_current_character(single_line_input_box *b);
  386.     extern void gui_single_line_input_box_toggle_insert_mode(single_line_input_box *b);
  387.     extern void gui_single_line_input_box_goto_first_character(single_line_input_box *b);
  388.     extern void gui_single_line_input_box_goto_last_character(single_line_input_box *b);
  389.     extern void gui_single_line_input_box_clear(single_line_input_box *b);
  390.     extern U8 gui_single_line_input_box_test_overflow(single_line_input_box *b);
  391.     extern U8 gui_single_line_input_box_test_first_position(single_line_input_box *b);
  392.     extern U8 gui_single_line_input_box_test_last_position(single_line_input_box *b);
  393.     extern U8 gui_single_line_input_box_test_last_position_overflow(single_line_input_box *b);
  394.     extern S32 gui_single_line_input_box_get_text_length(single_line_input_box *b);
  395.     extern U8 gui_single_line_input_box_test_last_character_position(single_line_input_box *b);
  396.     extern void gui_create_single_line_input_box_set_buffer_first_position(
  397.                     single_line_input_box *b,
  398.                     S32 x,
  399.                     S32 y,
  400.                     S32 width,
  401.                     S32 height,
  402.                     UI_string_type buffer,
  403.                     S32 length,
  404.                     S32 text_length,
  405.                     S32 edit_position);
  406.     extern S32 gui_single_line_input_box_highlight_cursor_end(single_line_input_box *b);
  407.     /* MTK Elvis */
  408.     extern S32 gui_single_line_input_box_highlight_cursor_number(single_line_input_box *b, S32 numOfChar);
  409.     /* MTK end */
  410.     extern S32 gui_single_line_input_box_highlight_cursor_start(single_line_input_box *b);
  411.     /* MTK Add By Elvis */
  412.     extern S32 gui_single_line_input_box_insert_string(single_line_input_box *b, UI_string_type s, S32 o);
  413.     /* MTK end */
  414.     extern S32 gui_single_line_input_box_next_steps(single_line_input_box *b, S32 steps);
  415.     extern S32 gui_single_line_input_box_previous_steps(single_line_input_box *b, S32 steps);
  416. #if defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__)
  417.     extern BOOL gui_single_line_input_box_translate_pen_event(
  418.                     single_line_input_box *b,
  419.                     mmi_pen_event_type_enum pen_event,
  420.                     S16 x,
  421.                     S16 y,
  422.                     gui_single_line_input_box_pen_enum *single_line_input_box_event);
  423. #endif /* defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__) */ 
  424.     extern void gui_show_single_line_input_box_ext(single_line_input_box *b, S32 move_to_x, S32 move_to_y);
  425.     /* UI multiline input box structure          */
  426.     extern UI_multi_line_input_box_theme *current_multi_line_input_box_theme;
  427. #define  UI_MULTI_LINE_INPUT_BOX_STATE_NORMAL            0x00000000
  428. #define UI_MULTI_LINE_INPUT_BOX_STATE_DISABLED           0x00000001
  429. #define UI_MULTI_LINE_INPUT_BOX_STATE_FOCUSSED           0x00000002
  430. #define UI_MULTI_LINE_INPUT_BOX_DISABLE_BACKGROUND       0x00000004
  431. #define UI_MULTI_LINE_INPUT_BOX_STATE_MULTITAP           0x00000008
  432. #define UI_MULTI_LINE_INPUT_BOX_DISABLE_SCROLLBAR        0x00000010
  433. #define UI_MULTI_LINE_INPUT_BOX_OVERWRITE_MODE           0x00000020
  434. #define UI_MULTI_LINE_INPUT_BOX_DISABLE_DRAW             0x00000040
  435. #define UI_MULTI_LINE_INPUT_BOX_DISABLE_CURSOR_DRAW      0x00000080
  436. #define UI_MULTI_LINE_INPUT_BOX_MASK_CHARACTERS             0x00000100
  437. #define UI_MULTI_LINE_INPUT_BOX_CENTER_JUSTIFY              0x00000200
  438. #define UI_MULTI_LINE_INPUT_BOX_RIGHT_JUSTIFY               0x00000400
  439. #define UI_MULTI_LINE_INPUT_BOX_USE_ENCODING_BASED_LENGTH   0x00000800
  440. #define UI_MULTI_LINE_INPUT_BOX_AUTO_DISABLE_SCROLLBAR      0x00001000
  441. #define UI_MULTI_LINE_INPUT_BOX_WORD_HIGHLIGHT              0x00002000
  442. #define UI_MULTI_LINE_INPUT_BOX_USE_PRESET_CLIPPING         0x00004000
  443. #define UI_MULTI_LINE_INPUT_BOX_VIEW_MODE                   0x00008000
  444. #define UI_MULTI_LINE_INPUT_BOX_ONE_LESS_CHARACTER          0x00010000
  445. #define UI_MULTI_LINE_INPUT_BOX_PLUS_CHARACTER_HANDLING     0x00020000
  446. #define UI_MULTI_LINE_INPUT_BOX_CHECK_GSM_EXTENDED          0x00040000
  447. #define UI_MULTI_LINE_INPUT_BOX_ONLY_SHOW_FIRST_LINE        0x00080000
  448. #define UI_MULTI_LINE_INPUT_BOX_DISABLE_WRAPPING_BY_WORD    0x00100000
  449.     /* Multiline inputbox inside inline editor */
  450. #define UI_MULTI_LINE_INPUT_BOX_INSIDE_INLINE_MENU          0x00200000
  451.     /* WAP CSS input format */
  452. #define UI_MULTI_LINE_WCSS_INPUT_BOX_ENABLE                 0x00400000
  453. #define UI_MULTI_LINE_INPUT_BOX_AUTO_VERTICAL_SCROLL        0x00800000
  454. #define  UI_MULTI_LINE_INPUT_BOX_INCLUDE_INFO_AREA          0x01000000
  455. #define  UI_MULTI_LINE_INPUT_BOX_FORTY_FOUR_LESS_CHARACTER  0x02000000
  456.     /* Replace CRLF as a separator line  */
  457. #define UI_MULTI_LINE_INPUT_BOX_DRAW_SEPARATOR              0x04000000
  458.     /* Draw underline for each line. Used with min_line_height */
  459. #define UI_MULTI_LINE_INPUT_BOX_DRAW_UNDERLINE              0x08000000
  460. #define UI_MULTI_LINE_INPUT_BOX_DISPLAY_LASTLINE            0x10000000
  461.     /* Change text format (color/size/alignment)  when marker code is identified */
  462. #define UI_MULTI_LINE_INPUT_BOX_RICHTEXT                    0x20000000
  463. #define UI_MULTI_LINE_INPUT_BOX_SMS_MAX_LENGTH_HANDLING     0x40000000
  464. #define UI_MULTI_LINE_INPUT_BOX_TRANSPARENT_BACKGROUND      0x80000000  /* 070405 Calvin added */
  465. /* these are used in ext_flags */
  466. #define GUI_MULTI_LINE_INPUT_BOX_VIEW_PAGING_MODE                0x00000001
  467. #define GUI_MULTI_LINE_INPUT_BOX_AUTO_SCROLL_MODE                0x00000002
  468. #define GUI_MULTI_LINE_INPUT_BOX_TRUNCATE_CONTENT                0x00000004
  469. #define GUI_MULTI_LINE_INPUT_BOX_CHAT_ICON_DISPLAY               0x00000008
  470. #define GUI_MULTI_LINE_INPUT_BOX_DISABLE_DALMATIAN_EDITOR        0x00000010
  471. #define GUI_MULTI_LINE_INPUT_BOX_DISABLE_FORCE_CURSOR_APPEAR    0x00000020
  472.     /* Max length for character sequence that can be translated into an icon */
  473. #define MMI_MULTILINE_ICON_MAX_STRING_LEN 5
  474.     /* Type of callback handler to translate a string into an icon */
  475.     typedef S32(*multi_line_input_box_icon_hdlr) (const U8 *s, BOOL do_draw, S32 *icon_width, S32 *icon_height,
  476.                                                   S32 x, S32 y);
  477. //barcode
  478. typedef struct
  479. {
  480. PS8   str_addr;
  481. U16   length;
  482. } HILITE_STR;
  483. /*** ritesh started****/
  484. #if defined(__UI_PAGING_IN_MULTILINE_EDITOR__)
  485. #include "Gui_setting.h"
  486. #define GUI_SHARED_BYTES MAIN_LCD_DEVICE_HEIGHT/2       /* As LCD_WIDTH=220 shared bytes =LCD_WIDTH/2 */
  487. #define GUI_NO_OF_PAGES 4
  488. #define GUI_PAGE_SIZE 512
  489. #define GUI_PAGE_SIZE_IN_UCS2 GUI_PAGE_SIZE*ENCODING_LENGTH
  490. #define GUI_SCROLL_STEPS_LINE_BY_LINE 5
  491.     typedef struct _page_details
  492.     {
  493.         U32 page_id;
  494.         U16 page_height;
  495.         U8 shared_no_of_bytes;
  496.         U8 shared_data[GUI_SHARED_BYTES];
  497.     } gui_page_details;
  498. #endif /* defined(__UI_PAGING_IN_MULTILINE_EDITOR__) */ 
  499. /**** ritesh ended*****/
  500.     typedef struct _multi_line_input_box
  501.     {
  502.         S32 x, y;
  503.         S32 width, height;
  504.         UI_filled_area *normal_filler;
  505.         UI_filled_area *disabled_filler;
  506.         UI_filled_area *focussed_filler;
  507.         UI_filled_area *text_filler;
  508.         color special_text_color;
  509.         color normal_text_color;
  510.         color disabled_text_color;
  511.         color focussed_text_color;
  512.         color selected_text_color;
  513.         color selector_color;
  514.         color cursor_color;
  515.         color boundary_color;
  516.         S8 text_gap;
  517.         UI_font_type text_font;
  518.         U32 flags;
  519.         U32 ext_flags;
  520.         UI_buffer_type text;
  521.         S32 text_length;
  522.         S32 allocated_length;
  523.         S32 available_length;
  524.         S32 edit_width;
  525.         S32 edit_height;
  526.         S32 text_x;
  527.         S32 text_y;
  528.         /* The gap between editor edge and the rightmost text edge */
  529.         S32 text_x2_gap_width;
  530.         S32 text_offset_x;
  531.         S32 text_offset_y;
  532.         S32 cursor_x;
  533.         S32 cursor_y;
  534.         S32 n_lines;
  535.         S32 text_height;
  536.         S32 cursor_line_position_counter;
  537.         UI_buffer_type line_before_cursor_line_p;
  538.         UI_buffer_type cursor_line_p;
  539.         UI_buffer_type cursor_p;
  540.         UI_buffer_type line_after_cursor_line_p;
  541.         UI_buffer_type line_after_cursor_line_last_p;
  542.         UI_buffer_type last_position_p;
  543.         U8 mask_character;
  544.         S32 UCS2_count;
  545.         S32 GSM_ext_count;
  546.         void (*overflow_callback) (void);
  547.         void (*change_callback) (void);
  548.         void (*validation_callback) (UI_buffer_type text, UI_buffer_type cursor_p, S32 text_length);
  549.         vertical_scrollbar vbar;
  550.         UI_buffer_type highlight_start_position;
  551.         UI_buffer_type highlight_end_position;
  552.         S32 max_line_height;
  553.         S32 editor_changed;     /* Gurinder - 03/12/2003 - Variable to track change in multiline input box. */
  554.         S32 vertical_scroll_on; /* Vikram : Start a vertical scroll timer. 0- Not started, 1 - Started */
  555.         /* Minimum height of text area */
  556.         S16 min_text_height;
  557.         /* Maximum height of text area when text is empty */
  558.         S16 max_empty_text_height;
  559.         /* Minimum line height */
  560.         S16 min_line_height;
  561.         /* Height of header/footer area */
  562.         S16 header_height, footer_height;
  563.         /* Customized information bar draw function */
  564.         void (*infobar_redraw_callback)(S32 x1,S32 y1,S32 x2,S32 y2);
  565.         void (*infobar_reminder_char_callback)(S32 x1,S32 y1,S32 x2,S32 y2);
  566.         /* Customized header draw function */
  567.         void (*header_callback) (S32 yoffset, S32 clip_x1, S32 clip_y1, S32 clip_x2, S32 clip_y2);
  568.         /* Customized footer draw function */
  569.         void (*footer_callback) (S32 yoffset, S32 clip_x1, S32 clip_y1, S32 clip_x2, S32 clip_y2);
  570.         /* Change Event Handler */
  571.         MMI_BOOL (*change_event_handler)(gui_multi_line_input_box_change_event_enum event,U16 C);
  572.         /*
  573.          * Customized function to replace a string with icon. Return the number of characters consumed. 
  574.          * * If icon height is taller than typical character height, 'min_line_height' should be also set.
  575.          */
  576.         multi_line_input_box_icon_hdlr icon_callback;
  577.    //barcode
  578. S32 curr_hilite_text_offset_y;
  579. HILITE_STR  *hilite_list;
  580. U16 hilite_str_number;
  581. void  (*hilite_cb)(S32 idx);
  582. S32 current_hilite_idx;
  583.     #if defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__)
  584.         S16 pen_scroll_delay_time;
  585.         S16 pen_scroll_after_delay;
  586.         gui_multi_line_input_box_pen_state_struct pen_state;
  587.     #endif /* defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__) */ 
  588.     #if defined(__UI_PAGING_IN_MULTILINE_EDITOR__)
  589.         U32 start_id;                                   /* needed to give the appropriate id to page during next page or previous page requirement.At every call to next page and previous page its value gets changed. */
  590.         U32 end_id;                                     /* needed to give the appropriate id to page during next page or previous page requirement.At every call to next page and previous page its value gets changed. */
  591.         S32 edit_height_displayed_lines;                /* height of the currently displayed text. */
  592.         U32 last_page_id;                               /* id of the last page */
  593.         S32 page_zero_prev_height;                      /* to maintain the text relocation while new page entry in buffer during previous page requirement. */
  594.         S32 size_of_total_data;                         /* size of the whole text currently in the buffer */
  595.         S32 text_offset;                                /* this variable shows the position of the chracter where text_offset_y is currently pointing.During exit ,Application wants the current offset of the displayed window. */
  596.         S16 last_page_size;                             /* size of the last page */
  597.         S16 page_offset;                                /* for text display from the same position.This variable is needed when concerned application give some offset. */
  598.         S16 jump_offset_from_app;
  599.         S16 last_window_text_height;                    /* height of the text in the last multiline window of last page. */
  600.         pBOOL last_page_flag;                           /* to maintain the text relocation last page flag is taken. */
  601.         pBOOL jump_to_offset_flag;
  602.         /* PMT Start 00071 */
  603.         pBOOL scroll_type;
  604.         /* PMT End 00071 */
  605.         U8 previous_shared_bytes;                       /* shared bytes between page at 0th index to last page out from the buffer.This variable is needed to copy the pages in upward and downward direction. */
  606.         U8 scroll_speed;
  607.         U8 font_style;                                  /* speed of the auto scrolling. */
  608.         pBOOL next_line_scroll_flag;
  609.         pBOOL search_flag_is_on;
  610.         gui_page_details page_details[GUI_NO_OF_PAGES]; /* page details structure */
  611.     #endif /* defined(__UI_PAGING_IN_MULTILINE_EDITOR__) */ 
  612.     U32 show_action_flag;
  613.     } multi_line_input_box;
  614.     extern void gui_set_multi_line_input_box_current_theme(multi_line_input_box *b);
  615.     extern void gui_set_multi_line_input_box_theme(multi_line_input_box *b, UI_multi_line_input_box_theme *t);
  616.     extern void gui_create_multi_line_input_box(
  617.                     multi_line_input_box *b,
  618.                     S32 x,
  619.                     S32 y,
  620.                     S32 width,
  621.                     S32 height,
  622.                     U32 length);
  623.     extern void gui_create_multi_line_input_box_use_buffer(
  624.                     multi_line_input_box *b,
  625.                     S32 x,
  626.                     S32 y,
  627.                     S32 width,
  628.                     S32 height,
  629.                     UI_string_type buffer,
  630.                     S32 length);
  631.     extern void gui_create_multi_line_input_box_set_buffer(
  632.                     multi_line_input_box *b,
  633.                     S32 x,
  634.                     S32 y,
  635.                     S32 width,
  636.                     S32 height,
  637.                     UI_string_type buffer,
  638.                     S32 length,
  639.                     S32 text_length,
  640.                     S32 edit_position);
  641.     extern void gui_move_multi_line_input_box(multi_line_input_box *b, S32 x, S32 y);
  642.     extern void gui_resize_multi_line_input_box(multi_line_input_box *b, S32 width, S32 height);
  643.     extern void gui_show_multi_line_input_box(multi_line_input_box *b);
  644.     extern void gui_destroy_multi_line_input_box(multi_line_input_box *b);
  645.     extern void gui_multi_line_input_box_delete_character(multi_line_input_box *b);
  646.     extern void gui_multi_line_input_box_delete_all(multi_line_input_box *b);
  647.     extern void gui_multi_line_input_box_delete_current_character(multi_line_input_box *b);
  648.     extern void gui_multi_line_input_box_insert_character(multi_line_input_box *b, UI_character_type c);
  649.     extern void gui_multi_line_input_box_insert_multitap_character(multi_line_input_box *b, UI_character_type c);
  650.     extern void gui_multi_line_input_box_confirm_multitap_character(multi_line_input_box *b);
  651.     extern void gui_multi_line_input_box_register_infobar_callback(
  652.                         multi_line_input_box *b,
  653.                         void(*redraw_callback)(S32 x1,S32 y1,S32 x2,S32 y2),
  654.                         void(*reminder_char_callback)(S32 x1,S32 y1,S32 x2,S32 y2),
  655.                         U32 height);
  656.     extern void gui_multi_line_input_box_register_change_event_handler(multi_line_input_box *b,MMI_BOOL (*handler)(gui_multi_line_input_box_change_event_enum event,U16 C));
  657. #if defined(__UI_PAGING_IN_MULTILINE_EDITOR__)
  658.     typedef enum
  659.     {
  660.         PAGE_ZERO,
  661.         PAGE_ONE,
  662.         PAGE_TWO,
  663.         PAGE_THREE
  664.     } gui_paging_no_of_pages;
  665.     typedef enum
  666.     {
  667.         FONT_DEFAULT,
  668.         FONT_ITALIC,
  669.         FONT_BOLD
  670.     } gui_paging_font_style;
  671.     extern void gui_paging_multiline_input_box_get_page(U32 start_id, U32 end_id, PU8 buffer);
  672.     extern void gui_paging_multi_line_input_box_get_previous_page_callback(multi_line_input_box *b);
  673.     extern void gui_paging_multi_line_input_box_get_next_page_callback(multi_line_input_box *b);
  674.     extern void gui_paging_multi_line_input_box_previous_page(multi_line_input_box *b);
  675.     extern void gui_paging_multi_line_input_box_next_page(multi_line_input_box *b);
  676.     extern void gui_paging_multi_line_input_box_previous_line_in_paging(multi_line_input_box *b);
  677.     extern void gui_paging_multi_line_input_box_next_line_in_paging(multi_line_input_box *b);
  678. #endif /* defined(__UI_PAGING_IN_MULTILINE_EDITOR__) */ 
  679.     /* PMT dara added for Multitap thai */
  680. #ifdef __MMI_MULTITAP_THAI__
  681.     extern U8 gui_multi_line_input_box_get_previous_character(multi_line_input_box *b, UI_character_type *c);
  682. #endif 
  683.     extern void gui_multi_line_input_box_previous(multi_line_input_box *b);
  684.     extern void gui_multi_line_input_box_next(multi_line_input_box *b);
  685.     extern void gui_multi_line_input_box_previous_line(multi_line_input_box *b);
  686.     extern void gui_multi_line_input_box_next_line(multi_line_input_box *b);
  687.     extern void gui_multi_line_input_box_previous_page(multi_line_input_box *b);
  688.     extern void gui_multi_line_input_box_next_page(multi_line_input_box *b);
  689.     extern void gui_multi_line_input_box_toggle_insert_mode(multi_line_input_box *b);
  690.     extern void gui_multi_line_input_box_clear(multi_line_input_box *b);
  691.     extern U8 gui_multi_line_input_box_test_overflow(multi_line_input_box *b);
  692.     extern U8 gui_multi_line_input_box_test_first_position(multi_line_input_box *b);
  693.     extern U8 gui_multi_line_input_box_test_last_position(multi_line_input_box *b);
  694.     extern U8 gui_multi_line_input_box_test_last_position_overflow(multi_line_input_box *b);
  695.     extern S32 gui_multi_line_input_box_get_text_length(multi_line_input_box *b);
  696.     extern S32 gui_multi_line_input_box_highlight_cursor_end(multi_line_input_box *b);
  697.     extern S32 gui_multi_line_input_box_highlight_cursor_start(multi_line_input_box *b);
  698.     extern S32 gui_multi_line_input_box_highlight_cursor_number(multi_line_input_box *b, S32 n);
  699.     extern void gui_multi_line_input_box_insert_newline(multi_line_input_box *b);
  700. #if defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__)
  701.     extern BOOL gui_multi_line_input_box_translate_pen_event(
  702.                     multi_line_input_box *b,
  703.                     mmi_pen_event_type_enum pen_event,
  704.                     S16 x,
  705.                     S16 y,
  706.                     gui_multi_line_input_box_pen_enum *multi_line_input_box_event);
  707. #endif /* defined(__MMI_TOUCH_SCREEN__) || defined(__MMI_HANDWRITING_PAD__) */ 
  708.     extern void gui_show_multi_line_input_box_ext(multi_line_input_box *b, S32 move_to_x, S32 move_to_y);
  709.     /* barcode */
  710.     extern void gui_multi_line_input_box_go_to_hilite(multi_line_input_box *b, U16 idx, MMI_BOOL need_scroll_to_pos);
  711.     extern void gui_multi_line_input_box_go_to_pre_hilite(multi_line_input_box *b);
  712.     extern void gui_multi_line_input_box_go_to_next_hilite(multi_line_input_box *b);
  713.     extern MMI_BOOL gui_multi_line_input_box_is_pen_down_in_hilite(multi_line_input_box *b);
  714.     /*
  715.      * UI_MULTI_LINE_INPUT_BOX_RICHTEXT
  716.      *
  717.      * Specical marker code for styles and colors  
  718.      *
  719.      * "Private Use" Region in Unicode is 0xE000 (57344) - 0xF900 (63744)
  720.      * Regions defined in gRange_Properitory[] must not be overlapped.
  721.      */
  722. #define GUI_INPUT_MARKER_BEGIN                     0xEA00
  723. #define GUI_INPUT_MARKER_END                       0xEFFF
  724.     /* 
  725.      * Font Format. Multiple format can be combined with bitwise OR 
  726.      */
  727.     /* The significant byte is 0xEA */
  728. #define GUI_INPUT_MARKER_FORMAT                    0xEA00
  729. #define GUI_INPUT_MARKER_FORMAT_MASK               0xFF00
  730.     /* 1-bit flag */
  731. #define GUI_INPUT_MARKER_BOLD                      0xEA01
  732. #define GUI_INPUT_MARKER_ITALIC                    0xEA02
  733. #define GUI_INPUT_MARKER_UNDERLINE                 0xEA04
  734. #define GUI_INPUT_MARKER_BORDER                    0xEA08
  735.     /* USAT */
  736. #define GUI_INPUT_MARKER_STRIKETHROUGH             0xEA10
  737.     /* 2 bits are reserved */
  738.     /* 2-bit flag for size */
  739. #define GUI_INPUT_MARKER_SIZE_MASK                 0xFFC0
  740. #define GUI_INPUT_MARKER_MEDIUM                    0xEA40
  741. #define GUI_INPUT_MARKER_SMALL                     0xEA80
  742. #define GUI_INPUT_MARKER_LARGE                     0xEAC0
  743.     /* 
  744.      * Paragraph Format. Multiple format can be combined with bitwise OR 
  745.      */
  746.     /* The significant byte is 0xEB */
  747. #define GUI_INPUT_MARKER_PARAGRAPH                 0xEB00
  748. #define GUI_INPUT_MARKER_PARAGRAPH_MASK            0xFF00
  749.     /* 2-bit flag for alignment. Flag still valid in the next line */
  750. #define GUI_INPUT_MARKER_ALIGN_MASK                0xFF03
  751. #define GUI_INPUT_MARKER_ALIGN_LEFT                0xEB01
  752. #define GUI_INPUT_MARKER_ALIGN_CENTER              0xEB02
  753. #define GUI_INPUT_MARKER_ALIGN_RIGHT               0xEB03
  754.     /* 3-bit flag for more spacing between the previous line. (Flag cleared in the next line) */
  755. #define GUI_INPUT_MARKER_LINE_SPACING_MASK               0xFF1C
  756. #define GUI_INPUT_MARKER_LINE_SPACING_1                  0xEB04
  757. #define GUI_INPUT_MARKER_LINE_SPACING_2                  0xEB08
  758. #define GUI_INPUT_MARKER_LINE_SPACING_3                  0xEB0C
  759. #define GUI_INPUT_MARKER_LINE_SPACING_4                  0xEB10
  760. #define GUI_INPUT_MARKER_LINE_SPACING_5                  0xEB14
  761. #define GUI_INPUT_MARKER_LINE_SPACING_6                  0xEB18
  762. #define GUI_INPUT_MARKER_LINE_SPACING_7                  0xEB1C
  763.     /* 2 bits are reserved */
  764.     /* 1-bit flag separator between the previous line. (Flag cleared in the next line) */
  765. #define GUI_INPUT_MARKER_LINE_SEPARATOR            0xEB80
  766.     /* 
  767.      * One-byte marker 
  768.      */
  769.     /* Reset all  */
  770. #define GUI_INPUT_MARKER_RESET_ALL                 0xEC00
  771.     /* Reset paragraph */
  772. #define GUI_INPUT_MARKER_RESET_PARAGRAPH           0xEC01
  773.     /* Reset font format */
  774. #define GUI_INPUT_MARKER_RESET_FORMAT              0xEC02
  775.     /* Reset font color */
  776. #define GUI_INPUT_MARKER_RESET_COLOR               0xEC03
  777.     /* Range of W3C color marker */
  778. #define GUI_INPUT_MARKER_W3C_COLOR_BEGIN           0xEC04
  779. #define GUI_INPUT_MARKER_W3C_COLOR_END             0xECFF
  780.     /* Range of default color marker */
  781. #define GUI_INPUT_MARKER_COLOR_BEGIN               0xED00
  782. #define GUI_INPUT_MARKER_COLOR_END                 0xED7F
  783.     /* USAT */
  784.     /* Range of text background color marker */
  785. #define GUI_INPUT_MARKER_TEXT_BACKGROUND_COLOR_BEGIN              0xED80
  786. #define GUI_INPUT_MARKER_TEXT_BACKGROUND_COLOR_END                0xEDFF
  787.     /* Range of border color marker */
  788. #define GUI_INPUT_MARKER_W3C_BORDER_COLOR_BEGIN          0xEE04
  789. #define GUI_INPUT_MARKER_W3C_BORDER_COLOR_END            0xEEFF
  790. #define GUI_INPUT_MARKER_BORDER_COLOR_BEGIN              0xEF00
  791. #define GUI_INPUT_MARKER_BORDER_COLOR_END                0xEFFF
  792.     /*
  793.      * Default color marker code (122 colors)
  794.      */
  795.     typedef enum
  796.     {
  797.         GUI_INPUT_COLOR_00 = GUI_INPUT_MARKER_COLOR_BEGIN,
  798.         GUI_INPUT_COLOR_01,
  799.         GUI_INPUT_COLOR_02,
  800.         GUI_INPUT_COLOR_03,
  801.         GUI_INPUT_COLOR_04,
  802.         GUI_INPUT_COLOR_05,
  803.         GUI_INPUT_COLOR_06,
  804.         GUI_INPUT_COLOR_07,
  805.         GUI_INPUT_COLOR_08,
  806.         GUI_INPUT_COLOR_09,
  807.         GUI_INPUT_COLOR_0A,
  808.         GUI_INPUT_COLOR_0B,
  809.         GUI_INPUT_COLOR_0C,
  810.         GUI_INPUT_COLOR_0D,
  811.         GUI_INPUT_COLOR_0E,
  812.         GUI_INPUT_COLOR_0F,
  813.         GUI_INPUT_COLOR_10,
  814.         GUI_INPUT_COLOR_11,
  815.         GUI_INPUT_COLOR_12,
  816.         GUI_INPUT_COLOR_13,
  817.         GUI_INPUT_COLOR_14,
  818.         GUI_INPUT_COLOR_15,
  819.         GUI_INPUT_COLOR_16,
  820.         GUI_INPUT_COLOR_17,
  821.         GUI_INPUT_COLOR_18,
  822.         GUI_INPUT_COLOR_19,
  823.         GUI_INPUT_COLOR_1A,
  824.         GUI_INPUT_COLOR_1B,
  825.         GUI_INPUT_COLOR_1C,
  826.         GUI_INPUT_COLOR_1D,
  827.         GUI_INPUT_COLOR_1E,
  828.         GUI_INPUT_COLOR_1F,
  829.         GUI_INPUT_COLOR_20,
  830.         GUI_INPUT_COLOR_21,
  831.         GUI_INPUT_COLOR_22,
  832.         GUI_INPUT_COLOR_23,
  833.         GUI_INPUT_COLOR_24,
  834.         GUI_INPUT_COLOR_25,
  835.         GUI_INPUT_COLOR_26,
  836.         GUI_INPUT_COLOR_27,
  837.         GUI_INPUT_COLOR_28,
  838.         GUI_INPUT_COLOR_29,
  839.         GUI_INPUT_COLOR_2A,
  840.         GUI_INPUT_COLOR_2B,
  841.         GUI_INPUT_COLOR_2C,
  842.         GUI_INPUT_COLOR_2D,
  843.         GUI_INPUT_COLOR_2E,
  844.         GUI_INPUT_COLOR_2F,
  845.         GUI_INPUT_COLOR_30,
  846.         GUI_INPUT_COLOR_31,
  847.         GUI_INPUT_COLOR_32,
  848.         GUI_INPUT_COLOR_33,
  849.         GUI_INPUT_COLOR_34,
  850.         GUI_INPUT_COLOR_35,
  851.         GUI_INPUT_COLOR_36,
  852.         GUI_INPUT_COLOR_37,
  853.         GUI_INPUT_COLOR_38,
  854.         GUI_INPUT_COLOR_39,
  855.         GUI_INPUT_COLOR_3A,
  856.         GUI_INPUT_COLOR_3B,
  857.         GUI_INPUT_COLOR_3C,
  858.         GUI_INPUT_COLOR_3D,
  859.         GUI_INPUT_COLOR_3E,
  860.         GUI_INPUT_COLOR_3F,
  861.         GUI_INPUT_COLOR_40,
  862.         GUI_INPUT_COLOR_41,
  863.         GUI_INPUT_COLOR_42,
  864.         GUI_INPUT_COLOR_43,
  865.         GUI_INPUT_COLOR_44,
  866.         GUI_INPUT_COLOR_45,
  867.         GUI_INPUT_COLOR_46,
  868.         GUI_INPUT_COLOR_47,
  869.         GUI_INPUT_COLOR_48,
  870.         GUI_INPUT_COLOR_49,
  871.         GUI_INPUT_COLOR_4A,
  872.         GUI_INPUT_COLOR_4B,
  873.         GUI_INPUT_COLOR_4C,
  874.         GUI_INPUT_COLOR_4D,
  875.         GUI_INPUT_COLOR_4E,
  876.         GUI_INPUT_COLOR_4F,
  877.         GUI_INPUT_COLOR_50,
  878.         GUI_INPUT_COLOR_51,
  879.         GUI_INPUT_COLOR_52,
  880.         GUI_INPUT_COLOR_53,
  881.         GUI_INPUT_COLOR_54,
  882.         GUI_INPUT_COLOR_55,
  883.         GUI_INPUT_COLOR_56,
  884.         GUI_INPUT_COLOR_57,
  885.         GUI_INPUT_COLOR_58,
  886.         GUI_INPUT_COLOR_59,
  887.         GUI_INPUT_COLOR_5A,
  888.         GUI_INPUT_COLOR_5B,
  889.         GUI_INPUT_COLOR_5C,
  890.         GUI_INPUT_COLOR_5D,
  891.         GUI_INPUT_COLOR_5E,
  892.         GUI_INPUT_COLOR_5F,
  893.         GUI_INPUT_COLOR_60,
  894.         GUI_INPUT_COLOR_61,
  895.         GUI_INPUT_COLOR_62,
  896.         GUI_INPUT_COLOR_63,
  897.         GUI_INPUT_COLOR_64,
  898.         GUI_INPUT_COLOR_65,
  899.         GUI_INPUT_COLOR_66,
  900.         GUI_INPUT_COLOR_67,
  901.         GUI_INPUT_COLOR_68,
  902.         GUI_INPUT_COLOR_69,
  903.         GUI_INPUT_COLOR_6A,
  904.         GUI_INPUT_COLOR_6B,
  905.         GUI_INPUT_COLOR_6C,
  906.         GUI_INPUT_COLOR_6D,
  907.         GUI_INPUT_COLOR_6E,
  908.         GUI_INPUT_COLOR_6F,
  909.         GUI_INPUT_COLOR_70,
  910.         GUI_INPUT_COLOR_71,
  911.         GUI_INPUT_COLOR_72,
  912.         GUI_INPUT_COLOR_73,
  913.         GUI_INPUT_COLOR_74,
  914.         GUI_INPUT_COLOR_75,
  915.         GUI_INPUT_COLOR_76,
  916.         GUI_INPUT_COLOR_77,
  917.         GUI_INPUT_COLOR_78,
  918.         GUI_INPUT_COLOR_79
  919.     } gui_input_color_marker_enum;
  920.     /* 
  921.      * http://www.w3.org/TR/css3-color/ 
  922.      * W3C color marker code (147 colors)
  923.      */
  924.     typedef enum
  925.     {
  926.         GUI_INPUT_COLOR_ALICEBLUE = GUI_INPUT_MARKER_W3C_COLOR_BEGIN,
  927.         GUI_INPUT_COLOR_ANTIQUEWHITE,
  928.         GUI_INPUT_COLOR_AQUA,
  929.         GUI_INPUT_COLOR_AQUAMARINE,
  930.         GUI_INPUT_COLOR_AZURE,
  931.         GUI_INPUT_COLOR_BEIGE,
  932.         GUI_INPUT_COLOR_BISQUE,
  933.         GUI_INPUT_COLOR_BLACK,
  934.         GUI_INPUT_COLOR_BLANCHEDALMOND,
  935.         GUI_INPUT_COLOR_BLUE,
  936.         GUI_INPUT_COLOR_BLUEVIOLET,
  937.         GUI_INPUT_COLOR_BROWN,
  938.         GUI_INPUT_COLOR_BURLYWOOD,
  939.         GUI_INPUT_COLOR_CADETBLUE,
  940.         GUI_INPUT_COLOR_CHARTREUSE,
  941.         GUI_INPUT_COLOR_CHOCOLATE,
  942.         GUI_INPUT_COLOR_CORAL,
  943.         GUI_INPUT_COLOR_CORNFLOWERBLUE,
  944.         GUI_INPUT_COLOR_CORNSILK,
  945.         GUI_INPUT_COLOR_CRIMSON,
  946.         GUI_INPUT_COLOR_CYAN,
  947.         GUI_INPUT_COLOR_DARKBLUE,
  948.         GUI_INPUT_COLOR_DARKCYAN,
  949.         GUI_INPUT_COLOR_DARKGOLDENROD,
  950.         GUI_INPUT_COLOR_DARKGRAY,
  951.         GUI_INPUT_COLOR_DARKGREEN,
  952.         GUI_INPUT_COLOR_DARKGREY,
  953.         GUI_INPUT_COLOR_DARKKHAKI,
  954.         GUI_INPUT_COLOR_DARKMAGENTA,
  955.         GUI_INPUT_COLOR_DARKOLIVEGREEN,
  956.         GUI_INPUT_COLOR_DARKORANGE,
  957.         GUI_INPUT_COLOR_DARKORCHID,
  958.         GUI_INPUT_COLOR_DARKRED,
  959.         GUI_INPUT_COLOR_DARKSALMON,
  960.         GUI_INPUT_COLOR_DARKSEAGREEN,
  961.         GUI_INPUT_COLOR_DARKSLATEBLUE,
  962.         GUI_INPUT_COLOR_DARKSLATEGRAY,
  963.         GUI_INPUT_COLOR_DARKSLATEGREY,
  964.         GUI_INPUT_COLOR_DARKTURQUOISE,
  965.         GUI_INPUT_COLOR_DARKVIOLET,
  966.         GUI_INPUT_COLOR_DEEPPINK,
  967.         GUI_INPUT_COLOR_DEEPSKYBLUE,
  968.         GUI_INPUT_COLOR_DIMGRAY,
  969.         GUI_INPUT_COLOR_DIMGREY,
  970.         GUI_INPUT_COLOR_DODGERBLUE,
  971.         GUI_INPUT_COLOR_FIREBRICK,
  972.         GUI_INPUT_COLOR_FLORALWHITE,
  973.         GUI_INPUT_COLOR_FORESTGREEN,
  974.         GUI_INPUT_COLOR_FUCHSIA,
  975.         GUI_INPUT_COLOR_GAINSBORO,
  976.         GUI_INPUT_COLOR_GHOSTWHITE,
  977.         GUI_INPUT_COLOR_GOLD,
  978.         GUI_INPUT_COLOR_GOLDENROD,
  979.         GUI_INPUT_COLOR_GRAY,
  980.         GUI_INPUT_COLOR_GREY,
  981.         GUI_INPUT_COLOR_GREEN,
  982.         GUI_INPUT_COLOR_GREENYELLOW,
  983.         GUI_INPUT_COLOR_HONEYDEW,
  984.         GUI_INPUT_COLOR_HOTPINK,
  985.         GUI_INPUT_COLOR_INDIANRED,
  986.         GUI_INPUT_COLOR_INDIGO,
  987.         GUI_INPUT_COLOR_IVORY,
  988.         GUI_INPUT_COLOR_KHAKI,
  989.         GUI_INPUT_COLOR_LAVENDER,
  990.         GUI_INPUT_COLOR_LAVENDERBLUSH,
  991.         GUI_INPUT_COLOR_LAWNGREEN,
  992.         GUI_INPUT_COLOR_LEMONCHIFFON,
  993.         GUI_INPUT_COLOR_LIGHTBLUE,
  994.         GUI_INPUT_COLOR_LIGHTCORAL,
  995.         GUI_INPUT_COLOR_LIGHTCYAN,
  996.         GUI_INPUT_COLOR_LIGHTGOLDENRODYELLOW,
  997.         GUI_INPUT_COLOR_LIGHTGRAY,
  998.         GUI_INPUT_COLOR_LIGHTGREEN,
  999.         GUI_INPUT_COLOR_LIGHTGREY,
  1000.         GUI_INPUT_COLOR_LIGHTPINK,
  1001.         GUI_INPUT_COLOR_LIGHTSALMON,
  1002.         GUI_INPUT_COLOR_LIGHTSEAGREEN,
  1003.         GUI_INPUT_COLOR_LIGHTSKYBLUE,
  1004.         GUI_INPUT_COLOR_LIGHTSLATEGRAY,
  1005.         GUI_INPUT_COLOR_LIGHTSLATEGREY,
  1006.         GUI_INPUT_COLOR_LIGHTSTEELBLUE,
  1007.         GUI_INPUT_COLOR_LIGHTYELLOW,
  1008.         GUI_INPUT_COLOR_LIME,
  1009.         GUI_INPUT_COLOR_LIMEGREEN,
  1010.         GUI_INPUT_COLOR_LINEN,
  1011.         GUI_INPUT_COLOR_MAGENTA,
  1012.         GUI_INPUT_COLOR_MAROON,
  1013.         GUI_INPUT_COLOR_MEDIUMAQUAMARINE,
  1014.         GUI_INPUT_COLOR_MEDIUMBLUE,
  1015.         GUI_INPUT_COLOR_MEDIUMORCHID,
  1016.         GUI_INPUT_COLOR_MEDIUMPURPLE,
  1017.         GUI_INPUT_COLOR_MEDIUMSEAGREEN,
  1018.         GUI_INPUT_COLOR_MEDIUMSLATEBLUE,
  1019.         GUI_INPUT_COLOR_MEDIUMSPRINGGREEN,
  1020.         GUI_INPUT_COLOR_MEDIUMTURQUOISE,
  1021.         GUI_INPUT_COLOR_MEDIUMVIOLETRED,
  1022.         GUI_INPUT_COLOR_MIDNIGHTBLUE,
  1023.         GUI_INPUT_COLOR_MINTCREAM,
  1024.         GUI_INPUT_COLOR_MISTYROSE,
  1025.         GUI_INPUT_COLOR_MOCCASIN,
  1026.         GUI_INPUT_COLOR_NAVAJOWHITE,
  1027.         GUI_INPUT_COLOR_NAVY,
  1028.         GUI_INPUT_COLOR_OLDLACE,
  1029.         GUI_INPUT_COLOR_OLIVE,
  1030.         GUI_INPUT_COLOR_OLIVEDRAB,
  1031.         GUI_INPUT_COLOR_ORANGE,
  1032.         GUI_INPUT_COLOR_ORANGERED,
  1033.         GUI_INPUT_COLOR_ORCHID,
  1034.         GUI_INPUT_COLOR_PALEGOLDENROD,
  1035.         GUI_INPUT_COLOR_PALEGREEN,
  1036.         GUI_INPUT_COLOR_PALETURQUOISE,
  1037.         GUI_INPUT_COLOR_PALEVIOLETRED,
  1038.         GUI_INPUT_COLOR_PAPAYAWHIP,
  1039.         GUI_INPUT_COLOR_PEACHPUFF,
  1040.         GUI_INPUT_COLOR_PERU,
  1041.         GUI_INPUT_COLOR_PINK,
  1042.         GUI_INPUT_COLOR_PLUM,
  1043.         GUI_INPUT_COLOR_POWDERBLUE,
  1044.         GUI_INPUT_COLOR_PURPLE,
  1045.         GUI_INPUT_COLOR_RED,
  1046.         GUI_INPUT_COLOR_ROSYBROWN,
  1047.         GUI_INPUT_COLOR_ROYALBLUE,
  1048.         GUI_INPUT_COLOR_SADDLEBROWN,
  1049.         GUI_INPUT_COLOR_SALMON,
  1050.         GUI_INPUT_COLOR_SANDYBROWN,
  1051.         GUI_INPUT_COLOR_SEAGREEN,
  1052.         GUI_INPUT_COLOR_SEASHELL,
  1053.         GUI_INPUT_COLOR_SIENNA,
  1054.         GUI_INPUT_COLOR_SILVER,
  1055.         GUI_INPUT_COLOR_SKYBLUE,
  1056.         GUI_INPUT_COLOR_SLATEBLUE,
  1057.         GUI_INPUT_COLOR_SLATEGRAY,
  1058.         GUI_INPUT_COLOR_SLATEGREY,
  1059.         GUI_INPUT_COLOR_SNOW,
  1060.         GUI_INPUT_COLOR_SPRINGGREEN,
  1061.         GUI_INPUT_COLOR_STEELBLUE,
  1062.         GUI_INPUT_COLOR_TAN,
  1063.         GUI_INPUT_COLOR_TEAL,
  1064.         GUI_INPUT_COLOR_THISTLE,
  1065.         GUI_INPUT_COLOR_TOMATO,
  1066.         GUI_INPUT_COLOR_TURQUOISE,
  1067.         GUI_INPUT_COLOR_VIOLET,
  1068.         GUI_INPUT_COLOR_WHEAT,
  1069.         GUI_INPUT_COLOR_WHITE,
  1070.         GUI_INPUT_COLOR_WHITESMOKE,
  1071.         GUI_INPUT_COLOR_YELLOW,
  1072.         GUI_INPUT_COLOR_YELLOWGREEN
  1073.     } gui_input_w3c_color_marker_enum;
  1074.     /* 
  1075.      * http://www.w3.org/TR/css3-color/ 
  1076.      * W3C color marker code (147 colors)
  1077.      * For text background color only define 17 colors
  1078.      */
  1079.     typedef enum
  1080.     {
  1081.         GUI_INPUT_TEXT_BACKGROUND_COLOR_DARKGREY = GUI_INPUT_MARKER_TEXT_BACKGROUND_COLOR_BEGIN,
  1082.         GUI_INPUT_TEXT_BACKGROUND_COLOR_DARKRED,
  1083.         GUI_INPUT_TEXT_BACKGROUND_COLOR_YELLOW,
  1084.         GUI_INPUT_TEXT_BACKGROUND_COLOR_DARKGREEN,
  1085.         GUI_INPUT_TEXT_BACKGROUND_COLOR_DARKCYAN,
  1086.         GUI_INPUT_TEXT_BACKGROUND_COLOR_DARKBLUE,
  1087.         GUI_INPUT_TEXT_BACKGROUND_COLOR_DARKMAGENTA,
  1088.         GUI_INPUT_TEXT_BACKGROUND_COLOR_GRAY,
  1089.         GUI_INPUT_TEXT_BACKGROUND_COLOR_WHITE,
  1090.         GUI_INPUT_TEXT_BACKGROUND_COLOR_RED,
  1091.         GUI_INPUT_TEXT_BACKGROUND_COLOR_LIGHTYELLOW,
  1092.         GUI_INPUT_TEXT_BACKGROUND_COLOR_LIGHTGREEN,
  1093.         GUI_INPUT_TEXT_BACKGROUND_COLOR_LIGHTCYAN,
  1094.         GUI_INPUT_TEXT_BACKGROUND_COLOR_LIGHTBLUE,
  1095.         GUI_INPUT_TEXT_BACKGROUND_COLOR_MAGENTA,
  1096.         GUI_INPUT_TEXT_BACKGROUND_COLOR_BLACK
  1097.     } gui_input_w3c_text_background_color_marker_enum;
  1098.     /*
  1099.      * Default color marker code (122 colors)
  1100.      */
  1101.     typedef enum
  1102.     {
  1103.         GUI_INPUT_BORDER_COLOR_00 = GUI_INPUT_MARKER_BORDER_COLOR_BEGIN,
  1104.         GUI_INPUT_BORDER_COLOR_01,
  1105.         GUI_INPUT_BORDER_COLOR_02,
  1106.         GUI_INPUT_BORDER_COLOR_03,
  1107.         GUI_INPUT_BORDER_COLOR_04,
  1108.         GUI_INPUT_BORDER_COLOR_05,
  1109.         GUI_INPUT_BORDER_COLOR_06,
  1110.         GUI_INPUT_BORDER_COLOR_07,
  1111.         GUI_INPUT_BORDER_COLOR_08,
  1112.         GUI_INPUT_BORDER_COLOR_09,
  1113.         GUI_INPUT_BORDER_COLOR_0A,
  1114.         GUI_INPUT_BORDER_COLOR_0B,
  1115.         GUI_INPUT_BORDER_COLOR_0C,
  1116.         GUI_INPUT_BORDER_COLOR_0D,
  1117.         GUI_INPUT_BORDER_COLOR_0E,
  1118.         GUI_INPUT_BORDER_COLOR_0F,
  1119.         GUI_INPUT_BORDER_COLOR_10,
  1120.         GUI_INPUT_BORDER_COLOR_11,
  1121.         GUI_INPUT_BORDER_COLOR_12,
  1122.         GUI_INPUT_BORDER_COLOR_13,
  1123.         GUI_INPUT_BORDER_COLOR_14,
  1124.         GUI_INPUT_BORDER_COLOR_15,
  1125.         GUI_INPUT_BORDER_COLOR_16,
  1126.         GUI_INPUT_BORDER_COLOR_17,
  1127.         GUI_INPUT_BORDER_COLOR_18,
  1128.         GUI_INPUT_BORDER_COLOR_19,
  1129.         GUI_INPUT_BORDER_COLOR_1A,
  1130.         GUI_INPUT_BORDER_COLOR_1B,
  1131.         GUI_INPUT_BORDER_COLOR_1C,
  1132.         GUI_INPUT_BORDER_COLOR_1D,
  1133.         GUI_INPUT_BORDER_COLOR_1E,
  1134.         GUI_INPUT_BORDER_COLOR_1F,
  1135.         GUI_INPUT_BORDER_COLOR_20,
  1136.         GUI_INPUT_BORDER_COLOR_21,
  1137.         GUI_INPUT_BORDER_COLOR_22,
  1138.         GUI_INPUT_BORDER_COLOR_23,
  1139.         GUI_INPUT_BORDER_COLOR_24,
  1140.         GUI_INPUT_BORDER_COLOR_25,
  1141.         GUI_INPUT_BORDER_COLOR_26,
  1142.         GUI_INPUT_BORDER_COLOR_27,
  1143.         GUI_INPUT_BORDER_COLOR_28,
  1144.         GUI_INPUT_BORDER_COLOR_29,
  1145.         GUI_INPUT_BORDER_COLOR_2A,
  1146.         GUI_INPUT_BORDER_COLOR_2B,
  1147.         GUI_INPUT_BORDER_COLOR_2C,
  1148.         GUI_INPUT_BORDER_COLOR_2D,
  1149.         GUI_INPUT_BORDER_COLOR_2E,
  1150.         GUI_INPUT_BORDER_COLOR_2F,
  1151.         GUI_INPUT_BORDER_COLOR_30,
  1152.         GUI_INPUT_BORDER_COLOR_31,
  1153.         GUI_INPUT_BORDER_COLOR_32,
  1154.         GUI_INPUT_BORDER_COLOR_33,
  1155.         GUI_INPUT_BORDER_COLOR_34,
  1156.         GUI_INPUT_BORDER_COLOR_35,
  1157.         GUI_INPUT_BORDER_COLOR_36,
  1158.         GUI_INPUT_BORDER_COLOR_37,
  1159.         GUI_INPUT_BORDER_COLOR_38,
  1160.         GUI_INPUT_BORDER_COLOR_39,
  1161.         GUI_INPUT_BORDER_COLOR_3A,
  1162.         GUI_INPUT_BORDER_COLOR_3B,
  1163.         GUI_INPUT_BORDER_COLOR_3C,
  1164.         GUI_INPUT_BORDER_COLOR_3D,
  1165.         GUI_INPUT_BORDER_COLOR_3E,
  1166.         GUI_INPUT_BORDER_COLOR_3F,
  1167.         GUI_INPUT_BORDER_COLOR_40,
  1168.         GUI_INPUT_BORDER_COLOR_41,
  1169.         GUI_INPUT_BORDER_COLOR_42,
  1170.         GUI_INPUT_BORDER_COLOR_43,
  1171.         GUI_INPUT_BORDER_COLOR_44,
  1172.         GUI_INPUT_BORDER_COLOR_45,
  1173.         GUI_INPUT_BORDER_COLOR_46,
  1174.         GUI_INPUT_BORDER_COLOR_47,
  1175.         GUI_INPUT_BORDER_COLOR_48,
  1176.         GUI_INPUT_BORDER_COLOR_49,
  1177.         GUI_INPUT_BORDER_COLOR_4A,
  1178.         GUI_INPUT_BORDER_COLOR_4B,
  1179.         GUI_INPUT_BORDER_COLOR_4C,
  1180.         GUI_INPUT_BORDER_COLOR_4D,
  1181.         GUI_INPUT_BORDER_COLOR_4E,
  1182.         GUI_INPUT_BORDER_COLOR_4F,
  1183.         GUI_INPUT_BORDER_COLOR_50,
  1184.         GUI_INPUT_BORDER_COLOR_51,
  1185.         GUI_INPUT_BORDER_COLOR_52,
  1186.         GUI_INPUT_BORDER_COLOR_53,
  1187.         GUI_INPUT_BORDER_COLOR_54,
  1188.         GUI_INPUT_BORDER_COLOR_55,
  1189.         GUI_INPUT_BORDER_COLOR_56,
  1190.         GUI_INPUT_BORDER_COLOR_57,
  1191.         GUI_INPUT_BORDER_COLOR_58,
  1192.         GUI_INPUT_BORDER_COLOR_59,
  1193.         GUI_INPUT_BORDER_COLOR_5A,
  1194.         GUI_INPUT_BORDER_COLOR_5B,
  1195.         GUI_INPUT_BORDER_COLOR_5C,
  1196.         GUI_INPUT_BORDER_COLOR_5D,
  1197.         GUI_INPUT_BORDER_COLOR_5E,
  1198.         GUI_INPUT_BORDER_COLOR_5F,
  1199.         GUI_INPUT_BORDER_COLOR_60,
  1200.         GUI_INPUT_BORDER_COLOR_61,
  1201.         GUI_INPUT_BORDER_COLOR_62,
  1202.         GUI_INPUT_BORDER_COLOR_63,
  1203.         GUI_INPUT_BORDER_COLOR_64,
  1204.         GUI_INPUT_BORDER_COLOR_65,
  1205.         GUI_INPUT_BORDER_COLOR_66,
  1206.         GUI_INPUT_BORDER_COLOR_67,
  1207.         GUI_INPUT_BORDER_COLOR_68,
  1208.         GUI_INPUT_BORDER_COLOR_69,
  1209.         GUI_INPUT_BORDER_COLOR_6A,
  1210.         GUI_INPUT_BORDER_COLOR_6B,
  1211.         GUI_INPUT_BORDER_COLOR_6C,
  1212.         GUI_INPUT_BORDER_COLOR_6D,
  1213.         GUI_INPUT_BORDER_COLOR_6E,
  1214.         GUI_INPUT_BORDER_COLOR_6F,
  1215.         GUI_INPUT_BORDER_COLOR_70,
  1216.         GUI_INPUT_BORDER_COLOR_71,
  1217.         GUI_INPUT_BORDER_COLOR_72,
  1218.         GUI_INPUT_BORDER_COLOR_73,
  1219.         GUI_INPUT_BORDER_COLOR_74,
  1220.         GUI_INPUT_BORDER_COLOR_75,
  1221.         GUI_INPUT_BORDER_COLOR_76,
  1222.         GUI_INPUT_BORDER_COLOR_77,
  1223.         GUI_INPUT_BORDER_COLOR_78,
  1224.         GUI_INPUT_BORDER_COLOR_79
  1225.     } gui_input_border_color_marker_enum;
  1226.     /* 
  1227.      * http://www.w3.org/TR/css3-color/ 
  1228.      * W3C color marker code (147 colors)
  1229.      */
  1230.     typedef enum
  1231.     {
  1232.         GUI_INPUT_BORDER_COLOR_ALICEBLUE = GUI_INPUT_MARKER_W3C_BORDER_COLOR_BEGIN,
  1233.         GUI_INPUT_BORDER_COLOR_ANTIQUEWHITE,
  1234.         GUI_INPUT_BORDER_COLOR_AQUA,
  1235.         GUI_INPUT_BORDER_COLOR_AQUAMARINE,
  1236.         GUI_INPUT_BORDER_COLOR_AZURE,
  1237.         GUI_INPUT_BORDER_COLOR_BEIGE,
  1238.         GUI_INPUT_BORDER_COLOR_BISQUE,
  1239.         GUI_INPUT_BORDER_COLOR_BLACK,
  1240.         GUI_INPUT_BORDER_COLOR_BLANCHEDALMOND,
  1241.         GUI_INPUT_BORDER_COLOR_BLUE,
  1242.         GUI_INPUT_BORDER_COLOR_BLUEVIOLET,
  1243.         GUI_INPUT_BORDER_COLOR_BROWN,
  1244.         GUI_INPUT_BORDER_COLOR_BURLYWOOD,
  1245.         GUI_INPUT_BORDER_COLOR_CADETBLUE,
  1246.         GUI_INPUT_BORDER_COLOR_CHARTREUSE,
  1247.         GUI_INPUT_BORDER_COLOR_CHOCOLATE,
  1248.         GUI_INPUT_BORDER_COLOR_CORAL,
  1249.         GUI_INPUT_BORDER_COLOR_CORNFLOWERBLUE,
  1250.         GUI_INPUT_BORDER_COLOR_CORNSILK,
  1251.         GUI_INPUT_BORDER_COLOR_CRIMSON,
  1252.         GUI_INPUT_BORDER_COLOR_CYAN,
  1253.         GUI_INPUT_BORDER_COLOR_DARKBLUE,
  1254.         GUI_INPUT_BORDER_COLOR_DARKCYAN,
  1255.         GUI_INPUT_BORDER_COLOR_DARKGOLDENROD,
  1256.         GUI_INPUT_BORDER_COLOR_DARKGRAY,
  1257.         GUI_INPUT_BORDER_COLOR_DARKGREEN,
  1258.         GUI_INPUT_BORDER_COLOR_DARKGREY,
  1259.         GUI_INPUT_BORDER_COLOR_DARKKHAKI,
  1260.         GUI_INPUT_BORDER_COLOR_DARKMAGENTA,
  1261.         GUI_INPUT_BORDER_COLOR_DARKOLIVEGREEN,
  1262.         GUI_INPUT_BORDER_COLOR_DARKORANGE,
  1263.         GUI_INPUT_BORDER_COLOR_DARKORCHID,
  1264.         GUI_INPUT_BORDER_COLOR_DARKRED,
  1265.         GUI_INPUT_BORDER_COLOR_DARKSALMON,
  1266.         GUI_INPUT_BORDER_COLOR_DARKSEAGREEN,
  1267.         GUI_INPUT_BORDER_COLOR_DARKSLATEBLUE,
  1268.         GUI_INPUT_BORDER_COLOR_DARKSLATEGRAY,
  1269.         GUI_INPUT_BORDER_COLOR_DARKSLATEGREY,
  1270.         GUI_INPUT_BORDER_COLOR_DARKTURQUOISE,
  1271.         GUI_INPUT_BORDER_COLOR_DARKVIOLET,
  1272.         GUI_INPUT_BORDER_COLOR_DEEPPINK,
  1273.         GUI_INPUT_BORDER_COLOR_DEEPSKYBLUE,
  1274.         GUI_INPUT_BORDER_COLOR_DIMGRAY,
  1275.         GUI_INPUT_BORDER_COLOR_DIMGREY,
  1276.         GUI_INPUT_BORDER_COLOR_DODGERBLUE,
  1277.         GUI_INPUT_BORDER_COLOR_FIREBRICK,
  1278.         GUI_INPUT_BORDER_COLOR_FLORALWHITE,
  1279.         GUI_INPUT_BORDER_COLOR_FORESTGREEN,
  1280.         GUI_INPUT_BORDER_COLOR_FUCHSIA,
  1281.         GUI_INPUT_BORDER_COLOR_GAINSBORO,
  1282.         GUI_INPUT_BORDER_COLOR_GHOSTWHITE,
  1283.         GUI_INPUT_BORDER_COLOR_GOLD,
  1284.         GUI_INPUT_BORDER_COLOR_GOLDENROD,
  1285.         GUI_INPUT_BORDER_COLOR_GRAY,
  1286.         GUI_INPUT_BORDER_COLOR_GREY,
  1287.         GUI_INPUT_BORDER_COLOR_GREEN,
  1288.         GUI_INPUT_BORDER_COLOR_GREENYELLOW,
  1289.         GUI_INPUT_BORDER_COLOR_HONEYDEW,
  1290.         GUI_INPUT_BORDER_COLOR_HOTPINK,
  1291.         GUI_INPUT_BORDER_COLOR_INDIANRED,
  1292.         GUI_INPUT_BORDER_COLOR_INDIGO,
  1293.         GUI_INPUT_BORDER_COLOR_IVORY,
  1294.         GUI_INPUT_BORDER_COLOR_KHAKI,
  1295.         GUI_INPUT_BORDER_COLOR_LAVENDER,
  1296.         GUI_INPUT_BORDER_COLOR_LAVENDERBLUSH,
  1297.         GUI_INPUT_BORDER_COLOR_LAWNGREEN,
  1298.         GUI_INPUT_BORDER_COLOR_LEMONCHIFFON,
  1299.         GUI_INPUT_BORDER_COLOR_LIGHTBLUE,
  1300.         GUI_INPUT_BORDER_COLOR_LIGHTCORAL,
  1301.         GUI_INPUT_BORDER_COLOR_LIGHTCYAN,
  1302.         GUI_INPUT_BORDER_COLOR_LIGHTGOLDENRODYELLOW,
  1303.         GUI_INPUT_BORDER_COLOR_LIGHTGRAY,
  1304.         GUI_INPUT_BORDER_COLOR_LIGHTGREEN,
  1305.         GUI_INPUT_BORDER_COLOR_LIGHTGREY,
  1306.         GUI_INPUT_BORDER_COLOR_LIGHTPINK,
  1307.         GUI_INPUT_BORDER_COLOR_LIGHTSALMON,
  1308.         GUI_INPUT_BORDER_COLOR_LIGHTSEAGREEN,
  1309.         GUI_INPUT_BORDER_COLOR_LIGHTSKYBLUE,
  1310.         GUI_INPUT_BORDER_COLOR_LIGHTSLATEGRAY,
  1311.         GUI_INPUT_BORDER_COLOR_LIGHTSLATEGREY,
  1312.         GUI_INPUT_BORDER_COLOR_LIGHTSTEELBLUE,
  1313.         GUI_INPUT_BORDER_COLOR_LIGHTYELLOW,
  1314.         GUI_INPUT_BORDER_COLOR_LIME,
  1315.         GUI_INPUT_BORDER_COLOR_LIMEGREEN,
  1316.         GUI_INPUT_BORDER_COLOR_LINEN,
  1317.         GUI_INPUT_BORDER_COLOR_MAGENTA,
  1318.         GUI_INPUT_BORDER_COLOR_MAROON,
  1319.         GUI_INPUT_BORDER_COLOR_MEDIUMAQUAMARINE,
  1320.         GUI_INPUT_BORDER_COLOR_MEDIUMBLUE,
  1321.         GUI_INPUT_BORDER_COLOR_MEDIUMORCHID,
  1322.         GUI_INPUT_BORDER_COLOR_MEDIUMPURPLE,
  1323.         GUI_INPUT_BORDER_COLOR_MEDIUMSEAGREEN,
  1324.         GUI_INPUT_BORDER_COLOR_MEDIUMSLATEBLUE,
  1325.         GUI_INPUT_BORDER_COLOR_MEDIUMSPRINGGREEN,
  1326.         GUI_INPUT_BORDER_COLOR_MEDIUMTURQUOISE,
  1327.         GUI_INPUT_BORDER_COLOR_MEDIUMVIOLETRED,
  1328.         GUI_INPUT_BORDER_COLOR_MIDNIGHTBLUE,
  1329.         GUI_INPUT_BORDER_COLOR_MINTCREAM,
  1330.         GUI_INPUT_BORDER_COLOR_MISTYROSE,
  1331.         GUI_INPUT_BORDER_COLOR_MOCCASIN,
  1332.         GUI_INPUT_BORDER_COLOR_NAVAJOWHITE,
  1333.         GUI_INPUT_BORDER_COLOR_NAVY,
  1334.         GUI_INPUT_BORDER_COLOR_OLDLACE,
  1335.         GUI_INPUT_BORDER_COLOR_OLIVE,
  1336.         GUI_INPUT_BORDER_COLOR_OLIVEDRAB,
  1337.         GUI_INPUT_BORDER_COLOR_ORANGE,
  1338.         GUI_INPUT_BORDER_COLOR_ORANGERED,
  1339.         GUI_INPUT_BORDER_COLOR_ORCHID,
  1340.         GUI_INPUT_BORDER_COLOR_PALEGOLDENROD,
  1341.         GUI_INPUT_BORDER_COLOR_PALEGREEN,
  1342.         GUI_INPUT_BORDER_COLOR_PALETURQUOISE,
  1343.         GUI_INPUT_BORDER_COLOR_PALEVIOLETRED,
  1344.         GUI_INPUT_BORDER_COLOR_PAPAYAWHIP,
  1345.         GUI_INPUT_BORDER_COLOR_PEACHPUFF,
  1346.         GUI_INPUT_BORDER_COLOR_PERU,
  1347.         GUI_INPUT_BORDER_COLOR_PINK,
  1348.         GUI_INPUT_BORDER_COLOR_PLUM,
  1349.         GUI_INPUT_BORDER_COLOR_POWDERBLUE,
  1350.         GUI_INPUT_BORDER_COLOR_PURPLE,
  1351.         GUI_INPUT_BORDER_COLOR_RED,
  1352.         GUI_INPUT_BORDER_COLOR_ROSYBROWN,
  1353.         GUI_INPUT_BORDER_COLOR_ROYALBLUE,
  1354.         GUI_INPUT_BORDER_COLOR_SADDLEBROWN,
  1355.         GUI_INPUT_BORDER_COLOR_SALMON,
  1356.         GUI_INPUT_BORDER_COLOR_SANDYBROWN,
  1357.         GUI_INPUT_BORDER_COLOR_SEAGREEN,
  1358.         GUI_INPUT_BORDER_COLOR_SEASHELL,
  1359.         GUI_INPUT_BORDER_COLOR_SIENNA,
  1360.         GUI_INPUT_BORDER_COLOR_SILVER,
  1361.         GUI_INPUT_BORDER_COLOR_SKYBLUE,
  1362.         GUI_INPUT_BORDER_COLOR_SLATEBLUE,
  1363.         GUI_INPUT_BORDER_COLOR_SLATEGRAY,
  1364.         GUI_INPUT_BORDER_COLOR_SLATEGREY,
  1365.         GUI_INPUT_BORDER_COLOR_SNOW,
  1366.         GUI_INPUT_BORDER_COLOR_SPRINGGREEN,
  1367.         GUI_INPUT_BORDER_COLOR_STEELBLUE,
  1368.         GUI_INPUT_BORDER_COLOR_TAN,
  1369.         GUI_INPUT_BORDER_COLOR_TEAL,
  1370.         GUI_INPUT_BORDER_COLOR_THISTLE,
  1371.         GUI_INPUT_BORDER_COLOR_TOMATO,
  1372.         GUI_INPUT_BORDER_COLOR_TURQUOISE,
  1373.         GUI_INPUT_BORDER_COLOR_VIOLET,
  1374.         GUI_INPUT_BORDER_COLOR_WHEAT,
  1375.         GUI_INPUT_BORDER_COLOR_WHITE,
  1376.         GUI_INPUT_BORDER_COLOR_WHITESMOKE,
  1377.         GUI_INPUT_BORDER_COLOR_YELLOW,
  1378.         GUI_INPUT_BORDER_COLOR_YELLOWGREEN
  1379.     } gui_input_w3c_border_color_marker_enum;
  1380.     /* UI General input box structure            */
  1381.     extern UI_dialer_input_box_theme *current_dialer_input_box_theme;
  1382. #define UI_DIALER_INPUT_BOX_DISABLE_BACKGROUND        0x00000001
  1383. #define UI_DIALER_INPUT_BOX_DISABLE_DRAW           0x00000002
  1384. #define UI_DIALER_INPUT_BOX_DISABLE_CURSOR_DRAW       0x00000004
  1385. #define UI_DIALER_INPUT_BOX_USE_ENCODING_BASED_LENGTH 0x00000008
  1386. #define UI_DIALER_INPUT_BOX_STATE_MULTITAP            0x00000010
  1387. #define UI_DIALER_INPUT_BOX_OVERWRITE_MODE            0x00000020
  1388. #define UI_DIALER_INPUT_BOX_MASK_CHARACTERS           0x00000040
  1389. #define UI_DIALER_INPUT_BOX_SHOW_BLOCK_CURSOR         0x00000080
  1390. #define UI_DIALER_INPUT_BOX_CHARACTER_QUEUE           0x00000100
  1391. #define UI_DIALER_INPUT_BOX_ONE_LESS_CHARACTER        0x00000200
  1392. #define UI_DIALER_INPUT_BOX_PLUS_CHARACTER_HANDLING      0x00000400
  1393. #define UI_DIALER_INPUT_BOX_SHOW_BORDER               0x00000800
  1394.     typedef struct _dialer_input_box
  1395.     {
  1396.         S32 x, y;
  1397.         S32 width, height;
  1398.         UI_filled_area *background_filler;
  1399.         U32 flags;
  1400.         UI_buffer_type text;
  1401.         S32 text_length;
  1402.         S32 allocated_length;
  1403.         S32 available_length;
  1404.         S32 n_lines;
  1405.         color text_color;
  1406.         color selection_text_color;
  1407.         color selection_color;
  1408.         color cursor_color;
  1409.         S8 text_gap;
  1410.         UI_font_type text_font;
  1411.         U8 mask_character;
  1412.         UI_buffer_type current_text_p;
  1413.         UI_buffer_type last_position_p;
  1414.         S32 UCS2_count;
  1415.         S32 cursor_x, cursor_y;
  1416.         void (*overflow_callback) (void);
  1417.         void (*change_callback) (void);
  1418.         void (*validation_callback) (UI_buffer_type text, UI_buffer_type cursor_p, S32 text_length);
  1419.     } dialer_input_box;
  1420.     /* MTK Elvis for color dialling font */
  1421.     extern color gui_get_dialing_font_color(UI_character_type c);
  1422.     /* MTK end */
  1423.     extern void gui_set_dialer_input_box_current_theme(dialer_input_box *b);
  1424.     extern void gui_set_dialer_input_box_theme(dialer_input_box *b, UI_dialer_input_box_theme *t);
  1425.     extern void gui_create_dialer_input_box(dialer_input_box *b, S32 x, S32 y, S32 width, S32 height, S32 length);
  1426.     extern void gui_create_dialer_input_box_use_buffer(
  1427.                     dialer_input_box *b,
  1428.                     S32 x,
  1429.                     S32 y,
  1430.                     S32 width,
  1431.                     S32 height,
  1432.                     UI_string_type buffer,
  1433.                     S32 length);
  1434.     extern void gui_create_dialer_input_box_set_buffer(
  1435.                     dialer_input_box *b,
  1436.                     S32 x,
  1437.                     S32 y,
  1438.                     S32 width,
  1439.                     S32 height,
  1440.                     UI_string_type buffer,
  1441.                     S32 length,
  1442.                     S32 text_length,
  1443.                     S32 edit_position);
  1444.     extern void gui_dialer_input_box_show_cursor(dialer_input_box *b, S32 x, S32 y, S32 height);
  1445.     extern void gui_show_dialer_input_box(dialer_input_box *b);
  1446.     extern void gui_show_dialer_input_box_ext(dialer_input_box *b, S32 move_to_x, S32 move_to_y);
  1447.     extern void gui_destroy_dialer_input_box(dialer_input_box *b);
  1448.     extern void gui_dialer_input_box_delete_character(dialer_input_box *b);
  1449.     extern void gui_dialer_input_box_insert_character(dialer_input_box *b, UI_character_type c);
  1450.     extern void gui_dialer_input_box_insert_multitap_character(dialer_input_box *b, UI_character_type c);
  1451.     extern void gui_dialer_input_box_confirm_multitap_character(dialer_input_box *b);
  1452.     extern void gui_dialer_input_box_previous(dialer_input_box *b);
  1453.     extern void gui_dialer_input_box_next(dialer_input_box *b);
  1454.     extern void gui_resize_dialer_input_box(dialer_input_box *b, S32 width, S32 height);
  1455.     extern void gui_move_dialer_input_box(dialer_input_box *b, S32 x, S32 y);
  1456.     extern void gui_dialer_input_box_delete_all(dialer_input_box *b);
  1457.     extern void gui_dialer_input_box_delete_current_character(dialer_input_box *b);
  1458.     extern void gui_dialer_input_box_toggle_insert_mode(dialer_input_box *b);
  1459.     extern void gui_dialer_input_box_goto_first_character(dialer_input_box *b);
  1460.     extern void gui_dialer_input_box_goto_last_character(dialer_input_box *b);
  1461.     extern void gui_dialer_input_box_clear(dialer_input_box *b);
  1462.     extern U8 gui_dialer_input_box_test_overflow(dialer_input_box *b);
  1463.     extern U8 gui_dialer_input_box_test_first_position(dialer_input_box *b);
  1464.     extern U8 gui_dialer_input_box_test_last_position(dialer_input_box *b);
  1465.     extern U8 gui_dialer_input_box_test_last_position_overflow(dialer_input_box *b);
  1466.     extern S32 gui_dialer_input_box_get_text_length(dialer_input_box *b);
  1467.     extern U8 gui_dialer_input_box_test_last_character_position(dialer_input_box *b);
  1468.     extern void UI_dummy_validation_function(UI_buffer_type text, UI_buffer_type cursor_p, S32 text_length);
  1469.     extern void UI_editor_play_tone_cannot_change(void);
  1470.     extern void UI_editor_play_tone_cannot_navigate(void);
  1471.     extern void UI_editor_play_tone_cannot_insert(void);
  1472.     extern void UI_editor_play_tone_invalid_data(void);
  1473.     extern void UI_editor_disable_tones(void);
  1474.     extern void UI_editor_enable_tones(void);
  1475.     extern void UI_inputbox_blink_cursor(void);
  1476.     extern void UI_inputbox_show_cursor(S32 x1, S32 y1, S32 x2, S32 y2, color c);
  1477.     extern void gui_multi_line_input_box_change(multi_line_input_box *b);
  1478. #if defined(__MMI_WCSS_INPUT_FORMAT_SUPPORT__)
  1479.     extern S8 gui_parse_WCSS_string(U8 *s1, U8 *s2, U8 *s3, S16 str_len, U8 reserve_data);
  1480.     extern U8 gui_WCSS_check_next_multitap_input(multi_line_input_box *b);
  1481.     extern S32 get_category_115_format_buffer_length(U8 *s1, S32 buffer_size);
  1482. #endif /* defined(__MMI_WCSS_INPUT_FORMAT_SUPPORT__) */ 
  1483.     /* Gurinder - 5/5/2004 Inline Multiline Box History Control */
  1484.     extern void gui_create_multi_line_input_box_set_buffer_no_text_reset(
  1485.                     multi_line_input_box *,
  1486.                     S32,
  1487.                     S32,
  1488.                     S32,
  1489.                     S32,
  1490.                     UI_string_type,
  1491.                     S32,
  1492.                     S32,
  1493.                     S32);
  1494. #ifdef __MMI_TOUCH_DIAL_SCREEN__
  1495.     typedef enum
  1496.     {
  1497.         MMI_DIALING_KEY_START = 0,
  1498.         MMI_DIALING_KEY_STAR = 10,
  1499.         MMI_DIALING_KEY_ZERO,
  1500.         MMI_DIALING_KEY_HASH,
  1501.     #if defined (__MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__)
  1502.         MMI_DIALING_KEY_FUNC,
  1503.         MMI_DIALING_KEY_PHB = MMI_DIALING_KEY_FUNC,
  1504.         MMI_DIALING_KEY_CALL,
  1505. MMI_DIALING_KEY_IPCALL,        //KP Jerry add on 2006-11-12
  1506.     #endif /* defined (__MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__) */ 
  1507.         MMI_DIALING_KEY_END
  1508.     } gui_dialing_key;
  1509.     typedef struct _dialing_keypad_struct
  1510.     {
  1511.         S32 keypad_x, keypad_y;
  1512.         S32 keypad_width, keypad_height;
  1513.         S32 key_width, key_height;
  1514.         S32 horizontal_gap, vertical_gap;
  1515.         S32 selected_key_x, selected_key_y;
  1516.         S32 n_rows, n_column;
  1517.     #ifdef __MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__
  1518.         S32 keypad_func_x, keypad_func_y;
  1519.         S32 func_key_width, func_key_height;
  1520.         S32 func_horizontal_gap, func_vertical_gap;
  1521.         S32 func_n_rows, func_n_column;
  1522.     #endif /* __MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__ */ 
  1523.         S32 key_type;   /* selected key index */
  1524.     #ifndef __GDI_MEMORY_PROFILE_2__
  1525.         gdi_image_cache_bmp_struct selected_key_bitmap;
  1526.     #endif 
  1527.     } dialing_keypad_struct;
  1528.     extern void gui_setup_dialing_keypad(dialing_keypad_struct *dialing_keypad);
  1529.     extern void gui_dialing_screen_translate_pen_position(
  1530.                     dialing_keypad_struct *dialing_keypad,
  1531.                     S32 x,
  1532.                     S32 y,
  1533.                     S32 *item_index);
  1534.     extern BOOL gui_dialing_screen_translate_pen_event(
  1535.                     dialing_keypad_struct *dialing_keypad,
  1536.                     S32 x,
  1537.                     S32 y,
  1538.                     mmi_pen_event_type_enum pen_event,
  1539.                     gui_dialing_key_pen_enum *menu_event,
  1540.                     gui_pen_event_param_struct *dialing_key_param);
  1541.     extern void gui_dialing_key_unselect(dialing_keypad_struct *dialing_keypad);
  1542.     extern void gui_dialing_key_select(dialing_keypad_struct *dialing_keypad, S32 item_index);
  1543.     /* 110105 dialing deflect Calvin Start */
  1544. #ifdef __MMI_TOUCH_DIAL_SCREEN_WITH_FUNCTION__
  1545.     extern void gui_show_dialing_key(gui_dialing_key key, BOOL enableFlag);
  1546. #endif 
  1547.     /* 110105 dialing deflect Calvin End */
  1548. #endif /* __MMI_TOUCH_DIAL_SCREEN__ */ 
  1549. #ifdef __cplusplus
  1550. }
  1551. #endif 
  1552. #endif /* __GUI_INPUTS_H__ */