Library to display menus on TextLCDs. Interaction with functions Up,Down and Select (Buttons or RPG) Based on menu-library from pyeh9
Fork of Menu by
Library to display menus on TextLCDs. Interaction with functions Up,Down and Select (Buttons or RPG) Based on menu-library from pyeh9
Revision 9:c9df0b33d176, committed 2015-03-13
- Comitter:
- charly
- Date:
- Fri Mar 13 18:44:49 2015 +0000
- Parent:
- 8:fbaeab73fe1a
- Child:
- 10:2b6ddf53b05e
- Commit message:
- Refactored Selection to MenuItem; Added comments
Changed in this revision
--- a/Menu.cpp Fri Jan 16 22:23:34 2015 +0000 +++ b/Menu.cpp Fri Mar 13 18:44:49 2015 +0000 @@ -1,6 +1,6 @@ #include "mbed.h" #include "Menu.h" -#include "Selection.h" +#include "MenuItem.h" Menu::Menu(char *id) : menuID(id) { @@ -8,7 +8,7 @@ CurrentSelection = 0; } -void Menu::add(const Selection &toAdd) +void Menu::add(const MenuItem &toAdd) { selections.push_back(toAdd); }
--- a/Menu.h Fri Jan 16 22:23:34 2015 +0000 +++ b/Menu.h Fri Mar 13 18:44:49 2015 +0000 @@ -2,24 +2,41 @@ #define MENU_H #include "mbed.h" -#include "Selection.h" +#include "MenuItem.h" #include <vector> -class Selection; +class MenuItem; +/** Menu: Create Menues with Submenues, MenuItems, actions,... +* +*/ class Menu { private: public: - vector<Selection> selections; + /** vector of of Menu-Items + * + */ + vector<MenuItem> selections; + + /** name of a menu + */ char *menuID; // currently selected Item in Menu (used to return to this point from submenu) int CurrentSelection; + /** a menu + */ Menu(char *); - void add(const Selection &toAdd); + /** add an Item to the menu + */ + void add(const MenuItem &toAdd); + /** change the text of an menu-item + */ void changeText(int position, char *newText); + /** get current text of menu-item + */ char *getText(int); }; #endif \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MenuItem.cpp Fri Mar 13 18:44:49 2015 +0000 @@ -0,0 +1,6 @@ +#include "mbed.h" +#include "MenuItem.h" +#include "TextLCD.h" + +MenuItem::MenuItem(void (*userAction)(), int position, Menu *child, char* text) : + userAction(userAction), selText(text), pos(position), childMenu(child) {}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/MenuItem.h Fri Mar 13 18:44:49 2015 +0000 @@ -0,0 +1,33 @@ +#ifndef MENUITEM_H +#define MENUITEM_H + +#include "Menu.h" + +class Menu; + +/** MenuItem is a menu-item of menu +*/ +class MenuItem { + private: + + public: + /** pointer to user-action to execute when menu item is selected + */ + void (*userAction)(); + /** Text of Menue-Item to display + */ + char* selText; + /** position of menuitem in menu + */ + int pos; + /** Pointer to child-menue + */ + Menu *childMenu; + + /** a sub-menu + */ + MenuItem(void (*)(), int, Menu *, char *); + +}; + +#endif \ No newline at end of file
--- a/Navigator.cpp Fri Jan 16 22:23:34 2015 +0000 +++ b/Navigator.cpp Fri Mar 13 18:44:49 2015 +0000 @@ -57,9 +57,9 @@ { Menu *lastMenu; - if(activeMenu->selections[_cursorPos].fun != NULL) { + if(activeMenu->selections[_cursorPos].userAction != NULL) { //execute function - (activeMenu->selections[_cursorPos].fun)(); + (activeMenu->selections[_cursorPos].userAction)(); // refresh the Menu //printMenu(); //printCursor();
--- a/Navigator.h Fri Jan 16 22:23:34 2015 +0000 +++ b/Navigator.h Fri Mar 13 18:44:49 2015 +0000 @@ -13,7 +13,7 @@ * * @code * - * #include "Selection.h" + * #include "MenuItem.h" * #include "Menu.h" * #include "Navigator.h" * #include <vector>
--- a/Selection.cpp Fri Jan 16 22:23:34 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -#include "mbed.h" -#include "Selection.h" -#include "TextLCD.h" - -Selection::Selection(void (*fun)(), int position, Menu *child, char* text) : - fun(fun), selText(text), pos(position), childMenu(child) {}
--- a/Selection.h Fri Jan 16 22:23:34 2015 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -#ifndef SELECTION_H -#define SELECTION_H - -#include "Menu.h" - -class Menu; - -class Selection { - private: - - public: - void (*fun)(); // pointer to a function to execute - char* selText; // selection text - int pos; // selection position - Menu *childMenu; - - Selection(void (*)(), int, Menu *, char *); - -}; - -#endif \ No newline at end of file