Library which creates a serial test console, it supports pages and menu items. The items are added and the pages are added as necessary when the user sets it up. This is a great too for creating an easy to maintain menu system, whether for a test sytem, or anything else.
Dependencies: Terminal
menuitem.h@0:907d2d5e77f7, 2015-05-01 (annotated)
- Committer:
- glansberry
- Date:
- Fri May 01 03:56:34 2015 +0000
- Revision:
- 0:907d2d5e77f7
- Child:
- 3:f308cd7a34ed
Planned Menu is constructed, needs callbacks
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
glansberry | 0:907d2d5e77f7 | 1 | #ifndef __MENUITEM_H |
glansberry | 0:907d2d5e77f7 | 2 | #define __MENUITEM_H |
glansberry | 0:907d2d5e77f7 | 3 | |
glansberry | 0:907d2d5e77f7 | 4 | #include "Terminal.h" |
glansberry | 0:907d2d5e77f7 | 5 | |
glansberry | 0:907d2d5e77f7 | 6 | extern Terminal term; |
glansberry | 0:907d2d5e77f7 | 7 | |
glansberry | 0:907d2d5e77f7 | 8 | typedef enum {menu, heading, display, control} MenuType; |
glansberry | 0:907d2d5e77f7 | 9 | typedef char * (*callback_function)(bool); // type for conciseness |
glansberry | 0:907d2d5e77f7 | 10 | |
glansberry | 0:907d2d5e77f7 | 11 | #define MAX_NAME_LEN (80-10-10) |
glansberry | 0:907d2d5e77f7 | 12 | |
glansberry | 0:907d2d5e77f7 | 13 | class MenuItem{ |
glansberry | 0:907d2d5e77f7 | 14 | public: |
glansberry | 0:907d2d5e77f7 | 15 | MenuItem(); |
glansberry | 0:907d2d5e77f7 | 16 | MenuItem(const char * Name_p, callback_function callback_p, int level, MenuType type_p, int target_page = -1); |
glansberry | 0:907d2d5e77f7 | 17 | MenuItem(const char * Name_p, int target_page); //construct a menu selection item this way |
glansberry | 0:907d2d5e77f7 | 18 | const char *Name; //reference to the name |
glansberry | 0:907d2d5e77f7 | 19 | int level; //0 if primary 1 or greater if this is a sub-menu |
glansberry | 0:907d2d5e77f7 | 20 | MenuType type; //are we displaying something or controlling something |
glansberry | 0:907d2d5e77f7 | 21 | |
glansberry | 0:907d2d5e77f7 | 22 | callback_function callback; //callback for getting the data |
glansberry | 0:907d2d5e77f7 | 23 | |
glansberry | 0:907d2d5e77f7 | 24 | int name_len; |
glansberry | 0:907d2d5e77f7 | 25 | |
glansberry | 0:907d2d5e77f7 | 26 | int data_col; //column where the data is shown |
glansberry | 0:907d2d5e77f7 | 27 | int target_page; //the page to go to if called |
glansberry | 0:907d2d5e77f7 | 28 | |
glansberry | 0:907d2d5e77f7 | 29 | }; |
glansberry | 0:907d2d5e77f7 | 30 | |
glansberry | 0:907d2d5e77f7 | 31 | |
glansberry | 0:907d2d5e77f7 | 32 | #endif |