#ifndef MenuItem_h #define MenuItem_h #include "Arduino.h" class MenuItem { public: MenuItem(); MenuItem(const char* name); const char* name; MenuItem* parent; MenuItem* next; MenuItem* goBack(); MenuItem* goDown(); virtual void selectLeft(); virtual void selectRight(); virtual bool select(); virtual MenuItem* goRight(); virtual String display(); }; class BranchMenuItem: public MenuItem { public: BranchMenuItem(const char* name, const MenuItem* child); MenuItem* child; MenuItem* goRight(); String display(); }; class IntValueItem: public MenuItem { public: IntValueItem(const char* name, const int initialValue, const int min, const int max); int value; int min; int max; bool IntValueItem::select(); void IntValueItem::selectLeft(); void IntValueItem::selectRight(); String IntValueItem::display(); }; class BoolValueItem: public MenuItem { public: BoolValueItem(const char* name, const bool initialValue); bool value; bool BoolValueItem::select(); void BoolValueItem::selectRight(); void BoolValueItem::selectLeft(); String BoolValueItem::display(); }; #endif