Files
Bachelorarbeit-Rover/src/SpecialMenus/driveModi/menuDriveMode.h
T

67 lines
1.7 KiB
C++

/**
* @file menuDriveMode.h
* @author Alexander Klein (alex@kleiax.de)
* @brief Contains a base class for Menus about DriveModi
* @version 0.1
* @date 2022-01-31
*
* @copyright Copyright (c) 2022
*
*/
#ifndef MENU_DRIVE_MODI_H
#define MENU_DRIVE_MODI_H
#include "menuInformationSites.h"
#include "driveModi/driveManager.h"
#include "SpecialMenus/SensorData/menuSensorData.h"
#include "SpecialMenus/Speed/menuSpeed.h"
/**
* @brief A base class for Menus about DriveModi
*
*/
class MenuDriveMode : public MenuInformationSites {
public:
/**
* @brief Construct a new Menu Drive Mode object
*
* @param driveManager
*/
MenuDriveMode(DriveManager* driveManager);
void addSensorMenu(MenuSensorData* menuSensor) { this->menuSensor = menuSensor; }
void addSpeedMenu(MenuIntInput* menuSpeed) { this->menuSpeed = menuSpeed; }
/**
* @brief Goes back to the parentMenu.
*/
void left() override;
void right() override;
void up() override;
void down() override;
void yes() override;
void no() override;
void prepareReenterMenu() override;
void printMenu() override;
protected:
void init() override;
virtual void configureOnLeave() {}
void activateSpeedMenu();
void enterSpeedMenu();
void enterSensorMenu();
DriveManager* driveManager;
bool firstPrint = true;
private:
void enterMenu();
MenuControl* activeMenu = nullptr;
MenuSensorData* menuSensor = nullptr;
MenuIntInput* menuSpeed = nullptr;
};
#endif // MENU_DRIVE_MODI_H