Newer
Older
ice111_watering_system / watering_system_mini_project / 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();
        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