📄 menu.h
字号:
/* * File: menu.h * Purpose: Menu functions header * Author: Peter Ivanov * Modified by: * Created: 2007-05-19 11:31:29 * Last modify: 2007-10-21 08:14:37 ivanovp {Time-stamp} * Copyright: (C) Peter Ivanov, 2007 * Licence: GPL *//** * \file menu.h * \brief Menu functions header * \author Peter Ivanov */#ifndef __INCLUDE_MENU_H#define __INCLUDE_MENU_H#include <sys/types.h>#include "periphery.h"typedef struct menuPoint_t menuPoint_t;/** * Struct for storing a menu point. * @see MENU_init, MENU_handler * * @author Peter Ivanov */struct menuPoint_t{ /** * Title of menu to display. */ char* menuTitle; /** * Sub-menu to invoke if menu is selected. * You should set only one option of subMenu and menuHandlerCallback! */ menuPoint_t* subMenu; /** * Function to call if menu is selected. * You should set only one option of subMenu and menuHandlerCallback! */ void (*menuHandlerCallback) ();};/// Maximum level of menu depth#define MENU_MAX_LEVEL 4/// Maximum number of menu items on a level#define MENU_MAX_MENU_ITEMS 255#define MENU_DEFAULT_NORMAL_TEXT_FG_COLOR LCD_COLOR_BLACK#define MENU_DEFAULT_NORMAL_TEXT_BG_COLOR LCD_COLOR_WHITE#define MENU_DEFAULT_FOLDER_TEXT_FG_COLOR LCD_COLOR_BLUE#define MENU_DEFAULT_FOLDER_TEXT_BG_COLOR LCD_COLOR_WHITE#define MENU_DEFAULT_HIGHLIGHTED_TEXT_FG_COLOR LCD_COLOR_BLACK#define MENU_DEFAULT_HIGHLIGHTED_TEXT_BG_COLOR LCD_COLOR_YELLOW#define MENU_DEFAULT_DISABLED_TEXT_FG_COLOR LCD_COLOR_GRAY#define MENU_DEFAULT_DISABLED_TEXT_BG_COLOR LCD_COLOR_WHITE#define MENU_DEFAULT_X 0#define MENU_DEFAULT_Y 0/** * Initializes menu system. After this you should call MENU_handler * periodically. * Example:<pre>menuPoint_t rootMenu[] = { //1234567890123456 {"Date/time", dateTimeMenu, NULL}, {"SD/MMC", sdMmcMenu, NULL}, {"MMA", mmaMenu, NULL}, {"VCC", NULL, showVcc}, {"Temperature", NULL, showTemp}, {"Show font", NULL, showFont}, {"Keyboard test", NULL, keyboardTest}, {NULL, NULL, NULL} // end of menu};int main (){ // other initializations... ... // Initialize menu MENU_init (rootMenu); ... while (1) { MENU_handler (KBD_getButtonPressed ()); msleep (20); }}</pre> * * @author Peter Ivanov * * Input: * @param rootMenu Pointer to root menu. */void MENU_init (menuPoint_t* rootMenu);/** * This function handles the events which comes from keyboard. * Before using this function, you should initialize the menu system. * @see MENU_init * * Example:<pre>while (1) { MENU_handler (KBD_getButtonPressed ()); msleep (20);}</pre> * * Input: * @param buttonPressed The buttons which are pressed meanwhile. */void MENU_handler (KBD_buttonPressed_t buttonPressed);#endif // __INCLUDE_MENU_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -