Files
@ 3e00cf5fc57d
Branch filter:
Location: therm/libraries/oleddrv/menu.h - annotation
3e00cf5fc57d
2.4 KiB
text/plain
Trying to make clocks work
1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa 1c5909c633fa | /*******************************************************************************
* File Name : menu.h
* Author : lxyppc
* Version : V1.0
* Date : 10-03-05
* Description : menu header
*******************************************************************************/
#ifndef MENU_H
#define MENU_H
// Menu message definition
#define MSG_SCROLL 0x00000001ul
#define MSG_KEY_UP 0x00000002ul
#define MSG_KEY_DOWN 0x00000003ul
#define MSG_SECOND 0x00000004ul
#define MSG_SENSE 0x00000005ul
#define MSG_INIT 0x00000006ul
#define MSG_POWER 0x00000007ul
#define MSG_GRAV_XY 0x00000008ul
#define MSG_GRAV_Z 0x00000009ul
#define MakeMsgGrav_XY(pMsg,x,y) \
{\
(pMsg)->message = MSG_GRAV_XY;\
(pMsg)->param = (void*)((x) | (((unsigned long)(y))<<16));\
}
#define MakeMsgGrav_Z(pMsg,z) \
{\
(pMsg)->message = MSG_GRAV_Z;\
(pMsg)->param = (void*)(z);\
}
// Here Gravity X is MMA Y axis output
#define GetGravX(pMsg) (u16)(((u32)(pMsg)->param>>16) & 0x0FFF)
// Here Gravity Y is MMA X axis output
#define GetGravY(pMsg) (u16)((u32)(pMsg)->param & 0x0FFF)
#define GetGravZ(pMsg) (u16)((u32)(pMsg)->param & 0x0FFF)
// POWER mode definition
#define PWR_CHG 0x0001
#define PWR_GOOD 0x0002
#define GetBatValue(pMsg) (u16)(((u32)(pMsg)->param)>>16)
// Menu type definition
#define MT_NULL 0x00
#define MT_SUB 0x01 // Has sub menu
#define MT_CHECK 0x02 // Has check box
typedef const char* LPCSTR;
typedef struct _Msg
{
void* param;
unsigned long message;
}Msg;
typedef enum{
MR_Finish,
MR_Error,
MR_Continue,
}MenuResult;
typedef MenuResult(*MenuFunc_t)(void* param, Msg* pVoid);
typedef struct _MenuItem
{
const struct _MenuItem* parent;
union{
const void* justMakeInitialEasy;
const MenuFunc_t pfnMenu;
const struct _MenuItem* child;
};
unsigned char index; // menu index
unsigned char cnt; // menu count
unsigned char res; // menu resource
unsigned char type;
}MenuItem;
MenuFunc_t InitialMenu();
unsigned long MenuProcess(Msg* msg);
MenuResult PopupMenu(const MenuItem* menu);
unsigned long GetMessage(Msg* msg);
unsigned long PostMessage(Msg* msg);
#endif
|