📄 mfw_mnu.h
字号:
/*
+--------------------------------------------------------------------+
| PROJECT: MMI-Framework (8417) $Workfile:: mfw_mnu.h $|
| $Author: jhxu $ CONDAT GmbH $Revision: 1.7 $|
| CREATED: 23.11.98 $Modtime:: 4.01.00 13:30 $|
| STATE : code |
+--------------------------------------------------------------------+
MODULE : MFW_MNU
PURPOSE : Keyboard types & constants
EXPORT :
TO DO :
$History:: mfw_mnu.h $
*
* ***************** Version 10 *****************
* User: Le Date: 6.01.00 Time: 9:23
* Updated in $/GSM/Condat/MS/SRC/MFW
* Alignment of MFW versions
*
* ***************** Version 2 *****************
* User: Es Date: 22.11.99 Time: 10:29
* Updated in $/GSM/Condat/SND-MMI/MFW
*
* ***************** Version 1 *****************
* User: Es Date: 18.11.99 Time: 16:35
* Created in $/GSM/Condat/SND-MMI/MFW
* Initial
*/
/****************************************************
history: mfw_mnu.c
27/06/02 zy
change:add the key action mnu:up,down line by line and left,right
12/07/02 zy Mobile Innovation
add MfwHnd mnuListCreate (MfwHnd w, MfwMnuAttr *a, MfwEvt e, MfwCb f,char * ListMenuTitleStr)
for list menu title
01/08/02 zy Mobile Innovation
change flagfun() return value,and change menuoverlapped type to listmenu with Icon type
10/09/02 zy Mobile Innovation
add menuattr structure
11/04/03 talcon Mobile Innivation
add MfwMnuAnim structure
****************************************************/
#ifndef _DEF_MFW_MNU_H_
#define _DEF_MFW_MNU_H_
/* MENU MODES */
/* ALIGNMENT */
#define MNU_LEFT 0x0001 /* left aligned */
#define MNU_RIGHT 0x0002 /* right aligned */
#define MNU_CENTER 0x0003 /* centered */
#define MNU_ALIGN 0x0003 /* alignment mode mask */
/* DISPLAY */
#define MNU_VIEWLIST 0x0000 /* view items in icons */
#define MNU_OVERLAPPED 0x0004 /* zy used as menu with Icon Items */
#define MNU_PAGED 0x0008 /* single item per page */
#define MNU_LIST 0x000c /* list items on page */
#define MNU_DISPLAY 0x000c /* display mode mask */
/* ITEM SELECTION */
#define MNU_FRAMED 0x0010 /* selection by frame */
#define MNU_CUR_ARROW 0x0020 /* selection by arrow */
#define MNU_CUR_STAR 0x0030 /* selection by star */
#define MNU_CUR_BLOCK 0x0040 /* selection by block */
#define MNU_CUR_LINE 0x0050 /* selection by line */
#define MNU_ITEMSEL 0x00f0 /* item select mode mask */
#define MNU_BOOKPHONE 0x0100 /* talcon: add 2003-10-29 */
/* MENU EVENTS */
#define E_MNU_VISIBLE 0x00000001 /* menu is displayed */
#define E_MNU_EMPTY 0x00000002 /* menu is empty */
#define E_MNU_SELECT 0x00000010 /* menu item selected */
#define E_MNU_ESCAPE 0x00000020 /* menu escape */
#define E_MNU_TOPPED 0x00000040 /* menu over top */
#define E_MNU_BOTTOMED 0x00000080 /* menu under bottom */
#define E_MNU_PREDRAW 0x00000100 /* item will be drawn */
#define E_MNU_POSTDRAW 0x00000200 /* item has been drawn */
/* ITEM EXTENSION FLAGS */
#define MNU_ITEM_HIDE 0x0001 /* item is hidden */
#define MNU_ITEM_NOTIFY 0x0002 /* notify on draw */
#define MNU_ITEM_ANIMA 0x0004 /* icon animation */
#define MNU_ITEM_FONT 0x0008 /* use font (disabled, ...) */
#define MNU_ITEM_STATED 0x0010 /* item has status */
#define MNU_ITEM_RADIO 0x0020 /* item is radio button */
#define MNU_ITEM_HOTKEY 0x0040 /* item can have hotkey */
//2004/05/24 yhf add
#define MNU_NOTITLE 0x2000 /* MENU MODES */
/* 2004/05/18 sunsj modify */
#if ( MAIN_LCD_SIZE==2 )
#define MNULIST_ITEM_HEIGHT 13//menu list 中menu item 的高
#elif ( MAIN_LCD_SIZE==4 )
#define MNULIST_ITEM_HEIGHT 20//menu list 中menu item 的高
#define MNULIST_ITEM_LEFTOFFSET 22//menu list menu 左边TEXT的起始位置
#define MNULIST_ITEM_TOPOFFSET 0//menu list 第一个item和tilte icon的offset
#elif ( MAIN_LCD_SIZE==3 )
#define MNULIST_ITEM_DISPLAYOFFSET_X 6 /*jhxu 288 added 解决highlight不能正确显示的情况*/
#define MNULIST_ITEM_HIGHLIGHTOFFSET_X 20/*jhxu 288 added 解决highlight不能正确显示的情况*/
#define MNULIST_ITEM_HIGHLIGHTOFFSET_Y 1/*jhxu 288 added 解决highlight不能正确显示的情况*/
#define MNULIST_ITEM_DISPLAYOFFSET_Y 2 /*jhxu 288 added 解决各行间隔不相同的情况*/
#define MNULIST_ITEM_LEFTOFFSET 20//menu list menu 左边TEXT的起始位置
#define MNULIST_ITEM_HEIGHT 18//menu list 中menu item 的高,原来为16。修改字体后改为18
#define MNULIST_ITEM_TOPOFFSET 0//menu list 第一个item和tilte icon的offset
#endif
//#define MNULIST_ITEM_LEFTOFFSET 20//menu list menu 左边TEXT的起始位置
#define MNULIST_TITLE_POSX 60
#define MNULIST_TITLE_POSY 11
#define MNULIST_BKGCOLOR 0xb8d4fd
/* 2004/05/18 sunsj modify */
#define MAX_LVL 100 /* maximum of menu level */
#define UNUSED -1 /* unused menu level */
/**************zy changed begin for icon list menu******************************/
#define FLAGFUNC_TRUE_ICON 2/*zy Mobile Innovation define flagfunction return value is true Icon*/
#define FLAGFUNC_GRAY 1/*zy Mobile Innovation define flagfunction the menu item should be gray*/
#define FLAGFUNC_FALSE_ICON 0/*zy Mobile Innovation define flagfuntion return value is wrong Icon*/
/**************end of zy changed for icon list menu*****************************/
typedef struct MfwMnuItemTag;
typedef struct MfwMnuAttrTag;
typedef struct MfwMnuTag;
/* menu function */
typedef int (*MenuFunc)(struct MfwMnuTag* m, struct MfwMnuItemTag* i);
/* item flag function */
typedef U16 (*FlagFunc)(struct MfwMnuTag *m, struct MfwMnuAttrTag *a,
struct MfwMnuItemTag *i);
typedef struct MfwItmExtPredrawTag /* item ext: predraw */
{
char *str; /* string to be drawn */
MfwIcnAttr *icon; /* icon to be drawn */
} MfwItmExtPredraw;
typedef struct MfwMnuItemTag /* menu item */
{
MfwIcnAttr * icon; /* item with icon control */
void *exta; /* item extension data */
MfwHnd edit; /* Must be removed ES!! */
char *str; /* item with textstring */
struct MfwMnuAttrTag *menu; /* item with submenu */
MenuFunc func; /* item with handler */
FlagFunc flagFunc; /* item flag function */
int Dynamicindex; /* add dynamic index*/
} MfwMnuItem;
typedef struct MfwMnuAttrTag /* menu attributes */
{
int titleicon; /*zy add for titleicon*/
MfwRect *area; /* menu area */
U16 mode; /* menu modes */
U8 font; /* default menu font */
MfwMnuItem *items; /* menu items */
U8 nItems; /* number of menu items */
int pageturnindex; /*zy add for real item num for large num0 10/09/02*/
} MfwMnuAttr;
typedef struct MfwMnuTag /* menu control block */
{
MfwEvt mask; /* selection of events */
MfwEvt flags; /* current event */
MfwCb handler; /* menu event handler */
MfwMnuAttr *attr; /* menu attributes */
MfwMnuAttr *curAttr; /* current attributes */
MfwHnd useStrID; /* GW 0=Text is passed as ID's , 1=txt is strings */
MfwHnd useDefLang; /* GW 0=Set text display to ascii, 1=txt is in language default*/
U8 level; /* current level */
U8 lShift[MAX_LVL]; /* shift scrolling */
U8 lCursor [MAX_LVL]; /* level cursor position */
U8 scrollMode;
U8 listmnuflag; /*Judge if this menu is dynamiclistmnuflag*/
char *titlestr; /*zy define the titlestr for listmnuflag*/
} MfwMnu;
/* 2003/11/01,talcon add for menu animate */
typedef struct
{
U8 MnuTextIdx; /* 二级菜单text部分起始显示的索引*/
U8 IsMnuTextAnim; /* 二级菜单项是否要animate */
U8 MainMnuIcnAnimIdx; /*主菜单动画的index */
U8 PreMnuIdx; /*先前选中的菜单项,=mnu->lCursor[(int)mnu->level]; */
/*2003/11/08,talcon add */
U8 MnuLeftIconIdx; /* 二级菜单中左边需要动画的icon的index*/
U8 nMainTimer; /* */
/*2003/11/10,talcon add,for MNU_LIST mnu left icon animate*/
MfwHnd listmnulicontimer;
MfwMnu *currentmnu;
MfwHnd currentwin;
U8 nDepListMnu;
U8 nMainMnuIdx;
}MfwMnuAnim;
/* end talcon add */
//-------------added by ganchh------------2002/9/6
typedef enum
{
BrowseInit,
BrowseNew,
BrowseUp,
BrowseDown
}MfwMnuBrowseAction;
//-----------ganchh end -----------------2002/9/6
MfwRes mnuInit (void);
MfwRes mnuExit (void);
MfwHnd mnuCreate (MfwHnd w, MfwMnuAttr *a, MfwEvt e, MfwCb Mnu);
MfwHnd mnuListCreate (MfwHnd w, MfwMnuAttr *a, MfwEvt e, MfwCb f,char * ListMenuTitleStr);//zy Mobile Innovation add for list menu title
MfwRes mnuDelete (MfwHnd m);
MfwHnd mnuLang (MfwHnd m, MfwHnd l);
MfwHnd mnuStrType (MfwHnd m, MfwHnd l); //GW
MfwRes mnuShow (MfwHnd m);
MfwRes mnuHide (MfwHnd m);
MfwRes mnuUnhide (MfwHnd m);//GW added 29/11/01
int IsViewListMenu(MfwHnd m);
MfwRes mnuUpdate (MfwMnu *m);
MfwRes mnuUp (MfwHnd m);
MfwRes mnuPageUp(MfwHnd m);
MfwRes mnuPageDown(MfwHnd m);
MfwRes mnuDown (MfwHnd m);
MfwRes mnuEscape (MfwHnd m);
MfwRes mnuSelect (MfwHnd m);
MfwRes mnuDone (MfwHnd m);
MfwRes mnuKeyAction (MfwHnd m, U8 keycode);
MfwRes mnuChooseVisibleItem(MfwHnd m,U8 nItem);
U8 mnuCountVisibleItems(MfwHnd m);
//U8 mnuCountCurrentVisibleItem(MfwHnd m);
void mnuScrollMode (MfwHnd menu,U8 mode);
void controlBrowseNew(void);//zy 10/08
extern UBYTE dspl_BitBlt_ext (USHORT in_X,
USHORT in_Y,
USHORT in_BmpX,
USHORT in_BmpY,
USHORT in_Width,
USHORT in_Height,
USHORT in_BmpWidth,
USHORT in_BmpHeight,
USHORT in_Index,
void * in_BmpPtr,
USHORT in_Rop);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -