#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 MenuItem* goRight(); virtual String display(); }; class BranchMenuItem: public MenuItem { public: BranchMenuItem(const char* name, const MenuItem* child); MenuItem* child; MenuItem* goRight() override; String display() override; }; class IntValueItem: public MenuItem { public: IntValueItem(const char* name, const int initialValue); int value; MenuItem* IntValueItem::goRight(); String IntValueItem::display(); }; class BoolValueItem: public MenuItem { public: BoolValueItem(const char* name, const bool initialValue); bool value; MenuItem* BoolValueItem::goRight() override; String BoolValueItem::display() override; }; #endif