55 lines
997 B
C++
55 lines
997 B
C++
/**
|
|
* @file menu.h
|
|
* @author Alexander Klein (alex@kleiax.de)
|
|
* @brief Contains the Menu class
|
|
* @version 0.1
|
|
* @date 2022-01-12
|
|
*
|
|
* @copyright Copyright (c) 2022
|
|
*
|
|
*/
|
|
#ifndef MENU_H
|
|
#define MENU_H
|
|
|
|
#include <list>
|
|
|
|
#include "menuAction.h"
|
|
#include "menuControl.h"
|
|
|
|
class MenuAction;
|
|
|
|
/**
|
|
* @brief A class to build menu structers
|
|
*/
|
|
class Menu : public MenuControl {
|
|
public:
|
|
Menu();
|
|
|
|
/**
|
|
* @brief Add a menu action to the menu
|
|
*
|
|
* @param entry
|
|
*/
|
|
void addEntry(MenuAction* entry);
|
|
bool isInSubmenu();
|
|
|
|
void printMenu() override;
|
|
void update() override;
|
|
|
|
void down() override;
|
|
void up() override;
|
|
void right() override;
|
|
void left() override;
|
|
void yes() override;
|
|
void no() override;
|
|
|
|
private:
|
|
bool inSubmenu = false;
|
|
|
|
std::list<MenuAction*> entrys;
|
|
std::list<MenuAction*>::iterator selectedEntry;
|
|
|
|
};
|
|
|
|
#endif // MENU_H
|