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

MTK

开发平台:

C/C++

  1. /*******************************************************************************
  2. *  Modification Notice:
  3. *  --------------------------
  4. *  This software is modified by MediaTek Inc. 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.  * Filename:
  37.  * ---------
  38.  *   wgui_fixed_menu_items.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   Maui_Software
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  fixed menu items related funtions
  47.  *
  48.  * Author:
  49.  * -------
  50.  * -------
  51.  *
  52.  *------------------------------------------------------------------------------
  53.  * $Log$
  54.  *
  55.  * removed!
  56.  * removed!
  57.  * 
  58.  *
  59.  * removed!
  60.  * removed!
  61.  * 
  62.  *
  63.  * removed!
  64.  * removed!
  65.  * 
  66.  *
  67.  * removed!
  68.  * removed!
  69.  * 
  70.  *
  71.  * removed!
  72.  * removed!
  73.  * 
  74.  *
  75.  */
  76. /**********************************************************************************
  77.    Filename:      wgui_fixed_menuitems.h
  78.    Author:        manju
  79.    Date Created:  August-07-2002
  80.    Contains:      PixTel UI wrapper routines header for Fixed Menuitems
  81. **********************************************************************************/
  82. #ifndef __WGUI_FIXED_MENUITEMS_H__
  83. #define __WGUI_FIXED_MENUITEMS_H__
  84. #include "wgui.h"
  85. #include "wgui_fixed_menus.h"
  86. #include "gui_themes.h"
  87. #ifdef __cplusplus
  88. extern "C"
  89. {
  90. #endif /* __cplusplus */ 
  91.     extern void (*wgui_text_menuitem_reset_scrolling) (void);
  92.     extern void (*wgui_text_menuitem_restart_scrolling) (void);
  93.     extern void *MMI_fixed_menuitem_pointers[];
  94.     /* Fixed text item wrappers            */
  95. #define MAX_FIXED_TEXT_MENU_ITEMS            100        /* depends upon phone book entries */
  96.     extern fixed_text_menuitem MMI_fixed_text_menuitem;
  97.     extern fixed_text_menuitem_type *MMI_fixed_text_menuitems;
  98.     extern S32 *fixed_text_menu_n_items;
  99.     extern U8 get_menu_item_height(void);
  100.     extern void fixed_text_menuitem_apply_current_theme(void);
  101.     extern void fixed_text_menuitem_apply_theme(UI_fixed_text_menuitem_theme *t);
  102.     extern void create_fixed_text_menuitems(void);
  103.     extern void resize_fixed_text_menuitems(S32 width, S32 height);
  104.     extern void associate_fixed_text_list(void);
  105.     extern void associate_fixed_text_matrix(void);
  106.     extern void add_fixed_text_item(UI_string_type s);
  107.     extern void add_location_fixed_text_item(S32 index, UI_string_type s);
  108.     extern void remove_fixed_text_item(S32 index);
  109.     extern void add_fixed_text_items(S32 n_items, UI_string_type *s);
  110.     extern void associate_fixed_multirow_list_list(S32);
  111.     extern void set_single_row_iconlist_fixed_list(void);
  112.     /* For Draw Manager  */
  113.     extern S32 fixed_matrix_auto_disable_scrollbar(void);
  114.     /* Fixed icontext item wrappers        */
  115.     /* MTK added by JL, for PHB already use the dynamic list. So i reduce the items list. */
  116. #define MAX_FIXED_ICONTEXT_MENU_ITEMS              90/* 100 */  /* <== For SIM=200, PHONE=100 */
  117.     extern fixed_icontext_menuitem MMI_fixed_icontext_menuitem;
  118.     extern fixed_icontext_menuitem_type *MMI_fixed_icontext_menuitems;
  119.     extern S32 *fixed_icontext_menu_n_items;
  120.     extern void fixed_icontext_menuitem_apply_current_theme(void);
  121.     extern void fixed_icontext_menuitem_apply_theme(UI_fixed_icontext_menuitem_theme *t);
  122.     extern void create_fixed_icontext_menuitems(void);
  123.     extern void resize_fixed_icontext_menuitems(S32 width, S32 height);
  124.     extern void center_fixed_icontext_positions(U8 tx, U8 ty, U8 ix, U8 iy);
  125.     extern void set_fixed_icontext_positions(S32 tx, S32 ty, S32 ix, S32 iy);
  126.     extern void associate_fixed_icontext_list(void);
  127.     extern void associate_fixed_icontext_matrix(void);
  128.     extern void add_fixed_icontext_item(UI_string_type s, PU8 img);
  129.     extern void change_fixed_icontext_item(S32 index, UI_string_type s, PU8 img);
  130.     extern void add_location_fixed_icontext_item(S32 index, UI_string_type s, PU8 img);
  131.     extern void remove_fixed_icontext_item(S32 index);
  132.     extern void add_fixed_icontext_items(S32 n_items, UI_string_type *s, PU8 *img);
  133.     /* fixed icontext list wrappers        */
  134. #define MAX_FIXED_ICONTEXT_LIST_MENU_ITEMS      72
  135.     extern fixed_icontext_list_menuitem MMI_fixed_icontext_list_menuitem;
  136.     extern fixed_icontext_list_menuitem_type *MMI_fixed_icontext_list_menuitems;
  137.     extern S32 *fixed_icontext_list_menu_n_items;
  138.     extern void fixed_icontext_list_menuitem_apply_current_theme(void);
  139.     extern void fixed_icontext_list_menuitem_apply_theme(UI_fixed_icontext_list_menuitem_theme *t);
  140.     extern void create_fixed_icontext_list_menuitems(S32 n_text_columns, S32 n_icon_columns);
  141.     void set_fixed_icontext_list_menuitems_post_display(void (*post_display_function)
  142.                                                         (void *item, void *common_item_data, S32 x, S32 y));
  143.     extern void resize_fixed_icontext_list_menuitems(S32 width, S32 height);
  144.     extern void set_fixed_icontext_list_text_coordinates(S32 c, S32 x, S32 y, S32 width, S32 height);
  145.     extern void set_fixed_icontext_list_icon_coordinates(S32 c, S32 x, S32 y, S32 width, S32 height);
  146.     extern void associate_fixed_icontext_list_list(void);
  147.     extern void associate_fixed_icontext_list_matrix(void);
  148.     extern void add_fixed_icontext_list_item_text(S32 index, S32 c, UI_string_type s);
  149.     extern void add_fixed_icontext_list_item_icon(S32 index, S32 c, PU8 img);
  150.     extern void fixed_icontext_list_item_insert(S32 index);
  151.     extern void remove_fixed_icontext_list_item(S32 index);
  152.     /* PMT NEERAJ START 20050712 */
  153. #ifdef __MMI_UI_HINTS_IN_MENUITEM__
  154.     extern void wgui_enable_hints_in_icontext_menuitem(void);
  155.     extern void wgui_enable_hint_highlight_in_icontext_menuitem(void);
  156.     extern void wgui_show_icon_only_highlight_in_icontext_menuitem(void);
  157. #endif /* __MMI_UI_HINTS_IN_MENUITEM__ */ 
  158.     /* PMT NEERAJ END 20050712 */
  159.     /* Fixed twostate item wrappers        */
  160.     /*  Hard limit of WAP option group items */
  161. #define MAX_FIXED_TWOSTATE_MENU_ITEMS        45 /* 45 */
  162.     extern fixed_twostate_menuitem MMI_fixed_twostate_menuitem;
  163.     extern fixed_twostate_menuitem_type *MMI_fixed_twostate_menuitems;
  164.     extern S32 *fixed_twostate_menu_n_items;
  165.     extern void fixed_twostate_menuitem_apply_current_theme(void);
  166.     extern void fixed_twostate_menuitem_apply_theme(UI_fixed_twostate_menuitem_theme *t);
  167.     extern void create_fixed_twostate_menuitems(PU8 ON_icon, PU8 OFF_icon);
  168.     extern void resize_fixed_twostate_menuitems(S32 width, S32 height);
  169.     extern void associate_fixed_twostate_list(void);
  170.     extern void associate_fixed_twostate_matrix(void);
  171.     extern void center_fixed_twostate_positions(U8 tx, U8 ty, U8 ix, U8 iy);
  172.     extern void set_fixed_twostate_positions(S32 tx, S32 ty, S32 ix, S32 iy);
  173.     extern void set_fixed_twostate_icons(PU8 ON_icon, PU8 OFF_icon);
  174.     extern void add_fixed_twostate_item(UI_string_type s);
  175.     extern void add_location_fixed_twostate_item(S32 index, UI_string_type s);
  176.     extern void remove_fixed_twostate_item(S32 index);
  177.     extern void add_fixed_twostate_items(S32 n_items, UI_string_type *s);
  178.     extern void select_fixed_twostate_item(S32 index);
  179.     extern void unselect_fixed_twostate_item(S32 index);
  180.     extern void toggle_fixed_twostate_item(S32 index);
  181.     extern U8 get_fixed_twostate_item_state(S32 index);
  182.     extern void add_fixed_icontext_items_200(S32 n_items, UI_string_type *s, PU8 *img);
  183.     extern void remove_all_fixed_icontext_item(void);
  184.     extern UI_string_type get_item_text(S32 index);
  185.     extern void resize_fixed_icontext_menuitems_to_list_width(void);
  186.     extern void resize_fixed_text_menuitems_to_list_width(void);
  187.     extern void resize_fixed_icontext_list_menuitems_to_list_width(void);
  188.     extern void resize_fixed_twostate_menuitems_to_list_width(void);
  189.     /* PMT VIKAS START 20050630 */
  190. #ifdef __MMI_UI_TRANSPARENT_EFFECT__
  191.     extern void disable_fixed_icontext_menuitem_transparent_effect(void);
  192.     extern void enable_fixed_icontext_menuitem_transparent_effect(void);
  193. #endif /* __MMI_UI_TRANSPARENT_EFFECT__ */ 
  194.     /* PMT VIKAS END 20050630 */
  195.     typedef struct _integrated_menuitem
  196.     {
  197.         union
  198.         {
  199.             fixed_twostate_menuitem_type fixedtwoStatetype[MAX_FIXED_TWOSTATE_MENU_ITEMS];
  200.             fixed_icontext_list_menuitem_type fixedIconListtype[MAX_FIXED_ICONTEXT_LIST_MENU_ITEMS];
  201.             fixed_icontext_menuitem_type fixedIconTexttype[MAX_FIXED_ICONTEXT_MENU_ITEMS];
  202.             fixed_text_menuitem_type fixedTexttype[MAX_FIXED_TEXT_MENU_ITEMS];
  203.         } menuUnion;
  204.     } integrated_menuitem;
  205. #ifdef __MMI_UI_TWO_LINE_MENUITEM_STYLES__
  206. #define UI_TWO_LINE_MENUITEM_NO_THUMBNAIL          0x00
  207. #define UI_TWO_LINE_MENUITEM_LEFT_ALIGN_THUMBNAIL  0x01
  208. #define UI_TWO_LINE_MENUITEM_RIGHT_ALIGN_THUMBNAIL    0x02
  209. #define UI_TWO_LINE_MENUITEM_THUMBNAIL_IS_FILE     0x04
  210. #define UI_TWO_LINE_MENUITEM_THUMBNAIL_IS_ID          0x08
  211. #define UI_TWO_LINE_TOGGLE_THUMBNAIL_DIRECTION_MASK   0x03
  212.     typedef union _thumbnail_image
  213.     {
  214.         S8 *path;
  215.         U16 id;
  216.     } wgui_thumbnail_image_union;
  217.     typedef S32(*wgui_two_line_menuitem_get_default_callback) (S32 menuitem_index);
  218.     typedef pBOOL(*wgui_two_line_get_level_select_data_callback) (S32 menuitem_index, S32 item_index);
  219.     typedef pBOOL(*wgui_two_line_get_horizontal_select_data_callback) (S32 menuitem_index, S32 item_index,
  220.                                                                        UI_string_type str_buff, PU8 *img_buff_p,
  221.                                                                        wgui_thumbnail_image_union *thumbnail);
  222.     typedef void (*wgui_two_line_menuitem_complete_callback) (S32 menuitem_index, S32 selected_index);
  223.     typedef union _wgui_two_line_menuitem_data_union
  224.     {
  225.         wgui_two_line_get_level_select_data_callback get_data_for_level_select;
  226.         wgui_two_line_get_horizontal_select_data_callback get_data_for_horizontal_select;
  227.     } wgui_two_line_menuitem_data_union;
  228.     typedef struct _wgui_two_line_menuitem_struct
  229.     {
  230.         U8 image_flags;
  231.         S32 num_of_items;
  232.         wgui_two_line_menuitem_get_default_callback defualt_value_callback;
  233.         wgui_two_line_menuitem_complete_callback complete_callback;
  234.         wgui_two_line_menuitem_data_union two_line_data_callback;
  235.     } wgui_two_line_menuitem_struct;
  236.     typedef void (*wgui_get_two_line_menu_item_properties) (int index,
  237.                                                             wgui_two_line_menuitem_struct *
  238.                                                             current_menuitem_properties);
  239.     typedef U8(*wgui_get_display_style) (S32 absolute_index);
  240. #define TWO_LINE_MENUITEM_STYLE_DISPLAY_LEVEL_SELECT 1
  241. #define TWO_LINE_MENUITEM_STYLE_DISPLAY_HORIZONTAL_SELECT 2
  242.     typedef pBOOL(*two_line_dynamic_menuitem_style) (S32 item_index, S32 menuitem_index);
  243.     typedef struct _wgui_horizontal_select_menuitem_struct
  244.     {
  245.         S32 x;
  246.         S32 y;
  247.         S32 width;
  248.         S32 height;
  249.         S32 current_item;
  250.         S32 no_of_items;
  251.         wgui_two_line_get_horizontal_select_data_callback two_line_select_get_data;
  252.         wgui_two_line_menuitem_complete_callback two_line_select_complete;
  253.         wgui_two_line_menuitem_get_default_callback two_line_default_value;
  254.     } wgui_horizontal_select_menuitem_struct;
  255.     typedef struct _wgui_level_select_menutitem_struct
  256.     {
  257.         S32 x;
  258.         S32 y;
  259.         S32 width;
  260.         S32 height;
  261.         S32 current_item;
  262.         S32 no_of_items;
  263.         wgui_two_line_get_level_select_data_callback two_line_select_get_data;
  264.         wgui_two_line_menuitem_complete_callback two_line_select_complete;
  265.         wgui_two_line_menuitem_get_default_callback two_line_default_value;
  266.     } wgui_level_select_menutitem_struct;
  267. #ifdef __MMI_TOUCH_SCREEN__
  268.     typedef struct {
  269.         S32 x;
  270.         S32 y;
  271.         S32 width;
  272.         S32 height;
  273.     } wgui_two_line_arrow_struct;
  274. #endif /* __MMI_TOUCH_SCREEN__ */
  275.     extern U8 wgui_two_line_get_thumbnail_flags(void);
  276.     extern void wgui_two_line_toggle_thumbnail_direction(void);
  277.     extern void wgui_two_line_reset_all_pointers(void);
  278.     extern void wgui_set_pfn_to_get_current_menu_item_properties(wgui_get_two_line_menu_item_properties pfn);
  279.     extern void wgui_set_pfn_to_get_display_style(wgui_get_display_style pfn);
  280.     extern void reset_fixed_icontext_menuitem_type(void);
  281. #endif /* __MMI_UI_TWO_LINE_MENUITEM_STYLES__ */ 
  282. #if (defined __MMI_UI_TWO_LINE_MENUITEM_STYLES__ || defined __MMI_UI_HINTS_IN_MENUITEM__)
  283.     extern void wgui_two_line_stop_scroller(void);
  284.     extern void wgui_two_line_disable_complete_callback(void);
  285.     extern void set_current_two_line_menuitem_data(void);
  286. #endif /* (defined __MMI_UI_TWO_LINE_MENUITEM_STYLES__ || defined __MMI_UI_HINTS_IN_MENUITEM__) */ 
  287. #ifdef __MMI_UI_HINTS_IN_MENUITEM__
  288.     extern void gui_show_two_line_hint_part(
  289.                     S32 hint_x1,
  290.                     S32 hint_x2,
  291.                     S32 hint_y1,
  292.                     S32 hint_y2,
  293.                     UI_string_type _hint_text,
  294.                     U32 flags);
  295. #endif /* __MMI_UI_HINTS_IN_MENUITEM__ */ 
  296. #ifdef __MMI_UI_TWO_LINE_MENUITEM_STYLES__
  297.     extern void wgui_initialise_and_set_two_line_horizontal_select_callbacks(
  298.                     S32 no_of_items,
  299.                     wgui_two_line_get_horizontal_select_data_callback get_data_callback,
  300.                     wgui_two_line_menuitem_get_default_callback default_value_callback,
  301.                     wgui_two_line_menuitem_complete_callback complete_callback);
  302.     extern void wgui_show_two_line_horizontal_select(void);
  303.     extern void wgui_complete_two_line_horizontal_select(void);
  304.     extern void wgui_two_line_horizontal_select_move_next_item(void);
  305.     extern void wgui_two_line_horizontal_select_move_previous_item(void);
  306.     extern void wgui_move_and_set_keyhandlers_two_line_horizontal_select(S32 x, S32 y);
  307.     extern void wgui_resize_two_line_horizontal_select(S32 width, S32 height);
  308.     extern pBOOL get_two_line_menuitem_height(void);
  309.     extern void set_two_line_display_for_dynamic_menus(two_line_dynamic_menuitem_style callback);
  310.     extern pBOOL get_two_line_dynamic_menuitem_height(void);
  311.     extern void set_two_line_display_for_asyncdynamic_menus(two_line_dynamic_menuitem_style callback);
  312.     extern pBOOL get_two_line_asyncdynamic_menuitem_height(void);
  313. #ifdef __MMI_TOUCH_SCREEN__
  314.     extern void wgui_two_line_translate_pen_event(S32 x, S32 y, mmi_pen_event_type_enum pen_event, gui_list_pen_enum *menuitem_event);
  315. #endif
  316. #endif /* __MMI_UI_TWO_LINE_MENUITEM_STYLES__ */ 
  317. #ifdef __cplusplus
  318. }
  319. #endif 
  320. #endif /* __WGUI_FIXED_MENUITEMS_H__ */