1 Star 4 Fork 8

vtor3478/vtor_elec_module

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
vtor_menu.h 1.82 KB
一键复制 编辑 原始数据 按行查看 历史
#ifndef __VTOR_MENU_H
#define __VTOR_MENU_H
#ifdef __cplusplus
extern "C" {
#endif
#include "vtor_elec_module_config.h"
#ifdef __VTOR_MENU__
// 菜单名最长字符个数
#define VTOR_MENU_CONFIG_ITEM_NAME_LEN 20
// 使能从列表项回到开头,和开头的前一项是结尾
// #define VTOR_MENU_CONFIG_ROLLBACK
#define VTOR_MENU_OPERATE_NULL 0
#define VTOR_MENU_OPERATE_ENTER 1
#define VTOR_MENU_OPERATE_OUTER 2
#define VTOR_MENU_OPERATE_CLICK 3
#define VTOR_MENU_OPERATE_CHANGE_MENU 6
#define VTOR_MENU_OPERATE_SELECT_MENU 7
#define VTOR_MENU_OPERATE_CHANGE_VALUE 8
#define VTOR_MENU_OPERATE_SET_VALUE 9
typedef struct VtorMenuStruct
{
uint8_t menuName[VTOR_MENU_CONFIG_ITEM_NAME_LEN]; // 当前名
int32_t menuValue; // 每个菜单下只有1个值,同时显示
struct VtorMenuStruct* childMenu; // 父项
struct VtorMenuStruct* parentMenu; // 子项
struct VtorMenuStruct* prevMenu; // 兄项
struct VtorMenuStruct* nextMenu; // 弟项
}VtorMenu;
extern VtorMenu* VtorMenu_CurMenu;
extern VtorMenu* VtorMenu_CurSubMenu;
void VtorMenu_Display(void);
void VtorMenu_Tree(VtorMenu* menu); // 使用树形打印结构,便于分析
void VtorMenu_PreProcess(void); // 预处理,主要是给菜单项赋值
void VtorMenu_ReProcess(void); // 再处理,主要是将菜单项的值赋值给变量
void VtorMenu_Operate(uint8_t OperataType, int32_t opValue); // 用于实现用户操作
void VtorMenu_Relate(VtorMenu* menu, VtorMenu* subMenu);
// 用户实现并调用,初始化树形菜单
void VtorMenu_Init(void);
// 用户实现并调用,完成单个菜单项的显示
void VtorMenu_DisplaySubMenu(uint8_t itemIdx, VtorMenu* menu);
// 用户自行实现,vtormenu自动调用,单个菜单项的点击回调函数
void VtorMenu_ClickHandler(VtorMenu* menu);
#endif // __VTOR_MENU__
#ifdef __cplusplus
}
#endif
#endif
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/vtor3478/vtor_elec_module.git
git@gitee.com:vtor3478/vtor_elec_module.git
vtor3478
vtor_elec_module
vtor_elec_module
main

搜索帮助

0d507c66 1850385 C8b1a773 1850385