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

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_menus.h
  39.  *
  40.  * Project:
  41.  * --------
  42.  *   Maui_Software
  43.  *
  44.  * Description:
  45.  * ------------
  46.  *  fixed menu 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.  * removed!
  76.  * removed!
  77.  * 
  78.  *
  79.  * removed!
  80.  * removed!
  81.  * 
  82.  *
  83.  * removed!
  84.  * removed!
  85.  * 
  86.  *
  87.  * removed!
  88.  * removed!
  89.  * 
  90.  *
  91.  */
  92. /**********************************************************************************
  93.    Filename:      wgui_fixed_menus.h
  94.    Author:        manju
  95.    Date Created:  August-07-2002
  96.    Contains:      PixTel UI wrapper routines header for Fixed menus
  97. **********************************************************************************/
  98. #ifndef __WGUI_FIXED_MENUS_H__
  99. #define __WGUI_FIXED_MENUS_H__
  100. #include "wgui.h"
  101. #include "wgui_menu_shortcuts.h"
  102. #include "gui_custom_menus.h"
  103. #include "gdi_include.h"
  104. #ifdef __cplusplus
  105. extern "C"
  106. {
  107. #endif /* __cplusplus */ 
  108. #ifdef __MMI_TOUCH_SCREEN__
  109. #include "kal_non_specific_general_types.h"
  110. #include "TouchScreenGprot.h"
  111. #endif /* __MMI_TOUCH_SCREEN__ */ 
  112.     //#define MAX_FIXED_MENU_ITEM_POINTERS  512
  113.     //MTK added by JL, for PHB already use the dynamic list. So i reduce the items list.
  114. #define MAX_FIXED_MENU_ITEM_POINTERS   100
  115.     /* PMT HIMANSHU START 20050625 */
  116. #if defined(__MMI_UI_TECHNO_MAINMENU__)
  117. #define BACKGROUND_FRAMES 5
  118. #define FIRST_FRAME 0
  119. #define LAST_FRAME ((BACKGROUND_FRAMES) - (1))
  120.     typedef struct _MMTechno_image_position
  121.     {
  122.         S32 x;
  123.         S32 y;
  124.     } MMTechno_image_position;
  125.     typedef struct _MMTechno_animo_menu
  126.     {
  127.         PU8 item_image;
  128.         MMTechno_image_position *item_position;
  129.     } MMTechno_animo_menu;
  130.     extern void create_techno_main_menu(S32 no_of_main_menu_items, MMI_ID_TYPE *image);
  131.     extern void show_techno_menu_animation(void);
  132.     extern void show_techno_menu(void);
  133.     extern void associate_techno_item_positions(U8 is_next);
  134. #endif /* defined(__MMI_UI_TECHNO_MAINMENU__) */ 
  135.     //PMT HIMANSHU END
  136.     //PMT VIKAS START 20050707
  137.     //PMT VIKAS START 20051217
  138. #if defined(__MMI_UI_DALMATIAN_MAINMENU__)
  139.     /* PMT VIKAS END 20051217 */
  140. #define NUMBER_OF_BALLS 2
  141. #define BALL_WIDTH 64
  142. #define BALL_HEIGHT 59
  143.     typedef struct _MM_BALLS
  144.     {
  145.         S32 *position;
  146.         bitmap image;
  147.     } MM_balls;
  148.     extern MM_balls ball[];
  149.     extern void initialize_balls(void);
  150.     extern void show_animated_balls(void);
  151. #endif /* defined(__MMI_UI_DALMATIAN_MAINMENU__) */ 
  152.     /* PMT VIKAS END 20050707 */
  153.     /* Fixed list menu Wrappers               */
  154.     extern fixed_list_menu MMI_fixed_list_menu;
  155.     extern void create_fixed_list(void);
  156.     extern void plain_fixed_list(void);
  157.     extern void normal_fixed_list(void);
  158.     void register_hide_fixed_list(void (*f) (void));
  159.     extern void move_fixed_list(S32 x, S32 y);
  160.     extern void show_fixed_list(void);
  161.     extern void redraw_fixed_list(void);
  162.     void register_fixed_list_highlight_handler(void (*f) (S32 item_index));
  163.     void register_fixed_list_unhighlight_handler(void (*f) (S32 item_index));
  164.     extern void clear_fixed_list_highlight_handler(void);
  165.     extern void fixed_list_goto_previous_item(void);
  166.     extern void fixed_list_goto_next_item(void);
  167.     extern void fixed_list_goto_home(void);
  168.     extern void fixed_list_goto_end(void);
  169.     extern void fixed_list_goto_previous_page(void);
  170.     extern void fixed_list_goto_next_page(void);
  171.     extern void fixed_list_goto_item(S32 item_index);
  172.     extern void fixed_list_goto_item_no_redraw(S32 item_index);
  173.     extern void fixed_list_goto_item_push_first(S32 item_index);
  174.     extern void register_fixed_list_shortcut_handler(void);
  175.     extern void fixed_list_key_handler(S32 vkey_code, S32 key_state);
  176.     extern void fixed_list_keyboard_input_handler(S32 keyc);
  177.     extern void fixed_list_measure(S32 *width, S32 *height);
  178.     extern void resize_fixed_list(S32 width, S32 height);
  179.     extern void move_fixed_list(S32 x, S32 y);
  180.     extern void register_fixed_list_keys(void);
  181.     extern void reset_fixed_list(void);
  182.     extern void fixed_list_disable_looping(void);
  183.     extern void fixed_list_enable_looping(void);
  184.     extern void wgui_list_menu_show_empty_label_if_needed(void);
  185.     /* Fixed matrix menu wrappers          */
  186.     extern fixed_matrix_menu MMI_fixed_matrix_menu;
  187.     extern void (*resize_fixed_matrix_menuitems) (S32 item_width, S32 item_height);
  188.     extern void create_fixed_matrix(void);
  189.     extern void move_fixed_matrix(S32 x, S32 y);
  190.     extern void show_fixed_matrix(void);
  191.     extern void configure_fixed_matrix(S32 item_width, S32 item_height, S32 n_columns, S32 n_rows);
  192.     void register_fixed_matrix_highlight_handler(void (*f) (S32 item_index));
  193.     extern void clear_fixed_matrix_highlight_handler(void);
  194.     extern void fixed_matrix_goto_previous_item(void);
  195.     extern void fixed_matrix_goto_next_item(void);
  196.     extern void fixed_matrix_goto_previous_column(void);
  197.     extern void fixed_matrix_goto_next_column(void);
  198.     extern void fixed_matrix_goto_previous_row(void);
  199.     extern void fixed_matrix_goto_next_row(void);
  200.     extern void fixed_matrix_goto_home(void);
  201.     extern void fixed_matrix_goto_end(void);
  202.     extern void fixed_matrix_goto_previous_page(void);
  203.     extern void fixed_matrix_goto_next_page(void);
  204.     extern void fixed_matrix_goto_item(S32 item_index);
  205.     extern void fixed_matrix_goto_item_no_redraw(S32 item_index);
  206.     extern void register_fixed_matrix_shortcut_handler(void);
  207.     extern void fixed_matrix_key_handler(S32 vkey_code, S32 key_state);
  208.     extern void fixed_matrix_keyboard_input_handler(S32 keyc);
  209.     extern void fixed_matrix_measure(S32 *width, S32 *height);
  210.     extern void resize_fixed_matrix(S32 width, S32 height);
  211.     extern void move_fixed_matrix(S32 x, S32 y);
  212.     extern void register_fixed_matrix_keys(void);
  213.     extern void reset_fixed_matrix(void);
  214.     /* For Draw Manager  */
  215.     extern void reset_fixed_matrix_col_rows(void);
  216.     /* 041205 Calvin added */
  217.     extern void set_fixed_menu_bg_id(S32 image_id);
  218.     extern void reset_fixed_menu_bg_id(void);
  219.     /* Calvin end */
  220. #if(ENABLE_CIRCULAR_3D_MENU)
  221.     /* Circular 3D menu wrappers  */
  222.     /* 3d Menu Vikram 5 March */
  223. #define WGUI_CM3D_MAX_ITEMS   16
  224. #define WGUI_CM3D_N_ITEM_IMAGES  3
  225. #define WGUI_CM3D_N_COMMON_IMAGES 4
  226.     /* 092204 MTK Calvin added */
  227. #define WGUI_CM3D_N_DISPLAYED_ITEMS 7
  228.     /* MTK Calvin end */
  229.     /* 081404 Calvin removed for faster 3D circular menu */
  230.     // #define CM3D_MENU_GFX_TIMER   200
  231.     extern UI_string_type wgui_CM3D_items[];
  232.     extern PU8 wgui_CM3D_images[];
  233.     extern PU8 wgui_CM3D_common_images[];
  234.     extern S32 wgui_CM3D_n_items;
  235.     extern UI_3D_circular_menu wgui_CM3D_menu;
  236.     /* vikram end */
  237.     /* Circular 3D menu wrappers  */
  238.     /* Common Image IDs used      */
  239. #define CM3D_COMMON_IMAGE0_IMAGE_ID    IDLE_APP_BASE+30
  240. #define CM3D_COMMON_IMAGE1_IMAGE_ID    IDLE_APP_BASE+31
  241. #define CM3D_COMMON_IMAGE2_IMAGE_ID    IDLE_APP_BASE+32
  242. #define CM3D_COMMON_IMAGE3_IMAGE_ID    IDLE_APP_BASE+33
  243.     extern UI_3D_circular_menu wgui_CM3D_menu;
  244.     /* void PopulateCircular3DMenuResources(void); */
  245.     extern void show_circular_3d_menu(void);
  246.     extern void create_circular_3d_menu(S32 n_items, MMI_ID_TYPE *items, MMI_ID_TYPE *images);
  247.     extern void register_circular_3d_menu_keys(void);
  248.     extern void register_rotate_menu_keys(void);    /* 111904 Calvin added for ROTATE mainmenu */
  249.     void register_circular_3d_highlight_handler(void (*f) (S32 item_index));
  250.     extern void circular_3d_menu_goto_item_no_redraw(S32 item_index);
  251.     extern void circular_3d_menu_next(void);
  252.     extern void circular_3d_menu_previous(void);
  253.     /* 112904 Calvin added */
  254.     extern void circular_3d_menu_goto_item(S32 item_index);
  255.     extern void register_3d_menu_shortcut_handler(void);
  256.     /* Calvin end */
  257.     /* For Draw Manager  */
  258.     extern void move_circular_3d_menu(S32 s32X, S32 s32Y);
  259.     extern void resize_circular_3d_menu(S32 s32Width, S32 s32Height);
  260. #endif /* (ENABLE_CIRCULAR_3D_MENU) */ 
  261.     /* Slide control implementation  */
  262. #define GUI_SLIDE_CONTROL_FOCUS_GAP 2
  263. #ifdef __MMI_TOUCH_SCREEN__
  264.     typedef enum
  265.     {
  266.         GUI_SLIDE_CONTROL_PEN_NONE,     /* No event is generated. (but the low-level pen events might be still accepted) */
  267.         GUI_SLIDE_CONTROL_PEN_JUMP_TO_I /* Jump to certain value */
  268.     } gui_slide_control_pen_event_enum;
  269.     typedef enum
  270.     {
  271.         GUI_SLIDE_CONTROL_PEN_STATE_INVALID,
  272.         GUI_SLIDE_CONTROL_PEN_STATE_AREA1,
  273.         GUI_SLIDE_CONTROL_PEN_STATE_AREA2,
  274.         GUI_SLIDE_CONTROL_PEN_STATE_SLIDE
  275.     } gui_slide_control_pen_state_enum;
  276. #endif /* __MMI_TOUCH_SCREEN__ */ 
  277.     typedef enum
  278.     {
  279.         GUI_SLIDE_CONTROL_VALUE_POS_NONE,
  280.         GUI_SLIDE_CONTROL_VALUE_POS_HEAD,
  281.         GUI_SLIDE_CONTROL_VALUE_POS_TAIL,
  282.         GUI_SLIDE_CONTROL_VALUE_POS_NEXT_LINE
  283.     } gui_slide_control_value_postion_enum;
  284.     typedef struct _slide_control
  285.     {
  286.         S32 x, y;                                       /* position of background image */
  287.         PU8 background_image;
  288.         PU8 slide_image;
  289.         U32 flags;
  290.         S32 bg_image_width;
  291.         S32 bg_image_height;
  292.         S32 slide_image_width;
  293.         S32 slide_image_height;
  294.         S32 width;
  295.         S32 lower_limit;
  296.         S32 upper_limit;
  297.         S32 current_value;
  298.         S32 value_string_width, value_string_height;    /* position of value string */
  299.         S32 value_string_gap;
  300.         U8 *label_string;                               /* label string is always above the background image */
  301.         void (*change_callback) (S32);
  302.     #ifdef GDI_USING_LAYER
  303.         gdi_handle display_layer;
  304.     #endif 
  305.     #ifdef __MMI_TOUCH_SCREEN__
  306.         gui_slide_control_pen_state_enum pen_state;
  307.     #endif 
  308.     } slide_control;
  309.     extern void create_slide_control(slide_control *s, S32 x, S32 y);
  310. #ifdef GDI_USING_LAYER
  311.     extern void set_slide_control_layer(slide_control *s, gdi_handle layer);
  312.     extern void reset_slide_control_layer(slide_control *s);
  313. #endif /* GDI_USING_LAYER */ 
  314.     extern void show_slide_control(slide_control *s);
  315.     extern void show_slide_control_value(slide_control *s);
  316.     extern void show_slide_control_label(slide_control *s);
  317.     extern void show_slide_control_focus_area(slide_control *s);
  318.     extern void hide_slide_control_focus_area(slide_control *s);
  319.     extern void slide_control_previous(slide_control *s);
  320.     extern void slide_control_next(slide_control *s);
  321.     extern void set_slide_control_limits(slide_control *s, S32 lower_limit, S32 upper_limit);
  322.     extern void set_slide_control_label(slide_control *s, U8 *label_string);
  323.     extern void set_slide_control_value(slide_control *s, S32 value);
  324.     extern void set_slide_control_images(slide_control *s, PU8 background_image, PU8 slide_image);
  325.     extern void move_slide_control_value(slide_control *s, S32 x, S32 y);
  326.     void wgui_setup_slide_control(slide_control *s, S32 x, S32 y, S32 lower_limit, S32 upper_limit, S32 current_value,
  327.                                   void (*change_callback) (S32 value));
  328.     /* void move_slide_control_value(slide_control *s, S32 x, S32 y); */
  329. #ifdef __MMI_TOUCH_SCREEN__
  330.     extern BOOL wgui_slide_control_translate_pen_event(
  331.                     slide_control *m,
  332.                     mmi_pen_event_type_enum pen_event,
  333.                     S16 x,
  334.                     S16 y,
  335.                     gui_slide_control_pen_event_enum *slide_event,
  336.                     gui_pen_event_param_struct *slide_param);
  337. #endif /* __MMI_TOUCH_SCREEN__ */ 
  338.     extern void register_fixed_list_keys_stop_watch(void);
  339.     extern void fixed_list_goto_next_item_stop_watch(void);
  340.     extern void fixed_list_goto_previous_item_stop_watch(void);
  341.     /* PMT VIKAS START 20050610 */
  342. #if defined (__MMI_UI_TRANSPARENT_EFFECT__) || defined (__MMI_UI_LIST_HIGHLIGHT_EFFECTS__)      /* 072505 Calvin modified */
  343.     extern void gui_reset_transparent_source_layer(void);
  344. #endif 
  345.     //PMT VIKAS END
  346.     //PMT VIKAS START 20051209
  347. #ifdef __MMI_UI_LIST_TRANSITION__
  348. #define LIST_TRANSITION_STYLE_NON_BLOCKING 1
  349. #define LIST_TRANSITION_NON_BLOCKING_TIMER 10
  350. #if(LIST_TRANSITION_STYLE_NON_BLOCKING)
  351.     extern void draw_transition_list_non_blocking(void);
  352.     extern void wgui_stop_list_transition_non_blocking(void);
  353.     extern S32 is_in_nonblocking_list_transition(void);
  354.     extern S32 get_original_prev_list_y_value(void);
  355.     extern void wgui_list_tranisition_abort_cleanup_function(void);
  356.     extern void save_copy_original_list_data(void);
  357.     extern void restore_saved_original_list_data(void);
  358. #endif /* (LIST_TRANSITION_STYLE_NON_BLOCKING) */ 
  359. #else /* __MMI_UI_LIST_TRANSITION__ */ 
  360. #define LIST_TRANSITION_STYLE_NON_BLOCKING 0
  361. #endif /* __MMI_UI_LIST_TRANSITION__ */ 
  362.     /* PMT VIKAS END 20051209 */
  363. #ifdef __cplusplus
  364. }
  365. #endif 
  366. #endif /* __WGUI_FIXED_MENUS_H__ */