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.
Menu/Menu.h@40:71f947254fda, 2020-05-17 (annotated)
- Committer:
- evanso
- Date:
- Sun May 17 21:12:34 2020 +0000
- Revision:
- 40:71f947254fda
- Child:
- 41:5959256f4aab
Added menu class wich scrolls through menu parts and displays them
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| evanso | 40:71f947254fda | 1 | #ifndef MENU_H |
| evanso | 40:71f947254fda | 2 | #define MENU_H |
| evanso | 40:71f947254fda | 3 | |
| evanso | 40:71f947254fda | 4 | // Included libraries ---------------------------------------------------------- |
| evanso | 40:71f947254fda | 5 | #include "mbed.h" |
| evanso | 40:71f947254fda | 6 | #include "N5110.h" |
| evanso | 40:71f947254fda | 7 | #include "Gamepad.h" |
| evanso | 40:71f947254fda | 8 | |
| evanso | 40:71f947254fda | 9 | /** Enum for diffent menu parts*/ |
| evanso | 40:71f947254fda | 10 | enum MenuParts {play, settings, savedgames, main_menu}; |
| evanso | 40:71f947254fda | 11 | |
| evanso | 40:71f947254fda | 12 | /** scroll_orderStruct |
| evanso | 40:71f947254fda | 13 | * @brief Struct hold differnt menu orders |
| evanso | 40:71f947254fda | 14 | */ |
| evanso | 40:71f947254fda | 15 | struct scroll_order { |
| evanso | 40:71f947254fda | 16 | MenuParts part_next; /**< Next Menu part */ |
| evanso | 40:71f947254fda | 17 | MenuParts part_displayed; /**< Displayed menu part */ |
| evanso | 40:71f947254fda | 18 | }; |
| evanso | 40:71f947254fda | 19 | |
| evanso | 40:71f947254fda | 20 | /** Explosion class |
| evanso | 40:71f947254fda | 21 | * @brief Selects and draws differnt menu parts |
| evanso | 40:71f947254fda | 22 | * @author Benjamin Evans, University of Leeds |
| evanso | 40:71f947254fda | 23 | * @date May 2020 |
| evanso | 40:71f947254fda | 24 | */ |
| evanso | 40:71f947254fda | 25 | class Menu{ |
| evanso | 40:71f947254fda | 26 | public: |
| evanso | 40:71f947254fda | 27 | /** Constructor */ |
| evanso | 40:71f947254fda | 28 | Menu(); |
| evanso | 40:71f947254fda | 29 | |
| evanso | 40:71f947254fda | 30 | /** Destructor */ |
| evanso | 40:71f947254fda | 31 | ~Menu(); |
| evanso | 40:71f947254fda | 32 | |
| evanso | 40:71f947254fda | 33 | /** Initalises Menu*/ |
| evanso | 40:71f947254fda | 34 | void init(); |
| evanso | 40:71f947254fda | 35 | |
| evanso | 40:71f947254fda | 36 | /** sets the current menu part to the displayed when a is pressed |
| evanso | 40:71f947254fda | 37 | * @param lcd @details N5110 object |
| evanso | 40:71f947254fda | 38 | * @param pad @details Gamepad object |
| evanso | 40:71f947254fda | 39 | */ |
| evanso | 40:71f947254fda | 40 | void select_part(N5110 &lcd, Gamepad &pad); |
| evanso | 40:71f947254fda | 41 | |
| evanso | 40:71f947254fda | 42 | /** Draws the name of the part that is in the middle |
| evanso | 40:71f947254fda | 43 | * @param lcd @details N5110 object |
| evanso | 40:71f947254fda | 44 | */ |
| evanso | 40:71f947254fda | 45 | void draw_part(N5110 &lcd); |
| evanso | 40:71f947254fda | 46 | |
| evanso | 40:71f947254fda | 47 | /** Scrolls through the diffent menu parts |
| evanso | 40:71f947254fda | 48 | * @param pad @details Gamepad object |
| evanso | 40:71f947254fda | 49 | * @param d_ @details Direction of joystick |
| evanso | 40:71f947254fda | 50 | */ |
| evanso | 40:71f947254fda | 51 | void menu_scroll(Gamepad &pad, Direction d_); |
| evanso | 40:71f947254fda | 52 | |
| evanso | 40:71f947254fda | 53 | private: |
| evanso | 40:71f947254fda | 54 | |
| evanso | 40:71f947254fda | 55 | // Varibles ---------------------------------------------------------------- |
| evanso | 40:71f947254fda | 56 | |
| evanso | 40:71f947254fda | 57 | /** The part of the menu that is displayed */ |
| evanso | 40:71f947254fda | 58 | MenuParts displayed_menu_part_; |
| evanso | 40:71f947254fda | 59 | |
| evanso | 40:71f947254fda | 60 | /** The part of the menu that is currently selected and in*/ |
| evanso | 40:71f947254fda | 61 | MenuParts current_menu_part_; |
| evanso | 40:71f947254fda | 62 | }; |
| evanso | 40:71f947254fda | 63 | #endif |