#include "datatype.h"
#include "menu.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
void func(void)
{
}
//首先定義一個菜單結構體
typedef struct menu //定義一個菜單
{
unsigned char range_from,range_to; //當前顯示的項開始及結束序號
unsigned char itemCount; //項目總數
unsigned char selected; //當前選擇項
unsigned char *menuItems[17]; //菜單項目
struct menu **subMenus; //子菜單
struct menu *parent; //上級菜單 ,如果是頂級則為null
void (**func)(); //選擇相應項按確定鍵后執行的函數
}Menu;
Menu MainMenu = { //定義主菜單
0,3,4,0, //默認顯示0-3項,總共4項,當前選擇第0項
{
"測量表 ", // >表示有下級選項
"其他設置 ",
"保護設定 ",
"查詢 >"
}
};
Menu searchMenu = { //查詢菜單
0,3,6,0,
{
"記帳記錄明細 ",
"未采集記錄數 ",
"設備機號 ",
"本機IP地址 ",
"記錄空間大小 ",
"軟件版本 "
}
};
Menu *currentMenu; //當前的菜單
//初始化菜單:
void initMenu()
{
char mempool[512];
init_mempool (&mempool, sizeof(mempool));
MainMenu.subMenus = malloc(sizeof(&MainMenu)*4);
MainMenu.subMenus[0] = &searchMenu;//第1到3項沒有子菜單置null,選擇后程序會調用func中相應項中的函數
MainMenu.subMenus[1] = NULL;
MainMenu.subMenus[2] = NULL;
MainMenu.subMenus[3] = NULL;//第四項查詢有子菜單
MainMenu.func = malloc(sizeof(&func)*4);
MainMenu.func[0] = NULL;
MainMenu.func[1] = NULL;
MainMenu.func[2] = &func;//當選擇了并按了確定,會執行func函數
MainMenu.func[3] = NULL;
MainMenu.parent = NULL;//表示是頂級菜單
searchMenu.subMenus = malloc(sizeof(&searchMenu)*6);
searchMenu.subMenus[0] = searchMenu.subMenus[1] = searchMenu.subMenus[2] = searchMenu.subMenus[3] = searchMenu.subMenus[4] = searchMenu.subMenus[5] = NULL;
searchMenu.func = malloc(sizeof(&printf)*6);
searchMenu.func[0] = searchMenu.func[1] = searchMenu.func[2] = searchMenu.func[3] = searchMenu.func[4] = searchMenu.func[5] = NULL;
searchMenu.parent = &MainMenu;//上一級菜單是MainMenu.進入查詢子菜單后按返回鍵,將會顯示這個菜單項
currentMenu = &MainMenu;
}
void main(void)
{
} |