Initial commit
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
/**
|
||||
* @file menuIntInput.h
|
||||
* @author Alexander Klein (alex@kleiax.de)
|
||||
* @brief
|
||||
* @version 0.1
|
||||
* @date 2022-09-12
|
||||
*
|
||||
* @copyright Copyright (c) 2022
|
||||
*
|
||||
*/
|
||||
#ifndef MENU_INT_INPUT_H
|
||||
#define MENU_INT_INPUT_H
|
||||
|
||||
#include "menuControl.h"
|
||||
#include <stdint.h>
|
||||
|
||||
#define MAX_NAME_LENGTH 12
|
||||
|
||||
class MenuIntInputWrapper {
|
||||
public:
|
||||
virtual ~MenuIntInputWrapper() {}
|
||||
virtual void action(int16_t* values, uint8_t length) = 0;
|
||||
};
|
||||
|
||||
class MenuIntInput : public MenuControl {
|
||||
public:
|
||||
MenuIntInput(int16_t values[], char *names, uint8_t length, MenuIntInputWrapper* wrapper);
|
||||
MenuIntInput(uint8_t length, MenuIntInputWrapper *wrapper);
|
||||
~MenuIntInput();
|
||||
|
||||
void setEntry(uint8_t valueNumber, const char* name, int16_t startValue = 0);
|
||||
|
||||
void setMin(uint8_t valueNumber, int16_t min);
|
||||
void setMin(int16_t min);
|
||||
void setMax(uint8_t valueNumber, int16_t max);
|
||||
void setMax(int16_t max);
|
||||
void setMinMax(uint8_t valueNumber, int16_t min, int16_t max);
|
||||
void setMinMax(int16_t min, int16_t max);
|
||||
void setMinMaxSteps(uint8_t valueNumber, int16_t min, int16_t max, uint8_t steps);
|
||||
void setMinMaxSteps(int16_t min, int16_t max, uint8_t steps);
|
||||
void setPrintParentMenu(bool b) { this->printParentMenu = b; }
|
||||
|
||||
void setStepsPerInput(uint8_t valueNumber, uint8_t steps);
|
||||
void setStepsPerInput(uint8_t steps);
|
||||
|
||||
/**
|
||||
* @brief Decrement selected value
|
||||
*/
|
||||
void down() override;
|
||||
|
||||
/**
|
||||
* @brief Increment selected value
|
||||
*/
|
||||
void up() override;
|
||||
|
||||
/**
|
||||
* @brief Select next value
|
||||
*/
|
||||
void right() override;
|
||||
|
||||
/**
|
||||
* @brief Select previous value
|
||||
*/
|
||||
void left() override;
|
||||
|
||||
/**
|
||||
* @brief Leave menu without saving
|
||||
*/
|
||||
void no() override;
|
||||
|
||||
/**
|
||||
* @brief Leave menu with saving
|
||||
*/
|
||||
void yes() override;
|
||||
|
||||
/**
|
||||
* @brief Prints the Information to display and console
|
||||
*
|
||||
* The informations are only printed to the display if it
|
||||
* set.
|
||||
*/
|
||||
void printMenu() override;
|
||||
|
||||
void update() override {};
|
||||
|
||||
private:
|
||||
MenuIntInputWrapper* wrapper;
|
||||
|
||||
bool printParentMenu = true;
|
||||
|
||||
uint8_t currentPosition = 0;
|
||||
uint8_t length;
|
||||
uint8_t *stepsPerInput;
|
||||
uint8_t countSameActions = 0;
|
||||
int16_t *values;
|
||||
int16_t *originalValues;
|
||||
int16_t *min;
|
||||
int16_t *max;
|
||||
char *names;
|
||||
|
||||
};
|
||||
|
||||
#endif // MENU_INT_INPUT_H
|
||||
Reference in New Issue
Block a user