/*
┌────── Move
│ ───┬─Start
│ └─Stop
├───Settings
│ ───────┬─Stepper X
│ │ ────────┬─Direction
│ │ ├─Speed
│ │ └─Steps
│ └─Stepper X
│ ────────┬─Direction
│ ├─Speed
│ └─Steps
└─ Disable steppers
────────┐
├─Disable stepper X
└─Disable stepper Y
*/
struct MenuItem {
String label;
void (*callback)();
MenuItem* childItems;
};
void funcMove() {}
void funcStart() {}
void funcStop() {}
void funcStepperXDirection() {}
void funcStepperXSpeed() {}
void funcStepperXSteps() {}
void funcStepperYDirection() {}
void funcStepperYSpeed() {}
void funcStepperYSteps() {}
void funcDisableSteppers() {}
void funcDisableStepperX() {}
void funcDisableStepperY() {}
void funcBack() {}
MenuItem menuBack = {"Back", funcBack, NULL};
MenuItem menuMove[] = {
{"Start", funcStart, NULL},
{"Stop", funcStop, NULL},
menuBack
};
MenuItem menuStepperX[] = {
{"Direction", funcStepperXDirection, NULL},
{"Speed", funcStepperXSpeed, NULL},
{"Steps", funcStepperXSteps, NULL},
menuBack
};
MenuItem menuStepperY[] = {
{"Direction", funcStepperYDirection, NULL},
{"Speed", funcStepperYSpeed, NULL},
{"Steps", funcStepperYSteps, NULL},
menuBack
};
MenuItem menuSettings[] = {
{"Stepper X", NULL, menuStepperX},
{"Stepper Y", NULL, menuStepperY},
menuBack
};
MenuItem menu[] = {
{"Move", funcMove, menuMove},
{"Settings", NULL, menuSettings},
{"Disable steppers", funcDisableSteppers, NULL},
};
void setup() {}
void loop() {}