Newer
Older
ice111_watering_system / MenuItem.h
#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();
        MenuItem* goRight(); 
        String display();
//        void addChild(MenuItem* c) {
//            if (!child) child = c;
//            c->parent = this;
//        }
};

class BranchMenuItem: public MenuItem {
    public:
        using MenuItem::MenuItem;
        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);
        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();
        String BoolValueItem::display();
};

#endif