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

📄 menu.h

📁 这个是单片机4200的ui程序
💻 H
📖 第 1 页 / 共 2 页
字号:

/******************************************************************************
*         Copyright (c) 2006 Primax Corporation,Ltd. All rights reserved.
*
* Author:            Junny Fu
*
* Description:       
*
* Revision History:
* Date      Author   Description

******************************************************************************/
#ifndef  __Menu
#define  __Menu

#include	"Standard.h"
#include	"Smfm.h"
#include	"Message.h"
#include	"uifax.h"
#include	"uinew.h"
#include "pfhmgr.h"

#define	MENUITEMCOUNT(menulist)		sizeof(menulist)/sizeof(MAIN_MENU_LIST)

typedef void (*APMENUITEM)(Uint8);
typedef void (*APMENUITEM2)(void);




/**********for Mytecs Integration*************/

typedef struct {
        int tm_sec;     /* seconds after the minute - [0,59] */
        int tm_min;     /* minutes after the hour - [0,59] */
        int tm_hour;    /* hours since midnight - [0,23] */
        int tm_mday;    /* day of the month - [1,31] */
        int tm_mon;     /* months since January - [0,11] */
        int tm_year;    /* years since 2000 */
        int tm_wday;    /* days since Sunday - [0,6] */
        int tm_yday;    /* days since January 1 - [0,365] */
        int tm_isdst;   /* daylight savings time flag */
}DATETIME,*P_DATETIME;

/*****************************************/
enum{
	Val_copynum,	// 0
	Val_contrast,
	Val_imagequality,
	Val_layout,
	Val_presetratio,
	Val_zoomratio,	// 5 
	Val_scandes,
	Val_scancolor,
	Val_scanquality,
	Val_ioriginalsize,
	Val_papersize,	// 10
	Val_papertype,
	Val_language,
	Val_alarmvolume,
	Val_autocleantime,
	Val_clockmode,	// 15
	Val_powersavetime,
	Val_pressvolume,
	Val_ringer,
	Val_country,
	Val_speaker,	// 20
	Val_tonersavemode,
	Val_IDname,
	Val_IDtelnumber,
	Val_txresolution,
	Val_txcontrast,	// 25
	Val_onhookdial,
	Val_ringtoasw,
	Val_receivemode,
	Val_redialdly,
	Val_redialatempt,	// 30
	Val_msgconf,
	Val_autoreport,
	Val_TTI,
	Val_receivecode,
	Val_DRPDmode,	// 35
	Val_recvforonoff,
	Val_stmprcvdname,
	Val_ECMmode,
	Val_txspeed,
	Val_rcvdisable,	// 40
	Val_prefixdial,
	Val_securerecv,
	Val_FTringtime,
	Val_autoreduction,
	Val_NV_copynum,	// 45
	Val_NV_contrast,
	Val_NV_imagequality,
	Val_NV_layout,
	Val_NV_presetratio,
	Val_NV_zoomratio,	// 50
	Val_NV_scandes,
	Val_NV_scancolor,
	Val_NV_scanquality,
	Val_NV_ioriginalsize,
	Val_NV_papersize,	// 55
	Val_NV_papertype,
	Val_NV_language,
	Val_NV_alarmvolume,
	Val_NV_autocleantime,
	Val_NV_clockmode,	// 60
	Val_NV_powersavetime,
	Val_NV_pressvolume,
	Val_NV_ringer,
	Val_NV_country,
	Val_NV_speaker,		// 65
	Val_NV_tonersavemode,
	Val_NV_IDname,
	Val_NV_IDtelnumber,
	Val_NV_txresolution,
	Val_NV_txcontrast,	//70
	Val_NV_onhookdial,
	Val_NV_ringtoasw,
	Val_NV_receivemode,
	Val_NV_redialdly,
	Val_NV_redialatempt,	//75
	Val_NV_msgconf,
	Val_NV_autoreport,
	Val_NV_TTI,
	Val_NV_receivecode,
	Val_NV_DRPDmode,	//80
	Val_NV_recvforonoff,
	Val_NV_stmprcvdname,
	Val_NV_ECMmode,
	Val_NV_txspeed,
	Val_NV_rcvdisable,	//85
	Val_NV_prefixdial,
	Val_NV_securerecv,
	Val_NV_FTringtime,
	Val_NV_autoreduction,
	Val_dialnumber,	//90
	Val_FM_rxlevel,
	Val_FM_txlevel,
	Val_FM_CEqualizer,
	Val_FM_trainretry,
	Val_FM_encodeing,	//95
	Val_FM_t0timer,
	Val_FM_t1timer,
	Val_FM_t4timer,
	Val_FM_SDetecttime,
	Val_FM_CngTDetectTime,	//100
	Val_FM_Cngcycle,
	Val_FM_Tonesoundmon,
	Val_FM_Stopclearkey,
	Val_FM_overseacomm,
	Val_FM_mintimelength,	//105
	Val_FM_minpausetonedial,
	Val_FM_attenuatorPRBL,
	Val_FM_DTMFlevel,
	Val_FM_DTMFdelta,
	Val_FM_waittime,	//110
	Val_FM_timeoutlength,
	Val_FM_btsetting,
	Val_FM_btfrequency,
	Val_FM_btlevel,
	Val_FM_btcadence,	//115
	Val_FM_RTNrate,
	Val_FM_V34modem,
	Val_FM_V17modem,
	Val_FM_equalizer,
	Val_FM_Vredialing,	//120
	Val_FM_firsttxspeed,
	Val_FM_symbolrate,
};


typedef enum{
	LEFT,
	MIDDLE,
	RIGHT
}Aligntype;

typedef enum {
	STRING,					//valid key:left,right,select,back
	DIALINPUT,				//validkey:left,right,select,back,number,star,sharp
	CHARACTERINPUT,		//valid key:left,right,select,back,number
	GRAPHIC,				//valid key:left,right,select,back
	MULTI,					//valid key:left,right,select,back,number
	DATETIMEINPUT,			//valid key:left,right,select,back,number
	SEARCH,					//valid key:left,right,select,back,number
	MULTIDIAL,
	IDINPUT,
	PHONEBOOKINPUT,
	PASSCODE,
	PERIOD,
	CANCELJOB,
	REDIAL,

	DIALTEST,
//	JUNK,
//	CONFIRM
} ITEMSELECT_TYPE;	


typedef	enum{
	M_COPYMODE,
	M_SCANMODE,
	M_FAXMODE,
	M_MENUMODE
}START_TYPE;

typedef struct {
	char					*caption;			//caption char
	Uint16				titleID;				//string point of menu title
	Uint16				dispID;				// string point of menu item
	void					*pPreMenuList;		//pointer to PreMenuArray
	Uint8				precount;			//count of PreMenuList
	Uint8				preIndex;			//point of preMenuList
	Uint8				count;				//count of next MenuList
	void					*pNextMenuList;		//pointer of next MenuListArray
	Uint8				NextIndex;			//point of next MenuList
	ITEMSELECT_TYPE         type;				//selection type
       Uint16				item_min;			//min of current item
	Uint16				item_max;			//max of current item
	Uint8				item_userdefault;	//point of variable
       Uint16                          *itemchoose_addr;	//pointer of current item disp string
//       Uint8				unit;
	START_TYPE			starttype;
	Aligntype				firstline;			//LCD firstline align type
	Aligntype				secondline;			//LCD secondline align type
	APMENUITEM			fun;					//pointer of menu function
	APMENUITEM2			fun2;				//pointer of API function
} MAIN_MENU_LIST, *P_MAIN_MENU_LIST;

typedef	struct {
	P_MAIN_MENU_LIST	ml;					//	point of menu list
	Uint8				mlIndex;			//	index of menu item
	Uint8				mlCount;			//	count of menu item
	char					zml[22];				//	string point of menu title
	P_MAIN_MENU_LIST	currentMenu;		//	point of current menu equal to ml+mlIndex
	APMENUITEM			skfun;				//	special key function
} MENUDATA, *P_MENUDATA;

void	MenuProcess(Uint8 action);
extern void FAXUI(Uint8 action);

char*   GetMsgData(Uint16 id);
void EditorMultiInput(Uint8 num,P_MAIN_MENU_LIST menu);
void EditorMultiInput2(Uint8 num);
void EditorMultiInput3(Uint8 num,P_MAIN_MENU_LIST menu);
void EditorDateTimeInput(Uint8 num,Uint8 step);
void StandbyMode(Uint8 action);
void CopyIdleMode(Uint8 action);
void ScanIdleMode(Uint8 action);
void MenuMode(Uint8 action);
void	MultiType(Uint8 action);
void StringType(Uint8 action);
void GraphicType(Uint8 action);
void QuickCopy(Uint8 action);
void	DateTimeType(Uint8 action);
void DateTimeDisplay(DateTimeSct dt);
Bool DateTimeValid(DateTimeSct dt);
Bool IsLeapYear(Uint8 year);
void ConfirmString(Uint8 action);
//void UpdateDateTime(DateTimeSct dt);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -