⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mfw_mnu.h

📁 是一个手机功能的模拟程序
💻 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 + -