📄 menu.h
字号:
/******************************************************************************
* 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 + -