#ifndef __BaseMenuScreen #define __BaseMenuScreen #include #include "ScreenManager.h" /* * Base menu screen * Provides the base for a menu screen, allows scrolling to * the previous or next menu screen or performs an action. */ class BaseMenuScreen : public BaseScreen { private: bool mEnableMenuScroll = true; protected: bool getEnableMenuScroll() { return mEnableMenuScroll; } void setEnableMenuScroll(bool value); virtual bool hasPrevious() = 0; virtual bool hasNext() = 0; virtual const char* getTitle() = 0; virtual void gotoPrevious() {} virtual void gotoNext() {} void printTitle(); void printScrollIndicators(); virtual void printValue(); public: BaseMenuScreen(ScreenManager* screenManager) : BaseScreen(screenManager) { } virtual void onShow(); virtual void onHide(); virtual void onEncoder(long lastPosition, long newPosition); }; #endif