Library for creating menu systems in displays.

Dependents:   VS1053Player

Committer:
ollie8
Date:
Wed May 29 19:20:19 2013 +0000
Revision:
1:2084d862196c
Parent:
0:3f4d33765f10
Child:
2:feaf1471cda0
Updated documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ollie8 0:3f4d33765f10 1 #ifndef MENU_H
ollie8 0:3f4d33765f10 2 #define MENU_H
ollie8 0:3f4d33765f10 3
ollie8 1:2084d862196c 4 #include <string.h>
ollie8 1:2084d862196c 5 /** MenuItem represents an entry in a menu. Each menu item is instantiated with
ollie8 1:2084d862196c 6 * two callbacks, one for selecting the item and one for entering the item.
ollie8 1:2084d862196c 7 * Methods are provided for determining whether the item is selected
ollie8 1:2084d862196c 8 *
ollie8 1:2084d862196c 9 */
ollie8 0:3f4d33765f10 10 class MenuItem {
ollie8 0:3f4d33765f10 11
ollie8 0:3f4d33765f10 12 private:
ollie8 0:3f4d33765f10 13 typedef void (*EnterMenuItem)(MenuItem*);
ollie8 0:3f4d33765f10 14 void (*entered)(MenuItem*);
ollie8 0:3f4d33765f10 15 bool selected;
ollie8 0:3f4d33765f10 16 int row;
ollie8 0:3f4d33765f10 17 public:
ollie8 0:3f4d33765f10 18 typedef void (*SelectionChange)(MenuItem*);
ollie8 0:3f4d33765f10 19 MenuItem();
ollie8 0:3f4d33765f10 20 MenuItem(EnterMenuItem, SelectionChange, char*);
ollie8 0:3f4d33765f10 21 char* getName();
ollie8 0:3f4d33765f10 22 virtual void enter();
ollie8 0:3f4d33765f10 23 bool isSelected();
ollie8 0:3f4d33765f10 24 void select();
ollie8 0:3f4d33765f10 25 void deSelect();
ollie8 1:2084d862196c 26 int getRowNo();
ollie8 0:3f4d33765f10 27 void setRowNo(int);
ollie8 0:3f4d33765f10 28 protected:
ollie8 0:3f4d33765f10 29 char* name;
ollie8 0:3f4d33765f10 30 void (*selection)(MenuItem*);
ollie8 0:3f4d33765f10 31 };
ollie8 0:3f4d33765f10 32
ollie8 0:3f4d33765f10 33 class Menu : public MenuItem {
ollie8 0:3f4d33765f10 34
ollie8 0:3f4d33765f10 35 private:
ollie8 0:3f4d33765f10 36 typedef void (*EnterMenu)(Menu*);
ollie8 0:3f4d33765f10 37 MenuItem **items;
ollie8 0:3f4d33765f10 38 void (*entered)(Menu*);
ollie8 0:3f4d33765f10 39 int selectedItem;
ollie8 0:3f4d33765f10 40 int itemCount;
ollie8 0:3f4d33765f10 41 public:
ollie8 0:3f4d33765f10 42 Menu(EnterMenu, SelectionChange, char*, int);
ollie8 0:3f4d33765f10 43 Menu(char*, int);
ollie8 0:3f4d33765f10 44 void addMenuItem(MenuItem&);
ollie8 0:3f4d33765f10 45 MenuItem & getItem(int);
ollie8 0:3f4d33765f10 46 MenuItem & selectedRow();
ollie8 0:3f4d33765f10 47 int size();
ollie8 0:3f4d33765f10 48 virtual void enter();
ollie8 0:3f4d33765f10 49 void up();
ollie8 0:3f4d33765f10 50 void down();
ollie8 0:3f4d33765f10 51 };
ollie8 0:3f4d33765f10 52
ollie8 0:3f4d33765f10 53 #endif