DeskControl/src/lib/screen/menu.h

46 lines
791 B
C++

#ifndef __screen_menu
#define __screen_menu
#include "include/screenids.h"
#include "../screen.h"
#include "../Control.h"
enum class MenuItem
{
Manual = 0,
Presets,
Calibrate,
Exit,
__Count
};
/*
* Menu screen
* Shows the menu which allows access to the calibration and
* manual adjustment screens.
*/
class MenuScreen : public BaseScreen
{
public:
MenuScreen(ScreenManager* screenManager, Adafruit_GFX* display) : BaseScreen(screenManager, display) { }
void onShow();
void onButton(Button button);
void onTick();
ScreenId screenId() { return ScreenId::Menu; };
private:
void drawMenuItem(uint8_t index);
const char* getMenuItemTitle(MenuItem item);
void activateMenuItem(MenuItem item);
uint8_t itemIndex = 0;
};
#endif