67 lines
1.7 KiB
C++
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
|