Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: Terminal
page.h@6:e992366d0684, 2015-05-04 (annotated)
- Committer:
- glansberry
- Date:
- Mon May 04 14:43:35 2015 +0000
- Revision:
- 6:e992366d0684
- Parent:
- 3:f308cd7a34ed
Modified to make terminal embedded in TestConsole class; More changes for debugging
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| glansberry | 0:907d2d5e77f7 | 1 | #ifndef __PAGE_H |
| glansberry | 0:907d2d5e77f7 | 2 | #define __PAGE_H |
| glansberry | 0:907d2d5e77f7 | 3 | #include "menuitem.h" |
| glansberry | 0:907d2d5e77f7 | 4 | #include "Terminal.h" |
| glansberry | 0:907d2d5e77f7 | 5 | //this class contains Pages of menu items |
| glansberry | 0:907d2d5e77f7 | 6 | |
| glansberry | 0:907d2d5e77f7 | 7 | extern Terminal term; |
| glansberry | 0:907d2d5e77f7 | 8 | #define MAX_MENUITEMS 15 |
| glansberry | 0:907d2d5e77f7 | 9 | #define LEVEL_INDENT 8 |
| glansberry | 0:907d2d5e77f7 | 10 | #define DATA_GAP 4 |
| glansberry | 0:907d2d5e77f7 | 11 | #define ITEM_ROW_START 3 |
| glansberry | 0:907d2d5e77f7 | 12 | #define TERM_LOC_DEBUG 40,24 //x,y for printing debug info |
| glansberry | 0:907d2d5e77f7 | 13 | #define TERM_LOC_INPUT 10,23 // X,Y for getting input |
| glansberry | 0:907d2d5e77f7 | 14 | #define TERM_LOC_FEEDBACK 10,24 // X,Y for getting input |
| glansberry | 0:907d2d5e77f7 | 15 | //class MenuItem; //forward declare |
| glansberry | 0:907d2d5e77f7 | 16 | |
| glansberry | 0:907d2d5e77f7 | 17 | class Page{ |
| glansberry | 0:907d2d5e77f7 | 18 | private: |
| glansberry | 6:e992366d0684 | 19 | bool make_active_flag; |
| glansberry | 0:907d2d5e77f7 | 20 | public: |
| glansberry | 0:907d2d5e77f7 | 21 | Page(); |
| glansberry | 6:e992366d0684 | 22 | Page(const char * name_p, Terminal * term_p); |
| glansberry | 6:e992366d0684 | 23 | const char * name; //reference to the name of the Page |
| glansberry | 6:e992366d0684 | 24 | Terminal * term; |
| glansberry | 0:907d2d5e77f7 | 25 | int num_menuitems; |
| glansberry | 0:907d2d5e77f7 | 26 | int data_start_x; //starting column for printing the data |
| glansberry | 0:907d2d5e77f7 | 27 | MenuItem item[MAX_MENUITEMS]; |
| glansberry | 0:907d2d5e77f7 | 28 | char command_letter[MAX_MENUITEMS]; //the character in front of the menuitem |
| glansberry | 0:907d2d5e77f7 | 29 | char max_upper_letter_cmd; |
| glansberry | 0:907d2d5e77f7 | 30 | char max_lower_letter_cmd; |
| glansberry | 0:907d2d5e77f7 | 31 | char max_number_cmd; |
| glansberry | 0:907d2d5e77f7 | 32 | int page_num; |
| glansberry | 0:907d2d5e77f7 | 33 | bool refresh_required; |
| glansberry | 6:e992366d0684 | 34 | Page& add(Page *page_p) { return add(MenuItem((*page_p))); } |
| iillyyaa | 3:f308cd7a34ed | 35 | Page& add(char const *text) { return add(MenuItem(text, NULL, 0, heading)); } |
| iillyyaa | 3:f308cd7a34ed | 36 | Page& add(char const *text, MenuAction *action_p) { return add(MenuItem(text, action_p, 0, ::display, -1)); } |
| iillyyaa | 3:f308cd7a34ed | 37 | Page& add(MenuItem const &item_p); |
| glansberry | 0:907d2d5e77f7 | 38 | void display(); |
| glansberry | 0:907d2d5e77f7 | 39 | void update(); |
| glansberry | 0:907d2d5e77f7 | 40 | char * set_active() {make_active_flag = true; return NULL;} //flag the current page to be active |
| glansberry | 0:907d2d5e77f7 | 41 | void ack_active() {make_active_flag = false;} //call to clear the set_active flag |
| glansberry | 0:907d2d5e77f7 | 42 | bool check_active() {return make_active_flag;} // check to see if this page wants to be active |
| glansberry | 0:907d2d5e77f7 | 43 | }; |
| glansberry | 0:907d2d5e77f7 | 44 | |
| glansberry | 0:907d2d5e77f7 | 45 | #endif |