Newer
Older
ice111_watering_system / watering_system_mini_project / MenuItem.cpp
#include "MenuItem.h"
#include "Arduino.h"

MenuItem::MenuItem() {

}

MenuItem::MenuItem(const char* name) {
  MenuItem::name = name;
  MenuItem::parent = NULL;
  MenuItem::next = NULL;
}

MenuItem* MenuItem::goBack() {
  return MenuItem::parent;
}

MenuItem* MenuItem::goDown() {
  return MenuItem::next;
}

MenuItem* MenuItem::goRight() {
  return NULL;
}

String MenuItem::display() {
  return "t " + String(MenuItem::name);
}


BranchMenuItem::BranchMenuItem(const char* name, const MenuItem* child) {
  BranchMenuItem::name = name;
  BranchMenuItem::child = child;
}

MenuItem* BranchMenuItem::goRight() {
  return BranchMenuItem::child;
}

String BranchMenuItem::display() {
  return String(BranchMenuItem::name) + " ->";
}


IntValueItem::IntValueItem(char const* name, int initial) {
  IntValueItem::name = name;
  IntValueItem::value = initial;
}

MenuItem* IntValueItem::goRight() { // increment
  IntValueItem::value++;
}

String IntValueItem::display() {
  return String(IntValueItem::name) + ": " + String(IntValueItem::value);
}


BoolValueItem::BoolValueItem(char const* name, bool initial) {
  BoolValueItem::name = name;
  BoolValueItem::value = initial;
}

MenuItem* BoolValueItem::goRight() { // toggle
  BoolValueItem::value = !BoolValueItem::value;
  return NULL;
}

String BoolValueItem::display() {
  return String(BoolValueItem::name) + ": " + (BoolValueItem::value ? "true" : "false");
}