Files
DTU-HMI/src/Drv/pages/menu/menu_model.h

70 lines
1.1 KiB
C

#ifndef MENU_MODEL_H
#define MENU_MODEL_H
#include "display.h"
typedef struct tagMenuModel
{
uint8_t byClass;
uint8_t byName[50];
uint8_t byTip[50];
uint8_t byAttrib;
uint16_t wPassword;
uint16_t wPara;
FUNCPTR pfnWinProc;
} tagMenuModel;
typedef struct MenuItem MenuItem;
typedef MenuItem *tagPMenuItem;
typedef MenuItem tagMenuItem;
typedef struct
{
MenuItem *higher;
MenuItem *lower;
MenuItem *before;
MenuItem *behind;
} MenuLinks;
typedef struct
{
uint16_t wPos;
uint16_t wNum;
uint16_t wSPosX;
uint16_t wSPosY;
uint16_t wEPosX;
uint16_t wEPosY;
} MenuRect;
struct MenuItem
{
MenuLinks links;
tagMenuModel menuDef;
MenuRect rect;
};
typedef struct
{
uint8_t by0LevelNum;
tagPMenuItem ptHead;
tagPMenuItem ptCurrent;
tagPMenuItem ptRoute[4];
tagPMenuItem ptCurBak;
tagPMenuItem pt0Level;
} tagMenuCtrl;
typedef struct menu_model_t menu_model_t;
struct menu_model_t
{
uint16_t maxItem;
tagMenuItem menuItems[300];
uint16_t by0LevelNum;
};
void MenuModel_Init(menu_model_t *model);
#endif