📄 wgui_categories_mm.c
字号:
/*****************************************************************************
* Copyright Statement:
* --------------------
* This software is protected by Copyright and the information contained
* herein is confidential. The software may not be copied and the information
* contained herein may not be used or disclosed except with the written
* permission of MediaTek Inc. (C) 2005
*
* BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
* THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
* RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
* AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
* NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
* SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
* SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
* THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
* NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
* SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
* BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
* LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
* AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
* OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
* MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
* THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
* WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
* LAWS PRINCIPLES. ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
* RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
* THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* wgui_categories_MM.c
*
* Project:
* --------
* Maui_Software
*
* Description:
* ------------
* Main Menu related categories.
*
* Author:
* -------
* -------
* $Log: wgui_categories_MM.c,v $
* Revision 1.6 2007/07/31 02:01:10 zhouxiang
* MT190-26
* Modification Author:zx
* Date:20070730
* Content:修改进入写信息/选择符号或插入图片界面错乱问题
*
* Revision 1.5 2007/07/25 05:43:08 luoren
* MT190-20
* Modification Author:gqy
* Date: 20070725
* Content:修改主菜单界面左右切换的菜单点击不能进入问题
*
* Revision 1.4 2007/07/12 11:02:56 luoren
* MT190-8
* Modification Author:gqy
* Date: 20070712
* Content:调整MT190 UI问题
*
* Revision 1.3 2007/06/25 11:48:10 wangbei
* MT118-6
* Modification Author:wangbei
* Date: 20070625
* Content:解决主菜单界面。
*
* Revision 1.2 2007/05/17 08:27:25 zhouxiang
* MT170-8
* Modification Author:zx
* Date: 20070507
* Content:调整MT170 UI显示
*
* Revision 1.1.1.1 2007/05/11 08:53:41 zhouxiang
* no message
*
* Revision 1.2 2007/04/05 02:10:57 zhouxiang
* MT158-12
* MT158-13
* Modification Author:zx
* Date: 20070404
* Content:修改主菜单二级菜单及黑底风格
*
*============================================================================
* HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*------------------------------------------------------------------------------
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
*============================================================================
****************************************************************************/
#include "MMI_features.h"
#include "stdC.h"
#include "L4Dr1.h"
#include "PixtelDataTypes.h"
#include "DebugInitDef.h"
#include "GlobalDefs.h"
#include "gui_data_types.h"
#include "gui_themes.h"
#include "gui.h"
#ifdef __MMI_UI_TECHNO_STATUS_ICON__
#include "Gui_Setting.h"
#endif
#include "CustDataProts.h"
#include "CustMenuRes.h"
#include "EventsDef.h"
#include "CustThemesRes.h"
#include "MainMenuDef.h"
#include "MainMenuType.h"
#include "gdi_include.h"
#include "lcd_sw_rnd.h"
#include "wgui.h"
#include "wgui_inputs.h"
#include "wgui_categories.h"
#include "wgui_softkeys.h"
#include "wgui_fixed_menus.h"
#include "wgui_categories_defs.h"
#include "wgui_draw_manager.h"
#include "wgui_categories_MM.h"
#ifdef __MMI_WGUI_MINI_TAB_BAR__
#include "wgui_tab_bars.h"
#endif
#ifdef __MMI_MATRIX_MAIN_MENU_FULL_BACKGROUND__
#include "Wgui_categories_util.h"
#endif
#ifdef __MMI_TOUCH_SCREEN__
#include "wgui_touch_screen.h"
#endif
#include "SATGProts.h"
/************ Global Variables *************/
extern S32 wgui_current_pop_up_description_index;
extern color active_title_txt_border_col;
extern BOOL r2lMMIFlag;
#ifdef __MMI_UI_TITLE_TRANSITION__
extern void set_title_transition(wgui_transition_styles style);
extern void reset_title_transition(void);
#endif /* __MMI_UI_TITLE_TRANSITION__ */
#ifdef __MMI_UI_MM_HORIZONTAL_PAGE_STYLE__
extern void register_horizontal_fixed_list_keys(void);
#endif
extern void standard_animated_matrix_highlight_handler_type2(S32 item_index);
extern void mtk_show_animation_frames(S32 x, S32 y, U8 *image, S32 start_frame);
UI_string_type MMI_bg_string;
PU8 MMI_bg_image;
PU8 MMI_bg_animation;
#if (ENABLE_DIRECT_MAIN_MENU_IMPLEMENTATION)
/* Direct main menu implementation */
/* Matrix main menu: Fixed number of items with all items being visible */
#ifdef __MMI_MAINLCD_240X320__
#define MAIN_MENU_NORMAL_IMAGE_CLIP_WIDTH (80)
// wangbei modify start 20071010
#ifdef __NEW_MATIX_MAINMENU_STYLE__
#define MAIN_MENU_NORMAL_IMAGE_CLIP_HEIGHT (92)
#define MAIN_MENU_NORMAL_IMAGE_WIDTH (40)
#define MAIN_MENU_NORMAL_IMAGE_HEIGHT (40)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH (80)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT (48)
#else
#define MAIN_MENU_NORMAL_IMAGE_CLIP_HEIGHT (60)
#define MAIN_MENU_NORMAL_IMAGE_WIDTH (80)
#define MAIN_MENU_NORMAL_IMAGE_HEIGHT (60)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH (80)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT (60)
#endif
// wangbei modify end
#else
//zx modify begin 20070404
#ifdef __MMI_MAIN_MENU_3X3_MATRIX__
#define MAIN_MENU_NORMAL_IMAGE_CLIP_WIDTH (60)
#define MAIN_MENU_NORMAL_IMAGE_CLIP_HEIGHT (60)
#define MAIN_MENU_NORMAL_IMAGE_WIDTH (60)
#define MAIN_MENU_NORMAL_IMAGE_HEIGHT (60)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH (70)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT (70)
#else
#define MAIN_MENU_NORMAL_IMAGE_CLIP_WIDTH (41)
#define MAIN_MENU_NORMAL_IMAGE_CLIP_HEIGHT (30)
#define MAIN_MENU_NORMAL_IMAGE_WIDTH (42)
#define MAIN_MENU_NORMAL_IMAGE_HEIGHT (31)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH (51)
#define MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT (37)
#endif
//zx modify end
#endif
#define MAIN_MENU_N_ROWS (3)
#define MAIN_MENU_N_COLUMNS (3)
#define MAIN_MENU_MAX_ITEMS (MAIN_MENU_N_ROWS*MAIN_MENU_N_COLUMNS)
#define MAIN_MENU_HIGHLIGHT_OFFSET_X ((MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH>>1)-(MAIN_MENU_NORMAL_IMAGE_WIDTH>>1))
#define MAIN_MENU_HIGHLIGHT_OFFSET_Y ((MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT>>1)-(MAIN_MENU_NORMAL_IMAGE_HEIGHT>>1))
#define MAIN_MENU_HIGHLIGHTED_GRID_COLOR { 0,0,0,100 }
#define MAIN_MENU_NORMAL_GRID_COLOR { 160,160,160,100 }
#define MAIN_MENU_X1 (0)
#define MAIN_MENU_Y1 (MMI_TITLE_HEIGHT+1)
#define MAIN_MENU_X2 (127)
#define MAIN_MENU_Y2 (MMI_TITLE_HEIGHT+100+1)
#define MAIN_MENU_ITEM_HIGHLIGHTED 0x00000001
#define MAIN_MENU_LOOP 0x00000002
#define MAIN_MENU_DISPLAY_GRID 0x00000004
#define MAIN_MENU_DISPLAY_ITEM_GRID 0x00000008
extern U16 title_bg_id;
extern icontext_button MMI_softkeys[];
extern void _show_bitmap(S32 x1, S32 y1, bitmap *b);
extern void _get_bitmap(S32 x1, S32 y1, S32 x2, S32 y2, bitmap *b);
extern void (*MMI_matrix_highlight_handler) (S32 index);
U8 matrix_main_menu_highlight_bitmap_data[(MAIN_MENU_HIGHLIGHTED_IMAGE_WIDTH) * (MAIN_MENU_HIGHLIGHTED_IMAGE_HEIGHT) *
MMI_MAIN_BASE_LAYER_BITS_PER_PIXEL / 8];
/* structure of matrix menu */
/* Store current main menu type..matrix,list,circular */
S32 MMI_main_menu_type = MATRIX_MENU;
U16 gMainMenuAnimation[MAX_MAIN_MENU_ITEMS];
U16 gMainMenuTitleIcon[MAX_MAIN_MENU_ITEMS];
S32 main_menu_index = -1;
PU8 _wgui_main_menu_items[MAIN_MENU_MAX_ITEMS];
matrix_main_menu _wgui_main_menu;
UI_string_type _wgui_main_menu_item_strings[MAIN_MENU_MAX_ITEMS];
#if((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING))
S32 wgui_matrix_main_menu_frame_counter = 0;
extern matrix_main_menu _wgui_main_menu;
#endif /* ((UI_ENABLE_FRAME_SKIPPING) && (ENABLE_DIRECT_MAIN_MENU_FRAME_SKIPPING)) */
#ifdef __MMI_MATRIX_MAIN_MENU_FULL_BACKGROUND__
BOOL inMatrixNoTitleFlag = FALSE;
#endif
#ifdef __MMI_BI_DEGREE_MAIN_MENU_STYLE__
void (*Cat414MatrixExitHandler) (S32 index) = NULL;
#endif
/* 082806 240x320 matrix Start */
#if defined (__MMI_WALLPAPER_ON_BOTTOM__)
static MMI_ID_TYPE mm_bg_ID;
static S8 *mm_bg_filename;
static S32 mm_bg_x, mm_bg_y;
static U8 mm_bg_opacity;
static S32 mm_bg_flags;
#endif /* defined (__MMI_WALLPAPER_ON_BOTTOM__) */
/* 082806 240x320 matrix End */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -